Udvikler elsker Javascript: »Tilgængeligt, fleksibelt og på mange måder fascinerende«

Illustration: Privatfoto
Der er ikke noget, der så let som ikke at kunne lide noget, man har bestemt sig for at hade, lyder det fra udvikler, som er begejstret for JavaScripts tilgængelighed og fleksibilitet..

Artiklen stammer fra norske digi.no

Mikael Brevik (30 år) var efter mange år i Bekk Consulting for et år siden med til at starte konsulentvirksomheden Variant i Trondheim. Han er uddannet dataingeniør fra Høyskolen i Sør-Trøndelag (nu NTNU Kalvskinnet) og har også en mastergrad i kunstig intelligens fra NTNU Gløshaugen.

Kan du kort beskrive din stilling og dine opgaver?

»Vi er nu snart 19 ansatte i Variant, med en næsten ligelig fordeling af udvikling og design i alle afskygninger. Vi fokuserer foreløbig på kundegrupper i Trøndelagsregionen, men har også kunder andre steder.

I Variant har jeg rollen som Chief Community Officer, hvor jeg har ansvar for faglighed, kulturopbygning og vores involvering med fagmiljøet omkring os. Som konsulent er jeg også ‘leaset’ ud til kunder, primært som udvikler, nogle gange som arkitekt og teknisk rådgiver, og andre gange til oplæring og kurser.«

Hvorfor valgte du netop denne arbejdsgiver?

»Jeg ønskede at eksperimentere med, hvordan man kunne opbygge en kultur, hvilke tjenester som kan tilbydes, og hvordan man opbygger et selskab centreret omkring åbenhed og forandringsvilje. Så er det en fordel at kunne have en virksomhed, som hverken har en historie eller færdigetablerede rutiner. Jeg kom ind som nummer tre i virksomheden, helt i begyndelsen, og har været med til at udstikke retningen for, hvordan Variant skal være som virksomhed. Det at kunne være med til at forme ideen om, hvad en virksomhed skal være, og muligheden for at realisere det med gode mennesker er klart motiverende og vanskelig at sige nej til.«

Hvor arbejder du mest: på kontoret, på hjemmekontoret eller ude hos kunder?

»Det kan veksle meget fra kunde til kunde. Hvordan de er opbygget, og hvor de holder til. Vi vil meget gerne sidde ude hos kunder for at tage del i mere end bare implementeringen af udvikling eller design. Vi forsøger os som ‘professionelle kulturbærere’, og for at det skal fungere, er vi afhængige af at opbygge en relation med kunden.«

Mikael Brevik. Illustration: Privatfoto

Kan du fortælle lidt om projektet/projekterne, du har arbejdet med på det seneste?

»Det projekt, jeg arbejder med lige nu, kan jeg ikke sige så meget om. Det involverer aggregering, lagring og processering af meddelelser i kø, men mere end det kan jeg ikke sige.

Jeg kan derimod sige lidt mere om det forrige projekt, jeg arbejdede på. Jeg sad hos Lånekassen her i Trondheim, i deres it-udviklingsmiljø. (Lånekassen er den norske stats svar på SU-lån, men de rækker endnu bredere ud, red.) De anser sig selv som en bank, hvor i hvert fald jeg er en af kunderne. Faktisk så er de Norges næststørste bank, med, hvis jeg husker rigtigt, over 1 million kunder.

Hos dem arbejdede jeg en del med omskriving af autentificeringsmekanismer, men i den sidste del af perioden arbejdede jeg mest som arkitekt og frontend-arkitekt under koncept- og planlægningsfasen af det nye lanekassen.no, som de er begyndt at udvikle. Lånekassen har mange forskellige systemer og kundefrontends, de arbejder med, og nu er de i gang med at foretage en total nyudvikling af lanekassen.no, hvor alt skal have et ansigtsløft, og gøre sitet meget mere serviceminded for os som kunder.«

Hvor længe har du arbejdet som udvikler?

