Sedan 1950-talet har datavetare utvecklat tusentals programmeringsspråk. Många är otydliga, kanske skapade för doktorand. avhandling och aldrig hört talas om sedan. Andra blev populära ett tag sedan bleknade på grund av brist på stöd eller eftersom de var begränsade till ett visst datorsystem. Vissa är varianter av befintliga språk och lägger till nya funktioner som parallellitet - möjligheten att köra många delar av ett program på olika datorer parallellt.
Läs mer om Vad är ett programmeringsspråk?
Jämförelse av programmeringsspråk
Det finns flera sätt att jämföra datorspråk men för enkelhets skull jämför vi dem med kompilationsmetod och abstraktionsnivå.
Kompilering till maskinkod
Vissa språk kräver att program omvandlas direkt till maskinkod - instruktionerna som en CPU förstår direkt. Denna omvandlingsprocess kallas kompilering. Assembly Language, C, C ++ och Pascal är sammanställda språk.
Tolkade språk
Andra språk är antingen Tolkad som Basic, Actionscript och Javascript, eller en blandning av båda som kompileras till ett mellanspråk - detta inkluderar Java och C #.
Ett tolkat språk behandlas vid körning. Varje rad läses, analyseras och körs. Att göra upp en rad varje gång i en slinga är det som gör tolkade språk så långsamma. Denna overhead innebär att tolkad kod går mellan 5 och 10 gånger långsammare än kompilerad kod. De tolkade språken som Basic eller JavaScript är de långsammaste. Deras fördel behöver inte kompileras efter förändringar och det är praktiskt när du lär dig att programmera.
Eftersom sammanställt program nästan alltid springa snabbare än tolkat, språk som C och C ++ tenderar att vara det mest populära för att skriva spel. Java och C # kompilerar båda till ett tolkat språk som är mycket effektivt. Eftersom den virtuella maskinen som tolkar Java och .NET-ramverket som kör C # är kraftigt optimerad, hävdas att applikationer på dessa språk är lika snabba om inte snabbare som kompilerade C ++.
Abstraktionsnivå
Det andra sättet att jämföra språk är abstraktionsnivån. Detta indikerar hur nära ett visst språk är hårdvaran. Maskinkoden är den lägsta nivån, med monteringsspråket precis ovanför. C ++ är högre än C eftersom C ++ erbjuder större abstraktion. Java och C # är högre än C ++ eftersom de sammanställer till ett mellanspråk som kallas bytecode.
Hur språk jämför
Snabbt sammanställda språk
- Assembleringsspråk
- C
- C ++
- Pascal
- C #
- Java
Ganska snabbt tolkat
- Perl
- PHP
Långsamt tolkad
- JavaScript
- Action
- Grundläggande
Maskinkod är instruktionerna som en CPU kör. Det är det enda som en CPU kan förstå och köra. Tolkade språk behöver en applikation som kallas en Tolk som läser varje rad i programkällkoden och sedan "kör" den.
Tolkning är lättare
Det är väldigt lätt att stoppa, ändra och köra program som är skrivna på ett tolkat språk och det är därför de är populära för att lära sig programmering. Det behövs inget sammanställningssteg. Att sammanställa kan vara en ganska långsam process. En stor Visual C ++ -applikation kan ta från minuter till timmar att sammanställa, beroende på hur mycket kod som måste byggas om och hastigheten på minnet och CPU.
När datorer först visades
När datorer först blev populära på 1950-talet, skrivdes program i maskinkod eftersom det inte fanns något annat sätt. Programmerare måste fysiskt vända växlar för att ange värden. Detta är ett så tråkigt och långsamt sätt att skapa en applikation att högre datorspråk måste skapas.
Samlare: Snabbt att köra - långsamt att skriva!
Monteringsspråk är den läsbara versionen av maskinkod och ser ut så här
Mov A, 45 dollar
Eftersom det är bundet till en viss CPU eller familj med relaterade CPU: er, är Assembly Language inte särskilt bärbart och det är tidskrävande att lära sig och skriva. Språk som C har minskat behovet av Assembly Language-programmering förutom när RAM är begränsat eller tidskritisk kod behövs. Detta är vanligtvis i kärnkoden i hjärtat av ett operativsystem eller i en grafikkortdrivrutin.
Församlingsspråk är den lägsta koden
Församlingsspråk är mycket låg nivå; de flesta av koden flyttar bara värden mellan CPU-register och minne. Om du skriver ett lönepaket vill du tänka på lön och skatteavdrag, inte registrera A till minnesplats XYZ. Det är därför högre språk som C ++, C # eller Java är mer produktiva. Programmeraren kan tänka i termer av problemdomänen (löner, avdrag och periodiseringar) inte hårdvarudomänen (register, minne och instruktioner).
Systemprogrammering med C
C utformades i början av 1970-talet av Dennis Ritchie. Det kan betraktas som ett allmänt verktyg - mycket användbart och kraftfullt men mycket lätt att släppa buggar som kan göra system osäkra. C är ett lågnivåspråk och har beskrivits som bärbart monteringsspråk. Syntaxen för många skriptspråk är baserad på C, till exempel, JavaScript, PHP och ActionScript.
Perl: Webbplatser och verktyg
Perl var mycket populärt i Linuxvärlden och var ett av de första webbspråken och är fortfarande mycket populärt idag. För att göra "snabb och smutsig" programmering på webben förblir den oöverträffad och driver många webbplatser. Det har dock blivit något förmörkat av PHP som ett webbskriptspråk.
Kodning av webbplatser med PHP
PHP designades som ett språk för webbservrar och är mycket populärt i samband med Linux, Apache, MySql och PHP eller LAMP för kort. Det tolkas, men förkompileras så att koden körs ganska snabbt. Det kan köras på stationära datorer men används inte lika mycket för att utveckla stationära applikationer. Baserat på C-syntax inkluderar det också Objekt och klasser.
Pascal utformades som ett lärdomsspråk några år före C men var mycket begränsad med dålig sträng och filhantering. Flera tillverkare utökade språket men det fanns ingen övergripande ledare förrän Borlands Turbo Pascal (för Dos) och Delphi (för Windows) dök upp. Dessa var kraftfulla implementationer som tillförde tillräckligt med funktionalitet för att göra dem lämpliga för kommersiell utveckling. Borland stod emellertid emot den mycket större Microsoft och tappade striden.
C ++: Ett klassiskt språk!
C ++ eller C plus-klasser som det ursprungligen var kända kom ungefär tio år efter C och introducerade framgångsrikt objektorienterad programmering till C, liksom funktioner som undantag och mallar. Att lära sig alla C ++ är en stor uppgift - det är överlägset det mest komplicerade av programmeringsspråken här, men när du väl behärskar det har du inga svårigheter med något annat språk.
C #: Microsofts stora insats
C # skapades av DelphiArkitekten Anders Hejlsberg efter att han flyttade till Microsoft och Delphi-utvecklarna kommer att känna sig hemma med funktioner som Windows-formulär.
C # syntax är mycket lik Java, vilket inte är förvånande eftersom Hejlsberg också arbetade på J ++ efter att han flyttade till Microsoft. Lär dig C # och du är på god väg att känna Java. Båda språken är halvkompilerade så att de istället för att kompilera till maskinkod kompilerar till bytkod (C # kompilerar till CIL men den och Bytecode är likadana) och sedan tolkas.
Javascript: Program i din webbläsare
Javascript är ingenting som Java, istället är det ett skriptspråk baserat på C-syntax men med tillägg av Objekt och används främst i webbläsare. JavaScript är tolkat och mycket långsammare än sammanställt kod men fungerar bra i en webbläsare.
Uppfunnen av Netscape har det visat sig vara mycket framgångsrikt och efter flera år i doldrums åtnjuter en ny livslånga pga AJAX; Asynkron Javascript och XML. Detta gör att delar av webbsidor kan uppdateras från servern utan att rita om hela sidan.
ActionScript: Ett flashigt språk!
Action är en implementering av JavaScript men existerar enbart inom Macromedia Flash-applikationer. Med vektorbaserad grafik används den främst för spel, spela videor och andra visuella effekter och för att utveckla sofistikerade användargränssnitt, alla kör i webbläsaren.
Grundläggande för nybörjare
Grundläggande är en akronym för nybörjare all symbolisk kod för instruktioner och skapades för att undervisa i programmering på 1960-talet. Microsoft har gjort språket till sitt eget med många olika versioner inklusive VBScript för webbplatser och det mycket framgångsrika Visual Basic. Den senaste versionen av det är VB.NET och den körs på samma plattform .NETTO som C # och producerar samma CIL-bytekod.
Lua är ett gratis skriptspråk skrivet i C som inkluderar skräpsamling och koroutiner. Det gränssnitt väl med C / C ++ och används i spelindustrin (och icke-spel också) för att skriptspellogik, händelsutlösare och spelkontroll.
Slutsats
Samtidigt som alla har sitt favoritspråk och har investerat tid och resurser på att lära sig att programmera det, finns det några problem som bäst kan lösas med rätt språk.
E.G du skulle inte använda C för att skriva webbappar och du skulle inte skriva ett operativsystem i Javascript. Men vilket språk du än väljer, om det är C, C ++ eller C #, åtminstone vet du att du är på rätt plats att lära dig det.