Ask HN: What languages/tech do you want to be using in 5 years?
11 comments
I'm still going with Steve Yegge's opinion from a few years ago for the rest of this decade: JavaScript. It might have been around for ages but it's just coming into its own as a full-scale, popular language that isn't a total PITA to work with in any serious way (unlike 5-10 years ago).
I've had a good (but lucky) record with checking out languages ahead of the curve but little except JavaScript really excites me right now. For a zillion reasons (and intuition), I'm bullish on Scala, Lua, Ruby (but only if significant implementation improvements come soon or Apple more seriously backs it) and Go, neutral on Python and Haskell, and bearish on Clojure, Java and Erlang. (Feel free to quote this back to me if I get it wrong!).
I've had a good (but lucky) record with checking out languages ahead of the curve but little except JavaScript really excites me right now. For a zillion reasons (and intuition), I'm bullish on Scala, Lua, Ruby (but only if significant implementation improvements come soon or Apple more seriously backs it) and Go, neutral on Python and Haskell, and bearish on Clojure, Java and Erlang. (Feel free to quote this back to me if I get it wrong!).
The best part about Javascript is that because it's a functional language it has amazingly deep capabilities of being improved and modified through libraries. The Javascript that people write today (often reliant on prototype/jQuery, node.js, etc.) is quite different from the code that people were writing 10 years ago. The same is likely to be true in another 10 years, even if the language spec. itself doesn't change one iota.
Very true. It's also one of the only languages out there to let you inspect functions' source code, which means you can implement full-blown Lisp macros in it using eval(). Given its popularity and the runtime performance of V8, I think this makes it the ultimate language for the next decade.
It's also one of the only languages out there to let you inspect functions' source code
Got any pointers on this? I've been searching a little and unable to find this and haven't heard of this level of introspection before.
Got any pointers on this? I've been searching a little and unable to find this and haven't heard of this level of introspection before.
Well actually, I did end up writing Lisp on top of Javascript this way: http://github.com/spencertipping/caterwaul.
The basic mechanism is to call f.toString() on some function, then construct a new one the way you want it using either eval() (for non-IE browsers), or new Function(code) (for all browsers). Caterwaul leverages this by implementing a JS parser, defining a macro syntax, and letting you determine how the code gets rewritten. (So you can do things like let[x = 5] in x + 1, which is valid JS to begin with but nobody would ever use it :) )
The basic mechanism is to call f.toString() on some function, then construct a new one the way you want it using either eval() (for non-IE browsers), or new Function(code) (for all browsers). Caterwaul leverages this by implementing a JS parser, defining a macro syntax, and letting you determine how the code gets rewritten. (So you can do things like let[x = 5] in x + 1, which is valid JS to begin with but nobody would ever use it :) )
I use F# for a high-level language right now; at the rate that it’s improving, I have a hard time imagining I’ll want anything else as my main high-level software language in five years. I wish it had better support for script-y tasks, but for now I’m “stuck” with Ruby for that sort of thing [1].
I use C when I need to do low-level manipulation. D or Go might be better, and one of the two will probably be compelling in five years. I was really hoping that BitC (a low-level language with a modern type system) would take off, but development on that seems to have stalled.
For hardware, I really hope that bluespec becomes mainstream. I use it as an HDL on my spare time projects. It’s nearly as expressive as Haskell; other HDLs (Verilog and VHDL) are about as expressive as assembly language, so the advantage you by switching from a mainstream language to bluespec is much larger than the advantage you get by switching from C++ or Java to F#/Haskell/Scala.
[1] Want to do a cross-platform directory copy? You can use Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory, which doesn’t preserve permissions under Linux/Mono, or write your own function. And that’s an example of something that’s well supported.
I use C when I need to do low-level manipulation. D or Go might be better, and one of the two will probably be compelling in five years. I was really hoping that BitC (a low-level language with a modern type system) would take off, but development on that seems to have stalled.
For hardware, I really hope that bluespec becomes mainstream. I use it as an HDL on my spare time projects. It’s nearly as expressive as Haskell; other HDLs (Verilog and VHDL) are about as expressive as assembly language, so the advantage you by switching from a mainstream language to bluespec is much larger than the advantage you get by switching from C++ or Java to F#/Haskell/Scala.
[1] Want to do a cross-platform directory copy? You can use Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory, which doesn’t preserve permissions under Linux/Mono, or write your own function. And that’s an example of something that’s well supported.
A Common Lisp variant of "Lisp", ActionScript/Flash, and Android.
Android is the future of computing, Lisp is eternal, and I can't imagine a future without Flash and my beloved ActionScript 3.
Things I want to become more popular: AliceML or Mozart/Oz as LLVM style runtimes and optimizing compilers. Alice is such a beautiful and ambitious language and VM, it's unimaginable that it's not popular.
I would also love to see more pervasive use of "mathematical" and "modeling" tools: R, specially.
More generative audio/visual programming languages; Processing, Pure Data, ChucK, SuperCollider, and live-coding environments.
I want to see Arduino become to "kits" what Android is to mobile OSes.
I want Linux and the BSDs to progress.
I want on going support for my desktop OS of choice: Windows XP. I just love the damn thing.
Android is the future of computing, Lisp is eternal, and I can't imagine a future without Flash and my beloved ActionScript 3.
Things I want to become more popular: AliceML or Mozart/Oz as LLVM style runtimes and optimizing compilers. Alice is such a beautiful and ambitious language and VM, it's unimaginable that it's not popular.
I would also love to see more pervasive use of "mathematical" and "modeling" tools: R, specially.
More generative audio/visual programming languages; Processing, Pure Data, ChucK, SuperCollider, and live-coding environments.
I want to see Arduino become to "kits" what Android is to mobile OSes.
I want Linux and the BSDs to progress.
I want on going support for my desktop OS of choice: Windows XP. I just love the damn thing.
> I want to see Arduino become to "kits" what Android is to mobile OSes.
Care to expand on that one?
I want to be working with something that does to high-quality "consumer ready" end-product creation what Arduino has done to electronic prototyping. Actually, I want to be creating it. :)
Care to expand on that one?
I want to be working with something that does to high-quality "consumer ready" end-product creation what Arduino has done to electronic prototyping. Actually, I want to be creating it. :)
It's very hard to say. Ten years ago I wrote an app in C++ and thought it's the greatest language around. It's fast, close to the OS and rather interesting to work with (as opposed to VB6, at that time). Five years ago I was doing a lot of Java work. Now my latest business is completely based on C#. The programming domain is moving too fast to make serious statements about future languages. Actually, I can bet that Cobol and C++ will still be popular in 5 years.
In 5 years I'd like to be a master Pythonista. I'd say I'm moderately poor at Django and Python in general, I'd like to be able to do all kinds of whizzy things by then.
Something I am good with now, but want to explore way more and really get better. This is most likely JavaScript.
I am really hoping/expecting non blocking/async coding to go way up in popularity over the next few years. I know every modern language supports this, but I will probably start getting my feet wet by doing this in Javascript. Reason being the syntax and tools that already exist.
I am really hoping/expecting non blocking/async coding to go way up in popularity over the next few years. I know every modern language supports this, but I will probably start getting my feet wet by doing this in Javascript. Reason being the syntax and tools that already exist.
Whichever language is best for the immediate job at hand.
5 years is a long time, lots will change in 5 years.
5 years is a long time, lots will change in 5 years.
just for the heckofit, here's the github #11-22, which i figure will be in broad use in 5 yrs:
objective-C, C#, emacs lisp
actionScript, haskell, lua
scala, clojure, ASP
erlang, common Lisp, groovy
https://github.com/languages
objective-C, C#, emacs lisp
actionScript, haskell, lua
scala, clojure, ASP
erlang, common Lisp, groovy
https://github.com/languages
Emacs, Lisp (but not Emacs Lisp).
F#
Python
What tech will you want to be working with in 5 years?