Recenzje archiwalne

Recenzja numeru 4/2007

Okładka numeru 4/2007 SDJ

Ten numer ucieszy na pewno programistów piszących w językach Java i JavaScript, ponieważ większa część artykułów została poświęcona właśnie im. Ponieważ nie znam zbyt dobrze tych języków, ograniczę się tylko do opisania czego dotyczą te artykuły, a szerzej omówię tylko te związane z językiem C++.

Aktualności

W tym dziale możesz przeczytać o premierze nowego dziecka Microsoftu, czyli Windows Vista, oraz o kontrowersjach, jakie pojawiły się wokół tego systemu. Autor trochę zbyt entuzjastycznie podchodzi do tej wersji Windowsa, skupiając się przede wszystkim na jego ulepszonym interfejsie użytkownika i poprawionej wygodzie pracy zapominając, że te udoskonalenia [a nawet więcej] były już wcześniej dostępne w systemach MacOS X i Linux, a nowatorstwo panów z MS sprowadza się jak zwykle do kopiowania. Chyłkiem wspomina także o minusach, czyli sporych wymaganiach sprzętowych, mniejszej wydajności, restrykcyjnych systemach DRM i licencji. Omawia też nowości wprowadzone w pakiecie Microsoft Office 2007.

Przedstawiono tutaj także opis nowej wersji rozbudowanego środowiska programistycznego KDevelop dla środowiska KDE na systemy unixowe. Lista zmian w stosunku do wersji poprzedniej jest imponująca, więc warto się z nią zapoznać.

Oprócz tego znajdziesz w tym dziale informacje o tym, jak ma się rozwój stałego dostępu do Internetu w Polsce, ile zarabia Google, a także o tym, że YouTube ma zamiar podzielić się zyskami ze swoimi użytkownikami, że firmie Microsoft szykuje się kolejny proces antymonopolowy, oraz że format PDF stanie się wkrótce standardem zaaprobowanym przez ISO.

Płyta CD-ROM

Na płycie znajdziesz pełną wersję menedżera plików Directory Opus 6, który jest prawdziwym kombajnem do pracy z plikami, zarówno na lokalnym dysku, jak i zdalnymi i archiwalnymi. Dorównuje możliwościami menedżerom plików dla Linuxa, takim jak Konqueror. Pozwala na pracę ze spakowanymi archiwami, dostęp do plików zdalnych przez FTP, podglądania różnych plików [w tym graficznych], tworzenia pokazów slajdów itp. Znajdziesz też kilka programów graficznych, jakże potrzebnych każdemu programiście ;-P Najsmakowitszym kąskiem będzie z pewnością kompletne archiwum numerów SDJ wydanych w roku 2006, w formie elektronicznej [PDF].

Artykuły

Jeśli programujesz aplikacje WWW, na pewno ucieszy cię artykuł opisujący bibliotekę widgetów dla JavaScript, zwaną DOJO. Umożliwia ona wygodne tworzenie rozbudowanych graficznych interfejsów użytkownika bezpośrednio w oknie przeglądarki. Jej jedyną wadą jest stosowanie niestandardowych atrybutów wewnątrz tagów HTML, co może się nie podobać walidatorowi W3C. W artykule podano przykład tworzenia takiej aplikacji. Autor bardzo przystępnie przedstawia tą bibliotekę, pokazuje przykłady jej użycia i porównuje ją z biblioteką Googli GWT. Nie wiem tylko, czemu myli mu się JavaScript z Javą ;-J

Kolejny artykuł omawia użycie Laszlo, czyli... no właśnie, tego się z artykułu nie dowiemy :-P Autor nie napisał właściwie żadnego wprowadzenia. Skupia się jedynie na instalacji i użyciu owego Laszlo do tworzenia aplikacji webowych, i to zresztą też głównie na zasadzie omawiania listingów kodu. Wygląda to zresztą tak, jakby tekst był skopiowany z jakiejś strony WWW lub dokumentu, ponieważ zawiera niesformatowane nagłówki wplecione w treści akapitów ;-P

