Det bästa programmeringsspråket att lära sig nu

Det bästa sättet att förstå datorer och böja dem efter vår vilja är att lära sig att tala deras språk så att de förstår våra kommandon. De människor som älskar fantasiromaner föreställer sig ibland att de lär sig magiska trollformler och besvärjelser. De praktiskt sinnade använder mer jordat språk för att representera den logiska strukturen för siffror och data. I alla fall handlar det om att förstå vilken sekvens av tangenttryckningar och musklick som får datorn att hoppa genom metaforiska ringar och utföra virtuella danser.

Varje skola, MOOC och utbildningsplats måste ta ett första språk för de unga Padawans. Vissa platser, som den fista Harvard, håller fortfarande fast vid 70-talets era C, men många skolor svänger mellan JavaScript, Python och Java. Man är begravd i varje webbläsare, en är det rena valet av samhällsvetenskap och en är den typrika preferensen hos mer matematiskt inställda människor.

Är det bästa valet? Är en klart bättre än de andra? Eller är det lika troligt att alla skickar ett stort antal studenter som skriker i sina kuddar på natten? Låt oss undersöka de bästa skälen att lära oss Java, Python eller JavaScript.

Java är klassiskt

Advanced Placement-testet valde Java för länge sedan när Java var ung och exploderade. Kanske nådde Java aldrig toppen av sin ursprungliga bana när alla tycktes anta att det skulle vara helt dominerande, men det är fortfarande ryggraden på många webbplatser, smartphones, tv-apparater och små enheter.

Genom att välja ett språk med starka följder kan studenten hoppa på en vagn som redan är fullt utrustad med sofistikerade utvecklingsverktyg. Dessutom finns det bazilljoner rader med öppen källkod som studenten kan studera, revidera och utvidga för sitt eget arbete. De går med i en stor rörelse och det är lätt för dem att passa in.

Python är nytt

Faktum är att Python inte är så nytt - projektet började för mer än 30 år sedan - men det känns nytt eftersom dess framgång har kommit långsamt. Först nyligen har Python brutit ut och hittat en utbredd antagande med avslappnade programmerare. Nyheten innebär att skolorna som anammar Python skapar nya lektionsplaner, skriver nya tentor och utvecklar nya däck med bilder. De gräver inte ut några dammiga gamla frågor från 1990-talet med hänvisningar till Pets.com och MySpace.

Den senaste AP-kursen, som heter Computer Science Principles, låter läraren välja dataspråk och många väljer Python på grund av dess färskhet. Nyheten kan vara djup på huden, men alla språk är bara en smart syntax som döljer sammansättningskodens if-then-else beslutsstruktur.

All denna framgång bygger en positiv feedback-loop. November 2020-upplagan av Tiobe-indexet markerade första gången som Python klättrade in i nummer två-platsen (bakom C), och erkände hur språket växte mer populärt än Java.

JavaScript finns överallt

Det finns i webbläsaren och webbläsaren är grunden för ditt skrivbord, din telefon och alla de kiosker du ser överallt. Under det senaste decenniet har JavaScript tagit över webbservrarnas frontlinjer eftersom Node.js webbappar blev det mest populära sättet för utvecklare att skriva ”isomorf kod” som kan köras på både klienter och serverfarmar. JavaScript är praktiskt taget samma ålder som Java och ändå tog det flera år för serversidan att upptäcka dess kraft. Det är nytt och gammalt samtidigt.

Java skrivs

Du kanske inte gillar att spendera tiden på att specificera typen av varje variabel, men det tar inte så mycket tid att klicka på tre tangenter för att lägga till "int" till din kod. När du gör det får du all den kraft som kommer från att låta kompilatorn dubbelkolla din kod omedelbart och hitta de dumma misstagen innan den distribueras. Typkontrollerade språk tvingar oss att tänka strängare på logiken i vår kod, och det är en viktig lektion för nya programmerare. Java typstruktur minskar buggar och bygger bättre kod.

Python skrivs inte

De typspråkiga älskarna är smarta och de skriver bra kod, men om du tycker att din kod är tillräckligt bra för att fungera smidigt utan extra information om datatyperna för varje variabel, ja, Python är redo för dig. Datorn kan räkna ut typen av data när du lagrar den i en variabel. Varför göra extra arbete för dig själv?

