Programovanie

Sedem dôvodov, prečo sú rámce novými programovacími jazykmi

V 80. rokoch bol najjednoduchší spôsob, ako začať s nerdmi, vyhlásiť, že váš obľúbený programovací jazyk je najlepší. C, Pascal, Lisp, Fortran? Programátori strávili hodiny presným vysvetľovaním, prečo bol ich konkrétny spôsob vypracovania klauzuly „ak-potom-inde“ nadradený vášmu spôsobu.

To bolo vtedy. Dnes sú bitky týkajúce sa syntaxe a štruktúry z veľkej časti skončené, pretože svet sa zblížil na základe niekoľkých jednoduchých štandardov. Rozdiely medzi bodkočiarkami, zloženými zátvorkami a tým, čo nie je v jazykoch C, Java a JavaScript, sú malé. Zaujímavé debaty o písaní na stroji a uzavretí stále existujú, ale väčšina je diskutabilná, pretože medzeru uzatvára automatizácia. Ak neradi zadávate dátový typ, je veľká šanca, že počítač bude môcť odvodiť presne to, čo ste mysleli. Ak váš šéf chce JavaScript, ale máte radi Javu, krížový kompilátor prevedie všetku vašu staticky napísanú Javu na minimalizovaný JavaScript, ktorý je pripravený na spustenie v prehliadači. Prečo bojovať, keď má technológia chrbát?

Dnes je zaujímavá akcia v rámcoch. Keď som si sadol s ostatnými členmi fakulty na Univerzite Johnsa Hopkinsa a plánoval nový kurz, v rozhovore dominovali rámce. Je Angular lepší ako Ember? Je to Node.js všetko?

Navrhli sme kurz prieskumu, ktorý by skúmal architektúru najdôležitejších softvérových balíkov, ktoré sú základom internetu. Toto bolo centrum akcie, hodné kurzu prieskumu, ktorý by preskúmal architektúru najdôležitejších softvérových balíkov opierajúcich sa o dnešný internet.

V tomto zmysle sú rámce novými programovacími jazykmi. Sú miestom, kde sa nachádzajú najnovšie myšlienky, filozofie a praktickosti súčasného kódovania. Niektoré horia, ale mnohé sa stávajú novými základnými stavebnými kameňmi programovania. Tu je sedem aspektov podporujúcich trend rámcov - a vytváranie rámcov ako novej obľúbenej základne pre boje s nerdmi.

Väčšina kódovania je spájanie API

Boli časy, keď písanie softvéru znamenalo nasadiť všetky svoje znalosti programovacieho jazyka, aby ste z kódu vytlačili maximum. Dalo zmysel osvojiť si zložitosť ukazovateľov, funkcií a rozsahu - kvalita kódu závisela od konania správnej veci. V dnešnej dobe automatizáciu zvláda veľa z toho. Ak v kóde necháte bezcenné výroky, nebojte sa. Kompilátor odstráni mŕtvy kód. Ak ukazovatele necháte visieť, smetiar na to pravdepodobne príde.

Navyše, prax kódovania je teraz iná. Väčšina kódu je teraz dlhým radom volaní API. Medzi volaniami API sa príležitostne preformátujú údaje, ale aj tieto úlohy zvyčajne spracúvajú iné API. Niekoľko šťastlivcov môže napísať šikovný, bitím bijúci a žonglérsky kód pre vnútornosti svojich strojov, ale väčšina z nás pracuje s vyššími vrstvami. Jednoducho vedieme rúru medzi API.

Z tohto dôvodu je dôležitejšie pochopiť, ako sa API správa a čo môže robiť. Aké dátové štruktúry akceptuje? Ako sa správajú algoritmy, keď sa množina údajov zväčšuje? Otázky ako tieto sú pre dnešné programovanie ústrednejšie ako otázky týkajúce sa syntaxe alebo jazyka. V súčasnosti existuje skutočne veľa nástrojov, ktoré uľahčujú volanie rutiny v jednom jazyku z iného jazyka. Napríklad je relatívne jednoduché prepojiť knižnice C s kódom Java. Dôležité je pochopiť API.

