On 28.01.2012 22:27, Igor Stasenko wrote:
> On 28 January 2012 22:06, Hilaire Fernandes<[hidden email]> wrote: >> May be it is time to forget about the image, I mean the name of the >> image and change for something else, more in the proximal learning zone >> of programmer. It is not an image we have, it is a data base of object, >> and we are programming on this object data base. >> > > Hmm.. when i started with smalltalk, it was pretty obvious to me from > the very starting > that an image is a bunch of dead bytes, and there's not much you can > do with it at that level. > > Apparently people should not use "image" as as interchange product > between project teams. > > As for scale.. monticello scales well. No, it does not. Cheers Philippe |
In reply to this post by Janko Mivšek
On 28.01.2012 21:16, Janko Mivšek wrote:
> Dale, > > I agree with you that source code management is where we are weak. A > process therefore, as James already said. > > In SCM VisualWorks is ahead in my opinion, even that Store is also not > perfect yet. But it would be useful to reuse some of ideas in Monticello > based SCM tools too. With Metacello we got a good packaging tool, so, > where to go to be even better? I think SCM tool integration into code > browser can be next and relatively easy step. As Store is integrated > into VW code browser. Wow, Store. Did you know that Store is so bad that some of the biggest Cincom success stories paid a really huge, undisclosed sum so that they don't have to use it? If something cries 1995 then it's handing a SQL connection to the client. Your "interface" is the database schema. It ties the database schema to the client. You change the schema and you have to update all of the clients unless you "fake" the old schema with updatable views (if your RDBMS even supports this) and give the changed tables new names. Also security becomes more or less impossible to do. Once you have write access to the public Store repository you can more or less do anything you want to do on any project unless implement it using triggers. And then there are all the possible DoS attacks like SELECT FOR UPDATE. Cheers Philippe |
In reply to this post by Philippe Marschall-2-3
On 29 Jan 2012, at 15:30, Philippe Marschall wrote: >> As for scale.. monticello scales well. > > No, it does not. Please elaborate: I really can't see the difference between doing a merge (either an easy one or a more diffucult one over multiple files, spread over a couple of days, with intervening changes by others) using either Monticello or Git. Yes, git has a bit more tools, is a bit more modern, has a lot more usage and polish, but fundamentally I see little difference. The merge will be hard in both cases. All (big) teams struggle here. BTW: try understanding git internals, let alone try contributing to it, with Monticello you can: it is all Smalltalk. Again, I am not saying that MC has no flaws, or that we can't or should learn from others and improve, far from it, but the grass in not greener on the other side. Sven PS: one of the things that we should take from git, as many others have said on this list, is selective commits. |
In reply to this post by Philippe Marschall-2-3
Big legacy projects are still using Envy for VisualWorks less for the reasons listed below, but mostly because it's extremely difficult to migrate to Store without doing a "big bang" and most of these projects don't have 200+ developers anymore anyhow (disclaimer: I'm only familiar with 2 or 3 of these "success stories"). Many of the big Smalltalk projects were mostly done using Envy, and it's a powerful tool, in spite of its limitations. If there was a reliable way to move the latest changes from a set of Envy configuration maps into Store, it would make it much easier to get away from ancient, buggy and unsupported SCMs (like Envy/GemKit).
But I confess I am not a big fan of Store. It works and has some good features, but it's VW-only and the model is not acceptable for modern development practices, never mind security issues and whatnot. I would like to know better what Ralph was talking about in this interview. It's hard to generalize about this sort of thing without starting a huge rambling flame war or similarly unenlightening cascade of posts. I would personally like to see a git backend for Smalltalk that works across all dialects. VisualWorks really threw a monkey wrench into things by adding proprietary extensions but as we've seen with Seaside, if there's a common need, the community can rally together and come up with some reliably mechanisms to support all versions of the language. How would git work? Source code in files, how quaint, and all that? I don't think it's that hard. In Smalltalk a compilation unit is a method, so you store one file per method. Get rid of the changes file. Index things so everything doesn't grind to a halt. Maybe I'm missing something, but I think this is the way to go. Are there any fundamental problems with this approach (other than resources and funding and the usual perfectly valid excuses)? Cheers, Steve On Sun, Jan 29, 2012 at 7:09 AM, Philippe Marschall <[hidden email]> wrote:
|
In reply to this post by Dale Henrichs
The idea of building the git workflow on top of metacello strikes me as being somewhat ambitious.
To do merge properly (which is one of the huge strengths of git), using a single .gz file seems likely to be extremely complex. clone is just copying a .gz file? pull/push are ftp upload/download of entire .gz file? git has some safety features that would be tricky to implement on top of metacello I think branch and checkout operations in git are crazy fast because of the clever model it uses monticello/metacello have the advantage of cross dialect support (Squeak/Pharo/GemStone and VW to some extent), but it seems the semantics may not be rich enough. Of course this is just an impression. If someone has some more detailed thoughts I would be keen to hear them. Thanks, Steve 2012/1/28 Dale Henrichs <[hidden email]>
Janko, |
In reply to this post by Schwab,Wilhelm K
sorry could not find it , nor I remember the name, I have seen one or two . But in any case I think the comparison is obvious. If you visit the language game , the code required by python is usually 2x 3x times less for the same thing. http://www.google.gr/url?sa=t&rct=j&q=language%20game&source=web&cd=1&ved=0CCwQFjAA&url=http%3A%2F%2Fshootout.alioth.debian.org%2F&ei=U3olT9_qM4mg0QXFm7TOCg&usg=AFQjCNGFEQY5YsieJO4vPgY-7-9VgoiqHw&sig2=oHKbzwA35yA4puN27g1IIA From: "Schwab,Wilhelm K" <[hidden email]> To: "[hidden email]" <[hidden email]> Sent: Sunday, 29 January 2012, 16:12 Subject: Re: [Pharo-project] Smalltalk for small projects only? Reference, please :) I fully believe it.
Bill From: [hidden email] [[hidden email]] on behalf of Michael Haupt [[hidden email]]
Sent: Sunday, January 29, 2012 7:44 AM To: [hidden email]; dimitris chloupis Subject: Re: [Pharo-project] Smalltalk for small projects only? Dimitris,
this is very interesting; I've always wanted to read that kind of study. Do you have a pointer?
Thanks,
|
ok I think I found something you may like this http://codemonkeyism.com/comparing-java-and-python-is-java-10x-more-verbose-than-python-loc-a-modest-empiric-approach/ From: dimitris chloupis <[hidden email]> To: "[hidden email]" <[hidden email]> Sent: Sunday, 29 January 2012, 18:58 Subject: Re: [Pharo-project] Smalltalk for small projects only? sorry could not find it , nor I remember the name, I have seen one or two . But in any case I think the comparison is obvious. If you visit the language game , the code required by python is usually 2x 3x times less for the same
thing. http://www.google.gr/url?sa=t&rct=j&q=language%20game&source=web&cd=1&ved=0CCwQFjAA&url=http%3A%2F%2Fshootout.alioth.debian.org%2F&ei=U3olT9_qM4mg0QXFm7TOCg&usg=AFQjCNGFEQY5YsieJO4vPgY-7-9VgoiqHw&sig2=oHKbzwA35yA4puN27g1IIA From: "Schwab,Wilhelm K" <[hidden email]> To: "[hidden email]" <[hidden email]> Sent: Sunday, 29 January 2012, 16:12 Subject: Re: [Pharo-project] Smalltalk for small projects only? Reference, please :) I fully believe it.
Bill From: [hidden email] [[hidden email]] on behalf of Michael Haupt [[hidden email]]
Sent: Sunday, January 29, 2012 7:44 AM To: [hidden email]; dimitris chloupis Subject: Re: [Pharo-project] Smalltalk for small projects only? Dimitris,
this is very interesting; I've always wanted to read that kind of study. Do you have a pointer?
Thanks,
|
In reply to this post by Sven Van Caekenberghe
On 29.01.2012 17:02, Sven Van Caekenberghe wrote:
> > On 29 Jan 2012, at 15:30, Philippe Marschall wrote: > >>> As for scale.. monticello scales well. >> >> No, it does not. > > Please elaborate: I really can't see the difference between doing a merge (either an easy one or a more diffucult one over multiple files, spread over a couple of days, with intervening changes by others) using either Monticello or Git. The scalability limits of Monticello are well understood. PackageInfo doesn't scale, at all. You put too many classes in a package, and snapshotting gets really slow. Don't believe me? Make a change in Morphic which has only 200 classes and save it. And it's not like loading is any faster. Seaside takes 10 minutes to build from locally cached [1] packages, only 12 seconds go to running tests [2]. This makes C++ compilation times seem fast by comparison. [1] http://jenkins.lukas-renggli.ch/job/Seaside%203.1/buildTimeTrend [2] http://jenkins.lukas-renggli.ch/job/Seaside%203.1/lastCompletedBuild/testReport/ Cheers Philippe |
In reply to this post by Steve Wart-2
On 29 January 2012 16:29, Steve Wart <[hidden email]> wrote:
> Big legacy projects are still using Envy for VisualWorks less for the > reasons listed below, but mostly because it's extremely difficult to migrate > to Store without doing a "big bang" and most of these projects don't have > 200+ developers anymore anyhow (disclaimer: I'm only familiar with 2 or 3 of > these "success stories"). Many of the big Smalltalk projects were mostly > done using Envy, and it's a powerful tool, in spite of its limitations. If > there was a reliable way to move the latest changes from a set of Envy > configuration maps into Store, it would make it much easier to get away from > ancient, buggy and unsupported SCMs (like Envy/GemKit). > > But I confess I am not a big fan of Store. It works and has some good > features, but it's VW-only and the model is not acceptable for modern > development practices, never mind security issues and whatnot. > > I would like to know better what Ralph was talking about in this interview. > It's hard to generalize about this sort of thing without starting a huge > rambling flame war or similarly unenlightening cascade of posts. > > I would personally like to see a git backend for Smalltalk that works across > all dialects. VisualWorks really threw a monkey wrench into things by adding > proprietary extensions but as we've seen with Seaside, if there's a common > need, the community can rally together and come up with some reliably > mechanisms to support all versions of the language. (a) Count me in on a git-based backend (I use github! Without chunk format!) and (b) I know of at several git-using projects - Tim Felgentreff's Gitocello (https://github.com/timfel/gitocello) dumps chunk format into a git repo (tracked as you use Monticello) - GSOC 2010 had a proposal l(http://gsoc2010.esug.org/projects/git-mercurial) - Goran, did this get off the ground? Or is the r - Tony Garnock-Jones wrote a git repository implementation (http://www.squeaksource.com/Git.html) - Pharogenesis (https://github.com/pharogenesis/pharogenesis and http://scg.unibe.ch/research/Pharogenesis) defines what looks like a reasonable mapping, and that comes from - GitFS (http://www.squeaksource.com/GitFS.html) I suspect that most of the pieces of the puzzle are just lying around waiting for someone to plug them together! (Clearly writing TO the repository is trivial. You'd also want the reverse: "oh, the repo's updated; load the new versions of things." This is where things might get tricky, because the load order of things may be important.) > How would git work? Source code in files, how quaint, and all that? Easy enough to address that perception though: "no, source code in an object database (for lo, that's what git is)"! > I don't think it's that hard. In Smalltalk a compilation unit is a method, > so you store one file per method. Get rid of the changes file. Index things > so everything doesn't grind to a halt. > > Maybe I'm missing something, but I think this is the way to go. Are there > any fundamental problems with this approach (other than resources and > funding and the usual perfectly valid excuses)? Really, I suspect it's just that no one has sufficient time/interest/energy. Well, there's definitely _interest_ :) frank > Cheers, > Steve > > > On Sun, Jan 29, 2012 at 7:09 AM, Philippe Marschall <[hidden email]> wrote: >> >> On 28.01.2012 21:16, Janko Mivšek wrote: >>> >>> Dale, >>> >>> I agree with you that source code management is where we are weak. A >>> process therefore, as James already said. >>> >>> In SCM VisualWorks is ahead in my opinion, even that Store is also not >>> perfect yet. But it would be useful to reuse some of ideas in Monticello >>> based SCM tools too. With Metacello we got a good packaging tool, so, >>> where to go to be even better? I think SCM tool integration into code >>> browser can be next and relatively easy step. As Store is integrated >>> into VW code browser. >> >> >> Wow, Store. Did you know that Store is so bad that some of the biggest >> Cincom success stories paid a really huge, undisclosed sum so that they >> don't have to use it? >> >> If something cries 1995 then it's handing a SQL connection to the client. >> Your "interface" is the database schema. It ties the database schema to the >> client. You change the schema and you have to update all of the clients >> unless you "fake" the old schema with updatable views (if your RDBMS even >> supports this) and give the changed tables new names. >> >> Also security becomes more or less impossible to do. Once you have write >> access to the public Store repository you can more or less do anything you >> want to do on any project unless implement it using triggers. And then there >> are all the possible DoS attacks like SELECT FOR UPDATE. >> >> Cheers >> Philippe >> >> > |
In reply to this post by Stéphane Ducasse
+100 for your documentation efforts Stef!
Dale ----- Original Message ----- | From: "Stéphane Ducasse" <[hidden email]> | To: "The general-purpose Squeak developers list" <[hidden email]> | Cc: "[hidden email] Development" <[hidden email]> | Sent: Sunday, January 29, 2012 12:25:56 AM | Subject: Re: [squeak-dev] Smalltalk for small projects only? | | +1 | Metacello is the way to go! | Dale I will update the chapter as soon as you decide the new API :) | I'm working on a nice process document for our little community. Stay | tuned :) | | Stef | | | > My opinion that being able to build images from scratch (easily and | > reproducibly) is a "requirement" to get in the door for | > mainstream projects... giving mainstream developers the | > opportunity to work in a image-based environment will set them | > free:) | | | |
In reply to this post by Philippe Marschall-2-3
On 29 Jan 2012, at 18:48, Philippe Marschall wrote: > The scalability limits of Monticello are well understood. PackageInfo doesn't scale, at all. You put too many classes in a package, and snapshotting gets really slow. Don't believe me? Make a change in Morphic which has only 200 classes and save it. > > And it's not like loading is any faster. Seaside takes 10 minutes to build from locally cached [1] packages, only 12 seconds go to running tests [2]. This makes C++ compilation times seem fast by comparison. > > [1] http://jenkins.lukas-renggli.ch/job/Seaside%203.1/buildTimeTrend > [2] http://jenkins.lukas-renggli.ch/job/Seaside%203.1/lastCompletedBuild/testReport/ I thought the thread and your remark were about the fact that it was functionally not possible to scale to larger teams. That is where is see no real difference. If you refer to scaleability purely on technical terms, speedwise, then yes we have room to improve ;-) I worked with Pharo slices, I have built images containing Seaside. Building bigger well known open source software from scratch usually takes quite some time too. We, as a community have to improve our tools, it will be a lot of work but work _is_ being done right now, think of the compiler, loader, networking, file access, package management. This very small hack already makes a difference: http://code.google.com/p/pharo/issues/detail?id=5222 and we need many more. Sven |
In reply to this post by Sven Van Caekenberghe
Sven,
I think the issue is one of mechanics ... Imagine a small system where we have 5 engineers doing 2 commits per day with an average of 4 mcz files touched per commit ... that's 40 modified mcz file per day ... 10% of the commits are aimed at a bugfix release on an earlier version of the product, 10% of the commit are aimed at adding features for the next functional release and 80% of the commits are aimed at the next incremental release ... In this scenario a Smalltalk team would struggle. I don't think the out-of-the-box toolset can handle this (for Squeak and Pharo)...It certainly can be done in Smalltalk, but I think it would require some additional tools customization/development. Your comment about git is right on: "Yes, git has a bit more tools, is a bit more modern, has a lot more usage and polish" Those things are missing from the Smalltalk toolset. The Smalltalk tool set _can_ be improved ... is being improved ... but it has fallen behind... At some level we are competing with git more than we are competing with other languages... Dale ----- Original Message ----- | From: "Sven Van Caekenberghe" <[hidden email]> | To: [hidden email] | Sent: Sunday, January 29, 2012 8:02:51 AM | Subject: Re: [Pharo-project] Smalltalk for small projects only? | | | On 29 Jan 2012, at 15:30, Philippe Marschall wrote: | | >> As for scale.. monticello scales well. | > | > No, it does not. | | Please elaborate: I really can't see the difference between doing a | merge (either an easy one or a more diffucult one over multiple | files, spread over a couple of days, with intervening changes by | others) using either Monticello or Git. | | Yes, git has a bit more tools, is a bit more modern, has a lot more | usage and polish, but fundamentally I see little difference. The | merge will be hard in both cases. All (big) teams struggle here. | | BTW: try understanding git internals, let alone try contributing to | it, with Monticello you can: it is all Smalltalk. | | Again, I am not saying that MC has no flaws, or that we can't or | should learn from others and improve, far from it, but the grass in | not greener on the other side. | | Sven | | PS: one of the things that we should take from git, as many others | have said on this list, is selective commits. | |
In reply to this post by kilon
Smalltalk rather has the structure of a human brain, neurons firing around, reacting to all sorts of events and data. Even for a psychologist it is impossible to say, what neuron did a wrong job, when the patient suffers from mental illness. That problem tries to address the Pharo team by giving the ball of ill neurons a clear hierarcy and new structure, so that responsbilities can be clearly addressed, parallel to the structure within the programmers and enterprise hierarchy. For too long time the crowd of "Alan Kay hackers" have been messing around in the code, fixing things here and there, destroying lots of things at the same time. Squeak is the perfect proof of Kay's incompetence as software project manager! (I think, he never intended to be one! :-) ) Thats, why Java was such successfull: Clear hierarchy in the code structure, clear assignable responsibilities, clear assignable costs. In Smalltalk - impossible. That's why it died out. Too many complications and administrative overhead besides the programming itself, not mentioned the costs for lawyers, expert witnesses and court, when trying to answer the question of guiltyness, case a customer had real damage by software bugs. And finally: LOC, effectiveness of a programming language, speed, has proofed to be a minor problem in reality! regards, Guido Stepken Am 29.01.2012 08:46 schrieb "dimitris chloupis" <[hidden email]>:
|
In reply to this post by Philippe Marschall-2-3
>>> No, it does not. >> >> Please elaborate: I really can't see the difference between doing a merge (either an easy one or a more diffucult one over multiple files, spread over a couple of days, with intervening changes by others) using either Monticello or Git. > > The scalability limits of Monticello are well understood. PackageInfo doesn't scale, at all. You put too many classes in a package, and snapshotting gets really slow. Don't believe me? Make a change in Morphic which has only 200 classes and save it. You confuse artifacts and models. Give me 1 engineer full time and we fix that. > And it's not like loading is any faster. Seaside takes 10 minutes to build from locally cached [1] packages, only 12 seconds go to running tests [2]. This makes C++ compilation times seem fast by comparison. > > [1] http://jenkins.lukas-renggli.ch/job/Seaside%203.1/buildTimeTrend > [2] http://jenkins.lukas-renggli.ch/job/Seaside%203.1/lastCompletedBuild/testReport/ > > Cheers > Philippe Stef |
In reply to this post by Sven Van Caekenberghe
Yes took me 10 hours to install GTK and it crashed on me…
So … I do not see this discussion going anywhere. On Jan 29, 2012, at 7:16 PM, Sven Van Caekenberghe wrote: > > On 29 Jan 2012, at 18:48, Philippe Marschall wrote: > >> The scalability limits of Monticello are well understood. PackageInfo doesn't scale, at all. You put too many classes in a package, and snapshotting gets really slow. Don't believe me? Make a change in Morphic which has only 200 classes and save it. >> >> And it's not like loading is any faster. Seaside takes 10 minutes to build from locally cached [1] packages, only 12 seconds go to running tests [2]. This makes C++ compilation times seem fast by comparison. >> >> [1] http://jenkins.lukas-renggli.ch/job/Seaside%203.1/buildTimeTrend >> [2] http://jenkins.lukas-renggli.ch/job/Seaside%203.1/lastCompletedBuild/testReport/ > > I thought the thread and your remark were about the fact that it was functionally not possible to scale to larger teams. That is where is see no real difference. > > If you refer to scaleability purely on technical terms, speedwise, then yes we have room to improve ;-) > I worked with Pharo slices, I have built images containing Seaside. > Building bigger well known open source software from scratch usually takes quite some time too. > > We, as a community have to improve our tools, it will be a lot of work but work _is_ being done right now, think of the compiler, loader, networking, file access, package management. > > This very small hack already makes a difference: http://code.google.com/p/pharo/issues/detail?id=5222 and we need many more. > > Sven |
In reply to this post by Dale Henrichs
Stef efforts are amazing.
I started a course on Pharo this week. All students have their PBE. Very important.
Laurent On Sun, Jan 29, 2012 at 7:09 PM, Dale Henrichs <[hidden email]> wrote: +100 for your documentation efforts Stef! |
In reply to this post by Steve Wart-2
Steve,
I have two comments: 1. "inventing the future" doesn't happen by considering how "ambitious" it may seem. In the end it is probably easier than you think and harder than I think. If it was real easy, I'd have been done by now:) 2. I propose a race: You start working on your git backend for Smalltalk and I'll continue working on Metacello, first one to "git work flow" wins ... But then the real winners will be the Smalltalk Community... I have said this before: "I can hardly wait until someone invents the replacement for Metacello---it will give me more time for other projects:)" Dale ----- Original Message ----- | From: "Steve Wart" <[hidden email]> | | The idea of building the git workflow on top of metacello strikes me | as being somewhat ambitious. |
In reply to this post by Steve Wart-2
On 29.01.2012 17:29, Steve Wart wrote:
> Big legacy projects are still using Envy for VisualWorks less for the > reasons listed below, but mostly because it's extremely difficult to > migrate to Store without doing a "big bang" and most of these projects > don't have 200+ developers anymore anyhow (disclaimer: I'm only familiar > with 2 or 3 of these "success stories"). Many of the big Smalltalk > projects were mostly done using Envy, and it's a powerful tool, in spite > of its limitations. If there was a reliable way to move the latest > changes from a set of Envy configuration maps into Store, it would make > it much easier to get away from ancient, buggy and unsupported SCMs > (like Envy/GemKit). So in something like ten (10) years they haven't managed to migrate await form said SCMs? Cheers Philippe |
In reply to this post by kilon
Hi Dimitris, the Greek Google link does not work for me for some reason; maybe the shootout server is down ... in any case I strongly doubt that the shootout benchmarks (if that's where the link was supposed to point to) say anything about productivity. The other link is not what I was expecting, sorry. For one, the blog entry does not really say anything about productivity. It is all about LOC, which is a poor metric for productivity. The blog post certainly does not "prove that by replacing java with python you can scale down developing time by 2-3x times", to quote you. Having to write, say, 50 % of the LOC in no way means you need half the time. Staying tuned for more, Michael
|
In reply to this post by Dale Henrichs
Hi Dale
First let me apologize for using such a horrible IT euphemism. I have been hanging around software politicians for far too long. I think you deserve all the credit for coming up with an elegant and effective configuration management system that has brought many parts of the Smalltalk community together to build common, useful and practical tools. Regarding your race suggestion, I think you are right that having more choices will be good for the community. I can't claim that I don't have resources available - I can come up with a few hours a week to work on this. I'll start with the links Frank posted, but I think the two approaches in the end may share some common features. I've been thinking about this idea for a long time but without feedback I haven't had the courage to start. Maybe I can finally help. Cheers, Steve On Sun, Jan 29, 2012 at 11:13 AM, Dale Henrichs <[hidden email]> wrote: Steve, |
Free forum by Nabble | Edit this page |