VM images and working in the VM image

Richard <[email protected]> Sat, 12 May 2007 14:24:08 -0700
Newsgroups gmane.comp.lang.smalltalk.strongtalk
Message-ID <[email protected]>
Coming from a background of C++, Ruby and Java I'm used the idea that
you program in an IDE and then you output a Jar, or a bunch of shared
libraries and executables. This process involves selecting which
packages you want to use and it also involves people sorting their
software into packages and declairing package dependencies. It seems
to me (and I don't have much experience with smalltalk) that  one has
one big VM image containing the IDE and the program being developed,
but if I write a webserver for instance when I deploy the webserver in
production I don't want the IDE as part of it (probably I want to be
able to attach a debugger via a TCP connection, but that is another
issue).

Does strongtalk support the notion of packages in a similar way to
Java? Can I write a package in strongtalk, declare its dependencies,
then create a VM image that just contains my software and its
dependencies (transitive closure obviously)?

I also want to keep all my source code in files on the disk. That way
I can use existing source control systems. It must be easy to have the
VM (well some objects probably) watching the source files and reload
them if they change. That way at least one can operate even if one
doesn't yet have a GUI (e.g. the present situation with linux and
strongtalk). The file system is also a bit more trustworthy than a
running executable, e.g. if my power goes off then files are ok, but
the VM image is gone. Also source files normally don't get corrupted,
but I'm afraid that if the power goes off while I'm saving a VM image
it might get corrupted.

I think its an advantage to support more than one GUI system because
not everyone wants the same thing (some people want a GUI system that
behaves like the common ones, some people want to try something
radiacally new). In the beginning lots of people can start making GUI
systems, but after a while those that are good become apparent and
more effort goes into them.

It seems to me that package dependancies are as simple as nominating
one package for each class, and some number of dependent packages.
Then having the class loader disallow the loading of any class who's
dependent packages can't be located. It is quite usefull to make
packages into a tree, i.e. java.swing.controllers being a subpackage
of java.swing.

Packages can do other things, like static initialization, but I don't
know of too many situations where one really needs static
initialization other than for factories which seems to be a less
important idiom in languages that support reflection.

regards,

Richard.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Strongtalk-general" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/strongtalk-general?hl=en
-~----------~----~----~----~------~----~------~--~---