Dansker bag succesværktøj til Mac styrer 40.000 kodelinjer med hård hånd

Danske Allan Odgaard står bag ét af de mest populære udviklingsværktøjer til Mac, editoren Textmate. Det kan han snildt leve af, og han har umiddelbart ingen planer om at hyre flere udviklere.

Editoren Textmate er på rekordtid blevet end af de mest populære udviklingsværktøjer på Mac-platformen, som udviklere verden over dagligt bruger til at skrive kodelinjer i alt fra websproget PHP til typesettingsproget Latex.

Men det er nok ikke alle, der ved, at den danske datalog Allan Odgaard ene mand står bag Textmate og har gjort det siden begyndelsen i 2004.

Det er et job, der uden problemer kan tjenes penge på, og som Allan Odgaard ikke kunne drømme om at skifte ud med et traditionelt arbejde som én af mange menige programmører i en privat virksomhed.

Allan Odgaard fortæller her om livet som eneste udvikler på en dansk succeshistorie til Mac-platformen.

Hvordan er det at arbejde alene som uafhængig udvikler?
»Jeg synes klart, det er at foretrække sammenlignet med at arbejde i det private erhvervsliv.«

»Jeg synes ikke, jeg bliver ensom, for jeg har stadig et netværk, fordi det er så nemt at være i kontakt med andre via nettet. Det, at jeg har lavet Textmate, betyder også, at jeg dagligt korresponderer med folk internationalt, og de bidrager med mere, end jeg tror ville være tilfældet, hvis jeg sad ude i en almindelig virksomhed.«

Hvordan ser en typisk arbejdsuge ud for dig?
»Der er ikke rigtig nogen typisk arbejdsuge. For mig handler det meget om at arbejde, når jeg er motiveret. I nogle perioder er jeg supermotiveret, og andre ikke.«

»Jeg bruger værktøjet Pivotal Tracker til at hjælpe mig med at strukturere opgaverne i hverdagen. Det er et ret interessant værktøj, hvor jeg kan indføre de opgaver, jeg har, delt op i fejlrettelser, nye features, og så opgaver der for slutbrugeren ikke påvirker produktet - for eksempel refactoring (oprydning i koden uden at ændre dens funktionalitet, red.).«

»Opgaverne prioriteres ud fra, hvor vigtige de er, og tildeles point efter hvor lang tid de tager relativt til hinanden. Jeg kan så løbende klikke de opgaver af, som jeg har gjort færdige. Det smarte er dels, at trackeren holder øje med, hvor mange point jeg får krydset af per iteration, eksempelvis en uge, og skedulerer nye opgaver til næste iteration baseret på min arbejdshastighed og prioritering.«

»Dels, at fejlrettelser og de opgaver, som ikke påvirker produktet for slutbrugeren, ikke tæller med i pointsystemet. Det betyder, at det ikke tæller i positiv retning for min produktivitet, hvis jeg bruger al tiden på at omstrukturere koden.«

»Det betyder meget at kunne dele opgaven op i mindre dele og kun fokusere på de opgaver, der er skeduleret i nuværende iteration. Ellers kan det hurtigt kan blive uoverskueligt at holde styr på, hvad der skal laves på en kodebase som TextMates, der indeholder godt 40.000 kodelinjer.«

»Jeg prøver at skrive så meget af Textmate-koden, som jeg kan komme af sted med i C++, fordi det er mit favoritsprog. Men de ting, der skal 'tale' med den grafiske brugergrænseflade i Mac OS, skal som udgangspunkt skrives i Objective-C.«

Hvad byder den kommende Textmate 2.0 på at nye features?
»Det er sådan noget, jeg ikke rigtig taler om. Textmate 2.0 har været lidt et research-projekt for mig, hvor jeg har været meget løs med hensyn til deadlines, fordi jeg gerne ville prøve nogle forskellige nye ting af.«

»Derfor har jeg også været meget stille omkring Textmate 2.0, fordi det er ufedt at skrive om ting, som man ikke er 100 procent sikker på at kunne levere. Overordnet er Textmate 2.0 dog en langt bedre platform for brugerudvidelser.«

