Linked by Kroc Camen on Sat 27th Dec 2008 20:52 UTC
General Development Dave Thomas, programming book author and Ruby evangelist presented the keynote at RailsConf2008; "There's a sound that no presenter wants to hear, and that's dead silence. And that's what greeted me when I made a suggestion in my RubyConf keynote [...]. I think by the end of the talk, though, most people were convinced." This is one of the best programming topic presentations I have ever seen. Even if you've never written a line of Ruby, you'll find it perfectly clear-and enjoyable. Watch, and then "read more" for Kroc's personal commentary on the issues raised.
Thread beginning with comment 341660
To read all comments associated with this story, please click here.
Why?
by Nycran on Sun 28th Dec 2008 00:52 UTC
Nycran
Member since:
2006-02-06

Why is parallelism even needed for a language that is used primarily to serve web scripts? Each and every thread on the web server is running concurrently... is that not enough?

RE: Why?
by panzi on Sun 28th Dec 2008 01:04 in reply to "Why?"
panzi Member since:
2006-01-22

Erm, afaik rails is not multithreaded. Or has that changed meanwhile? However, there is still the GIL in python and I believe in ruby, too. Before one can think of such parallel constructs one has to remove the GIL. Why is there even a GIL in those languages? Java hasn't a GIL, not even in interpreted mode (afaik).

Reply Parent Bookmark Score: 1

RE[2]: Why?
by sbergman27 on Sun 28th Dec 2008 01:13 in reply to "RE: Why?"
sbergman27 Member since:
2005-07-24

However, there is still the GIL in python and I believe in ruby, too. Before one can think of such parallel constructs one has to remove the GIL.

That is a *very* common misconception. The GIL is a blessing, and not an impediment:

http://docs.python.org/library/multiprocessing.html#module-multipro...

The performance is astounding. And fibers are on the way to cover the cases where pure multiprocessing is not appropriate. In the mean time, multiprocessing and threading can be combined.

Reply Parent Bookmark Score: 2

RE[2]: Why?
by FooBarWidget on Sun 28th Dec 2008 10:20 in reply to "RE: Why?"
FooBarWidget Member since:
2005-11-11

Erm, afaik rails is not multithreaded. Or has that changed meanwhile?


Rails has been thread-safe since version 2.2. Inside a single request, the application can choose to use threads, but doesn't have to.

However, there is still the GIL in python and I believe in ruby, too.


The Java and .NET implementations do not have a GIL and are fully concurrent.

Why is there even a GIL in those languages?


Makes implementation easier.

Reply Parent Bookmark Score: 2

RE: Why?
by sbergman27 on Sun 28th Dec 2008 01:07 in reply to "Why?"
sbergman27 Member since:
2005-07-24

Why is parallelism even needed for a language that is used primarily to serve web scripts? Each and every thread on the web server is running concurrently... is that not enough?

That depends upon how one thinks of Ruby, of course. Is Ruby just "The language that Rails provides"? Arguably, yes. (People might quibble, and correct me for not saying "The language that Rails runs on". But, practically speaking, there isn't much difference.) And yet Ruby is a general purpose language, which happens not to have as complete library support as the other two major dynamic languages. But there is still potential. Anyone who wants to see Ruby succeed as a general purpose language might reasonably be thinking about methods of better solving the concurrency issue.

In contrast, PHP categorically has little need to worry about language-based concurrency features.

Edited 2008-12-28 01:14 UTC

Reply Parent Bookmark Score: 2

RE[2]: Why?
by google_ninja on Wed 31st Dec 2008 21:04 in reply to "RE: Why?"
google_ninja Member since:
2006-02-05

Ruby is also relatively young compared to the other two. It would be quite an accomplishment if it had the same breadth of libraries then python, which has four years on it, or perl which has 8

Reply Parent Bookmark Score: 2