Programmering

21 hotte programmeringstendenser - og 21 bliver koldt

Programmører elsker at latterliggøre modeverdenen, hvor trends blæser igennem som brise. Nederdelens længder stiger og falder, pigmenter kommer og går, bånd bliver federe, så tyndere. Men i teknologiens verden hersker strenghed, videnskab, matematik og præcision over mode.

Det betyder ikke at programmering er et erhverv blottet for tendenser. Forskellen er, at programmeringstendenser er drevet af større effektivitet, øget tilpasning og brugervenlighed. De nye teknologier, der leverer en eller flere af disse, formørker den forrige generation. Det er et meritokrati, ikke et indfald.

Det følgende er en liste over hvad der er varmt og hvad der ikke er blandt nutidens programmører. Ikke alle er enige i, hvad der er A-listet, hvad der er D-listet, og hvad der er udeladt. Det er det, der gør programmering til et uendeligt fascinerende erhverv: hurtig forandring, lidenskabelig debat, pludselige comebacks.

Hot: Forprocessorer

Ikke: Fuld sprogstakke

Det var ikke længe siden, at folk, der oprettede et nyt programmeringssprog, måtte bygge alt, hvad der gjorde kode til de bits, der blev ført til silicium. Derefter regnede nogen ud af, at de kunne bane på det arbejde, der kom før. Nu skriver folk med en klog idé blot en forprocessor, der oversætter den nye kode til noget gammelt med et rigt sæt biblioteker og API'er.

Scriptsprogene som Python eller JavaScript var engang begrænset til små projekter, men nu er de grundlaget for seriøst arbejde. Og dem, der ikke kunne lide JavaScript, oprettede CoffeeScript, en forprocessor, der lader dem kode igen, uden den besværlige tegnsætning. Der er snesevis af variationer, der foreskriver og forudsiger syntaksen på en anden måde.

De mennesker, der elskede dynamisk skrivning, skabte Groovy, en enklere version af Java uden den alt for insisterende tegnsætning. Der ser ud til at være snesevis af sprog - Groovy, Scala, Clojure, Kotlin osv. - der kører på JVM, men der er kun en JVM. Du kan også køre mange sprog på .Nets VM. Hvorfor genopfinde hjulet?

Hot: Serverfri

Ikke: Docker

Dette er ikke ligefrem sandt. Docker-containere er overalt. Servere spinder op og lukker containere hele tiden. Dog er Docker-containere det såååå meget større, end de skal være.

Hvis du tænker over det, kan du muligvis kun skrive et par dusin linjer med reel beslutningskode til den mikroservice, du implementerer, men du bliver nødt til at kaste i en bazillion linjer med konfiguration for at få Node.js og hvad der ellers starter. op korrekt med Docker. Ja, det hele er kogeplade, men det mangler pointen.

De nye serverløse arkitekturer lader os implementere bare de få, hvis-så-ellers-udsagn, der tager de rigtige beslutninger. Alt andet overlades til de mennesker, der lejer os den serverløse platform.

Ja, vi klager over lock-in og mangel på tilpasning om et par år, men indtil videre ser de serverløse muligheder ud som en lettelse fra alle devops og konfigurationer.

Hot: JavaScript MV * -rammer

Ikke: JavaScript-filer

For længe siden lærte alle at skrive JavaScript for at åbne et advarselsfelt eller kontrollere, om e-mail-adressen i formularen indeholdt et @ -tegn. Nu er HTML AJAX-apps så sofistikerede, at få mennesker starter fra bunden. Det er nemmere at vedtage en detaljeret ramme og skrive lidt limkode for at implementere din forretningslogik.

Der er nu snesevis af rammer som Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS og mange flere, alle klar til at håndtere begivenheder og indhold til dine webapps og sider.

Det er kun webapps. Der er også et nummer indstillet på at tilbyde udvikling på tværs af platforme til smartphone / tablet-verdenen. Teknologier som NativeScript, PhoneGap, Apache Cordova og React Native er et par af mulighederne for at oprette apps ud af HTML5-teknologi.

Hot: CSS-rammer

Ikke: Generisk CSS

Det var engang at tilføje lidt pizzazz til en webside betød at åbne CSS-filen og inkludere en ny kommando som font-stil: kursiv. Derefter gemte du filen og gik til frokost efter en hård morgens arbejde. Nu er websider så sofistikerede, at det er umuligt at udfylde en fil med så enkle kommandoer. Én tweak til en farve, og alt går ud af whack. Det er som hvad de siger om sammensværgelser og økologier: Alt er sammenkoblet.

Det er her, CSS-rammer som SASS og dets fætre som Compass har fundet solid fod. De tilskynder til læsefærdige, stabile kodninger ved at tilbyde programmeringskonstruktioner såsom reelle variabler, indlejringsblokke og mix-ins. Det lyder måske ikke som meget nyt i programmeringslaget, men det er et stort spring fremad for designlaget.