»Jeg synes altid, det er lidt vanskeligt at sige helt præcist. Jeg kan sige, at jeg fik mit første skattesmæk via mit enmandsfirma omkring 2006, men jeg var færdiguddannet fra Datateknikk på NTNU i 2013. Da jeg flyttede til Trondheim i 2008, stoppede jeg med at arbejde freelance med udviklingsopgaver og gik over til at arbejde deltid i en lille medievirksomhed. Der var jeg 'lejet' ud til forskellige kunder både i Oslo og Trondheim.«

Hvor gammel var du, da du begyndte at lære programmering?

»Indtil jeg var lige over 14 år var der kun én ting, der stod på min agenda: fodbold. Der var Manchester United-tapet over hele værelset, de prydede gardiner og sengetøj. Når jeg ikke selv spillede, sad jeg og tegnede holdopstillingen til 98/99-sæsonen.

Jeg fik øjnene lidt op for data på ungdomsskolen, da vi havde en it-ansvarlig, der lavede små grupper af unge, der interesserede sig for data. Der lærte jeg Frontpage 2000 og koblingsrækkefølgen på twisted pair-kabler. Efterhånden gik det over i en dyb interesse for Counter Strike 1.6, som senere udviklede sig til en interesse for at opsætte servere, skrive tcl eggdrop-scripts til IRC bots og til slut lave websites for CS-hold, som vi spillede på.

Interessen tog fart, og det blev hurtigt til en langvarig lidenskab.«

Hvilke platforme udvikler du normalt for/til?

»Det er web og særlig frontend, som er og har været min største kærlighed gennem årene. Fra tid til anden deltager jeg i projekter, som ikke er direkte web-relaterede, og trives med det også, men jeg vender altid tilbage til det fantastiske web.«

Hvilken pc-platform/OS foretrækker du selv at bruge? Kan du fortælle lidt om hvorfor?

»Lige siden december 2005, da jeg fik fat i min første iBook G4, har det været macOS i en eller anden form, som har været mit go-to OS. Jeg husker, at en kammerat snakkede om at købe sig en Mac, hvilket jeg hurtigt affejede som pjat og overvurderet krukkeri for folk, som ikke ville spille spil. Så gik der måske små seks måneder, før jeg glemte mit eget standpunkt og ventede på en pakke fra Holland ...

Der var det programmering, som stod på dagsordenen, og jeg havde fået ind i hovedet, at Mac havde mange gode værktøjer til at gøre dette. Dengang programmerede jeg meget i PHP, og der hjalp det, at det meget brugte dollar-tegn i det sprog var let tilgængeligt via Shift + 4. Muligvis havde det været lidt billigere at skifte til et US keyboard, men jeg blev i hvert fald overbevist af kvaliteten og multitouch-understøttelsen på de bærbare.

Jeg må lige være så dristig at påstå, at selv nye, dyre, ikke-Apple laptops i dag ikke har en touchpad, der kan måle sig med det, Apple leverede dengang. OS’et i sig selv har også altid passet mig godt. Det har været den fine kombination af fleksibilitet og stabilitet.

Hvis jeg vil have kontrol over noget, har jeg muligheden, men ofte vil jeg ikke bruge unødvendig tid på at konfigurere ting bare for fornøjelsens skyld. Der var en tid, hvor jeg synes, det var sjovt, men efterhånden som tiden går, føler jeg, at der står mere og mere i vejen for meget af det, jeg ønsker at gøre. Jeg bruger også en del Adobe-produkter (Premiere, Lightroom) og Sketch ud over selvfølgelig kravet om en god terminal.«

Hvilke programmeringssprog benytter du?

»Jeg er stor fan af programmering og programmeringssprog generelt. Det vil sige, at jeg kan lide at lære om forskellige sprog og paradigmer. Det, der bliver brugt i projekter, afhænger ofte af meget mere end mine personlige præferencer – og det er sådan, det burde være efter min mening. Hvilke forudsætninger er der hos kunden? Hvem skal mest sandsynligt overtage koden? Hvor skal det køre? Hvilket problem skal løses? Og så videre.

I løbet af min karriere har jeg brugt alt fra Java og Scala til Python, F#, C#, TypeScript, JavaScript, og, hvis vi går rigtig langt tilbage, PHP. Dertil kommer selvfølgelig ting som CSS og HTML, som jeg kan lide lige så godt, og som jeg synes ofte er undervurderet som sprog i enkelte kredse.

