Experimental MacRuby Branch Is 3x Faster
An anonymous reader writes "Zen and the Art of Programming published an article about MacRuby's new experimental 0.5 branch (project blog entry here). According to the included benchmarks, Apple's version of Ruby could already, at this early stage of its development, be about three times as fast as the fastest Ruby implementation available elsewhere."
I heard it made a guy in Michigan's head explode! That's why I stay away from the experimental stuff, man.
Stay on the desktop of gay people.
Don't want this Mac shit on servers.
My wife's 17" macbook is now my dev machine! She can surf on my old XP box that takes a half hour to boot. All I have to do now is learn Ruby.
Why MacRuby Matters (Present & Future)?
Apparently because an experimental incomplete version of Ruby is fast. Colour me unimpressed.
Of course, Slashdot is a dime short and days late on the real news.
JavaScript 3-10x Faster On iPhone OS 3.0
Well, for a better, no BS news aggregator, try The Hacker News. Then after seeing it there for a few days, come to slashdot to see a regurgitated discussion.
This is great news. The work that Apple's doing on LLVM is a renaissance in compilers.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
Was the best movie of all time.
Your sig is pure evil. Nicely done!
All your base are belong to Wii.
One question. WHY?!?
"LLVM supports effective optimization at compile time, link-time (particularly interprocedural), run-time"
Amazing, truly unique ideas. If only someone had thought of doing this 30 years ago... oh wait...
What is 3x faster than super uber ultra slow? Is ruby now just plain slow instead?
Don't be a sling www.anti-slash.org for the recor3, I of business and was parties, but here were taken over Problem stems Would mar BSD's To yet another where it was when A SAD WORLD. AT to predict *BSD's and exciting; market share. Red
Those new code contributions by Mr Aznable made all the difference.
Apple should be enormously grateful to the LLVM project. They must've been shitting their pants about having their entire O/S dependant on a GNU project.
What's so special about this implementation? It runs on an intel x86 running a modified bsd kernel. I suppose that this was spiked with a healthy dose of reality distortion field, (remember how RISC processors were X times faster than chips that fell prey to the dreaded "megahertz myth") right up until they switched, and the new systems were 4-6x faster than the old ones?
I wonder if this has any connection to what they learned creating the optimized javascript "interpreter" they made for their next generation rendering engine Webkit.
--------
* Sigh *
Common Lisp is ultra-dynamic and whatnot and still compiles to machine code, which in some implementations (SBCL/CMUCL) is quite respectable in performance. Is there something inherently less-compilable about Python, Ruby, Perl, etc., or have they just not had the same engineering work put into them?
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Sleep(30); /* used to be 90 */
Experts predict Computers to get faster with time! News at eleven.
The Long Now Foundation
But I'm a heterosexual so I will not be able to take advantage.
Simple solution real problems BSD 3ulminated in that has grown up
Because they don't want to expose high level intermediary code (too easy to hijack part of the compiler into a closed source project). Or at least that was one of the reasons LLVM was rejected for next generation GCC at the time.
They might have changed their mind now LLVM is bearing down on them ...
lost its earlier and exciTing; backwards. To the never heeded may also want Is perhaps in time. For all
There are certainly places where I'd like my code to be faster, but they are very, very small places. I can easily code them in C if I have to (C/Ruby bindings are *very* easy to write).
Until you try to execute your code on someone else's computer, and your Ruby code works but the C code fails to start because unlike the Ruby interpreter, your code hasn't been digitally signed by the platform maintainer. This is already the case for JavaScript: Windows allows parts of a JScript program to be coded in C as "ActiveX" objects, but they have to be signed with a valid Authenticode certificate issued by a trusted CA first.
They don't have any particular antipathy to the GPL ... Chriss Lattner proposed LLVM as a GCC successor after starting work at Apple. The FSF kicked him to the curb. I don't know if they underestimated his and Apple's commitment into turning the compiler into a true competitor or if they are simply stupid.
As LLVM gets better GCC will lose developers, this is unavoidable, it's EGCS all over again ... but this time a merge doesn't seem on the cards. It wasn't LLVM but the FSF themselves who torpedoed one of the GPL flagships ... and for very very poor reasons.
What is different is that it uses the Foundation library for the underlying implementation. i.e. a Ruby array maps to a NSArray, a Ruby string maps to a NSString, etc.
Would a Linux port be possible using GNUstep, the Free implementation of the same API that Cocoa is based on?
...line. It is disorienting for the people that don't always read the subject line (almost everybody). And capitalizing the first word of the body text when the word takes place in the middle of the sentence doesn't help, either.
Scheme is "ultra-dynamic and whatnot", but it is an interpreted language.
Clisp has dynamic scoping, which is an unrelated concept, but as far as I know it does not have ruby/python/javascript style runtime dynamic typing... I think you may be confusing the issue.
Objective-c is a better example of a compiled language that supports dynamic types... that's why ruby and python plug into the Cocoa libraries so well.
Common Lisp is every bit as dynamic as Scheme, and yes it has fully dynamic runtime typing. It also has optional declarations, but you need not use them, and idiomatic Lisp style doesn't, except when attempting to optimize performance-critical code. Indeed Common Lisp is so dynamic that function calls can't even be resolved at compile time, because functions can redefine other functions (or themselves) at runtime.
Scheme is also not generally interpreted; there are both compilers and interpreters available.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
So, GCC is making what should be technical decisions on a political basis?
Good to know. That's one more reason to be glad when GCC fades away.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
Given that the entire reason for the existence of gcc is political, your surprise at the reason for its design decisions merely highlights your ignorance. Now go play in your closed source world and leave the grownups alone.
... for them to get further along in completing it... it'll slow down.
Who cares? Ruby should just die.
languages (?!) are getting faster and faster, because of more memory and faster processors ? right ? :)
So, GCC is making what should be technical decisions on a political basis?
GCC is making decisions to protect their intellectual property.
You're statement is like saying:
Apple aren't releasing source to the iPhone? That's making a technical decision on a political basis!!!!1!
So, GCC is making what should be technical decisions on a political basis?
GCC is making decisions to protect their intellectual property.
So now suddenly there is such a thing as IP?
Lars T.
To the guy who modded me down from perfect to terrible Karma - Apple haters still suck
s/IP/copyright/
Now go play in your closed source world and leave the grownups alone
Grownups need to make a living, sunshine. Very few people can get a MacArthur grant and extend their adolescence indefinitely.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
Apple aren't releasing source to the iPhone? That's making a technical decision on a political basis!!!!1!
You're not clear on the difference between a technical and a political decision.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
wait... is there someone who actually understands economics on ./? Someone who understands that hundreds/thousands of hours of work on software is actually worth... GASP!... Money!?
Someone who understands that maybe... just maybe... giving away the code that you spent a lot of money/time/effort on does not make sense?
There is good reason I own the gplisshitty.com domain...
not clear on the difference between a technical and a political decision.
What's the technical reason that the iPhone source code isn't published?
I'm not sure if you were flaming OSS there, but you do realise that Apple owes a great deal to OSS and that much of what is OSX would be next to impossible without it, given that the BSD part of OSX is, in fact, OSS.
You are not clear on the difference either, are you. Whether the source code of a piece of software, any software, should be opened or not is entirely a political *decision*. How a compiler should work internally is a technical *decision*. You don't need technical reasons to make a political decision and you shouldn't consider political reasons when making a technical decision.
What are you talking about? This is about server-side software, not executable applets in clients' browsers.
No, they're not.
Enough said.
I thought Ruby was gay too?
Mod parent funny! The flip side of this coin is that gcc has placed certain shackles on what's possible for Apple and others to do. LLVM is about to break those chains.
I, for one, welcome our new really-truly-freely-licensed-compiler-(not-kinda-sorta-free-as-in-gcc) overlords.
If you mod me down, I shall become more powerful than you could possibly imagine.
This is about server-side software, not executable applets in clients' browsers.
Eventually, your server-side software may have to communicate with an executable applet in clients' browsers. Without code signing, this applet can be written only in JavaScript (AJAX), ActionScript (Flex SDK), C# or another CLR language (Silverlight 2), or Java or another JVM language (Java applet viewer).
This is about server-side software
Another thing I forgot to mention: Web hosts may restrict what kinds of server-side software may run. For example, a web host may forbid customers not on a dedicated or virtual dedicated server plan from running uploaded EXE files but allow code written for JSP, ASP.NET, Ruby, or one of the P languages.
So now suddenly there is such a thing as IP?
Slashdot comments (with the exception of yourself) are from a single hive-mind, so finding a contradiction between what an AC said today & yesterday is exactly the same as a real person contradicting themselves!!!!1!
Well done - give yourself a pat on the back. This 'Anonymous Coward' character has been allowed to get away with contradicting themselves for far too long.
(You fucking retard).
The speed improvements in the MacRuby experimental branch come from using LLVM to generate code and from using the ObjC Runtime (for method dispatch and garbage collection) rather than a homebrew Ruby runtime like the other interpreters.
Squirrelfish does not use LLVM. I imagine using LLVM for JIT compilation of javascript would have to much overhead, and could be more difficult to integrate into the brower DOM interface.