Average Rating: 4.5/5.0Number of Ratings: 324Number of Reviews: 4
My Review of Ruby |
||
You have not rated or reviewed this project.Click below to rate/review. | My Rating: | |
New Review |
Coming from Python, I was at first mildly annoyed by how "loose" Ruby felt. The liberties one is allowed to take with the syntax can seem alarming, especially to someone used to Python's nazi-like enforcement of strict conventions.
Eventually though it all falls into place, revealing a beautiful language where concepts and processes easily lend themselves to natural representation. It just *feels* right. What's more, once mastered, the language's messiness encourages the kind of creative problem solving that other languages can only dream about. In Ruby, doing something in a clever way actually feels intrinsically rewarding -- you *want* to make your code concise and clean, and it feels good to do it (unlike in other languages that attempt to strong-arm you into writing good code but only end up getting in the way).
My only gripe would have to do with the occasional awkwardness one encounters when trying to implement dynamically-generated extensions to objects'/modules' behaviour (for example, dynamically generating some methods when a particular module is included).
Every programming language out there has flaws, and Ruby is no exception. the question is how bad are the flaws, and are the good parts good enough to justify using the tool anyway. You have to answer that for yourself, but Ruby is definitely worth investigating if you care about the tools you use.
The bottom line is, when you compare the syntax and structure of Ruby with other similar "mainstream" languages, it is obvious that the design of Ruby was intended to make things easier for *users* of the language, instead of the *implementers* of the language.
People who have not spent a lot of time using different programming languages, or who have not invented and implemented a programming language for themselves may not have as much appreciation for this.
Yes, there is a lot of Ruby-related *hype* and exaggeration out there, but that's true of lots of technologies, some of which should never have seen the light of day.
Ruby as a language has it's place - and people need to remember that. I honestly can't count the number of times I've had people cram the idea down my throat that Ruby is the alpha and omega of programming. This simply is not the case. It's great at what it does - SCRIPTING! (be it small utilities or web pages). I certainly wouldn't want to use it to write a RDBMS engine.
It's not quite as "English" as people would claim (e.g. how "<" means extend in the English language is a stretch of the imagination at best [doesn't "<" mean "less-than"?], and "{||}" isn't a very friendly looking "English" thing to see when you start programming in it).
True, a lot can be accomplished with very little code - but not if you are writing a framework which should screen for invalid information, especially since some of the class hierarchies don't make sense (e.g. TrueClass and FalseClass do not extend the same parent class, so checking that an object is a boolean isn't very straight forward).
Keep perspective and be honest about it's strengths and limitations, and you may very well enjoy the ride.
Every programming language out there has flaws, and Ruby is no exception. the question is how bad are the flaws, and are the good parts good enough to justify using the tool anyway. You have to answer that for yourself, but Ruby is definitely worth investigating if you care about the tools you use.
The bottom line is, when you compare the syntax and structure of Ruby with other similar "mainstream" languages, it is obvious that the design of Ruby was intended to make things easier for *users* of the language, instead of the *implementers* of the language.
People who have not spent a lot of time using different programming languages, or who have not invented and implemented a programming language for themselves may not have as much appreciation for this.
Yes, there is a lot of Ruby-related *hype* and exaggeration out there, but that's true of lots of technologies, some of which should never have seen the light of day.
Ruby as a language has it's place - and people need to remember that. I honestly can't count the number of times I've had people cram the idea down my throat that Ruby is the alpha and omega of programming. This simply is not the case. It's great at what it does - SCRIPTING! (be it small utilities or web pages). I certainly wouldn't want to use it to write a RDBMS engine.
It's not quite as "English" as people would claim (e.g. how "<" means extend in the English language is a stretch of the imagination at best [doesn't "<" mean "less-than"?], and "{||}" isn't a very friendly looking "English" thing to see when you start programming in it).
True, a lot can be accomplished with very little code - but not if you are writing a framework which should screen for invalid information, especially since some of the class hierarchies don't make sense (e.g. TrueClass and FalseClass do not extend the same parent class, so checking that an object is a boolean isn't very straight forward).
Keep perspective and be honest about it's strengths and limitations, and you may very well enjoy the ride.
Coming from Python, I was at first mildly annoyed by how "loose" Ruby felt. The liberties one is allowed to take with the syntax can seem alarming, especially to someone used to Python's nazi-like enforcement of strict conventions.
Eventually though it all falls into place, revealing a beautiful language where concepts and processes easily lend themselves to natural representation. It just *feels* right. What's more, once mastered, the language's messiness encourages the kind of creative problem solving that other languages can only dream about. In Ruby, doing something in a clever way actually feels intrinsically rewarding -- you *want* to make your code concise and clean, and it feels good to do it (unlike in other languages that attempt to strong-arm you into writing good code but only end up getting in the way).
My only gripe would have to do with the occasional awkwardness one encounters when trying to implement dynamically-generated extensions to objects'/modules' behaviour (for example, dynamically generating some methods when a particular module is included).