Live data from Hacker News

What’s Up With All These Changes in Rails?

yehudakatz.com

1–10 of 115 posts

Re: What’s Up With All These Changes in Rails?

#2
I feel like this discussion wouldn't be getting so much traction if it was easier to learn the differences between specific versions. Today there's enough resources out there to learn about rails and/or the differences between versions and/or 'the right way' of doing things, but it's scavenger hunt meets jigsaw puzzle. Currently, if you don't follow the Rails evolution regularly, going out there and catch up with it can be intimidating for some.

There's a need for a central Rails reference that makes this task trivial. Maybe a document with some sort of interactive diff functionality that allows to see specific version differences side by side in a friendly manner. Some system that doesn't force the writers to re-think a full document for every version, that can evolve without erasing older information, and that assists the reader by showing specific chunks of information that she should read in order to catch up to the specific version she is aiming for. Getting this started is a non-trivial task, but it seems like there's enough energy, innovation and attention to detail surrounding Rails to solve this problem.

Re: What’s Up With All These Changes in Rails?

#3
It seems like a tough line, and I sympathize with both sides.

Either you can go the Microsoft route and be backwards compatible til the end of time (which is great for devs, but causes baggage) or you can embrace change while the community is still young(ish).

It seems like at a minimum, everything in a major version should be backwards compatible (ie a 3.0 project will work in 3.1 without changes) though.

Re: What’s Up With All These Changes in Rails?

#4
post #2

I feel like this discussion wouldn't be getting so much traction if it was easier to learn the differences between specific versions. Today there's enough resources out there to learn about rails and/or the differences between versions and/or 'the right way' of doing things, but it's scavenger hunt meets jigsaw puzzle. Currently, if you don't follow the Rails evolution regularly, going out there and catch up with it…

I think part of this problem comes from the number of blog posts that don't reference versions when explaining something. This adds to confusion if the topic has changed and the post is not updated/marked out of date.

Re: What’s Up With All These Changes in Rails?

#5
post #2

I feel like this discussion wouldn't be getting so much traction if it was easier to learn the differences between specific versions. Today there's enough resources out there to learn about rails and/or the differences between versions and/or 'the right way' of doing things, but it's scavenger hunt meets jigsaw puzzle. Currently, if you don't follow the Rails evolution regularly, going out there and catch up with it…

I abandoned Rails years back because of precisely this problem. Releases would break or arbitrarily drop functionality, with little or no documentation. If you got more than a few point releases behind you were really screwed.

I couldn't explain the dearth of documentation for these changes at all, it seemed so lax compared to other platforms. Then I realised all the incentives for those who would produce the documents were towards producing books and paid-for screencasts, and knew my time was up.

Re: What’s Up With All These Changes in Rails?

#7
I believe that Rails does sacrifice something in terms of stability compared to other projects, but that is also what allows Rails to be a industry-leading framework 7 years in. If you are a developer stuck supporting a lot of old Rails 1.x and 2.x projects with no budget, then absolutely you will feel the pain of upgrading and marginal legacy support that you wouldn't necessarily feel had you gone with a more venerable Java stack (for instance). That said, if you are actively building an application over several years then the forward development of Rails means greater productivity and functionality on an ongoing basis rather than being stuck with an outdated framework.

My current project is over 4 years old, started in the Rails 1.2 era, 100+ models, 30+ gems, 50k LOC, and I can vouch for the pain that the Rails 3 upgrade caused. That said, the upgrade gave us a lot of immediate benefits: the rails_xss upgrade forced us to close a number of small XSS holes that we probably never would have found otherwise, the Bundler upgrade solved several real-world deployment issues that led to downtime over the years, ActiveRecord 3 allowed us to clean up a ton of hairy querying code we had written with its fantastic composability and laziness, the modularity and instrumentation allowed massive logging and generator improvements to be inline with project standards, the ActionMailer API allowed us to significantly DRY up our extensive email notification suite.

In short, Rails development is still definitely heading in the right direction for my organization. There's no doubt that API stability is better in many other frameworks, but as Yehuda points out here, the changes made in Rails are done for good reason that can benefit a lot of people. If stability is more important than agility for your project (without disparagement), then Rails is probably the wrong choice (I tend to use PHP in those cases).

Re: What’s Up With All These Changes in Rails?

#8
post #2

I feel like this discussion wouldn't be getting so much traction if it was easier to learn the differences between specific versions. Today there's enough resources out there to learn about rails and/or the differences between versions and/or 'the right way' of doing things, but it's scavenger hunt meets jigsaw puzzle. Currently, if you don't follow the Rails evolution regularly, going out there and catch up with it…

I abandoned Rails years back because of precisely this problem. Releases would break or arbitrarily drop functionality, with little or no documentation. If you got more than a few point releases behind you were really screwed. I couldn't explain the dearth of documentation for these changes at all, it seemed so lax compared to other platforms. Then I realised all the incentives for those who would produce the documen…

Prior to Rails 3 Rails' versioning scheme left a lot to be desired. However, starting with Rails 3 it is supposed to be following Semantic Versioning. (http://semver.org) This should help with giving people an idea if they can update without fear their app will break.

Re: What’s Up With All These Changes in Rails?

#9
post #3

It seems like a tough line, and I sympathize with both sides. Either you can go the Microsoft route and be backwards compatible til the end of time (which is great for devs, but causes baggage) or you can embrace change while the community is still young(ish). It seems like at a minimum, everything in a major version should be backwards compatible (ie a 3.0 project will work in 3.1 without changes) though.

    Either you can go the Microsoft route and 
    be backwards compatible til the end of time
You probably never went with Microsoft to say that.

Yes, they are shipping the DLLs till the end of time, but you can also find the source code to Rails 2.3 till the end of time (it's right there, in your face), just as you can find the source code of Linux 0.01 (the initial release).

On the other hand, what's the latest recommended path for building UI, the Microsoft recommended way? The Win16 API? The Win32 API? MFC? WTL? Windows Forms? WPF? Silverlight? HTML5?

Evolution happens, you need to deal with it. The only stable API I know that is still relevant and still important to learn (instead of an abstraction) is POSIX-stuff.

Re: What’s Up With All These Changes in Rails?

#10
post #2

I feel like this discussion wouldn't be getting so much traction if it was easier to learn the differences between specific versions. Today there's enough resources out there to learn about rails and/or the differences between versions and/or 'the right way' of doing things, but it's scavenger hunt meets jigsaw puzzle. Currently, if you don't follow the Rails evolution regularly, going out there and catch up with it…

http://apidock.com/rails has compatibility information for Rails versions. Not quite what you'd like but definitely helpful.
Post reply on HN