V Delphi se i dnes stále píší aktuálně používané programy a to i zde v Česku. Když jsem spustil Lazarus, dýchla na mne atmosféra roku 1998, zkusil jsem si v tom navrhnout jednoduchý formulář a za 5 minut je hotovo. Nevím, v čem jiném dělat gui appky pro widle / llinux.
V čem dnes dělat moderní gui appky? Rychle, efektivně, použitelně?
No tak třeba rozumný vzhled. Je to jistě věcí vkusu každého, ale šedá tlačítka styl windows 95 už dnes nemusí vyhovovat. Viděl jsem pěkné nativní desktopové programy napsané v nějakém frameworku v C# (.NET) a vypadají pěkně a současně jsou velmi použitelné.
Delphi / Lazarus se hodí pro takový ten "úřednický" vzhled formulářů, pro účetnictví, skladové hospodářství a tak podobně.
Já bych viděl jako důležitou možnost stavět na předchozích řešeních, tedy třeba použít ten formulář jako základní kámen pro vytvoření nového (třeba i přes dědičnost). Zásadní je třeba i možnost prohledat VŠECHNY soubory projektu na výskyt řetezce, je jen ty *.pas nebo *.cpp. Výhoda těchto nástrojů (Deplhi, Lazarus, C++ Builder) je určitě v dlouhověkosti vytvořených aplikací - mám jeden program v C++ Builderu, který běží beze změny od roku 2005. Jak budou fungovat za 15 let programy založené třeba na .NET?
No fajn, tak teď máme všespásné lambdy, než přijde další generace ekšpertů, řekne, že lambdy jsou bordel, a navrhne něco jiného lepšího. A tak ad infinitum.
Nehledě na to, že ty zmíněné jazyky podle původní definice OOP jsou a Julia má navíc HKT a multi-dispatch (díky čemuž generuje rychlejší kód než Rust).
Očividně jsi nepochopil, co jsem chtěl původně říci - post-OOP znamená, že OOP už není vnímáno jako všespásné řešení, nýbrž jako jeden z mnoha prostředků vedoucích k čitelnému a spravovatelnému kódu. Jaký smysl má bourat jednu modlu a stavět si jinou (třeba lambdu)?
Nehledě na to, že ty zmíněné jazyky podle původní definice OOP jsou a Julia má navíc HKT a multi-dispatch (díky čemuž generuje rychlejší kód než Rust).;
Dost chabý flamebait. První věta je klasický "no true scotsman" a ta druhá je legrační - ukaž rozumné benchmarky. Posledně jsi tvrdil, že Go má rychlejší gRPC, což zjevně není pravda a když jsem koukal, co postoval uetoyo k Julii, tak to bylo "nastuduj si assembler, který Julia generuje a pusť se do optimalizace". Sorry, ale nebudu dělat flame o Rustu pod článkem o Pascalu, takže tímto končím. ;)
11. 1. 2022, 11:04 editováno autorem komentáře
V pohodě. Teď by mě zajímalo, zda si myslíš, že ty algoritmy jsou zásadně pomalejší v Rustu oproti C++ (Julii nechme stranou, protože tam se ten výpočet optimalizuje zřejmě po jiné trase) a nedá se s tím rozumně hnout nebo jestli je to věc, která holt teď nemá prioritu a dojde na ni. Za předpokladu, že máš pravdu (klidně věřím - neumím rychle ověřit).
Některé faktory způsobující tu relativní pomalost jsou systémové. Hnout se s tím dá snadno, prostě se to napíše v unsafe. Nakolik to je “rozumně hnout” je otázka, nemám nic proti unsafe ve standardní knihovně, ale v uživatelském kódu se mi nelíbí. To není nic proti Rustu, ty algoritmy jsou relativně pomalé i třeba v Go (částečně z jiných důvodů), spíš je příjemným překvapením, jak efektivní kód umožňuje multidispatch Julie (taky jsem ale narazil na případ, kdy kód nejde jednoduše napsat jako typově stabilní, tam to pak možná taky bude drhnout).
Taky má “silnou pozici” v simulacích, jeho céplusplusová reinkarnace ostatně pochází ze Simuly. Smalltalkovské pojetí OOP má silnou pozici pořád skoro ve všech obecných jazycích. Nepatřičně působí OOP jen v jiných paradigmatech, třeba když IBM vydalo OO Prolog, tam to je úlet. I v tom Fortranu působí přirozeně. A zmíněná Julia má plný subtyping včetně HKT a typové variance.