Výběr vhodného OOP jazyka

Karel

Re:Výběr vhodného OOP jazyka
« Odpověď #45 kdy: 01. 06. 2018, 12:16:16 »
...
Podobnou křivku jsem absolvoval i u prachsprostého LISPu s makry a u FORTHu s kompilujícími a stavově citlivými slovy. Nejdřív člověk nechápe, pak to pochopí, pak to začne sázet všude, kde je to jen trochu možné, pak zjišťuje, že je to dvojsečná zbraň, a nakonec se snaží vymýšlet elegantní řešení tak, aby to pokud možno nebylo nutné příliš používat.

To platí univerzálně, nejen ve světě IT. Kolega z USA, původní profesí armádní pilot, to popisoval takhle:

Dobrý pilot zná plno triků, jak udržet letadlo pod kontrolou.
Špičkový pilot je zná taky, ale snaží se lítat tak, aby je nepotřeboval.


Phi

Re:Výběr vhodného OOP jazyka
« Odpověď #46 kdy: 01. 06. 2018, 12:48:56 »
Doporučuju sledovat vývoj jazyků postavených na jvm (Clojure, Groovy, Kotlin, Scala).
Groovy je tu co já pamatuji a pořád je obskurita, která občas vypadne ze skříně. To bych spíš věřil na Kotlin (nebo nějakou konvergenci Javy ke Kotlinu) a na Scalu.
Co ten Rust, proč zrovna ten by měl být budoucnost? Jen se ptám.

Inkvizitor

Re:Výběr vhodného OOP jazyka
« Odpověď #47 kdy: 01. 06. 2018, 13:14:04 »
Co ten Rust, proč zrovna ten by měl být budoucnost? Jen se ptám.

0. Asi to nikdy nebude jazyk pro všechny a pro všechno. A jeho autoři ho berou jako cestu dopředu, ne ultimátní řešení na věčné časy.

1. Tlačí se na místo C a C++, kompiluje blízko železu, má "beznákladové abstrakce". Spousta lidí tohle chce nebo potřebuje a spousta holt ne.

2. Má propracovaný typový systém, který pomáhá snižovat chybovost.

3. Má dobrou komunitu nadšených a chytrých lidí.

4. Má dost dobrý ekosystém (cargo atd.).

5. Má za sebou poměrně velkou firmu, která ho používá v reálném produktu.

6. Hodně se pracuje na tom, aby se snížila vstupní bariéra pro začátečníky, byť je to jazyk v lecčems složitější než spousta jiných.

7. Má makra, která jsou k něčemu. Viz třeba println!, které v době kompilace řeší, kolik a jakých parametrů člověk tiskne, namísto toho, aby ho to vyškolilo při běhu.

8. Vývoj jazyka jde opravdu rychle dopředu. Ale spousta věcí, než jde do stabilní verze, čeká "na dopečení" v nightly.

9. Používá dost vlastností funkcionálních jazyků (pattern matching, obsluha chyb), ale bez extrémů typu haskellovských monád.

10. Existuje dost hezkých utilitek (třeba skvělý ripgrep), jejichž kód je radost číst. Některé svoje pythonovské skriptíky jsem převedl do Rustu a jsou jenom o něco málo pracnější než originály v Pythonu. A existuje spousta dost zajímavých věcí k hraní - v oblasti sítí atd. Rust je sexy.

Onestone

Re:Výběr vhodného OOP jazyka
« Odpověď #48 kdy: 01. 06. 2018, 13:15:47 »
Objektivně? Asi Java, jsou v tom peníze, má to knuhovny a JVM je super.
Subjektivně? Kdybych se chtěl naučit OOP a bavit se u toho, tak SmallTalk (Pharo).
Kdybych si chtěl vyvíjet rychlý aplikace a "psát obyčejnej kód" tak základy Ruby a pak Crystal. Možná Rust.
A kdybych se chtěl OOP naučit jen tak náhodou, protože to vlastně není zas tak hrozně důležitý, tak Python.
A teprve potom bych si troufl na JS, s tím, že bych se cestou naučil ještě Scheme.
OOP není jen Java nebo C++, i takové Go je OO.

