Developing a wheel for a second time
Klucze: programowanie ; 2007-07-07 19:28:27
Ada - niepopularny język programowania. Według mojej opinii - najlepszy.
Ada została zatwierdzona w 1980 jako wojskowy standard zunifikowanego języka wysokiego poziomu spełniający wymagania Steelman-a przez Ministerstwo Obrony US. W 1983 została zatwierdzona jako standard ANSI, a w 1987 jako standard ISO.
W 1995 wyszedł standard ISO 'Ada95' dodający funkcjonalności programowania obiektowego. Rozszerzenia standardu pojawiały się także później, w 2000 i 2005.
Czym się charakteryzuje Ada? Jest to język silnie typowany, kompilowany. To, że został zaprojektowany odgórnie, czyli najpierw powstała jego specyfikacja, a dopiero później implementacje, spowodowało, że nie ma takich krzaków jakie można znaleźć np. w PHP. Owa specyfikacja jest otwarta, można przeglądać jej zawartość. Jest ona kompletna i jednoznaczna, można tylko na jej podstawie przewidzieć wyniki dowolnego programu.
Jest to język obiektowy, umożliwia stosowanie polimorfizmu i dziedziczenia, Ada 2005 dodatkowo pozwala na tworzenie interface-ów. Silne typowanie wymusza jawną konwersje nawet między typami tego samego rodzaju [np. dwa różne typy stało przecinkowe].
Ada posiada obsługę wielowątkowości wplecioną w język - deklaracje zadania są inne składniowo niż definicje obiektów. Umożliwia także różne modele komunikacji pomiędzy zadaniami - od najprostszych, jak zmienne globalne, przez obiekty chronione, aż po spotkania.
To były fakty. Teraz kilka moich własnych opinii.
Jako język, Ada posiada setki rzeczy niesamowicie ułatwiających pisanie w niej programów. Na przykład: Jak w C wstawić największą wartość do zmiennej typu int? Przyporządkować (2 ^ (size_of(int) - 1)) - 1. W Adzie? Przyporządkować Integer'Last.
Inną zaletą Ady jest kompilator. Tzn. jest wiele implementacji, jednak wszystkie spełniają ten sam standard, więc zachowują się tak samo. Kompilator Ady znajdujący się w GCC - GNAT [GNu Ada Translator] jest bardzo przyjemny w używaniu. Tak jak inne kompilatory oczywiście sam zajmuje się zależnościami, ale także świetnie przedstawia błędy kompilacji. Przykładowo o brakującym średniku przypomina stwierdzeniem, że brakuje średnika [i tutaj mrugam do programistów C/C++]. Podpowiada także, że zrobiliśmy literówke w nazwie podprogramu [funkcji lub procedury] lub w nazwie zmienne i mówi także co chcieliśmy prawdopodobnie napisać.
A teraz kilka mitów nt. Ady:
"Ada jest językiem tylko dla symulacji/systemów czasu rzeczywistego/systemów embedded." - Mit. Ada posiada szeroką palete funkcjonalności które w żadnym z powyższych nie są używane. Bardzo dobrym przykładem tego jest Unbounded_String - ciąg znaków oparty na liście z dynamicznie przydzielaną pamięcią, o długości maksymalnej takiej jak Integer'Last. Tego rodzaju funkcjonalności posiadają niedeterministyczne czasy przetwarzania, są tworzone na stercie [której niektóre systemy embedded w ogóle nie posiadają] itp.
"Ada jest klonem Pascala." - Mit. Ada coprawda używa składni Pascala, jednak posiada inną semantyke. Przykładem jest chociażby znaczenie średnika.
O Adzie będę jeszcze pisał, bo to mój ulubiony język programowania.
2007-07-08 09:39:10; odpowiedz na wpis
Nie "(2 ^ (size_of(int) - 1)) - 1" tylko korzystamy z climits.h ;-)
2007-07-08 11:25:46; odpowiedz na wpis
Dziwię się, że dopiero teraz napisałeś o Adzie. :-) Gnat - fajna nazwa
2007-07-09 00:59:35; odpowiedz na wpis
Swoją drogą - rozumiem, że "męczą" was Adą na tej robotyce, tak? :)
2007-07-09 01:05:06; odpowiedz na #49727 Nivertius
Achjo, u nas "męczą" dwa, drugi i trzeci na "wstępie do programowanie". Nie to, żeby ludzie cokolwiek po tym umieli. Poza tym Ada jako pierwszy język programowania może nie być najlepszym wyborem, ludzie są za ciency, kiepsko rozumieją zalety i szybko się zniechęcają składnią.
2008-01-12 18:42:06; odpowiedz na wpis
Witam Panowie a bylibyscie w stanie napisac jakis program w adzie??
2008-01-28 13:05:47; odpowiedz na #50063 Piotrek pjocker@poczta.fm
Może nie 'bylibyśmy' a 'byłbym', ale przynajmniej nie 'byłbym' a 'jestem'.
2008-04-16 14:10:08; odpowiedz na wpis
Ktoś napisał jakiś porządny program współbieżny w Adzie?