Bruce Eckel: Fysikere er bedre programmører

INTERVIEW: Programmeringsguruen Bruce Eckel, som står bag nogle af de mest kendte og anvendte bøger om C++ og Java, mener, at fysikere ofte er bedre til programmere end dataloger.

Bruce Eckel er mest kendt som forfatteren bag bøgerne Thinking in C++ og Thinking in Java, som på mange undervisningsinstitutioner har været standardværkerne inden for de to sprog. Han har i de seneste år kastet sin kærlighed på Python og Adobes Flex-miljø, og i den forløbne uge gæstede han Danmark i forbindelse med Javagruppens årskonference.

Version2 mødte Bruce Eckel torsdag, og samtalen tog udgangspunkt i spørgsmålet om, hvorfor dælen programmering stadig skal være så svært at have med at gøre.

»Hvis du ser på alt det, der er sket, så har det været trinvist. Jeg sad i C++-standardkomiteen, og en ting Stroustrup (den danske C++-opfinder, red.) sagde var, at et af de primære mål med C++ var at gøre det nemmere at bruge biblioteker. Han gjorde det ikke meget nemmere at skabe dem, men det blev nemmere at bruge biblioteker.«

Så kom Java til verden, og det mest vigtige, som Java tilføjede, var i Bruce Eckels øjne garbage collection, samt det forhold, at koden afvikles på en virtuel maskine, som ligger oven på styresystemet. Før Java blev det anset for at være praktisk uladsiggørligt. Exceptions var også med til at gøre det nemmere at skrive biblioteker.

»Jeg tror, at vores forventninger vokser hurtigere end sprogene, og hvis du ser på et sprog som Python, er der sket væsentlige forbedringer i at skabe applikationer i det sprog. Men folk har altid prøvet fjollede ting som at prøve at programmere ved at tegne diagrammer. Det tager seks gange længere at tegne et for-loop end at skrive det. Men folk der kan lide model-drevet udvikling klamrer sig til den ide.«

Objekter og funktioner kan være løsningen

Model-drevet udvikling er altså ikke Bruce Eckels kop te, men der er lyspunkter.

»Samtidig gør vi stadig fremskridt. Jeg mener f.eks. at Scala er et skridt fremad. Det er et konceptuelt skift.«

Hverken objektorientering eller funktionsprogrammering har løst problemerne, mener han.

»Måske er det kombinationen af dem, der kan bringe os fremad, og måske er det det, der kan løse problemet med parallelisme.«

Det grundlæggende problem er, at udviklingen af et stykke software samtidig ændrer brugernes forventninger til produktet, mener Bruce Eckel, der er helt på linje med fortalerne for adræt udvikling.

»Vi har haft mange problemer ved at finde ud af, hvad det er for problemer, vi prøver at løse. Vi prøver at gøre det i gennem en iterativ proces. Det er problemet med vores felt.«

Ingeniører kan bygge broer og være temmelig sikre på resultatet, men det skyldes, at problemet er godt forstået, og løsningen er kendt på forhånd. Sådan er det ikke med programmering.

»I software er der ikke nogen der ved, hvad de vil have, før de ser det. Så siger de: Hvis jeg havde vidst, at du kunne det, ville jeg have bedt dig om noget andet. Det er derfor, at de iterative udviklingsteknikker kommer frem.«

Programmering er et håndværk

Bruce Eckel mener, at programmering mere handler om håndværk end videnskab. Det kunne betyde, at programmøre skulle uddannes på en anden måde end i dag.

»Jeg kan tale lang tid om uddannelsessystemet, som irriterer mig ud over alle grænser. Hvorfor skulle du få dig en Ph.d i datalogi? Det skulle kun være for at undervise. Hver gang jeg har arbejdet samme med en Ph.d i datalogi på et projekt, går det galt,« fortæller Bruce Eckel.

Derimod er dem, der har Ph.d i fysik, rigtig gode til programmering. Fysik er også Bruce Eckels egen baggrund.

»I fysik udsættes man for problemer, som er alt for svære. Man kæmper med ting, som næsten ikke kan løses. Når man bliver vant til det, virker programmeringssprog som bare endnu et problem, der er alt for svært. Sådan lærte jeg C++.«

Det handler om at banke hovedet imod problemet, indtil man forstår det.

Dynamiske sprog er mere produktive

