Live data from Hacker News

Ask HN: What are real Ruby on Rails alternatives in 2017?

news.ycombinator.com

51–59 of 59 posts

Re: Ask HN: What are real Ruby on Rails alternatives in 2017?

#51
post #41

Grails Framewok! http://grails.org Built on top of Spring Boot. Awesome performance, both in execution and development speed. Convention over configuration. But it is still easy to access the rich Java libraries. Comes with GORM, an ORM layer on top of Hibernate. Makes it work a lot more like Active Record with dynamic finders. Groovy, very similar to Java. Metaprogramming, easier JDBC, execellent, makes it very easy…

I inherited a Grails 2 codebase about 8 months ago. I'd never worked with Java or Spring before, but I have pretty extensive experience with Django, Flask and Symfony (inspired by Spring, as I understand it). Anyway, from my perspective, I'm sorry to say I have to strongly disagree with all of these points - I've never had a more miserable experience with a framework.

First off, I found the documentation to be really bad. All of it assumes you're already deeply familiar with Spring/Hibernate, and it offers zero direction for those who aren't. Furthermore, Grails has a ton of magic. Which I guess could be OK, but again, it's all very poorly documented - and trying to read the source code of Grails itself to get a grasp on what's going on? Forget it.

Development speed? Hot code reloading pretty much doesn't work; any time I add or change a route, or a JSON marshaller (aka a serializer in every other framework known to mankind[0]), or simply add a JS file, you have to restart the dev server. Which, to top it off, spins up insanely slow compared to a proper dynamic language.

GORM. Same documentation rant. They cover the simple cases and leave you in the dark if you need to do anything more complex than a join. Luckily people on SO are helpful here, but I wish I could understand what the hell is going on behind the scenes.

Plugin ecosystem? Seems pretty small/inactive, especially compared to Django. Oh, and each time you install a plugin, expect at least another 30 seconds to spin up the development server.

Breaking changes? The recommended upgrade path from 2 to 3 is "start a new project and copy over your files." WTF?

The parameter binding/validation does work pretty well, as long as you don't try and do anything non-straightforward. But step outside the box, and it falls apart. And again, the documentation of these magical transformations is utter shit. Related: no default arguments allowed for controller parameters? Really guys?

[0] This whole "let's make up a new name for some already widely established concept/function" appears especially rampant in Groovy/Grails. Not a fan.

Perhaps coming from the perspective of JavaLand it's an upgrade, but man, this shit is not for me. Sorry for the rant.

Re: Ask HN: What are real Ruby on Rails alternatives in 2017?

#52
post #50
post #22

Earlier quoted context omitted.

I’m after productivity ala Rails. Nothing seems to come close for me yet.

Have you considered that you feel that Rails is very productive simply because you know it? What you perceive as intrinsic productivity is just you knowing the framework/tool very well.

Sure enough a valid point.

When I didn’t know it I was productive too, circa Rails 0.14.3. I’ve stepped away for programming for many years and skipped mostly through Rails 3 and 4. Recently picked right back up in Rails 5 and just as productive as ever.

Re: Ask HN: What are real Ruby on Rails alternatives in 2017?

#53
post #11
post #7

Elixir's Phoenix is where a few former Rails folks have migrated to, so it shares a few of the ideas that made Rails so appealing: https://hackernoon.com/phoenix-is-better-but-rails-is-more-p... A list of companies using Elixir/Phoenix: https://github.com/doomspork/elixir-companies Discussion on how Bleacher Report (1.5B pageviews/month) moved from Rails to Phoenix: https://news.ycombinator.com/item?id=13606139

I used to work at a company in a similar vertical as BR also linked off CNN frequently and also running Rails. I understand the scalability challenges that might lead someone to something like Erlang and Elixir. Curious, what’s your take on why this hasn’t caught on?