Derudover eksperimenterer jeg ofte med forskellige programmeringssprog i fritiden. Alt fra ML-baserede sprog som Haskell og særligt OCaml og ReasonML til Lisp og Rust.«

Hvad er dit favoritsprog og hvorfor?

»For dem, som kender mig, er det måske ikke overraskende, at jeg siger, at JavaScript er et fantastisk sprog. Et så tilgængeligt, fleksibelt og på mange måder fascinerende sprog er let at holde af for mig.

Jeg ved, at der er mange, som synes, det også er let IKKE at holde af, men ofte mener jeg, at den slags kommer fra et sted, hvor man ønsker ikke at kunne lide det. Og der er ikke noget, der så let som ikke at kunne lide noget, man har bestemt sig for at hade.

Og det er nok ikke så unaturligt, når det er et sprog og en platform, som mange bliver tvunget over på uden at ville det. Så ender det med, at vi kun gør en minimal indsats for at få tingene gjort, uden at vi reflekterer over, hvordan vi gør det, eller hvordan vi kan lære af det.

Men hvis man tager sig tid til det, er det et skønt lille sprog, der venter. Et lille sprog, som har de byggeklodser og den fleksibilitet, man behøver for at gøre det, man ønsker. Centralt i sproget er objekter og funktioner (som egentlig også bare er objekter), og programmering er jo ofte egentlig bare transformering af information fra en form til en anden.

Så at du har gode egenskaber for funktioner i et sprog er vigtigt for mig at se. Og det har JavaScript. Det har førsteklasses funktioner, som man kan holde i variabler og manipulere, det har højere ordensfunktioner, som gør, at de kan tage imod andre funktioner og give dem tilbage, og det har ‘ergonomiske’ objekter til at holde på data af forskellig art.

Vi kan egentlig beskrive JavaScript på samme måde, som vi kan beskrive et godt brætspil: enkelt at lære, vanskeligt at mestre. Og dette er på godt og ondt i JavaScript. Det kan være, vi støder på noget, som er uventet, når vi kommer fra andre platforme, men der er også meget at hente af læring og fremdrift.«

Hvilke to værktøjer kan du ikke klare dig uden - og hvorfor?

»Efterhånden som jeg er blevet ældre, mærker jeg, at jeg bliver mindre og mindre optaget af konkrete værktøjer. Jeg er usikker på, hvorfor det er blevet sådan - men der er ikke nogen konkrete værktøjer, jeg har, som jeg bare skal have.

Det kommer selvfølgelig an på, hvad niveauet er, men du kommer langt med en hvilken som helst editor (lige nu bruger jeg VSCode) og en terminal (bruger lige nu iTerm 2). De eneste lidt mere specifikke værktøjer, jeg kan komme i tanker om, som jeg er afhængig af, er jump til zsh, så jeg kan navigere hurtigt mellem markerede mapper i filsystemet, og til udvikling er jeg været helt afhængig af Prettier de seneste år.

Prettier er en ‘pretty printer’ til abstrakte syntakstræer af forskellige sprog. Den parser komplet kildekode og printer den tilbage i formateret orden ud fra en etableret standard (med lidt valgmuligheder). Det har ændret hele måden, jeg skriver kode på.«

Hvilken type opgaver kan du bedst lide at arbejde med?

»Det varierer nærmest fra dag til dag. Nogle gange bliver jeg helt optaget af at få animationer til at opføre sig rigtigt i en browser eller opsætte en fornuftig byggestrategi på en CI, eller lave udviklerværktøjer eller bare skrive funktioner, som transformerer data hårdt og brutalt, eller dykke dybt ned i kode til debugging.

Andre gange trives jeg bedst med mentoring, kulturopbygning og at afholde kurser eller udvikling læringsmateriale og videoindhold.

Jeg kan egentlig allerbedst lide at lære og anvende det, jeg lærer, til at løse problemer af forskellige slags og udfordre mig selv til at blive bedre til det, jeg laver. Hvis vi ser bort fra konkrete opgaver, trives jeg allerbedst, når jeg arbejder sammen med andre, der er engagerede i det, de arbejder med.«

