Sammenligning av populære programmeringsspråk
Hvordan stables de opp?
Getty Images/ermingut
Siden 1950-tallet har informatikere utviklet tusenvis av programmeringsspråk. Mange er obskure, kanskje skapt for en Ph.D. avhandling og aldri hørt om siden. Andre ble populære en stund og bleknet deretter på grunn av manglende støtte eller fordi de var begrenset til et bestemt datasystem. Noen er varianter av eksisterende språk, og legger til nye funksjoner som parallellitet - muligheten til å kjøre mange deler av et program på forskjellige datamaskiner parallelt.
Les mer om Hva er et programmeringsspråk?
Sammenligning av programmeringsspråk
Det er flere måter å sammenligne datamaskinspråk på, men for enkelhets skyld vil vi sammenligne dem etter kompileringsmetode og abstraksjonsnivå.
Kompilere til maskinkode
Noen språk krever at programmer transformeres direkte til maskinkode - instruksjonene som en CPU forstår direkte. Denne transformasjonsprosessen kalles samling . Assembly Language, C, C++ og Pascal er kompilerte språk.
Tolkede språk
Andre språk er det heller Tolket som Basic, Actionscript og Javascript, eller en blanding av begge som kompileres til et mellomspråk - dette inkluderer Java og C#.
Et tolket språk behandles under kjøring. Hver linje blir lest, analysert og utført. Å måtte reprosessere en linje hver gang i en loop er det som gjør tolkede språk så trege. Denne overheaden betyr at tolket kode kjører mellom 5 - 10 ganger langsommere enn kompilert kode. De tolkede språkene som Basic eller JavaScript er de tregeste. Fordelen deres er at de ikke trenger å bli rekompilert etter endringer, og det er nyttig når du skal lære å programmere.
Fordi kompilert programmer kjører nesten alltid raskere enn tolket, språk som C og C++ har en tendens til å være de mest populære for å skrive spill. Java og C# kompileres begge til et tolket språk som er veldig effektivt. Fordi den virtuelle maskinen som tolker Java og .NET-rammeverket som kjører C# er sterkt optimalisert, hevdes det at applikasjoner på disse språkene er like raske om ikke raskere som kompilert C++.
Abstraksjonsnivå
Den andre måten å sammenligne språk på er abstraksjonsnivå. Dette indikerer hvor nært et bestemt språk er maskinvaren. Maskinkode er det laveste nivået, med Assembly Language like over det. C++ er høyere enn C fordi C++ gir større abstraksjon. Java og C# er høyere enn C++ fordi de kompilerer til et mellomspråk kalt bytecode.
Hvordan språk sammenlignes
- |_+_|
- Forsamlingsspråk
- C
- C++
- Pascal
- C#
- Java
- |_+_|
- Perl
- PHP
- |_+_|
- JavaScript
- ActionScript
- Grunnleggende
Maskinkode er instruksjonene som en CPU utfører. Det er det eneste en CPU kan forstå og utføre. Tolkede språk trenger en applikasjon som kalles en Tolk som leser hver linje i programkildekoden og deretter 'kjører' den.
Tolking er lettere
Det er veldig enkelt å stoppe, endre og kjøre applikasjoner skrevet på et tolket språk på nytt, og det er derfor de er populære for å lære programmering. Det er ingen kompileringsfase nødvendig. Kompilering kan være en ganske treg prosess. En stor Visual C++-applikasjon kan ta fra minutter til timer å kompilere, avhengig av hvor mye kode som må bygges om og hastigheten på minnet og CPU.
Da datamaskiner først dukket opp
Da datamaskiner først ble populære på 1950-tallet, ble programmer skrevet i maskinkode da det ikke var noen annen måte. Programmerere måtte fysisk vende brytere for å angi verdier. Dette er en så kjedelig og treg måte å lage et program på at høyere nivå dataspråk måtte opprettes.
Assembler: Rask å løpe - Sakte å skrive!
Assembly language er den lesbare versjonen av Machine Code og ser slik ut
|_+_|
Fordi det er knyttet til en bestemt CPU eller familie av relaterte CPUer, er Assembly Language lite bærbart og det er tidkrevende å lære og skrive. Språk som C har redusert behovet for Assembly Language-programmering bortsett fra der RAM er begrenset eller tidskritisk kode er nødvendig. Dette er vanligvis i kjernekoden i hjertet av et operativsystem eller i en skjermkortdriver.
Assembly Language er det laveste nivået av kode
Assembly Language er svært lavt nivå; det meste av koden flytter bare verdier mellom CPU-registrene og minnet. Skal du skrive en lønnspakke vil du tenke i lønn og skattetrekk, ikke Registrer A til Minnested XYZ. Dette er grunnen til at språk på høyere nivå som C++,C#ellerJavaer mer produktive. Programmereren kan tenke i termer av problemdomenet (lønn, fradrag og periodisering) ikke maskinvaredomenet (registre, minne og instruksjoner).
Systemprogrammering med C
C ble utviklet på begynnelsen av 1970-tallet av Dennis Ritchie. Det kan betraktes som et generellt verktøy - veldig nyttig og kraftig, men veldig enkelt å slippe gjennom feil som kan gjøre systemene usikre. C er et språk på lavt nivå og har blitt beskrevet som bærbart forsamlingsspråk. Syntaksen til mange skriptspråk er basert på C, for eksempel, JavaScript , PHP og ActionScript.
Perl: Nettsteder og verktøy
Veldig populær i Linux-verdenen, Perl var et av de første webspråkene og er fortsatt veldig populært i dag. For å gjøre 'rask og skitten' programmering på nettet forblir den uovertruffen og driver mange nettsteder. Det har imidlertid blitt noe formørket av PHP som et webskriptspråk .
Kode nettsteder med PHP
PHP ble designet som et språk for webservere og er veldig populært i forbindelse med Linux, Apache, MySql og PHP eller LAMP for kort. Den er tolket, men forhåndskompilert slik at koden kjøres rimelig raskt. Den kan kjøres på stasjonære datamaskiner, men er ikke så mye brukt for å utvikle stasjonære applikasjoner. Basert på C-syntaks inkluderer den også Objekter og klasser.
Pascal ble utviklet som et undervisningsspråk noen år før C, men var svært begrenset med dårlig streng- og filhåndtering. Flere produsenter utvidet språket, men det var ingen overordnet leder før Borlands Turbo Pascal (for Dos) og Delphi (for Windows) dukket opp. Dette var kraftige implementeringer som la til nok funksjonalitet til å gjøre dem egnet for kommersiell utvikling. Borland var imidlertid oppe mot det mye større Microsoft og tapte kampen.
C++: Et stilig språk!
C++ eller C plus-klasser som det opprinnelig ble kjent kom omtrent ti år etter C og introduserte med suksess Objektorientert programmering til C, samt funksjoner som unntak og maler. Å lære hele C++ er en stor oppgave - det er det desidert mest kompliserte av programmeringsspråkene her, men når du først har mestret det, vil du ikke ha noen problemer med noe annet språk.
C#: Microsofts store innsats
C# ble opprettet avDelphiarkitekten Anders Hejlsberg etter at han flyttet til Microsoft og Delphi-utviklere vil føle seg hjemme med funksjoner som Windows-skjemaer.
C#-syntaksen er veldig lik Java, noe som ikke er overraskende siden Hejlsberg også jobbet med J++ etter at han flyttet til Microsoft. Lær C# og du er godt i gang med å kunne Java. Begge språkene er semi-kompilert slik at i stedet for å kompilere til maskinkode, kompilerer de til bytekode (C# kompilerer til CIL, men det og Bytecode er like) og blir deretter tolket.
Javascript: Programmer i nettleseren din
Javascript er ingenting som Java, i stedet er det et skriptspråk basert på C-syntaks, men med tillegg av Objekter og brukes hovedsakelig i nettlesere. JavaScript er tolket og mye tregere enn kompilert kode, men fungerer bra i en nettleser.
Oppfunnet av Netscape har den vist seg å være svært vellykket, og etter flere år i dvale nyter den en ny giv på grunn av AJAX; Asynkron Javascript og XML . Dette gjør at deler av nettsider kan oppdateres fra serveren uten å tegne hele siden på nytt.
ActionScript: Et prangende språk!
ActionScript er en implementering av JavaScript, men eksisterer utelukkende i Macromedia Flash-applikasjoner. Ved å bruke vektorbasert grafikk brukes den hovedsakelig til spill, avspilling av videoer og andre visuelle effekter og for å utvikle sofistikerte brukergrensesnitt, alt kjører i nettleseren.
Grunnleggende for nybegynnere
Grunnleggende er et akronym for Beginners All-purpose Symbolic Instruction Code og ble opprettet for å undervise i programmering på 1960-tallet. Microsoft har gjort språket til sitt eget med mange forskjellige versjoner inkludert VBScript for nettsteder og de svært vellykkede Visual Basic . Den siste versjonen av det er VB.NET og dette kjører på samme plattform .NETT som C# og produserer den samme CIL-bytekoden.
To er et gratis skriptspråk skrevet i C som inkluderer søppelinnsamling og koroutiner. Den grensesnitter godt med C/C++ og brukes i spillindustrien (og ikke-spill også) for å skrive spilllogikk, hendelsestriggere og spillkontroll.
Konklusjon
Mens alle har sitt favorittspråk og har investert tid og ressurser i å lære å programmere det, er det noen problemer som best løses med riktig språk.
Du ville for eksempel ikke brukt C for å skrive webapper, og du ville ikke skrive et operativsystem i Javascript. Men uansett hvilket språk du velger, hvis det er C, C++ eller C#, vet du i det minste at du er på rett sted for å lære det.