I de seneste år har Bruce Eckel kastet sig over Python, som han er end stærk fortaler for. Det er de fraværende typeerklæringer, som gør forskellen for ham.

»Jeg tror, det er fordi det tillader en stærkere syntaks.«

I Actionscript, som benyttes i Flash, kan man benytte typer som tilvalg, og det er det bedste fra begge verdener, mener han.

»De primære fordele ved statiske sprog er primært understøttelse af værktøjer og optimering. Men i den dynamiske verden har du en meget stærkere og direkte syntaks. Noget af det har vi set krybe tilbage i de statiske sprog,« siger Bruce Eckel, og hentyder f.eks. til det moderne for-loop, hvor iterationen over elementerne i en samling er underforstået.

Sproget Scala, som bygger videre på Java-platformen, er også karakteriseret ved at typesystemet er mindre påtrængende.

»Det er absolut en forbedret syntaks. Og det er funktionsting i sproget, som kan løse parallelisme-problemet. Ideen om, at have "actors" som en del af standard-biblioteket, det er vigtigt. Jeg synes at Scala er meget interessant, og jeg har lyst til at bruge mere tid med det.«

Men Python er stadig hans foretrukne sprog.

»Det, som jeg synes er fantastisk ved Python, er dets evne til at refaktorere sig selv. Det har jeg aldrig set et andet sprog gøre. For mig er det, det dynamiske aspekt af det, som gør mig mere produktiv. Det er et "gør-hvad-jeg-siger-sprog,"« slutter Bruce Eckel.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (36)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Torben Mogensen Blogger

Der er utvivlsomt fysikere, der er gode til at programmere. Og der er også dataloger, der ikke er gode til det -- specielt i USA, hvor mængden af projektarbejde i datalogiuddannelserne er forholdsvis lille, så med mindre de studerende programmerer i deres fritid eller i studiejob, så kan de sagtens være håbløse bagefter.

Men at sige, at fysikere generelt er bedre programmører er vås. Jeg kender nogle dataloger, som er fremragende til teoretisk fysik, men det gør ikke alle dataloger til fysikeksperter.

Det afhænger meget af, hvad man vil have programmeret: Hvis jeg vil have en til at lave en numerisk beregning af en elektrons bane i et varierende magnetfelt, så vil jeg nok foretrække en fysiker (eller i det mindste en datalog med kendskab til numerisk løsning af differentialligninger), men hvis jeg vil have lavet et operativsystem til en mangekerneprocessor eller et program til konvertering a tekster fra OOXML til ODF, så foretrækker jeg trods alt en datalog.

Men uanset uddannelse, så er det i den sidste ende personen, der er det vigtigste: En person med talent for programmering, vil blive en god programmør uanset uddannelse, og en person uden talent vil aldrig blive bedre end middelmådig. Men begge vil have gavn af en datalogisk uddannelse.

  • 0
  • 0
Hans-Kristian Bjerregaard

Det han snakker om er jo at løse konkrete problemer ved brug af et bestemt programeringssprog og det har vi jo en meget konkret uddannelse til; nemlig datamatiker uddannelsen.
Og alle kan jo lære at programere uden en uddannelse hvis de har talentet for det, specielt hvis man har en naturvidenskabelig baggrund da tankegangen for problemløsning ofte er den samme.

Så jeg kan sagtens forestille mig at fysikere kan være gode til at skrive programmer der kan hjælpe dem på vej med deres arbejde men hvis der f.eks. skal bruges noget mere hardcore som et helt nyt programeringssprog til det så vil en datalog være langt mere velegnet til opgaven.

Jeg syntes alt for tit jeg oplever at folk ser på datalogi uddannelsen som en ren programmør uddannelse og helt glemmer at datalogi er en akademisk tilgang til feltet istedet for en praktisk tilgang man får som datamatiker.

  • 0
  • 0
Poul-Henning Kamp Blogger

Der er utvivlsomt fysikere, der er gode til at programmere. Og der er også dataloger, der ikke er gode til det -- specielt i USA,[...]

Danske dataloger er heller ikke noget at samle på.

Dem af dem, der kan kode så det duer til noget, havde været lige så gode til det uden datalogigraden.

Jeg skal ikke afvise at datalogiuddannelsen giver noget ballast, men at kode ordentligt, det lærer de ikke.

Poul-Henning
(Selvlært)

  • 0
  • 0
Scott Hill

svaret er simple! historie!