Hvordan sørger du for at holde dig fagligt opdateret?

»Der er mange forskellige måder, jeg holder mig selv opdateret på. En vigtig del er at snakke med folk og have faglige samtaler. Jeg elsker at snakke om udvikling og fag generelt og lærer meget af andre mennesker, der har erfaring med ting, jeg ikke kan.

Det er en væsentlig grund til, at jeg var med til at starte meetup’en BartJS i Trondheim. Det førte også til, at jeg, sammen med gode venner startede en programmeringsorienteret podcast om alt vedr. JavaScript, hvor vi mødes hver måned for at snakke fag – gerne med gæster, som har holdt en præsentation om noget.

Denne podcast, BartJS Podcast, har nu eksisteret siden 2015. Derudover har jeg hver anden uge en podcast om udviklerlivet generelt sammen med Stian Veum Møllersen. Denne podcast har vi kaldt Kortslutning, og vi har udgivet den hver anden uge i halvandet år. Jeg udgav også ugentlige programmeringsvideoer via Kodesnutt.io i et helt år. Det gjorde, at jeg lærte meget om både kommunikation og tekniske emner.

En vigtig måde at holde mig opdateret på, er at give præsentationer og kurser i forskellige fora. Enten på meetups, konferencer eller internt hos kunder. Det har været et vigtigt værktøj til at motivere mig selv til at sætte mig ind i forskellige emner og reflektere over det, jeg lærer.

Den daglige opdatering får jeg via artikler og indhold på Twitter og nyhedsbreve. Jeg bruger ofte Pocket App til at organisere artikler om forskellige emner, som jeg læser, når jeg har tid.«

I hvilken grad har metoder og teknologier som DevOps, maskinlæring og cloud ændret den måde, du arbejder på?

»DevOps og cloud har egentlig på forskellige niveauer altid været der i mit arbejde. I hvert fald hvis man ser bort i fra den periode, hvor jeg brugte FTP for deploy.

Men der har været enkelte kunder, der ikke har været lige fremsynede, når det gælder kontinuerlig integration og feedback loops. Det, jeg mærker det mest på, er ejerskab og ansvarsfordeling. Det er meget lettere tage ansvar for det, som kunden faktisk oplever i produktionen, hvis du har direkte indflydelse på, hvordan det kan ændres.

Og det gør, at et team som helhed kan dele ejerskab i højere grad. Og det er sådan, det bør være, efter min mening. Og det har jo resulteret i en masse andre ting, man skulle lære. Jeg ender ofte med at opsætte CI-systemer, og jeg har måttet sætte mig ind i mange forskellige måder at bygge kode på. Noget, jeg også rigtig godt kan lide.«

Ser du nogen fremtidige tendenser, som virkelig vil forandre hverdagen for udviklere?

»En tendens, som jeg med glæde har observeret, og som jeg tror kommer til at fortsætte, er det, vi måske kunne kalde noget a la empatidrevet udvikling. Vi indser, at det egentlig ikke kun handler om de kodelinjer, vi skriver, men at de kodelinjer har en stor indflydelse på det samfund, vi lever i.

Vi kan ikke sidde med skyklapper på i et vakuum og forvente, at det, vi gør, ikke har konsekvenser. Og med kunstig intelligens og dataindsamling bliver disse konsekvenser mere og mere synlige. Vores menneskelige fordomme følger os og bliver til skævheder i systemerne og gør dem ekstra synlige. Jeg tror ikke, ‘jeg gør bare mit arbejde’ vil være en undskyldning, som kan blive ved med at overleve.«

Hvilke teknologier eller fagområder ville du gerne vide mere om?

»Jeg kan mærke, at jeg bliver mere og mere interesseret i kommunikation af forskellige slags. Jeg indser langsomt, men sikkert, at kommunikation berører alle dele af mit arbejdsområde, uanset hvad jeg gør.

