Smalltalk for small projects only?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
95 messages Options
12345
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Philippe Marschall-2-3
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


Reply | Threaded
Open this post in threaded view
|

Re: [Smalltalk for small projects only?

Philippe Marschall-2-3
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


Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Sven Van Caekenberghe
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.
Reply | Threaded
Open this post in threaded view
|

Re: [Smalltalk for small projects only?

Steve Wart-2
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:
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



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

Steve Wart-2
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,

Metacello itself needs work to make it usable by groups of developers ... the lack of merge capability is a real hindrance to being able to have multiple folks work on the same project and use Metacello ...

I imagine that a Metacello configuration is the moral equivalent of a git repository. It should be possible to find "moral equivalents" of the various git operations: clone, push, pull, branch, checkout, merge, commit. It is something that I will be looking into in the not too distant future, since I want to improve the usability of Metacello for groups of developers.

I agree that integrated tools is another area that needs attention.... when it is time to commit your work there are just too many different windows and browsers that you have to monkey with to save your work ...

Another area that shouldn't be neglected is the notion of basing things on a minimal core image and automated builds for individuals ... We've got folks doing good things with Jenkins but I sense that with each installation there are things that still need to be customized in the build process itself. It should be dead simple, like compiling a c file when you know the path to an image...

I think we may focus too much on the in-image tools and not enough on the external tools that are just as important.

We need to make it easy for a developer (in a team of developers) to check out a version of a minimal1 image, do a reproducible build of the correct version of the project, then fire up the image and do his or her development thang, commit/push/pull/merge/bang and then the next developer does  pull/merge/build/boom to pick up the changes for her image and so on ... This involves more than just in-image tooling.

Dale

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

kilon
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,

Michael

Am 29.01.2012 um 08:51 schrieb dimitris chloupis <[hidden email]>:

Maybe not for smalltalk but for python there is a number of surveys that prove that by replacing java with python you can scale down developing time by 2-3x times. By "prove" I mean projects that have actually done that.  Not quite a 10x but I think its impressive non the less and I think the numbers wont be very dissimilar for smalltalk


From: Michael Haupt <[hidden email]>
To: "[hidden email]" <[hidden email]>
Sent: Saturday, 28 January 2012, 23:29
Subject: Re: [Pharo-project] Smalltalk for small projects only?

Janko,

Am 28.01.2012 um 21:08 schrieb Janko Mivšek <[hidden email]>:
>> I think this is a post that clearly illustrates the big problem with
>> smalltalk. The very fact that is compared with Java and Java survives.
>
> Yes, that 4-5 peole can do what 50 Java people are needed is both a
> blessing and a curse :)

I wanted to ask this earlier: is there actual evidence for this, or is it just boasting?

> Blessing because of productivity, curse because
> we are not able to scale beyond one highly connected development group.
> We don't have project management practices and tools, while Java guys
> have because they need them from the start.

I'm not so sure the people at those Smalltalk firms building software for banks et al. have no project management. Boasting? ;-)

Best,

Michael




Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

kilon
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,

Michael

Am 29.01.2012 um 08:51 schrieb dimitris chloupis <[hidden email]>:

Maybe not for smalltalk but for python there is a number of surveys that prove that by replacing java with python you can scale down developing time by 2-3x times. By "prove" I mean projects that have actually done that.  Not quite a 10x but I think its impressive non the less and I think the numbers wont be very dissimilar for smalltalk


From: Michael Haupt <[hidden email]>
To: "[hidden email]" <[hidden email]>
Sent: Saturday, 28 January 2012, 23:29
Subject: Re: [Pharo-project] Smalltalk for small projects only?

Janko,

Am 28.01.2012 um 21:08 schrieb Janko Mivšek <[hidden email]>:
>> I think this is a post that clearly illustrates the big problem with
>> smalltalk. The very fact that is compared with Java and Java survives.
>
> Yes, that 4-5 peole can do what 50 Java people are needed is both a
> blessing and a curse :)

I wanted to ask this earlier: is there actual evidence for this, or is it just boasting?

> Blessing because of productivity, curse because
> we are not able to scale beyond one highly connected development group.
> We don't have project management practices and tools, while Java guys
> have because they need them from the start.

I'm not so sure the people at those Smalltalk firms building software for banks et al. have no project management. Boasting? ;-)

Best,

Michael






Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Philippe Marschall-2-3
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


Reply | Threaded
Open this post in threaded view
|

Re: [Smalltalk for small projects only?

Frank Shearar-3
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
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Smalltalk for small projects only?

Dale Henrichs
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:)
|
|
|

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Sven Van Caekenberghe
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
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Dale Henrichs
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.
|

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Guido Stepken
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.
Programmers reality is not the reality outside in the real world!
I'm really very interested watching the great Squeak/Pharo "cleanup" and how these problems are addressed, if there is a solution existing!?

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]>:
Very good point . The tools and the libraries sometimes can play more important role than the language itself. However Java seems to constantly loosing developers because if something is a mess for small project for big projects becomes a big mess , just take a look how many gazillion scripting languages Java has , way more than C/C++.  

I think Java is not that ideal for large project as people think. I will go as far as saying that if it was not such a well marketed product would be an abandoned product by now and not a dominating platform. Companies may like , but coders certainly do not . Companies are attracted by good marketing, but coders are not. 

Coders are attracted , pro coders that is, from what can bring food to their table and pay their bills. And in that respect Java is phenomenal. If I was a big company however Java would be the last thing I would use for big project. As a matter of fact python has gained quite a momentum with huge projects and it is afterall a smalltalk child. Why not smalltalk ?


