Sounds a lot like good-old envy, which basically is an always-connected object db for versioned code artefacts - from Methods, to Classes, Applications to Configuration Maps. I always miss it immediately when I work in other languages or Smalltalk dialects. The only thing that comes close to it seems to be STS which never made it into Pharo or Squeak, afaik. Of course Smalltalk is not done with files, and if we want external versioning, we rely on them. Smalltalk lives in the same universe as the rest of the computing world. Smalltalk does handle files well and has to if it wants to play with today's technologies. XML, JS, CSS, JSON, heck, the whole web is based on files. The whole discussion about files should be centered around the questuon whether organizing code by means of files is a good concept. In Smalltalk we think that code is basically objects, and files may or may not be a way of persisting them. So this is not about files per se. Kent Beck once wrote or said: "Source code in files, how quaint!" (why is that citation missing from the OP's article?, does any one have a link to the article?), completely ignoring that of course in the end the code is stored in files. So yes, we use files and we are well equipped with objects to handle files. But we do not THINK in files when we write code or organize artefacts. We see them as a way of storing stuff. Basically, what we do is not so far from other languages or environments, we just don't let files play a role in our code organization from the conceptual viewpoint. But no, we don't view ourselves as being done with files or haiving something better. Just my 2 cents Joachim Am 07.12.15 um 07:13 schrieb Martin Bähr:
Excerpts from Thierry Goubier's message of 2015-12-07 06:42:51 +0100:
i am interested in the versioning of code and objects. the poster makes a good point there. The traditional, full approach, would have been to use an object oriented database like GemStone. Anything that can version objects can version Smalltalk code. gemstone is proprietary, so that doesn't really work for me. are there alternatives?
what if i am on a non-networked machine, running pharoNOS or even squeakNOS, how would i keep old versions of my code/objects? is there any in-image solution for that? The .changes provides that in a limited form. It would be easy to do better in memory, if needed. well, i wouldn't need or even want it in memory, so on disk is fine. the problem is more likely management of the same. browsing the changes is not really convenient. ideally i'd like to see versions in the class-browser and in the debugger, where on error i could then take a look at older versions for comparison, and switch to them to see if maybe the last change was the cause of the error.
greetings, martin.
-- ----------------------------------------------------------------------- Objektfabrik Joachim Tuchel mailto:jtuchel@objektfabrik.de Fliederweg 1 http://www.objektfabrik.de D-71640 Ludwigsburg http://joachimtuchel.wordpress.com Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1