Støv Delphi af til mobile apps på tværs af iOS og Android

Det gamle programmeringsmiljø Delphi med danske rødder forsøger nu at genopfinde sig selv som redskab til at skrive apps til Android og iOS i ét hug.

Udvikling af applikationer på tværs af platforme har altid givet problemer, og det er i disse år mest tydeligt på mobilfronten. Det forsøger firmaet bag det gamle værktøj til udvikling af Windows-applikationer, Delphi, nu at rette op på ved at genopfinde Delphi til mobiludviklere.

Udviklingsværktøjet Delphi er for de fleste nok synonymt med udvikling af applikationer til Windows, og de fleste vil også nok mene, at Delphis storhedstid er forbi. Nu forsøger Embarcadero, som i dag ejer Delphi, at relancere Delphi som værktøj til udvikling af mobilapplikationer på tværs af iOS og Android.

»Delphi er et gammel sprog, men det har udviklet sig, så det også har de funktioner, man finder i Java og .Net, så vi er ikke bagefter,« siger produktchef for Delphi, Marco Cantu, fra Embarcadero til Version2.

Delphi er et integreret udviklingsmiljø, som benytter Objective Pascal, og værktøjet blev oprindeligt udviklet under ledelse af danske Anders Hejlsberg i hans tid i Borland.

Værktøjet var ligesom andre af Borlands værktøjer kendt for at være bygget op om at udvikle applikationer ud fra applikationens grafiske brugerflade, hvor værktøjet hjalp udvikleren med at definere meget af den bagvedliggende kode.

Samtidig var Pascal på daværende tidspunkt i 1990'erne ét af de sprog, som mange dataloger og selvlærte programmører havde lært på deres uddannelser, så springet til Delphis variant af Pascal var forholdsvis kort.

Der findes i dag stadig virksomheder, som især i interne udviklingsafdelinger benytter Delphi til Windows-applikationer. Det er især dem, Embarcadero nu vil have fat i med Delphi til mobiludvikling.

»Det er forretningsapplikationer, hvor du kan bygge en grafisk brugerflade. Vi arbejder med visuel udvikling, så du hurtigt kan bygge en prototype,« siger Marco Cantu.

Det er der også andre værktøjer, som eksempelvis Delphis store konkurrent på Windows-markedet, Microsofts Visual Studio, som kan, men ifølge Marco Cantu satser Embarcadero på, at Delphis mulighed for udvikling på tværs af styresystemer vil gøre Delphi interessant til mobil-app-udvikling.

Tidligere i år lancerede Embarcadero en version af Delphi, som kunne bruges til at lave apps til Apples iOS. Nu er værktøjet blevet udvidet, så det også kan bruges til Android-applikationer.

Delphi til mobile apps benytter sig af en compiler, som bygger på den åbne LLVM-arkitektur. Det betyder også, at Delphi-applikationer til Android er oversat til maskinkode.

Oven på compileren benytter Delphi sig af sin egen grænseflade-platform, som i princippet virker på tværs af både Android og iOS.

»Der er dog nogle forskelle, som udviklerne er nødt til at håndtere forskelligt. Eksempelvis måden hvorpå en tilbage-knap er implementeret i iOS og Android,« siger Marco Cantu.

Visuelt vil der også være forskelle, ligesom der kan være forskellige skærmopløsninger, som der skal tages hensyn til. Det mener Marco Cantu dog ikke er et stort problem til forretningsapplikationer.

»Jeg tror ikke, det er nødvendigt med pixel-præcision i brugerfladen til forretningsapplikationer. Det er noget andet, hvis det er en applikation, du har tænkt dig at sælge i AppStore,« siger Marco Cantu.

Den åbenlyse hindring for Delphi som mobiludviklingsværktøj er programmeringssproget, som for udviklere uden for det etablerede Delphi-miljø næppe er det indlysende valg.

»Sproget er da en faktor, men der var også mange udviklere, som tog Objective C til sig til iOS, fordi det var det sprog, der var tilgængeligt. Lige nu understøtter vi kun Delphi, men i løbet af de næste måneder vil vi også udvide med C++,« fortæller Marco Cantu.

Udviklerne kan lige nu vælge mellem flere forskellige Android-telefoner og iOs-enheder, når de skal prøvekøre applikationerne på virtuelle maskiner, ligesom det er muligt at overføre applikationer til udvikler-hardware. Ud over standardudgaven af Android, understøtter Delphi også Amazons variant.

