Java – krótka historia

Ogólnie o Javie

Java to język programowania opracowany przez Sun Microsystems. W 1996 roku została wydana jej pierwsza wersja i była rozwijana do 2010 roku, a następnie przejęta przez Oracle. Pierwsze wzmianki o Javie pochodzą z roku 1991, kiedy to grupa inżynierów pod przewodnictwem Patricka Naughtona i Jamesa Goslinga postanowiła opracować język programowania, który byłby zarówno lekki (pierwotnym zastosowaniem miały być dekodery do telewizji kablowej) jak i niezależny od zastosowanego przez producenta procesora. Projekt nazwano Green. Pierwotnie język miał się nazywać OAK czyli dąb, gdyż jak wspomina Gosling lubił patrzeć na dąb za oknem swojego biura.

Ze względu na niezależność od platformy postanowiono użyć kodu pośredniego, który przy instalacji interpretera pozwoliłby na uruchomienie kodu na dowolnej maszynie. Przykładem może być inteligentny pilot, który nie odniósł komercyjnego sukcesu. Przez kilka lat projektanci zastanawiali się jak zdobyć rynek i ze względu na swoje zastosowanie postanowili opracować nową przeglądarkę internetową – HotJava. Oczywiście wykorzystując swój język i jednocześnie pokazując jego możliwości. Okazało się że nazwa OAK jest zajęta, więc po intensywnych przemyśleniach twórcy postanowili nazwać język Java – tak jak jedna z odmian kawy.

Pierwsza wersja Javy była mocno ograniczona – tak naprawdę nie mogła zastąpić żadnego obecnego ówcześnie języka. Następne wersje języka wprowadzały kolejne ulepszenia – powiększała się biblioteka standardowa oraz zwiększała wydajność, co początkowo było sporym zarzutem wobec Javy. Dziś ze względu na ogromne możliwości jest zdecydowanym liderem w aplikacjach działających po stronie serwera.

Najważniejsze daty w historii Javy
Najważniejsze daty w historii Javy

Założenia implementacyjne Javy

Twórcy Javy tworząc język mieli kilka myśli przewodnich, które starali się zaimplementować.

  1. Prosty – Java mocno nawiązuje składnią do C++ – posiada wiele wspólnych cech, ale pozbywa się najbardziej kłopotliwych operacji jak dziedziczenie z kilku klas. Natomiast możliwe jest implementowanie wielu interfejsów). Nie można przeciążać samemu operatorów (choć twórcy postanowili sami przeciążyć operator „+” przy konkatenacji łańcuchów znakowych klasy String).
  2. Obiektowy – Paradygmat programowania obiektowego każe patrzeć na programy jako współpracujące ze sobą obiekty, które posiadają swój stan (każdy obiekt może przechowywać inną wartość np. nazwa marki samochodu) oraz zachowanie (definiowane przez metody – np. zatankuj samochód). Jednakże Java nie jest w pełni językiem obiektowym, gdyż posiada typy proste.
  3. Sieciowy – Java umożliwia programowanie sieciowe. Zarówno na poziomie gniazd (ang. socket) jak i tworzenie złożonych serwisów typu klient – serwer.
  4. Niezawodny – Java chroni przed popełnieniem wielu błędów, które są łatwe do popełnienia w innych językach. Przykładem jest warunkowa instrukcja if, która w Javie przyjmuje tylko wartość logiczną (boolean). W C natomiast nie ma wbudowanego typu logicznego przez co prawdą może być wszystko poza wartością 0 – Nawet wskaźnik. Szczególnym przykładem jest instrukcja if (i=0), która jest stosunkowo trudna do wykrycia, natomiast w Javie kompilator zgłosi błąd.
  5. Bezpieczny – Java zabezpiecza przed typowymi atakami, które mogą nastąpić podczas działania programu. Dodatkowo pozwala na podpis cyfrowy klasy.
  6. Niezależny od architektury – Dzięki kompilacji w czasie rzeczywistym programy napisane w Javie można uruchamiać na wielu procesorach. Warunkiem jest zainstalowana maszyna wirtualna Javy, która tłumaczy kod pośredni na kod maszynowy konkretnego procesora.
  7. Przenośny – Java nie jest uzależniona od implementacji – posiada jasno zdefiniowane typy (np int oznacza liczbę całkowitą 32 bitową). Posiada także wspólny interfejs graficzny dla kilku systemów operacyjnych.
  8. Interpretowany – obecnie Java już nie jest językiem interpretowanym – jest kompilowana w czasie rzeczywistym.
  9. Wysokowydajny – Najbardziej kontrowersyjną cechą Javy była początkowo jej wydajność, gdyż przez kompilację w czasie rzeczywistym wydajność nie dorównywała standardowej kompilacji. Natomiast dzisiejsze kompilatory JIT ze względu na swoją złożoność potrafią dorównywać, a czasem nawet przewyższyć wydajność tradycyjnych kompilatorów.
  10. Wielowątkowy – Java umożliwia programowanie wielu wątków, więc można wykorzystać moc wielu procesorów w programowaniu współbieżnym.
  11. Dynamiczny – Możliwe są zmiany w kodzie bez wpływu na działające klienty aplikacji.

Dlaczego Java – czy warto?

Każdy kto dopiero rozpoczyna naukę pierwszego języka programowania zastanawia się który wybrać na początku. Niektórzy zostają przymuszeni np. do nauki Pascala lub C na lekcjach informatyki w szkole średniej lub na pierwszym semestrze studiów. Nauka nie będzie czasem straconym, gdyż można poznać wiele technik i łatwiej będzie zrozumieć inne języki. Jednakże sama znajomość np. Pascala nie przyda się już na rynku pracy. Czy warto zacząć od Javy? Na to pytanie należy odpowiedzieć patrząc na wiele aspektów.

  1. Popularność języka wśród programistów i ewentualnie rozwój kariery.Wydaje się, że to powinno być najważniejsze kryterium wyboru. Z wyjątkiem zastosowań czysto hobbystycznych większość początkujących programistów stara się zdobywać wiedzę na temat technologii, która jest już sprawdzona. Pod tym względem należy zaznaczyć, że wg badań Java jest aktualnie jednym z najbardziej popularnych języków programowania i środowisk developerskich. Dodatkowym aspektem jest ciągle rozrastająca się biblioteka z każdą aktualizacją JDK. Potwierdzeniem stabilnej pozycji Javy jest choćby jej wiek czyli obecnie ponad 20 lat na rynku. Popularność to także społeczność skupiona wokół danej technologii. W przypadku Javy możemy liczyć na wiele poradników oraz szkoleń.
  2. Zastosowanie technologii.W zależności od założeń przy powstawaniu lub rozwoju języka programowania każdy zapewnia inne możliwości. W przypadku Javy można tworzyć zarówno aplikacje na komputer, do zastosowań serwerowych, a także opierać o nie strony internetowe. Taka swoboda wydaje się być rozsądnym argumentem przy wyborze języka. Z drugiej strony większość popularnych CMS np. WordPress jest oparty o PHP, więc do mniejszych projektów nie jest potrzebna Java.

Podsumowanie

Decyzję należy podjąć samemu, kierując się tym, pod jakim kątem chce się rozwijać. Natomiast chcemy uspokoić wszystkich, którzy myślą, że zmarnują czas lub np. nawet nie zobaczą języka na pierwszych semestrach studiów. Wiedza to element nabyty, który w przyszłości zawsze może zaprocentować. Poza tym poznając różne techniki programowania łatwiej będzie przyjąć nową wiedzę. Każdy poznany framework jest dodatkowym atutem podczas składania CV do nowej pracy.

Następny wpis Wstęp, instalacja i kompilacja