På overfladen er kommunikation vigtig for samtaler med kunder og i præsentationer. Men det gælder også for samarbejde og kulturopbygning. Det er at formidle information på en god måde til andre for at repræsentere din interne dialog på en retvisende måde.

Men kode er også en form for kommunikation. Ikke kun til maskiner, men til andre brugere af koden. Kolleger eller til og med dig selv i fremtiden. Og som med det meste andet viser det sig, at kommunikation er sit eget fagområde, og det er noget, man kan arbejde med at blive bedre til.

Af teknologier er der et hav af områder, jeg gerne ville vide mere om. Det meste faktisk.

Det mest nærliggende er compiler-teknik og sprogteori. I web-verdenen bevæger man sig nu en del rundt om Web Assembly, som styrker browsere, og web, som en helt utrolig tilgængelig distributionsmekanisme. Vi har allerede set en del interessante virkninger af dette, men vi kommer nok til at se endnu mere i den kommende tid. Jeg ville gerne have sat mig mere ind i detaljerne omkring WASM.«

Deltager du jævnligt i konferencer? Og hvilken er i så fald den vigtigste for dig?

»Jeg er altid på mindst en konference om året. De seneste 3-4 år har det, ud over dem jeg har været taler ved, været JSConf EU og CSSConf EU i Berlin og Web Rebels i Oslo.

Det er konferencer, som rammer rigtig godt plet ift. krydsfeltet mellem teknologi og mennesker. Det er områder, som man ikke må undervurdere vigtigheden af.«

Hvilken holdning har du til indbygget privacy-beskyttelse?

»Jeg mener, at vi som udviklere i højere grad skal være med til at bidrage til, at den teknologi, vi udvikler, ikke er kynisk. En vigtig del af det er at varetage privacy.«

Bidrager du, enten via jobbet eller i fritiden, til nogen åben kildekode-projekter – i så fald hvilke?

»Jeg er stor fan af open source, både fra et filosofisk standpunkt og som arbejdsmetode. Mange af de grundlæggende kerneværdier, vi har i Variant, er bygget på open source-tankegangen.

Lige nu bidrager jeg ikke aktivt til andres store open source-projekter, men jeg har tidligere bidraget til f.eks. Bootstrap, TinyMCE, Facebooks Flow og Jest, Bucklescript af Bloomberg, andre OCaml-projekter og diverse andre småprojekter.

Derudover har jeg haft gang i mine egne open source-projekter. Det mest brugte er nok en pakke til lokal udvikling på Node.js-platformen som hedder node-notifier. Et krydsplatformsværktøj, der kan sende notifikationer på OS-niveau. Den ligger på over 4 millioner downloads om ugen.«

Hvor meget programmerer du i fritiden?

»Der har været meget programmering i fritiden gennem årene. Det har været primærhobbyen ud over jobbet, enten det har været kode gennem programmeringsvideoer, open source eller bare rent esoteriske opgaver for at få stillet min nysgerrighed.

Hvis jeg begynder på et projekt eller har en hypotese, jeg vil teste, bliver jeg ofte lidt for optaget af det, og det bliver hurtigt det eneste, jeg formår at koncentrere mig om. Sandsynligvis til frustration for andre i min husstand.«

Har du nogen (andre) hobbyer?

»Siden jeg begyndte på podcasts og kodevideoer, har jeg fået øjnene mere og mere op for producering af indhold i varierende former.

Jeg er blevet mere og mere optaget af lyd og lydudstyr og kameraer og at filme. Her på det seneste har jeg været meget optaget af at lære mig mere om fotografering og at lave film. Det har ført til månedsvis af research om kameraer, mikrofoner, tripods, filtre, linser osv.

Selvfølgelig antog jeg automatisk, at hvis udstyret er på plads, så er evnerne det også. Mærkelig nok viste det sig, at det ikke er sådan, det fungerer. Så nu har jeg brugt meget af den seneste tid på at lære mere om komposition, god eksponering og planlægning af billeder og video. Jeg har et meget stort arbejde foran mig endnu - men jeg synes, det er sjovt.«

Hvad glæder du dig mest over ved at arbejde som udvikler?

