Today, I'd like to introduce the six programming languages that I think interesting to try.
Haskell is a purely functional programming language with a static type system. Haskell is designed by the famous researchers in the field of programming languages. We can learn a lot of things about the theory of programming languages from its design. Haskell has many great users and great libraries.
The only problem of Haskell is it is too hard to start to use for many people. We need to learn many abstract notions from the theory of programming languages.
However, its expressive power is really great. I think Haskell is the best choice when going to implement software with entirely new concepts.
Coq is a proof assistant. It provides a language to write proofs on computers and a checker to certify its correctness. I think this field has definitely a promising future.
What I think a problem of Coq is proofs written in Coq are not intuitive. We can't intuitively express propositions and proofs of elementary mathematics that we learn in junior high school. I'm thinking that I'd like to create a language to represent proofs intuitively in future.
Erlang is very useful to implement distributed software. Actually, I'm contributing the development of LeoFS, a distributed object storage developing in RIT and writing Erlang every day from Monday to Friday. Erlang helps us to implement software with high scalability and high availability so much.
Recently, the programming language Elixer and Lisp Flavored Erlang are getting popular. These languages provide Erlang features with different syntax.
Elm is a functional reactive programming language. We can write reactive programs very easily. If you visit the following page, you'll find Elm interesting immediately.
I've played with it by tring to enable Mario to jump higher, to jump multiple times, to walk faster and so on. It's purely interesting!
Viscuit is a visual programming language. An interesting point of Viscuit is it really has a completely different paradigm as a visual programming language. What we do for Viscuit programming is only to draw pictures. We draw two pictures to describes how figures changes in the next moment on the board. The figures in the first picture changes to the figures in the second picture in the next moment.
We can view many video demonstrations. You can quickly get the concept of Viscuit if you see one of them.
Egison is the programming language that I've been developing. With Egison, we can directly represent pattern-matching against lists, multisets, sets, trees, graphs and so on. I hope this language's feature become a standard feature that all languages provide.
Please check the following online demonstrations.