[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Why Images Bother People (or, at least me)



> "I can easily edit a ruby program in a text editor and run it from the
> command line."
> 
> Never mind that you *could* trivially set up, say, a Squeak 
> image so that you could edit source in a file and run it from
> the shell - that would be completely missing the point, and you
> might as well be using Ruby.  This isn't something that would even
> occur to a non-programmer ("yeah, Excel is nice, but I'd rather edit
> my spreadsheet with a text editor..."), and I find it ludicrous that
> it's considered a requirement for "professional" work.

One reason I don't particularly care for the whole "image" concept is that it seems overly monolithic.  You can't make use of a small language core that only loads resources it needs for the job at hand -- you load the whole 50 Meg image, whether you want to access a database or play MPEG movies, or just print "Hello, World!".

The nice thing about things like Perl, Python, or PLT Scheme is that they are very modular and can quickly start up and perform a job for me.  They only load the libraries and modules needed by my program.

Now, I suppose you could argue that you could leave the 50 Meg image up and running in the background, and send it job requests in a server mode, but I would argue that I'm still tying up resources in the hope that I'll send a request.

The second thing I dislike is that my experience is that these environments don't interact very well with the outside world.  For example, I've played with Squeak a bit and dislike how I don't really have the ability to use an editing environment I'm comfortable with, rather than the Object browser.  Sure, I *should* use the object browser, but I'm stubborn -- I don't want to.  I didn't want to have to create new key bindings to make the browser act the way I wanted.

Furthermore, there was no easy way to modify the environment in a controlled fashion.  In Linux, if I want to play with a new class library in a C++ environment, I can redefine my PATH to point to the new library and restart the program.  No one else on the system is affected.  In contrast, an "image" environment requires me to either create a whole new 15 - 20 Meg image to try the change out, or do a bunch of "file out/file in" manipulations to do so manually.

Now, I'm sure I've made many bad points that Avi can correct me on.  But I hope he (and others) will take it in the spirit intended, "Why *I* dislike image environments", and perhaps show me the light!  :-)

-Brent