»Jeg finder stor glæde ved at blive introduceret for nye fagområder at lære noget om. Alle de domæner, man bliver udsat for at skulle sætte sig ind i for at kunne løse problemerne med. Og alle de fantastiske mennesker, man møder, som har forskellige erfaringer og finder sammen for at prøve at løse noget, som har indvirkning på så meget mere end bare os selv.

At lære nye ting, uanset hvad det nu måtte være, giver mig stor glæde. Og heldigvis mister vi aldrig den mulighed som udviklere.«

Oplever du, at jobbet som udvikler har nogen negative sider?

»Det er klart, at der er negative sider ved at arbejde som udvikler, ligesom der er negative sider ved alle andre job. Eksempelvis synes jeg, vi som udviklere tænker for meget på mikro-niveau, når vi egentlig burde tænke langsigtet og på helhedsbilledet, og jeg mener, at vi burde tage større ansvar for de konsekvenser, vi har for omverdenen, set fra et etisk perspektiv.

Men på det personlige plan kan jeg også se enkelte ulemper ved min egen personlighedstype og mit karrierevalg. Jeg bliver meget opslugt af at lære nye ting og udforske. Det er tidskrævende, og det tager al min opmærksomhed. Det betyder, at jeg sikkert ofte arbejder for meget med det.

Jeg kan godt lide det og trives med det, men det går også ud over andre end mig selv. Det betyder også, at i perioder, hvor jeg ikke føler mig så produktiv, eller i perioder, hvor ambitionerne er højere end energiniveau og motivation, så må jeg leve med en absurd følelse af dårlig samvittighed over, at jeg ikke gør det, jeg ønsker, eller føler, at jeg skal gøre.«

Hvad er det bedste frynsegode, du får?

»Det kommer an på, hvad man anser som frynsegode – men jeg kan rigtig godt lide, at vi har bygget Variant på åbenhed. Ikke bare åben ift. information, men også åbenhed over for ændringer.

Det, at alle ansatte er med til at bestemme, hvordan vi skal gøre tingene, hvilke kunder vi satser på, hvilket projekt vi ønsker at være på, hvordan vi skal fremstå osv.«

Artiklen er fra digi.no.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (38)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Christian Nobel

Man bruger såmænd bare SMLtoJs (www.smlserver.org/smltojs). Siden er nede i øjeblikket, men det virker udemærket, compiler direkte til Javascript og ja, jeg har brugt det professionelt.

Nu er JS mig bekendt ikke kompileret, så der er vel tale om at man lader et værktøj automatisk konvertere fra SML til JS (gennem en tredjepart som er nede!), med de fejlmuligheder der ligger i det, plus manglende overblik over hvad det helt præcist er man sidder og fedter med.

Ikke rigtig en god løsning imo.

  • 4
  • 2
Philip Munksgaard

Der er masser programmeringssprog der compiler til Javascript (Elm, Typescript, Purescript, CoffeeScript, etc.). Mht. SMLtoJs (udtales sml-toys) er det blot hjemmesiden der er nede. Compileren (eller transpileren, om man vil) findes på github (https://github.com/melsman/mlkit) og kræver ingen tredjepart for at køre. Koden der kommer ud er javascript filer som du inkluderer i din app.

  • 2
  • 0
Christian Nobel

Compileren (eller transpileren, om man vil)

JavaScript - så man kan vel nærmest tale om en krydsfortolker.

Koden der kommer ud er javascript filer som du inkluderer i din app.

App???

Og så findes der det lille ord "man" på dansk, som typisk benyttes for at nogen gør hint eller dette.

Jeg skal i hvert fald ikke beflitte mig med at føje endnu et abstraktionslag til - og så har jeg i øvrigt svært ved at se værdien af Standard ML, andet end måske ud fra en eller anden snobbet esoterisk datalogi betragtning.

At skandaler skulle være undgået ved at bruge Standard ML er rent vrøvl, for selve programmeringsværktøjet er i det store hele bedøvende ligegyldigt, hvis ellers det er i hænderne på nogen der er gode til at bruge det.

  • 2
  • 7
Christian Nobel

Lad mig understrege at Standard ML især er et fremragende valg hvis man har hang til halvdøde sprog fra 90'erne.

Ja, og det er Cobol, Fortran, PL1, APL, Mumps, mv. da sikkert også.

Men kan du ikke i få ord så fortælle hvad det er der er så fantastisk/fremragende ved Standard ML?

Og du svarede ikke på spørgsmålet om hvordan man direkte benytter Standard ML til at tilføre funktionalitet på en webside, på samme måde som man bruger JS.

  • 1
  • 2
Palle Simonsen

Hvis man læser artiklen ser man at Mikael Brevik også har bevæget sig rundt i andre programmeringssprog men holder af Javascript af en række gode grunde - bemærker bla. højere ordens funktioner som savnes i mange andre sprog der så prøver at humpe sig igennem med en række besynderlige konstruktioner - ingen nævnt, ingen glemt.

Hvis man ikke er til kompakt kode og hurtig turnaround i udviklingsprocessen, men savner masser af gluecode og frustrerende bygge processer kan man jo altid kaste sige over Typescript med Angular2,3,4 ... ;-)

  • 0
  • 0