Observera att denna frihjälpsstrategi kan förändras, om än långsamt. Python-dokumentationen tillkännager att Python-körningen inte tillämpar anteckningar om funktion och variabel typ, men de kan fortfarande användas. Kanske kommer det med tiden att läggas till typer att bli det dominerande sättet att programmera på språket, men för närvarande är allt ditt val.

JavaScript är båda

JavaScript i sig är otypat men nyligen har några av de högt profilerade medlemmarna i JavaScript-världen bytt över till TypeScript, ett superset av originalspråket som ger dig möjlighet att ställa in vilka typer du vill. Och om du inte vill, kommer vanlig JavaScript också att fungera bra. Det är en avslappnad version av typkontroll.

Java reglerar enheter

Den mest populära mobiltelefonplattformen i världen är Android, en enorm stack med kod byggd ovanpå Java. Men det är bara den mest synliga plattformen. Digitalboxar, nya Chromebooks och till och med vissa stationära datorer kör Android-appar precis som smartphones. En nära kusin till Java, C #, dominerar Windows-världen. C # är inte exakt samma som Java men det är väldigt nära. Om du ska skriva en applikation för en fast hårdvara finns det en god chans att Java är det bästa valet.

Python styr datavetenskap

Om du skriver programvara för att arbeta med data finns det en god chans att du vill använda Python. Den enkla syntaxen har hakat många forskare och språket har funnit en stark följd i laboratorierna runt om i landet. Nu när datavetenskap tar tag i alla lager i näringslivet följer Python.

En av de bästa uppfinningarna för att skapa och dela interaktiva dokument, Jupyter Notebook, började med Python-communityn innan de anammade andra språk. Det är ett av de bästa sätten att blanda ihop programvara, data och texten som förklarar vad som händer. Läsare kan absorbera orden och sedan trycka på knappar för att köra programvaran på data.

JavaScript reglerar webben

De andra plattformarna kan vara trevliga, men webbläsaren är fortfarande den portal som nästan alla använder för att ansluta till världen. Det är vanligtvis den mest använda programvaran på skrivbordet, smarttelefonen och surfplattan. JavaScript startade som chef för den här lokala klienten och dess inflytande utvidgades till total dominans eftersom tillväxten av Node.js gjorde det lättare för utvecklare att köra samma kod på klienten och servern.

Det finns också dussintals bra JavaScript-ramar (Angular, React, Vue, etc.) som erbjuder en grund för att bygga din webbapp och vissa är smarta nog för att flytta din kod mellan klienten och servern efter behov. 

Även i världar som domineras av andra språk fungerar JavaScript sig in i stacken. Många smartphoneutvecklare hoppar över Java och Swift för att skapa sina plattformsappar i JavaScript. När allt kommer omkring bestämmer JavaScript vad som händer i webbläsarens rektangel och det garanterar ganska mycket att det kommer att fatta beslutet om vad som händer med de flesta klick och tangenttryckningar överallt.

Java kör allt

Om du skriver Python-kod finns det en god chans att den kommer att köras i Jython, en implementering av språket som är skrivet i Java för att dra nytta av Java Virtual Machine allestädes närvarande. Om du behöver köra JavaScript kan du också mata det till Rhino och Nashorn, två verktyg som gör JavaScript till Java bytecode.

Dessa två språk är inte de enda som förlitar sig på JVM: s solida prestanda. Många funktionella programmeringsspråk som Scala, Clojure och Kotlin är också beroende av samma fundament. Detta hjälper alla genom att göra det enklare att länka dessa JVM-baserade språk tillsammans om du vill använda dem i samma projekt.

Python kör överallt

Python är inte förstahandsvalet eller till och med det sista valet för personer som skriver emulatorer för andra språk. Ändå är det lätt att hitta Python på många datorer. Språkets skapare har alltid distribuerat koden som öppen källkod och paketen finns nästan överallt. Faktum är att du hittar Python inkluderat i MacOS och de flesta fullfjädrade distributioner av Linux. Och även om det inte ingår i Windows är det enkelt att installera - gör det bara på ett smart sätt.

JavaScript körs i webbläsaren

Det är svårt att tro att leksakspråket som skapats för att skapa varningsrutor i webbläsaren nu är grunden för många språk. Utvecklare vill nå användare och om användare bor i webbläsaren, ja, att hitta ett sätt för din kod att köra i JavaScript är det snabbaste sättet att nå alla.