-- den 1ste computer (ENIAC) var opfundet og bygget af fysikere!

--den 1ste operativsystem var opfundet af fysikere/math.
(John von Neumann)

--de 1ste programmeringssprog var opfundet af fysikere
FORTRAN, ALGOL, ADA, osv.

--den 1ste transistor var opfundet af fysikere! Og senere transistor, IC'er, osv.

--selv om computer science har været en universitetsfag i USA siden 1960'erne, var de første dataloger i DK udklækket sidst i 1970'erne--og flere af underviserne var naturligvis fysikere og math. da der ikke var udd. computer science folk i DK denne gang...

og ja, jeg er også fysiker, har arbejdet med teknisk og videnskabelig IT siden 1967!! Da jeg kom til DK i 1973 var der ingen datalogisk udd. i DK overhoved! På HCØ og NBI dengang måtte vividenskabsmænd selv skrive vores computerprogrammer, da der ingen programmør udd. var!!

  • 0
  • 0
Kim Dalsgaard

Med det samme talent vil en datalog blive en bedre softwareudvikler end en X! (indsæt også gerne fysiker på X'es plads.) Når man ser dygtige ikke-dataloger er det fordi deres talent og interesse har været så stort at de har forceret fagskellet. Jeg var der selv da man i slut 90'erne lukkede hvad som helst ind som softwareudviklere, og det er med gru jeg tænker tilbage!

Kim Dalsgaard (Cand. Merc.)

  • 0
  • 0
Hans-Kristian Bjerregaard

Det argument holder da på ingen måde. Sådan er det jo med alle nye videnskaber også fysikken. De dukker op af hinanden når der bliver brug for dem og indtil første generation inden for videnskaben er udlærte er det folk fra andre videnskaber der må uddanne dem da videnskaben er opstået af deres behov.

Og det eneste du påpejer er de første men det er jo nødvandigvis ikke de bedste. Skulle man følge den argumentation ville der aldrig være behov for at videreudvikle noget da det første udkast altid vil være det bedste hvilket jo er absurd (med mindre fysikere er så gode at første udkast altid er perfekt og ikke kan forbedres ;) ).

  • 0
  • 0
Torben Mogensen Blogger

Danske dataloger er heller ikke noget at samle på.

Dem af dem, der kan kode så det duer til noget, havde været lige så gode til det uden datalogigraden.

Jeg skal ikke afvise at datalogiuddannelsen giver noget ballast, men at kode ordentligt, det lærer de ikke.

Poul-Henning
(Selvlært)

Jeg fornemmer lidt af de selvlærtes traditionelle foragt for de uddannede. :-)

Men mon ikke, at du på egen hånd har studeret nogenlunde det samme -- i hvert fald indenfor de områder, du synes er interessante?

Jeg ved ikke, hvilke dataloger, du har denne dårlige erfaring med. De fleste, som jeg kender, er udmærkede programmører. Men der er undtagelser her ligesom alle andre steder, og det er måske dem, man husker bedst, da de ikke svarer til ens forventninger.

  • 0
  • 0
Hans Henrik Happe

Fysikere har oftest en mere praktisk tilgang til programmering. De skal have løst et problem, så de kan komme videre. Dvs. selve programmeringen er ikke interessant, mens resultatet er.

Denne fremgangsmåde virker fint får små isolerede projekter, men for større projekter der skal vedligeholdes over lang tid er dette ikke nok.

Det var som bekendt fysikeren Tim Berners-Lee der udviklede HTML og HTTP. Han kendte sikkert ikke selv konsekvenserne af sine handlinger og man kan heller ikke holde ham ansvarlig, men resultatet er at milliarder af mennesker hver dag sidder og venter på dynamisk genererede tekstdokumenter, som deres PC så senere kan bruge ekstra tid på at fortolke.

Endvidere har HTML sikkert også været inspirationskilden til at computeres indbyrdes sprog helt klart må være XML dokumenter :P Intel har endeligt lavet en CPU med en XML instruktion (næste generation vil sikkert bruge XML som maskinkode... det er nemmere at læse :-)

Dette var bare lige et lille eksempel på at man skal passe på hvad man sætter fysikere til at designe.

  • 0
  • 0
Michael Schade

