Is Ruby On Rails Losing Steam? 291
itwbennett writes: In a post last week, Quartz ranked the most valuable programming skills, based on job listing data from Burning Glass and the Brookings Institution. Ruby on Rails came out on top, with an average salary of $109,460. And that may have been true in the first quarter of 2013 when the data was collected, but "before you run out and buy Ruby on Rails for Dummies, you might want to consider some other data which indicate that Rails (and Ruby) usage is not trending upwards," writes Phil Johnson. He looked at recent trends in the usage of Ruby (as a proxy for Rails usage) across MS Gooroo, the TIOBE index, the PYPL index, Redmonk's language rankings, and GitHut and found that "demand by U.S. employers for engineers with Rails skills has been on the decline, at least for the last year."
How about over 10 years? (Score:5, Insightful)
Re:How about over 10 years? (Score:5, Insightful)
Sustained salary over a 10 year period would be a more interesting number to me.
We can cram the internet boom, a dot-com bubble, a dot-com crash, 9/11, the birth of DHS, and a rather massive banking failure that almost crashed the entire global economy inside a span of 10 years.
With factors like that going on all around your number, I'm not quite sure what value you can expect out of your salary stats. The only thing we've managed to sustain over the last 10 years is chaos. IT is hardly immune.
Re: (Score:2)
"Lisa, the whole reason we have elected officials is so we don't have to think all the time. Just like that rainforest scare a few years back: our officials saw there was a problem and they fixed it, didn't they?"
Re: (Score:2)
With factors like that going on all around your number, I'm not quite sure what value you can expect out of your salary stats
Software developers who don't work on web UI frontend stuff: infrastructure and systems programmers, kernel developers, and so on, were barely affected by all that. 2007-08 was rough for everyone, but even then it wasn't that bad for us backend devs.
Now, if your expertise was DB internals, hard cluster internals, or user-mode storage software, those fields have gradually faded over the past decade, but many of us just moved on to the new hotness: the backend for the cloud, and massively parallel systems th
Re: (Score:3)
Ruby On Rails originated in 2003. The crash of the global economy followed.
So...RoR crashed the economy then?
Re:Yo, its 2014! (Score:4, Funny)
Ruby On Rails originated in 2003. The crash of the global economy followed.
So...RoR crashed the economy then?
I told you guys that dynamic typing was unstable....
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I started using it in `04, so I doubt that.
Re: (Score:3)
You are like that farmer that whines when they get paid bugger all for a crop that raked in huge profits for the few farmers that planted it last season, just like all the other farmers that switched to the high profit crop.
Demand does not function on it's off but is a partner with supply. When supply fails to meet demand, price rises and when supply exceeds demand price drops. There was an interesting period where old cobol programmers were paid heaps, not because there was growing demand but because no
Re: (Score:2)
Re: How about over 10 years? (Score:5, Insightful)
Re: (Score:2)
Re: (Score:2)
Re: How about over 10 years? (Score:2)
Re: (Score:2)
Re: How about over 10 years? (Score:2)
Re: (Score:2)
Re: (Score:2)
HTML is trivial to learn. I use "" and "" for everything. I used "" once... I also used "" once too but that was a stretch goal.
Re: How about over 10 years? (Score:4, Funny)
---
HTML is trivial to learn. I use "<pre>" and "</pre>" for everything. I used "<img>" once... I also used "<blink>" once too but that was a stretch goal
Re: (Score:2)
If you know how to hand code HTML, you can determined what went wrong with the HTML that another program spits out. As a QA tester at one company in the late 1990's, I wrote many tickets for the website team to fix the HTML that Dreamweaver and FrontPage generated.
If you have custom made shoes, your cobbler can take those shoes apart in a few years, determine which parts took the most wear, and replace them. You get a shoe that is better than new, with the broken-in parts that didn't wear still in place. That makes for a better than new fit. And the new fit on a custom shoe is already pretty awesome.
There are still people doing it, there is even a local cobbler who will teach people to make their own shoes at home, in exchange for making 1 pair of shoes for him to se
Re:How about over 10 years? (Score:5, Funny)
That's never fazed an HR department.
Re: (Score:2)
They just ask for 15 years of experience in R&R regardless....and get it (per claims).
That's ok. They are "Billable" years.
Everyone hates Ruby (Score:5, Insightful)
Whether or not you believe it was the world's most hipster programming language, they tried to sell it as a license to print money. And it is so clearly not. All the businesses with any real money either roll their own languages for in-house challenges, opt for something off the shelf and easy to recruit for, or have mountains of legacy code that merely needs to be maintained.
Re: Everyone hates Ruby (Score:5, Informative)
Why is the parent modded down?
It's a very accurate description of real world Ruby on Rails apps.
Many adopters have been badly burned by this software, and the people who pushed it.
Failed projects, slow and broken apps, and fleeing developers are the hallmarks of Ruby on Rails.
It's much worse than Java was in the early 2000s, or C++ in the 1990s, or C and COBOL before that.
Ruby on Rails sounds great, until you try to use an app written in it, or worse, until you have to deal with a Rubyist. Then everything tends to go to hell.
Re: (Score:2)
Re: Everyone hates Ruby (Score:3, Interesting)
Normal people, including programmers, just got tired of dealing with the Ruby crowd. No normal person wants to deal with smug, "opinionated", Zed Shaw-inspired hipsters who swear all the time, and who also often exhibit an unusual disdain for women. It's even worse when, despite all their talk and hype about how great Ruby and Rails are, they still wrote worse software than the well-mannered and normal PHP, Java and Python programmers.
Re: (Score:3)
Re: (Score:2)
I don't think I've ever heard of Zed talking about how great Ruby on Rails is.
http://harmful.cat-v.org/softw... [cat-v.org]
Re: (Score:2)
I would _never_ agree to work for a business which chooses the wrong tool for the job because said tool is "cool". Either they use an appropriate language, of I choose which language to use.
Virtually all Ruby shops fit into that first statement - wrong tool for the job, but do it because it's "cool".
Interesting, I don't personally care much about languages unless it's just plain bad idea in terms of performance, like say doing scientific HPC on pure interpreted python. If someone wants to pay me to reinvent the virtual wheel, I don't really mind. The language itself is just a tool, and having used C for almost 20 years now, I still tend to lookup standard function calls from the man. It's not like using a different language would be any different aside from missing man pages.
I do wonder if people hate
Re: (Score:3)
Ruby is not used because it is "cool," and as somebody using Ruby for 10 years now, it is total hogwash. It is absolutely not encountered.
Ruby is chosen by managers because it is popular with programmers who use it and based on that you can hire a lot of talented people. There is significant competition for programmers, and using languages that are pleasant to program in is a real advantage.
And of course, it is chosen by programmers because it is pragmatic and modern OO without a bunch of ideological bull
Re: (Score:2)
Re: (Score:2)
Ruby has good type safety because while it is dynamically typed, it is also strongly typed. It is just a straw-man. People actually using Ruby know if type safety is an issue, or not. ;) (hint: not)
Re: (Score:2)
One more: immutable.
Re: (Score:3)
I think the Ruby world can be divided into two camps. There'
Re: (Score:2)
Ok, so what's the new flavor of the moment? (Score:3)
Perl 6 (Score:2)
Re: (Score:2)
Just wondering what the new darling programing language is.
Python + Javascript, or just Javascript (via node.js or similar). Everyone is trying to make a Javascript framework. Everyone is trying to find the good parts of Javascript.
Re:Ok, so what's the new flavor of the moment? (Score:5, Interesting)
I swear I did not think I would live to see the time where JavaScript was picked for performance...
Re: (Score:3)
Re:Ok, so what's the new flavor of the moment? (Score:4, Informative)
Yeah, Ruby remains slightly slow because we trade code clarity for speed. The speed and memory usage have both improved drastically over the years, to where now performance is quite good. Not leading, of course. Because only optimization and changes that retain simplicity are used. We don't care about runtime speed, though we increase it when we can do so without giving anything up. What matters more is that we can scale horizontally well, and maintain portability without a lot of repetition and platform-specific gobblygook.
Ruby has an awesome C API, where everything in "Ruby" is also available in C, and so something that needs tight loops and bare-metal whatever, we can do that, and still have a high level interface to whatever we did. We can do the hard parts in C, and still have the app logic that ties it together in Ruby. So you don't even hit a wall where "this software should be in a different language," or "this tool doesn't work for this job." Instead you get, "this class should be implemented in C."
So however fast the C compiler's code is, our code can be that fast if we need it to be. And the Ruby interpreter can remain optimized for readability and ease of bug-fixing. It is like having a whole toolbox and being allowed to use more than one tool for a job. A lot of languages, you choose a tool from the toolbox, and now you have build everything with it, with the only ways around that involving networked interfaces.
Re: (Score:2)
Re: (Score:2)
C# - As a language, ignoring MS's platform-lockage API games, it seems to tick off the fewest.
The biggest problem with C# (and the Microsoft ecosystem in general) is the lack of documentation. There are definitely some interesting ideas, like entity framework, but figuring out details when things aren't working is a real pain because of the poor documentation.
Re: (Score:2)
Re: (Score:3)
As a senior RoR developer of 7 years (Score:4, Interesting)
I spend more of my time writing javascript/coffeescript than Ruby.
Re: As a senior RoR developer of 7 years (Score:2)
I think you misunderstand my statement. I spend the most TIME writing in js/coffee (angular.js in particular). RoR is still the backend, but it's serving more as a thin API layer to backend data services. I also probably spend less time writing Ruby code because of better engineering which can be attributed to the language's elegance.
Re: (Score:2)
I would agree on that.
Rails is decaying, but Chef is keeping Ruby alive. (Score:2, Interesting)
For now at least, Chef seems to be the primary mover/shaker of Ruby-related stuff that I'm seeing anymore, otherwise I just don't encounter it at all.
Node? Check.
PHP? Forever.
Python? Sometimes.
PERL? Yes, I see this more than Ruby.
I'm just not seeing any new deployments of Ruby-based systems outside of Chef to manage those, and even there it's very minimal use of Ruby itself since most stuff is in templates and the like and not truly 'coding' in Ruby.
Re: (Score:2)
Yea, we're evaluating config management tools and have excluded puppet and chef specifically because it requires a ruby instance.
[John]
Re: (Score:2)
Wow. The core of Chef is Erlang which allows modules to load in ruby,perl, python or whatever you want. The client is in ruby.
Excluding the top tools on the market because of zealotry against the language? Wow.
Re: (Score:2)
Not zealotry. I'm not a fan of having to install extra software such as Ruby or other agents on every server. If I can't manage every server with the tool, then I continue using what I do now or look for a tool that doesn't need an agent. Heck, security requirements make installing extra software a bear due to dependencies. I have to manually install and chase down the additional packages. We have quite a few older systems which don't support these agents, even cfengine. So having an agentless tool to do co
Re: (Score:2)
Well, you do not "have to install extra software on every server", you can have Chef or Puppet or even Ansible do that for you. While you're sipping your coffee and watch it run :)
Re: (Score:2)
Yeah, but using tools to that level requires reading manuals, and finding out what the features are before you decide if you hate it or not. It is so much simpler to just learn one way of doing things, and then muddle through with it forever, and install crap on servers by hand. Sure, it takes more work and doesn't scale, but it doesn't require more than one learning cycle per 3 decades. So there will always be a contingent that promote this way, and try to find ways of making themselves sound like Very Ser
Re: (Score:2)
The chef server is in Erlang, of course the chef server doesn't do very much but auth hosts and server files. the client does pretty much everything.
Re: (Score:2)
It actually packages it's own embedded ruby instance, and if you excluding ruby and by extension Vagrant you really are missing out.
Can't sell Ruby to clients. (Score:4, Interesting)
Clients care about hosting costs. Clients care about employment costs. Ruby is not enough slower than most other stuff to matter to a good coder, but most employers avoid actually hiring coders who are that good; they're too expensive and too hard to hold onto, and badly written Ruby is easily MUCH slower than badly written [anything else] for a number of circumstantial reasons. Hence, employers see Ruby as too expensive.
But a lot of this is definitely reinforced by hype.
Re: (Score:2)
The thing is, if you assume the exact same idiots actually get hired either way, their bad Ruby isn't any worse than their bad PHP would be. So that is not different enough to matter in the evaluation. Good try though, it was almost coherent.
Re: (Score:2)
True. But bad Node.js code is faster than bad Ruby code. Will probably have even more bugs in it, though, because of the limitations present in both Javascript and Node.js.
php - ruby - node - ??? (Score:2)
Python (Score:2)
David Heinemeier Hansson was sick of PHP, found Ruby, and invented Rails in 2004. No mention is made of him toying with Python. I think that if he had found Python that he would have liked it just as much. Django had not come out though.
I guess that he did the best he could with what he had, but I wonder if he would he would have just switched from PHP to Django had he started five years later.
Re: (Score:2)
Re: (Score:2)
J2EE became popular because it answered the question in a reasonable way of how to handle state for web application development. Rails became popular because it offered a way to do 80% of what J2EE allowed at 20% of the development time and complexity.
Re: (Score:3)
Of course, Java hasn't stood still, nor have the people that write libraries for it.
Hell, I want to say the Java + Spring + Hibernate stack even existed before RoR did.
Thanks to advances over the years, you can now write Spring applications using no XML. Short example [spring.io] (the longer example guide seems to have gone MIA on the Spring Guides [spring.io] site).
Although I'd hope you'd be using your web server/servlet container's database setup stuff (including connection pooling) rather than hard-coding it into the app.
Re: (Score:2)
No, Java was very heavily influenced by RoR. Before DHH said "Screw Java" J2EE was a seriously bad, complex mess. After lots of people went to RoR because it is such a PITA to write J2Ee (I was one) a lot of simplyfying went into J2EE which improved it.
Some history on Rails and Django (Score:3)
David Heinemeier Hansson was sick of PHP, found Ruby, and invented Rails in 2004. No mention is made of him toying with Python. I think that if he had found Python that he would have liked it just as much. Django had not come out though.
I guess that he did the best he could with what he had, but I wonder if he would he would have just switched from PHP to Django had he started five years later.
The Rails crew knows the Django crew and vice-versa from the very beginning. They're basically drinking-buddies.
Rai
Re: (Score:3)
No, what he's saying is that Rails wasn't written to be a framework for others to use, it was written to solve the real problems that the consultancy that created had to solve for their clients. And it was such a huge success, they gave it away to the world to promote their consultancy business. Which was also successful.
That it has always been solving real problems first, and isn't born from ideology, might explain pretty much everything about its success.
Re: (Score:2)
Rails never had 'steam'. (Score:5, Interesting)
Rails never had 'steam'. (I supose you mean something else than that digi-distro-channel by Valve)
Rails was and is a fad - plain and simple.
Every haphazard PHP project runs circles around it - for the simple fact that deploying PHP is dead simple, whereas with Rails it's a major PITA. Rails was discovered and hijacked/promoted by the Java community - and while they were all happy and gleeful about the lightweight convention-over-configuration approach they didn't know until then - the Rails & Ruby community bloated Rails beyond repair big-time-Java-style with libs, extensions, mandatory deployment systems that only a very small minority really needs, etc. Rails ran into walls in the real world and the abysmal arrogance of its community scared n00bs away.
The truth is, nobody needs rails. PHP and its big frameworks are faster and easyer to develop for, both PHPs and Pythons communities are way more n00by friendly and for people who need something big, easy and scalable there's projects like Plone (Python) or Typo3 Neos (PHP) for massive non-trivial installments, each with hundreds of active developers to back them.
The only thing that Rails had going for it was a website that didn't look like shit - back in a time when most FOSS websites mostly *did* look like shit - and the brand-new concept of screencasts to show of scaffolding and code-generation. That has changed thankfully, throughout the FOSS community. Scaffolding - definitely not a first with Rails - is now well know as a concept and commonplace. And the FOSS projects are finally aware that marketing, including websites that don't suck, is important. That's the overall improvement that Rails brought along.
But right now Rails as a FW is way to bloated, unwieldy and buggy to be of any use for a web-project beyond enthusiasts fiddling with it. I have yet to get a Rails environment running on my laptop for local development. With PHP its download MAMP, XAMPP or "apt-get install mod-php" and start progging.
So, yeah, no steam, only hot air.
And, yes, from what I can tell, the hypes been over since about 2 years.
My 2 cents.
Re: (Score:2)
Rails never had 'steam'. (I supose you mean something else than that digi-distro-channel by Valve)
A steam locomotive. When it runs out of steam, it stops. (Wording chosen for the pun with Rails.)
Re: (Score:3)
I agree that Rails is a fad. But touting PHP as better is... odd. PHP is a dismal language, with horrible coding practices and duplicate commands (some are bad, some are good, who knows which is which). Using a library, you have no idea what code they used... did they use the old string routine that's vulnerable to buffer overflows, or the new one? Why does PHP even KEEP the broken commands, it's insane!
Ruby is good (despite performance issues), PHP is bad [eev.ee]. I'll take any framework built around Ruby over a
Re: (Score:2)
Rails has been out for 10 years. You keep using this word "fad" but I'm not sure it means what you think it means.
Re: (Score:2)
Disco and bell-bottoms were both around for more than 10 years. They are all still a widely-used examples of fads. Methinks you don't understand what fad means.
Whats the alternative then? (Score:2)
I still would find myself hard pressed to select a language and framework that would get a vanilla CRUD based site or backend up and running as quickly as one can with RoR.
Python/Django is heading there but I find Python to be less productive as a language and I've shot myself in the foot a few times due to whitespace issues (especially when refactoring). MS languages are a no-no until they bite the bullet and officially support *nix based system; Java ... shoot me; Scala .. shoot me twice! (and then once m
"Steam" is only half the salary equation (Score:5, Insightful)
Specifically: the demand curve half of the equation. The other half is the supply curve. A platform can have *no steam whatsoever*, but so few programmers that the salaries are reasonably high.
Consider Delphi programming. I see Delphi positions come up once in a blue moon -- it's not used much any longer. But those salaries run from $80K to $110K plus. Sometimes you see a Delphi position come up in the mid 40s, but I suspect they're government positions.
I've seen listings for COBOL or PoweBuilder programmers both in the $60K to $110K plus range. You can bet when a company offers $110K for a PowerBuilder programmer it's because it's having a hard time finding one.
Re: (Score:2)
I see Delphi positions come up once in a blue moon -- it's not used much any longer. But those salaries run from $80K to $110K plus.
$110K doesn't seem like a good salary for a programmer to me, but in some regions maybe it is.
Re: (Score:2)
In what hugely expensive elite enclave in the world is 110kUSD not a good salary for making computer code?
Silicon Valley
I guess you could say... (Score:2)
not short lived enought fad (Score:2)
Re: (Score:2, Insightful)
Tried Pipedot [pipedot.org] and SoylentNews [soylentnews.org]?
Re: (Score:2)
How, exactly, would the appearance of six words on screen improve your Slashdot experience?
Re: (Score:2)
There is virtually no programming problem in a ruby application that makes me grumble because I "have to deal with it" or it will "take years to fix" because it's so easy to fix.
I'm going to have to assume that's because you've never seen Ruby used for anything more complicated than "display this html". Congrats on sounding like you work in a marketing department though. With your nice baseless assertions like:
When I learned that on the fly I could inject or replace a method in a core object at load time and in 3 lines of code solve a system wide problem no matter what design pattern, coding style, or good/bad architectural decision was made by a previous developer it pretty much changed my life as a programmer
I'm also not sure you should be allowed near anything more complicated that "display this html" with an attitude like that. The "bad architectural decisions made by previous developers" that people complain about are usually made by previous developers with that exact attitud
Re: (Score:3)
Basically the above is: http://www.randomhacks.net/200... [randomhacks.net]
Re: (Score:2)
That sounds like an utter nightmare. 2 + 2 = 4, except when we patched + to mean something else.
Re: (Score:2)
Ruby will probably fail to go mainstream for the same reason Lisp has. It's wonderfully flexible in that it's almost a meta language that allows you to shape your "language" into just about any construct you want.
The downside is that everybody thinks different, and shaping a language to fit your head de-fits it for other heads. Standards are often preferred because they provide consistency between individuals and teams even when they don't perfectly fit a specific situation in terms of parsimony and compact
Re: (Score:3)
The real win for me is JRuby. The Java ecosystem is at least as broad as perl, and generally better suited to enterprise applications. There are generally perl modules for everything, but they often perform far worse (e.g. Net::LDAP is probably an order of magnitude slower than UnboundID processing LDIF) or are just terrible code (e.g. Net::Sieve::Script which is a regex-based hack, rather than an actual language parser like jSieve).
Re: (Score:2)
Yes. Clearly. Visual Basic was a sysadmin language, a standard bearer that's copied in every other language, used to write DNS tools, ported to run on the JVM and use Java libraries, and the DSL language chosen as the basis for most of the infrastructure management tools used today for the cloud....
Exactly the same.
Re: (Score:2)
and the DSL language chosen as the basis for most of the infrastructure management tools used today for the cloud....
In what alternate universe? There are 23 such tools listed on Wikipedia and only 3 are written in Ruby and/or use Ruby as one of the DSLs for configuration. 13% is hardly "most".
Re: (Score:2)
Java is grand. Using jRuby to prototype, explore and extend is even better.
Re: (Score:2)
Shut the fuck up, Ruby shill.
What an excellent, well-thought-out rebuttal! I'm sure everybody will flock to adopt your analysis.
I could replace you with a Ruby bot in under 10 lines of code, and nobody would notice the difference.
Re: (Score:3)
even without Rails, Ruby itself is just about the ultimate utility language. There's legitimately no reason to avoid learning short of "I hate Ruby for no apparent reason".
Really? No legitimate reason at all? Not even "I code embedded systems" or "I'm a carpenter"? Or less fascetiously, because typechecking makes debugging easier, so some people don't want to use a dynamically typed language.
Re: (Score:3)
Embedded systems have mRuby, which is super-hot in robotics right now. It is a set of C libraries, you can pick and choose which parts of the language you want to build in, and it runs almost anywhere with 32bit registers and x (some small amount) RAM.
Ruby has real advantages in the way it combines Smalltalk object semantics with C/Perl style syntax. It is important to learn, even if you're not going to use it, because it is one of the big ideas in the industry over the past few decades. I got interested i
Re: (Score:2)
Embedded systems have mRuby, which is super-hot in robotics right now.
[citation needed] I know tons of embedded programmers and not a single one uses Ruby in their work.
It is a set of C libraries, you can pick and choose which parts of the language you want to build in, and it runs almost anywhere with 32bit registers and x (some small amount) RAM.
So basically excluding a large part of the embedded market that runs on 8-bit and 16-bit microcontrollers with KB of RAM and ROM.
Re: (Score:2)
Kernel hackers should have at least a few hours toying with all of the modern languages so that they understand how the OS is used by the applications that do whatever tasks the computers are there to do. Kernels aren't useful without applications. Haters gotta hate, but hate is no reason not to learn the basics of the industry you work in. Especially if you fancy yourself as having an important role of some sort.
Not all mathematicians will need to use all the techniques that are taught. But they still are
Re: (Score:2)
1) anyObject.class
2) Um, no. Objects cannot magically change their class, period. You might assign a different object to a given variable, but the language is strongly typed.
3) Huh? There are relatively few symbols in Ruby, as a rule. Are you referring to special variables (like $: $0 etc?)? Those are ancillary and not considered idiomatic these days. Don't like them? Don't use them.
4) Why shouldn't they? The first is a just a chained method. No different than "foo.split(' ').length;" in Java. I'm
Re: (Score:2)
It may not be the most popular option, but Ruby is hardly a marginal language. RedMonk has it tied for 6th with C++, PYPL has it at 10th, and TIOBE has it at 14th. It came off from the Rails high, but it remains steadily popular.
The ecosystem has actually got significantly better over the years, especially as Puppet, Chef, MCollective and others have driven popularity as an admin language, rather than a web language. But more importantly, JRuby pulls in the entire Java ecosystem, which actually puts it i
Re: (Score:3)
jRuby totally changes the dynamic for Ruby, no question. It solves virtually every non-imaginary production problem that Ruby's historically had WHILE adding the entire Java ecosystem to the mix.
Python is very heavily tied to C. Ruby seems to live in both worlds much more successfully.
Re: (Score:2)
RedMonk has it tied for 6th with C++, PYPL has it at 10th, and TIOBE has it at 14th. It came off from the Rails high, but it remains steadily popular.
That would be a usage of the word popular with which I was previously unfamiliar.
That makes it sound as popular as poking your eyes out with a tree branch.
Re: (Score:2)
the Schwartz is with you!