Delphi 10.1 Berlin

vložil Radek Červinka 19. dubna 2016 22:36

Get It

Nová verze Delphi (resp. RAD Studio) je dostupná. Co je nového? Detailní přehled na wiki Embt, já se zastavím jen nad několik poznatky. Po velmi vydařené Seattle je Berlin spíše evoluce a potěší hlavně mobilní vývojáře.

Nová verze primárně mění instalaci. Po stažení malého balíku máte okamžitě minimální IDE

Instalátor

Základní instalace je hotová kolem 1 minuty, výsledkem je IDE podle všeho jen s ořezanou verzi Win32, následně se zobrazí Platform Selection, kde si vyberete co chcete za platformy a v dalším kroku zda chcete help, dema atd. Kdykoliv v budoucnosti se dá tento wizard znovu spustit a doinstalovat další. Předpokládám, že pomocí toho budou distribuovány další budoucí platformy. Jádrem je Get It známý z předchozí verze.

Jestli budete z nové verze nadšeni, závisí na tom, zda používáte VCL nebo mobilní vývoj. Na rovinu říkám, že v prvním případě číslo verze přesně odpovídá počtu novinek (vyjma pro mne výrazného ALE, ke kterému se dostanu), v druhém případě je to výrazně lepší.

Takže v případě mobilního vývoje oceníte Android 6.0, možná i FireUI Live Preview (na připojeném zařízení dokáže IDE okamžitě zobrazovat změny v designeru), lepší podpora pro Accelerators ve FMX, případně TAddressBook komponentu, která na mobilech zpřístupňuje adresář mobilu.

Vylepšena byla podpora FireDAC ve všech možných DB, zlepšena podpora Azure, vylepšena podpora Bluetooth pro různá zařízení.

Ohledně IDE: přidán Floating Form Designer i pro FMX, výrazné vylepšení debuggeru pro Android i iOS (včetně CPU View).

No a dostáváme se ke změnám k RTL a kompilátoru a pomalu se propracováván k tomu, proč jsem naštvaný (to je to ALE).

Podpora regulárních výrazů byla optimalizována, byla přidána třída TBufferedFileStream. HTTP Client nyní podporuje gzip odpověď. Zrychlena kompilace jednotek s generiky.

Kompilátor nyní podporuje pro všechny platformy atributy

  • unsafe
  • volatile
  • weak

Detaily Weak_References.

Všechny platformy mají opět typy UTF8String a RawByteString (včetně iOS, Androidu). K tomu snad jen to, že XE3 - XE10 nemající tyto typy byl mega fail. Společně s řetězci od nuly to pokládám za 2 ze 3 kardinálních omylů EMBT (o třetím se dozvíte tak do minuty - podle mne). I když, u těch řetězců to vzdáleně chápu (kompatibilita rozhraní s .NET), i vlastně ten pokus o zrušení AnsiStringu nějak chápu (zjednodušení RTL atd). Každopádně se tím dále nemusíme zabývat, pro starší verze použijte unit Byte-Strings for Delphi mobile compilers. Opravdu mne ale štve, že od prvního okamžiku odstranění těchto typů se proti tomu zvedla vlna odporu, a někteří (včetně mne) navrhovali aspoň zachovat RawByteString, což bylo ignorováno.

No a nakonec malá citace z oficiálního What's new: To enforce visibility semantics, class and record helpers cannot access private members of the classes or records that they extend.

Podle mne změnit chování něčeho, co je používáno cca 10 let (od D2007), je to všeobecně známo, bylo doporučováno jako bezpečná cesta jak opravovat chyby v cizím kódu a navíc je to bezpečné a type safe - jak bych to řekl korektně po napočítání do sta: diskutabilní. Tato vlastnost je obecně využívána jak programátory, tak vývojáři 3rd komponent jako jednoduchá a bezpečná varianta jak odstranit sračky v cizím kódu, i vzhledem k tomu, že spousta autorů komponent (případně přímo VCL, RTL, FMX) svou stupiditou používá přístupu k private položkách v rámci jednotky. No, takže pokud Váš program nepůjde přeložit ve verzi 10.1, je to z velkou pravděpodobností z tohoto důvodu, protože někdo rádoby chytrý si myslí, že vyšší principy čistoty jsou nade vše.

Dobrá práce.

P.S.: Pořád si myslím, že autor komponent by měl klíčové slovo private zapomenout.

P.S.2: Na četné dotazy: nabízím školení a workshopy Delphi na různá témata, primárně ve Vaší firmě. Pro dotazy prosím radekc@delphi.cz

Tagy:

Recenze

Komentáře

20.4.2016 10:51:15 #

JaroB.

Není mi jen jasné, jestli je to nová verze, která bude ležet vedle stávající Seattle, tj. jako doposud, nebo je to upgrade verze stávající (vzhledem tomu co psal Cantu, že sníží počet vydávaných verzí...)

JaroB.

20.4.2016 11:10:44 #

radekc

Nova verze - soucasne pouzitelna se seattle

radekc

22.4.2016 15:55:13 #

MartyK

