Začátek roku 2015 a Delphi

vložil Radek Červinka 12. ledna 2015 00:19

Je leden 2015 a to mne přivádí k malému zamyšlení.

Je evidentní, že vývoj v oblasti technologií je nesmírně rychlý a rychlejší než kdykoliv předtím. Kde jsou ty doby, kdy si firma mohla dovolit několik let stát na místě (ona si to asi nemohla dovolit nikdy, ale pokud se tak stalo tak to nebolelo tak jako teď). Embarcadero brutálně investuje do vývoje a pokud si toho nevšímáte, tak Delphi (případně AppMethod) je vidět čím dál více. I díky silné podpoře firmy a komunity se pravidelně umisťuje na čelních místech různých anket čímž se dále roztáčí kola viditelnosti - a právem.

Code 2014

výsledky twitter ankety na konci roku 2014, co twitter účet to jeden hlas

Z mého pohledu minulý rok přinesl v Delphi tři zásádní věci (nemyslím tím různé vylepšení jazyka nebo IDE) a všechny směřují k jedné věci (ne že by to nepomohlo i programátorům VCL aplikací, ale směřování firmy udržuje směr, kterým se momentálně točí největší peníze - IoT a Quality of life):

  • AppTethering
  • multiplatformní podpora Bluetooth (LE) v RTL
  • paralelní knihovnu (System.Threading)

AppTethering je geniální věc jak jednoduše propojit Váš stávající program s jiným zařízením - s tím, že můžete jednoduše z Vašeho zařízení ovládat váš program (nebo službu) - via IP nebo Bluetooth. Je to v podstatě takové mobilní klient-server řešení např. i přes bluetooth.

Bluetooth je to co hýbe světem inteligentních zařízení. Můžete tak komunikovat s libovolným zařízením ať z hlediska desktop nebo mobilní aplikace.

A o paralelní knihovně jsem už psal nedávno.

Ačkoliv si mohu myslet o Quality of life (tj. všechny zařízení co nějak souvisí se zdravím, včetně hodinek, měření tepu, dechu atd.) různé věci, je to zajímavá oblast na programování a určitě vzniknou i smysluplné senzory, nehledě na to, že komunikační principy používané pro tyto zařízení se budou dát použít i pro smysluplnější zařízení z oblasti měření a vizualizací. Nechci říkat, že uvedené je budoucnost všeho - to ani náhodou. Vždy budou existovat desktop aplikace, web aplikace a mobilní (případně IoT) aplikace. Každý ať si vybere co bude řešit.

Pro mne je důležité kam se upínají síly velkých hráčů. Např. Intel velmi silně útočí na segment malých zařízení, ať se jedná o platformu Curie, tablety s x86 procesory nebo o projekt Houdini. Momentálně ARM představuje v mobilních zařízení dominantního hráče a tak Intel usilovně pracuje na live překladači instrukcí ARM na Intel. Ptáte se proč, když přece všichni používají na Androidu Javu? Dle právě Intelu 2/3 aplikací z prvních 2000 na shopu jsou nativní aplikace - právě protože Java a garbage collector byla největší chyba co google udělal - proto taky nový kernel ART pro Androidy 5. Ale zpět k houdini - podle testů je provádění instrukcí velmi efektivní a snad to brzo bude pro obecné použití. Pro zajímavost: stejný princip použil Apple při přechodu na Intel procesory - staré PowerPC aplikace jsou emulovány v rozumné rychlosti. Naopak Curie je nízkoenergetický počítač o velikosti knoflíku vybavený právě BlueTooth LE. A nepochybuji, že to EMBT také vidí.

Z hlediska platformem se u Delphi situace zkomplikovala rozhodnutím Apple s nutností 64bit aplikací (resp. přesněji kombinovaných aplikací) na jejich obchodě. Pokud se podíváme na rok starou roadmap, tak se s ničím podobným nepočítalo - místo toho tam bylo několik jiných zajímavých věcí jako Linux support, Mac OS X 64bit, Windows 8 ARM/WinRT, Android for the Intel atd. Je mi to líto, ale nelze to nijak více komentovat - uvidíme.

