Zaujímavé programovacie jazyky pre rok 2019 rubrika: Programování: Jiné

10 xxar3s
položil/-a 18.6. 14:05
 
upravil/-a 1.7. 16:35

Na aké zaujímavé programovacie jazyky ste v poslednej dobe narazili a naučili, alebo máte v pláne sa ich naučiť? A čím vás zaujali? Ja na nové jazyky nemám veľa času, ale rád by som si vybral aspoň jeden, ktorému by som ho venoval a ktorý by ma niečo nové naučil.
Mňa zaujala:

https://crystal-lang.org/ - malo by to byť rýchle ako C (pochybujem) a syntax inšpirovaná ruby
https://iolanguage.org/ - zaujímavý jazyk so zaujímavou syntaxou na ktorom ma zaujal hlavne prototypové OOP – z tých jazykov ma zaujal asi najviac
https://julialang.org/ - rýchly a efektívny dynamický jazyk na vedecko technické účely a výpočty
https://nim-lang.org/ - niečo podobné ako julia

Za mňa je teraz najzaujímavejší ten IO lebo ten má zaujímavý objektový model. A zase je to niečo čo by mi rozšírilo obzory.
Jazyky ako Rust, Haskell, Elixir, Elm či Purescript sem dávať nebudem lebo tie už asi všetci dobre poznáme.

Edit. Zaujímavé jazyky z tejto témy:

  • Eiffel (pudr) - Objektový jazyk (štandardizovaný ISO) s pascalu podobnou syntaxou a s veľa zaujímavými nápadmi ako design by contract, podporuje viacnásobnú dedičnosť, ale má aj rôzne zvlášnosti napr. v potomkovi umožňuje skryť membery predka
  • Eta (Občan) - jzayk inšpirovaný haskellom nad JVM
  • LISP (Kit) - klasika ktorá má čo ponúknuť aj dnes (multiparadigamtický jazyk, ktorý ale položil základy funkcionálneho programovania), skoro dokonalý jazyk (až na tú syntax ktorá nemusí každému vyhovovať)
  • Ocaml (pudr) - multiparadigmatický jazyk, ktorý uprednostňuje funkcionálnu paradigmu. Oproti jazykom ako haskell je použitelnejší v praxi a má veľmi bohatú a košatú syntax, je to také C++ medzi funkcionálnymi jazykmi. Starší brat jazyka F# (F# má jednoduchšiu syntax a pár vylepšení, ale aj nedostatkov nemá napríklad funktory zato sa dá kompilovať do JS, alebo erlangovského BEAM VM).
  • Reason (pudr) - jazyk od facebooku inšpirovaný OCAML s C like syntaxou určený na písanie reactových aplikácií (podporuje JSX) je napísaný v OCAML a kompiluje sa do JS
  • Typescript (siq) - JSko s typovou kontrolou. nevýhoda je že tá typová kontrola sa správa ako nechcené dieťa a je do JS doslova prilepená... Iné bežné jazyky majú kombináciu statickej a dynamickej typovej kontroly u TS je to len statická a je to tam cítiť. Za behu si neviem zistiť ani typ premennnej.
  • The V Programming Language - low level jazyk transpilujúci sa do C / C++
  • Q-sharp - jazyk určený pre vyjadrovanie algoritmov spustiteľných na kvantovom processore
  • Vala - OOP jazyk (inšpirovaný C#) transpiluje sa do C a odtiaľ do natívneho kódu. takže nevyžaduje .NET / Mono

Komentáře

  • harrison314 : jazyky ktore maju priradenie cez := uz radsej nie.... 14.6. 10:28
  • xxar3s : To smalltalkovské / algolovské priradenie sa ani mne nepáči, ale nepovažujem to zase za nejaký veľký problém. Ten jazyk je po sémantickej stránke ozaj zaujímavý. 14.6. 10:59
  • rmaslo : Já to pochopil tak, že přiřazení je "=", když je to ":=" tak je to i s "deklarací" což by mě nevadilo (lepší než psát var a mám rád pokud to upozorní při přiřazení do nedeklarováne). Spíš mi vadí volání metod přes "mezera". Ale to všechno jsou spíš detaily syntaxe. Co mne zaujalo je "bez klíčových slov" a třeba if je vlastně funkce. To je koncept, který se mi jeden čas hodně líbil, ale dnes si už tak nejsem jist jestli bych ho v praxi využil. 16.6. 1:07
  • xxar3s : rmaslo: funckcia IF namiesto keywordu vyzerá ako elegantný nápad, má to však jednu veľkú nevýhodu. Nedá sa použiť pri tail rekurzii, lebo funkcia if sa stane koncovým volaním. A tým padom sa z tail rekurzie stane obyčajná rekuriza ktorá sa nedá optimalizovať. 17.6. 13:30
  • rastakayakwana : go 10.7. 20:43
odkaz
4 pudr
odpověděl/-a 20.6. 15:20
 
upravil/-a 2.7. 14:29

Tak já doplním anebo upřesním jen ten tvůj sumář.

OCaml -- se kompiluje do JS pomocí bukle-scriptu; Dělá to Bloomberg, takže to je opravdu vyladěné. Není tedy problém použít OCaml na backendu i frontendu. Dokonce co se týká webu je na frontendu i mnohem snazší s ním začít. Reason totoiž používá buckle-script a má navíc pěkné napojení na React a state managment je tam skoro na 20 řádků (ala redux) -- Reason je jen syntaktický cukr nad OCamlem -- ani bych ho nebral jako něco jinýho. V produkci má OCaml např. Bloomberg, Issue, Jane Street -- maj i tech blogy, jak to maj nasazený.

F# -- Kdo už používá .NET, tak asi sáhne po tom. Plusem je třeba možnost použít ASP.NET (Giraffe) na backend. Má oproti OCamlu i pár vychytávek (type providers) a frontend je taky vyřešený (Fable a Elmish). Nemá naopak generické moduly aka funktor. Ale dá se s ním různě hrát -- má zase rozhraní a třídy. Z top firem znám Jet a Tachyus.

Ada 2012+ -- Má design by contract, generika; dialekt SPARK se dá dokonce verifikovat; Něčím je to podobný Eiffelu, ale víc ukecaný.

Eiffel -- Když už nic, tak si přečti nějakou knihu od autora -- B. Meyera; jeho knihy o OOP jsou jedny z nejlepších co byly napsány.

Smalltalk -- dnes zejména Pharo; naprosto použitelný prostředí; oproti Eiffelu i dostupný (Eiffel je dost navázenej na jejich studio)

Common Lisp -- v produkci například u Grammarly tech.grammarly.com/blog/running-lisp-in-production

Pokud chceš něco alieního jako Lisp zkus naopak něco jako Forth nebo Factor -- co jsou konkatenativní jazyky.

Pokud něco systémovýho, funkcionálního a verifikovatelnýho, tak ATS anebo Idris či FStar

A nakonec, pro Haskell/Python nadšence s úletem na node based systémy -- Luna: luna-lang.org

A nakonec nakonec, Jai od mého oblíbeného autora her -- odpůrce sociálně-destruktivních projektů jako WoWko :) github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md Ukázky na youtube viz Jonathan Blow

A nakonec nakonec, nakonec pro otrlé logiky https://www.mercurylang.org/

Komentáře

  • Taco : Ta Luna je drsná! 21.6. 0:10
  • xxar3s : Vďaka za doplňujúce info. a inšpiráciu. 25.6. 8:58

Pro zobrazení všech 7 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.