20. november er det 25 år siden, at Turbo Pascal 1.0 blev frigivet.
Det gav Anders Hejlberg (ophavsmand til C#, J++, Delphi, Turbo-pascal og Poly-Pascal og siden 2000 leder af Microsofts udviklingsgruppe for C#) anledning til at fyre op under en Turbo Pascal for at skrive et lille 'Hello World'-program, da han holdt sin keynote på JAOO-konferencens første dag.
Det gav ham anledning til at se nærmere på udviklingen i programmeringssprogene.
Han sammenlignede sit Turbo Pascal 'Hello World'-program med et tilsvarende skrevet i C# og konstaterede, at der egentlig ikke var den store forskel - bortset fra at C#-koden fyldte lidt mere.
Den store udvikling har fundet sted indenfor udviklingsværktøjer og frameworks.
Hvor man dengang havde en begrænset mængde af libraries, så er størrelsen af .Net libraries enorm.
"At mestre libraries er en kolossal opgave," siger Anders Hejlsberg.
En linje kode er mere værd end tusind billeder
Dengang for 25 år siden troede man, at softwareudvikling ville være meget anderledes i dag. Forestillinger om, at man ville anvende naturligt sprog til programudvikling, var ikke usædvanlige. En ting var sikkert; man ville i hvert fald ikke skrive kode som man gjorde på det tidspunkt; én linje ad gangen...
En overgang var det troen på, at programmering fremover ville foregå ved hjælp af visuelle værktøjer, som greb industrien.
Anders Hejlsberg var selv involveret i udviklingen af et visuelt værktøj med navnet Monet.
Men efterhånden fandt man ud af at "en linje kode er mere værd end tusind billeder," som Anders Hejlsberg formulerer det.
Paradigmet er multiparadigmer
På den baggrund er Anders Hejlsberg påpasselig med at love revolutioner i måden at programmere på.
Han forventer stadig, at vi vil skrive kode som i dag, men det bliver med flere facetter, end vi kender i dag.
Tre trends trænger sig på...
Deklarative sprog
Hvor man i dag i de såkaldt imperative sprog som Java og C gør meget ud af at specificere hvordan man skal løse et problem, vil deklarative elementer blive fusioneret ind i sprogene, så der kommer mere fokus på hvad der skal til.
Et eksempel er Language Integrated Query (LINQ), der blev introduceret med version 3.0 af C#.
Dynamiske sprog
Dynamiske sprog vil også blive fusioneret ind i de statiske sprog, mener Anders Hejlsberg.
I dag findes Dynamic Language Runtime til .Net, der giver mulighed for at anvende Python og Rubypå .Net-platformen.
Fremover vil fusionen mellem statiske og dynamiske sprog blive mere udtalt.
Parallelprogrammering
Efterhånden som flerkerneprocessorer bliver standard i pc'er og laptops, skal udviklerne og compilerne være i stand til at udnytte det.
Her gælder det om at dekomponere aplikationer i delopgaver, som kan udføres parallelt.
Hvordan det reelt skal foregå, hvor meget der skal gøres af programmørerne og hvor meget der kan håndteres af compileren og et eventuelt parallelt framework er uklart.
Et fingerpeg kan man få via det arbejde som Microsoft er i gang med Parallel extension for .Net.