Hed: SVG på lærred

Ikke: Flash

Flash har gjort folk vanvittige i årevis, men kunstnerne har altid elsket resultaterne. Den anti-aliasede gengivelse ser flot ud, og mange talentfulde kunstnere har bygget en dyb stak Flash-kode til at tilbyde sofistikerede overgange og animationer. De afslappede spil er fortsat meget populære. Så Flash klamrer sig til livet på nettet.

Nu hvor JavaScript-laget har evnen til at gøre meget af det samme, jubler browserproducenter og udviklere for slutningen af ​​Flash. De ser bedre integration med DOM-laget, der kommer fra nye formater som SVG (Scalable Vector Graphics). SVG og HTML består af en stor bunke tags, der ofte er lettere for webudviklere at bruge. Så er der store API'er, der tilbyder detaljeret tegning på Canvas-objektet, ofte ved hjælp af grafikkort. Sæt dem sammen, og du har få grunde til at bruge Flash længere.

Hot: Næsten store data (analyse uden Hadoop)

Ikke: Big data (med Hadoop)

Alle kan lide at føle sig som den store mand på campus, og hvis de ikke er det, leder de efter en campus i den passende størrelse, hvor de kan skille sig ud. Det er ikke overraskende, at da ordene "big data" begyndte at strømme gennem executive-pakken, begyndte dragterne at bede om de største, mest kraftfulde big-datasystemer, som om de købte en yacht eller en skyskraber.

Det sjove er, at mange problemer ikke er store nok til at bruge de mest avancerede big data-løsninger. Sikker på, at virksomheder som Google eller Yahoo sporer al vores browsing; de har datafiler målt i petabyte eller yottabyte. Men de fleste virksomheder har datasæt, der let kan passe ind i RAM'en på en grundlæggende pc. Jeg skriver dette på en pc med 16 GB RAM - nok til en milliard begivenheder med en håndfuld bytes. I de fleste algoritmer behøver dataene ikke læses i hukommelsen, fordi streaming af dem fra en SSD er fint.

Der vil være tilfælde, der kræver hurtige responstider for snesevis af maskiner i en Hadoop-sky, der kører parallelt, men mange gør det fint at tilslutte på en enkelt maskine uden besværet med koordination eller kommunikation.

Hot: Gnist

Ikke: Hadoop

Det er ikke så meget, at Hadoop køler af. Det er mere, at Apache Spark er rødglødende, hvilket får Hadoop-modellen til at se lidt gammel ud. Spark låner nogle af de bedste ideer til Hadoop's tilgang til at udtrække mening fra store datamængder og opdaterer dem med et par solide forbedringer, der får koden til at køre meget, meget hurtigere. Den største kan være den måde, hvorpå Spark opbevarer data i hurtig hukommelse i stedet for at kræve, at alt skrives til og læses fra det distribuerede filsystem.

Selvfølgelig fusionerer mange mennesker de to ved hjælp af Sparks behandlingshastighed på data gemt i Hadoops distribuerede filsystem. Hadoop og Spark er oftere partnere end konkurrenter.

Hot: Databasekonfiguration

Ikke: Software programmering

For længe siden plejede programmører at joke, at de ikke vidste, hvordan programmering ville se ud i det næste århundrede, men de vidste, at det ville blive kaldt Fortran. Denne vittighed var så morsom, at de ville falde af deres dinosaurer og bryde deres træundertøj. Derefter ville de gå tilbage til at konfigurere en database.

Og vi bygger stadig databaser i dag, men hvad vi tænker på som en "database" er nu mange gange mere sofistikeret og kraftfuld. Off-the-shelf databaser synkroniserer sig selv på tværs af kontinenter, mens de tilbyder en fleksibel kompromis mellem konsistens og hastighed. Nogle skytjenester som Firebase skubber nye data hele vejen ud til webapps, der kører på mobile klienter.

Meget af den serverløse revolution er baseret på erkendelsen af, at mange af cloud-datalagerne nu er så kraftfulde, at vi kun behøver at skrive et par hvis-så-ellers klausuler for at opbygge en ret sej webapp.

Hot: Game rammer

Ikke: Native spiludvikling

Engang betød spiludvikling at ansætte masser af udviklere, der skrev alt i C fra bunden. Sikker på, det kostede en bazillion dollars, men det så godt ud og det løb som vinden. Nu har ingen råd til luksusen ved brugerdefineret kode. De fleste spiludviklere opgav deres stolthed for mange år siden og bruger biblioteker som Unity, Corona eller LibGDX til at opbygge deres systemer. De skriver ikke C-kode så meget som instruktioner til bibliotekerne.