»Vi har en platform, som gør det relativt let for os at komme over på nye mobilplatforme. Og vi har set, hvordan en ny platform kan tage over relativt hurtigt i løbet af et par år. Så vi overvejer andre platforme og overvejer eksempelvis WinRT og Windows Phone,« siger Marco Cantu.

En udfordring for Delphi på mobilfronten er, at der findes en række værktøjer, som er næsten gratis for individuelle udviklere eller studerende, mens Delphi til sammenligning har en forholdsvis høj licenspris.

»Vi kan ikke tilbyde gratis værktøjer, men vi prøver at gøre vores tilbud mere fleksible ved eksempelvis at tilbyde et værktøj kun til iOS. Men vi tror, at i en virksomhed, vil besparelsen ved kun at have ét udviklerhold, være prisen værd. Vi arbejder også med universiteter for at få dem til at overveje Objective Pascal. Der er flere, som har foreslået, at studerende ikke bør lære C# eller Java som deres første sprog, og Pascal var en gang populært til undervisning,« siger Marco Cantu.

»Vi vil udnytte det, vi er gode til, nemlig at bygge brugerflader, og så med 2-3 linjers kode at få noget til at køre,« siger Marco Cantu.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (20)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Knud Larsen

Det er sjovt at læse den 'anmeldelse'. Hvad man ikke kender er nok noget skidt..
Deplhi blev kendt tidligt i Danmark faderen er dansk, senere gik det til Borland og nu Emaarcadero.
Sproget? jah det er bare en af de mange varianter, men det er krævende på typer ikke noget med at blande typer som i C.
Men det væsentlige kommer ikke frem:
Delphi har en stor skare af programmører, der elsker den hurtige compiler 5 gange hurtigere end C, fordi man tillader at genbruge units.
Det andet punkt er det flotte udbud af komponenter.
Som applikationsingeniør har jeg altid syntes, at det er dræbende at skulle spilde tiden på at genopfinde hjulet.
Tag et kik på et af de fornemste komponent leverandører hos DevExpress.
Ser man på diskussionen om compilere er det kedeligt, men ser man på udviklingen mod effektive værktøjer er det svært at komme uden om Visual Studio fra Microsoft og Embarcadero XE5. Det ses hos DevExpress, der bruger mest energi nu på at støtte Visual Studio.
Da mængden af operativsystemer på linux og Android (og en tid iOS) langt overgår windows er der klart en stor interesse og et behov for at udvikle sourcekode, der er tilnærmelsesvis ens, så brugerne kan få en ensartet oplevelse af samme app på diverse platforme.
Med Microsofts prispolitik er Windows snart på vej samme sted hen som Nokia.
Det er sikkert rigtigt, at der er mange billige værktøjer til udvikling på Linux, men endnu har jeg ikke fundet nogt, der når Embarcadero og DevExpress til sokkeholderne.
FreePascal har nogen komponenter, så det må jeg vel prøve først.
men der er jo heller ikke en krydscompiler til Android og ARM og alt det der følger med, så let er det ikke at finde noget konsistent og sammenhængende.

  • 4
  • 0
Christian Nobel

Det er sikkert rigtigt, at der er mange billige værktøjer til udvikling på Linux, men endnu har jeg ikke fundet nogt, der når Embarcadero og DevExpress til sokkeholderne.

Har du prøvet Lazarus - jeg føler ikke at jeg mangler noget på nogen måde.

Og bare det at kunne lave alt udvikling under Linux, og så direkte flytte kildekoden til en virtuel Windows maskine, compilere, og stå med et færdigt produkt, er virkelig en fornøjelse.

Hvis man så også benytter Zeoslib's database komponenter, så er man rigtig godt kørende.

Herudover så er der sindssygt mange komponenter til Lazarus, så man behøver ikke fedte med selv at udvikle det varme vand.

FreePascal har nogen komponenter, så det må jeg vel prøve først.
men der er jo heller ikke en krydscompiler til Android og ARM og alt det der følger med,

Jo man kan krydskompilere til stort set alt (men må blankt indrømme at jeg ikke har prøvet, da det er nemmere bare at kompilere i en virtuel maskine).

At jeg så mener at når vi taler om Android og iOS, at HTML5 mere er vejen frem, er så en anden sag.

  • 2
  • 0
Pelle Söderling

Åh Delphi, mit første rigtige programmeringssprog i midt-90'erne - det vækker mange gode minder.

