Tuesday, November 19, 2002


Running is good for you.

It's been good for me.  Two miles, three times a week is all you need to do.  I've been doing it for six months now -- I lost 15 pounds, feel more energetic, and I can wear all my old clothes again.  Good for me.  You should do it to.  Start by buying a $100 pair of shoes.  Get clothing that's warm enough.  Be comfortable.  Don't run if it hurts.  Just walk whenever you feel like it.  Do it three times a week.  You'll be doing a few miles in no time.


9:10:59 PM    

All the Java IDEs.

Everything seems to do at least one thing well.  I haven't hit one that does it all.  Here's my toy set:

  • Together/J for the model.  Can't beat this.  Everybody who's raving about refactoring support anywhere has yet to see what TJ does.  Bring your checkbook.  Thank God I got in on the ground floor.
  • NetBeans for clean 1.4 development.  I am starting to like it more and more.  Pretty fast now, rapid advancement.  Good GUI editing.  Love the fix and continue.
  • Eclipse for the very fast UI.  Someday this is going to be really cool.  Some guys I went to school with wrote some of it, so there's the connection.
  • JBuilder for...well...work stuff.  All our projects (like, 60 of the them) are JBuilder-based right now.  We have an ANT build, like everything else on the planet, but JBuilder is my mainstay.  Bad dependency checking in 7 bugs me.  Borland's upgrade policies have pretty much guaranteed that my company will be looking elsewhere.
  • JDeveloper has built-in profiling.  Pretty solid; friends say that they love the stability.  For me, it's too slow.  It's agonizing to wait for code completion on big projects.

That's a lot of toys to have in the box.  The best thing about Java is, with one decent project structure I can switch back and forth between all of these tools effortlessly.  Designing?  Go to TJ.  Debugging?  NetBeans.  Refactoring?  TJ again. 

Hey -- I guess I pretty much just use NetBeans and TJ these days. But it's fun to track the others.  I think it's fantastic that we've got so much choice. 


9:03:45 PM    

[James Strachan's Radio Weblog]

An interesting read. OO is a great way to build software but I do think we tend to look at things with OO rose tinted glasses sometimes. Things like object databases and distrbuted objects can often be a leaky abstraction. Sometimes we should just treat data as just data. 

Typically data comes from databases or remote services which requires runtime marshalling and typechecking anyways - so much of the compile-time benefits of using typesafe objects are often moot. It can often simplify development, particularly of front ends, to keep the data seperate from the business logic and use something like DynaBeans as an AOM style API to your data.

Non-OO is what I've been thinking about for quite a while.  But OO models do some pretty interesting things for us, and we don't necessarily want to lose that.  The key thing I've realized is that object models provide good design-time flexibility, but provide very poor runtime flexibility. 

The neat thing is, OO breaks down cleanly into statements.  Remember LISP?  Prolog?  CLIPS?  That, my friend, is the wave of the future.  Tuples (or statements) are such clean, interesting things.  They're easy to move around a distributed system.  It's easy to construct just about any kind of metamodel you want.  You can easily run multiple metamodels in parallel.  In short, it's the flexibility that we've always wanted.

The downside is exactly the same as the upside: Flexibility.  It's almost too easy to do too much.  And it can get confusing.  When does something really mean something?  Where does the data end and the model begin?  Just like in LISP, where the program is the data is the program.


8:34:49 PM