Na pleciach obrov sa oplatí stáť

Predstavte si, že ste sa stali žiakom Erlangu alebo iného nového jazyka. Rozhodli ste sa, že ponúka najlepšiu platformu na písanie stabilnej aplikácie bez chýb. To je milý sentiment, ale môže trvať roky, kým prepíšete všetok kód dostupný pre Java alebo PHP do svojho najnovšieho jazyka, ktorý si vyberiete. Iste, váš kód by sa mohol ukázať byť dramaticky lepší, ale stojí to za to čas navyše?

Rámce nám umožňujú zúročiť tvrdú prácu tých, ktorí prišli pred nami. Možno sa nám nepáči architektúra, ktorú si vybrali, a môžeme sa dohadovať o detailoch implementácie, ale je efektívnejšie potlačiť naše sťažnosti a nájsť spôsob, ako sa vyrovnať s rozdielmi. Je to oveľa jednoduchšie zdediť všetko dobré a zlé z kódovej základne prostredníctvom rámca. Ak sa vydáte macho cestou, keď si budete všetko písať sami vo svojom obľúbenom novom jazyku, a nie v niektorom z jeho populárnejších rámcov, nedovolíte vám vychutnať si krém podľa vášho výberu tak rýchlo, ako by ste sa jednoducho dostali k tvorcom rámcov a ich API.

Dôležitá je znalosť architektúry, nie syntax

Keď väčšina kódovania spája hovory API, nie je veľká výhoda v učení sa zvláštností jazyka. Iste, mohli by ste sa stať expertom na to, ako Java inicializuje statické polia v objektoch, ale bolo by oveľa lepšie, keby ste prišli na to, ako využiť silu Lucene alebo JavaDB alebo inej hromady kódu. Mohli by ste stráviť mesiace hľadaním optimalizačných rutín kompilátorov Objective-C, ale učenie sa vstupov a výstupov najnovšej základnej knižnice Apple skutočne spôsobí, že váš kód bude kričať. Získate oveľa viac informácií o vyberavých detailoch rámca, ako je syntax jazyka, na ktorom rámec spočíva.

Väčšina nášho kódu trávi väčšinu času vo vnútorných cykloch knižníc. Pomôcť vám môže získanie podrobných informácií o jazyku, ale vedieť, čo sa deje v knižniciach, sa môže dramaticky vyplatiť.

Algoritmy dominujú

Naučiť sa programovací jazyk vám môže pomôcť žonglovať s údajmi uloženými v premenných, ale to vás zavedie iba tak ďaleko. Skutočnou prekážkou je dosiahnutie správnosti algoritmov, ktoré sú zvyčajne definované a implementované rámcami.

Mnoho programátorov chápe, že je nebezpečné a zbytočné tráviť čas opätovnou implementáciou štandardných algoritmov a dátových štruktúr. Iste, možno budete môcť trochu doladiť svoje potreby, ale riskujete jemné chyby. Rámce boli v priebehu rokov široko testované. Predstavujú naše kolektívne investovanie do softvérovej infraštruktúry. Nie je veľa príkladov, kedy má zmysel „odísť zo siete“, odhodiť tvrdú prácu ostatných a postaviť si algoritmickú kabínu vlastnými rukami.

Správnym prístupom je študovať rámce a naučiť sa, ako ich čo najlepšie využiť. Ak vyberiete nesprávnu štruktúru údajov, môžete z lineárnej úlohy urobiť úlohu, ktorá bude trvať dlhšie ako kvadratická funkcia veľkosti vstupu. To je veľká hádka, akonáhle sa stanete virálnym.

$config[zx-auto] not found$config[zx-overlay] not found