Live data from Hacker News

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

news.ycombinator.com

51–55 of 55 posts

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

#51

None of the existing answers seem particularly convincing to me. Here's how I have chosen: pick the framework that is most popular with the people you want to work with, projects you want to work on, or companies you want to work at. If you're building simple websites for clients (publishers, small business owners, etc.), PHP is probably still the best choice, and usually Wordpress. It runs with no config on standard…

> That said, Ruby is trending down, Python is trending up http://trends.builtwith.com/framework/Ruby-on-Rails vs http://trends.builtwith.com/framework/Python Or am I interpreting this wrongly? shrug

My claim was anecdotal. For some data, TIOBE tells a different story than what your source claims: http://www.tiobe.com/index.php/content/paperinfo/tpci/index....

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

#52
post #47

Earlier quoted context omitted.

Cooperative concurrency is fine and a lot of languages use cooperative concurrency just fine. The issue with Node is that it completely ignored the multicore reality that we live in. Everyone argues that multithreading is so complex, and it is unless you have the right abstractions. But what is guaranteed to always be complex is single-threading with process forking. As soon as you want to communicate between process…

The stuff you were saying about forking, IPC... it made me giggle because I just wrote a midterm on these concepts last night :) Thanks. Erlang seems interesting, would you mind expanding on Erlang or GO?

Everything in Erlang is asynchronous and non-blocking but this is almost completely transparent to the programmer. When you start an instance of the Erlang VM it spawns as many threads as you have CPUs and a thread for an event loop. Each thread can have thousands of Erlang processes (Erlang's unit of concurrency is called a process) executing. Inside of the thread is an Erlang scheduler that allocates execution time to each Erlang process using a technique known as reduction counting.

Erlang also has great features for distribution. Communicating with processes that live in another Erlang VM node is also transparent. It's debated whether this is a good thing or not because some people think communicating over the network shouldn't be transparent due to partitioning, but in a lot of Erlang programer's experiences this is a wonderful feature.

The result of all of this is that the Erlang code you write looks synchronous but is executing concurrently. You have both CPU concurrency and IO concurrency. The Erlang VM takes care of most of the nasty bits of asynchronous code, which is what a good language run time does for you.

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

#53
post #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…

> 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.

You're suggesting they focus on SQL instead? Ha.

In my opinion, java script is probably your safest bet if you want to focus on one thing related to general web development that will remain valuable for a long period of time. The trend I've seen with out clients (top 500 eccommerce sites) is more and more use of javascript. I would say learn jQuery and understand how Angular works.

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

#54
post #47

Earlier quoted context omitted.

The stuff you were saying about forking, IPC... it made me giggle because I just wrote a midterm on these concepts last night :) Thanks. Erlang seems interesting, would you mind expanding on Erlang or GO?

Everything in Erlang is asynchronous and non-blocking but this is almost completely transparent to the programmer. When you start an instance of the Erlang VM it spawns as many threads as you have CPUs and a thread for an event loop. Each thread can have thousands of Erlang processes (Erlang's unit of concurrency is called a process) executing. Inside of the thread is an Erlang scheduler that allocates execution time…

Thanks,

Where is Erlang used predominately? Is it a "good" solution for web development (if that's even possible)?

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

#55
post #54

Earlier quoted context omitted.

Everything in Erlang is asynchronous and non-blocking but this is almost completely transparent to the programmer. When you start an instance of the Erlang VM it spawns as many threads as you have CPUs and a thread for an event loop. Each thread can have thousands of Erlang processes (Erlang's unit of concurrency is called a process) executing. Inside of the thread is an Erlang scheduler that allocates execution time…

Thanks, Where is Erlang used predominately? Is it a "good" solution for web development (if that's even possible)?

Jose Valim, a RoR developer, created a language (Elixir) just for your use case. Go have a look!
Post reply on HN