Programování

Java ve 20 letech: Jak to navždy změnilo programování

Vzpomenout si, jaký byl programovací svět v roce 1995, není snadný úkol. Objektově orientované programování bylo pro jednoho akceptovaným, ale zřídka praktikovaným paradigmatem, přičemž mnoho z toho, co prošlo jako takzvané objektově orientované programy, bylo jen o něco více než rebrandovaný C kód, který používal >> namísto printf a třída namísto struktur. Programy, které jsme tehdy psali, rutinně vyhodili jádro kvůli aritmetickým chybám ukazatele nebo došly paměti kvůli únikům. Zdrojový kód bylo stěží možné přenést mezi různými verzemi Unixu. Provozování stejného binárního souboru na různých procesorech a operačních systémech byla šílená řeč.

Java to všechno změnila. I když na platformě závislý, manuálně přidělený, procedurální C kód bude i nadále s námi minimálně dalších 20 let, Java dokázala, že to byla volba, ne požadavek. Poprvé jsme začali psát skutečný produkční kód v multiplatformním, objektově orientovaném jazyce sběru odpadků; a líbilo se nám to ... miliony z nás. Jazyky, které přišly po Javě, zejména C #, musely vyčistit novou vyšší hranici produktivity vývojářů, kterou Java zavedla.

James Gosling, Mike Sheridan, Patrick Naughton a další programátoři projektu Sun’s Green Project nevynalezli většinu důležitých technologií, které Java rozšířila. Většina klíčových funkcí, které zahrnovaly tehdy známý jako dub, našla svůj původ jinde:

  • Základní třída objektu, ze které sestupují všechny třídy? Pokec.
  • Silná statická kontrola typu v době kompilace? Ada.
  • Více rozhraní, jedna dědičnost implementace? Cíl-C.
  • Vložená dokumentace? CWeb.
  • Cross-platformní virtuální stroj a bajtový kód s kompilací just-in-time? Smalltalk znovu, zejména Sun's Self dialect.
  • Odpadky? Lisp.
  • Primitivní typy a řídicí struktury? C.
  • Systém dvojího typu s neobjektivními primitivními typy pro výkon? C ++.

Java však byla průkopníkem nového území. Nic jako zaškrtnuté výjimky není v žádném jiném jazyce k dispozici dříve ani potom. Java byla také prvním jazykem, který používal Unicode v nativním typu řetězce a v samotném zdrojovém kódu.

Hlavní výhodou Javy však bylo, že byla vytvořena jako praktický nástroj pro práci. Popularizoval dobré nápady ze starších jazyků tím, že je přebalil do formátu, který byl znám průměrnému kodéru C, ačkoli (na rozdíl od C ++ a Objective-C) Java nebyla striktní nadmnožinou C. Ve skutečnosti to byla právě tato ochota nejen přidávat ale také odstranit funkce, díky nimž je Java mnohem jednodušší a snadněji se učí než ostatní objektově orientovaní potomci C.

Java neměla (a stále nemá) struktury, odbory, typedefs, a záhlaví soubory. Objektově orientovaný jazyk, který nebyl spoután požadavkem na spuštění staršího kódu, je nepotřeboval. Podobně Java moudře vynechala myšlenky, které byly vyzkoušeny a byly shledány nežádoucími v jiných jazycích: nejnápadněji patrné vícenásobné implementační dědictví, aritmetika ukazatele a přetížení operátoru. Tento dobrý vkus na začátku znamená, že i o 20 let později je Java stále relativně bez varování „tady buďte draci“, která vrhají průvodce styly pro jeho předchůdce.

Zbytek programovacího světa však nezastavil. Od doby, kdy jsme poprvé začali programovat Javu, vzrostly tisíce programovacích jazyků, ale většina z nich nikdy nedosáhla více než nepatrného zlomku kolektivní pozornosti, než nakonec zmizela. To, co nás na Javě prodávalo, byly applety, malé programy běžící uvnitř webových stránek, které mohly komunikovat s uživatelem a dělat víc než zobrazovat statický text, obrázky a formuláře. Dnes to už moc nezní, ale pamatujte - v roce 1995 JavaScript a DOM neexistovaly a forma HTML, která mluvila se skriptem CGI na straně serveru napsaným v Perlu, byla nejmodernější.