From: Janko Mivšek <[hidden email]>
To: [hidden email]; dimitris chloupis <[hidden email]>
Sent: Saturday, 28 January 2012, 22:08
Subject: Re: [Pharo-project] Smalltalk for small projects only?

S, dimitris chloupis piše:

> I think this is a post that clearly illustrates the big problem with
> smalltalk. The very fact that is compared with Java and Java survives.

Yes, that 4-5 peole can do what 50 Java people are needed is both a
blessing and a curse :) Blessing because of productivity, curse because
we are not able to scale beyond one highly connected development group.
We don't have project management practices and tools, while Java guys
have because they need them from the start.

> You know I dont find it mysterious at all that smalltalk is unpopular as
> it is. If I go to the python website I know in 4 second why I should use
> python, if I go to a Java site in 10 seconds I know what Java is good
> for, if I go to a C/c++ again in seconds it becomes clear what is the
> goal, even Assembly websites explain in a few lines what the language is
> all about.

> With Squeak and Pharo on the other hand it took me literally hours to
> figure out what they are good for and by the time I did I was amazed how
> underhyped smalltalk is. For me at least is the most underhyped piece of
> software I have ever used.

This is a valuable point to consider in the future.


> The issue with image here its easy to totally miss the whole point. An
> image is loading lighting fast , a java application is not, its also
> great way to organise object orientated code because it allows you to
> quickly navigate through it, loading files , is expensive and frankly
> quite archaic. The idea behind filesystem was created on the basic that
> computer could only load just a few kbs or even less because of limited
> memory.
>
> In the age we live , filesystems are unnecessary anyway. I am not saying
> that hardware storage  is , just file systems,  and I think smalltalk
> moves towards that direction. You dont really need files and extensions
> to separate data and  code,  OO  can do the job just fine in that area.
>
> I cant comment on the specifics of the image I am new to smalltalk and
> still exploring the basics, but let me say that I would love to take the
> idea of image abit further maybe following the brilliant architecture of
> our brains which stores information not in packages but via association,
> I think this kind of workflow is alot closer to what OO tries to be.
>
> For me the image play a pivot role inside the OO of smalltalk, which
> unlike Java does not stop at class definition. Besides an oversize
> clumsy library , smalltalk has very little to be envious of Java.
>
> Regarding huge project I will boldly say that inside a system of
> gazillion files a single file can easily lost its identity, OO can plays
> a huge role here, it can create that association I was talking about
> earlier and it can make sure that the user and coder has immediate
> access to information that he want to focus on at that particular moment
> but also has a structure that is obvious and simple to navigate.
>
> About the limitation of an image , i think that is a matter of
> implementation , obviously smalltalk has not been used as extensively in
> large projects as Java. But then what stops us from implementing an
> image that can brake any barrier, even do direct streaming from disk
> when the memory is not enough or when we dont want to occupy its entirety ?
> ------------------------------------------------------------------------
> *From:* Janko Mivšek <[hidden email]>
> *To:* "[hidden email]"
> <[hidden email]>; Squeak
> <[hidden email]>; 'VWNC' <[hidden email]>
> *Sent:* Saturday, 28 January 2012, 17:46
> *Subject:* [Pharo-project] Smalltalk for small projects only?
>
> Hi guys,
>
> Ralph Johnson in his InfoQ interview made an interesting observation:
>
> 2:55 minute: "Smalltalk made an fundamental error ... image ... you can
> build something with 4-5 people what 50 people can build in Java, but if
> you take 200 people in Java ... it is really designed for small systems
> ...  "
>
> Are we because of the image really destined for relatively small
> projects and small systems (of Java 50 people project size)?
>
> Are we really not able to scale to bigger projects/systems because of that?
>
> Ok, there are few exceptions of course (JPMorgan, OOCL, ..), but still...
>
> [1] http://www.infoq.com/interviews/johnson-armstrong-oop
>
> Best regards
> Janko
>
>
> --
> Janko Mivšek
> Aida/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
>


Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Stéphane Ducasse
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
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Stéphane Ducasse
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


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Smalltalk for small projects only?

laurent laffont
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!

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:)
|
|
|


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

Dale Henrichs
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.

Reply | Threaded
Open this post in threaded view
|

Re: [Smalltalk for small projects only?

Philippe Marschall-2-3
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


Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Michael Haupt-3
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

Am 29.01.2012 um 18:06 schrieb dimitris chloupis <[hidden email]>:

ok I think I found something you may like 

this



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.



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,

Michael

Am 29.01.2012 um 08:51 schrieb dimitris chloupis <[hidden email]>:

Maybe not for smalltalk but for python there is a number of surveys that prove that by replacing java with python you can scale down developing time by 2-3x times. By "prove" I mean projects that have actually done that.  Not quite a 10x but I think its impressive non the less and I think the numbers wont be very dissimilar for smalltalk


From: Michael Haupt <[hidden email]>
To: "[hidden email]" <[hidden email]>
Sent: Saturday, 28 January 2012, 23:29
Subject: Re: [Pharo-project] Smalltalk for small projects only?

Janko,

Am 28.01.2012 um 21:08 schrieb Janko Mivšek <[hidden email]>:
>> I think this is a post that clearly illustrates the big problem with
>> smalltalk. The very fact that is compared with Java and Java survives.
>
> Yes, that 4-5 peole can do what 50 Java people are needed is both a
> blessing and a curse :)

I wanted to ask this earlier: is there actual evidence for this, or is it just boasting?

> Blessing because of productivity, curse because
> we are not able to scale beyond one highly connected development group.
> We don't have project management practices and tools, while Java guys
> have because they need them from the start.

I'm not so sure the people at those Smalltalk firms building software for banks et al. have no project management. Boasting? ;-)

Best,

Michael






Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

Steve Wart-2
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,

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.


12345