Jeg læste det nærmere som 'lige børn leger bedst', d.v.s. at mennesker med samme rammer og erfaringsgrundlag arbejder godt sammen om at løse et 'snævert' problem, hvorfor fysikere selvfølgelige arbejder godt sammen med andre fysikere.
Udviklingen (eller tilbagegangen) af/i programmeringssprog og systemudvikling er dog en anden debat (af næsten religiøs karakter).

  • 0
  • 0
John Knuhtsen
Happe:

Det kan jeg godt følge dig i, at struktureret programmering måske ikke er fysikerens primære oplæring. Han er måske helt selvlært. Jeg har set det flere gange, at i den store sammenhæng er håndværkeren (lidt nede på jorden) ofte i det lange løb vinderen. Medens den meget intelligente programmør kan efterlade sig noget forfærdeligt noget, som er umuligt for at andre (og ham selv) at rette i.

  • 0
  • 0
Poul-Henning Kamp Blogger

Jeg fornemmer lidt af de selvlærtes traditionelle foragt for de uddannede. :-)

Nej, jeg foragter ikke de uddannede.

Men jeg har brugt mere tid end rimeligt er på at rydde op efter DIKU kandidater.

En IT-chef i et ganske stort dansk firma udtrykte det på et tidspunkt således i forbindelse med en ansøgning:

Han uddannet på DIKU og det har vi ikke tid til at vente på at han glemmer, men vi kunne jo ansætte ham under et eller andet påskud, så kan vi have ham klar om et par år.

Jeg ved godt at DIKU mentaliteten ikke er til programmering, vi har alle hørt "blyant nummer 2" og den slags og det kan godt være at det bare er et spørgsmål om at afstemme forventningerne.

Jeg ved ikke, hvilke dataloger, du har denne dårlige erfaring med. De fleste, som jeg kender, er udmærkede programmører.

Nu ved jeg så ikke hvad du mener med "udemærkede programører", men efter fem år på universitetet forventer jeg (og sandsynligvis en del andre) at få mere end "udemærkede programmører" for pengene.

Hvis jeg "bare" skal have en "udemærket programmør" så ville jeg kigge efter en datamatiker.

Af en datalog ville jeg forvente en der kan finde problemerne med den "udemærkede programmering" datamatikerne har skruet sammen.

Jeg er villig til at påstå, at de DIKU kandidater jeg har mødt som faktisk kunne programmere, kunne på trods af DIKU, ikke takket være DIKU.

Poul-Henning

  • 0
  • 0
Martin Rytter

Nogle mere er mere modtagelige over for uddannelse end andre. Det samme gælder selvgjorte erfaringer.

Det danske uddannelsessystem på IT-området er ikke godt nok til, at gøre hvem som helst til en god programmør. Men det er godt nok til, at den målbevidste når derhen.

/mrj

  • PhD-stipendiat med fortid i den virkelige verden før, under og efter studie.
  • 0
  • 0
Mathias Rasmussen

phk:

Grunden til du nok har skulle "rydde" op efter flere DIKU kandidater, er nok fordi det kræver en hvis forståelse for computer arkitektur inden man tilføjer noget til en kernel, og derfor det er de uddannede/specialiseret selvlærte der sender kode ind for tilføjeles.
Det kan kun være din egen fejl hvis du tillader kode fra andre, som ikke er veltestet kommer ind et projekt som du administrerer.

De selvlærte bliver typisk eksperter i en meget lille del af datalogien, og derfor meget dygtige til det, men giver du dem en helt anden opgave, vil de sjældent kunne omstille sig lige så hurtigt som en datalog der har baggrunden i orden.

Samtidigt er det værd at bemærke at datalogi er en teoretisk uddannelse og ikke bare en programmeringsuddannelse.

En datamatiker er en god koder, men de har lært 1-2 sprog på deres uddannelse, har snuset til basal database og computer arkitektur. En datalog som har disse interesser (programmering, comp/system arkitektur, databaser), vil være at foretrække i forhold til en selvlært eller datamatiker og være deres løn værd i guld.

Det kommer helt an på hvilken retning der vælges og der er mange flere retninger at vælge end bare programmering, det er jo bare et værktøj man skal kunne i de fleste tilfælde. De dataloger med interresse for programmering, kan jo sætte sig ind i hvilket som helst programmeringssprog inden for meget kort tid på grund af deres grundige teoretiske uddannelse.

Dine påstande mangler indsigt over hvad dataloger i virkeligheden er dygtige til, og hvor meget forskel der er på hver enkelt.

  • 0
  • 0
Lars Wive Marcussen

