Technologie pro vývoj desktopových aplikací

Tento článek byl publikován před 4 lety, některé informace již nemusí být aktuální

Jakožto webového vývojáře mě ve slabé chvilce přepadl nápad na desktopovou aplikaci. O vývoji pro desktop toho moc nevím, takže jsem si za trest udělal malý průzkum možností, jak takovou aplikaci vytvořit co možná nejrychleji. Vznikl mi z toho subjektivně zabarvený výcuc, který dávám k dispozici. Pokud případní kolemjdoucí desktop-mazáci výcuc doplní o nějaké kvalitní, progresivní technologie, bude to super.

Co jsem po aplikaci, obecně řečeno, chtěl? Aby uměla volat příkazovou řádku systému, abych do ní mohl zabundlovat (nebojaksetoříká) software třetích stran, aby uměla pracovat s filesystémem. Aby, pokud možno bez větší námahy, běžela na win, mac, linux.

Co jsem nechtěl? Strávit s vývojem rok a použít Javu, protože desktop aplikace napsané v Javě jsou, jak všichni víme, pomalé a nenažrané a vůbec.

Tak co tu máme

Tcl (Tool Command Language)

Tcl se mi na první pohled líbil. Ve spolupráci s Tk mi připadal mi jako malý šikovný tool na rychlé prototypování aplikací. Přišel jsem na něj tak, že jsem se na Githubu podíval, v čem je napsané GUI pro Git. Rozhodl jsem se ho nepoužít kvůli subjektivně mírně obskurnímu jazyku (všechno je tam string, nebo tak něco) a občas hnusně vypadajícímu GUI, které z něj leze. Dá se volat i z celkem normálních jazyků.

Brackets

Existuje taková (momentálně mírně partizánská) možnost, jak z desktopového editoru, vyrobeného v javascriptu, html5 a css, vyrabovat tzv. brackets-shell a postavit na tom svoji vlastní desktopovou aplikaci. Taková lumpárna mi byla sympatická, pak mi to ale přišlo takové jako neseriozní. Navíc, pokud chcete skrýt zdrojáky aplikace, tak to pokud vím nejde (platí to obecně pro tyhlety html-desktop technologie? Atom?).

Do podobné skupiny by nejspíš mohl patřit i node-webkit.

Chrome apps

Trochu serioznější jsou Chrome apps. Tzn. aplikace postavené taky na webových technologiích, ale chovající se jako desktopové. Jejich podmnožina packaged apps běží na všech OS, klidně v offline módu, filesystém umí, spouští se (pro uživatele) nezávisle na prohlížeči Chrome a má potenciál být u začátku boomu (?) Chromium OS.

To se mi celkem líbilo. Plus máte vyřešenou distribuci – šupne se to do Chrome store a můžete vydělávat.

Nelíbilo se mi, že nemůžu přibundlovat další software (ale kucí v googlu si s tím už hrajou), a nelíbilo se mi, že si Google bere 5% z plateb, a to je z hodně milionů, hodně peněz ;-)

Takže pro mě, aspoň zatím, taky no-no.

Céčka

Jak jsem od začátku tušil, nejlepší by bylo jít tak trochu na kost a udělat to normálně. Tzn. v nějakém tom céčku. To máte: GTK, Qt, MonoDevelop, wxWidgets a tak dále a tak dále. I nějaké to pěkné IDE se dá najít.

Multiplaformní to asi moc nebude (čisté céčko nechci) a navíc neumím ani jedno céčko a nemám moc čas se ho učit. Takže zatím pro mě asi nejlepší možnost, ale ještě se podívám dál.

Java platformy

Javu znám, ale její použití jsem jaksi předem vyloučil, takže jen pro přehled: Eclipse platform a Netbeans Platform. Z IntelliJ jsem měl dojem, že mě nechtějí a rovnou jsem je vyřadil.

Takže v Javě mi zbývají Netbeans a Eclipse. Když si vzpomenu co jsem chtěl, tedy něco jako framework ve zhruba takovém smyslu, jak jsem zvyklý z webu a když vezmu v potaz srozumitelnost dokumentace tak mi vychází subjektivně lépe Netbeans.

Vyhlášení vítěze

Na začátku průzkumu jsem se mírně obával, že technologie pro vývoj na desktopu budou tak trochu „zamrzlé v roce 2002“, co se výběru, bohatosti dokumentace a progresivnosti týká a myslím, že se mi obava víceméně potvrdila. Desktop prostě vypadá trochu demodé, jak se říká u nás doma. Ale, neházím fintu do žita, třeba mi bude ukázáno, že se pletu.

Kdo dočetl až sem, zaslouží odměnu v podobě vyhlášení vítěze a škodolibého zadostiučinění. Možná to už některým došlo – Céčka jsou pro mě na dlouhé lokte, progresivní desktop-cosi-HTML je zatím tak na piškvorky a Javu jsem vyřadil už na začátku. Co z toho vyplývá?

Ano, správně, na celé čáře vítězí Java a Netbeans Platform. Dobře mi tak, že?

před 4 lety napsal Peter Láng