Is there not a single rails developer who isn't totally full of themselves? It's a programming language. It's not magic, and rails doesn't mean you're a good programmer. I'm more and more frustrated every time I read stuff like this. When I was learning Rails I was berated with tutorials that made statements like "Rails is a whole new way of thinking" or "Rails means you don't have to work with cruft like braces!!". It's like being the apple fan-boy for a programming language. "Oh it's amazing and everything else means you're not committed to the craft".
I don't hate Ruby or the Rails framework, but I do hate this attitude that I see proliferated through the vast majority of people I speak to who use Rails.
I live on the other side of the hardware-software divide (I'm an ASIC guy), so I don't really know in-depth about Ruby or Rails. My impression, though, is that Ruby is a great, expressive language, while Rails is essentially a DSL on top of it that lets you very quickly build web apps without actually dealing with a lot of Ruby. That, in fact, many Rails developers tend to have a bit of a reputation of not being good programmers because many don't know the underlying language well. Is there some truth to that, or have I come away with the wrong impression?
I can tell you, however, that it's quite common for Rails programmers to not know much about Ruby except for the parts used by Rails. In the U.S., Ruby was popularized by Rails, and very few programmers learned the language separate from Rails. I'm unusual in that I picked up Ruby first (while visiting Japan) and learned Rails much later.
Rails is much more than a DSL - I would call it a framework, which includes several DSLs as sub-components - but for a pretty broad range of the complexity of your web application, you spend more time and code dealing with Rails library functions and DSLs than with 'pure' Ruby. In most cases, that's the point - Rails is useful precisely because it gives you library functions, DSLs, and middleware components that deal with common web app issues. Rails is a good framework precisely because you can use the framework instead of building things from scratch in pure Ruby.
Because of those factors, many Rails programmers don't know the underlying language of Ruby or understand it very well, and I think it's accurate to say that a common mistake made by Rails programmers is to misapply Rails-style conventions in other projects.
Rails programmers do have a reputation, in some places, of not being good programmers. (Whether the reputation is entirely accurate is another issue.) I think the most common specific complaint I've heard is that Rails devs don't know SQL because ActiveRecord does it for them.
I'm sure there are plenty of Rails developers who are good people, they're just eclipsed by guys like this shouting about how awesome everything they touch is.
HN seems to link to a lot of these blogs where the author breathlessly shares some sophomoric musing demonstrating more arrogance than insight. A few people with nothing better to do post critical comments while dozens of others cheer "right on, I'm liquidating my savings to do my <adjective> start-up too, stay strong brother". The rest of us have just finished our coffee and have work to do today.
If this were true my current employer wouldn't have spent the last six months trying to find a good senior-level ASP.NET developer.
On the flip side of this, there's a good reason .Net developers are dime a dozen - .Net jobs are dime a dozen. It gives us variety and the ability to find another job quickly.
Also, I've found many times that the reason employers use technology like .Net and Java is that they have a bigger pool of candidates to pick from.
It's one thing to create a HelloWorldClass in Java. But I hear that understanding typing or concurrency in Java is much harder than learning a DSL or web framework like Rails. That's the type of stuff they gloss over at uni, from what other devs (I don't know Java, and have a basic understanding of {in/co/contra}variance) tell me.
I've seen this a lot in 2012 with the proliferation of Code Year and "learning to code" resolutions, but let me state: printing "Hello, world" to stdout doesn't mean you've learned a language.
I'm sorry you feel this way, and to be honest, it was exactly what kept me away from getting on rails when I first heard about it in 2005. The attitude was a massive turnoff and it took me 2 years to get over it and finally start using Rails (I discovered how many of my problems it solved).
I'm a Ruby/Rails dev who's done ASP, ASP.NET, PHP, Coldfusion, Perl with C++, Assembly and Java in College, and my experience is that ... across the board with programming languages or frameworks, the brightest guys are also usually the most humble.
If a person exudes a superior OR condescending attitude about a particular framework or language, especially if that is the only one they use, I generally just ignore them. I think you should too.
I find (and this is a massive overgeneralization, so beware) that people like this aren't very flexible thinkers, prone to dogma and group think. By filtering this way, you can actually zero in on the people that have something valuable to add to your life as a dev.
Just my 2c.
Can you give an example? I've only been doing ruby for a while but so far all the ruby developers I've met are hard-working, smart programmers who give a disproportionate amount of the work they do away for free via open sourcing their code.
I think that is fair statement, assuming an older article. Rails was revolutionary in the same way the iPhone was revolutionary. Neither contained anything groundbreaking inside, but the whole package demonstrated a better way to utilize existing technologies. It was a new way of thinking, and in both cases, many vendors followed in that thinking.
Or maybe I'm just full of myself...
Fascinating -- I play three instruments. I never noticed a correlation before.
Its the concepts and fundamentals that are important. I bet you that most javascript and ruby developers dont know what an AST is and how a regex can be transformed into a state machine. Not even to mention how lambda calculus influenced lots of languages.
Anyway. Languages come and go. Frameworks come and go. However the problems associated with computer science, like distributed computing, scaling, mobility. They will stay.
The best software engineers are the ones that understand the basics. And most importantly: know how to use them in practice.
A good software engineer will choose a framework language depending on the domain / problem that needs to be solved.
Not because they like it.
Scaling, mobility, and distributed computing are all problems for the electrical engineers--theoretical computer scientists likely already have the answers.
The bridge between theory and practice is where most of us find work.
EDIT: changed "true computer scientists" to "theoretical computer scientists" and hedged bets slightly.
And the answer is .. 42?
No, really. When did the distributed computing issues become "solved" in computer science?
This is the money quote for me, if you are programming because you love programming, you find a level of self motivation in that joy. Have you ever heard/seen a programmer excitedly running through the source code base and changing all the calls to a particular subsystem to use a new syntax/set of parameters because how 'cool it was going to be' when this was in place? Here they are doing tons of 'crap' work because they are excited about the system will look in the end. Whereas people who really don't love programming won't even start on changing a routine if it means they are going to go back and change everything that calls it, because of all the 'drudge' work.
That difference in attitude has a huge impact on their productivity.
Yep, just because you know a certain framework (not even a language, a freaking framework) means that you can pass judgement on how valuable every Java and .NET developer is. This guy obviously doesn't have a clue about what he's talking about. They don't teach any other framework at most universities. It's assumed you can learn that stuff on your own. Just because you went and learned Rails doesn't make you automatically a programming superstar.
If bleeding-edge technology X proves to be widely useful, you have a brief window of opportunity where simply knowing X gives you an advantage.
Then you slowly become two for a dollar, three for a quarter.
I thought I was just a Ruby guy, but once I was exposed to other languages I realized that once you know how to program, the language you program in doesn't matter.
Sure some languages are better at specific tasks, but they're all just tools; if you can use one you can probably pick up another one with very little difficulty (this also assumes were talking about object oriented languages here--transition from OO to a functional language is a bit different).
ie- Can't be productive in another language... Finds Rails, thinks he/she is a genius. Anyone can consider himself or herself a professional artist, but that doesn’t make it so.
I'm trying to fight being mean, but Ffff!!
I don't know for the rest, but yes I do play piano :-)