S uvedeným nemohu nic dělat, ale osobně mne trápí ještě jedna věc, kterou částečně měnit mohu. A to nízká úroveň znalostí objektového programování a moderních jazykových věcí - připadá mi to, jako by většina lidí skončilo s OOP na úrovni Delphi 2 (nedivím se, pokud jedou na Delphi 7 tak stejně více nevykouzlí) - ono to je vlastně napříč jazyky, ale to je mi jedno. Snažím se ukazovat některé možnosti, ale problémem je, že nejsem odborníkem na všechno. Chtěl bych programovat s generiky na úrovni jako například Stefan Glienke v DSharph, případně používat inteligentně interface jako právě DSharp nebo jako sevenzip.pas (což používá hodně dalších lidí, jelikož je to způsob jak provádět ARC na desktop kompilátorech a dokonce i pro prehistorické verze Delphi), používat class a record helpery, chtěl bych rutině psát paralelně atd. Něco z toho mi jde, ale bolí to.

Obecně se mi líbí, jak se jazyk za poslední dobu vyvinul směrem k modernímu jazyku (až na ten přešlap s indexací řetězců) a jediné co mi chybí je ARC pro Desktop no a z hlediska platforem mi samozřejmě chybí podpora Linuxu a Androidu pro Intel. Linux jako server je vážně cool.

Do roku 2015 hledím u Delphi s nadějí na několik věcí, které se mi snad i splní (nelze veřejně publikovat). A mimochodem v únoru bude mít Delphi 20 let (14. února 1995 bylo vydáno Delphi 1), jsem zvědav zda nás něčím překvapí. A samozřejmě po očku sleduji co se děje u konkurence, hlavně VS.

A nakonec osobně se dívám na rok 2015 hlavně s nadějí, že se naučím nové věci a narazím na zajímavé problémy, které mne budou bavit řešit. Možná k tomu bude třeba po nějakých 15 letech změnit zaměstnavatele, ale to se snad brzo uvidí. Tak ať Vás programování baví i v roce 2015.

Tagy:

Delphi | Server

Komentáře

12.1.2015 16:01:10 #

Nazgul

Co je "přešlap s indexací řetězců"?

Nazgul

12.1.2015 22:49:26 #

radekc

Mobilní verze kompilátorů, mají první znak v řetězci jako index 0. Dá se to změnit přepnutím flagu, ale ...

radekc

16.1.2015 15:34:08 #

radekv

Jo, a ja do noveho roku rozhodl ze mobilni apps budeme delat v Xamarinu. Je me to lito ale nedalo se nic delat. Duvodu je vic

1. iOS vs 64 (Xamarin to ma v bete od listopadu)
2. cileni - mobilni cast Delphi je pro EMBT pouze maly kousek systemu a produktu. Pro Xamarin je to jeden klicovy produkt ze 4
3. Xamarin Forms - tvorba UIcka pro iOS/Android/WP8 v XAML bez nutnosti vymalovani do OpenGL (ale zatim i bez vizualniho navrhare :-D )
4. Podpora WP8, velke casti kodu mohou ject na ModernUI a jede to na Androidu s Intelem (ano, je jich malo ale napr. Dell dela tablety s Intelem a v US jich prodavaji dost, nektere verze Samsungu Tab meli Intel atd....)

Rozhodoval jsem se docela dlouho, Delphi pouzivam od verze 1 a pred tim jsem delal na TP5.5, 6, 7.0 (vcetne windows) a tak to easy nebylo ale priority firmy bohuzel maji prednost pred sentimentem. Navic je pro nas spousta veci kde Delphi exceluji (napr. databaze) uplne k nicemu (coz asi neni obvykle)

Na desktopech na Delphi a FMX zustavame, doufam ze jeste dlouho :-D

radekv

26.1.2015 13:40:23 #

Ondřej Pokorný

