There’s a pre-holidays thread on LtU, What will programming look like in 2020. Lot of great responses there. Some, that I agree with, some, that I don’t. This post is my personal wishlist for what proramming could look like in 2020.
It is already in the mainstream. The most used FP language in web development is functional (I’m not talking about it’s weirdness here, ofcourse). Some great ideas finally got into mainstream programmming languages: lambdas, Algebraic Data Types. Hopefully, the expansion (anamorphism) will continue and we will see haskell, ocaml and scala it tiobe’s top 20 until year 2020.
I hope, the process of code testing will soon shift towards code verification. As described in Unifying Programming and Math – The Dependent Type Revolution, mathematics is currently going towards programming. Hopefully, this ideas will start to shape in the programming world as well. Tools such as Agda and Coq provide a way to extract the code in haskell, ocaml, scheme and even scala from the proofs. There are cases of using those tools to write real world code (Programming a window manager with a proof assistant, here’s the: actual code). And an obligatory book link.
As described in The History of Haskell — Beeing Lazy with Class, type classes were the first experimental feature, they decided to add to the language. And it turned out to be one of the greatest. In my work I’m making use of typeclasses every day and really enjoy the way, they let you separate logic from the data type. And using scalaz-defined type classes get you tons of functions for free by defining an instance for custom type.
I haven’t developed any functional reactive systems, only read tutorials and played with elm. I really liked it and hope, that mainstream UI development will be utilizing this ideas in 2020. There’s a great talk by the elm’s creator, Evan Czaplicki, on FRP and elm from the latest Strange Loop conference.