Most programming languages have some design decisions that influence their usage and applicability.

For example:

Python focused on maintainability/readability of code and had indentation be a part of the language itself.

Java's intention was to be cross platform OOP 'easier' and 'friendlier' than C++

Objective-C was built as an OO wrapper around C not knowing the future of C++ at the time

Erlang is designed for highly fault tolerant and concurrent systems

PHP designed for handling dynamic creation of web pages

CoffeeScript designed to expose the good parts of Javascript and adding OOP syntactical sugar and hiding the nuances (globals etc.) of JS 'behind the scenes' etc.

Each programming language tried to exploit and capitalize on a particular niche IMHO. The above are my perspectives on what were the founding principles of the programming languages and that governed their evolution and widespread adoptability. Of course, there are many more, but the list is only intended as an example

However, I've struggled to understand the founding principles on which Ruby is based and its growing popularity. What were the founding principles of Ruby that makes it popular today? Or is it the genius of one man who designed the Rails framework? If the latter was it that Ruby made the designing of Rails better/easier/faster? In what sense?

The most commonly cited reason as per its creator is '...wanted a fun weakly typed programming language' - I don't see that as a reason for creating a new programming language altogether! Programming is sheer fun IMHO irrespective of the language (each language has some bad parts, but one either gets around it or lives with it).

So what niche did (or does) Ruby exploit that isn't exploited by the current languages? What is the 'strong point' (USP) of Ruby that has led to its widespread adoptability? What did Ruby do that wasn't done before (or was extremely difficult)?

I'm not a Ruby programmer, but just a Ruby noob and hence the confusion.

Disclaimer: This is NOT a flame war and I'm not looking for Ruby vs Programming language type of answers. I am looking for the design decisions on which Ruby is based that has led to widespread adoption. What niche does Ruby satisfy to have become popular or is that purely attributed to Rails?

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.
If this question can be reworded to fit the rules in the help center, please edit the question.

4 Answers
4

The Rails framework. Rails assembled together many useful patterns to ease the development of web applications and boosts developer's productivity. Compare this to Java's verbose and tedious web development and the "one man show" .NET platform. Creating weblog web applications in minutes was a jaw dropping.
You can see the "Rails effects" on many new JVM web frameworks like Grails, Play! and Spring Roo.

Success stories like Twitter and Github. Startups needs to hit the market as soon as possible and with Rails, this is possible. Success stories were an evidence.

Ruby programming language itself is beautiful, powerful and expressive. IMHO, Ruby is the secret sauce of Rails success.
Look at the beauty of Cucumber and Sinatra, the beauty of DSLs done right.

Eager and brave community that isn't afraid to experiment and innovate.

(Personal opinion and may not be vital reason) It is created in Japan. Nothing beats the image of "Made in Japan".
To me, learning programming languages created in different countries is the same as meeting new people. It is fun and educative.
Ruby/Japan, OCaml/France, Lua/Brazil, Lisp/Mars :)

First, Ruby is a "current language". Maybe you mean "Languages that were popular when Ruby was created in 1995."

I like Ruby for the same reasons I liked Perl:

It's powerful and expressive. I can write about one line of Ruby code instead of five lines of Java or C++. There is no repetition that can't be factored out with minimal fuss.

It's dynamic. Methods and properties can be created at run-time, so I can wrap objects around externally defined things, like database tables, without duplicating the definition of those things, and without rebuilding the application.

There is an excellent book on the language (Programming Ruby) that is both readable and comprehensive.

There is a single repository for public-domain packages, and a convenient command-line interface to the repository.

But I like Ruby better than Perl because it's more readable.

There are numerous pages comparing Ruby with Python. I like them both. I prefer Ruby, but I have limited experience with Python.

I remember reading it was hoped that (what would become Ruby) would become good enough to replace Perl in the foreword of Programming Ruby.
–
RigMar 13 '12 at 21:44

@kevin: Those are some of the features of the language and I'm well aware of them. However, I'd like to know the 'reason for creating Ruby' other than "I want a fun/weakly typed language" (or is that reason itself big enough??
–
PhDMar 13 '12 at 21:45

1

@Nupul: These things aren't done by committee. Matz took a notion and wrote Ruby. He showed it to some other people after a while, and some of them liked it. That's how LISP, Smalltalk, C, C++, Pascal, Perl, Ruby, and Python were created. I think it's the same for most programming languages. Only a few were created by committee or corporate initiative.
–
kevin clineMar 13 '12 at 21:54