3 ms·
I was a bit perplexed by this, too. 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 R
by jgw 15y ago
I was a bit perplexed by this, too.
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?
- shareme 15y agoread Zed Shaw for his take on that
- jamesmarc 15y agoMost entertaining quote: "This is exactly what makes Rails a ghetto. A bunch of half-trained former PHP morons who never bother to sit down and really learn the computer science they were too good to study in college."
- RegEx 15y agoOuch, I felt that. I need to whip out the textbook of the algorithm analysis course I dropped out of to make the hurt go away.
- ejames 15y agoIt's hard to make accurate, general statements about a group. It's also hard to tell good programmers from bad programmers. So it's very hard to say whether Rails programmers in general are good or bad. 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.
- Toenex 15y agoYes I find it odd that someone would limit their own description not just to a single programming language, but a language-framework combination. I much prefer to employ handymen who know how to use both a hammer and a screwdriver, if not all the tools they need.
- jgw 15y agoThanks for the insight. I guess what I was really getting at is the folks who know Rails, but not Ruby. If you don't know the language underlying your own framework, it seems unlikely that you'll know much else, language-wise (like C, for instance). I'd be loathe to call someone who doesn't really know any programming language a programmer at all. It almost seems like the arrogance alluded to by many posters in this thread comes from using a framework that is itself perhaps a work of genius, as if that somehow implies that merely using it is genius, too. The other thing that surprised me in that post was "the barrier to entry with learning rails is a little tricky". In the context of all the flak that the "Java schools" (which seems to be all of them, now) get for not weeding out weak programmers, I would have guessed that learning Rails would be even easier. Comparison to PHP doesn't seem like a very good yardstick for aptitude.
- ejames 15y agoI think there are two types of claims typically made in the "people who use X are better/worse programmers than people who don't" argument. One is a claim based on difficulty. X is really hard, so if you can use it successfully, you must be an excellent programmer. Another is a claim based on taste. You must be very sophisticated and knowledgeable in order to see why X is good, so people who choose X are excellent programmers, because they know the difference between good and bad technologies. I tend to feel that you shouldn't take credit for having good taste in frameworks (or text editors, or etc.) until you have worked with more than one. Otherwise, even if you pick the 'best' one right off the bat, it was mostly luck.