Men når alt kommer til alt, så har Delphi altså været død og begravet de sidste 10 år. Anders Hejlsberg som fremhæves i artiklen er trodsalt for længst rykket videre til langt mere interessante projekter som det vist ikke er nødvendigt at fremhæve yderligere.

At forsøge at profilere det til mobil-udvikling er imo et desperat forsøg fra et desperat firma der har måtte se sine markedsandele indskrænke år for år til konkurrenterne - især Microsoft og Visual Studio har ramt dem hårdt.

Apropo, så har Xamarian netop annonceret partnerskab med Microsoft - det virker imo som det bedste bud på Cross Platform mobil-udvikling i et moderne sprog (af selvsamme Anders Hejlsberg). http://xamarin.com

  • 0
  • 0
Christian Nobel

Men når alt kommer til alt, så har Delphi altså været død og begravet de sidste 10 år.

Ahem, det er vist lidt af en overdrivelse.

At forsøge at profilere det til mobil-udvikling er imo et desperat forsøg fra et desperat firma der har måtte se sine markedsandele indskrænke år for år til konkurrenterne - især Microsoft og Visual Studio har ramt dem hårdt.

Delphi er jo også handikappet af et det kun kan benyttes under Windows - det gør det uinteressant for mange.
Og det er ikke blevet bedre af at det nu er sovset ind i .Net.

Men så findes der heldigvis Lazarus.

  • 1
  • 0
Christian Nobel

Og bare det at kunne lave alt udvikling under Linux, og så direkte flytte kildekoden til en virtuel Windows maskine, compilere, og stå med et færdigt produkt, er virkelig en fornøjelse.

Åh jo, glemte lige:
For ikke at tale om at jeg via SSH også kan flytte kildekoden over til en RPi, og kompilere på den, uden at forlade min egen maskine.

  • 0
  • 0
Pelle Söderling

Er det? Det er sådan jeg har oplevet det :-)

Siden deres strategiske move til .NET platformen har de kun set røgen fra Visual Studio og C#.

Det er muligt det stadig har lidt at skulle have sagt indenfor native udvikling eller native cross-platform udvikling, men det er vist efterhånden i niche-kategorien.

Delphi var stort til general-purpose udvikling engang, idag er det knap noget folk vil overveje som en mulighed i de fleste sammenhænge.

  • 0
  • 0
Christian Nobel

Er det? Det er sådan jeg har oplevet det :-)

Siden deres strategiske move til .NET platformen har de kun set røgen fra Visual Studio og C#.

Det er muligt det stadig har lidt at skulle have sagt indenfor native udvikling eller native cross-platform udvikling, men det er vist efterhånden i niche-kategorien.

Delphi var stort til general-purpose udvikling engang, idag er det knap noget folk vil overveje som en mulighed i de fleste sammenhænge.

Jeg tror (men det er kun et ukvalificeret gæt) at det stadigvæk lurer en del i hjørnerne rundtomkring - men ellers så har du ret i at de, ved dybest set at lade det være et Windows only produkt, har skudt sig selv i foden.

Og nu om dage er det sådan set også ligegyldigt, for FPC/Lazarus er imo vejen frem: OS, crossplatform, et godt community - og hvis så Marco Cantu hoppede på den galaj, så ville der være store perspektiver.

  • 0
  • 0
Christian Nobel

Det bliver nok aldrig rigtigt godt, med crossplatform udvikling

https://sandofsky.com/blog/shell-apps.html

selv om at jeg også er gammel delphi fan!

Jeg tror man skal vælge sine kampe med omhu.

Så hvis man skal lave crossplatformudvikling Windows/Mac/Linux (og andet X), så er det ret så overkommeligt under Lazarus.

Skal man lave mobile applikationer, så mener jeg at man skal fokusere på HTML5, men kende sine begrænsninger, så man arbejder ud fra funktionalitet i stedet for at lave det pixelperfekt.

  • 1
  • 0
Pelle Söderling

Well, taler vi ægte native cross-platform udvikling så er der ét sprog det er svært at komme uden om (som jo også har en ganske kendt dansker bag sig) nemlig C++.

Selv til mobil-udvikling er det det ultimative cross-platform sprog. Det er svært at komme på noget der er ret meget mere portable end C/C++.

Men det er heller ikke uden sine ulemper - Xamarian vil være mit bud på den bedste cross-platform løsning til mobilapps i RAD kategorien.

  • 0
  • 0
Per Friis

