David T. Lewis | 1 Feb 02:49
Picon
Favicon

Re: Re: 4.3 - new Bug in Locale >> primTimezone?

Hi Jon,

I am not using a Windows VM, and am in the EST time zone, so I cannot
directly reproduce your problem. But I'm very interested in knowing
the cause of it if you or anyone else figures it out. In particular
I'd like to know if it's a VM issue or an image issue (or both).

Dave

On Tue, Jan 31, 2012 at 11:26:57AM -0500, Jon Hylands wrote:
> Actually, some additional information...
> 
> Turns out the 4.2 testing I was doing was with the Cog VM. With the normal
> 4.2 VM (which is the same as the 4.3 VM), the problem shows up in 4.2 also.
> 
> So this appears to be an issue with the latest Windows VM, which is
> Squeak4.1.1 from Jul 27, 2010...
> 
> - Jon
> 
> 
> On Tue, Jan 31, 2012 at 11:12 AM, Jon Hylands <jon <at> huv.com> wrote:
> 
> >
> > Hi everyone,
> >
> > I've ported some of my code into Squeak 4.3 (was running in 4.2 before),
> > and ran into a weird issue comparing Date objects.
> >
> > When you execute "Date today", it produces a Date object with DateAndTime
(Continue reading)

Eliot Miranda | 1 Feb 02:51
Picon

Re: Smalltalk for small projects only?



On Sat, Jan 28, 2012 at 10:07 AM, Dale Henrichs <dhenrich <at> vmware.com> wrote:
Janko,

I think the limitation for Smalltalk lies in source code management tools/styles ...

With a file-based language 200 engineers can contribute to the project ...  each engineer can checkout a version of the system work in isolation then commit his or her work to the shared repository resolve conflicts and move on .... other engineers can easily integrate the work and so on ... the source code management tools scale ...

In the mid nineties at ParcPlace systems the image was passed around from engineer to engineer so that he or she could integrate their work into the production image... this doesn't scale...

False.  We used change sets to exchange small deltas.  We constructed base-line images (analogous to releases), but I never got an image from someone else except as a context in which a bug was easily reproducible.  By the late 90's we were using parcels to exchange components, and composing the image from these components.
 

There have been proprietary source code management tools that have been created over the years. You can bet that the large companies that are invested in Smalltalk are using systems that are based on these proprietary systems, but you can also bet that they've had to customize those systems for their needs...

The file-based SCM systems work out of the box and don't care what language or even development process that is being used ... they are managing files ...

I disagree.  If you've ever used e.g. svn to manage something even medium-sized you'll find out it handles merge and distribution far worse than e.g. Monticello or Store.  The main difference is definition-level differencing and decomposition into components.  Typical copmponents in a file-based system are spread over a set of files, often with components tangling with each other in certain files.  This still happens in Smalltalk, but to a lesser extent, being more manageable with package overrides and e.g. schemes such as menu pragmas to provide soft integration of overlapping components.



There is no standard SCM for Smalltalk and none of the file-based SCMs really fit Smalltalk. When we are arguing about whether git or mercurial is better on the Pharo list, I will retract that statement:).

Without a standard SCM, the first thing that a 200 person engineering groups needs to do to start using Smalltalk is figure out (for themselves) how to share their work and keep 200 individual images in synch ... I'm not necessarily convinced that anyone has really solved this one.

This is a straw man.  Here's a scheme that works and scales.  Routinely produce a new baseline image which has the accepted main line merged into it.  People take this image, load their components into it and program relative to it.  Then they commit to the central repository when ready (being able to use their own local repositories for their own branches etc).  This scheme has appeared in various guises, from the original Smalltalk group (6-monthly baselines, meetings to decide the contents of the base image) to e.g. weekly builds at Qwaq.


Personally I believe that the problem is surmountable, but for whatever reason the Smalltalk community hasn't focussed on seriously addressing the SCM issue .... in the last 30 years or so:)

Personally I find Monticello significantly more powerful than mercurial or svn, that I have a lot of experience with.  I disagree also that no-one has focussed on the issue  Both Cincom has put in significant effort into Store, and the Squeak community (yourself included) has put significant effort into Monticello.
 