Já jsem zase do nového roku přešel na Lazarus LCL pro desktop. Nějak mě FMX pro desktop nezaujalo :(
V FMX vidím spíš jasné cílení na dotykové displeje, než klasický desktop.
+ Ne, že by bylo LCL úplně super a bez chyby, ale suma sumarum to pro mě osobně byla lepší volba.

Ondřej Pokorný

26.1.2015 16:28:53 #

radekc

Oxo: to by mne zajímalo: jak řešíš reporty, kostky, grafy a další komponenty, které se dají pro Delphi koupit, často za pakatel? Např. mám oblíbené TMS pro menu a ribbon pro VCL, ale i bez FastReportu si nedokáži život představit (i když ten se prý dá v nějaké ořezané verzi pro nějakou verzi Lazara koupit).

Používáš jen to co nabízí Lazarus? Nebo kupuješ zdrojáky a nějak to upravuješ? Já si to moc nedovedu představit.  

Jen mne to tak zajímá.

radekc

27.1.2015 13:10:34 #

Ondřej Pokorný

Report jsem si napsal už před lety svůj - mám ho na bázi XML a funguje bezvadně - automatické generování řádků (např. faktury) z XML předlohy (řádky můžou být pro každý záznam jiné, s automaticky vypočítanou výškou podle textu) a tak. To samé platí o hlavičce a patičce. Nemyslím si, že např. FastReport toho umí víc, jen to moje není wysiwyg... Export z toho do PDF pomocí SynPDF (ale tady jen Win, bohužel).

Grafy - Lazarus má taky TChart, ne? Ale s grafy jsem byl i v Delphi trochu v šedé zóně - používám externí GnuPlot a prostě nahraju výsledný metafile zpátky do programu - to budu ale muset změnit.

Ani v Delphi nepoužívám prakticky žádné externí komponenty - všechno si píšu sám. To, co používám externího je: Graphics32 (alternativou pro Lazarus je bgrabitmap), občas VirtualTreeview (v Lazarus zatím nepotřebuju, ale mám dojem, že je portován). PDFComponents - v lazarusu nejsou potřeba, umí to out-of-the-box. Komerční komponenty zásadně nekupuju a nepoužívám :)

Co se týče lazarusu, tak jsem se i docela divil, ale nějaké komponenty jsou dokonce dál než defaultní alternativy ve VCL (grid, button, image list...) - i když grid mám taky vlastní...

Taky Lazarus IDE editor je mnohem lepší než v Delphi - musí se sice nastavit, aby rozumně fungoval, ale všechno jde a možnosti jsou velké. (I když, jestli je pravda, že koupili Castalii, tak to Delphi možná dohoní.)
S Lazarus undocked IDE se dá pracovat, i když docked Delphi je samozřejmě lepší.

Delphi dám šanci, až bude čas na mobilní aplikace. FMX pro desktop ale podle mě nemá smysl.

Ondřej Pokorný

27.1.2015 15:04:05 #

radekc

Diky za info.
Jen pro upresneni, napr. FastReport umi grupovat - napr. tim jednoduse vytvoris master detail prehledy, filtrovat, skriptovat, scitat (a jine agregace), exportovat obrazky, grafy atd.

radekc

27.1.2015 19:57:55 #

Ondřej Pokorný

Rádo se stalo! Uznávám, že asi nejsem typický případ. Tím, že mám vlastní komponenty, tak jsem dost nezávislý. Hlavní "problém" bylo všechno portovat z VCL do LCL, ale ani to nebylo zas až tak hrozný. Od dob 0.9 se Lazarus dost pohnul dopředu a teď už se mi zdá dost zralý na to v něm psát.

+ BeyondCompare pro iOS taky kompilují v Lazarusu.

Ondřej Pokorný

28.1.2015 12:48:45 #

ps

Fastreport pre Lazarus by už mal byť skoro plne funkčný ale len pre Qt. Portuje to jeden z prispievateľov do Lazarus IDE. Ja mám fastreport pro a tam je aj podpora pre Lazarus.  Teraz vyšla aktualizácia 5.2. ešte som neskúšal (ikeď tam je jeden môj minipatch) ale tiež riešim Lazarus pre Desktop. Jediná súčasná nevýhoda je používanie Carbon pre Mac OS a Cocoa bez progressu už dlhšiu dobu, teda pomerne neistá budúcnosť.

Taktiež súhlasím s kvalitou IDE, a niektorých komponentov napr. SynEdit , fpspreadsheet a pod.

ps

6.2.2015 2:10:01 #

rembrandt

-- kdyby koupili Castalii, tak to Delphi možná dohoní

Pokud nebudou jist, spat a chodit na zachod.

