7 razloga zašto su okviri novi programski jezici

Osamdesetih godina prošlog stoljeća najlakši način da započnete borbu štrebera bio je proglasiti da je vaš omiljeni programski jezik najbolji. C, Pascal, Lisp, Fortran? Programeri su satima objašnjavali zašto je njihov određeni način izrade klauzule ako-onda-drugi superiorniji od vašeg načina.

Tada je to bilo. Danas su bitke koje uključuju sintaksu i strukturu uglavnom gotove jer se svijet približio na nekoliko jednostavnih standarda. Razlike između točka i zarez, vitičastih zagrada i ostalog u C, Java i JavaScript su male. Zanimljive rasprave o tipkanju i zatvaranju još uvijek postoje, ali većina je sporna jer automatizacija smanjuje prazninu. Ako vam se ne sviđa navođenje vrste podataka, velika je vjerojatnost da će računalo moći zaključiti na što ste točno mislili. Ako vaš šef želi JavaScript, ali vi volite Javu, cross-compiler će pretvoriti svu vašu statički otkucanu Java u minificirani JavaScript, spreman za pokretanje u pregledniku. Zašto se boriti kad tehnologija ima leđa?

Danas je zanimljiva akcija u okvirima. Kad sam sjeo s drugim članovima fakulteta na Sveučilištu Johns Hopkins kako bih isplanirao novi tečaj, okviri su dominirali razgovorom. Je li Angular bolji od Embera? Je li Node.js sve to?

Dizajnirali smo anketni tečaj koji će istražiti arhitekturu najvažnijih softverskih paketa koji su temelj Interneta. Ovo je bilo središte radnje, vrijedno anketnog tečaja koji će istražiti arhitekturu najvažnijih softverskih paketa opasajući današnji Internet.

U tom smislu, okviri su novi programski jezici. Tu se nalaze najnovije ideje, filozofije i praktičnosti suvremenog kodiranja. Neki se rasplamsaju, ali mnogi postaju novi temeljni gradivni blokovi programiranja. Evo sedam aspekata koji potiču okvirni trend - i čine okvire novim omiljenim žarištem za borbe štrebera.

Većina kodiranja nizanje API-ja

Bilo je vrijeme kada je pisanje softvera značilo primijeniti sve vaše znanje programskog jezika kako biste iz koda istisnuli najviše. Imalo je smisla svladati složenost pokazivača, funkcije i opseg - kvaliteta koda ovisila je o tome da se radi ispravno. Ovih dana automatizacija rješava velik dio ovoga. Ako u kodu ostavite bezvrijedne izjave, ne brinite. Prevoditelj uklanja mrtvi kod. Ako ostavite pokazivače viseće, sakupljač smeća vjerojatno će to shvatiti.

Osim toga, praksa kodiranja sada je drugačija. Većina koda sada je dugačka linija API poziva. Povremeno se vrši ponovno formatiranje podataka između API poziva, ali čak i tim poslovima obično upravljaju drugi API-ji. Nekolicina sretnika može napisati pametan kod koji udara bitovima i žonglira pokazivačem za crijeva naših strojeva, ali većina nas radi s višim slojevima. Jednostavno provodimo cijev između API-ja.

Zbog toga je važnije razumjeti kako se API ponaša i što može učiniti. Koje strukture podataka prihvaća? Kako se ponašaju algoritmi kad skup podataka raste? Ovakva su pitanja najvažnija za današnje programiranje od onih o sintaksi ili jeziku. Doista, sada postoji niz alata koji olakšavaju pozivanje rutine na jednom jeziku iz drugog. Primjerice, relativno je jednostavno povezati C knjižnice s Java kodom. Razumijevanje API-ja je ono što je važno.

Na ramenima divova vrijedi stajati

Zamislite da ste postali učenik Erlanga ili drugog novog jezika. Odlučili ste da nudi najbolju platformu za pisanje stabilne aplikacije bez grešaka. Ovo je lijep osjećaj, ali mogle bi vam trebati godine da prepišete sav kôd dostupan za Javu ili PHP na svoj najnoviji jezik po izboru. Svakako, vaš bi se kôd mogao pokazati dramatično boljim, ali vrijedi li to dodatnog vremena?

Okviri nam dopuštaju naporan rad onih koji su došli prije nas. Možda nam se ne sviđa arhitektura koju smo odabrali i možemo se prepirati oko detalja implementacije, ali učinkovitije je ugušiti naše žalbe i pronaći način da živimo s razlikama. Puno je lakše naslijediti sve dobre i loše baze koda kroz okvir. Kretanje macho-putom tako što ćete sami napisati sve na svom omiljenom novom jeziku, a ne na jednom od njegovih popularnijih okvira, neće vam omogućiti da uživate u kremi po svom novom izboru tako brzo kao što bi se jednostavno prepustili tvorcima okvira i njihovim API-ima.

Znanje o arhitekturi je najvažnije, a ne o sintaksi

Kad većina kodiranja niz API poziva, nema velike prednosti u učenju idiosinkrazija jezika. Svakako, mogli biste postati stručnjak za to kako Java inicijalizira statička polja u objektima, ali bilo bi vam puno bolje da smislite kako iskoristiti snagu Lucenea ili JavaDB-a ili neke druge hrpe koda. Mogli biste mjesecima krckati optimizirajuće rutine Objective-C kompajlera, ali ako naučite detalje i najnovije Appleove osnovne knjižnice, vaš će kôd zaista vrištati. Mnogo ćete dalje učiti izbirljive detalje okvira od sintakse jezika na kojem počiva okvir.

Većina našeg koda provodi većinu svog vremena u unutarnjim petljama knjižnica. Ispravljanje pojedinosti o jeziku može vam pomoći, ali znajući što se događa u knjižnicama može se dramatično isplatiti.

Dominiraju algoritmi

Učenje programskog jezika može vam pomoći u žongliranju podacima sakrivenim u varijablama, ali to vas vodi samo toliko daleko. Prava je prepreka ispraviti algoritme, a oni su obično definirani i implementirani u okvire.

Mnogi programeri razumiju da je opasno i rasipno trošiti vrijeme na ponovnu implementaciju standardnih algoritama i struktura podataka. Naravno, možda ćete ga moći prilagoditi svojim potrebama, ali riskirate suptilne pogreške. Okviri su široko testirani tijekom godina. Oni predstavljaju naše zajedničko ulaganje u softversku infrastrukturu. Nema puno primjera kada ima smisla "izaći iz mreže", odbaciti naporan rad drugih i izgraditi algoritamsku kabinu sa svoje dvije ruke.

Pravi pristup je proučiti okvire i naučiti kako ih koristiti u svoju najbolju korist. Ako odaberete pogrešnu strukturu podataka, mogli biste linearni posao pretvoriti u onaj za koji je potrebno vrijeme koje je kvadratna funkcija ulazne veličine. To će biti velika gnjavaža nakon što postanete viralni.