Being able to repeatably build images based on a minimal core image is certainly headed in the right direction, but we still have a ways to go on the tools front ...

Sure, but one can put together something for Smalltalk by hand in very little time.  If you compare building an automated bootstrap for Smalltalk (I just did one for Newspeak over the last few days) compared to using e.g. ANT, there's not much difference, except that the Smalltalk one is easily debuggable.

If there is a difference it is the self-containedness of Smalltalk vs the catholicism of file-based tools.  Smalltalk falls flat on its face when one wants to do ANT-like things that build other than purely Smalltalk artifacts.  Things like ANT are far weaker but far more general tools than their Smalltalk equivalents.  For me this comes dow to not enough emphasis on Smalltalk as a platform, where platform is something that supports integrating with the surrounding ecosystem.  In Squeak the FFI, file system and external process interfaces are really weak.  A good challenge would be to reimplement ANT (a Java application) in Squeak/Pharo.  That would force us to address real weaknesses.
 

Dale



----- Original Message -----
| From: "Janko Mivšek" <janko.mivsek <at> eranova.si>
| To: Pharo-project <at> lists.gforge.inria.fr, "Squeak" <squeak-dev <at> lists.squeakfoundation.org>, "VWNC" <vwnc <at> cs.uiuc.edu>
| Sent: Saturday, January 28, 2012 7:46:32 AM
| Subject: [squeak-dev] 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
|
|




--
best,
Eliot


David T. Lewis | 1 Feb 04:06
Picon
Favicon

Re: Smalltalk for small projects only?

On Tue, Jan 31, 2012 at 05:44:52PM +0100, Trygve Reenskaug wrote:
> Hi all,
> 
> Programming in the large with 50 or 200 programmers...
> This discussion illustrates that we have moved a long way from Alan 
> Kay's vision of the Dynabook; "/... a laptop personal computer for 
> children of all ages/". A personal computer that contains my personal 
> data. Data that I own and manage with personal programs, some of them 
> written by me. Smalltalk was targeted to be the software system for the 
> Dynabook. A single programmer, often myself.
> 
> I have followed this list for some years now, and I miss greater 
> interest in the ultimate end user of the software; the human.

Thanks for this comment. It is quite striking that the human aspects
of this tool for children of all ages are so widely overlooked. But on
the positive side we have things like Dr Geo, Etoys, Scratch and others
that at show a real interest in learning, exploring, and communicating ideas.

I have to laugh every time I read someone making a comment to the effect
that Squeak is not "serious" because it has a silly name. I love the silly
name, because it takes a gentle poke at all of us who become distracted
into thinking that tools and technology are more important than thinking
and communicating.

Dave

> I am 
> working with many others on a paradigm that puts the end user in the 
> driver's seat. A paradigm based on objects (not classes) for mental 
> models that are shared and understood by end users and programmers 
> alike. A paradigm that models the realization of use cases. A paradigm 
> that leads to models that can be faithfully implemented in software to 
> ensure that there will be no surprises.
> 
> The Squeak environment is essentially based on objects and is an ideal 
> starting point for implementing new paradigms. The Squeak programming 
> environment has to be extended with facilities for describing how 
> ensembles of objects interact to achieve a common goal. It's easy to do 
> in Squeak. So why not?
> 
> More at _fullOO.info_.
> 
> Cheers
> --Trygve
> 
> On 2012.01.28 16:46, Janko Miv??ek wrote:
> >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
> >
> >
> >  
> 
> -- 
> 
> Trygve Reenskaug       mailto: trygver <at> ifi.uio.no
> 
> Morgedalsvn. 5A         http://folk.uio.no/trygver/
> 
> N-0378 Oslo               Tel: (+47) 22 49 57 27
> 
> Norway
> 

> 

Chris Cunnington | 1 Feb 04:55
Picon

Bootstrap (was Smalltalk for small projects only)

"If you compare building an automated bootstrap for Smalltalk
(I just did one for Newspeak over the last few days)"

Hi Eliot, 

If you could say something about this bootstrap for Newspeak, it would better inform Squeak's development. 
Or at lease better inform this apparatchik. :)