Re:Výběr vhodného OOP jazyka
« Odpověď #49 kdy: 01. 06. 2018, 13:16:48 »
Groovy je tu co já pamatuji a pořád je obskurita, která občas vypadne ze skříně.

Neprijde mi. Diky Spocku jsem v nem videl napsanych hodne testu.


Re:Výběr vhodného OOP jazyka
« Odpověď #50 kdy: 01. 06. 2018, 13:56:16 »
(...)
9. Používá dost vlastností funkcionálních jazyků (pattern matching, obsluha chyb), ale bez extrémů typu haskellovských monád.
(...)

Můžu se zeptat, v čem jsou haskellovské monády extrémní? :)

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Výběr vhodného OOP jazyka
« Odpověď #51 kdy: 01. 06. 2018, 14:01:23 »
Objektivně? Asi Java, jsou v tom peníze, má to knuhovny a JVM je super.
Subjektivně? Kdybych se chtěl naučit OOP a bavit se u toho, tak SmallTalk (Pharo).
Kdybych si chtěl vyvíjet rychlý aplikace a "psát obyčejnej kód" tak základy Ruby a pak Crystal. Možná Rust.
A kdybych se chtěl OOP naučit jen tak náhodou, protože to vlastně není zas tak hrozně důležitý, tak Python.
A teprve potom bych si troufl na JS, s tím, že bych se cestou naučil ještě Scheme.

má smysl učit se mrtvé jazyky?

Inkvizitor

Re:Výběr vhodného OOP jazyka
« Odpověď #52 kdy: 01. 06. 2018, 14:08:40 »
(...)
9. Používá dost vlastností funkcionálních jazyků (pattern matching, obsluha chyb), ale bez extrémů typu haskellovských monád.
(...)

Můžu se zeptat, v čem jsou haskellovské monády extrémní? :)

Můžeš, ale podle mě to víš. Jde zejména o IO monádu, která z čistě funkcionálního jazyka dělá něco, co umí komunikovat s vnějším světem.

Akiz

Re:Výběr vhodného OOP jazyka
« Odpověď #53 kdy: 01. 06. 2018, 14:34:33 »
má smysl učit se mrtvé jazyky?

Má, nehledě na to, že SmallTalk díky PHARO mrtvý není, v žádném případě.

Stejně tak má smysl se učit řemeslo na věcech, které nikdy neprodáte.
Budete mít základy a pak vás toho moc nepřekvapí.
Naopak se budete podivovat, proč jsou nejpopulárnější ty jazyky, které jsou :-).

uuuuuuuu

Re:Výběr vhodného OOP jazyka
« Odpověď #54 kdy: 01. 06. 2018, 14:42:21 »
má smysl učit se mrtvé jazyky?

Má, nehledě na to, že SmallTalk díky PHARO mrtvý není, v žádném případě.

Stejně tak má smysl se učit řemeslo na věcech, které nikdy neprodáte.
Budete mít základy a pak vás toho moc nepřekvapí.
Naopak se budete podivovat, proč jsou nejpopulárnější ty jazyky, které jsou :-).

Nektere mrtve technologie maji podobnou krasu jako parni masinky.

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Výběr vhodného OOP jazyka
« Odpověď #55 kdy: 01. 06. 2018, 15:03:28 »
má smysl učit se mrtvé jazyky?

Má, nehledě na to, že SmallTalk díky PHARO mrtvý není, v žádném případě.

Stejně tak má smysl se učit řemeslo na věcech, které nikdy neprodáte.
Budete mít základy a pak vás toho moc nepřekvapí.
Naopak se budete podivovat, proč jsou nejpopulárnější ty jazyky, které jsou :-).

Co je na Smalltalku a Scheme tak skvělého oproti moderním jazykům?