Siger I ikke det samme ?
Hvis man vil have en programmør, behøves jeg ikke en datalog, man kan nøjes med en datamatiker, ingenør, biolog eller fysiker der har fået et flaskehals kursus.
Men hvis man skal bruge en udvikler så er en programmør ikke nok, det kræver mere, en matematisk modenhed og villighed til at sætte sig ind i det domæne der skal udvikles til. Det tror jeg ikke kun har noget med uddanelsen at gøre.
Jeg har som ikke færdig datalog på mange projekter rettet både programmeringsfejl og problemer opstået af en forkert løsning, lavet både af dataloger og ikke dataloger. Jeg indrømmer gerne at jeg har lavet fejl selv, men programmeringen ser jeg som et redskabs fag for datalogerne.
Det kan bla. ses at jeg på andet år på DIKU fik 4*45 minutters C forelæsning og besked om at resten kunne læses i Brian & Dennis bogen. Hvilken programmør uddanelse vil nøjes med 3 timer og så nogle projekter ?

  • 0
  • 0
Poul-Henning Kamp Blogger

Grunden til du nok har skulle "rydde" op efter flere DIKU kandidater, er nok fordi det kræver en hvis forståelse for computer arkitektur inden man tilføjer noget til en kernel, [...]

Nydelig teori, men jeg laver meget andet end kerneprogrammering og de største katastrofer jeg har set har været temmelig trivielle databaseopgaver.

Poul-Henning

  • 0
  • 0
Anonym

Hvad blev der af:
En god EDB mand er een, der kan omsætte (optimerede) forretningsgange til brugbar EDB ?

Og sprog...
Vi vil gerne have een (X)HTML standard, een dokumentstandard - een ECMAScript standard osv.

Når vi snakker programmeringssprog, så skal snart hver eneste person forsøge at skabe et ego-monument ved at genopfinde hjulet, den dybe tallerken samt krudtet, og lige tilføje en ekstra detalje.

Nåh ja, det samme gælder diverse leverandørers implementering af deres egne 'SQL peculiaries'.

Selv den dag i dag er der ting der er løst i COBOL(approximerede værdier), som endnu ikke er implementeret/løst i diverse sprog.

  • 0
  • 0
Hans-Kristian Bjerregaard

Når vi snakker programmeringssprog, så skal snart hver eneste person forsøge at skabe et ego-monument ved at genopfinde hjulet, den dybe tallerken samt krudtet, og lige tilføje en ekstra detalje.

Verden er desvære ikke så simpel. Problemet er at der ikke findes én universel løsning på alle problemer. Det er præcis derfor vi har forskellige sprog (det gælder både programmering, markup og andre former for sprog). Hver især er de idéelle til at løse et problem på en bestemt måde. Så man er derfor nød til at vælge de sprog der passer bedst på ens problem og bruge dem.

En god EDB mand er een, der kan omsætte (optimerede) forretningsgange til brugbar EDB ?

Du kunne lige så godt bede om en universel ekspert der både var super til edb, marketing, HR og desuden kunne klare hele virksomheden ene mand.

Der findes desvære ikke så perfekte mennesker endnu så derfor er vi hver i sær nød til at specialisere os.

  • 0
  • 0
Brian Hvarregaard

Jeg har den fornøjelse efter min datamatiker (for 7 år siden) at læse en master i softwarekonstruktion. Jeg har taget nogle supplerende kurser for at kunne komme ind på master, disse kurser var sammen med regulære studerende. Det jeg specielt bider mærke i er at det jeg i sin tid lærte som datamatiker, var at softwareudvikling handler om mennesker - dvs. det er mennesker der skal udvikle software og mennesker der skal bruge det. Jeg synes meget af fokus på uddannelsen (datalogi, softwareingeniør) handler om at blive dygtig til at lave teknik og lave dybdegående analyser. Problemet er at det kobler mennesket fra softwaren, jeg vil hellere have en person der forstår det problemområde som kunden præsenterer og ikke hvordan man laver en superhurtig algoritme. Jeg vil hellere have en person der kan tale med andre mennesker og forstår at det ikke er nødvendigt at lave en dybdegående analyse af alle aspekter af området (da kunden sikkert ændrer holdning senere i projektet). Kort sagt jeg vil hellere lære et menneske at programmere end at lære en programmør at være menneske...

  • 0
  • 0
Scott Hill

flere grunde:

--AT&T Bell Labs har haft mange fysikere til udvikling af internet 1.0, UNIX styresystem, og C-sproget (UNIX-kernen er skrevet i C)

--WWW var opfundet af en fysiker fra CERN! ligeledes Hyperlinks, HTML,...

--flere af udviklerne af c+, c++, c# og OO-pascal var fysikere...bl.a. fra AT&T Bell labs, Alcatel Lucent, Inrise og Microsoft...

--flere af topudvikler i JAVA har en videnskabelige baggrund..

  • 0
  • 0
Jens Madsen

En datalogs opgave, er at kunne udvikle algorithmer, og analysere hvor stor kompleksitet, med hensyn til ram og forbrug, at en opgave kræver. Det er ikke, at kunne skrive kode - højst at skrive pseudo kode. En datalog, skriver rapporten, som ligger før programmet. Deres opgaver, er ikke at "spilde" deres tid, på den trivielle kodning. For en datalog, vil kodning ofte være triviel, kedeligt, og kunne klares af nogen med lavere uddannelse (typisk datanomer og edbassistenter), og de vil hellere arbejde med noget på et højt niveau, end kodning.

For fysikkere, er kodning noget andet. Typisk, har de et problem, som de kan få en løsning på, ved at kode. Kodning, er ikke en "kunst", men noget, som gøres, på samme måde som hvis du ønsker at få den til at vise en graf, for noget bestemt. Som når du bruger en lommeregner.

Her, er programmeringssprog som C++ og Java gode. De er egnet til hurtigt output, og forsøgsprogrammering, som er det fysikkeren behøver. De er ikke nødvendigvis en datalogs "kop the".

Det er derfor ikke noget under, at fysikkere er bedre til at programmere. De spekulere ikke nærmere over sprogets egenskaber, men koder for at kode. Ligesom edb-assistenter, programmører, og datanomer. De når ikke et højere niveau, hvor de kunne lave sprog selv, og dermed også kan se, alle de steder, hvor sproget er dårligt, i forhold til det som de selv ville have gjort. Dataloger, vil typisk abstrahere sig fra kodningen, og dette er netop deres job. At sprogene, måske ikke er datalogens "kop the", gør det også nemmere, for datalogen, at abstrahere. I stedet for, at "kæmpe" mod idioter der har udviklet computere, operativssytemer, og programmeringssprog, lægges opgaverne der indebærer disse kompetancer over til programmører, der ikke har viden i bedre.

  • 1
  • 0
Torben Mogensen Blogger

En datalogs opgave er at kunne udvikle algoritmer, og analysere hvor stor kompleksitet med hensyn til RAM og forbrug en opgave kræver. Det er ikke at kunne skrive kode - højst at skrive pseudokode.

Her er jeg uenig. Der kan godt være jobs for dataloger, der ikke kræver programmering. Men hvis man ikke kan programmere, så kan man heller ikke lave pseudokode eller algoritmer. Og en god datalog er også en habil programmør (omend ikke nødvendigvis en superprogrammør). Ikke dermed sagt, at alle dataloger er gode dataloger. :-)

Tidligere var det muligt at slippe gennem datalogiuddannelsen uden at kunne programmere overhovedet, for alle programmeringsopgaver var gruppeopgaver, så dem, der ikke kunne programmere, blev ofte sat til andre delopgaver, såsom systematisk test, rapportskrivning osv. På den måde kunne man slippe igennem førstedelen stort set uden at programmere. På andendelen kunne man så styre udenom tekniske kurser, og i stedet lave behovsanalyser, brugergrænseflader, ren teori osv., så man undgik programmering, selv om man ikke var i en gruppe. Disse mennesker er ikke nødvendigvis ubrugelige, men de er i hvert fald ikke programmører.

Sådan er det ikke mere. Der er mange individuelle programmeringsopgaver. Ikke alle løser dem lige godt, og nogen kommer aldrig til det og dropper ud (hvor vi i gamle dage stort set intet frafald havde på førstedelen). Men man kan ikke sno sig helt udenom programmering, hvis man vil blive bachelor i datalogi på DIKU.

  • 0
  • 0
Hans Henrik Happe

NIELS P SØNDERSKOV skrev:

"Hvad ville du hellere sende rundt?"