Clearly, you are not a fan of an image bootstrapped from external files using an external compiler. 
How is what you just did for Newspeak different?


" In Squeak the FFI, file system
and external process interfaces are really weak. A good challenge would be to reimplement ANT (a Java application) in Squeak/Pharo."

Apache Ant. A build tool. We use CMake. A build tool for making vms. 
I want to ask a question here, but I cannot, because I cannot see how that relates to FFI. 
I'm tempted to say you mean a build tool written in Smalltalk to grow  a bootstrap nubbin...  

Chris 

James Robertson | 1 Feb 05:34
Picon

Re: Fwd: [vwnc] Smalltalk for small projects only?

Interestingly enough, I worked on a telecom billing system with more than 100 Smalltalk developers back in
the mid 90's.  As you might expect, the problems we ran into had:

-- nothing to do with Smalltalk
-- nothing to do with the SCM tools (Envy, at the time)

-- Everything to do with process.  

At that same telecom outfit, they tried migrating from Smalltalk to Java at least 3 times over the course of
the next decade, and they failed each time.  Why?  Because with Smalltalk, the process didn't quite kill off
all forward progress (it came close, but never got there).  Using a less productive tool (and Java in the mid
90's was a less productive one), they failed - <due to their processes>

While tools in general have improved, staff politics haven't moved much.  Show me a 200 person project, and
I'd bet very good money that I'll see a death march failing ugly due to nasty politics and a stifling process.

On Jan 31, 2012, at 1:19 PM, Janko Mivšek wrote:

> -------- Prvotno sporočilo --------
> Datum: 	Tue, 31 Jan 2012 07:54:58 -0600
> Od: 	Peter Hunsberger <peter.hunsberger <at> gmail.com>
> 
> 
> With all due respect to the experience of everyone here, people really
> need to give up on this naive belief that Smalltalk development is any
> more efficient than development in any other language.  The simple fact
> is that within the Smalltalk community a large portion of the developers
> have been using the tools for a long time and are very good at using
> them. Throw them at another environment and they are not as efficient.
> However, if you take new developers and throw them at a Smalltalk
> project it takes longer to get them up to speed than throwing them at a
> Java project simply because of the fact that Smalltalk is not
> as ubiquitous. I switched to Java back when IBM dropped Smalltalk, so
> I've seen both sides of this issue for a long time, so let me related
> some anecdotal experience:
> 
> I'm currently working on a Smalltalk project that has about about 50 man
> years of effort in it over 10 years.  Prior to this I worked on a Java
> and XSLt project that had about the same effort over the same period.
> Both have web based GUI's with a fair amount of JavaScript and the
> usual HTML crud and use a relational DB back end (SQL server and Oracle
> respectively). The Smalltalk project has had a mix of very experienced
> Smalltalk developers and inexperienced ones.  The Java project was
> mainly junior and intermediate experience devs. I'd say the overall
> architecture and design was about equivalent; very different, but
> equally well done and comprehensive. The projects are very similar in
> concept and execution.  The Java project had about twice as many
> function points (some pretty major) implemented and four times as many
> use cases supported at the point I switched to the Smalltalk project.
> For the most part this has little to do with the language itself.
> Rather, it is mainly, the supporting infrastructure that one is able to
> draw on in Java projects and this includes Eclipse, Git, etc.  Open
> Source projects also played a big part of this, in the Java world one
> can pull in large chunks of functionality at very low cost (eg. XSLt 2.0
> processors and pipelines, Spring, Hadoop, you name it) that are just not
> quite matched in the Smalltalk world.  You can often get close, but it
> seems that there is always something missing, if only because the teams
> supporting the Smalltalk projects are often much smaller and just can't
> quite keep up with the every changing specs and requirements.
> 
> Bottom line, don't kid yourself that there is any inherent advantage in
> using Smalltalk development over any other language.  It is faster for
> experienced devs in small projects, but if you've got to pull a team
> together from scratch for some medium to large complexity enterprise
> scale project it is probably not going to fair as well.
> 
> Now onto the main question posed here....
> 
> I have also worked on a successful 200 man year project (C and C++ in
> this case), which broke down to a little less than 100 people over a
> little more than 2 years. This was in the telecom world and involved
> many main frame billing interfaces and switching equipment interfaces,
> all very mission critical. In this case about 60% of the team was heads
> down developers. The rest of it was dedicated testers, tech writers,
> business analysts, project managers and managers.  Here again the
> supporting infrastructure played an important role.  Business analysts
> could write up use cases that got stored in a repository (a proprietary
> system) that could be used to generate test case stubs and documentation
> stubs.  The development team tracked progress and bug reports in the
> same repository and source code version control was tied to the
> repository. End user documentation was stored in the repository and
> version controlled. It was simple to know what was going on anywhere in
> the project and to know where the problems were and what code did what
> and to see the entire life cycle of any portion of the code base from
> customer requirement to final deliverable.  I know of no
> support infrastructure that even comes close in the Smalltalk world and
> would consider it madness to even consider taking on such a project
> using Smalltalk.
> 
> Peter Hunsberger
> 
> 
> On Sun, Jan 29, 2012 at 2:37 AM, laurent laffont
> <laurent.laffont <at> gmail.com <mailto:laurent.laffont <at> gmail.com>> wrote:
> 
>    200 developers on a project ? Scaring ..... They should use another
>    technology than Java to go under 50 developers. They will save a lot
>    of money :)
> 
>    Laurent
> 
> 
>    2012/1/28 Janko Mivšek <janko.mivsek <at> eranova.si
>    <mailto:janko.mivsek <at> eranova.si>>
> 
>        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
> 
> 
> <Pripet del sporočila.txt>