Re:Výběr vhodného OOP jazyka
« Odpověď #56 kdy: 01. 06. 2018, 15:31:36 »
(...)
9. Používá dost vlastností funkcionálních jazyků (pattern matching, obsluha chyb), ale bez extrémů typu haskellovských monád.
(...)

Můžu se zeptat, v čem jsou haskellovské monády extrémní? :)

Můžeš, ale podle mě to víš. Jde zejména o IO monádu, která z čistě funkcionálního jazyka dělá něco, co umí komunikovat s vnějším světem.

A co je na ní extrémního? Zrovna IO monáda je celkem zajímavý a pěkný koncept, kdy člověk pak víc uvažuje nad kódem (ve smyslu, je tady opravdu nutná?, apod.), ale chápu, že toto bude asi dost individuální. :) Především k čemu by byl takový jazyk, který neumí komunikovat s vnějším světem?

Re:Výběr vhodného OOP jazyka
« Odpověď #57 kdy: 01. 06. 2018, 15:34:33 »
má smysl učit se mrtvé jazyky?

Má smysl učit se latinu? (i když ani ta není zas tak mrtvá) Asi hodně záleží který konkrétní jazyk, protože často se i studiem toho, co bylo, člověk spoustu naučí i ve vztahu k tomu, co je nebo bude. :)

Inkvizitor

Re:Výběr vhodného OOP jazyka
« Odpověď #58 kdy: 01. 06. 2018, 15:39:58 »
(...)
9. Používá dost vlastností funkcionálních jazyků (pattern matching, obsluha chyb), ale bez extrémů typu haskellovských monád.
(...)

Můžu se zeptat, v čem jsou haskellovské monády extrémní? :)

Můžeš, ale podle mě to víš. Jde zejména o IO monádu, která z čistě funkcionálního jazyka dělá něco, co umí komunikovat s vnějším světem.

A co je na ní extrémního? Zrovna IO monáda je celkem zajímavý a pěkný koncept, kdy člověk pak víc uvažuje nad kódem (ve smyslu, je tady opravdu nutná?, apod.), ale chápu, že toto bude asi dost individuální. :) Především k čemu by byl takový jazyk, který neumí komunikovat s vnějším světem?

Úplně se argumentačně míjíme. Otázka zněla, zda se má Rust šanci masověji prosadit a proč. Já jsem psal důvody, proč myslím, že má reálnou šanci. Zároveň mám určitý názor na masovou prosaditelnost Haskellu a tomu šanci moc nedávám, bez ohledu na to, zda IO monad považuju za dobrý nápad. Dál se v tom vrtat nebudu, promiň.

Re:Výběr vhodného OOP jazyka
« Odpověď #59 kdy: 01. 06. 2018, 16:02:15 »
(...)
9. Používá dost vlastností funkcionálních jazyků (pattern matching, obsluha chyb), ale bez extrémů typu haskellovských monád.
(...)

Můžu se zeptat, v čem jsou haskellovské monády extrémní? :)

Můžeš, ale podle mě to víš. Jde zejména o IO monádu, která z čistě funkcionálního jazyka dělá něco, co umí komunikovat s vnějším světem.

A co je na ní extrémního? Zrovna IO monáda je celkem zajímavý a pěkný koncept, kdy člověk pak víc uvažuje nad kódem (ve smyslu, je tady opravdu nutná?, apod.), ale chápu, že toto bude asi dost individuální. :) Především k čemu by byl takový jazyk, který neumí komunikovat s vnějším světem?

Úplně se argumentačně míjíme. Otázka zněla, zda se má Rust šanci masověji prosadit a proč. Já jsem psal důvody, proč myslím, že má reálnou šanci. Zároveň mám určitý názor na masovou prosaditelnost Haskellu a tomu šanci moc nedávám, bez ohledu na to, zda IO monad považuju za dobrý nápad. Dál se v tom vrtat nebudu, promiň.

Ne, otázka zněla, co je extrémního na monádách v Haskellu, takže se opravdu trochu míjíme. ;) Masová prosaditelnost Haskellu je věc úplně odlišná a tam se pravděpodobně shodneme, ale na to jsem se neptal.