I think Erlang hasn't caught on because of its syntax. It is much different than anything else I've seen (that wasn't an esoteric language). That syntax will rear its ugly head when using Elixir as well since you have to dive into the OTP every so often. Given that Elixir is built upon the BEAM it isn't a surprise that Elixir isn't more well known.

Then there are documentation issues. Hexdocs.pm is amazing and typically there is enough information to get started and going but that is typically at a higher level and that is also not written in a way that is necessarily friendly to those outside the HN crowd. Sometimes there will be a single example of how to do something and sometimes there won't be a single example, which means you have to figure it out. There are sites like Elixir School (which I have used) but it is little more than a re-hash of the official Elixir tutorials. Now, there are some projects with great documentation (Phoenix is one of them) but most are not that in depth.

When dealing with OTP (which is part of what makes Elixir so great) you run into issues with the documentation and then Erlang syntax. For instance, I'm working on a blog engine that I want to run fully contained using Mnesia, the OTP relational database. There is no Elixir support for Mnesia so I have to fall back to Erlang. Now I'm learning Erlang's syntax, which is slowing me down significantly. Now, I want to do this and my design decision is to use Mnesia so I can not have to worry about dealing with a standalone RDMS so this setback isn't pulling me down but if I was a beginner just trying to learn I would've given up by now.

Let's talk library support. There are a lot of great libraries that are written by Jose and the Elixir core team but there is a lot of gaps as well. Odds are if there is an API you want to call you won't find an Elixir library for it and you'll have to go at it yourself. There isn't anything wrong with that if you are willing to take the time but if you need to get stuff done then it is just a hassle. Again, I'm doing my Elixir work on the side so I have plenty of time to make libraries (I have made a couple so far and am in the process of making more) to help others do what I need to do.

Finally there is the thought shift that is required to fully embrace Elixir. Elixir looks Ruby-ish but idiomatic Elixir is much different that Ruby. There are two areas you are supposed to keep state in Elixir (specifically Agents or GenServers) and they aren't exactly beginner friendly topics. I was listening to an episode of The Elixir Fountain this morning and they were talking about moving to Elixir from Ruby and a lot of people find ways to hide state in their code when it shouldn't be there. They just haven't shifted from an OO mindset to a FP mindset. Recursion, Map, reduce, etc, are all concepts that can be harder to understand. It is easier to do a for loop in an OOP language than try to fit that into something like Elixir. It can be done but it gets messy fast when you are new and may not know the best way to do things.

At the end of the day, I love Elixir and hope to get to write it professionally soon but despite being around for 6 years it isn't ready for the mainstream yet due to the issues above.

TL;DR; Documentation isn't the best. Erlang syntax and lack of popularity make Elixir harder to discover. 3rd Party Library support is sparse. And the mindshift from OOP to FP takes time that many may not be willing to invest

Re: Ask HN: What are real Ruby on Rails alternatives in 2017?

#54
post #31
post #11

Earlier quoted context omitted.

I used to work at a company in a similar vertical as BR also linked off CNN frequently and also running Rails. I understand the scalability challenges that might lead someone to something like Erlang and Elixir. Curious, what’s your take on why this hasn’t caught on?

I've only played around with Phoenix/Elixir so can't claim to have any special knowledge. But I've heard it argued that functional languages/frameworks aren't as common in startups as expected because functional programming isn't as popular among current developers, nor as commonly taught in school. And Erlang seems to be particularly specialized: https://news.ycombinator.com/item?id=7277797 Elixir is relatively new…

As somebody who has been diving into Elixir and Phoenix this year I have to say that the Phoenix way into Elixir isn't as exciting as a backend application written in Elixir in regards to the power of the language and the platform. A lot of Phoenix is hidden and is "magic". You don't need to utilize the OTP at all when using Phoenix and you don't interact directly with what makes Elixir (and Erlang) so special.

I started using Phoenix and Elixir and while I liked Elixir's syntax better than other languages I just didn't see what was so great about it. Then I started doing non-web things with Elixir and it became clear how awesome Elixir is. I heard the same thing with Ruby back when I looked at Rails 5 or so years ago. Elixir seems like just another language when you aren't really digging into the OTP.

Re: Ask HN: What are real Ruby on Rails alternatives in 2017?

#55
post #27

Just started with Django, I am praying noone comes to me tomorrow and say "Django is dying", atleast not for now.

If someone ever says that to me, I'll still keep using it to the day I die. And I'll maintain it if need be. Because Django is awesome.

Re: Ask HN: What are real Ruby on Rails alternatives in 2017?

#56
post #51
post #41

Grails Framewok! http://grails.org Built on top of Spring Boot. Awesome performance, both in execution and development speed. Convention over configuration. But it is still easy to access the rich Java libraries. Comes with GORM, an ORM layer on top of Hibernate. Makes it work a lot more like Active Record with dynamic finders. Groovy, very similar to Java. Metaprogramming, easier JDBC, execellent, makes it very easy…

I inherited a Grails 2 codebase about 8 months ago. I'd never worked with Java or Spring before, but I have pretty extensive experience with Django, Flask and Symfony (inspired by Spring, as I understand it). Anyway, from my perspective, I'm sorry to say I have to strongly disagree with all of these points - I've never had a more miserable experience with a framework. First off, I found the documentation to be really…

> documentation rant. They cover the simple cases and leave you in the dark if you need to do anything more complex

The business model for Apache Groovy and Grails after Groovy creator James Strachan was pushed out became to hook users in with free open source software, then charge them for consulting and conferences when they'd amassed some technical debt.

> The recommended upgrade path from 2 to 3 is "start a new project and copy over your files

Virtually no-one's upgrading from Grails 2 to 3, or even starting new projects in version 3.

Re: Ask HN: What are real Ruby on Rails alternatives in 2017?

#57
post #7

Elixir's Phoenix is where a few former Rails folks have migrated to, so it shares a few of the ideas that made Rails so appealing: https://hackernoon.com/phoenix-is-better-but-rails-is-more-p... A list of companies using Elixir/Phoenix: https://github.com/doomspork/elixir-companies Discussion on how Bleacher Report (1.5B pageviews/month) moved from Rails to Phoenix: https://news.ycombinator.com/item?id=13606139

I find the evidence for Elixir adoption unconvincing as it invariably focuses on Bleacher Report. It's the same with Elixir app examples which are invariably chat apps, painting Elixir as a one-trick pony. Indeed.com offers little evidence for Elixir/Phoenix coming anywhere near the adoption of Ruby/Rails.

Re: Ask HN: What are real Ruby on Rails alternatives in 2017?

#58
post #19

Earlier quoted context omitted.

Nooo.. But then I have to use PHP.. I kid, I kid ;)

ha . . . this is true. Laravel makes it tolerable though.

Yes, if were not for Laravel's Collections I wouldn't touch it. The biggest barrier for me with PHP is the idiomatic PSR-driven abuse of blank lines, a la Kernigen and Ritchie, coupled with code hidden in doc-comments. You're lucky to find more than 5 lines of code visible on a screen when surrounded by this code style monstrosity.

Re: Ask HN: What are real Ruby on Rails alternatives in 2017?

#59
For the size of website Rails is optimised for nothing matches Rails IF you're considering all dimensions rather than just performance. That's because Rails capitalises on the unique design of the Ruby language. Ruby manages to blend OO, procedural and functional, taking the best features of Perl, Smalltalk and Lisp. The result is perfect for creating the kind of DSLs Rails is built on. Clojure and Elixir come close but they're strictly functional languages. Scala claims to excel in blending OO and functional but the result is a mess which has fragmented the Scala community whereas the Ruby community speaks with one voice.
Post reply on HN