James Robertson
http://www.jarober.com
jarober <at> gmail.com

Colin Putney | 1 Feb 06:17

Re: Smalltalk for small projects only?



2012/1/31 Eliot Miranda <eliot.miranda <at> gmail.com>
 
A good challenge would be to reimplement ANT (a Java application) in Squeak/Pharo.  That would force us to address real weaknesses.

I can vouch for this. I wrote Filesystem because trying to write Mason using FileDirectory was too painful.

Colin

Göran Krampe | 1 Feb 08:48
Picon
Gravatar

Re: Smalltalk for small projects only?

On 02/01/2012 06:17 AM, Colin Putney wrote:
> 2012/1/31 Eliot Miranda <eliot.miranda <at> gmail.com
> <mailto:eliot.miranda <at> gmail.com>>
>
>     A good challenge would be to reimplement ANT (a Java application) in
>     Squeak/Pharo.  That would force us to address real weaknesses.
>
>
> I can vouch for this. I wrote Filesystem because trying to write Mason
> using FileDirectory was too painful.

AFAIK this has already been done by Keith Hodges (for Squeak building - 
not general building) in multiple layers (Bob the Builder, Sake etc):

http://www.squeaksource.com/Bob.html
http://www.squeaksource.com/Packages.html
http://www.squeaksource.com/Sake.html

...but perhaps you meant for "generic software building".

regards, Göran

Frank Shearar | 1 Feb 11:40
Picon
Gravatar

Re: Bootstrap (was Smalltalk for small projects only)

On 1 February 2012 03:55, Chris Cunnington
<smalltalktelevision <at> gmail.com> wrote:
> "If you compare building an automated bootstrap for Smalltalk
>
> (I just did one for Newspeak over the last few days)"
>
>
> Hi Eliot,
>
> If you could say something about this bootstrap for Newspeak, it would
> better inform Squeak's development.
> Or at lease better inform this apparatchik. :)
>
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-December/155965.html
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-December/155981.html
>
> Clearly, you are not a fan of an image bootstrapped from external files
> using an external compiler.
> How is what you just did for Newspeak different?
>
>
> " In Squeak the FFI, file system
>
> and external process interfaces are really weak.  A good challenge would be
> to reimplement ANT (a Java application) in Squeak/Pharo."
>
>
> Apache Ant. A build tool. We use CMake. A build tool for making vms.
> I want to ask a question here, but I cannot, because I cannot see how that
> relates to FFI.
> I'm tempted to say you mean a build tool written in Smalltalk to grow  a
> bootstrap nubbin...

