I'm becoming increasingly convinced that the way forward in software engineering isn't "better" languages like Haskell or Clojure, but with better tooling.
I think Carmack's talk shed light on the fact that as humans we have very limited cognitive capacities when it comes to programming and "smarter" languages help us a bit, but we need automated, "smart" tools - like static analysis tools.
I think of Visual Studio and Resharper and how much ReSharper finds that I can learn from and how it frees me to concentrate on business logic.
Years ago I remember reading an article or an interview with a Sun research scientist where she described programming of the future where languages and tools will be much more lenient of your mistakes and programming will be much more of a two-way conversation with your tooling.
That and tools like language work benches are the only ways I see to go forward. Everybody using Haskell is just a modest (if that) step forward.
programming will be much more of a two-way conversation with your tooling.
Do you have any experience programming in Haskell? I ask because this statement exactly describes my experience with it. The language goes extremely far down the path of "static analysis" with its type system. Couple this with simple tools such as ghci, flymake and haskell-mode for emacs and you have a very interactive system with an enormous amount of feedback.
Better languages _are_ better tooling. To make it more concrete: Thanks to the difference in languages, ghc can do much more static analysis than gcc. More refactoring support would also be possible, even if that's not done in practice for Haskell, yet. HLint is nice to toy around with, though.
I think Carmack's talk shed light on the fact that as humans we have very limited cognitive capacities when it comes to programming and "smarter" languages help us a bit, but we need automated, "smart" tools - like static analysis tools.
I think of Visual Studio and Resharper and how much ReSharper finds that I can learn from and how it frees me to concentrate on business logic.
Years ago I remember reading an article or an interview with a Sun research scientist where she described programming of the future where languages and tools will be much more lenient of your mistakes and programming will be much more of a two-way conversation with your tooling.
That and tools like language work benches are the only ways I see to go forward. Everybody using Haskell is just a modest (if that) step forward.