Jest też artykuł o stosowaniu in-memory cache [pamięci podręcznej przechowywanej w pamięci operacyjnej] w aplikacjach pisanych w języku Java. Pozwala to przyspieszyć dostęp do danych, do których w przeciwnym razie czas dostępu byłby dłuższy. Autor pokazuje to na przykładzie biblioteki JBoss Cache.

Fani języka Java mogą sobie także poczytać o bibliotece Mule, której zadaniem jest zapewnianie łączność między różnymi systemami, komunikującymi się ze światem zewnętrznych przy pomocy niezgodnych ze sobą protokołów. Mule może służyć jako wspólna magistrala, pomagająca tym systemom się porozumieć.

Ostatnim z artykułów poświęconych językowi Java jest obszerny tekst o wzorcach projektowych stosowanych w rozwiązaniach biznesowych. Ponieważ jest to jeden z kilku artykułów z tej serii, a ja niezbyt dobrze znam język Java, więc trudno mi się wypowiedzieć na jego temat.

Mogę się za to wypowiedzieć na temat dwóch artykułów poświęconych językowi C++. Pierwszy opowiada o ewolucji wzorca projektowego pozwalającego zrealizować polimorfizm zewnętrzny. Autor omawia tą ewolucję na prostym przykładzie, pokazując jego rozwój i stopniowe uogólnianie się kodu. Zaczyna od typowego wzorca Adaptera. Później uogólnia go, tworząc z niego szablon. W miarę rozwoju potrzeb, wzorzec ewoluuje do postaci modelu Delegatów, aż staje się dość rozbudowanym systemem obsługi zdarzeń, opartym o wzorzec Obserwatora. Szkoda tylko, że autor używa dość skomplikowanego języka [powiedziałbym wręcz bełkotliwego :-P], co może utrudnić zrozumienie tego zagadnienia. Więcej udało mi się zrozumieć patrząc na sam kod przykładowy i diagramy UML, niż z opisu słownego [a'propos diagramów - rysunek 3 zawiera błąd: jeden z niebieskich prostokątów powinien zawierać w sobie player->stop()].

Drugi artykuł poświęcony językowi C++ jest za to bardzo przystępnie napisany i przyjemnie mi się go czytało :-) Autor omawia w nim szablony funkcji, klas i metod - co to jest, jak tego używać i do czego się to przydaje ;-) Jest to chyba najlepiej napisany artykuł w całej gazecie i moim zdaniem najbardziej praktyczny. Polecam go nawet początkującym programistom C++, którzy chcieliby nauczyć się używać szablonów.

Sprawy literacko-językowe

Z żalem muszę zarzucić redakcji SDJ, że za słabo się przykłada do jakości tłumaczeń i korekty językowej. W gazecie na takim poziomie nie spodziewałem się napotkać literówek [np. "archowum"] ani błędnych odmian wyrazów [np. "poprawiony silniki", "środowiska graficznym KDE" itp.]. Zdziwiłem się też, gdy na 46 stronie zobaczyłem zawartość tabelki po angielsku, zupełnie nie przetłumaczoną.

Chociaż może to i lepiej, bo w niektórych miejscach używane są dość dziwne tłumaczenia niektórych wyrazów, np. "punkty wstrzymania" [ang. breakpoints], "szczepienia" [ang. coupling, powinno być raczej "związania" lub "sparowania"], neologizmy: "deprekacji", "notyfikacji", czy kalki językowe: "ewaluacji wyrażeń w miejscu" [niech zgadnę: in-place evaluation? ;-P], "kompletowanie kodu" [code completion to raczej "autouzupełnianie kodu"], "instancji" [object instance to raczej "egzemplarz obiektu" i w jednym miejscu zostało to ładnie przetłumaczone].

Redakcja powinna popracować nad ujednoliceniem używanego języka i postarać się używać tłumaczeń ogólnie przyjętych. Moim zdaniem lepiej brzmi "programowanie ogólne", niż kalka językowa "programowanie generyczne" [ang. generic programming]. Może przydałyby się jakieś odgórne zalecenia dla autorów artykułów co do stosowanego słownictwa?


Subskrybcja

Buttony
Button1 Button2 Button3 Button4 Button5 Button6 Button7 Dodaj swój button