On 1/28/06, Diego Fernandez diegof79@gmail.com wrote:
I use ENVY to work every day.
Me too :-).
- The lack of a reified concept of "application".
Yup, you're right there. I think we should help stamp out and eradicate all and every non-reified thingy in Squeak.
But note that Monticello can handle arbitrary bits of code in a package - the PackageInfo thing is just a convention. And there's no UI for arbitrary stuff in a MC package but that's probably because we're all so la^H^Hbusy.
Mentioning applications - ever tried to refactor your code? Like moving classes between applications? I'm a bit of an ENVY/VAST n00b, but I haven't found out yet how to accomplish that magical feat. The menu entry is there, but it always pops up an error to the extent "bad bad developer. You can NOT do that!".
Oh, and you mentioned "home brewn tool for merging". ENVY/Manager merging support. 'nuff said about the topic.
- Is there a way to do something similar to "configuration maps" in MC?
(or Bundles is VW)
Yes - rudimentary form but surprisingly usable, MonticelloConfigurations.
- In ENVY each time that I save a method a version of it is created on the
repository. In MC I can revert the changes on a method but I didn't found a similar functionality.
In Squeak (and VW) these changes are kept in the .changes file. However, if you hunt for 'Anvil', I once did a proof-of-concept that logged every change in a Magma database.
Oh, and I don't like this feature too much. For starters, I had to clone the whole library to my laptop (quarter of a gig) in order to be able to work off-site. Of course, Envy says "I know what is best for you, so I will only clone released editions, you dumb dumb developer". Which is a sort of a bummer if the team's idea of using Envy is only to release apps when an app release is imminent.
- The "Make image consistent" is really useful when you have an image
crash
Yes. Ok. That's good about VAST/Envy - that stuff and atomic loads.
But all in all, Envy has for me the wrong feature set. It doesn't do the very basics of versioning (merging support is all but absent, you can't comment editions, stuff like that) and tries very hard to impose some sort of obsolete development model on you, with individual code ownership and favoring locking over merging (it seems. I'm not sure, but it smells that way). And refactoring your code, especially on the class level (moving classes between apps, renaming classes) seems to involve dark magic in VAST/Envy, and a tool that sits between me and well-factored code sucks.
Whereas MC does do the very basics of versioning, and let people decide all by themselves how they want to go about the process on top of it. Which, I think, is the right way to attack this sort of stuff.