Podstawy popularnych języków programowania obiektowego

Podstawy popularnych języków programowania obiektowego

Poniższy tekst podejmuje próbę przybliżenia podstawowych mechanizmów tworzenia obiektowych programów w czterech popularnych językach programowania. Każdy z dziewięciu punktów operuje przykładami w języku C++, więc roboczym założeniem jest znajomość przez czytelnika ich działania w C++.

Języki wybrano na podstawie indeksu TIOBE, powszechnie używanej miary popularności języków programowania, klasyfikującej je na podstawie liczby wyszukań w największych wyszukiwarkach internetowych. Poza będącym podstawą kursu C++ (pozycja 4 w indeksie) są to Java (#2), Objective-C (#3), C# (#6) oraz Ruby (#12). Pozycje w rankingu pochodzą z maja 2014r.

Wszystkie wybrane języki rozwijają koncepcje opracowane na przełomie lat 60 i 70 w językach Simula, C i Smalltalk. Można je umownie pogrupować w dwie generacje. Do pierwszej należą opracowane na początku lat 80. Objective-C i C++, do drugiej powstałe pod koniec lat 90. Java, C# oraz Ruby.

C++

Duńczyk Bjarne Stroustrup od końcówki lat 70. pracował nad rozszerzeniem języka C o obiektowe mechanizmy abstrakcji danych i silną statyczną kontrolę typów.

Powstały w efekcie jego pracy C++ jest doskonałym przykładem języka programowania ogólnego przeznaczenia. Dopuszcza stosowanie wielu paradygmatów programowania. Proceduralnego, obiektowego i generycznego. Charakteryzuje się wysoką wydajnością kodu wynikowego, bezpośrednim dostępem do zasobów sprzętowych i funkcji systemowych, niezależnością od platformy i prostym środowiskiem uruchomieniowym.

Wykorzystywany jest przede wszystkim do tworzenia natywnych aplikacji i systemów operacyjnych.

Objective C

Amerykanie Brad Cox i Tom Love równolegle ze Stroustrupem pracowali nad rozszerzeniem języka C o możliwości obiektowe. Objective-C przyjęło drogę całkowicie odmienną od C++, wzorując się nie na Simuli, a na Smalltalku.

Wykorzystuje się go w tej chwili przede wszystkim do tworzenia aplikacji na platformy iOS i OS X.

Java

Kanadyjczyk James Gosling W październiku 2006, po raz pierwszy od wielu lat, zgolił brodę. Jak sam stwierdził, nigdy wcześniej nie był widziany przez swoją żonę i dzieci bez niej. Kilkanaście lat wcześniej, jeszcze z brodą, kierował w Sun projektem nazywanym Oak, który po jakimś czasie zmienił nazwę na Java.

Java jest językiem, w którym nasz kod źródłowy kompilowany jest do postaci wykonywanej nie przez fizyczną maszynę, a przez uruchomioną na niej maszynę wirtualną. Jego podstawowe koncepcje zostały przejęte ze Smalltalk-a (maszyna wirtualna, zarządzanie pamięcią) oraz z C++ (większość składni i słów kluczowych).

Najpopularniejszym zastosowaniem języka Java są w tej chwili aplikacje mobilne na system Android i aplikacje internetowe.

C#

Duńczyk Anders Hejlsberg rozpoczął studia na Technical University of Denmark ale zrezygnował w ich trakcie i zajął się programowaniem. Współtworzył kilka popularnych języków programowania i narzędzi programistycznych. Między innymi kompilator Turbo Pascal, język J++ i bibliotekę MFC. Dziś jest głównym architektem języka C#.

Podobnie jak Java, aplikacja nie jest tu budowana do kodu maszynowego, a do kodu pośredniego uruchamianego np. w środowisku .NET.

Zastosowania C# również są podobne do tych języka Java. Są to głównie aplikacje internetowe.

Ruby

Japończyk Yukihiro Matsumoto, na początku lat 90. połączył części swoich ulubionych języków (Perl, Smalltalk, Eiffel, Ada i Lisp) by uformować nowy, w zamierzeniu balansujący programowanie funkcjonalne z imperatywnym.

Jako jedyny z tej listy, Ruby jest językiem interpretowalnym, nie kompilowalnym. W Ruby wszystko jest obiektem. Każdy fragment informacji może uzyskać swoje właściwości (dane) i czynności (metody).

Język Ruby przyciągnął na siebie mnóstwo uwagi od chwili pojawienia się frameworku Ruby on Rails — napisanej w nim architektury aplikacji WWW.