Collaboration: At the Extremities of Extreme
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Werner Schuster on Oct 18, 2009
The first beta of MacRuby 0.5 is available, currently only for Snow Leopard (MacOS X 10.6) machines.
InfoQ talked to the MacRuby core team about the present and the future of MacRuby.
InfoQ: How does MacRuby's new VM use LLVM?
MacRuby compiles everything at demand (when the code is actually meant to be run). The [LLVM] bitcode is sent through optimization passes before compilation.
The release notes for the MacRuby 0.5 beta also mention that LLVM is used to generate stubs for calling foreign functions because that's faster than using libffi, which is used in older MacRuby versions.
InfoQ: MacRuby Ahead-Of-Time (AOT) compiles some of the Ruby standard libraries. What's the reason for that?
The impact is definitely a faster startup time. We are principally AOT compiling them to test the AOT compiler. They are compiled at build time, as part of the main rake task.
InfoQ: What's status of supporting native extensions?
We are able to get some C extensions running, like ripper, digest, socket, zlib, etc. after a few modifications. It is our plan to fully implement the MRI C extensions API in a future release.
InfoQ: One of the big improvements in version 0.5 is the removal of the GIL. Now that's been implemented for a while, what's the experience with your solution?
As far as we know it doesn't bring any significant overhead. Starting a thread is slightly costlier than before but most of the code can run in parallel after.
The GIL-less system was absolutely necessary for MacRuby to become a real Cocoa development platform, since it is common for desktop applications to use threads or more recently grand central dispatch (GCD).
InfoQ: MacRuby allows to AOT compile Ruby code - but is it possible to opt out of the Garbage Collector, ie. is there a way to just use Objective-C's reference counting memory management?
It's not possible yet [..]. But we are considering a mode where the compiler would emit autorelease pools and where the runtime would not use the Autozone GC. If you browse the mailing-list archives you will see a recent discussion on that topic.
The mentioned mailing list thread discusses how to emulate the GC, which is crucial to get MacRuby programs to run on platforms that don't support the Autozone GC, eg the iPhone. Another mail in the discussion explains why porting Autozone to the iPhone isn't a solution, because the iPhone's Cocoa version isn't GC aware.
The final MacRuby 0.5 release will run on Leopard and Snow Leopard, both in 32 bit and 64 bit modes.
See previous InfoQ coverage of MacRuby, and the road towards version 0.5.
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
Monitor your Production Java App - includes JMX! Low Overhead - Free download
Why NoSQL? A primer on Managing the Transition from RDBMS to NoSQL
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
No comments
Watch Thread Reply