Du har valgt at holde Textmate til Mac-platformen. Hvorfor ikke portere den til Windows og Linux?
»Oprindeligt søgte jeg Mac-platformen, fordi jeg ikke kunne lide Windows og Microsoft. Så det bunder i en personlig præference, selvom Apples handlinger i dag skræmmer mig næsten mere, end Microsoft gjorde dengang. Med hensyn til Linux synes jeg stadig, at brugergrænsefladen i Mac OS er langt overlegen.«

Hvornår forventer du, at Textmate 2.0 er klar?
»Det er svært at sige. Men jeg håber, at den er ude i en beta-version inden udgangen af året.«

Hvordan tjener du penge på Textmate?
»Det gør jeg udelukkende ved at sælge programlicenser (koster omkring 50 euro for en enkeltbruger-licens, red.). Når folk først har købt programmet, tjener jeg ikke flere penge på det. Og nu har jeg har så også været så naiv at love, at 2.0 bliver en gratis opdatering til dem, der allerede har investeret i Textmate 1.5.«

Hvor meget tjener du på at sælge programmet? Er det over eller under
350.000 kroner om året?
»Det er over. Der gik et par år, fra jeg startede udviklingen, og til indtjeningen var konkurrencedygtig med at arbejde som datalog i det private erhvervsliv, men det har givet en OK løn helt fra udgivelsen af Textmate 1.0.«

Vil du bevare Textmate som et én-mandsprojekt fremover?
»Højst sandsynligt. Jeg har gjort mig forskellige overvejelser, men hidtil har jeg ikke været interesseret i at bygge et stort firma op. Lige nu har jeg én deltidsansat til support og har også i en periode haft en ekstra udvikler ansat, men jeg foretrækker at holde det småt.«

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (16)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#2 Jesper Kleis

Jeg har brugt TextMate i snart 4 år - og har været ganske tilfreds. Men der har også været rygter om TextMate 2 i snart 2 år - så man begynder at tvivle på om den kommer, og hvad der måtte være i den.

Men ligegyldigt hvad - så er TextMate et eminent værktøj - hvor man let kan skrive små snippets der f.eks. smider scripts til vores computercluster - og holde styr på om de er i køen etc.

Så TextMate er faktisk en af grundene til at jeg ikke overvejer at skifte fra Mac platformen.

  • 0
  • 0
#5 Jesper Kleis

Egentlig ville jeg være glad hvis man kunne opgradere gratis til TM 1.6 (nuværende version er 1.5.9 og der er ikke sket det helt store de sidste fire år) - hvor der blot var en ordentlig print mulighed (scripter til a2ps i øjeblikket) , blev rettet op i sidebaren (her fungerer alting ikke lige logisk og godt), split-screen til kode/terminal screen, og endelig en mulighed for at tagge sine filer/projekter enkelt og hurtigt.

Det burde være relativt enkelt - hvorefter en TM 2.0 så helt klar skulle betales for - jeg ville også gerne betale for en update til 1.6 - jeg savner virkelig disse features!

Men egentlig er det lidt morsomt at V2 tager en mac programmør på dagsordenen - især da det er over 3 år siden der kom en major update af programmet.

  • 0
  • 0
#6 Nikolaj Brinch Jørgensen

Alt det kunne vi få ved at lave en Open Source udviklet editor. TextMate er fed, men lider under problemet, at den i høj grad bære præg af hvad Allan synes er fedt.

Det der er dens styrke er at den er letvægt. Hvis den bliver for tung, så det tager mere end et sekund at åbne en fil (det gør det nogengange for den er ikke specielt god til store filer), så begynder jeg at bruge et alternativ.

Det er et glimrende og billigt produkt.

  • 0
  • 0
#8 Allan Odgaard

Hej Jesper.

Jeg skal gerne være en af de første til at erkende, at situationen de sidste par år ikke har været optimal (for at sige det mildt).

Problemet med lige at rette/tilføje hvad du foreslår er, at mange brugere har 3-5 ting de gerne ser jeg bruger tid på, og det er ofte forskellige ting, plus “simple” ting er ikke altid lige så simple som de lyder, så jeg ville hurtigt have arbejde til årevis, og mildt sagt meget “hårdt” arbejde. Nogle ting er 1.x kodebasen bare ikke egnet til, fx noget så simpelt som “split-editering” (som du nævner), grundet begrænsninger og fejl i Cocoa (anno 2004) var jeg nødt til at koble editor tæt med vinduesklassen (for at få alle events mv.), hvilket gør det problematisk at have flere editors i samme vindue.