Når det gælder statiske dokumenter, som mennesker skal læse og ændre i er HTML/XML okay. Det var også der formål de oprindeligt var beregnet til. I HTML manglede der dog en klar standard for hvordan et dokument skulle fortolkes og vises. Selvom der er gjort en del for forbedre denne situation er der stadig problemer med browseres forskelligheder. Tekst dokumenter kan pakkes meget, hvilket er en uhyre nem optimering. Faktisk skulle web-servere have været tvunget til at teste et nyt/ændret dokument for fejl for så at pakke det.

Dynamiske genererede dokumenter var et hurtigt fix for at få interaktive applikationer. I dag har man endeligt indset at wep-applikationer skal laves som en almindelig applikation som snakker med serveren. Java applets var et dårligt første forsøg på dette.

Når computere skal udveksle information indbyrdes er der simpelthen ikke nogen undskyldning for ats gøre det med tekstdokumenter (XML-RPC/SOAP). Der findes smartere binære formater til at strukturere data - det fylder meget mindre og er hurtigere at encode/decode. Dette problem har mange indset og der har derfor været meget snak om "Binary XML" eller pakke algoritmer. Jeg kender ikke status på dette, da jeg heldigvis ikke bruger det. Den eneste grund til at XML blev så populært til dette formål - som jeg kan komme på - er at udviklerne kan se teksten uden en fortolker/debugger.

  • 0
  • 0
Slet Mig nu

Hvis du har til opgave at designe I/O strategi/algoritmer/... for en database/forsikringssystem/... så betyder det ikke så meget om du ved noget om hvordan Fru Jensen skal spørges således hun kommer med input til brugervenligheden. Eller sagt på en anden måde: der er myriader af ansvarsområder for en datalog så ja og nej til dit spørgsmål.

Ken

  • 0
  • 0
Slet Mig nu

Du har brugt tid på at rydde op efter et antal Diku dataloger og derfor er dataloger dårlige programmører? Jeg har brugt tid på at rydde op efter et antal selvudlærte it folk, er du derfor en dårlig programmør? Jeg tror det ikke, men nu er generalisering jo nem at lave.

Jeg vil personligt vurdere det som sandsynligt, at Bruce i første omgang har lavet generaliseringen fordi han derved igennem et ramaskrig kunne skabe opmærksomhed omkring sit navn og herigennem være i stand til at sælge flere timer, taler på konferencer, bøger m.m. Et it svar på Paris Hilton, om man så må sige.

Hvilket stiller spørgsmålet, hvorfor gå med på den?

Ken

  • 0
  • 0
Jens Madsen

Jeg tror, at det altid har været meget forskellige holdninger til, hvad det er at være dårlig programmør. I sin tid, mente mange, at maskinkode programmører var gode programmører - senere mente mange, at de samme nu var dårlige programmører. Senere, er blevet skrevet bøger om "kusten at programmere", og hvor viden og kunnen fra disse bøger, har betydet mere for, om man var betragtet for en god programmør, end ens analytiske evner, med hensyn til en opgave.

Efter min opfattelse, bør programmører få en mere ingeniør instilling til deres job. Ingeniører arbejder, udfra garantier, datablade, osv. og de står inde for det de leverer. Har du en chip, overlades ikke nogen forsinkelse til tilfældighederne - for så ved du ikke, om den nogensinde svarer. Inden for programmering, bør alle rutiner, på samme måde, som indenfor enhver anden ingeniørmæssig videnskab, bero på datablade for programmerne og rutinerne, de bør være så små at de er overskuelige og bevislige, og der bør tages ansvar for at såvel grundlaget er opfyldt som der bygges på, som for at det job der udføres er i orden. Sådan gør ingeniører. Og jeg synes, at programmører, og dataloger bør lære noget heraf.

  • 0
  • 0
Poul-Henning Kamp Blogger

Efter min opfattelse, bør programmører få en mere ingeniør instilling til deres job. Ingeniører arbejder, udfra garantier, datablade, osv. og de står inde for det de leverer.

Tjae, som hardware-nær programmør kan jeg kun klø mig i nakken når jeg læser den slags teorier.

Det er bestemt ikke mit indtryk af dette idealbillede af ingeniører kommer til udtryk i den hardware vi skal programmere på og imod, eller for den sags skyld at de står inde for hvad de leverer.

Men det skal ikke stå i vejen for at jeg giver dig ret i at 90% af alle programmører og 99% af alle IT folk har en forkastelig holdning til kvalitet i deres arbejde.

