Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

MagLev, Ruby VM on Gemstone OODB, Wows RailsConf

kdawson posted more than 6 years ago | from the rails-oh-i-get-it dept.

Databases 132

murphee ends along a report from InfoQ: "Gemstone demoed [MagLev,] their Ruby VM built on their GemStone S64 VM, to an ecstatic audience. Gemstone's Smalltalk VM allows OODBs of up to 17 PetaBytes, with none of the old ActiveRecord nonsense: the data is persisted transparently. The Gemstone OODB also takes care of any distribution, allowing the Ruby VM and data to scale across many servers (Cheerio, memcached!). There's also an earlier quite technical interview with Gemstone's Bob Walker and Avi Bryant about MagLev."

cancel ×

132 comments

Sorry! There are no comments related to the filter you selected.

I'm sorry... (5, Insightful)

Anonymous Coward | more than 6 years ago | (#23614609)

What?

Re:I'm sorry... (4, Informative)

corsec67 (627446) | more than 6 years ago | (#23614615)

Agreed, I develop in Ruby on Rails full-time, and I barely understood 1/3 of that summary.

OODB = Object Oriented Database (possibly a OODB type of model) helps in translating that from specialist to mere geek.

Re:I'm sorry... (-1, Troll)

Anonymous Coward | more than 6 years ago | (#23614719)

WRONG - ood isn't easy, nor is it something you give to a mere geek. if you really think that, i'd never hire you. period.

Re:I'm sorry... (2, Informative)

snl2587 (1177409) | more than 6 years ago | (#23614861)

And I, for one, wouldn't want to work for you for failing to understand what the GP was saying.

Re:I'm sorry... (-1, Flamebait)

Anonymous Coward | more than 6 years ago | (#23616003)

Wow, how much fail are you? How far from madness are you? Hobby technologists should never design a db. Half you fuckers can't do anything right.

Re:I'm sorry... (0)

Anonymous Coward | more than 6 years ago | (#23616141)

Wow, how much fail are you?

Did you really just say that?? What are you, like 12?

Re:I'm sorry... (-1, Flamebait)

Anonymous Coward | more than 6 years ago | (#23616605)

Use your big boy voice and come back to me.

Re:I'm sorry... (1)

cytg.net (912690) | more than 6 years ago | (#23615863)

scary thing would be you hiring people.. ;)

Re:I'm sorry... (-1, Offtopic)

Just Some Guy (3352) | more than 6 years ago | (#23614721)

Agreed, I develop in Ruby on Rails full-time, and I barely understood 1/3 of that summary.

They said that Ruby is slow, Smalltalk is better, and that SQLAlchemy can beat up ActiveRecord. Also, PHP sucks.

*sits back to watch the ensuing flamewar*

OODB, oh oh (2, Interesting)

Tablizer (95088) | more than 6 years ago | (#23615395)

I thought the OODBMS fad was finally dead. OODB's resurrect many of the problematic ideas that drove Dr. Codd to formulate relational to begin with. Thus, they could be considered a step backwards. But this would start a paradigm Holy War here and we don't want that, do we?

Re:OODB, oh oh (1)

DarkOx (621550) | more than 6 years ago | (#23616029)

Not really OODB, while I agree with you is a fad in that they are more interesting then useful (so far anyway) but they are not what Codd was aiming to fix.

I am way to young to have been their but I do recall the history portions of my computer science education. Hey even in engineering like disiplines those who don't know their history are doomed to repeat it. What existed before RDBs at least in the saleable world were table systems based on flat files with no integrity checking and implemented without the formalism and normalization Codd developed. The more stuctured systems used hierarcal databases or navigational databases. These were useful in lots of situations but were either slow to search or imposed heavy restrictions on the types of relationships entities could have with each other(so you could make some assumptions about where to find things when searching).

Re:OODB, oh oh (1)

K. S. Kyosuke (729550) | more than 6 years ago | (#23616137)

A step backwards? A fad? How exactly is designing a database capable of doing things that RDBMS cannot (or cannot do easily, that does not matter) supposed to be "a step backwards"? There are tasks for which using an RDBMS is simply inadequate, but since the problem still does not fit into memory, you still need some form of database (if we define "database" as a piece of software capable of handling a big amount of data that does not force you to think how yo store it and lets you do the creative work).

What are those "problematic ideas" you are taling about and how does an RDBMS help us with analyzing large tree and/or graph datasets, knowledge bases and other forms of data that does not fit the relational model? There is a valid need to do such things (even in the order of tens and hundreds of gigabytes) and there is a valid need for data storage that does not work against your algorithms. (I do not claim that everyone has this need, though, and I have no problem admitting that those people are a minority.)

Re:OODB, oh oh (1)

nuzak (959558) | more than 6 years ago | (#23617859)

You're arguing with Tablizer here. Visit the page in his sig and, well, you'll get the idea what he's about. He used to be a lot worse.

Anyway, an OODBMS can express relations just fine; they're just not usually locked in to a fixed schema. What gave Codd fits was that early OODBs didn't even have so much of a formal schema mechanism (and some still don't) so you'd have to query by following a graph and no other way. Really good OODBs have a solid meta-model you can target for queries, and thus implement pretty much the same sort of thing as any RDBMS, just with different syntax.

Re:OODB, oh oh (1)

Ed Avis (5917) | more than 6 years ago | (#23618063)

What are those "problematic ideas" you are taling about and how does an RDBMS help us with analyzing large tree and/or graph datasets, knowledge bases and other forms of data that does not fit the relational model?
How does an object-oriented database system help with them?

Re:OODB, oh oh (1)

K. S. Kyosuke (729550) | more than 6 years ago | (#23618357)

How does an object-oriented database system help with them?

Usually by allowing to run arbitrary algorithms on the server side (or in-process, in case of embedded OODBMS), often in a natively compiled language (like Allegro Common Lisp in case of AllegroCache, which has *very* high performance), without client-to-server roundtrips, without impedance mismatches, without forcing you to express the idea with relational operators only.

If you can't express the algorithm with sorts and joins, you have to do costly PK-based fetches for individual records, which means that you either have to perform roundtrips from client code to the server, or that you are forced to use the vendor's language of choice (and not the language of *your* choice) to write a server-side program. And that still does not mitigate the fact that RDBMS are still quite poor for navigational data access. Oh yes, for arbitrary algorithms, it is preferable to run them in the operating memory, but some datasets are, ehm, "slightly larger".

Re:I'm sorry... (1)

Slashdot Suxxors (1207082) | more than 6 years ago | (#23614623)

OODB - Open Office Databases?

Re:I'm sorry... (0)

Anonymous Coward | more than 6 years ago | (#23614645)

What?
idk...my bff jill?

Re:I'm sorry... (1)

YodaYid (1049908) | more than 6 years ago | (#23614735)

It looks like it's a way to make Ruby on Rails faster, using some technology that was designed for SmallTalk.

Re:I'm sorry... (0)

Anonymous Coward | more than 6 years ago | (#23615077)

Smalltalk
one word
But then again, your probably just use PERL

Great Ruby news (5, Informative)

Santana (103744) | more than 6 years ago | (#23614799)

Maglev is the long awaited (by Rubyists at least) Ruby VM (virtual machine) developed by Gemstone, who also develop an OODB (use Wikipedia for this one, you can do it).

Railsconf is a good opportunity for Gemstone to show off their object persistence, since it would benefit Ruby on Rails (which uses O/RM that may not be necessary any more.)

Re:Great Ruby news (0)

Anonymous Coward | more than 6 years ago | (#23616289)

Don't buy the hype. Gemstone is just associating themselves with a hot technology to get press and new developers. Gemstone is a trap. It's easy to prototype in, but you will soon find that it does not scale/perform. It's also difficult to get people who know how to tune Gemstone, and they are expensive. Buyers beware. If you tie your horse to Gemstone you will be spending a lot of time fighting technology problems instead of solving the business problem.

Re:Great Ruby news (1)

Nemo's Night Sky (1051346) | more than 6 years ago | (#23616641)

I thought everyone using Ruby on Rails was going back to Ruby. Perhaps RoR interest is still going strong.

Re:I'm sorry... (4, Informative)

ESqVIP (782999) | more than 6 years ago | (#23614989)

Indeed, incredibly poor summary.

Basically, GemStone, a company which has been working on large-scale object-oriented database systems [wikipedia.org] and a Smalltalk implementation (GemStone/S) for decades, has decided to support Ruby on their infrastructure. Turns out Ruby is indeed quite similar to Smalltalk, and some microbenchmarks already show them as being 8~60x faster than MRI (the main Ruby 1.8 implementation). Should those numbers remain consistent, this will be an incredibly fast implementation of a popular scripting language, surpassing by Python, PHP, Lua, and other Ruby implementations in raw numbers.

This might be a massive push for Ruby/Rails on "enterprise" systems. And if they succeed, this could also be one interesting step reviving the popularity of OODBMSs.

Re:I'm sorry... (1)

xiaomai (904921) | more than 6 years ago | (#23615093)

Any idea if this maglev stuff is free (as in speech)? It looks like it might just be a closed-source commercial offering?

Re:I'm sorry... (2, Informative)

ESqVIP (782999) | more than 6 years ago | (#23615147)

Definitely not. They've been talking about a free-gratis version, and there's chance they will open some of their standard library (possibly sharing part of it with Rubinius, since both have a similar goal of writing as much as possible directly in Ruby), but you shouldn't expect them opening their VM or OODB stuff anytime soon.

But well, if anything, they show how far open implementations of dynamic languages can get performance-wise. The current breed of languages has always lagged behind the old ones (like Lisp and Smalltalk), and this is great proof there's no technical reason for that.

Re:I'm sorry... (1)

Paradise Pete (33184) | more than 6 years ago | (#23615167)

Any idea if this maglev stuff is free (as in speech)? It looks like it might just be a closed-source commercial offering?

"GemStone is still pondering a pricing model for MagLev. Bob Walker did state that there will be a free version available."

Re:I'm sorry... (5, Informative)

pnagel (107544) | more than 6 years ago | (#23615605)

Basically, GemStone, a company which has been working on large-scale object-oriented database systems [wikipedia.org] and a Smalltalk implementation (GemStone/S)

You make it sound as if the object oriented database and the Smalltalk implementation are two separate products. Which is a common misconception.

To oversimplify, GemStone's Smalltalk VM is an OODB. It adds the following features to the language:
    1) Begin transaction, commit transaction, abort transaction.
    2) All of your process space, your global variables, your datastructures etc. are persisted. You can switch power-cycle your computer and have the same program running as used to run before.

I'm sure they did the same for Ruby with maglev.

This approach cuts out layers and layers of persistence crap. Bye bye object-relational persistence mapping crud.

Re:I'm sorry... (0)

Anonymous Coward | more than 6 years ago | (#23617701)

How do you update the application code? Won't you still need to manually write a converter for the data from one format to another? And how is this better than just up front writing your persistence like we've always been doing?

If your answer is good please email it to this guy http://www.erights.org/data/serial/jhu-paper/upgrade.html

Re:I'm sorry... (1)

Unoti (731964) | more than 6 years ago | (#23618351)

You can switch power-cycle your computer and have the same program running as used to run before.

The especially great thing about this is that when our Rails apps barf, the only recourse is to reboot rails. Now the clusterfuckery can be persisted!

Ruby on Rails is delightful to develop in. But deploying it across something that gets hammered a lot is a nightmare. Say what you will, but scaling up Python or PHP is way easier.

Quote of the day (actually I see this dozens of times per day): "Twitter returned a "temporarily overloaded" error. This is a problem with the server that provides tweets to Twitterific...

An audience that needs ... (5, Funny)

Marbleless (640965) | more than 6 years ago | (#23614617)

>Gemstone demoed [MagLev,] their Ruby VM built on their GemStone S64 VM, to an ecstatic audience.

An audience that needs ...

a) to buy some vowels, and
b) to find significant others to get ecstatic about! ;)

Sad . . . (5, Funny)

Anonymous Coward | more than 6 years ago | (#23614631)

> murphee ends along a report from InfoQ

I am sorry to hear of murphee's death, and hope that no more lives are claimed by this report's incomprehensibility.

Re:Sad . . . (0)

Anonymous Coward | more than 6 years ago | (#23615481)

With this comment, you have achieved a moment of perfection.

And I deign to sully it with a response only because, as responses are inevitable, I'd rather the first be an expression of unmitigated praise rather than a logged-in user's transparent attempt to leech overflowing positive moderation from what must soon be a +5.

Good day.

I'm At Rails Conf (0)

Anonymous Coward | more than 6 years ago | (#23614653)

I didn't even know this was a topic being discussed. In other news, git is cool.

WTF ?! (1, Informative)

Anonymous Coward | more than 6 years ago | (#23614659)

That has got to be the worst summary line I've ever read in the history of slashdot.

Shot in the dark (4, Insightful)

smitty_one_each (243267) | more than 6 years ago | (#23614685)

"MagLev, Ruby VM on Gemstone OODB, Wows RailsConf"
Some magnetic levitation involving rubies, VM (Ware?), more gems, object oriented databases (didn't they die?), World of Warcraft, rails (magnetic levitation again?), and, finally, conference.
Doesn't the Lameness Filter usually take care of this sort of thing?

Re:Shot in the dark (5, Funny)

noidentity (188756) | more than 6 years ago | (#23615541)

Just yesterday I was working on SuperCollider, hooking it with OilRig, implemented with SuperTanker, using ConcreteRoad as the substrate. I had some problems with the DeepSea module, but it was really due to RadioAntenna. You're confused? These are just the names of some database libraries, nothing to do with what their names imply.

Re:Shot in the dark (1)

smitty_one_each (243267) | more than 6 years ago | (#23616441)

Actually, EverythingButTheCamelCase made sense.

Re:Shot in the dark (1)

dominious (1077089) | more than 6 years ago | (#23616935)

Some magnetic levitation involving rubies, VM (Ware?), more gems, object oriented databases (didn't they die?), World of Warcraft, rails (magnetic levitation again?), and, finally, conference.
Well at least you got the conference right, I thought the RAILS configuration file got wowed somehow!

Independent results are coming soon (0)

Anonymous Coward | more than 6 years ago | (#23614699)

Independent results will be coming soon, as outlined here [antoniocangiano.com] .

Snuh? (1)

Todd Fisher (680265) | more than 6 years ago | (#23614729)

After I was confused by the headline I thought to myself, "Well the summary will clarify all that up for me"
After I read the summary I thought to myself, "I still don't understand and I'll be damed if me and the four Pale Ales in mah belly give a good Goddamn to RTFA!"

Sounds cool, but not open (-1, Troll)

Bill, Shooter of Bul (629286) | more than 6 years ago | (#23614767)

I might trust non open source mission critical programs from Oracle, Cisco, and if you got me drunk enough some Microsoft products. But for something new from a previously unknown company, I'm not going to be the early adopter. Lets see twitter do it first, then I'll think about it more seriously.

Re:Sounds cool, but not open (2, Informative)

catch23 (97972) | more than 6 years ago | (#23614797)

Just so you know, gemstone isn't exactly new, it might be as old, or older than some of those Oracle products and have been running in production environments for years. Just because you've never heard of it doesn't mean it's brand new. There's quite a few old financial companies running on smalltalk systems built by gemstone. Unfortunately, much of Smalltalk's history has been closed-source. Even the GPL Squeak was late to the game (1997). Fortunately, smalltalk is a pretty simple language so it's actually relatively easy to get a very good stable VM implementation in a short time.

Re:Sounds cool, but not open (1)

Bill, Shooter of Bul (629286) | more than 6 years ago | (#23614863)

It is new. Its never been used in conjunction with ruby before, but thats not really that important. I was really talking about my comfort level with the product. I never want to be the largest user of a closed source product. Who uses it? Under what kind of loads? How many servers?

Re:Sounds cool, but not open (1)

catch23 (97972) | more than 6 years ago | (#23614907)

Well yeah, ruby is new to gemstone. But only a few years ago Java was a closed source product too. Closed source vendors like Gemstone are taking notice of Ruby because Ruby is beginning to make significant inroads to the enterprise world. A few large enterprises may take notice of Gemstone and be their customers much like Java in its early days. Java did have its problems too, but I don't see how an open source implementation would have improved it's likelihood of survival. Version 1.0 of any product, closed or open, is going to have a few rough edges.

Re:Sounds cool, but not open (2, Interesting)

WeirdJohn (1170585) | more than 6 years ago | (#23615465)

JP Morgan uses Gemstone/S behind it's financial systems. I'd say that's a fairly major user. As I understand it MagLev is basically the Gemstone/S Smalltalk VM extended to understand Ruby bytecodes. They (Gemstone) state that the same VM can run Smalltalk, indeed Ruby will be able to talk to Smalltalk objects transparently. The only real questions are how much more complex does Ruby make the VM (Smalltalk VMs are absurdly simple), and what does this complexity do to stability (Smalltalk VMs typically stand up to enormous abuse)? Given the scalability of Gemstone, I don't see MagLev being absurdly scalable as being much of a surprise.

Re:Sounds cool, but not open (1)

krmt (91422) | more than 6 years ago | (#23617015)

Squeak is most definitely not GPL. It was under a special Apple Open Source license thingy for a while (maybe the APL itself, I don't know) and has now been relicensed under an MIT/X11 license. The squeak community is actually very hostile to the GPL, so you'll see most projects under MIT/X11.

Re:Sounds cool, but not open (1)

nuzak (959558) | more than 6 years ago | (#23617961)

Squeak is image-based. The GPL could be seen as applying to an *entire* squeak system, including everything added on thereafter. The legal theory of that is fairly preposterous, but you can see why they're philosophically a little bit down on the idea.

Re:Sounds cool, but not open (1)

killjoe (766577) | more than 6 years ago | (#23614811)

You may want to google gemstone and "avi bryant".

Google is a fantastic resource to ease your ignorance.

Remember just because you haven't heard of it doesn't mean it doesn't exit.

Re:Sounds cool, but not open (1)

Bill, Shooter of Bul (629286) | more than 6 years ago | (#23614903)

k, found his blog [avibryant.com] where he describes gemstone a little better. Still sounds limited. There is still only one data store in gemstone according to the blog post. Can it be scaled beyond that? How? I've never heard of any big website using gemstone. If it was open, I'd be more willing to kick its tires, knowing that small problems could be fixed and a community might arise around it. I'm less confident about the same happening around a closed source product that isn't in wide use by large data driven websites.

I try to limit my ignorance when ever possible, so if anything is wrong ( other than the grammar/speling) feel free to correct.

Re:Sounds cool, but not open (4, Informative)

tshawkins (1239974) | more than 6 years ago | (#23614947)

its a single data cloud instance on a distributed data system, in that respect its similar to products like Amazons SDB and Google's BigTable systems. The data is virtualised across a number of data stores. A lot of telecos use gemstone, its used a lot in financials. Its a True OODBMS which is exactly the model that the ORM layers in frameworks like rails are attempting to simulate on a relational database. OODBMS systems match the datamodel of modern web frameworks closer than any relational system every will do. Other Commercial OODBMS systems are system such as ObjectStore, POET, there a few opensource ones such as GOODS

Re:Sounds cool, but not open (1)

Bill, Shooter of Bul (629286) | more than 6 years ago | (#23614991)

Further research on gemstone's scalability [gemstone.com] sounds promising. Still have reservations, and would still like to have a non press release review of its capabilities by an independant third party.

Re:Sounds cool, but not open (2, Insightful)

rossifer (581396) | more than 6 years ago | (#23615455)

Its a True OODBMS which is exactly the model that the ORM layers in frameworks like rails are attempting to simulate on a relational database.
That's a very silly statement.

I don't use an ORM to simulate an OODBMS. I use an ORM so that I have a system with both Object Oriented and Relational programming models and can use either one when appropriate. There are a lot of people who don't understand the value of Relational programming, and they think that those of us using RDBMS's would really prefer OODBMS's if only we could see the light...

Drink the kool-aid is more like.

I have yet to see a problem simple enough that I would choose to use an OODBMS over an RDBMS while simultaneously being interesting enough that I would bother working on it in the first place.

But maybe I'm just being grumpy. Bah.

Re:Sounds cool, but not open (1)

WeirdJohn (1170585) | more than 6 years ago | (#23615589)

I have yet to see a problem simple enough that I would choose to use an OODBMS over an RDBMS while simultaneously being interesting enough that I would bother working on it in the first place.


Perhaps you have yet to really understand how an object model that isn't driven by the constraints of the underlying RDMS can make the problem simpler. In particular, the use of a well designed Containers class with well designed efficient enumerators can often make what is a very complex SQL query into a fairly simple combination of select: and inject:into: messages, where you get back a Collection of the objects you want. I see RDMS as being best at fairly simple problems, or for problems where the structure of the data is better understood than the relationships between the objects. And I hate all that overhead you have to manage to get the data into a RDMS.

Perhaps there is more than one way to do it...

Re:Sounds cool, but not open (1)

TheLink (130905) | more than 6 years ago | (#23617957)

One man's impedance mismatch is another man's layer of abstraction or "protocol".

An OODBMS is fine for a program to use to work on a problem (possibly a "large" one) in a more efficient manner.

But an RDBMS is often more convenient to chuck the results to, so that many different entities (programs, people, etc) can _easily_ do stuff with them.

You could have a central OODBMS to do that sort of stuff - but if you're going to have to take an "overhead" hit anyway, might be preferable to use a popular RDBMS because lots more stuff can talk to it.

Re:Sounds cool, but not open (1)

killjoe (766577) | more than 6 years ago | (#23616115)

>here is still only one data store in gemstone according to the blog post. Can it be scaled beyond that?

You mean beyond the 17 petrabytes it supports now?

>How?

You add more instances (servers). Any modification made to any server will propogate to the other servers.

>I've never heard of any big website using gemstone.

So? Why should I care whether you have heard of something or not? Why is that relevant?

Have you ever heard of seaside? Smalltalk? Dabbledb?

>If it was open, I'd be more willing to kick its tires, knowing that small problems could be fixed and a community might arise around it.

More than likely there will be a free and limited version you can try. Till then you can try this

http://seaside.gemstone.com/ [gemstone.com]

Talk really did wow the conference (5, Informative)

stockmaster (574940) | more than 6 years ago | (#23614871)

This talk was one of the highlights of the conference. At the talk, they showed performance benchmarks that included running several things as much as 117x as fast as the default Ruby interpreter that is in use by most Rails installations today. The fact that it's built on this commercial-grade Gemstone platform that has been used for years for high-performance production Smalltalk applications just adds to its credibility.

One of the reasons this is exciting is that many Ruby/Rails programmers have suffered from the criticism that their platform is elegant and fast to develop in, but that it doesn't scale well. MagLev sure looked like it could go a long way toward addressing those concerns. And since it hits Ruby right at the VM level, it is potentially useful to anyone running any kind of Ruby app whether on Rails or not.

Of course, we'll see when it's done...

Re:Talk really did wow the conference (2, Interesting)

Standard User 79 (1209050) | more than 6 years ago | (#23615269)

Doubtful. When people have scalability problems it's not ruby, it's rails. Web applications don't need much cpu but they do need to use memory in a reasonably efficient manner - something that rails cannot currently do.

Re:Talk really did wow the conference (1)

TubeSteak (669689) | more than 6 years ago | (#23615289)

At the talk, they showed performance benchmarks that included running several things as much as 117x as fast as the default Ruby interpreter that is in use by most Rails installations today. The fact that it's built on this commercial-grade Gemstone platform that has been used for years for high-performance production Smalltalk applications just adds to its credibility.
"The fact that it's built on this commercial-grade Gemstone platform that has been used for years for high-performance production Smalltalk applications just" means that they're going to keep their proprietary solution to themselves and make lots of money.

Gemstone has spent a lot of time optimizing their code, are they just going to give that away for free?

Re:Talk really did wow the conference (0, Troll)

crawling_chaos (23007) | more than 6 years ago | (#23616625)

You mean that when you pay someone to write software you get a product that scales and is documented and all of the other crap that most open source programmers seem to actively sneer at, because that kind of work seems menial and boring to them? Perish the thought!

Ruby Shootout (5, Interesting)

cryptoluddite (658517) | more than 6 years ago | (#23614873)

The MagLev VM, although only partially implemented, so far outperforms MRI 1.8.
Being 'faster than 1.8' is a pretty weak claim compared to the competition:

Ruby 1.9: 3.32x
XRuby: 1.43x
JRuby: 1.32x
Ruby 1.8: 1.0x
Rubinius: 0.73x
Ruby.NET: 0.56x

What is cool is how well the Java-based Ruby implementations do: JRuby and XRuby. JRuby was the only Ruby implementation that did not have any tests error. For a VM that is supposedly so hostile to dynamic languages, those implementations were faster and more reliable than the actual Ruby VM and cleaned the floor with the CLR/.NET implementation. And the next version of Java should have stack allocations and invokedynamic bytecode and other optimizations.

What this shows to me is, first do one thing well (Java), then figure out how to grow it. In contrast to .NET/CLR which started out trying to do everything and ended up doing few things well.

Re:Ruby Shootout (1)

Santana (103744) | more than 6 years ago | (#23614949)

Being 'faster than 1.8' is a pretty weak claim compared to the competition:

Well, Matz's Ruby (or MRI) is still _the_ reference, so it makes sense to compare to it. What is really missing is how fast Maglev is. This blog post [obiefernandez.com] talks about 8x to 60x faster, which is impressive.

Re:Ruby Shootout (0)

cryptoluddite (658517) | more than 6 years ago | (#23615041)

The news of the conference says they have 36 of 43(?) tests 'running significantly faster'. Ruby 1.9 has 38 tests running 'significantly faster'. So some guys' blog about results he didn't even see is pretty doubtful.

An 8x-60x faster is probably a few numerical benchmarks or possibly something like a regex implementation, and even if true won't have much impact on Ruby overall performance (since you don't use Ruby or Smalltalk for numerical work anyway).

Still, Smalltalk VMs are very advanced and the added competition will be very good for Ruby. My personal bet though is that Ruby completely kills Smalltalk soon, since they are so similar but Ruby has advantages like sane precedence and better syntax.

Re:Ruby Shootout (1, Insightful)

Anonymous Coward | more than 6 years ago | (#23615107)

"precedence" is not sane - it's a complicated set of exceptions that make a programing language more complicated to implement, but don't really gain anything. If the only thing you can think of against smalltalk is not implementing mathematical precedence rules, then you're scratching at straws.

Ruby's syntax is not better than smalltalk - it's more complicated. the only thing "better" about it, is that it sometimes vaguely resembles C syntax.

If you spent ten minute with Smalltalk's syntax you'd realise that it's 1. very small, 2. very consistent. which means that you can learn the _entire_ syntax in one sitting. Beyond that, it's all just API.
That's where Smalltalk has its advantage, because 99% of the language is API, adding to the language doesn't require compiler changes.

Re:Ruby Shootout (1)

cryptoluddite (658517) | more than 6 years ago | (#23615367)

Ruby's syntax is not better than smalltalk - it's more complicated. the only thing "better" about it, is that it sometimes vaguely resembles C syntax.
Smalltalk's syntax is not complicated enough. Algol syntax has dominated for 60 years. If you think having a C-like syntax is a flaw then you are not thinking rationally.

"precedence" is not sane - it's a complicated set of exceptions that make a programing language more complicated to implement, but don't really gain anything.
So they teach math using hungarian notation in schools... where exactly? Our natural languages contain precedence and all sorts of complicated syntax that we are hardwired to understand. Smalltalk fails because it wants to be 'pure' and 'simple' in places where that is not an advantage.

Precedence Shootout (tangle trail warning) (1)

reiisi (1211052) | more than 6 years ago | (#23615909)

The first language I learned was BASIC. (I almost learned 8080 assembler and half-learned TI calculator about a year before that, but didn't quite get there.)

After that, I started learning 6800 assembler the bottom-up way (playing with a prototyping board with a monitor/debug ROM). Wired a BASIC onto the board, but I wanted a high-level language. I took Pascal and ForTran at the same time, IIRC, at the local college, and the professor mentioned that I might be able to find a FORTH to load onto it. (He also recommended a floppy drive, which recommendation I studiously ignored.) I got a listing of a 6800 implementation of fig-FORTH and loaded it by hand (saved it to tape). Learned CoBOL and RPG (Report Program Generator, not Role Playing Game) in the meantime.

I thought I understood programming after that. Went to the big U and ended up in CS. (Stupid move.) Learned C and became unable to program in a timely manner. Had to re-implement FORTH in 6809 to finally graduate.

I'm not sure whether it was C that screwed me up or FORTH.

I know I can't program CoBOL any more, and I know that I have lost more than one job because of the time I spent learning to use the tools of C to build modular programs in college. Can't program CoBOL because it's just too much work to convince myself to keep track of all the games you have to play to emulate locality of reference in CoBOL to get UI screens to respond reasonably to user input. I also have problems working with legacy C source code built by high-school-grads who are untrained in modularization, etc., and are plenty willing to burn themselves out keeping track of thousands of globals while churning out close to a thousand lines of C a day. (Copy-paste and change a few globals that should have been parameters, etc.) The code the other guys wrote reminded me of nothing more than CoBOL. Couldn't compete, either, when the managers wanted me to pump out the same number of the same kinds of lines and somehow "add in" the value of my advanced degree.

(huh? This industry is crazy. Mad. Kind of like the rest of the world, I guess.)

I like FORTH. I don't really know much about Smalltalk, except what I may have absorbed studying Objective C and playing with Squeak, but I don't buy it when anyone argues in favor of complicated languages. It seems to me that they (you?) are primarily arguing the equivalent of that C should be written like CoBOL, according to some baroque set of inherited rules that probably had more to do with the tools that were once (but are no longer being) commonly used than with the problem being solved.

So, what are you saying? Is high-school algebra, with its precedence rules, the best algebra, just because modern mathematicians have used it for a long time (until, of course, they dig into the really useful stuff)?

Polish, not Hungarian (1)

klapaucjusz (1167407) | more than 6 years ago | (#23618005)

So they teach math using hungarian notation in schools

Sorry for the lecture in Central-European geography, but you were thinking of Polish notation [wikipedia.org] .

Hungarian [wikipedia.org] is something different altogether. You don't want to know.

Re:Polish, not Hungarian (0)

Anonymous Coward | more than 6 years ago | (#23618401)

Thanks for the correction. I actually knew that -- just check the timestamp on the post. ;-P

Re:Ruby Shootout (0, Flamebait)

The End Of Days (1243248) | more than 6 years ago | (#23618249)

If you think having a C-like syntax is a flaw then you are not thinking rationally.


We can generalize that to the rallying cry of the lonely nerd: If you don't agree with me you're either stupid or crazy.

You, sir, are an ass.

Re:Ruby Shootout (1)

Riemann hypothesis (1207970) | more than 6 years ago | (#23615345)

I was one of the few who saw MagLev run against MRI before RailsConf, and the author of the shootout you're referencing. Ruby 1.9 is faster than 1.8. JRuby is faster than 1.8. MagLev is not only faster than 1.8, it blows 1.8 out of the water. Just to give you an example, in a few tests, Ruby 1.8 takes about 20 seconds to execute them, while MagLev takes about a second. The new shootout will be published soon [antoniocangiano.com] and it'll include MagLev. By doing this, we'll have a fair comparison on multiple operating systems. I'll also expand the number of tests. These will still be synthetic benchmarks, but at least they'll give us a general idea of how well a given virtual machine's performance is.

Re:Ruby Shootout (0)

Anonymous Coward | more than 6 years ago | (#23615489)

Please test JRuby/XRuby with openjdk if you can. Fedora Core comes with openjdk now.

Re:Ruby Shootout (0)

Anonymous Coward | more than 6 years ago | (#23615503)

Also, I note that some of your benchmarks (like mandelbrot) do not use the computed values. The more advanced VMs are able to eliminate computations with no result. For instance, when I was benchmarking Java it would complete a benchmark in .2 seconds whereas the best Smalltalk took tens of seconds -- turns out the Java one could do any amount of that benchmark in .2 seconds because that's how long it took it to realize it could just eliminate the whole computation.

Re:Ruby Shootout (3, Interesting)

cryptoluddite (658517) | more than 6 years ago | (#23615695)

I took a look at some more of the benchmarks and they are pretty much universally meaningless once you throw in a good optimizing VM. For instance translating the method benchmark into Java and having it loop 2^31 times instead of 6 million times and Java is 29,000 times faster than Ruby 2.8.

Adding a simple global+=1 to the method body makes Java only 16,000 times faster than Ruby 2.8.

Replacing the +1 with global*=5 makes the Java version only 536 times faster than Ruby 2.8.

These are the kinds of optimizations MagLev is doing, and they don't translate into anywhere near the gains in actual code. So you see, you really need to rethink your tests. Even for something seemingly ok like modifying a global can depend on how it is modified and what the VM can optimize (+1 vs *5). Frankly I would just test these different Ruby implementations using the regular shootout [debian.org] code, since these have been designed not to be optimized out.

Re:Ruby Shootout (1)

Riemann hypothesis (1207970) | more than 6 years ago | (#23615745)

These tests were not implemented by me and are considered âoestandardâ in the Ruby community (they come from Yarv's repository). However, you have a valid point, also raised by Anonymous, so I'll manually modify the ones that are subject to artificial gains due optimization and "laziness" of the VM. And as I mentioned before, I'll add some extra tests of my own which won't be subject to this sort of flaw.

Re:Ruby Shootout (1)

cytg.net (912690) | more than 6 years ago | (#23615987)

"What is cool is how well the Java-based Ruby implementations do: JRuby and XRuby." - If im not mistaken, the new market attention of java isnt java, its opening up the jvm to get rid of the "j" and embrace all those other pesky languages as well, offer them a reliable industry proven robust vm. Changes are cometh' ..

Re:Ruby Shootout (1)

Duwke (586308) | more than 6 years ago | (#23618433)

What about ruby.net using the DLR (Microsoft's Dynamic Language Runtime)? It was my understanding that the CLR was not well suited for dynamic languages as your post likely confirms. Hence, this is why they created the new runtime.

I think I lost my Super Geek certificate (1, Redundant)

flyingfsck (986395) | more than 6 years ago | (#23614905)

Neither the summary nor TFA inspired me with awe. Guess I'm losing it.

Re:I think I lost my Super Geek certificate (1)

stickytar (96286) | more than 6 years ago | (#23614931)

i wish i had mod points for you. i'm with you on this one.

Re:I think I lost my Super Geek certificate (1)

n3tcat (664243) | more than 6 years ago | (#23615841)

It's because they chose to constantly reference trains. Nobody plays with trains anymore. They're past the point where they can be considered "old skool" and are now just a dead hobby. Now if they had gone with Warhammer 40k references, people would get all excited about the new Warp Storm VM system!

Video of Avi Bryant talk from 2007 (3, Informative)

OldManAndTheC++ (723450) | more than 6 years ago | (#23614963)

Avi Bryant gave a fascinating talk [railsconf.blip.tv] about bringing technology developed for Smalltalk into the Ruby world at RailsConf 2007. Apropos of nothing, he bears an uncanny resemblance to Jeremy Davies [imdb.com] (Daniel Faraday on "Lost").

Basically he's saying that many of the performance issues with the much-maligned Ruby VM were solved years ago in Smalltalk implementations, and that Ruby ought to incorporate those ideas. Maglev is a big step in this direction.

How does this compare to Zope? (1)

chrisl456 (699707) | more than 6 years ago | (#23615013)

I've used Zope a bit (which is Python based, see zope.org), but haven't touched Ruby or Rails yet. This seems to be an alternative to an object-relational mapper for Rails. Since Zope has used an object database from day 1 (iirc), I'd tend to think it would be better and/or cleaner. Anyone that's used both care to compare the two?

This is getting sillly. (3, Funny)

MrMista_B (891430) | more than 6 years ago | (#23615023)

From Wikipedia (yeah it's not a source that's reliable at all, but this is the internet): http://en.wikipedia.org/wiki/Maglev [wikipedia.org]

"Magnetic levitation, maglev, or magnetic suspension is a method by which an object is suspended with no support other than magnetic fields. The electromagnetic force is used to counteract the effects of the gravitational force."

If they're doing *that* with code, I'll be hell of impressed. If not, that's a pretty strange way to brand your project/product/language/whatever that is. Seriously, I'm sure it's awesome, but what is it with all these things (MagLev, Ruby, etc) trying to sound cool by appropriating names of other, already well-established 'things'?

Or next am I going to be using "Ice-cream, Santa Claus on Purple Monkey OODB with Cowboy Hat and Kitchen Fork to PWN the OMGWTFBBQ on the MBA with the XKCD in the Ballroom with the Candlestick"?

Seriously, these names are getting silly.

Not that 'Linux' or 'Ubuntu' or 'MySQL' sound any less silly to people not familiar with them, but at least they're not likely to be confusing or confused for something else.

*/minirant*

Re:This is getting sillly. (1)

yukster (586300) | more than 6 years ago | (#23615249)

Uh, it's called Ruby on RAILS... like a train. MagLev is a really really fast train. Seems like a pretty sensible name to me.

Re:This is getting sillly. (1)

MichaelSmith (789609) | more than 6 years ago | (#23615319)

So ruby has gone off the rails?

Re:This is getting sillly. (1)

raynet (51803) | more than 6 years ago | (#23615587)

Noh, but instead it will use one big ass rail rather than two lean ones and cost of fortune to run.

Re:This is getting sillly. (1)

Yetihehe (971185) | more than 6 years ago | (#23615681)

No, now it transcended and is above all earthly rails.

Re:This is getting sillly. (1)

cytg.net (912690) | more than 6 years ago | (#23615933)

railguns in quake IS the shit though ..

Re:This is getting sillly. (1)

cytg.net (912690) | more than 6 years ago | (#23615941)

also, sexual references like
.."I've nailed her"
really could do with a penis transplant, perhaps like
.."I've railed her"
cause the former really isnt that flattering to the auther is it?.. perhaps she also laughed out loud at your 'tool'?
..
..anyway, have a ticket!

Re:This is getting sillly. (1)

cleatsupkeep (1132585) | more than 6 years ago | (#23615267)

You can do it with Python: http://xkcd.com/353// [xkcd.com]

Re:This is getting sillly. (1)

DMUTPeregrine (612791) | more than 6 years ago | (#23615297)

It's a joke, really. Ruby on Rails. MagLev trains are faster than normal trains, so Ruby on MagLev should be faster. It's faster rails. That said, it would be great if the headline and summary were rewritten to make this understandable.

Re:This is getting sillly. (1)

cytg.net (912690) | more than 6 years ago | (#23616005)

well, obviously, if the rails are moving at speed x the same direction as the train .. you would gain x speed total wouldnt you?

Re:This is getting sillly. (2, Funny)

Sique (173459) | more than 6 years ago | (#23616285)

With regular trains reaching 575 km/h (357 mph) and the world record for MagLevs being 581 km/h (361 mph), there is really no difference in speed for both technologies.

Re:This is getting sillly. (1)

cytg.net (912690) | more than 6 years ago | (#23615927)

mm..right .. when was the last time you saw code implement zero gravity in reality? oh yea ..

NEO
Do you always look at it
encoded?

CYPHER
Have to. The image
translators sort of work
for the construct programs
but there's way too much
information to decode the
Matrix. You get used to
it, though. Your brain
does the translating. I
don't even see the code.
All I see is blonde,
brunette, and redhead. You
want a drink?


So im guessing that they're saying that their code is "the-matrix-like-elite"

Re:This is getting sillly. (1)

oldhack (1037484) | more than 6 years ago | (#23616839)

Compupter world became a media world, and now we all talk like jibbering marketing (cheap shot half-intended) idiots. Some subsectors apparently more idiotic than others. Price paid for going "mainstream".

Oh, OODB in a dynamic language⦠(1)

dracvl (541254) | more than 6 years ago | (#23615595)

You mean like the open source Zope [zope.org] (written in Python), invented over 10 years ago [wikipedia.org] ? Great, now I can tie my open source language to a closed-source object store.

Re:Oh, OODB in a dynamic language⦠(1)

geniusj (140174) | more than 6 years ago | (#23615819)

except fast.. apparently

news that matters? (5, Insightful)

nguy (1207026) | more than 6 years ago | (#23615775)

Gemstone is a proprietary implementation of Smalltalk and an associated object database. Who does it matter to whether they incorporate a RubyVM into their system or not?

Gemstone also stands for the failure of a particular kind of business model. These people (and others) had a mature OO programming language that was orders of magnitude faster than Ruby, had object persistence, had a great IDE, and supported distributed programming over 15 years ago, and they pissed it all away by making it too expensive and too proprietary.

Because the Smalltalk vendors were greedy and squabbling among themselves, modern OOP arrived more than a decade later in in much poorer form.

I suppose hiding their Smalltalk heritage by calling their system "Gemstone/S" and being forced to incorporate Ruby in order to make their platform attractive is the ultimate indignity.

This threads proves... (0)

Anonymous Coward | more than 6 years ago | (#23615937)

that slashdot has really gone downhill. Next thing I'll hear is that you all have girlfriends.

Cool but expensive and proprietary (0)

Anonymous Coward | more than 6 years ago | (#23618287)

I used Gemstone back in the Smalltalk days. It is very nice technology, but also very expensive and proprietary. It is the ultimate vendor lock-in. I won't touch it with a 10-foot pole.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>