We do: it's called Metacello [1]. It lets you
* describe the (acyclic!) dependency graph between your packages
* describe what versions of those packages make up your versioned release
* describe your external dependencies
* bootstrap the whole lot, loading transitive dependencies.

There are a few wrinkles in it, as with everything - things don't work
perfectly (yet) in an offline environment - but Dale Henrichs welcomes
bug reports/fixes and is actively maintaining the project.

The only things that I don't particularly like about Metacello at the moment are
* the description's in Smalltalk, a Turing complete language. It
requires (not a lot of) discipline not to make your build crazily
parameterised and unrepeatable.
* you have inessential artifacts - your ConfigurationOfFoo packages +
classes - in your image because Metacello builds from the inside of an
image.

The latter's easily addressable by turning your ConfigurationOfFoo
into an Installer script and using that as a startup script for a
blank/default image.

frank

[1] http://code.google.com/p/metacello/

Frank Shearar | 1 Feb 11:45
Picon
Gravatar

Re: Bootstrap (was Smalltalk for small projects only)

On 1 February 2012 10:40, Frank Shearar <frank.shearar <at> gmail.com> wrote:
> On 1 February 2012 03:55, Chris Cunnington
> <smalltalktelevision <at> gmail.com> wrote:
>> "If you compare building an automated bootstrap for Smalltalk
>>
>> (I just did one for Newspeak over the last few days)"
>>
>>
>> Hi Eliot,
>>
>> If you could say something about this bootstrap for Newspeak, it would
>> better inform Squeak's development.
>> Or at lease better inform this apparatchik. :)
>>
>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-December/155965.html
>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-December/155981.html
>>
>> Clearly, you are not a fan of an image bootstrapped from external files
>> using an external compiler.
>> How is what you just did for Newspeak different?
>>
>>
>> " In Squeak the FFI, file system
>>
>> and external process interfaces are really weak.  A good challenge would be
>> to reimplement ANT (a Java application) in Squeak/Pharo."
>>
>>
>> Apache Ant. A build tool. We use CMake. A build tool for making vms.
>> I want to ask a question here, but I cannot, because I cannot see how that
>> relates to FFI.
>> I'm tempted to say you mean a build tool written in Smalltalk to grow  a
>> bootstrap nubbin...
>
> We do: it's called Metacello [1]. It lets you

<snip>

Now that I've caught up on the context of the discussion, Metacello's
useful for _Smalltalk_only_ things, unlike ant/maven/msbuild/etc.

If I had a project that had mixed components, with a Smalltalk
component, I'd probably reach for maven.

frank

David Corking | 1 Feb 13:27

How can simple version control be implemented for binary objects?

Although it is not a current area of my personal interest, I want to
piggyback on the current discussion about configuration management and
version control with this question, as I think the answer may be
relevant to future projects, such as rich multimedia applications,
rich user interfaces, and active essays.

How can simple version control be implemented for binary objects? I am
thinking of such things as drawings made with the paint tool, and
audio recorded with the sound recorder, as well as compound objects
such as texts with embedded images, formatting and hyperlinks: the
things that web developers call 'assets'.

A reasonable approach seems to be to place an updated image in a
file-based version control system, and then use scripts to keep source
code up-to-date (from a Monticello repository) and build releases.
That requires manual coordination of the assets in a base image.

Another might be to export project files (.pr files also known as
image segments) into a versioned file system such as a webdav server.
Is it easy to use assets in project files? I don't know how difficult
it is to programmatically move objects from project worlds into flaps
or into other worlds.

Does anyone use more fine-grained controls that allow, say, individual
morphs or models to be versioned in multi-developer projects? Is
Morph's fileOut method suitable?

I seem to recall (a year or more ago) that Edgar suggested that such
an objective may be achieved by extending the project / image segment
system. Does that still seem reasonable and has anyone made progress
on that front? Alternatively, is it feasible to extend existing
Smalltalk config management tools in this direction? (I think
Monticello already handles rich hypertext in source code comments, so
could it one day handle more complex objects?)

David


Gmane