Ostrava je prdel!!!
3 programovací jazyky budoucnosti
Barcamp Ostrava 2013
Disclaimer I
- Nikdo neumí předvídat budoucnost
- Programátoři jsou líní
- Hlavně se z toho neposrat
Disclaimer II
- Statické ✕ dynamické typování
- Čisté ✕ hybridní jazyky
Context
Pravěk
Fortran, o rok později LISP, nakonec "vyhrává" C
(ve stejné době vzniká Prolog)
Context
70. - 80. léta
C++, ML, standardizace komunit
Context
Poslední dvě (a něco) dekády
Java, intepretry, DSL, "návrat" funkcionálního programování
2005 - 2007 - 2009
RabbitMQ - CouchDB - Riak
Erlang
Features
Přednáška není ani tak o konkrétních jazycích
Je o jejich specifických vlastnostech
Cast
- Elixir
- Julia
-
LiveScript
-
a pár dalších
Elixir
... functional, concurrent, general-purpose programming language built atop the Erlang Virtual Machine (BEAM)
Features
- Erlang (pattern matching, OTP)
- Ruby-like syntaxe
- Protokoly
- Metaprogramování, DSLka
Hello World
Hello World - result
Pattern matching
Pattern matching - result
Protocols
Custom protocol
Homoiconicity
Why
Síla Erlangu obalená přívětivější syntaxí, makry a protokoly
More info
Julia
... a high-level dynamic programming language designed to address the requirements of high-performance numerical and scientific computing while also being effective for general purpose programming
Features
- lépe dokumentovaná náhrada R
- provázanost na ostatní jazyky
- inspirace LISPy
- JIT
IJulia
Methods
Methods - result
Why
Numerické a vědecké výpočty často rychlejší než v C/Fortranu, přehledný typový systém, rozšířitelnost
More info
LiveScript
... adds many features to assist in functional style programming, it also has many improvements for object oriented and imperative programming
Features
- ovlivněn Haskellem/F#
- čistá, funkcionální syntax
- prelude.ls
Functions everywhere
Composition
Why
Trochu kočkopes, dá se očekávat větší příklon k funkcionálním vlastnostem
More info
Honorable mentions
Clojure
Clojure
Dialekt LISPu nad JVM
Honorable mentions
Nimrod
A new statically typed, compiled programming language which supports metaprogramming
Thanks
wow such endorsement
DBgJe1CMSF1xLtvtLiN9yLyonMykhQxLN1