Jonas Høgh

bemærker bla. højere ordens funktioner som savnes i mange andre sprog der så prøver at humpe sig igennem med en række besynderlige konstruktioner - ingen nævnt, ingen glemt.


Sjovt argument - jeg kan ikke umiddelbart komme i tanke om et sprog, som nogen ved deres fulde fem ville vælge til et nyt projekt i 2019, der ikke har højereordensfunktioner. Alle de sprog Michael Brevik nævner at have brugt til både professionel og hobbybrug har dem.

I øvrigt var ovenstående indlæg ingenlunde alvorligt ment. Jeg var blot lidt skuffet over, at en artikel om programmeringssprog havde ligget hen i flere timer uden større toguheld i kommentarfeltet. Men heldigvis tøvede hverken Troels eller Christian ret meget længere med at levere varen 👍

  • 2
  • 1
Jette Thrane

Positivt ladet, når jeg slutningen af artiklen og dermed kommentarerne, bare for at opdage, der tilsyneladende er udbrudt en religionskrig... hmmm.

Her har vi en energisk ung mand der er enormt nysgerrig på mangt og meget. Det smitter og det er enormt inspirerende.

Lad dette være stor ros til Version2 for denne artikel. Det hele behøver vel ikke handle om sikkerhedshuller og fuckups i offentlige IT-projekter.

  • 3
  • 0
Christian Nobel

Derimod finder jeg det temmeligt underholdende, at du kan hidse dig sådan op over, at nogen kunne finde på at oversætte SML til JavaScript.

Jamen det er da godt du morer dig.

Og nej, jeg hidser mig ikke op over at nogen synes det er underholdende at oversætte SML til JS, og det kom iøvrigt først på banen efter jeg havde spurgt helt konkret:

Hvordan kan man direkte benytte SML til at give en webside funktionalitet?

Jeg spørger fordi jeg gerne vil vide hvordan man gør det - er det virkelig for svært at forstå det spørgsmål?

Og har du iøvrigt en tidsmaskine, siden du kan tillægge folk holdninger før de har ytret sig?

  • 0
  • 5
Jonas Høgh
  • 2
  • 1
Christian Nobel

Okay, og hvis jeg bider på, og svarer "Det kan man ikke, ingen mainstream web-browsere inkluderer et SML-miljø", hvad sker der så?

Utroligt det skal gøres til et tåbeligt spil om "at bide på"!

Der sker såmænd ikke så meget andet end jeg kan konkludere at jeg ikke deler din pubertære humor, og så kan undres over hvorfor Troels skulle rode SML ind i sagen, og på den måde forpeste V2's debat.

Men sådan har vi åbenbart forskellig holdning til seriøsitet.

  • 0
  • 1
Jonas Høgh

Utroligt det skal gøres til et tåbeligt spil om "at bide på"!

Der sker såmænd ikke så meget andet end jeg kan konkludere at jeg ikke deler din pubertære humor, og så kan undres over hvorfor Troels skulle rode SML ind i sagen, og på den måde forpeste V2's debat.