Det er så tydeligt når jeg får fat i en HTML5 app, og i ganske få tilfælde syntes jeg at det er ok, men i langt de fleste tilfælde er det noget "beeeeeeeep".
Det er muligt at det kommer, men verden er ikke bare sort/hvid, så det tager ikke gange 2 at lave 2 native app. 1 HTML5 app tager længer tid at udvikle end en native.
Så er der de argumenter der ellers bliver lagt op i blog'n hvor de nye funktioner der lige er kommet i native, først kommer efter noget tid i HTML5 eller andre "wrapper".
Så kommer hele sikkerheds modellerne, hvor der typisk er flere strenge at spille på når du arbejder native.
Tro mig, jeg siger ikke at Native er det eneste, jeg mener bare at det er det første du skal undersøge, og ikke bare sige HTML5 som en autonom reaktion, når der er nogle der skal udvikle app!
Bare fordi at vi har en hammer er alt ikke bare blevet lavet om til søm ;-)

  • 2
  • 0
Christian Nobel

Tro mig, jeg siger ikke at Native er det eneste, jeg mener bare at det er det første du skal undersøge, og ikke bare sige HTML5 som en autonom reaktion, når der er nogle der skal udvikle app!

Jeg sagde også at man skal vælge sin slag med omhu - så det drejer sig helt om hvad det er man ønsker at lave.

Men eksempelvis det at lave en app der dybest set kun kan vise dagens tilbud fra et supermarked, vise nogle få billeder af et hus til salg, ringe efter en taxa eller lignede er imo. dybt åndsvagt, da der er tale om relativt enkle ting som kan klares med en begavet omgang HTML.

Endvidere skal man også se på adfærdsmønster - hvis det er noget der bruges sjældent, så vil man da ikke spilde plads på en app.
Hvor mange vil installere et dedikeret Brugsen program på deres desktop, hvis alt hvad der normalt er behov for kan klares i en browser?

Men derfor kan der også sagtens være områder hvor en app klart har sin berettigelse - typisk der hvor der skal gemmes data, UI er komplekst og funktionalitet er kompleks etc.

Så enig om det ikke er sort/hvidt.

  • 0
  • 0
Christian Nobel

Ok jeg prøver Lazarus igen - desværre gik først forsøg dårligt det hele blev korumperet og compileren manglede?

Windows eller Linux?

Og når du så har fået den op at køre (det plejer nu at være overmåde nemt under Windows), så skal du altså ikke løbe skrigende væk, når du ser at din "Hello World" fylder 15MB - det er fordi at alt default debugging info ligger i den binære fil.
Kør en strip -s og filen skrumper voldsomt.

  • 0
  • 0
Nikolaj Henrichsen

Argumentet om, at noget er skidt fordi det ikke er så udbredt som noget andet, tror jeg ikke holder i byretten ;-)

Delphi er et fedt objektorienteret værktøj med alt, hvad man ønsker sig af et moderne objektorienteret sprog, f.eks. generics.

Og så er compileren lynhurtig og resultatet er native compilet kode, som derfor også er lynhurtig. Både til 32- og 64-bit CPUer.

Mht. .Net, så lavede Embarcadero så vidt jeg ved et strategisk "move" væk fra dette framework for lang, lang tid siden. .Net var klart en bommert, og man hører aldrig om nogen, der bruger Delphi til .Net (jeg gør i hvert fald ikke). Så at dømme værktøjet på dette framework er skudt ved siden af. Delphi er "native".

Delphi er og har altid været et top-klasse værktøj. Ærgerligt at det er røget ind i en ond spiral med dårlig omtale. Det er ikke fortjent.

  • 5
  • 0
Uffe Kousgaard

Sidste Delphi.NET compiler var i Delphi 2007. Siden da har bedste tilgang til at kode til .NET med en Delphi-syntax været Remobjects Oxygene, som er en compiler-plugin til Visual Studio. Den anvender vi med stor success og kompilerer i øvrigt fortsat til win32/64 fra næsten samme kildekode. Best of both worlds :-)

  • 2
  • 0
Knud Larsen

Så fik jeg Lazarus installeret Ubuntu en brokker sig noget over det!
men det er jo ligesom at sidde i fortiden på en Delhi 7. Ikke rigtig relevant for mig tror jeg jeg savner alle de super datakomponenter.

  • 0
  • 0
Christian Nobel

Ikke rigtig relevant for mig tror jeg jeg savner alle de super datakomponenter.

Ja jeg ved så ikke lige hvad det er du mangler, men jeg mangler altså ikke noget.

