<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>Albowiem</title><link>http://wuub.jogger.pl/</link><description>Wpisy z dziennika internetowego Jogger, wspomaganego przez Jabbera</description><lastBuildDate>Thu, 17 May 2012 21:17:58 +0200</lastBuildDate><generator>JoggerPL</generator><item><title>Java is the most distressing thing to happen to computing since MS-DOS. (Alan Kay)</title><link>http://wuub.jogger.pl/2007/02/07/java-is-the-most-distressing-thing-to-happen-to-computing-si/</link><description>&lt;p&gt;Z kilku mniej lub bardziej zależnych ode mnie powodów brałem (biorę?) udział w dwóch dużych projektach używających Javy jako głównego języka programowania. Aby dokładniej ustalić perspektywę: pierwszy projekt (a) wygenerował sporo ponad 1MB kodu, w drugim (b) powstało go niewiele mniej niż 1MB. Nie jest to monstrualnie dużo, ale nie jest też mało biorąc pod uwagę, że przy projekcie (a) pracowały 4 osoby, a przy projekcie (b) jedna - uważnemu czytelnikowi pozostawiam wydedukowanie kto :).&lt;/p&gt;
&lt;p&gt;Przyznam się szczerze, że jeszcze przed napisaniem pierwszej liniki byłem nienajlepiej nastawiony do całej idei Javy. Większość języków można podzielić między następujące kategorie:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stara gwardia jak C czy Lisp, tworzona z myślą o tym jak działa &lt;em&gt;procesor i/lub kompilator;&lt;/em&gt;. Reprezentuje prawdziwie &quot;oldskulowe&quot; podejście - wydajność przede wszystkim.&lt;/li&gt;
&lt;li&gt;Narzędzia stworzone do konkretnych zadań, w konkretnych warunkach, z myślą o realizowaniu &lt;em&gt;nowych funkcji&lt;/em&gt;. Doskonałym przykładem jest Ada projektowana pod jasne wymagania DARPA (lepiej nie myśleć do czego była/jest używana).&lt;/li&gt;
&lt;li&gt;Języki &lt;em&gt;akademickie&lt;/em&gt; jak Smalltalk, Linda albo Prolog - purytańskie, proof of concept. Chociaż z czasem lubią migrować do komercyjnych zastosowań.&lt;/li&gt;
&lt;li&gt;Dość popularne (nie bez przyczyny) tzw. języki skryptowe nastawione na &lt;em&gt;wydajność/wygodę/przejrzystość&lt;/em&gt; jak Ruby i Python.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Jak długo język wpisuje się w ten schemat, tak długo wszystko jest w porządku. Nawet jeśli taki OCaml, ze swoim wiecznie niezadowolonym i wchodzącym mi w drogę systemem typów, jest irytujący do granic możliwości, to wiem że jest to kwestia osobnicza. Fakt, że źle MI się pracuje z jakimś narzędziem, nie oznacza od razu, że jest ono wadliwe. Spróbowałem, obiektywnie doceniam siłę wyrazu i kod ludzi którym ono pasuje, ale subiektywnie kodować w nim nie chcę. Koniec historii, bez flejmów, inkwizycji i indoktrynacji niewiernych. Alternatyw jest wiele, a o gustach się nie dyskutuje.&lt;/p&gt;
&lt;p&gt;Java jest inna. Nie jest super wydajna, nie rozwiązuje nowych problemów (Java is in many ways (C++)--), tylko udaje czystą obiektowość, a już na 100% nie przejmuję się wygodą i wydajnością programisty. Nie ma żadnych ciekawostek, niczym nie zachwyca. Więc po co? O co chodzi? Dlaczego im się chciało?&lt;/p&gt;
&lt;p&gt;Jakie pobudki mogły kierować wielką korporacją, przy tworzeniu języka, który jest nijaki do sześcianu? Kto przy zdrowych zmysłach próbuje wyrzucić _wszystko_ co ciekawe? Dlaczego naprostszy pomysł musi mieć trzyliterowy skrót (tm)? Czemu musi się od razu stać Technologią Z Poważnie Brzmiącą Nazwą (r)(tm)(c)(omg)(wtf) (żeby daleko nie szukać weźmy JavaBeans'y)? Czy ktoś się pomylił?&lt;/p&gt;
&lt;p&gt;Ha! Wiem. Nikt nie popełnił błędu, wszystko jest doskonale przemyślane. Java nie ma uszczęśliwiać procesora i pamięci jak C, kompilatora jak Lisp, ani programisty jak Ruby. Java ma uszczęśliwiać &lt;em&gt;zarząd&lt;/em&gt;, pana dyrektora (PHB) i akcjonariuszy. Wszystkie te standardy określające nawet najgłupsze pierdoły, sprawiają że człowiek nie tyle programuje, co &lt;em&gt;generuje kod&lt;/em&gt; (no, pomaga eclipse generować kod klikając odpowiednie przyciski). Zysk dla korporacji jest niebagatelny, praktycznie w każdej chwili, można wymienić dowolnego programistę na nowego, sprowadzić kodowanie do poziomu pracy fizycznej, przeliczalnej na osobogodziny.&lt;/p&gt;
&lt;p&gt;Nie obchodzi mnie, że połowa ogłoszeń dotyczy &quot;programistów J2EE/Java&quot; albo innych .NETów (tu przynajmniej jest kilka ciekawych zabawek jak CLI). Programuję w pierwszej kolejności bo lubię, dopiero w drugiej bo mi za to płącą. Generowania kodu w Javie nienawidzę, więc będę bardziej niż szczęśliwy, jeśli po te pieniądze schyli się ktoś inny. Tak, schyli się to dobre słowo!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description><pubDate>Wed, 07 Feb 2007 02:07:48 +0100</pubDate><guid>http://wuub.jogger.pl/2007/02/07/java-is-the-most-distressing-thing-to-happen-to-computing-si/</guid><category>Ogólne</category><category>programowanie java</category></item><item><title>Na dzień dobry, dla Lisa :)</title><link>http://wuub.jogger.pl/2007/01/31/na-dzien-dobry-dla-lisa/</link><description>&lt;p&gt;&lt;img src=&quot;http://www.thebestpageintheuniverse.net/images/bigpot6.jpg&quot; alt=&quot;sponsor&quot;&gt;&lt;/p&gt;
</description><pubDate>Wed, 31 Jan 2007 00:39:19 +0100</pubDate><guid>http://wuub.jogger.pl/2007/01/31/na-dzien-dobry-dla-lisa/</guid><category>Ogólne</category><category>vege</category></item></channel></rss>
