Delphi 25 v!

Harva tietää, mutta Delphi täytti kaikessa hiljaisuudessaan 25v. Sen tiimoilta törmäsin blogipostaukseen aiheesta: https://community.idera.com/developer-tools/b/blog/posts/25-years-of-excellence

Haluan tässä blogipostauksessa jakaa omia ajatuksia ja muistoja Delphistä.

En ole kirjoittanut riviäkään Delphiä yli vuosikymmeneen. Tiedustellessa työkavereilta heidän suhdettaan Delphiin saan samanlaisia kommentteja. Joko Delphiin ei ole ikinä koskettu, tai sitä on käytetty viimeksi vuosituhannen alussa.

Vaikka Delphi on käytännössä vaipunut kokonaan merkityksettömäksi, Delphi oli aikoinaan hieno kieli. Sillä sai todella kaunista koodi aikaiseksi hyvin lyhyessä ajassa, kun vertaa muihin aikakauden vaihtoehtoihin. Sille sai valtavan määrän open source -komponentteja ladattua netistä, joita pystyi käyttämään ja muokkaamaan omissa projekteissa (maksamalla olisi varmaan saanut vielä enemmän).

Moni kuitenkin pysyi C++:ssa, ja hyvistä syistä. Vaikka C++:ssa käännösajat oli massiiviset, koodi oli sekavaa ja kehitysympäristöt kehittymättömiä, sillä sai isolla vaivalla tehtyä hyviä ohjelmia. Kun C++:n osasi, kaikki integrointi muuhun järjestelmään oli yksinkertaisempaa. Kun kaikki ympärillä oli C:tä tai C++:aa, piti Delphi-ohjelmoijan käytännössä osata Delphin lisäksi C/C++:aa. Lisäksi, Delphillä oli omat kirjastot mitä vasten linkata. Tämä oli ongelma sen takia, että jos avasi yhden pienen C++-ohjelman, sen muistijälki oli minimaalinen, koska kirjastot oli jo ladattu muiden ohjelmien tarpeisiin. Sen sijaan pieni Delphi-ohjelma vaati ajonaikaisia Delphi-kirjastoja, jolloin sen muistijälki oli massiivinen verrattuna C++-verrokkiin.

Samoin, moni karttoi Delphiä sen jaarittelevan (verbose) syntaksin takia. C:ssä pieni funktio vaati vähän kirjainmerkkejä, Pascal valtavan paljon enemmän. Esimerkkinä yksinkertainen funktio Pascalilla vs C:llä:

// Pascal: Function Bigger(a: Integer; b: Integer): Integer; Begin If a > b Then Begin Bigger := a; End Else Begin Bigger := b; End; End; // C: int bigger(int a, int b) { if (a > b) { return a; } else { return b; } }

Delphi ei kulta-aikoinaan pystynyt kunnolla haastamaan C++:aa. Sen jälkeen tuli Java, webbiohjelmointi ja Python. C++ kriisiytyi, mutta sitä käytti kuitenkin aina tarpeeksi moni jottei se ikinä kokonaan kuollut pois.

Nykyään C++:aan kehitetään alati uusia kielen ominaisuuksia. Delphin kohdalla en ole kuullut vastaavaa.

Jotta Delphiä voisi mitenkään enää ottaa vakavasti, pitäisi kieleen saada moderneja ominaisuuksia kuten lambdafunktiot. Sen lisäksi, siihen tarvittaisiin uusi aalto FOSS-komponentteja. Ja lopulta, ongelmaksi aina jää rajapinnat muun järjestelmän kanssa, joka on joko C:tä tai C++:aa. Lisäksi, kuinka moni enää on kiinnostunut tekemään desktop-softaa? Kaikki uudet projektit tuntuu olevan joko palvelimilla tai selaimessa.

Mutta, jos vaikkapa Jenkins tai vastaava merkittävä työkalu mitä devauksessa tarvitaan kirjottaisi komponenttiympäristönsä Object Pascalilla, palaisin ilomielen takaisin tämän hienon kielen pariin.

Previous
Previous

Docker build secrets – first impressions