Live data from Hacker News

Ask HN: Why learn non-JS languages/framework?

news.ycombinator.com

11–20 of 55 posts

Re: Ask HN: Why learn non-JS languages/framework?

#11

Basically JS represents a very narrow slice of what the world of programming is really about. It's just a weird and artificial environment in many ways. Also, despite its current success, it's bound to go away, eventually.

This is great advice. If you spend your time only reading about the latest startups, you'll think everyone is using Javascript and Node for everything.

The vast majority of software is not written in either of these two. And it's not a knock on them, there just a tremendous amount of software out there and most of it pre-dates the Javascript/Node environment.

Re: Ask HN: Why learn non-JS languages/framework?

#14
post #8

Is there any framework in the JavaScript world as mature as Rails or Django (or with as many features)? This isn't a rhetorical question; as the author of the Ruby on Rails Tutorial , I'd like to know what (if anything) I should be looking at next.

Here's a good list of the big ones http://www.quora.com/What-is-the-best-full-stack-web-framewo...

None as mature as Rails though.

Re: Ask HN: Why learn non-JS languages/framework?

#15
It really depends where you are in your career. If you are just starting out and would like to work in general web development, committing yourself to JS only would be stupid beyond belief. That would assume that JS based frameworks are going to be ubiquitous in the near future. They definitely won't be and there are many reasons to doubt that they will be ubiquitous in the long term as well. The same can be said for any language or framework, language convergence does not seem to be happening. More likely the landscape will remain unstable in the medium to long term. Therefore, as a generalist web developer you will be better served by polyglotism. Learn MVC and other application design patterns. Learn server side programming and client side programming. Learn SQL and others ways of interfacing with persistence layers. In short, don't stop learning and don't assume that there is one holy grail or one right way to do it. There are many jobs and many tools. Being a good programmer is about finding a way to match the tools with the job.

Re: Ask HN: Why learn non-JS languages/framework?

#16
Each framework, programming language can learn you something new. Many framework/languages feel very similar.

If you really want your mind to learn something you can get back to your JS code, you should try to use a functional language:

- Clojure (I recommand compojure-api for the server and reagent in clojure script for the frontend)

If you really want to blow your mind:

- Haskell (scotty if you want to start small, Yesod if you want all batteries included) for the back and Elm (for the frontend)

It will make your code cleaner in the end, and you'll start to focus on the important stuff instead of just the syntax.

Re: Ask HN: Why learn non-JS languages/framework?

#17
You don't sound even minimally stupid. :)

I wouldn't necessarily advocate any of those specific frameworks, but I do think there is life outside of JavaScript. I actually don't think JavaScript (particularly on the server) is a very good language at all. Blasphemy, I know.

As someone who has spent time with JS frameworks like Ember, Meteor, and the rest, as well as libraries and component systems like Rendr, React, and Backbone, it's certainly not the case that JavaScript is free of frustration. In fact, I've found the opposite to be true: despite the enthusiasm, some of these solved a bunch of problems only to create others.

The truth is, if you focus on being a great engineer then picking up another language and framework isn't very difficult. It will make you a better programmer to see how other systems solve problems.

Not to speak out of both sides of my mouth, but I do advocate being a master at one or two languages and learning how to write idiomatic code. I just think there's room for more than literally one.

If someone tells you that Node is here to save us all from certain disaster and JavaScript is the One True Answer, I would simply nod your head, smile, say thank you, and then run as fast as you can.

Re: Ask HN: Why learn non-JS languages/framework?

#18

Basically JS represents a very narrow slice of what the world of programming is really about. It's just a weird and artificial environment in many ways. Also, despite its current success, it's bound to go away, eventually.

This is great advice. If you spend your time only reading about the latest startups, you'll think everyone is using Javascript and Node for everything. The vast majority of software is not written in either of these two. And it's not a knock on them, there just a tremendous amount of software out there and most of it pre-dates the Javascript/Node environment.

I would think if you were only reading about the latest start ups, it would sound like everyone were using Rails. At least that's been my experience

Re: Ask HN: Why learn non-JS languages/framework?

#19
This feels like what happens when a web developer fails to realize that the web is not the be-all-and-end-all of software development.

Do you want to create fantastic 3D graphics and visual effects? Best learn C++ and OpenGL.

Do you want to develop a highly resilient parallel system that can be patched without downtime? Learn Erlang.

Do you want to program an embedded system, or anything where you need to be close to the hardware? Learn C.

Do you want to program mobile apps? Java, Objective-C or Swift.

Do you want to "program" hardware on an FPGA? Verilog.

Do you want to quickly make 3D games or other interactive experiences? Try C# and Unity.

Do you want to advance your own knowledge of programming and computation, even if you don't have a particular platform restriction? Learn any language in a different language family than you're used to, something like Clojure or Haskell or Prolog.

And as you get familiar with other languages, you'll find it's easier each time to pick up the next one.

Your question might better be phrased as, "As a web developer, what are the advantages to learning non-JavaScript-based web frameworks and languages?"

With my limited experience in the web world, the only good, practical answer to this modified question that I can come up with is "diversification". If all your eggs are in one basket when it comes to programming skill, you're very vulnerable to a language or toolset falling out of vogue. I know some Flash developers, for example, who have been absolutely devastated by the happenings of the past several years, because their toolset was far too rooted in Flash. JavaScript is pretty ubiquitous these days, so I doubt something quite that dramatic would happen to it, but it's possible that it could—for example, I can imagine best practices shifting over the next ten or twenty years so that nobody writes Javascript directly anymore, but only languages that compile to it. I'm not saying that will happen, but it's an example of something that could.

Re: Ask HN: Why learn non-JS languages/framework?

#20
post #8

Is there any framework in the JavaScript world as mature as Rails or Django (or with as many features)? This isn't a rhetorical question; as the author of the Ruby on Rails Tutorial , I'd like to know what (if anything) I should be looking at next.

No, there isn't, nor should there be.

Rails and Django are both heavyweight, all-in-one frameworks, full of canned magic and optimized for easy OOB experience at the cost of inflicting undue difficulty when it comes to complex tasks, i.e., useful ones.

If there's anything like that in the Javascript world, it hasn't achieved prominence, nor will it; modern Javascript development is much more concerned with, and much better suited to, lightweight microservices tied together by smart client code. Working effectively with such architectures requires a greater initial investment than does becoming au courant with Rails or like ilk, but the return in scalability and maintainability is very much worthwhile.

Post reply on HN