Er du oprigtigt i tvivl om man kan køre SML direkte i en browser? Jeg troede det var et retorisk spørgsmål.

De fleste nyere JavaScript-applikationer du møder på webbet i dag, skrives ikke direkte i JavaScript, men transpileres fra noget andet. Enten et helt andet sprog, diverse udvidelser til JS som JSX eller Typescript, eller bare nyere versioner af JS, end dem som understøttes af mainstream-browsere. Der er ingen grund til at løfte øjenbryn over det. Nej, det er ikke perfekt, men det er der meget lidt indenfor webudvikling, der er.

  • 3
  • 1
Baldur Norddahl

Hvordan kan man direkte benytte SML til at give en webside funktionalitet?

Jeg spørger fordi jeg gerne vil vide hvordan man gør det - er det virkelig for svært at forstå det spørgsmål?

Svaret må være web assembly https://webassembly.org/

En browserteknologi som javascript i øvrigt ikke mestre. :-) - eller ? Kan man oversætte javascript til web assembly og opnå den ultimative obfusciation?

  • 1
  • 0
Jesper Louis Andersen

Hvordan kan man direkte benytte SML til at give en webside funktionalitet?

Der er pt 2 metoder der kan benyttes. Du kan dels se javascript som et mål og så oversætte dertil, eller du kan målrette din oversætter mod webassembly.

Det første er ganske populært. MLs dialekt, Ocaml, har en oversætter til javascript også, den hedder bucklescript. Og den er også basis for ReasonML arbejdet Facebook har gang i.

Den anden metode vinder stille og roligt indpas, godt spydspidset af Rust-oversætteren, blandt mange andre.

Tilbage er spørgsmålet så: "Hvorfor?"

Den oplagte grund er at der er en masse god programmering udført i programmeringssprog der ikke er javascript. Det er nogen gange ret tung kode, hvor det ikke er trivielt at omkrive det. Så derfor er det nogen gange nemmere at vedligeholde en oversætter/compiler, specielt hvis den oprindelige kode stadigt udvikles på (da det sparer en hulens masse tid).

Den anden grund er oplagt at det nogen gange er hurtigere at skrive programmet i et bedre sprog, og så bare indlejre det i et andet sprog. "Bedre" skal her forstås som at problemet der ønskes løst passer bedre til det pågældende sprog.

Bemærk at "direkte" forstået som "udfører maskinkode uden noget sikkerhedscheck" ikke er en del af browserpakken. Du er nødt til at moderere det og inspicere programmet inden det udføres, på den ene eller den anden måde. Deraf Javascript og Webassembly. Og Javascript var nemt, så det blev pludselig populært. Ikke mindst grundet Google smed en masse penge efter en JIT.

  • 2
  • 0
Baldur Norddahl

Der er også noget der hedder personlig præference. Jeg anerkender fuldt ud at mange dygtige folk er glade for javascript og der er udviklet store og fine løsninger i sproget. Men jeg foretrækker sprog med stærk typecheck og vælger derfor noget andet.

Jeg ville ikke have noget imod at udvikle web i SML. Men aktuelt har jeg lave flere ting i Scala som passer utroligt godt til sammenspil med javascript. Den eneste reelle ulempe er at oversætteren er langsom.

  • 4
  • 0
Phillip Alexander
  • 5
  • 0
Niels Gustav Westphal Serup

Jeg synes det er synd at et kommentarspor imploderer på denne måde.

For at citere kilden:

Jeg vet det er mange som syns det (Javascript, red.) også er lett å mislike, men ofte mener jeg det kommer fra et sted hvor man ønsker å mislike det.

For at oversætte til dansk, så siger han altså at mange folk gør grin med Javascript fordi de gerne vil gøre grin med Javascript, og altså ikke fordi Javascript grundlæggende er dårligt.

Mit debatbidrag er blot at jeg synes at Javascript er grundlæggende dårligt, uafhængigt af at jeg gerne vil synes at det er dårligt. Jeg kan påstå at det er objektivt dårligt fordi jeg har demonstreret min forståelse af den norske programmørs pointe.

  • 4
  • 0
Log ind eller Opret konto for at kommentere