why we use ruby rather than other language.
Santosh wrote:
why we use ruby rather than other language.
Because Ruby has many features that make it extraordinarily flexible and
easy to program. Most people who use it cannot remember working with any
language so easy.
If someone wrote a Rails-style web framework in any other language, it
might
have any of these problems…
-
a big corporation invented the language and made it
stupid and obese on purpose -
no support for block closures, which allow very
minimal code to get a lot done -
poor support for OO. The best Object Oriented
programming makes everything an object, even a 5 -
no rabid community of people competing with each
other to add cool features to many projects -
a code line count from 3 times to 20 times greater
Put them all together, and “Ruby stays out of your way”. You can write
only
a little Ruby and get a lot done. Try this:
3.seconds.ago
If you had to use any other language, you could write 2 to 5 times as
much
code just to calculate 3 seconds before the current time. That might
make
you hesitate, and then might make you chose a less obvious strategy,
such as
entering a fixed date and changing other code to accomodate it.
Ruby often lets you express yourself with lines that read like normal
English. So as you refactor and clean up your code, pushing it towards
normal English will often make the code leaner and simpler. Other
languages
don’t permit such incredible flexibility and expressiveness. Here’s an
example from one of the books:
Order has_many :line_times
That’s within a few delimiters of gramatically correct English. And it
replaces a couple dozen lines of ugly SQL.
–
Phlip
Redirecting... ← NOT a blog!!!
On 11/22/06, Santosh [email protected] wrote:
why we use ruby rather than other language.
Short answer: you write less code.
Long answer:
Ruby
Ruby is a wonderfully expressive langugage. My personal experience is
that I can express the same idea in about a tenth to a quarter of the
lines of code that I would need in Java.
While lines of code are a terrible metric for progress, they are a
good metric for complexity and stability:
It has been shown empirically that a programmer will write about the
same amount of lines of code in a day, regardless of the language he
uses.
Every line of code that is written contains at least two points where
faults can be introduced:
- an algorithmic fault - the idea itself, which is expressed in the
line of code, is wrong - a syntactic fault - the way in which the idea is expressed is wrong
If a ruby programmer writes less code, the opportunities to make
mistakes are dramatically reduced, specifically those of the syntactic
variety.
Another interpretation is that of essential and accidental complexity:
Essential complexity describes the complexity inherent in a problem,
for example the minimum number of operations required to execute a
bubblesort algorithm.
Accidental complexity describes the complexity required to satisfy a
framework or a programming language, for example the need for static
typing in Java or the horrible mess that is the J2EE standard.
By reducing accidental complexity through a concise language like Ruby
and a framework like Rails, you instead concentrate on the essential
complexity.
While I can write very concise code in Perl, it looks rather like a
cat ran over the keyboard. One of the major points for Ruby is that it
does not sacrifice readability for conciseness. Keep in mind that
while a line of code is written only once, it is read many times
(either by you, or by some other person tasked with maintaining it).
Rails:
Sensible defaults (convention over configuration) - if a feature is
used by 100 people in 99 different ways, the one way that is used by
two people should be the default. While extensibility and flexibility
is a worthwhile goal for the development of frameworks, it can
eventually lead to the problems that the J2EE standard has -
everything (and I mean everything) must first be configured in some
extremely verbose configuration language. Why a framework would force
me to do that rather than give me the behaviour desired by 90% of its
users is simply beyond me.
DRY - Rails is the best example I know of the very consistent
application of some important design principles, most notably “Don’t
Repeat Yourself”. I find that when writing Rails code, I cringe every
time I copy and paste a piece of code. This is because I know that
there are easy-to-use mechanisms in the framework that allow me to
refactor the common parts of the code in very little time. The
benefits of working in a framework that causes that kind of attitude
in a programmer cannot be overstated.
In summary, using Ruby and Rails gives me significant productivity
gains - I was sceptical when I first read about those gains stated by
other people, but I have found them confirmed, and then some. If I am
writing less code to express the same ideas, I get more ideas
implemented in a shorter amount of time. This is not only extremely
satisfying, it also serves - at least for me - as a great motivator as
I can see more visible progress in my projects.
Cheers,
Max
It’s the wrong question. It should be: Why would you program in any
other
language rather than in Ruby?
Nicolai
for the purposes of this list, i’d go with “because you want to use
rails”. it’s rather impossible to use rails without ruby. there are
other reasons, but probably better asked and answered in other contexts.
-faisal
Max M. wrote:
that I can express the same idea in about a tenth to a quarter of the
faults can be introduced:
Essential complexity describes the complexity inherent in a problem,used by 100 people in 99 different ways, the one way that is used by
Repeat Yourself". I find that when writing Rails code, I cringe every
writing less code to express the same ideas, I get more ideas
implemented in a shorter amount of time. This is not only extremely
satisfying, it also serves - at least for me - as a great motivator as
I can see more visible progress in my projects.Cheers,
Max
Max - well put!
Justin