Programmering 1 för gymnasiet med ruby/Historien bakom C++, java och ruby

Från Wikibooks


Vad är ett proceduriellt programmeringsspråk?[redigera]

I början var alla språk mer eller mindre proceduriella. Språket basic följde med DOS och kan duga som (skräck)exempel. Där numrerades raderna och koden lästes rad för rad. Ville man hoppa runt i koden skrev man bara vilken rad man ville hoppa till. Ett enkelt exempel som fyllde hela skärmen med texten "Hej du glade" var:

10 PRINT "Hej du glade"
20 GOTO 10

Ett litet program på några tusen rader gick rätt lätt att kontrollera, men när ett program kunde bestå av flera tusen sidor text och det någonstans fanns ett hopp till en rad någonstans som var fel, blev det i praktiken omöjligt att förhindra läsfel.

Nästa steg var mer avancerade proceduriella språk som Pascal och C. De används än idag och är rätt behändiga om man vill göra enkla program som inte har alltför många funktioner. Programmens hjärta var funktionerna som ofta låg utanför koden och anropades vid rätt tillfälle (utan att man behövde ange någon speciell rad). Men problemet var att man behövde mer kraft än så. Därför uppfanns programmet C++, en vidareutveckling av C.

Vad är ett objektorienterat programmeringsspråk?[redigera]

Objektorientering (förkortas oftast OOP) bygger på tre pelare: objekt, inkapsling och arv. Allting i språket skulle egentligen vara objekt, lådor där bara utsidan syntes mot användaren och koden på insidan var dold, något som fungerade i det som kom att kallas klasser. Inkapslingen fungerade så att allt klassen behövde i form av objekt, variabler och funktioner fanns lagrad i det egna objektet/klassen och arvet innebar att en klasskunde ärva en annan klass innehåll. Allt för att underlätta programmering och förhindra det kaos som uppstod genom proceduriell programmering.

Vad är C++?[redigera]

C++ är ett avancerat objektorienterat programspråk där alla tre delarna i OOP finns med. När man skapar program i C++ bildar det en egen fil. Man behöver alltså (i teorin) inget annat program än själva operativsystemet. Och här är en nackdel, man måste skapa en ny programfil för varje operativsystem som användaren kan tänkas ha, dessutom måste koden se olika ut för varje operativsystem, något som gör det väldigt omständligt att skapa program. Det behövdes något bättre, något som var både OOP och plattformsoberoende.


Vad är java?[redigera]

Java blev svaret. Javakod kunde skrivas direkt i ett textdokument som sedan tolkades om i en pre-processor så att själva javamotorn kunde köra programmet. Det gjorde att man var tvungen att ha javamotorn installerad på den dator som skulle köra javaprogrammet, men den var gratis så det var egentligen inget större problem. Precis som C++ var java objektorienterat (OOP) och hade basen i hanteringen av olika klasser. Den största nackdelen med java var, och är, att det är tungrott och långsamt, mycket långsammare än många andra likvärdiga språk. Dessutom växte java ut och blev allt krångligare och krångligare att hantera när nya bibliotek lades till de gamla om och om igen. Man behövde något nytt, ett språk som var snabbt, lättprogrammerat och plattformsoberoende.


Vad är ruby?[redigera]

Ruby är ett objektorienterat programmeringsspråk som skapades av japanen Yukihiro Matsumoto, känd som Matz, redan 1995. Precis som alla andra skriptade språk har ruby rötterna i programmeringsspråket "smalltalk" och är därför släkt med alla andra liknande, skriptade, språk som pearl, och python. Rubyprogram skapas genom att koden skrivs i en textfil, vanligtvis sparad som: filnamn.rb där .rb på slutet visar att det är en rubyfil. Den textfilen blir inläst av programmet ruby, som sedan visar resultatet på dataskärmen genom att t.ex. skriva i kommandofönstret:

ruby filnamn.rb

Eftersom olika operativsystem använder varsin version av ruby kan samma kod användas på vilket operativsystem som helst. Nackdelen är just att man måste installera ruby för att över huvud taget kunna köra rubyskripten, men som tur är så är ruby gratis för alla att ladda ner och att använda.


Vad är ruby on rails?[redigera]

Ruby som språk är ett litet småkul språk men är egentligen likvärdigt med python. Därför har inte ruby fått något större genomslag i västvärlden eftersom de flesta programmerare föredragit python (eller pearl) framför ruby. I ostasien däremot har ruby varit mycket populärt hela tiden. Rubys stora uppsving kom genom att man kombinerade ruby med webservrar genom tillägget "rails". Med ruby on rails kunde man på ett enkelt sätt skapa helt objekt orienterade system som drevs med hjälp av en webserver och resultatet visades upp i hemsidor för användarna. Systemet är lättprogrammerat och framför allt helt gratis. Men för att kunna använda dig av ruby on rails måste du först lära dig ruby.

Framtiden?[redigera]

Hur ser framtiden ut för dessa program? Det är svårt att sia om det men i dagsläget har det kommit ut en ny C++ version som heter C++X som skall vara mer riktat mot nätverk. C++ är och förblir industristandard när det gäller operativsystem och när det gäller programmerandet av stora spel. Även om det är det svåraste språket att lära sig kommer det nog att fortsätta vara viktigt.

Java har en sämre framtid framför sig eftersom användarna blivit allt känsligare med tiden för långsamma program. Tiden har helt enkelt sprungit ifrån java och i dagsläget är faktiskt javas skriptade lillebror javascript ett språk med större framtid framför sig.

Ruby tillhör den klick av språk som just påbörjat sin utvecklingspotential, tillsammans med språk som python och lua. Eftersom ruby går att använda på precis alla plattformar kommer det troligen bara att bli allt populärare bland programmerare med tiden. Ju mer av framtidens applikationer som hamnar ute i "molnet" desto större nytta kommer programmerare att ha av ruby och ruby on rails.