I've worked with ruby and rails (and other ruby frameworks) for many years now, mostly for backend works, and I love them. It's the only language I'm really fluent with and I'm thinking about looking to some more languages to deeply learn and experiment, to avoid that one day ruby won't be needed anymore and . I'd still like to be on the web development<p>Which languages and frameworks do think are good bets? Javascript (nodejs, angular/ember, and many more)? Go? Which others?<p>With all the client javascript frameworks I'm also starting to wonder if we'll ever need backend anymore or if it'll be just built as "premade blocks" and bringing all the focus to the frontend
There's always going to be a backend, for security reasons if anything.<p>I've shied away from front-end (read Javascript) development because of it's fragmented ecosystem. Although I've taken an interest in Clojurescript recently...<p>As for a new language I'd recommend Elixir. It's functional which will introduce a new way of thinking and similar enough to syntax to Ruby.<p>Dave Thomas who wrote the original PickAxe book has recently released a book on Elixir.
In my opinion Rails is the fastest way to build web applications, and the best framework for iterating as you react to new business knowledge. I don't see that changing soon.<p>Investing in a JS framework seems like a natural complement to your existing skills. Angular & Ember are great fits with Rails. I also like Knockout, which has an easier learning curve.<p>Another great fit would be Chef, which would leverage your Ruby skills and let you improve how you're deploying the Rails apps you're building.<p>If you don't have a lot of experience in low-level languages, I'd explore those for the learning. C is a lot of fun and very different than Ruby. iOS would be a practical choice, and apps make very rewarding side projects, although it might be a big change of focus for you. If you want to stay on the server side, I'd find something you can optimize with C or Rust: some critical code, or maybe a Postgres stored procedure.
I think many people will jump to Golang from interpreted languages for performance and memory consumption reasons, which in conjunction with lowest learning curve among modern languages and easiest way to deploy will give Golang an advantage.
Ruby/Rails is quick to learn so it's a good intro. I learned this way and then expanded out into JavaScript then Angular/Node and now PHP and iOS.<p>Once you've got down the concepts of OOP then just experiment with different languages, see what you like and run with it!
I'm a ruby & rails developer, and I love them both as well. They're good for a lot of things and are generally enjoyable to work with. My side project is a rails app and I wouldn't have it any other way. I think you'll find the day that ruby isn't needed or used anymore is far, far away. php is still around, as is java and perl. As long as developers go to it and use it, it'll still be used. And rails is still one of the top web frameworks out there.<p>Javascript would be a good bet. that's what I have been meaning to focus on as well. It compliments rails development, and opens the door to other JS frameworks that you may or may not use, and other things like node or even unity.<p>And by extension, learning those front-end frameworks (like angular) would be good too. Some shops that run rails have something like that in the front end. But knowing JS makes those frameworks more approachable regardless.<p>JS frameworks, single page apps... they're a way to go, but they aren't replacing rails by any measure. Just more options for implementation, which is whats great about the web. But in the end it's just another way to build a site. Worth mentioning is that there have been some high profile shops that tried to go fully embrace that idea (everything in the front end) but ended up reverting back to server rendering and sprinkling with JS.<p>Go is great if you've got google level problems, but I wouldn't want to write code in that unless I had an actual need that played to Go's strengths. If i can do it with ruby, i totally will.<p>So, I'd say ruby and ruby on rails are still good bets, especially if you're trying to build something yourself. But it's really up to you and your priorities and what you're willing to bend on. You could learn .net and php and do work for shops that use them in their codebase, and that's a way to go. You could learn objective-c and write apps for iOS. It's really a matter of what you want to do, what tools exist for doing that, and which one you prefer.<p>Coming from perl and php, i have never loved anything the way i love ruby and ruby on rails. It was well worth the years it took me to understand and master them both, and the associated knowledge (testing,html5,css3,etc). It's hard for me to see myself using anything else.
It really depends on the context you see yourself working in.<p>Who do you want your skillset to be attractive <i>to</i>? And what exact jobs do you want to be doing?<p>A startup that expects you to be full-stack is a very different role than a backend engineer at an enterprise company (so your mileage with something like Angular, for example, would vary widely).
I see people complaining about JS fragmentation. While it is a problem, it is just a consequence of how hard it is to create a complex webapp this days.<p>The thing is this.<p>Things in tech are always changing, and in this web dev of ours, things change faster than anything else. It's crazy. And it is hard. SUPER HARD. And we got to deal with it. So, deal with it.<p>Things like Exilir, closurescript or any other non-javascript thing are not the answer. Simply because they don't provide a solution on how to architecture your app (front and back end). There is a reason why the JS world is fragmented today. If someday closurescript becomes popular, I guarantee it will be fragmented with frameworks. Simple because WE STILL DON’T KNOW how to create webapps. Sure it would be more functional, pure or whatever. But who cares ?<p>Now let me tell you what is the situation in the JS community today.<p>There is the frontend and the backend JS ecosystems, and they have different approaches on how to architecture an app. While the frontend folks used (past tense here) to subscribe to a monolithic approach (angular/ember) the backend folks always subscribed to the unix way (single purpose tools doing one thing well).<p>I've being coding exclusively js for 3 years now. And trust me when I say that since last October (ng-conf), there is a trend in the frontend community to move away from these monolithic solutions (<a href="http://www.breck-mckye.com/blog/2014/12/the-state-of-javascript-in-2015/" rel="nofollow">http://www.breck-mckye.com/blog/2014/12/the-state-of-javascr...</a>). This article really illustrate the feeling we have this days. (and here is the HN: <a href="https://news.ycombinator.com/item?id=8679245" rel="nofollow">https://news.ycombinator.com/item?id=8679245</a>)<p>Now think about the backend folks, The unix way have around for over 40 years, and the nodejs folks have embraced it. I guess they got something right. Just a though here. (Compare this with convention over configuration)<p>Nodejs tools like npm, browserify and gulp are the way to go for building your app and they completely replace rails asset pipeline and rvm (and much more flexible). And there will be no replacement for them anytime soon. They are around for about 5, 3 years and 2 years (an eternity) and they get things right.<p>JavaScript 1.6 (ES6) feels like a complete different language.
Things like Map, modules and generators are game changers. And 6to5 is the best way to translate ES6 into ES5. So you should learn them ASAP if you wanna be ahead of the curve.<p>Now let me tell you this about Ruby versus JS world. While the former offers lots of magic with the goal of making the programmer job easier, the later offers the right primitives without any sugar at the cost of convenience. It seems crazy at first (I came from python world, and I used to love their battery included approach) but there is wisdom in the JS approach.<p>My conclusion, JS and its community has many flaws, but learn to see beyond the trees. The jungle is beautiful and vibrant. And thats be best we got.<p>PERIOD. and move on. PLS