Editace kodu, intellisense, formatovani a rychla navigace kodu apod jsou nejslabsi casti delphi. Nejsilnejsi strankou by byla miliarda dostupnych komponent  a knihoven pro vsechno - i kdyz pro lazarus je jich prekvapive dost, dokonce i komercnich. Kompilator negeneruje zas tak spatny kod a vzhledem k tomu kolik toho musi podporovat - RTTI, Generics, Run-Time loading - je slusny.

Nicmene  delphi editor je oproti lazarusu, a obzvlast code typhonu, pomaly osklivy a prakticky nenastavitelny. IntelliJ radsi nebudu vytahovat, to by se delphi hanbou propadlo.

XE7 je i s Castalii, GExperts, CnPackem a IDE FixPackem jako obycejny editor kodu na hranici pouzitelnosti (mluvim samozrejme za sebe).

PS: Pokud neznate Code Typhon, googlete. Lazarus na steroidech. Az FPC dostane Run-Time baliky a rozsirene RTTI (s tim na kolika platformach podporuje stejne knihovny), muze to Embarcadero zabalit.

rembrandt

6.2.2015 2:14:16 #

rembrandt

PPS: Kdybyste se rozhodli vyzkouset Typhon, a meli problemy s instalaci verze 5.20, vezmete 5.10 nebo drivejsi, chodily mi bez problemu na kazdem kompu.

rembrandt

6.2.2015 10:19:04 #

radekc

Jen pro upresneni pro rembrandt:
-kdyby koupili Castalii

No oni ji koupili začátkem února včetně userutility (tj. nástroje na měření využití programu).

radekc

6.2.2015 12:31:11 #

rembrandt

Jsem upresnen ;-)))

Diky, budu z povzdali pozorovat i dalsi verze Delphi, a predevsim chovani Embarcadera vuci zbytku Delphi ekosystemu.

V minulosti bohuzel projevovali dost silne sklony cokoli co zavanelo kvalitou [a nekdi mozna i trochu konkurenci] znicit jakymkoli zpusobem (FUD; hazeni klacku pod nohy; vyhrozovani ze konferenci nedaji podporu, pokud bude pripustena ta a ta spolecnost; popr. odkoupeni a nasledne zruseni produktu).

Kdyby se to zlepsilo, a Embarcadero nedej boze i zacalo opravovat bugy (extremni priklad: "dancing text" je porad i v XE7 FMX, staci do textboxu zadat cca 10-15x  1, 2 nebo 3) a pred vydanim spustilo vsechny Samples a podivali se kde zas nechali leaky, mozna ze by Delphi prestalo byt nechutne predrazenou moznosti od naprosto nevhodneho partnera.

I kdyz roztaceji pekny hype, (a nekdy opravdu maji - na staticky kompilovany jazyk - zajimave featury), podtrzeno secteno mi to vychazi jako vic problemu nez uzitku.

rembrandt

6.2.2015 13:50:03 #

radekc

Ok, nechal jsem tě vylét si srdíčko, ono je vždycky jednoduše kritizuje pokud je to anonymní. každopádně mi to vychází že jsi vytáhl jen několik problémů (a nepopírám že tam něco je).

Dancing text podle mne je dávno vyřešen (ted jsem to tvuj problem zkousel - nevím co máš za OS, zda používás Direct2D nebo GdiPlus verzi vykreslovani), navíc pokud by to nebylo ono, tak postupně přibývají nativní editační prvky (ano, mělo se to udělal od začatku - souhlasím, ale po bitvě...)
Pokud máš problém, tak se zkus podívat na GlobalUseGPUCanvas := True; resp.  GlobalUseGDIPlusClearType := False;

K druhému odstavci nic moc nevím, možná někdy něco proběhlo, souhlasím, že někdy komunikace je na po tlamě - taky mne to štve.

Problémy se Samples jsou druhořadé, i z hlediska jak je Delphi vyvíjeno - jsou nakonec opraveny, a během cyklu přibývají nové, které se dají jednoduše synchronizovat.



radekc

6.2.2015 13:56:15 #

radekc

A jen pro jistotu opakuji: snažím se být demokratický - a komentáře až na nějaké vyložené úlety nemažu, i když třeba s nimi nesouhlasím, takže to prosím ber v potaz a zkus být i trochu objektivní.

radekc

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců