Curry-Howard Isomorphism, the relationship between types and logic, wow.
A lot of times, I find things and want to share with others. Sometimes the audience is not appropriate so here I can share and shout into OBLIVION!
I was less busy Monday so I decided to read into programming languages. Here is an article that’s pretty good on new languages and concurrency.
This is really nice for learning new languages, syntax, and paradigms. If you don’t know a language yet, this might be a bit fast, and would look at more step-by-step tutorials.
First here are three I think are neat.
Kotlin, Java-like improvement by JetBrains.
Kotlin in particular looks really cool. Null safety reducing Java’s NullPointerExceptions? Less boilerplate (though Java Lombok is awesome)?. Val, var, type inference, operator overloading, function extensions, functional programming, and usability with Java make it seem really nice. It really feels like an improvement on Java without being a new language with no maturity.
Types are honestly one of my favorite features.
OCaml and ReasonML
A l g e b r a i c D a t a T y p e s.
More languages would be too much time to talk about, but Go, Rust, Clojure, others I forget would be cool to talk about. Concurrency modeling is a new thing that people still try to tack. LLVM makes making programming languages nice too.
Different Programming Language Paradigm Chart. SML is an ML language like OCaml.
UW CSE has good programming language resources. Applied undergrad that goes through four paradigms and Graduate Theory that goes more in depth and has proof checking are interesting to read. I’ve skimmed them and totally don’t know a lot but I found it pretty cool reading and skimming these resources. The Curry-Howard Isomorphism equivalence between constructive logic and type theory blew my mind.
Java for Everything
Thanks for listening! Programming Languages and theory are interesting, but probably aren’t that useful. I think maturity and safety are most useful, and use the right tool for the job. A lot of programming is Google and Documentation, which happens with mature languages. But it useful to know more paradigms and perhaps add those to your style, becoming safer and more effective as a programmer.Post by: Brian T. Liao