421
Vývoj / Re:Náhrada PHP nebo ASP.NET Core
« kdy: 15. 02. 2021, 22:45:36 »Krom toho nad JVM je více zajímavých jazyků jako např. scala, kotlin, haskell, clojure.Haskell?
Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.
Krom toho nad JVM je více zajímavých jazyků jako např. scala, kotlin, haskell, clojure.Haskell?
Čeština nemá moc složitou gramatiku (na rozdíl od těch zmíněných polysyntetických jazyků), je zhruba na úrovni klasické latiny nebo staré řečtiny, takže víceméně průměr. Za složitou gramatikou nemusíme do Ameriky, stačí okolí Černého moře (Abcházie například).U AJ je bod zlomu u idiomů a frázových sloves. NJ nedokážu úplně posoudit, protože ji znám odmalička, ale to se španělštinou je v podstatě pravda, i když nad základní úrovní je její gramatika složitá (spousta nepravidelností, několik subjunktivů atd.). Všechny tyto jazyky ale mají ten “práh” hodně nízko ve srovnání s navažštinou nebo eskymáčtinouA když to porovnáš s Češtinou? Myslím tím tu tatarštinu kterou mluví většina Čechů.
U AJ je bod zlomu u idiomů a frázových sloves. NJ nedokážu úplně posoudit, protože ji znám odmalička, ale to se španělštinou je v podstatě pravda, i když nad základní úrovní je její gramatika složitá (spousta nepravidelností, několik subjunktivů atd.). Všechny tyto jazyky ale mají ten “práh” hodně nízko ve srovnání s navažštinou nebo eskymáčtinou
A ted to srovname s rossum.ai, ktera taji svuj cenik. Proc? Neni k tomu duvod.
JetBrains je ruska firma so sidlom v CR. Java Beans nepoznam. Nette - dobre som sa zasmial, dufam, ze to aj bolo myslene ako vtip ty spicka v PHP a webovej architekturyZial, nie je to tak. CR je rovnaka montovna ako SR, a o IT to plati stonasobne. Zahranicne korporacie prisli na to, ze tu je velmi vela schopnych ludi ktori budu robit z ich pohladu za povestnu misku ryze. Ale realny vyvoj sa tu nerobi, vsetko je len udrzba legacy sraciek, ktore im doma robit nikto nebude, resp. za ich mzdy sa im to doma udrziavat vobec nevyplati. Sikovni indovia su vsetci v USA
Myslíš třeba JetBrains? Nebo Java Beans? Nebo třeba Nette, spolu se zahraničním Symfony - špička toho, co se dá z PHP vytřískat, a špička webové architektury jako takové (IMHO).Vsetci velki hraci idu predsa na Nette, znamy fakt, taky Netflix aj FB, spicka...jasne...komplet vymyslena v CR, nic neokopirovane...nie, ja nemozem
Zial, nie je to tak. CR je rovnaka montovna ako SR, a o IT to plati stonasobne. Zahranicne korporacie prisli na to, ze tu je velmi vela schopnych ludi ktori budu robit z ich pohladu za povestnu misku ryze. Ale realny vyvoj sa tu nerobi, vsetko je len udrzba legacy sraciek, ktore im doma robit nikto nebude, resp. za ich mzdy sa im to doma udrziavat vobec nevyplati. Sikovni indovia su vsetci v USA
Asi nejlepší je očekávání, že 20 lidí začne dělat práci v pondělí a skončí přesně za 2 týdny v pátek - a když se to náhodou nedaří, tak dáme míň ticketů, a pak už se to začne dařit, a scrum master to dokázal - scrum se najednou dělá dobře...
Já v Rustu (neinicalizuji hodnoty traitu, to ani nejde) prostě udělám každé struktuře funkci new. Pokud by to nebyl v tom fiktivním jazyce (který záhadně připomíná scalu) problém, tak bych do traitu dal funkci new, z třídy "obsahující" trait bych zavolal funkci new z A a funkci new z B. Nebo něco na ten způsob.
Jak jsem tu již zmiňoval, tak v Rustu jsou traity a jejich implementace pro typ/strukturu hodně mocné.
Moc to komplikuješ, tohle je jako chtít auto s hranatýma kolama, co nedrncá.
Ale houby. Traity se tak jak je popisuju normálně používají. Takže to není můj výmysl. Jen tu @Ink uvažoval nad tím, zda to co popisuju není obyčejná dědičnost. Není. C'est tout.
No ale to bys musel fakt přijít s nějakým legitimním vysvětlením, ne že "nechceš", aby to byla dědičnost nebo aby se ten objekt zařadil do kategorie. Ty tady filosofuješ jak Fromm, na druhé straně argumentuješ, že "se to dělá". Oboje beru, ale přijde mi, že interface, trait, mixin a předek jsou do určité míry překrývající se koncepty a v zásadě abstraktní třída a násobná dědičnost to všechno úplně v pohodě řeší.
Jsou jazyky bez tříd, jako je třeba Rust se svými traity navlečenými na struktury a taky to funguje - nepotřebuješ tam skládat data a metody přes traity, něco málo by to zjednodušilo, ale žádný velký průlom v tom nevidím.
A Ty jsi přišel s tím, že chceš něco mezi a (z technického hlediska) nevidím důvod, na jedné straně číhá Fromm a na druhé jazyky, které nikdy nemají dost a přidávají další a další způsoby, jak udělat to, co už dostatečně dobře umí. Nebo něco nechápu, to je klidně možné.
Moc to komplikuješ, tohle je jako chtít auto s hranatýma kolama, co nedrncá.
Trait je zobecnění rozhraní, tak to ber tak, že to je stejná "dědičnost" jako implementace rozhraní.To nejde, ale proč by to mělo vadit?Lze dědit tak, aby potomek nebyl stejného typu jako předek?No samozřejmě. Problém je v tom, že se na to díváš z druhé strany. Já chci do objektu přidat chování a atributy, ale nechci, aby se mi tím změnil typ například. Tedy chci aby zůstalo "mít", ale nezměnilo se "být".Takže ve skutečnosti chceš násobnou dědičnost v jazyku, který ji nemá?
Usecase, které pro traity mám (a které se samozřejmě může lišit jazyk od jazyka):
Mám nějaký objekt. Chci, aby tento objekt měl určité vlastnosti. Buď tam ty vlastnosti dopíšu, nebo je "přidám" pomocí traitu (protože stejné chování jsem dělal jinde). Přičemž vlastnostmi je jak chování (vlastní nějaké metody), tak i data (vlastní nějaké atributy), tak i kategorie (objekt implementuje nějaké rozhraní). A samozřejmě nechci být omezován, takže mohu přidávat kteroukoliv z těchto tří vlastností - ne jak je to u dědičnosti.
To snad ani nebudu rozvádět.
Každopádně pokud to nejde, tak to budiž odpovědí pro @Ink
Mám nějaký objekt. Chci, aby tento objekt měl určité vlastnosti. Buď tam ty vlastnosti dopíšu, nebo je "přidám" pomocítraitu(protože stejné chování jsem dělal jinde). Přičemž vlastnostmi je jak chování (vlastní nějaké metody), tak i data (vlastní nějaké atributy), tak i kategorie (objekt implementuje nějaké rozhraní). A samozřejmě nechci být omezován, takže mohu přidávat kteroukoliv z těchto tří vlastností - ne jak je to u dědičnosti.
To nejde, ale proč by to mělo vadit?Lze dědit tak, aby potomek nebyl stejného typu jako předek?No samozřejmě. Problém je v tom, že se na to díváš z druhé strany. Já chci do objektu přidat chování a atributy, ale nechci, aby se mi tím změnil typ například. Tedy chci aby zůstalo "mít", ale nezměnilo se "být".Takže ve skutečnosti chceš násobnou dědičnost v jazyku, který ji nemá?
Usecase, které pro traity mám (a které se samozřejmě může lišit jazyk od jazyka):
Mám nějaký objekt. Chci, aby tento objekt měl určité vlastnosti. Buď tam ty vlastnosti dopíšu, nebo je "přidám" pomocí traitu (protože stejné chování jsem dělal jinde). Přičemž vlastnostmi je jak chování (vlastní nějaké metody), tak i data (vlastní nějaké atributy), tak i kategorie (objekt implementuje nějaké rozhraní). A samozřejmě nechci být omezován, takže mohu přidávat kteroukoliv z těchto tří vlastností - ne jak je to u dědičnosti.
No samozřejmě. Problém je v tom, že se na to díváš z druhé strany. Já chci do objektu přidat chování a atributy, ale nechci, aby se mi tím změnil typ například. Tedy chci aby zůstalo "mít", ale nezměnilo se "být".
Usecase, které pro traity mám (a které se samozřejmě může lišit jazyk od jazyka):
Mám nějaký objekt. Chci, aby tento objekt měl určité vlastnosti. Buď tam ty vlastnosti dopíšu, nebo je "přidám" pomocí traitu (protože stejné chování jsem dělal jinde). Přičemž vlastnostmi je jak chování (vlastní nějaké metody), tak i data (vlastní nějaké atributy), tak i kategorie (objekt implementuje nějaké rozhraní). A samozřejmě nechci být omezován, takže mohu přidávat kteroukoliv z těchto tří vlastností - ne jak je to u dědičnosti.
Takže ve skutečnosti chceš násobnou dědičnost v jazyku, který ji nemá?