30 април 2009

Корицата на Java

Оригинално есе - Java`s Cover .
Април 2001
Това есе е резултат от разговори, които съм провел с няколко други програмисти, чудейки се защо Java изглежда съмнително. Това не е критика за Java. Това е изследване на хакерския радар .
С времето хакерите развиха усет за добрите ( и лошите ) технологии. Мисля, че може да е интересно да опитам да напиша защо Java ми изглежда подозрителна.
Някои хора, които прочетоха това, мислят, че е интересен опитът да се пише за нещо, за което не е писано досега . Други казват, че мога да имам неприятности заради желанието да пиша за неща, които не разбирам. Затова искам да изясня, че аз не пиша за Java (която никога не съм използвал ), а за хакерския радар (върху който съм мислел доста).

Афоризмът "не може да съдиш за книгата по корицата й" произлиза от времената, когато книгите се продаваха с картонени корици, които могат да се променят според вкуса на купувача. Тогава не можеше да се съди за книгата по корицата. Но от тогава издателите се развиха много - сега те се опитват да направят корицата "говореща" за самата книга.
Прекарал съм доста време в книжарници и чувствам, че се научих да разбирам всичко, което издателите се опитват да кажат за някоя книга. През времето, в което не бях в книжарниците , бях пред компютри и чувствам, че се научих да преценявам технологиите според тяхната корица. Може да е било случайност, но се спасих от някои технологии, които се оказаха наистина кофти.
Засега Java ми изглежда кофти. Никога не съм писал програма на Java и само съм прелиствал книги за нея, но усещам , че няма да е много успешен език . Може и да греша; предсказването е опасно. Но нищо не пречи да напиша защо не харесвам корицата на Java :
1. Java се рекламира много енергично. На истинските стандарти не им се налага да се промотират. Никой не е "рекламирал" C или Юникс, или HTML. Истинските стандарти са установени, преди повечето хора да ги чуят . На екрана на хакерския радар Perl е голям Java, дори по-голям , само заради своите заслуги.
2. Прицелена е много ниско. В оригиналните публикации за Java Гослинк подчертава, че тя е проектирана да не е толкова трудна за програмистите на C. Тя беше проектирана да бъде друг C++ : С плюс някои идеи от по-развитите езици. Също като ситкомите или полуготовата храна, създателите на Java умишлено са проектирали продукт за не толкова умни хора. Историческо погледнато езиците за други хора са били лоши: Cobol, PL/I, Ada, C++ . Добрите езици са били тези, които са проектирани за създателите си : С, Perl, Smalltalk, Lisp.
3. Има тъмни мотиви. Някой беше казал, че света ще е по-добро място, ако хората пишат книги само когато имат нещо за казване, а не защото са искали да напишат книга. Причината да слушаме постоянно за Java не е в това, че тя допринася за езиците за програмиране. Слушаме постоянно за нея, защото това е част от плана на Sun да прецака Microsoft.
4.Никой не я обича. Програмистите на C, Perl, Python и Lisp обичат тези езици. Не съм чул някой да казва, че обича Java.
5. Хората са принудени да я използват . Много от хората, за които знам че използват Java, го правят, защото трябва да го направят. Tрябва да го направят, за да ги финансират, или клиентите го изискват, или така са им казали мениджърите. Те са умни хора и щяха доброволно да използват тази технология, ако беше добра .
6. Има прекалено много "родители". Най- добрите езици за програмиране са създадени от малки групи. Java изглежда като управлявана от комитет. Ако тя излезе добър език това ще е първият подобен случай.
7. Тя е бюрократична. От малкото което знам за Java, изглежда , че има много протоколи за правенето на неща. Наистина добрите езици не са такива. Те ти позволяват да направиш каквото ти трябва и след това не те занимават.
8. Sun претендира , че Java е създадена от усилията на обществото на отворения код , както Perl или Python. Но тя е контролирана от гигантска компания и езика вероятно ще е същият, като обичайната продукция на големите компании.
9. Java е проектирана за големи организации. Големите организации имат различни цели от хакерите . Те искат езици, които са подходящи(или поне така се надяват) за използване от големи екипи, съставени от посредствени програмисти - езици, които могат да ограничават глупаците от правенето на прекалени глупости. Хакерите не искат езици, които да ги поучават. Хакерите искат просто мощ. Исторически погледнато езиците за големи организации(Pl/I, Ada) са се изгубили, а хакерските езици(C, Perl) победиха. Причината за това е че днешните хакери младежи утре ще са ръководители на развойната дейност.
10. Харесват я неподходящи хора. Програмистите , които уважавам , като цяло не са завладяни от Java. Кой харесва Java ? Костюмари, които не различават езиците, но чуват за Java от пресата; програмистите в големите компании, които са изненадани като разберат , че има нещо, което е по-добро и от C++; и току-що завършилите младежи, които харесват всичко, което може да им намери работа (това ли ще е на теста ? ). Мнението на тези хора се променя с всяко ново течение .
11.Собственикът й е притиснат . Бизнес моделът на Sun се проваля на две места. Евтините процесори на Intel вече са достатъчно бързи, за да работят на сървъри. А FreeBSD изглежда е подходяща за сървъри поне колкото Solaris. Рекламата на Sun настоява, че имате нужда от Sun за индустриални приложения. Ако това беше истина Yahoo щяха да са от първите клиенти на Sun, но докато работех там всички сървъри бяха само Интелски машини с FreeBSD. Това не вещае добро за Sun в бъдеще. А ако Sun има проблеми може и Java да потъне заедно с тях .
12. Военните я харесват . Министерството на отбраната съветва програмистите да използват Java. За мен това е най - страшния знак. Министерството на отбраната върши добра (и скъпа) работа за охраната на страната, но те обичат плановете и процедурите, и протоколите. Тяханата култура е противоположна на хакерската и по въпросите относно софтуера обикновенно грешат . Последният език, който Министерството на отбраната наистина харесваше, беше Ada.

Имайте предвид, че тоав не е критика към Java, а към корицата й. Не познавам добре Java за да я харесвам или не. Това е само обяснение защо не не намирам за необходимо да я изуча.

Може да изглежда неетично да отстраниш език преди дори да се опиташ да напишеш нещо на него. Но това трябва програмистите да го правят. Има прекалено много технологии, за да се изучат всички . Трябва да се научиш да преценяваш кои си заслужават времето и усилията. По подобен начин пропуснах Cobol, Ada, Visual Basic, IBM As400 , VRML , ISO 9000 , протокола SET , VMS, Novell Netware и CORBA. Те просто намирисваха.

Може да се окаже, че греша за Java. Може да се окаже, че език, създаден от една компания , за да провали друга, проектиран от комитет за "широка" публика, превъзнесен до небесата и обичан от МО, е чист, красив и мощен език, на който бих искал да програмирам. Може и да стане, но е много малко вероятно .
   

Няма коментари:

Публикуване на коментар