Programavimas

7 priežastys, kodėl pagrindai yra naujos programavimo kalbos

Devintajame dešimtmetyje lengviausias būdas pradėti vikrių kovą buvo paskelbti, kad jūsų mėgstamiausia programavimo kalba yra geriausia. C, Pascal, Lisp, Fortran? Programuotojai valandų valandas aiškino, kodėl jų konkretus straipsnis, jei būtų sukurta sąlyga, būtų pranašesnis už jūsų kelią.

Tai buvo tada. Šiandien kovos, susijusios su sintakse ir struktūra, iš esmės baigėsi, nes pasaulis suartėjo pagal keletą paprastų standartų. Skirtumai tarp kabliataškių, garbanotų skliaustų ir visko C, „Java“ ir „JavaScript“ yra nedideli. Vis dar vyksta įdomios diskusijos apie spausdinimą ir uždarymą, tačiau dauguma ginčijasi, nes automatika mažina spragą. Jei jums nepatinka nurodyti duomenų tipą, yra didelė tikimybė, kad kompiuteris galės padaryti išvadą, ką tiksliai turėjote omenyje. Jei jūsų viršininkas nori „JavaScript“, bet jums patinka „Java“, kryžminis kompiliatorius konvertuos visą jūsų statiškai įrašytą „Java“ į minimalizuotą „JavaScript“, paruoštą paleisti naršyklėje. Kodėl reikia kovoti, kai technologijos turi mūsų nugarą?

Šiandien įdomus veiksmas yra rėmuose. Kai atsisėdau su kitais Johns Hopkins universiteto dėstytojais planuoti naujo kurso, pokalbyje dominavo pagrindai. Ar kampinis yra geresnis už Emberą? Ar visa tai yra „Node.js“?

Mes sukūrėme apklausos kursą, kuriame būtų ištirta svarbiausių programinės įrangos paketų, kurie yra interneto pagrindas, architektūra. Tai buvo veiksmo centras, vertas apklausos kurso, kuriame būtų nagrinėjama svarbiausių šiandienos internetą apimančių programinės įrangos paketų architektūra.

Šia prasme pagrindai yra naujos programavimo kalbos. Juose randamos naujausios šių dienų kodavimo idėjos, filosofijos ir praktiniai dalykai. Kai kurie liepsnos, bet daugelis tampa naujais pagrindiniais programavimo elementais. Čia yra septyni aspektai, skatinantys pagrindų tendencijas - ir sukurti karkasus nauju mėgstamu „nerd“ kovų židiniu.

Dauguma kodavimo sieja API

Buvo laikas, kai programinės įrangos rašymas reiškė panaudoti visas savo žinias apie programavimo kalbą, kad kuo geriau išnaudotumėte kodą. Buvo prasminga įvaldyti rodyklių, funkcijų ir taikymo srities sudėtingumą - kodo kokybė priklausė nuo to, kaip elgtis teisingai. Šiais laikais automatika tvarko didžiąją dalį to. Jei kode paliksite nieko vertus teiginius, nesijaudinkite. Kompiliatorius pašalina negyvą kodą. Jei paliksite kabančius ženklus, tikriausiai tai supras šiukšlių surinkėjas.

Be to, dabar skiriasi kodavimo praktika. Dabar dauguma kodų yra ilga API skambučių eilutė. Retkarčiais pertvarkomi duomenys tarp API skambučių, tačiau net ir tuos darbus paprastai tvarko kitos API. Keletas laimingųjų gauna parašyti sumanų, šiek tiek daužantį, žymikliu žongliruojantį kodą savo mašinų žarnoms, tačiau dauguma iš mūsų dirba su aukštesniais sluoksniais. Mes tiesiog paleidžiame vamzdį tarp API.

