The first computer I ever purchased with my own money was a Macintosh LC which, if I recall correctly, cost about $2000 back in 1990 or so. I bootstrapped that LC into a consulting gig that kept me occupied with Mac development for a number of years. A number of Macs followed, a Quadra 700 and a 520c laptop. But then the the late 90s happened, I endured ownership of a one of the PowerPC pizza boxes (which had its best value as a server running MkLinux) and I stopped paying much attention to Apple’s computers for a while.With the advent of OS X I began paying attention again but never really took the plunge.Fast forward to a week ago. My old Sony Vaio just wasn’t cutting it any more for a variety of reasons, so it was time to get a new laptop. The lure of the possibility of triple booting OS X, Windows and Linux was just too much for me and I am now the proud owner of a brand new MacBook, which even with the Apple care plan cost a bit less than that original LC.Thus far, I’m delighted. This is one nice piece of hardware. Sixty seconds flat from opening the box to Google is pretty good. And software like Scrivener, Ecto (which I’m using to post this) and Quicksilver makes the experience even better.It’s good to be back.
My day job is pretty interesting On some projects, over the course of fixing one bug or adding one feature I may write or modify code written in C++, Java, Python and Lua. If our code generator is involved, you can add Perl to that mix. None of those languages is used trivially so I get a good chance to use them all “in anger”.I’m not much of a language zealot though I’ll admit to a strong fondness for Python and I no longer write C++/C code “for fun”.Often the debate between languages these days focuses on dynamic vs. static typing. I can understand that, duck typing in particular can be awfully handy especially if you’re trying to deal with an impedance mismatch between client code and pre-existing libraries. On the other hand, my sense of getting it right when I’m refactoring Java code is higher. Test coverage can be spotty on occasion especially for GUI code but the compiler sees all.Which is a long way around to get to Scala. Scala is statically typed, compiled language targeting the Java VM. While it has numerous other features that make it interesting, its significantly more efficient syntax is the reason that I’m downloading it to experiment with.That said, I do find myself drawn to the simple efficiency of a language like Python. I’ve had occasion to move a bunch of Java code to Python. The design was fairly good and the process was a simple translation. The reduction in code length was quite dramatic. The translation process consisted almost entirely of deleting unneeded lines of code. When I’m writing Java code (with heavy use of Eclipse tools) the process goes fast but the result just feels cluttered. There’s simply more to look at when trying to understand the code. C++ and Java are really noisy languages.
Technorati Tags: Scala, Java, Python
Friday, September 22, 2006
My latest article, “Smalltalk for Everyone” is up on O’Reilly’s OnLAMP site. With this I article, I’m hoping that someone who is initially approaching Smalltalk will get their bearings on the language and the environment in a way that helps them navigate the vast array of information about Smalltalk that’s available.
While the primary Ubuntu distribution gets most of the attention, I just installed the XFce based Xubuntu on an older (circa 2001) Sony Vaio. Suddenly, I have a much snappier laptop with a very nicely integrated UI. All of the Dapper Drake goodness (I was actually able to install with my wireless card and hibernate works) is there but with a little less heft
in the UI.
Technorati Tags: Ubuntu, Xubuntu, XFce, Linux
One of things it seems that people have some trouble getting used to when getting into Smalltalk development is the use of the browser (leave aside for the moment getting used image based development in general). I’ve seen a number of comments about the difficulty of seeing only one method at a time and not being able to scroll around an entire class.For myself, I actually prefer browser based development (I learned C++ programming writing MacApp applications and using MacBrowse). I find that my style is improved by the focusing ability of the browser’s method editor.That said, the best of both worlds, in my opinion is the Whisker browser. Essentially what the Whisker browser does is create a dynamic stack of all of the methods you’ve selected in the method editing pane. It’s as if Emacs split the window and automatically scrolled to the next method you’ve expressed an interest in.It’s this behavior I miss most when I leave a Smalltalk image to go work in, for example, Eclipse. Naturally enough, someone could write a plugin to Eclipse to emulate the behavior. But until then…
Technorati Tags: Smalltalk, WhiskerBrowser, Squeak, Eclipse
I’m working on a couple of personal projects using Seaside and I’m looking into using Seaside’s impressive script.aculo.us support. Here are a couple of things I found out while digging through the Seaside mailing list:
- The easiest way to get a fairly recent version of Seaside and it’s script.aculo.us support is to load Pier from SqueakMap.
- There’s a test AJAX based version of WACounter example called SUCounterTest. I sent #registerAsApplication: to that component and while it appeared properly in my runnging version of Seaside, it generated JavaScript errors when I tried to use it. It’s also necessary to configure the app and add the SUScriptLibrary to it.
Pier, BTW, is one very nifty looking app/framework: A nicely designed CMS/Wiki that can, among other things, seamlessly integrate with custom Seaside components.
Technorati Tags: Smalltalk, Squeak, Seaside, Pier
Mark McCahill has some nice videos/screencasts up relating to the Croquet SDK. The first two are a brief introduction to the environment. The third is a rather nice, quick introduction to developement in the Squeak environment on which Croquet is based.
Technorati Tags: smalltalk, croquet, squeak, development
Keven Dangoor, lead developer of the Python web framework TurboGears has come up with some interesting swag as a way to fund TurboGears development. While the toys are cool enough, the idea of a DVD that provides the “feel” of pair programming with the lead architect of a tool I use is fairly interesting. I enjoy working with TurboGears and look forward to the DVD’s arrival.
The TurboGears site redesign is pretty cool too.
Technorati Tags: turbogears, python, development
A while ago I encountered a clever little language called Lua. It’s got most of the goodies you’d expect in a dynamic scripting language and feels quite naturual if you’ve used Python/Perl/Ruby/JavaScript etc. What sets it apart in my opinion is its small size (about 200k compiled, with strategies to reduce even that) and the ease with which it can be integrated into a native C/C++ application (it’s written in nearly 100% ANSI C and has a very clean “glue” API).
As it happens we had a slot that Lua could fill at work and so I wound up giving a training session on the language. I put together an internal slide presentation using a Python tool called Pylize. I wrote an article on Pylize for Linux.Com and converted the contents of the presentation into an article for OnLAMP at the O’Reilly Network.
Technorati Tags: Lua, Development
I’ve switched blog software to WordPress here at rexmere.com. I “ported” some of the still relevant entries to the new platform. Content from the old and older platform is still available.