In a QCon London 2010 interview with Joe Armstrong, the original developer of Erlang, and Ralph Johnson, long associated with Smalltalk, OOP, and Patterns, the question of whther we've gone down the "wrong path" w.r.t. object orientation all these yearrs. Both interviewees suggest that we have, but this is due to flaws in the implementation of object ideas and not the ideas themselves.
The Unladen Swallow project that aims to speed up Python has proposed to be merged into mainstream Python. One of Unladen Swallow's goals was to remove the GIL; a new implementation of Python's GIL by Antoine Pitrou will be fairer and less intrusive on multicore CPUs. Also: Squeak Smalltalk has been ported to Android.
The long awaited MagLev Ruby implementation, based on GemStone Smalltalk, is now available in a public alpha release. While not quite ready to run Rails, it does support frameworks like Rack and Sinatra. MagLev comes with full support for GemStone's mature distribution and persistence features.
Squeak Smalltalk is the latest language to be supported on the iPhone platform. We talked to John M McIntosh who ported Squeak to the iPhone and also released software built with Squeak (and its cleaned up version Pharo) in the AppStore. The applications make use of Squeak, but also use the Seaside web framework for building GUIs.
Data, Context and Interaction : A New Architectural Approach by James O. Coplien and Trygve Reenskau
James O. Coplien and Trygve Reenskaug have recently introduced a new architectural approach to OOP based on Data, Context and Interaction pattern. It should allow capturing user mental model in terms of behavioral requirements, something that classic OOP fails to do. The article, that triggered many reactions and critics, provides insights into DCI using concrete examples to show its advantages.
Keith Robertson, the founder of Kuler Software Tools, has written a Smalltalk-inspired language for the .NET platform called SABLE, a language meant to draw upon the qualities of Smalltalk’s syntax and the benefits of running on CLR.
In this interview filmed at QCon SF 2008, Lennart Augustsson talks about writing DSLs in Haskell, presenting the advantages offered by the language. In that context, he talks about embedded DSLs, static and dynamic languages, syntax and semantics, monads and many other related topics.
In this interview from QCon 2008, Avi Bryant talks about his Smalltalk web framework Seaside and DabbleDB. Also: Avi explains how DabbleDB uses Smalltalk images for persistence instead of an RDBMs and how to make Squeak scale.
Avi Bryant talks about working on MagLev, a Ruby implementation built by GemStone. Avi explains the reasons for MagLev, the merits of GemStone's distributed OODB features, and more
OODB vendor Gemstone works on a Ruby VM called MagLev. Working with Seaside's and DabbleDB's Avi Bryant, Gemstone bases the Ruby runtime on their Smalltalk VM to offer performance and powerful persistence features. We talked to Avi Bryant and Gemstone's Bob Walker about the technology behind MagLev and the plans for it.
Wilson Bilkovich is an Engine Yard employee working as a core Rubinius team member. Wilson discusses various Rubinius systems and how they're implemented, as well as distributed version control systems, the Ruby Hit Squad, RubyGems and more.
The One Laptop Per Child project has starting shipping its first generation of XO laptops. OLPC "is not a laptop project, it is an education project", explains Nicholas Negroponte, director of the project. A full Sugar based development environment is available for developers to contribute new activities to the project. Sugar supports collaborative activities when XOs are meshed together.
Debugging Ruby code just got much faster - at least with Rubinius. Unlike the debuggers for MRI or JRuby, the Rubinius full speed debugger allows programs to run at normal speed while they're debugged. We take a look at how the Rubinius VM's transparent design made this possible.
A recent debate on the RubyTalk list asked where to use is_a? vs respond_to? This highlights situations where objects respond to the same interface, but don't share any superclasses. We look at this debate and solutions in other languages such as Smalltalk, Erlang, and Scala.