Skal udviklere være renæssancemænd?
Leonardo da Vinci var et multitalent indenfor malekunst, matematik, ingeniørarbejde, skulpturarbejde, musik, skrivekunst, arkitektur, botanik og en helt masse andet. Man kan næsten miste pusten helt over alle disse talenter.
Med de øgede krav til udviklere i dag føles ideen om renæssancemanden ikke helt så langt væk. Når man kigger på programmet for JAOO ser man at det er blevet langt bredere end bare den javakonference det var engang - og at der er fokus på hvordan specialister og generalister passer ind i teamet. Som generalist skal man helst både kunne bruge objektorienterede sprog, funktionel programmering, concurrent programmering og webprogrammering, hvilket man blandt andet ser i de 2 tracks som vi i arrangørteamet kalder "Java for .NET-folk" og ".NET for javafolk". Heldigvis er der da en ting mindre at bekymre sig om for rigtige mænd bruger ikke Javascript - eller gør de?
JAOO-konferencen er bygget op for at afspejle de krav til udviklere som arrangørerne oplever i hverdagen - for firmaet bag konferencen, Trifork, er et udviklings/konsulenthus og der er masser af mennesker med fingrene nede i mulden.
Men er det også, det du oplever i din hverdag' Er der øgede krav til udviklerne om at være alt-mulig-mænd eller lever vi i specialisternes tid' Eller der en udvikling imod generalister eller er der altid lige meget brug for både specialister og generalister?
Kommentarer (8)
Gu gør vi så. Det er godt nok et lortesprog, men det forhindrer ikke omtalte rigtige mænd i at lave god kode.
Det er godt nok et lortesprog ...
Hvad synes du helt præcist er noget lort ved javascript?
Jeg har kun én anke: valgfri ; efter statements (argh).
JavaScript er et rigtig cool sprog, som har fået et dårligt ry fordi nettet florerer med snippets af ringe kvalitet, og fordi de forskellige browsere ikke har fattet at implementere DOM'en efter en standard.
Der er dog ting og sager der tyder på at sproget på en eller anden måde styrer imod at få lidt af den anerkendelse, det fortjener - seneste eksempel herpå må være den energi Mozilla- og Google-folkene har lagt i at bygge hver deres superoptimerede JavaScript-motorer.
Jeg synes det bliver helt vildt interessant at se, om ikke web-platformen bliver brugt noget mere til større systemer, som måske førhen ville have været lavet som desktop-applikationer.
Hvad synes du helt præcist er noget lort ved javascript?
Fejl:
Eval funktion (og alt hvad der bruger en lignende feature)
Alt-i-en variable
Tvungen event-baseret kode
Case sensitivt
Mangler:
Ordentligt keyboard input system med spærring af browser genveje og veldefinerede key-ID tabeler
Metode til at kreere indholdsfiler og lokale gembare filer (Det er i nogen grad på vej med systemer i nogle browsere)
Overordnet styring af sprogets udvikling
Alt det vi hører til optimering er evals, og nok også i nogen grad de variables, skyld. Hvis det var lavet som et almindeligt programmeringssprog kunne JavaScript kompileres uden de store armbevægelser.
... er der en udvikling imod generalister eller er der altid lige meget brug for både specialister og generalister?
Min oplevelse er, at der er brug for begge dele.
Når det er sagt, vil jeg dog mene at der er mere brug for specialister end aldrig før. Det et være en generalist, er jo sådan set i sig selv en specialisering.
Jo bedre man kender sit arbejdsområde og jo mindre ad hoc kode man lave, jo bedre bliver kvaliteten af slut produktet også.
Det er fint at vi ikke alle er specialister. Det er jo selvsagt umuligt, men alle burde være på vej mod en specialisering en en eller anden retning.
Kravene til udviklere (inklusiv arkitekt mfl.) stiger og stiger. Systemer bliver mere og mere komplekse og der kommer flere og flere teknologier på banen. Det er vigtig man bliver ved med at bruge tid på at søge indsigt og viden for at være i stand til at løse morgendagens opgaver på en tilfredsstillende måde. Ja, lidt renæssancemand skal man være.
-Carsten Sonne Larsen
Fejl: Eval funktion (og alt hvad der bruger en lignende feature) Alt-i-en variable Tvungen event-baseret kode Case sensitivt Mangler: Ordentligt keyboard input system med spærring af browser genveje og veldefinerede key-ID tabeler Metode til at kreere indholdsfiler og lokale gembare filer (Det er i nogen grad på vej med systemer i nogle browsere) Overordnet styring af sprogets udvikling
Mht. eval-funktionen, så er den sådan set ret nyttig til mange ting - f.eks til deserialisering af JSON-objekter.
Hvad er alt-i-en-variable? Mener du dynamiske typer? Det er vel en smagssag om man er en statisk eller dynamisk kind of guy. Det lader dog til at de dynamiske sprog er ret populære for tiden - bare se al den omtale Ruby får.
De fleste af de ting du ellers nævner her har vel egentlig ikke noget med JavaScript at gøre - det lyder mere som features du ville ønske var anderledes i kørselsmiljøet = browseren.
Mht. den overordnede styring af sprogets udvikling, så er der da rimelig meget tjek på det - standarden hedder ECMAScript, og den er under konstant udvikling.
Ja, eval kan da give en genvej engang imellem, specielt hvis man ønsker at afvikle sin egen kode i andres applikationer. (Det virker præcis ligesom SQL injections.) Men eval er altså grund nummer 1 til at JavaScript kravler så langsomt.
Hvad er alt-i-en-variable?
Altså jeg mener konceptet med at du kan gemme en streng i en variabel det ene øjeblik og et tal det andet. Hvis 1+1 giver 11 så er det det der er synderen. Derudover er det selvfølgelig også noget rod hvis man prøver på at kompilere koden.
Det lyder mere som features du ville ønske var anderledes i kørselsmiljøet = browseren.
Det hele hænger jo sammen, HTML er også noget lort, men skal vi ikke gemme den diskussion til en anden gang ;-)
Mht. den overordnede styring af sprogets udvikling, så er der da rimelig meget tjek på det - standarden hedder ECMAScript, og den er under konstant udvikling.
Det hjælper bare nada når man prøver på at srive JScript og JavaScript samtidig :-)
Hvis man med generalister mener personer, som behersker flere programmeringssprog, så tror jeg helt sikkert "fremtidens udvikler" er generalist. Deri ligger evnen til at bruge den rette teknologi til en given opgave. Hvis ens eneste værktøj er en hammer, så ligner alle problemer jo som bekendt søm :-)
Bortset fra det, så tror jeg også at fremtidens systemer vil blive bygget med forskellige sprog, alt efter hvad der nu passer til hvert delsystem.
F.eks sker der en masse interessante ting i både Java- og .NET-verdenen, hvor flere og flere sprog inkluderes. Tag .NET f.eks - her tror jeg ikke der går lang tid før man ser store systemet, hvor domænemodel og forretningslogik er skrevet i Ruby, beregninger og parallelle ting i F#, infrastruktur i C#, og så en HTML/JavaScript eller C#-klient på toppen - og det vil vel også stille krav til udviklerne.