Dėl to svarbiau suprasti, kaip veikia API ir ką ji gali padaryti. Kurias duomenų struktūras ji priima? Kaip elgiasi algoritmai, kai duomenų rinkinys auga didesnis? Tokie klausimai yra svarbesni šiandieniniame programavime, nei apie sintaksę ar kalbą. Iš tiesų, dabar yra daugybė įrankių, kurie palengvina rutinos vadinimą viena kalba iš kitos. Pavyzdžiui, palyginti nesunku susieti C bibliotekas su „Java“ kodu. Svarbu suprasti API.

Ant milžinų pečių verta atsistoti

Įsivaizduokite, kad tapote „Erlang“ ar kitos naujos kalbos mokiniu. Jūs nuspręsite, kad tai yra geriausia platforma norint parašyti stabilią programą be klaidų. Tai puikus požiūris, tačiau gali prireikti metų, kol perrašysite visą „Java“ ar PHP kodą į naujausią pasirinktą kalbą. Žinoma, jūsų kodas gali pasirodyti dramatiškai geresnis, bet ar verta papildomo laiko?

Karkasai leidžia mums panaudoti sunkų darbą tų, kurie atėjo prieš mus. Mums gali nepatikti jų pasirinkta architektūra ir galime ginčytis dėl įgyvendinimo detalių, tačiau efektyviau užgniaužti mūsų skundus ir rasti būdą, kaip gyventi atsižvelgiant į skirtumus. Per sistemą yra daug lengviau paveldėti visą kodo bazės gėrį ir blogą. Pasirinkus mačo maršrutą, viską parašykite patys savo mėgstama nauja kalba, o ne vienu iš populiariausių jos rėmų, negalėsite mėgautis savo pasirinktu kremu taip greitai, kaip paprasčiausiai atidėlioti karkasų kūrėjams ir jų API.

Svarbu žinoti architektūrą, o ne sintaksę

Kai didžioji dalis kodavimo sieja API kvietimus, nėra daug pranašumų mokantis kalbos savitumo. Žinoma, galėtumėte tapti ekspertu, kaip „Java“ inicijuoja statinius laukus objektuose, tačiau jums būtų daug geriau išsiaiškinti, kaip panaudoti „Lucene“, „JavaDB“ ar kitos kodo krūvos galią. Jūs galite praleisti mėnesius, žvalgydamiesi optimizuojančias „Objective-C“ kompiliatorių rutinas, tačiau išmokę naujausios „Apple“ pagrindinės bibliotekos pranašumų, jūsų kodas tikrai privers rėkti. Jūs gausite daug daugiau išmokti išrankios sistemos informacijos nei kalbos, kuria remiasi sistema, sintaksė.

Didžioji mūsų kodo dalis didžiąją laiko dalį praleidžia vidinėse bibliotekų kilpose. Tai, kad kalbos informacija bus teisinga, gali padėti, tačiau žinoti, kas vyksta bibliotekose, gali labai pasiteisinti.

Dominuoja algoritmai

Išmokę programavimo kalbą, galite lengviau žongliruoti kintamuosiuose saugomais duomenimis, tačiau tai jus nuveda tik toli. Tikroji kliūtis yra taisyti algoritmus, o juos paprastai apibrėžia ir įgyvendina sistemos.

Daugelis programuotojų supranta, kad pavojinga ir švaistoma laiką leidžiant iš naujo įdiegti standartinius algoritmus ir duomenų struktūras. Žinoma, galbūt galėsite šiek tiek pritaikyti savo poreikiams, tačiau rizikuojate padaryti subtilių klaidų. Metų rėmai buvo plačiai išbandyti. Jie atspindi mūsų kolektyvines investicijas į programinės įrangos infrastruktūrą. Nėra daug pavyzdžių, kada prasminga „išeiti iš tinklelio“, išmesti sunkų kitų darbą ir savo rankomis pasistatyti algoritminę saloną.

Teisingas požiūris yra ištirti sistemas ir sužinoti, kaip jas panaudoti savo naudai. Jei pasirinksite neteisingą duomenų struktūrą, galite paversti linijinę užduotį tokia, kuriai reikia laiko, kuris yra kvadratinė įvesties dydžio funkcija. Tai yra didelis vargas, kai užsikrėsi virusu.