Så jeg valgte at sige nok med 1.x og starte forfra med 2.0, jeg havde på det tidspunkt rigtig mange idéer som jeg vidste aldrig ville kunne blive realiseret med 1.x, og hvis jeg skal beholde entusiasmen for projektet, er det vigtigt, at jeg har ting som “tænder mig”, og fx ikke bare skal re-implementere ftp-protokollen fordi mange gerne vil have indbygget ftp-browser i teksteditoren el.lign. ;)

2.0 har så taget meget længere end hvad der nok er acceptabelt for et kommercielt projekt, også fordi at jeg havde brug for en pause efter (vist) 1.5.6 og brugte noget tid på at rejse mv.

Forhåbentlig er 2.0 snart ude, og jeg har lært nok til, ikke igen at bringe mig og mine kunder i en tilsvarende situation, om det så bliver ved at open source editoren, ansætte en koder til at vedligeholde 2.x mens jeg kaster mig over 3.0, el.lign. må tiden vise…

  • 0
  • 0
#9 Nikolaj Brinch Jørgensen

@Allan

Arbejder du sammen med dem bag e?

Jeg er hos nogle kunder tvunget ud i Windows, og savner derfor min Mac og min TextMate, men e gør det godt (udover at have gevaldige problemer med opstartstid i mange sammenhæng - Windows er en skod platform, for process model!).

Mvh,

Nikolaj

  • 0
  • 0
#11 Jesper Kleis

Hej Allan,

Ja, jeg ved at det er let at komme op med nye features - og jo flere brugere des flere features er essentielle.

Jeg kan ogsaa huske at den nye version annonceret preleopard ville vaere leopard only og aabenbart har taget lang tid at faa lavet korrekt.

Derudover kan lappeloesninger hurtigt blive rigtig besvaerlige at vedligeholde - men for os der sidder i den anden ende er det meget svaert at vide hvornaar der kommer et nyt produkt, hvilket kan vaere lidt frustrerende, isaer da mange andre editorer efterhaanden ogsaa har faaet godt fat i kunderne.

Dog kan jeg ikke klare mig uden TM - og jeg er stadig glad for et fantastisk produkt. Saa det siger jeg tak for, og haaber paa at der snart kommer et nyt paa banen.

  • 0
  • 0
#12 Henrik Mikael Kristensen

Efter både at have brugt TextMate i nogle år nu og E i omkring en måned, er E desværre kun en svag skygge af TextMate, så som optimal Windows editor, er jeg ikke sikker på, den kan anbefales.

Mange af de ting, Allan nævner omkring vindueshåndtering, split window editing, osv. er også irritationsmomenter, men selve editoren råder næsten fuldt bod på dette og heldigvis er det nemt at skrive egne bundles og der findes efterhånden et hav af dem.

  • 0
  • 0
#16 Henrik Mikael Kristensen

For mig er det manglen på en brugerflade. Der er ingen knapper der kommer i vejen eller fylder på skærmen, og lader dig arbejde i det niveau du ønsker.

Derudover er selve editoren ret dyb og kan arbejde i forskellige scope niveauer. Man kan mærke, at Allan har brugt meget tid på at bygge en meget god editor, der er virkelig behagelig og hurtig at skrive i, og jeg kommer hurtigt til at savne dens blok-redigeringsmuligheder, hvis jeg skifter til en anden editor.

Man kan se den i aktion her:

http://screencasts.textmate.org/math_and_column_selections.mov

Man arbejder med "bundles", små pakker der indikerer forskellig syntax highlighting, kommandoer og integration med netværk, XCode og det underliggende UNIX.

Det tager få minutter at skrive en bundle fra den indbyggede bundle editor, og det er også primært pga. bundles, at E editoren er nævnt her i tråden. Kigger jeg i bundle-downloader-bundlen (!) er der 817 bundles tilgængelige, hvor den første er syntax highlighting af 6502 assembler kode. :-)

Når man har denne integration, er der ikke ret mange grænser for, hvordan TextMate kan integreres og bruges med resten af OSX. F.eks. medfølger en bundle til at styre og konfigurere OSX' indbyggede Apache webserver. Der er også mulighed for at lave små brugerflader.

Der er sikkert andre editorer, der kan det samme, men TextMate prøver på ingen måde at være fancy og er heller ikke specielt svær at bruge.

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