Og med Zeoslib har jeg alt hvad jeg behøver for at kunne tilslutte mig til en vilkårlig SQL database.

Til webapplikationer bruger jeg Powtils, og selv om det har nogle år på bagen er det uovertruffen.

Til gengæld kerer jeg mig ikke så meget om hvorvidt hjørnerne på vinduer fremstår afrundede eller skarpkantet, eller om hvorvidt tingene skal fremtræde i lyseblåt, eller hvad "folk" ellers anser for "moderne"!

Jeg mener det er vigtigere at kunne løse opgaven, og efterfølgende stå med et hurtigt og stabilt produkt.

Og Pascals type deklaration, muligheden for ikke at pointe sig selv ned i helvede, samt en meget rigoristisk compiler mener jeg klart er en fordel - hellere opdage fejl ved kompilering end når kunden har fået programmet.

  • 2
  • 0
Allan Høiberg

Mht. .Net, så lavede Embarcadero så vidt jeg ved et strategisk "move" væk fra dette framework for lang, lang tid siden.

Outputtet er native i dag (så vidt jeg ved har de et tillægsprodukt til .Net-udvikling; har ikke kastet et blik på det) - men selve Delphi-miljøet er desværre stadig ubehjælpeligt .Net-afhængigt. Jeg måtte i første omgang - efter en del resultatløs kontakt med Embarcaderos support - opgive at få Delphi XE til at virke på grund af en mystisk fejlmelding under opstart af IDE'et, også på en næsten nyinstalleret maskine. Det viste sig længe efter at skyldes at Microsoft C5 under installation lavede ét eller andet om i .Net-opsætningen, som kun kan rettes ved manuel indgriben i registry - men som i en bare nogenlunde ideel verden i hvert fald overhovedet ikke skulle kunne forstyrre Delphi.

(om det siger mest om Delphi eller om .Net skal jeg ikke gøre mig klog på)

Bortset fra det...

Jeg så gerne Delphi tilbage på skemaet, men mest som en del af den ballast, mange studerende mangler for at kunne forstå at resten af verden har mange andre måder at arbejde på end den hot-language-of-the-week-er-det-eneste-brugbare-indstilling, jeg selv har oplevet fra praktikanter (mig: Jeg har brug for dettehér og arbejder i Delphi - dem: Fjong, vi laver en Java-simulation) [1].

Personligt bruger jeg stadig Delphi til de fleste projekter med native-target, men Embarcaderos prispolitik ligner da i dén grad ikke Borlands! Jeg kan desværre ikke se noget forsvarligt formål med at få det ind i skolerne som det naturlige valg, så længe 1) det ikke er til at betale hvis man som privat udvikler vil kunne det hele, 2) de gang på gang skifter retning i en grad så man ikke ved hvor det hele ender (XE kunne lave iOS-apps, XE2 kunne ikke, XE5 kan, men det koster kassen ekstra - og så glemmer vi lige fortiden med hhv. Kylix' fulde Linux-support-hvis-man-altså-brugte-en-af-meget-få-targetplatforme og .Net-only-outputtet en versions tid, der begge må have givet køberne en grum følelse af brændte fingre bagefter) - og oplevelser som at skulle vente mellem tre kvarter og to timer for en service pack-installation, der endda kræver fuld uninstall - fra et firma, der leverer installationsværktøjer med i pakken (og så glemmer jeg også lige alle de tredjepartsværktøjer der bare skaber endnu mere forvirring om, hvad vi har købt og hvad vi har købt indtil de ombestemmer sig i næste version)... det giver bare overordnet et, well... rent ud sagt useriøst indtryk.

Hvis Delphi fandt tilbage på sporet som mainstream der bare blev bedre og bedre, var til at betale for alle og kunne bruges til alle formål sådan som det kunne i gamle dage, ville jeg nok bakke op om det - endda hvis jeg kunne købe en version uden middleware- og databasekomponenterne, men med alt det andet til en pris der kunne overskues af almindelige mennesker til gengæld - ville jeg stå forrest i køen - men jeg har desværre ikke indtryk af at de selv ønsker det.

Oh, og forresten: Native-compilering til Android - er det nu også en god idé? Til inhouse-udvikling måske, men igen har vi tilsyneladende et værktøj der ikke egner sig til kommercielt brug på dét område - eller?

[1] Ikke alle praktikanter havde den indstilling, og jeg antager at de fleste uddannelser ikke er på den måde - men det forekommer åbenbart.

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