Men om den rette indstillning er "ingeniøragtig" eller "håndværkeragtig" har jeg svært ved at svare på, for jeg har kun fundet to faglige organisationer i Danmark der har ofret tid på at have et egentlig moralkodeks for deres medlemmer.

Lægerne har arvet et lægeløfte fra det gamle grækenland og det har de poleret lidt på undervejs.

Men sandelige om ikke også PROSA har et moralkodeks, i modsætning til f.eks IDA som ikke har.

Om PROSAs medlemmer så bruger det til noget er en helt anden historie...

Poul-Henning

  • 0
  • 0
Niels P Sønderskov

@Happe

Du svarer vist ikke rigtigt på hvad du ellers ville sende rundt, og det tror jeg da heller ikke man kan. Faktum er jo, at trods alskens gejl med formattering, billeder og video, er det teksten der er central for nettet. Det var dog nok ikke forudset ved WWW's fødsel hvor vi var ret glade for at se tekster fra et universitet i Brasilien fx.

Du blander også tingene noget sammen når du skriver om dynamisk generering af teksterne. Det behov er jo først opstået i fobindelse med ønsket om at lagre data i databasesystemer, og at kunne præsentere dem derfra. Forestiller du dig at vi alle skulle kommunikere direkte med Oracle-databaser, hvis det nu var den standard vi valgte?

Selv på det samme lokalnetværk som RDBM-serveren benytter vi da en tekstbaseret transmission.

  • 0
  • 0
Hans Henrik Happe

@SØNDERSKOV

Man skal indkode data efter dens 'common case' brug. Tekst er fint hvis mennesker skal ændre i dem (konfig filer, programmeringssprog, dokumenter). Når computere skal udveksle information giver tekst alt for meget overhead:

memory repræsentation -> tekst -> net -> tekst -> memory repræsentation

Hvis det var så smart med tekst, hvorfor repræsenterer CPU'en så ikke tal som tekst i memory.

At nogle fysikere fandt på at mange af applikationslagsprotokollerne skulle være tekst, det gør det jo ikke nødvendigvis til et rigtigt designvalg.

  • 0
  • 0
Baldur Norddahl

En datamatiker er en 2 års IT uddannelse. Det er en bachelor i datalogi også - det sidste år bruges på et sidefag.

Datalogen er nok bedre til algoritmer og har prøvet at lave en compiler. Men jeg har på fornemmelsen at datamatikeren har fået en del mere praktisk træning i at kode.

Problemet på DIKU er at man ikke kan fravælge sidefaget (mindst 30 ETCS point må ikke være datalogi relevante). Der burde være mulighed for at bruge det ekstra år på at lære håndværket.

På DIKU får man et halvt semester (15 ETCS point) undervisning i at programmere SML og Java. Og så forventes man at være top notch koder i alle slags sprog.

Nej, situationen er at DIKU bachelorer og kandidater som kan programmere ordentligt er selvlærte programmører. Der var ikke tid på uddannelsen til at undervise i mere end det allermest basalle.

  • 0
  • 0
Torben Mogensen Blogger

Nu må du ikke glemme, at en datamatikeruddannelse ud over IT også indeholder organisation, forretningsforståelse og økonomistyring, så det er ikke en ren programmeringsuddannelse.

Og det er jo heller ikke sådan, at en datalogistuderende ikke lærer nye sprog eller skal lave programmeringsopgaver efter de to deciderede programmeringskurser er overståede. Det er blot ikke hovedfokus på de efterfølgende kurser.

Det sker ofte, at datamatikere senere vælger at tage en datalogiuddannelse, og min erfaring med dem er ikke, at de nødvendigvis er bedre til at kode end en gennemsnitlig datalogistuderende.

  • 0
  • 0
Scott Hill

Endnu en grund: kvantecomputing og kvantekryptering

Jeg var inviteret til den første konference om kvantecomputing for en par år siden på Den Danske Videnskabsakademi af Niels Bohr Inst., hvor jeg mødte samtlige eksperter på feltet....

Vi var 99% fysiker tilstede, der var en enkelt datalog, en ingeniør, og en par mathematikere....

Vedr. kvantekryptering, er historien den samme...

Her i Dk er der 3 krypteringsfirmaer, alle startet af mathematikere...worldwide, er der over 100 krypteringsfirmaer, men jeg kender ingen startede af en datalog...

  • 0
  • 0
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize