więcej niż java scan.pdf

(6366 KB) Pobierz
749896084 UNPDF
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Wiêcej ni¿ Java
SPIS TREŒCI
KATALOG KSI¥¯EK
Autor: Bruce Tate
T³umaczenie: Pawe³ Koronkiewicz
ISBN: 83-246-0329-8
Tytu³ orygina³ u: Beyond Java
Format: B5, stron: 180
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Java jest obecna na rynku od ponad 10 lat. Przez ten czas zyska³a ogromn¹
popularnoœæ i znacznie zmieni³a swoje oblicze. Przesta³a byæ jêzykiem
wykorzystywanym do tworzenia mniej lub bardziej przydatnych apletów na strony
WWW. Jest teraz potê¿n¹, uniwersaln¹ platform¹ programistyczn¹ u¿ywan¹ do
budowania aplikacji korporacyjnych i finansowych. Jednoczeœnie istniej¹ obszary,
w których Java nie jest wystarczaj¹co elastyczna, a jej z³o¿onoœæ staje siê problemem.
Na rynku pojawi³y siê narzêdzia maj¹ce uproœciæ tworzenie rozbudowanych systemów
za pomoc¹ Javy, jak na przyk³ad Spring czy Hibernate. Jednak czy opracowanie
zupe³nie nowych platform programistycznych nie spowolni triumfalnego pochodu Javy?
W ksi¹¿ce „Beyond Java” Bruce Tate zastanawia siê nad przysz³oœci¹ jêzyków
programowania. Przedstawia Ÿród³a popularnoœci Javy i ogromne korzyœci, jakie
wnios³a do wspó³czesnej informatyki. Wskazuje problemy, z jakimi borykaj¹ siê
programiœci korzystaj¹cy z Javy. Wreszcie dokonuje przegl¹du konkurencyjnych
jêzyków programowania, zastanawiaj¹c siê, w czym s¹ lepsze, a w czym gorsze
od Javy i który z nich ma szansê zagroziæ jej pozycji na rynku.
• Powody malej¹cej popularnoœci C++
• Rozwój technologii open source
• Prawdy i mity zwi¹zane z Jav¹
• Wady Javy
• Potencjalni konkurenci Javy
• Œrodowisko Ruby on Rails
• Przysz³oœæ serwerów kontynuacyjnych
Jeœli chcesz wiedzieæ, jakiego jêzyka programowania bêdziesz u¿ywa³ za 5 lat,
przeczytaj¹ tê ksi¹¿kê
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ONOWOŒCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
749896084.003.png 749896084.004.png 749896084.005.png 749896084.006.png
Przedmowa ..................................................................................................................... 5
1. Sowy i strusie .................................................................................................................. 9
Ignorancja jako cnota
10
Gotowanie żab
12
Nowe horyzonty
17
Perspektywy
19
2. Burza doskonała ............................................................................................................21
Znaki nadchodzącej burzy
21
Doświadczenie C++
25
Oberwanie chmury
29
Żywioły szaleją
32
Skutki
37
Co dalej?
38
3. Klejnoty koronne .......................................................................................................... 39
Maszyna wirtualna JVM
40
Internet
44
Środowisko korporacyjne
46
Społeczność
49
Koniec mitów
50
4. Rysa na szkle ................................................................................................................. 55
Nowe obowiązki Javy
55
Podstawowe problemy języka Java
59
Kontrola typów
61
Prymitywy
69
Na odchodnym
70
Dlaczego po prostu nie poprawić Javy?
73
3
749896084.001.png
5. Reguły gry ..................................................................................................................... 75
Java podnosi poprzeczkę
75
Integracja przedsiębiorstw
79
Przyciąganie uwagi
81
Elementy języka
85
Potencjalni konkurenci
90
6. Język Ruby ..................................................................................................................... 95
Podstawy Ruby
95
Struktury kodu
102
Podsumowanie
113
7. Ruby on Rails ............................................................................................................... 115
Gra w numerki
115
Rails w przykładach
120
Rails od środka
127
Podsumowanie
130
8. Serwery kontynuacyjne .............................................................................................. 133
Problem
133
Kontynuacje
135
Serwery kontynuacyjne
139
Seaside
143
Przykładowa aplikacja Seaside
145
Co z tego wynika?
149
9. Język przyszłości .......................................................................................................... 151
Faworyci wyścigu
152
Inni uczestnicy
161
Nowy przebój
166
Skorowidz ................................................................................................................... 169
4
Spis treści
ROZDZIAŁ 1.
Znam kajakarzy, których postawa nie pozostawia wątpliwości — chcą zginąć. Lecą w dół od-
cinkami klasy V, ignorując wszelkie niebezpieczeństwa 1 . Wydaje się, że tylko kwestią czasu jest
nadejście momentu, w którym wpadną na wodospad, gdzie utknęła kłoda drzewa. Przeszkoda
zatrzyma kajak, a ten — przyciskany opadającymi zwałami wody — już nigdy się nie wynurzy.
Są oni jak strusie, które szybko zapominają o niebezpieczeństwie po schowaniu głowy w piasek.
Jest też inny rodzaj kajakarza. Kiedy ja zająłem się tym sportem, każdy odcinek musiałem naj-
pierw dokładnie zbadać, przejść się wzdłuż niego, poznać zagrożenia. Zatrzymywałem się przy
każdym, najzwyklejszym przejściu klasy II+ (poziom „dla początkujących”), aby popatrzeć jak
wygląda i nierzadko decydowałem się zainstalować zabezpieczenia. Często skutek był taki,
że kończył mi się czas i byłem zmuszony z duszą na ramieniu płynąć ostatnim odcinkiem rzeki
znacznie szybciej, aby zdążyć przed zmrokiem. Teraz, mając pewne doświadczenie, nie oglą-
dam już tak szczegółowo każdego bardziej spienionego przesmyku. W wielu miejscach nie
ma to po prostu sensu. Zacząłem natomiast stosować techniki „chase boating”, wypracowane
w wąskich i rwących strumieniach południowo-wschodnich stanów USA. Nie oznacza to wca-
le, że bardziej polubiłem ryzyko. Można powiedzieć, że koncentruję się bardziej na identyfi-
kacji obszarów faktycznego zagrożenia. Dzięki temu zawsze mam czas na przeprowadzenie
rozpoznania odcinków, których znajomość jest najbardziej potrzebna. Taki styl kajakarstwa
można określić stylem sowy.
Podobnie jest w wielu innych dziedzinach. Często decyduję się na zignorowanie zagrożeń
wywołujących mało znaczące konsekwencje lub rzadko występujących dlatego, że rozwiązy-
wanie związanych z nimi problemów nie jest opłacalne. Szukanie i wdrażanie stuprocentowo
poprawnych rozwiązań wymaga zbyt wiele wysiłku, pieniędzy lub czasu i niejednokrotnie
prowadzi do powstania zupełnie nowych problemów. Na tym właśnie polega przewaga so-
wy nad strusiem. Na ogół te dwie postawy skrajnie różnią się od siebie. Należy jednak przy-
znać, że od czasu do czasu sowy również stają się zbyt pewne siebie albo popełniają drobne
błędy w ocenie ryzyka. W efekcie kajakarz pokonuje niebezpieczny odcinek bez wstępnego
rozpoznania. Mam za sobą takie pamiętne doświadczenie. Pływałem tą samą rzeką setki razy
i widziałem zaskakujące zmiany, czy to głębokości, czy układu koryta po powodzi. Różnica
między sową a strusiem nie jest tak wielka, jak mogłoby się wydawać. Często wręcz trudno
ją wskazać. Jako kajakarz, skoro już zdecydowałem się ignorować pewne rodzaje niebezpie-
czeństw na pewnych rzekach i pod pewnymi warunkami, od czasu do czasu muszę wrócić do
punktu wyjścia i przeprowadzić ponowną ocenę ryzyka. I o tym jest ta książka.
1
9
Mowa o rwących górskich potokach — przyp. tłum.
749896084.002.png
Ignorancja jako cnota
Można snuć wiele paraleli między kajakarstwem a programowaniem. W którymś momencie
nauczyłem się wspaniałej sztuczki — ignorowanie większości problemów pozwala uzyskać
niezwykłą produktywność. Przy odrobinie szczęścia wiele z nich z czasem po prostu przestaje
istnieć. Oczywiście, taka postawa może być korzystna i skuteczna lub nie. Skuteczność tej
techniki odkryli już dawno pracownicy urzędów pocztowych i słabo opłacani ekspedienci
fast foodów. Sprawdza się ona w odniesieniu do ich problemów, zwanych najczęściej klienta-
mi. Mówimy tu oczywiście o strusiach. Jeżeli jednak przyjrzymy się temu dokładniej, niejedno-
krotnie znajdziemy w takim postępowaniu selektywne, mądre zastosowanie ignorancji — znak
rozpoznawczy sowy. Praktyka przekonała mnie, że większość „problemów” procesu progra-
mowania to w istocie problemy potencjalne . Czytelnik, który zna chociaż jedną z moich wcze-
śniejszych książek, pamięta zapewne, że uwielbiam pisać o zagrożeniach wynikających z przed-
wczesnej optymalizacji i powtarzać popularną zasadę Agile Programming — YAGNI : „You ain’t
gonna need it”, czyli „Nie wykorzystasz tego”. Zazwyczaj też trzymam się z dala od rozbu-
dowanych systemów, które obiecują wielkie oszczędności czasu i ułatwione programowanie,
a ufam swojemu instynktowi skłaniającemu mnie ku prostszym rozwiązaniom.
Wracając do tematu, pewnego dnia stwierdziłem, że Java ma wszystko, czego potrzebuję,
i przestałem interesować się światem poza nią. Niewiedza jest słodka. Wiem, że istnieją języ-
ki bardziej dynamiczne, czasem też pozwalające na większą produktywność. Jednak, gdy roz-
ważam różne aspekty i fragmenty pełnego obrazu, Java okazuje się na dłuższą metę najlepsza.
W tym języku napisano już dziesiątki tysięcy najróżniejszych bibliotek i systemów umożliwia-
jących stworzenie każdego rozwiązania, począwszy od obsługi reaktora atomowego, na pro-
gramowaniu mikrosterownika wbudowanego w elektryczne szczypce do paznokci kończąc. Są
one najczęściej określane nazwą framework , co można tłumaczyć jako „platforma” lub po prostu
„system”. Wiele z nich można wykorzystywać bezpłatnie. Nie ma też nigdy problemu ze zna-
lezieniem programisty języka Java, który napisze nowy fragment programu. Wiem, że jest to ję-
zyk sprawdzony, a klienci ufają jego mechanizmom. Krótko mówiąc, środowisko i zakres moż-
liwości Javy od wielu lat przewyższają to, co oferuje konkurencja. W końcu przestałem szukać
innych dróg. Cieszę się, że taki moment nastąpił, ponieważ zyskałem dzięki temu czas na stwo-
rzenie prężnie działającej firmy i dopracowanie oferowanych rozwiązań. Zamiast prowadzić sze-
roko zakrojone „badania”, mogłem spokojnie i z należytą uwagą zająć się problemami klientów.
Kiedy dominujący język lub technologia osiągają szczyt swojego rozwoju, następuje moment
słodkiej ignorancji, prawdziwa sielanka, okres spokojnej pracy, w którym całkowite odrzuce-
nie potencjalnych możliwości działa na naszą korzyść. Zilustrowałem to na rysunku 1.1. Kiedy
pojawia się nowy język o takich możliwościach i zasięgu, jak Java czy C++, można na pewien
czas pozwolić sobie na ignorancję. Problem pojawia się wówczas, gdy przeoczymy koniec ta-
kiego okresu. Pewnego dnia konkurencja okazuje się lepsza, osiąga większą wydajność pracy,
a co z tym związane wyższą jakość, produktywność i liczbę klientów. Kiedy rozpoczyna się
okres przejściowy, niewiedza nie popłaca.
Bez wstydu przyznaję, że lubiłem trzymać głowę w piasku. Było to łatwe, produktywne i,
w owym czasie, poprawne politycznie. Jestem przekonany, że identycznie postąpiło wielu
innych programistów języka Java, choć może nie zawsze z tego samego powodu. Życie pod
kloszem jest niewątpliwie łatwiejsze — niepodejmowanie żadnego działania przynosi więcej ko-
rzyści niż praca po godzinach. Człowiek ma poczucie bezpieczeństwa — nie zwalnia się za wy-
branie marki IBM (choć może Component Broker w OS/2 nie był najlepszym pomysłem…).
10
Rozdział 1. Sowy i strusie
Zgłoś jeśli naruszono regulamin