Je ironií, že applety nikdy nefungovaly příliš dobře. Byli úplně izolováni od obsahu stránky, nebyli schopni číst nebo psát HTML, jak to JavaScript nakonec mohl. Omezení zabezpečení zabránila appletům v interakci s místním souborovým systémem a síťovými servery třetích stran. Díky těmto omezením byly applety vhodné pro více než jednoduché hry a animace. Dokonce i tyto triviální důkazy konceptu byly brzděny špatným výkonem raných prohlížečů virtuálních strojů. A v době, kdy byly nedostatky appletů opraveny, prohlížeče a front-end vývojáři už dávno prošli Javou. Flash, JavaScript a nejnověji HTML5 nás zaujaly jako mnohem efektivnější platformy pro poskytování dynamického webového obsahu, které nám Java slíbila, ale nedodala.

Přesto nás applety inspirovaly k práci s Javou a objevili jsme čistý jazyk, který vyhladil mnoho drsných hran a bodů bolesti, se kterými jsme bojovali v alternativách, jako je C ++. Samotný automatický sběr odpadu stál za cenu vstupného. Applety mohly být přehnané a nedostatečně doručené, ale to neznamená, že Java nebyla zatraceně dobrým jazykem pro jiné problémy.

Původně zamýšlená jako klientská knihovna pro různé platformy, našla Java skutečný úspěch v prostoru serveru. Skutečné problémy pro nás i pro podnikání vyřešily servlety, stránky serveru Java a řada podnikově zaměřených knihoven, které byly pravidelně sdružovány a rebrandovány do jedné matoucí zkratky nebo jiné. Kromě marketingových selhání dosáhla Java téměř standardního stavu v IT odděleních po celém světě. (Rychle: Jaký je rozdíl mezi verzí Java 2 Enterprise Edition a Java Platform Enterprise Edition? Pokud jste uhodli, že J2EE je nástupcem JEE, dostali jste to přesně dozadu.) Některé z těchto produktů zaměřených na podnikání byly na straně těžké váhy a inspirovaly se k otevření zdrojové alternativy a doplňky, jako je Spring, Hibernate a Tomcat, ale všechny byly postaveny na vrcholu základny Sun set.

Pravděpodobně jediným nejdůležitějším příspěvkem otevřeného zdroje do Javy a širší programovací sféry je JUnit. Testovaný vývoj (TDD) byl vyzkoušen dříve u Smalltalk. Stejně jako mnoho jiných inovací tohoto jazyka však TDD nedosáhlo širokého zájmu a přijetí, dokud nebylo k dispozici v Javě. Když Kent Beck a Erich Gamma vydali JUnit v roce 2000, TDD rychle vystoupilo z experimentální praxe několika programátorů na standardní způsob vývoje softwaru v 21. století. Jak řekl Martin Fowler: „Nikdy v oblasti vývoje softwaru tolik nedlužilo tolik až tak málo řádků kódu,“ a těch pár řádků kódu bylo napsáno v Javě.

Dvacet let od svého založení již Java není šmrnc. Stalo se zavedeným zavedeným úřadujícím jiným jazykem, proti nimž se vzbouřili. Lehčí jazyky, jako jsou Ruby a Python, významně pronikly na území Javy, zejména v komunitě startupů, kde rychlost vývoje počítá více než robustnost a rozsah - kompromis, který samotná Java využila v raných dobách, kdy výkon virtuálních strojů značně zaostává za kompilovaným kódem.

Java samozřejmě nestojí na místě. Společnost Oracle i nadále zahrnuje osvědčené technologie z jiných jazyků, jako jsou obecné, autoboxing, výčty a nejnověji lambda výrazy. Mnoho programátorů se s těmito myšlenkami poprvé setkalo v Javě. Ne každý programátor zná Javu, ale ať už o ní ví, nebo ne, každý dnešní programátor ji ovlivnil.

Související články

  • Recenze: Porovnány velké 4 Java IDE
  • Java navždy! 12 klíčů k trvalé dominanci Javy
  • Java vs. Node.js: epická bitva o sdílení mysli vývojářů
$config[zx-auto] not found$config[zx-overlay] not found