Er det en skam, at vores spil ikke er håndlavet med stolthed, men udstanset ved hjælp af den samme motor? Nix. De fleste af udviklerne er lettet. Fordi de ikke behøver at håndtere detaljerne, kan de koncentrere sig om spillet, fortællingsbuen, figurerne og kunsten.

Hot: Statisk webstedsgeneratorer

Ikke: Enkeltsides webapps

Husker du, når webadresser pegede på websider fyldt med statisk tekst og billeder? Derefter kom de dynamiske, enkeltsidede webapps og erstattede dem alle med en smart webapp, der ville hente de pågældende data. Gæt hvad? Pendulet svinger tilbage, og alle børnene bygger statiske stedgeneratorer. Der er snesevis af dem. Det er som en hybrid. Du lægger alle dataene i en bunke, og derefter skriver du en kode, der fastholder dataene i nogle skabeloner, så der er en HTML-fil til hver statisk URL, og den kom fra hver række i datatabellen.

Børnene synes, at disse statiske steder er superhurtige, og det er de også. Bare fortæl dem ikke, at de gamle dynamiske systemer som WordPress og Drupal fungerede meget på samme måde ved at holde cacher, der stort set var fyldt med statiske sider genereret med de nyeste data.

Hot: GraphQL

Ikke: HVIL

Det er ikke som om REST er død. Det er bare, at vi vil gøre mere med API'et, og GraphQL er en måde at gøre det på. GraphQL returnerer dataene i JSON, ligesom REST. GraphQL starter med en HTTP POST, ligesom mange REST-opkald. Det er bare, at GraphQL-syntaksen giver dig mulighed for at specificere meget komplekse forespørgsler med kun et par tastetryk. Dette gør det nemmere for programmører at bede om lige hvad de vil have, og det reducerer mængden af ​​server-side arbejde, der skal udføres, når nogen ønsker en lidt anden API.

Hot: Cloud IDE'er

Ikke: Lokale IDE'er

For længe siden brugte folk en kommandolinjekompilator. Derefter integrerede nogen det med en editor og andre værktøjer til at oprette IDE. Nu er det tid for IDE at blive formørket (ha) af browserbaserede værktøjer, der giver dig mulighed for at redigere koden, selv koden til et fungerende system. Hvis du ikke kan lide, hvordan WordPress fungerer, kommer den med en indbygget editor, der giver dig mulighed for at ændre koden lige der og da. Microsofts Azure giver dig mulighed for at skrive JavaScript-limkode lige i sin portal. Disse systemer tilbyder ikke de bedste fejlfindingsmiljøer, og der er noget farligt ved at redigere produktionskode, men ideen har ben.

Du kan starte med AWS Cloud9, Codenvy og Mozillas WebIDE, men fortsæt med at udforske. De webbaserede værktøjer bliver mere og mere magtfulde. Det er for eksempel muligt at opbygge et helt big data-analyseprojekt på Microsofts Azure-websted. Og hvis du begynder at udforske serverløse muligheder, finder du hurtigt ud af, at du kan skrive al din kode i et formelement på en webside. En der ikke er meget større end den form, du bruger til at opdatere dine venner på Facebook.

Hot: GPU

Ikke: CPU

Når softwaren var enkel, og instruktionerne var arrangeret i en flot linje, var CPU'en konge på computeren, fordi den gjorde alt det tunge løft. Nu hvor videospil er fyldt med omfattende grafiske rutiner, der kan køre parallelt, kører grafikkortet showet. Det er nemt at bruge $ 500, $ 600 eller mere på et fancy skærmkort, og nogle seriøse spillere bruger mere end en. Det er mere end det dobbelte af prisen på mange grundlæggende desktops.

Derudover er spillere ikke de eneste, der skryter af deres GPU-kort. Computerforskere konverterer nu mange parallelle applikationer til at køre hundreder af gange hurtigere på GPU'en. Og dataforskere bruger servere pakket med GPU'er til at fremskynde udviklingen af ​​deres maskinlæringsmodeller.

Hot: GitHub

Ikke: CV

Sikker på, du kunne lære om en kandidat ved at læse en opblæst liste over resultater, der inkluderer vicepræsident for juniorskakklubben. Men at læse en persons faktiske kode er så meget rigere og mere lærerigt. Skriver de gode kommentarer? Spilder de for meget tid på at bryde genstande i små klasser, der gør lidt? Er der en ægte arkitektur med plads til udvidelse? Alle disse spørgsmål kan besvares med et glimt af deres kode.

Derfor bliver deltagelse i open source-projekter mere og mere vigtig for at finde et job. Deling af koden fra et proprietært projekt er svært, men open source-kode kan gå overalt.