Det är inte bara JavaScript-kusiner som CoffeeScript och LiveScript som överförs till JavaScript. Även språk som Lisp, OCaml och Pascal kan konverteras till JavaScript och köras i webbläsaren. Python är populärt i webbläsaren i projekt som Jupyter-bärbara datorer och till och med Java kan översättas till JavaScript med hjälp av verktyg som Google Web Toolkit.

Java har starka IDE: er

Eclipse, NetBeans och IntelliJ är några av de bästa integrerade utvecklingsmiljöerna. De skapades av Java-communityn och uppmuntrades genom åren för att skapa en av de mest stödjande miljöerna för att skriva kod. Kodens slutförande och kodgenereringsalgoritmer skriver kanske inte all din programvara, men de kan skriva ut en betydande mängd. Allt detta handhållning hjälper verkligen nya utvecklare att få syntaxen korrekt. 

Dessa IDE var så populära att utvecklare från andra språk hittade ett sätt att köra sin kod inuti dem. Om du blir en professionell Java-programmerare kommer du nästan säkert att använda en av dem. Under tiden, om du vill ha en enklare och vänligare Java-programmeringsupplevelse, prova BlueJ eller Greenfoot. Dessa "nybörjar-IDE" designades speciellt för att lära sig Java.

Python har molnet

Pythonspråket hittade sitt första hem i Unix-världen och det är därför ingen överraskning att molnen fyllda med Linux-rutor är naturliga ställen att hitta massor av Python-kod. Några av de senaste verktygen som Jupyter samlar ihop kod, data och förklaring så att människor kan dela sin insikt med andra som forskningsdokument som kommer till liv. Jupyter-anteckningsböcker är inte statiska dokument utan interaktiva verktyg för att utforska.

Andra bygger sofistikerade verktyg runt språket för att förbättra forskningen. PyTorch är till exempel en verktygslåda för djupinlärning fylld med kod, data och algoritmer för analys. Miljöer som detta kommer att dominera datavetenskapens framtid.

Det finns också flera bra värdar för bärbara datorer som lägger till extra funktioner för att dela data och hantera stora, intensiva dataanalysjobb. Google kör till exempel Colaboratory, som lagrar dina data och erbjuder gratis tillgång till GPU: er för snabbare beräkning. Saturn Cloud visar prestanda som kan vara 100 gånger snabbare än ditt skrivbord.

JavaScript har JSFiddle

Varje webbläsare har mer än tillräckligt med kraft för att fungera som IDE. JSFiddle är bara den mest framträdande av mer än ett dussin webbplatser som låter dig dela JavaScript-kod med andra utvecklare. Webbsidorna är dock inte statiska eftersom du kan lura med koden och se hur den körs på samma webbsida. Verktyg som detta gör det enkelt att experimentera med allt syntaktiskt roligt med JavaScript.

Lär dig alla - eller alla tre

Programmeringsvärlden älskar att korsbestämma. Även om det kan vara förvirrande att studsa mellan olika språk och hålla syntaxen rak, är det möjligt att använda alla tre språken i projekt utan att bli alltför fast. Java- eller JavaScript-projekt som analyserar data kan länka i datavetenskapliga bibliotek skrivna i Python. Eller Python-projekt kan åberopa Java- eller JavaScript-kod.

Smarta utvecklare har också skapat verktyg för att automatiskt översätta, länka och integrera de olika språken med varandra. Vill du köra Python-kod i din webbläsare? Det finns flera olika alternativ nu och förmodligen fler. Java har en ScriptEngine-klass som utvärderar JavaScript. Det finns hundratals olika språk som körs som JavaScript genom översättning eller emulering.

Kort sagt behöver de tre språken inte vara öar, isolerade från varandra. Du behöver inte välja bara en på lång sikt. Men börja med en först.

Läs mer om mjukvaruutveckling:

  • De bästa gratis programmeringskurserna under låsning
  • Vad är CI / CD? Kontinuerlig integration och kontinuerlig leverans förklaras
  • Vad är smidig metodik? Modern programutveckling förklaras
  • Vad är ett API? Gränssnitt för applikationsprogrammering förklaras
  • Det bästa programmeringsspråket att lära sig nu
  • De mest värdefulla programvaruutvecklarfärdigheterna 2020
  • 6 bästa programmeringsspråk för AI-utveckling
  • De 24 högst betalande utvecklarrollerna 2020
  • Full-stack-utvecklare: Vad det är och hur du kan bli en
  • 9 karriärgropar som varje programutvecklare bör undvika