Programování

Sedm důvodů, proč jsou rámce novými programovacími jazyky

V 80. letech bylo nejjednodušším způsobem, jak zahájit nerdový boj, prohlásit, že váš oblíbený programovací jazyk je nejlepší. C, Pascal, Lisp, Fortran? Programátoři strávili hodiny tím, že přesně vysvětlili, proč byl jejich konkrétní způsob zpracování klauzule if-then-else lepší než váš způsob.

To bylo tehdy. Dnes jsou bitvy zahrnující syntaxi a strukturu do značné míry u konce, protože svět se sblížil v několika jednoduchých standardech. Rozdíly mezi středníky, složenými závorkami a co ne v C, Javě a JavaScriptu jsou malé. Zajímavé debaty o psaní na stroji a uzavřeních stále existují, ale většina je diskutabilní, protože automatizace zmenšuje mezeru. Pokud se vám nelíbí zadání datového typu, je velká šance, že počítač bude moci odvodit přesně to, co jste mysleli. Pokud váš šéf chce JavaScript, ale máte rádi Javu, cross-kompilátor převede veškerou vaši staticky zadanou Javu na minifikovaný JavaScript, připravený ke spuštění v prohlížeči. Proč bojovat, když má technologie záda?

Dnes je zajímavá akce v rámcích. Když jsem se posadil s dalšími členy fakulty na univerzitě Johns Hopkins University a plánoval nový kurz, v konverzaci dominovaly rámce. Je Angular lepší než Ember? Je to Node.js všechno?

Navrhli jsme kurz průzkumu, který by prozkoumal architekturu nejdůležitějších softwarových balíčků, které jsou základem internetu. Toto bylo centrum akce, hodné kurzu průzkumu, který by prozkoumal architekturu nejdůležitějších softwarových balíčků opírajících se o dnešní internet.

V tomto smyslu jsou rámce novými programovacími jazyky. Jsou tam, kde se nacházejí nejnovější myšlenky, filozofie a praktičnosti současného kódování. Některé planou, ale mnohé se stávají novými základními stavebními kameny programování. Zde je sedm aspektů, které podporují trend rámce - a vytvářejí rámce novou oblíbenou základnou pro boj s blbečky.

Většina kódování spojuje dohromady API

Bývaly doby, kdy psaní softwaru znamenalo nasadit všechny vaše znalosti programovacího jazyka, abyste z kódu vytěsnili maximum. Dalo smysl zvládnout složitost ukazatelů, funkcí a rozsahu - kvalita kódu závisela na správném postupu. V dnešní době se toho hodně zabývá automatizace. Pokud v kódu necháte bezcenné výroky, nebojte se. Kompilátor odstraní mrtvý kód. Pokud necháte houpající se ukazatele, sběratel odpadků to pravděpodobně přijde.

Navíc je nyní praxe kódování odlišná. Většina kódu je nyní dlouhá řada volání API. Mezi voláními API občas dochází k přeformátování dat, ale i tyto úlohy jsou obvykle zpracovávány jinými API. Několik šťastlivců může psát chytrý, bití bijící a ukazující žonglování kódu pro vnitřnosti našich strojů, ale většina z nás pracuje s vyššími vrstvami. Jednoduše vedeme potrubí mezi API.

Z tohoto důvodu je důležitější pochopit, jak se API chová a co může dělat. Jaké datové struktury přijímá? Jak se chovají algoritmy, když se datová sada zvětší? Otázky jako tyto jsou pro dnešní programování důležitější než otázky týkající se syntaxe nebo jazyka. Ve skutečnosti nyní existuje řada nástrojů, které usnadňují volání rutiny v jednom jazyce z jiného jazyka. Například je relativně jednoduché propojit knihovny C s kódem Java. Důležité je porozumět API.

Ramena obrů stojí za to stát

Představte si, že jste se stali žákem Erlangu nebo jiného nového jazyka. Rozhodnete se, že nabízí nejlepší platformu pro psaní stabilní aplikace bez chyb. To je pěkný sentiment, ale může trvat roky, než přepíšete veškerý kód dostupný pro Javu nebo PHP do svého nejnovějšího jazyka. Jistě, váš kód by se mohl ukázat dramaticky lepší, ale stojí to za čas navíc?

Rámec nám umožňuje využít tvrdou práci těch, kteří přišli před námi. Možná se nám nelíbí architektura, kterou si vybrali, a můžeme se dohadovat o podrobnostech implementace, ale je efektivnější potlačit naše stížnosti a najít způsob, jak se s rozdíly vypořádat. Je mnohem snazší zdědit všechno dobré a špatné kódové základny prostřednictvím rámce. Vydáte-li se macho cestou, když si budete psát vše sami ve svém oblíbeném novém jazyce, než v jednom z jeho populárnějších rámců, nedovolíte vám užít si krém vaší nové volby tak rychle, jako by se to jednoduše odložilo tvůrcům rámců a jejich API.

Důležité je znát architekturu, ne syntaxi

Když většina kódování spojuje volání API, při učení idiosynkrasií jazyka není velká výhoda. Jistě, můžete se stát odborníkem na to, jak Java inicializuje statická pole v objektech, ale bylo by mnohem lepší přijít na to, jak využít sílu Lucene nebo JavaDB nebo nějaké jiné hromady kódu. Mohli byste strávit měsíce hledáním optimalizačních rutin kompilátorů Objective-C, ale naučením se vstupů a výstupů nejnovější základní knihovny Apple bude váš kód opravdu křičet. Získáte mnohem více informací o vybíravých detailech rámce než o syntaxi jazyka, na kterém rámec spočívá.

Většina našeho kódu tráví většinu času ve vnitřních smyčkách knihoven. Správné získání podrobností o jazyce může pomoci, ale vědět, co se děje v knihovnách, se může dramaticky vyplatit.

Algoritmy dominují

Naučit se programovací jazyk vám pomůže žonglovat s údaji uloženými v proměnných, ale to vás zavede jen tak daleko. Skutečnou překážkou je získání správných algoritmů a ty jsou obvykle definovány a implementovány rámci.

Mnoho programátorů chápe, že je nebezpečné a zbytečné trávit čas re-implementací standardních algoritmů a datových struktur. Jistě, můžete to trochu naladit podle svých potřeb, ale riskujete jemné chyby. Rámečky byly v průběhu let široce testovány. Představují naše kolektivní investování do softwarové infrastruktury. Není mnoho příkladů, kdy má smysl „odejít ze sítě“, odhodit tvrdou práci ostatních a postavit algoritmickou kabinu vlastními rukama.

Správným přístupem je prostudovat rámce a naučit se, jak je co nejlépe využít. Pokud zvolíte nesprávnou datovou strukturu, můžete z lineární úlohy udělat tu, která zabere čas, který je kvadratickou funkcí velikosti vstupu. To je velký problém, jakmile se stanete virálním.