Live data from Hacker News

Ask HN: what language should I learn next?

news.ycombinator.com

31–40 of 63 posts

Re: Ask HN: what language should I learn next?

#31
IO (iolanguage.com) is very cool. The Qi layer over CL (lambdassociates.org) is also worth looking at. q/kdb+ (kx.com) is very interesting, but needs a more complete toolset for a commercial product.

What if your language was nothing but macros? Factor (factorcode.org) is a fascinating example of this, and I think due in part to the project developers and the language paradigm itself, I've never seen any open project language take huge leaps in capability in such a short amount of time as as Factor has. Incredible stuff, but difficult to get into unless you can devote a large amount of contiguous time to it.

When it comes to Lisp, I don't know why it's dismissed just because there's always something wrong with one of the open projects. Just buy Allegro CL - there's something to be said for products which hold up against commercial rigor.

One addition: everybody should probably be learning Erlang.

Re: Ask HN: what language should I learn next?

#32
It's probably not worth learning another language for a web development project. You'll spend most of the time learning the syntax and the framework. Nothing which will expand your mind.

Try a functional language like Haskell, Erlang or ML. But you really need a problem to work on. A database-backed web app can easily be written in Ruby, but maybe there is a feature which requires background processing, write that in the newly learnt language.

BTW, how is your javascript?

Re: Ask HN: what language should I learn next?

#33
Concurrency and parallelism is hot these days and functional languages are superior there. Learning a different type of language will widen your horizons and once you know one functional and one OO-language then it is quite easy to learn other languages after that.

My suggestions are Clojure and Erlang. Both are made for cincurrency, have web frameworks(maybe not as good ones at rails though) and are functional. Both also run on a VM.

Learning CLojure will also expose you to JAVA and the JVM.

Re: Ask HN: what language should I learn next?

#34
post #17

Perhaps you are asking the wrong question here. Instead of learning a new programming language for web apps, maybe you ought to try programming a type of application that is new for you. I think that taking a go at something like a client-server, embedded, mobile, or desktop application would help broaden your perspective and abilities more than simply learning a new language would.

Yep. I would learn Objective C and write an iPhone app. Or I would say to heck with it and learn Lisp. Why focus on a pragmatic language for web apps? You've got that already.

Great advice, ricree and m_fish. I think this is right on. That's why I don't want to learn Python - it looks like a great language, but I already have Ruby. I've been trying C and Scheme on the side, but through reading (SICP and K&R), and I've kind of hit a wall. I really want to put something into production that isn't written in Ruby, and an iPhone app would do the trick.

Re: Ask HN: what language should I learn next?

#35
post #8

I'm enjoying Clojure - in terms of web frameworks there's Webjure and Enclojure, for example. The latter seems more Rails-ish whereas the former is more Javaesque, but it's still pretty early days. I prefer Clojure to Common Lisp as it doesn't have a lot of the cruft you'll find in CL, it has some cool concurrency features, and you get easy access to any Java library you might want to use. Plus, the source code to th…

My personal opinion is that one should learn, and become comfortable in, Java before attempting Clojure. Clojure is a very neat little language, but if you don't understand what it's doing under the hood on the JVM, a lot of stuff is going to end up being mysterious.

Don't get me wrong, I love the language to bits, but a lot of its beauty is in how it takes the existing Java model and does something cool with it - and to understand that, you need to understand what it's working with.

Re: Ask HN: what language should I learn next?

#36
post #32

It's probably not worth learning another language for a web development project. You'll spend most of the time learning the syntax and the framework. Nothing which will expand your mind. Try a functional language like Haskell, Erlang or ML. But you really need a problem to work on. A database-backed web app can easily be written in Ruby, but maybe there is a feature which requires background processing, write that in…

"but maybe there is a feature which requires background processing, write that in the newly learnt language."

great advice.

Re: Ask HN: what language should I learn next?

#37
post #8

I'm enjoying Clojure - in terms of web frameworks there's Webjure and Enclojure, for example. The latter seems more Rails-ish whereas the former is more Javaesque, but it's still pretty early days. I prefer Clojure to Common Lisp as it doesn't have a lot of the cruft you'll find in CL, it has some cool concurrency features, and you get easy access to any Java library you might want to use. Plus, the source code to th…

Lisp really is THE language to learn. You can ask Paul Graham about it...

See the following link for how to write new language constructs, which cannot be done in most of the other languages.

http://nostoc.stanford.edu/Docs/livetutorials/macros.html

Re: Ask HN: what language should I learn next?

#38
post #22

I'm not sure you really need to "learn" another language, if you can program in one you can probably get by in another quite easily given a bit of practice and some documentation. I think it would probably be worth learning new algorithms or trying to tackle problems which are totally out of your area of expertise if you really want to learn something new. If you really want to learn a new language you could look at…

if you can program in one you can probably get by in another quite easily

Yes and no. That holds true within families - if you know an imperative language, you can pick up any other imperative language easily enough, it's just different keywords and syntax for the same thing. But if you learn a different kind of language - e.g. functional, then you first have to learn a new way to think, and that's where the value is.

As an example, f you want to, you can easily treat Python as a sort of super-shell-script. So it's easy to get into, but most of its power will be wasted. To get the most out of it, you have to learn to think "Pythonically" and that takes time and experience using it to solve real problems, and constant rewriting until you "get it".

Re: Ask HN: what language should I learn next?

#39

Earlier quoted context omitted.

Yep. I would learn Objective C and write an iPhone app. Or I would say to heck with it and learn Lisp. Why focus on a pragmatic language for web apps? You've got that already.

Great advice, ricree and m_fish. I think this is right on. That's why I don't want to learn Python - it looks like a great language, but I already have Ruby. I've been trying C and Scheme on the side, but through reading (SICP and K&R), and I've kind of hit a wall. I really want to put something into production that isn't written in Ruby, and an iPhone app would do the trick.

Well, learning C will help with the Obj-C side. If you want to learn iPhone programming (I'm picking it up myself, but I have a C background), there are several meetups in Silicon Valley.

Re: Ask HN: what language should I learn next?

#40
post #17

Perhaps you are asking the wrong question here. Instead of learning a new programming language for web apps, maybe you ought to try programming a type of application that is new for you. I think that taking a go at something like a client-server, embedded, mobile, or desktop application would help broaden your perspective and abilities more than simply learning a new language would.

Upmodded, but I feel compelled to add systems programming, which will probably mean C. After doing some lower-level systems programming where the whole point is managing resources, you'll gain an appreciation of the power languages like Ruby give you, and how much a web application framework abstracts away.
Post reply on HN