Thursday, March 27. 2008History repeats itselfI had to go back and check the date when reading this article. For a moment, I thought I'd found an old article from the nineties. This sounds just like the anti-Java tirade that we used to hear from the C/C++ people. Only now it's Java people getting upset that they're now the ones being displaced.
I was also amazed that in 2008, people still feel that they have to justify the speed of Java. Yes, it's fast enough. Two quotes really jumped out at me.
There are two different things called Java that are being blended together and if we're going to make an apples-to-apples comparison, we have to split them apart. We have the Java language and we have the Java Virtual Machine (JVM). They are very different things and yet we tend to pretend they're the same. In this case, we're comparing the JVM to the runtimes underneath JavaScript, Perl and Python. This is not a language comparison - it's a virtual machine comparison. Since JavaScript and Python (although not Perl) can all run on the JVM, it's a foolish comparison. Does the JVM use a JIT when it's running Java and then turn it off when running Python code? Clearly not. All the languages mentioned here can run on multiple different virtual machines. Some of those virtual machines have JITs and some don't. The quote above doesn't seem to make any sense in this context.
Didn't we give up on the idea of measuring by lines of code a couple of decades ago? So if it takes a million lines of code to write a given application in Java and it only takes 100,000 lines to write that same application in Ruby or Python or Perl, does it somehow magically make the Java version better because there are more lines? One million lines of Perl (to use his example) would be a truly massive application. It would have significantly more functionality than the equivalent Java application simply because Perl code is very compact compared to Java code. Now, I wouldn't choose Perl to create a huge application but that decision has nothing to do with the fact that it's dynamically typed. I would have no hesitation recommending Ruby or Smalltalk for something huge and they're both dynamically typed. Link from James Robertson Wednesday, March 19. 2008Grouping the agile practicesIn an effort to simplify how I explain Agile to people, I've tried to place the various practices into a small number of groupings. I've done a number of versions of this diagram over the years that have been posted here and have never been entirely happy with the results. I presented this version to XP Toronto last night to get some feedback from others in the Agile community and we had some good discussion.
The diagram here is the same one I presented last night and doesn't reflect any of the feedback I got. ![]() This started from the idea that successful projects all have certain characteristics. They may not follow the same practices but they have certain things in common. The groupings of communication, motivation, planning and accuracy seem to be things that all successful projects share. Unsuccessful projects are lacking in one of more of these areas. There's no single way to improve in a given area - many different practices could get you to the same goal and that's reflected in the sample practices in each area. Note that the practices listed here are not intended to be exhaustive - I'm sure there are many more than should be here. One comment from last night was that the label "alignment" might be better than "motivation". Wednesday, March 12. 2008Slides for my Dynamic Finder talkLast night I spoke on rails dynamic finders at the TSOT Rails Project Night. The slides from that talk are here.
Monday, March 10. 2008Colorado Software Summit - Call for papersColorado Software Summit has posted their annual call for papers. This is a phenomenal conference that I can't recommend highly enough. I've spoken there quite a few years and have attended many more.
If you would like to be a speaker at Colorado Software Summit 2008, now is the time to send us your proposals. Don't delay. We will have chosen the majority of the speakers and topics by early April, 2008, and essentially all of them by the end of April, 2008. Although we do hold open a few slots for important late-breaking developments (and we welcome proposals on such developments at any time), in general if we have not received your proposals by the end of April, it will probably be too late for you to be included in the 2008 agenda. Monday, March 3. 2008TSOT Ruby on Rails Project Night Returns!I'll be speaking again at the TSOT Ruby on Rails Project Night. I had a lot of fun at the last one so I offered to speak again
Dynamic finders are one of those things that seem magical to people who are used to statically bound languages like Java or C. In this talk, I'm going to demystify some of this magic so that you can see how one of the more interesting methods in the Rails code actually works. If you use Facebook, you can RSVP on the event page. March 11th - TSOT Ruby on Rails Project Night Returns! Attention Toronto Tech Elitists, As the second Tuesday of the month draws near, so does TSOT's Ruby on Rails Project Night! This unique gathering for Toronto's programming community brings together the brightest minds in Ruby/Rails development, promising another great offering of presentations on March 11th, 2008: Mike Bowler returns to share his wisdom on "Exploring the magic behind dynamic finders: diving into ActiveRecord::Base.method_missing" Robin Ward will explore "RJS: a love and hate affair" in his work with http://www.forumwarz.com and our feature presenter Ilya Grigorik will look at "Taming the RSS beast" with http://www.aiderss.com The TSOT Ruby on Rails Project Night takes place on March 11th, 2008 at 151 Bloor Street West, Toronto. Doors and Snacks 5:30pm Presentations at 6:00pm This event is free but space is limited! Reserve your spot by RSVPing to the facebook event or emailing corina.newby@tsotinc.com If you are interested in becoming a sponsor or presenter at a future event, please contact Corina Newby at 416-908-6082. |