Jo, trpělivost je hezká vlastnost, ale soudruzi z EMBT mě ji už vytloukli z hlavy. Poslední použitelná verze Builderu byla XE8. Do nebe vychvalovaná verze Seattle se nedala s novým CLANG32 kompilerem použít, ale verze z Berlína to dotáhla do dokonalosti. Ten, kdo by chtěl vytvořit C++ package narazí dokonce na takové fajnovosti, že mu IDE při přidání existující unity do projektu ani nenačte příslušný .dcr soubor. Super, tleskám soudruhům z NDR (kde asi udělali ve verzi Berlin chybu? - kdyby to tak tušili...), jen tak dál a o předplacení dalšího Update Subscription si můžou nechat zdát. Už jsem čekal na Seattle Upd.1 bez výsledku. Teď mě přesvědčili, že si opravdu ukousli větší kus než můžou rozkousat a spolknout. Nevím, kdo je tam zodpovědný za kvalitu, ale ve standardní firmě by dostal kopačky, že by se zastavil až na Yukonu.

MartyK

22.4.2016 16:02:18 #

oxo

Tak ty helpers přišly jako rána z čistého nebe...
Co teď budu na forum.delphi.cz doporučovat k chybějícím funkcím ve VCL?

Nedivil bych se, kdyby se Embarcadero za 5 let vrátilo zpět k původním helpers, stejně jako teď k AnsiStringu. Když si vzpomenu, kolik energie bylo promrháno na chybějící AnsiStringy...

oxo

22.4.2016 16:12:11 #

radekc

marty - Seattle Upd.1 se chysta
oxo - koukni sem http://d.hatena.ne.jp/tales/20160420/1461081751
pripadne to jde pres RTTI

  Method := TRttiContext.Create.GetType(TBaseObjectx).GetMethod('nazevfunkce');
  Method.Invoke(Base, []);

A nebylo to z cisteho nebe - byl to mesicni boj, kteri testeri prohrali. Jinak mam stejny nazor, jen si myslim, ze to treba vrati v update.

radekc

22.4.2016 16:50:29 #

MartyK

Radku,
asi překlep, nebo ne? Seattle Upd1 už vyšel na podzim 2015. Myslel jsi Update Berlína? To je nějak brzy, vdyť vyšel před 2 dny...

MartyK

22.4.2016 17:09:02 #

radekc

Preklep to je, ale chystaji se backportovat nektere opravy z Berlina na Seattle v nejakem update

radekc

22.4.2016 17:23:59 #

oxo

Tak čím dřív, tím líp.

PS: Když už šahali na helpery, tak jsem zvědavý, jestli konečně přidali nefungující record helper inheritance. Už od D2007 je v dokumentaci, že to má fungovat... V "What's New" o tom nepíšou. (I když to vlastně zjistím sám, co nejdřív si Berlin stejně musím nainstalovat.)
(Teď to zrovna řeším v FPC mode Delphi, protože tam to taky po vzoru Delphi zakázali, pro mode ObjFPC to funguje.)

oxo

25.4.2016 9:43:10 #

JaroB

...backportovat... to ovšem může znamenat, že helpers můžou propadnout níž bez vedlejšího efektu :(

JaroB

25.4.2016 9:51:13 #

radekc

Spise asi ne, protoze update nesmi menit rozhrani DCU.

radekc

25.4.2016 15:16:12 #

Pavel

Kam zmizel z 10.1 Ribbon? Snad připraví opravu :(

Pavel

27.4.2016 22:20:34 #

radekc

ad Ribbon: z licencnich duvodu k vuli MS to bude jako samostatny download pres GetIt

radekc

29.4.2016 9:54:26 #

JaroB

Tak pokud by někdo potřeboval v Delphi 10.1. Berlin knihovny komponent:

Aktualizované komponenty (un)DelphiX pro Berlin jsou zde http://www.micrel.cz/Dx/download/delphixsource_17.rar.

Aktualizovaná RxLibrary pro Berlin je zde http://www.micrel.cz/RxLib/files/unrxlib_275_u_1_0_17.rar.

Aktualizovaná souborová DB TinyDB pro Berlin je zde http://www.micrel.cz/delphi/download/tinydb294u.zip.

pro ostatní věcičky jak bude čas...

JaroB

11.5.2016 9:02:00 #

Tom

Zdravim.

Uvazujem o vyskusani 10.1 Berlin, ale ma to zmysel?
Ked nainstalujem Trial verziu Berlinu a uplynie 30 dni, co sa stane s aplikaciami skompilovanymi Trial verziou?

Prestanu fungovat alebo co presne sa udeje?

Tom

11.5.2016 9:32:31 #

radekc

Ad trial:
  SExpiredMsg =
  'This module was compiled with a trial version of Delphi.'+#13+#10+
  'The trial period has expired.'+#13+#10;

Což je logické chování u trial verze.

radekc

9.6.2016 11:05:29 #

bullhead

add PRIVATE, včerejší vyjádření Marca Cantu kde rozebírá jak/proč se k tomu dostali:
http://blog.marcocantu.com/blog/2016-june-closing-class-helpers-loophole.html

bullhead

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ů