Programming language/framework for web development #mindblown

Hi there,

I have a little question which is occupying my head for past week ... well maybe few more. What programming language/framework should I use for web development?

Little bit of background to this: previously I used pure PHP (before PHP5 and without OOP (maybe there were support for that, but at that time I didn't even know that OOP is a thing (I assume it still is)), sounds crazy? that's because it was :) ), and a bit of Python/Flask, but I don't really like it, i feel like the templating engine is from a stone age and I don't really feel like using python for this. Right now I am using Ruby/Padrino and I really like it because I can use all the cool stuff like slim, sass or sequel, but everyone is talking about that new shiny Node.js and all its frameworks and non-relational databases and that makes me wonder aren't padrino that I like already obsolete and abandoned?

I heard that many startups are leaving ruby in favor of node.js, is it really a thing or can I chill and use ruby?
Also I don't really like the .js extension after node, I mean i like js to some extend, but for the server stuff?? for realz?! Maybe I'm wrong and that's why am I writing this post in the first place.

1 Like

Ruby is a good language to know. I'm not too versed in web development, I've only done small projects, but your best bet is probably to just learn use Ruby, and if need be, jump on the node.js bandwagon.

1 Like

mixture with the sublime editor is a really good framework to use.

thanks for suggestions, but mixture is not available for GNU/Linux ... too bad and I don't want to pay $70 for a text editor when I have other three (almost) equally good (brackets for web development, atom for programming and vim for the rest

For an editor Lighttable might be a nice suggestion.

1 Like

Node is fun. But don't switch just because you heard about it. Also, the ".js" is there because …well, because it's javascript.

Ruby: I don't like ruby, but hey, whatever. It works. if you like it, stick with it.

Non-relational DBs: good for some things; mainly things where relations are not important. If relations are important —and 90% of the time, they are— you need (you guessed it) a relational database. NoSQL is not taking over the world.

oh, thanks for the explanation, btw I knew what .js means :D

Here's a nice introduction to NoSQL. TL;DW: Different databases have different purposes, use the one that suits your needs (that includes relational)

As for node.js, one of the reasons it's been getting a lot of attention is because of its ability to deal with a lot of requests. The beginning of this video roughly explains how it works (in quite an amusing way too!). It then goes onto demonstrate dealing with requests asynchronously:

If you're comfortable with ruby then stick with ruby. There's a bit of a learning curve to node (well, I think there is anyway, I'm still learning) because you have to deal with things asynchronously. If you try to do a load of number crunching for every request with node, you're doing it wrong and that will cause the whole thing to run super slow (in which case you'd probably be better off with ruby anyway).

There's also the fact that it's javascript. Javascript is weird, so you'd have to learn its quirks too (e.g. figuring out what "this" refers to).

1 Like

If you feel trying out something new you can try Groovy on Rails. I was really impressed by the way database mapping worked and how fast you can set it up. It's also an MVC framework, so you can do some serious stuff. It works on a JVM.