Sinds de jaren 1950 hebben computerwetenschappers duizenden programmeertalen bedacht. Velen zijn onduidelijk, misschien gemaakt voor een Ph. D. scriptie en sindsdien nooit meer van gehoord. Anderen werden een tijdje populair en vervaagden toen door gebrek aan ondersteuning of omdat ze beperkt waren tot een bepaald computersysteem. Sommige zijn varianten van bestaande talen en voegen nieuwe functies toe, zoals parallellisme - de mogelijkheid om veel delen van een programma parallel op verschillende computers uit te voeren.
Lees hier meer over Wat is een programmeertaal?
Programmeertalen vergelijken
Er zijn verschillende manieren om computertalen te vergelijken, maar voor de eenvoud vergelijken we ze op compilatiemethode en abstractieniveau.
Compileren naar machinecode
Sommige talen vereisen dat programma's direct worden omgezet in machinecode - de instructies die een CPU rechtstreeks begrijpt. Dit transformatieproces wordt genoemd compilatie. Assembly Language, C, C ++ en Pascal zijn gecompileerde talen.
Geïnterpreteerde talen
Andere talen zijn ook niet Geïnterpreteerd zoals Basic, Actionscript en Javascript, of een combinatie van beide die wordt gecompileerd in een tussenliggende taal - dit omvat Java en C #.
Een geïnterpreteerde taal wordt tijdens runtime verwerkt. Elke regel wordt gelezen, geanalyseerd en uitgevoerd. Elke keer in een lus een regel opnieuw moeten verwerken, is wat geïnterpreteerde talen zo traag maakt. Deze overhead betekent dat geïnterpreteerde code 5 - 10 keer langzamer werkt dan gecompileerde code. De geïnterpreteerde talen zoals Basic of JavaScript zijn het langzaamst. Hun voordeel is dat het niet opnieuw gecompileerd hoeft te worden na veranderingen en dat is handig als je leert programmeren.
Omdat gecompileerd programma's bijna altijd sneller draaien dan geïnterpreteerd, talen zoals C en C ++ zijn meestal het populairst voor schrijfspellen. Java en C # compileren beide naar een geïnterpreteerde taal die zeer efficiënt is. Omdat de virtuele machine die Java interpreteert en het .NET-framework dat C # uitvoert, sterk zijn geoptimaliseerd, wordt beweerd dat applicaties in die talen even snel of zelfs sneller zijn dan gecompileerde C ++.
Niveau van abstractie
De andere manier om talen te vergelijken is het abstractieniveau. Dit geeft aan hoe dicht een bepaalde taal bij de hardware staat. Machinecode is het laagste niveau, met Assembly Language er net boven. C ++ is hoger dan C omdat C ++ meer abstractie biedt. Java en C # zijn hoger dan C ++ omdat ze compileren naar een tussentaal genaamd bytecode.
Hoe talen vergelijken
Snel gecompileerde talen
- Vergaderingstaal
- C
- C ++
- Pascal
- C #
- Java
Redelijk snel geïnterpreteerd
- Perl
- PHP
Langzaam geïnterpreteerd
- JavaScript
- ActionScript
- Basic
Machinecode is de instructie die een CPU uitvoert. Het is het enige dat een CPU kan begrijpen en uitvoeren. Voor geïnterpreteerde talen is een toepassing met de naam an nodig Tolk die elke regel van de programmabroncode leest en deze vervolgens 'uitvoert'.
Tolken is eenvoudiger
Het is heel eenvoudig om applicaties die in een geïnterpreteerde taal zijn geschreven te stoppen, wijzigen en opnieuw te gebruiken en daarom zijn ze populair om te leren programmeren. Er is geen compilatiefase nodig. Compileren kan een vrij langzaam proces zijn. Een grote Visual C ++ -toepassing kan enkele minuten tot uren duren om te compileren, afhankelijk van hoeveel code opnieuw moet worden opgebouwd en de snelheid van het geheugen en de CPU.
Toen computers voor het eerst verschenen
Toen computers voor het eerst populair werden in de jaren vijftig, werden programma's geschreven in machinecode omdat er geen andere manier was. Programmeurs moesten schakelaars fysiek omdraaien om waarden in te voeren. Dit is zo'n vervelende en trage manier om een applicatie te maken dat er computertalen van een hoger niveau moesten worden gemaakt.
Assembler: snel om te rennen - langzaam om te schrijven!
Montagetaal is de leesbare versie van machinecode en ziet er zo uit
Mov A, $ 45
Omdat het gekoppeld is aan een bepaalde CPU of familie van gerelateerde CPU's, is assembler niet erg draagbaar en is het tijdrovend om te leren en te schrijven. Talen zoals C hebben de behoefte aan assembler beperkt, behalve wanneer RAM beperkt is of tijdkritische code nodig is. Dit staat meestal in de kernelcode in het hart van een besturingssysteem of in een videokaartstuurprogramma.
Montagetaal is het laagste codeniveau
Assembler is een zeer laag niveau; het grootste deel van de code verplaatst alleen waarden tussen de CPU-registers en het geheugen. Als u een salarispakket schrijft, wilt u denken in termen van salarissen en belastingaftrek, niet in register A bij Geheugenlocatie XYZ. Dit is de reden waarom talen op een hoger niveau zoals C ++, C # of Java zijn productiever. De programmeur kan denken in termen van het probleemdomein (salarissen, inhoudingen en overlopende rekeningen) en niet het hardwaredomein (registers, geheugen en instructies).
Systeemprogrammering met C
C werd bedacht in de vroege jaren 1970 door Dennis Ritchie. Het kan worden gezien als een hulpmiddel voor algemene doeleinden - zeer nuttig en krachtig maar zeer gemakkelijk om bugs door te laten waardoor systemen onzeker kunnen worden. C is een taal op laag niveau en is beschreven als draagbare assemblagetaal. De syntaxis van veel scripttalen is bijvoorbeeld gebaseerd op C, JavaScript, PHP en ActionScript.
Perl: websites en hulpprogramma's
Zeer populair in de Linux-wereld, Perl was een van de eerste webtalen en blijft nog steeds erg populair. Voor het "snel en vies" programmeren op het web blijft het ongeëvenaard en stuurt het vele websites. Het is echter enigszins overschaduwd door PHP als webscripttaal.
Websites coderen met PHP
PHP is ontworpen als een taal voor webservers en is erg populair in combinatie met Linux, Apache, MySql en kortweg PHP of LAMP. Het wordt geïnterpreteerd, maar vooraf gecompileerd zodat code redelijk snel wordt uitgevoerd. Het kan op desktopcomputers worden uitgevoerd, maar wordt niet zo veel gebruikt voor het ontwikkelen van desktopapplicaties. Gebaseerd op de syntaxis van C, omvat het ook Voorwerpen en klassen.
Pascal was een paar jaar voor C bedacht als onderwijstaal, maar was zeer beperkt met een slechte string- en bestandsafhandeling. Verschillende fabrikanten hebben de taal uitgebreid, maar er was geen algemene leider totdat Borland's Turbo Pascal (voor Dos) en Delphi (voor Windows) verschenen. Dit waren krachtige implementaties die voldoende functionaliteit toevoegden om ze geschikt te maken voor commerciële ontwikkeling. Borland moest het echter opnemen tegen de veel grotere Microsoft en verloor de strijd.
C ++: een stijlvolle taal!
C ++ of C plus-klassen zoals het oorspronkelijk bekend was, kwamen ongeveer tien jaar na C en introduceerden met succes Object Oriented Programming in C, evenals functies zoals uitzonderingen en sjablonen. Alles van C ++ leren is een grote taak - het is verreweg de meest gecompliceerde van de programmeertalen hier, maar als je het eenmaal onder de knie hebt, heb je geen problemen met een andere taal.
C #: Microsoft's grote inzet
C # is gemaakt door Delphi's architect Anders Hejlsberg nadat hij naar Microsoft is verhuisd en ontwikkelaars van Delphi zullen zich thuis voelen met functies zoals Windows-formulieren.
C # syntax lijkt erg op Java, wat niet verwonderlijk is omdat Hejlsberg ook aan J ++ werkte nadat hij naar Microsoft was verhuisd. Leer C # en je bent goed op weg om Java te kennen. Beide talen zijn semi-gecompileerd zodat ze in plaats van compileren naar machinecode, compileren naar bytecode (C # compileert naar CIL maar it en Bytecode zijn vergelijkbaar) en worden vervolgens geïnterpreteerd.
Javascript: programma's in uw browser
Javascript is niets zoals Java, in plaats daarvan is het een scripttaal gebaseerd op C-syntaxis maar met de toevoeging van Voorwerpen en wordt voornamelijk in browsers gebruikt. JavaScript wordt geïnterpreteerd en veel langzamer dan gecompileerd code maar werkt goed in een browser.
Uitgevonden door Netscape is het zeer succesvol gebleken en geniet het na een aantal jaren in het slop een nieuw leven dankzij AJAX; Asynchroon Javascript en XML. Hierdoor kunnen delen van webpagina's worden bijgewerkt vanaf de server zonder de hele pagina opnieuw te tekenen.
ActionScript: een flitsende taal!
ActionScript is een implementatie van JavaScript maar bestaat alleen binnen Macromedia Flash-applicaties. Met behulp van vectorafbeeldingen wordt het voornamelijk gebruikt voor games, het afspelen van video's en andere visuele effecten en voor het ontwikkelen van geavanceerde gebruikersinterfaces, die allemaal in de browser worden uitgevoerd.
Basic voor beginners
Basic is een acroniem voor beginners symbolische instructiecode en is gemaakt om programmeren te onderwijzen in de jaren zestig. Microsoft heeft de taal zich eigen gemaakt met veel verschillende versies, waaronder VBScript voor websites en de zeer succesvolle Visual Basic. De nieuwste versie daarvan is VB.NET en deze draait op hetzelfde platform .NETTO als C # en produceert dezelfde CIL-bytecode.
Lua is een gratis scripttaal geschreven in C die afvalinzameling en coroutines bevat. Het werkt goed samen met C / C ++ en wordt in de gamesindustrie (en ook niet-games) gebruikt voor logica van scripts, triggers van gebeurtenissen en gamecontrole.
Conclusie
Hoewel iedereen zijn favoriete taal heeft en tijd en middelen heeft geïnvesteerd in het leren programmeren, zijn er enkele problemen die het beste met de juiste taal kunnen worden opgelost.
E.G, u zou C niet gebruiken voor het schrijven van web-apps en u zou geen besturingssysteem schrijven in Javascript. Maar welke taal je ook kiest, als het C, C ++ of C # is, weet je tenminste dat je op de juiste plaats bent om het te leren.