Hi,

> On 13 Apr 2018, at 07:53, Benoit St-Jean via Pharo-users 
> <pharo-users@lists.pharo.org> wrote:
> 
> 
> From: Benoit St-Jean <bstj...@yahoo.com>
> Subject: Where do we go now ?
> Date: 13 April 2018 at 07:53:46 CEST
> To: pharo-users@lists.pharo.org
> Reply-To: Benoit St-Jean <bstj...@yahoo.com>
> 
> 
> Hello guys,
> 
> Just a quick word to get some things straight because, quite frankly, I 
> really don't know where we're heading.
> 
> When Pharo started, the goal was to depart from Squeak and do a *major clean 
> up* of all the code, especially Morphic.  The promise of a new, clean & lean 
> Smalltalk attracted a lot of people.  And then...
> 
> I'm looking at the Pharo 7.0 image right now and I just don't get where we're 
> heading.  Every Pharo release gets bigger, and bigger, and bigger.  I don't 
> mind the environment getting bigger if it adds functionalities or new tools 
> but that's not quite the case here. LOTS of stuff is just duplicated.
> 
> Do we really need 2 code completion classes (NECController, NOCController) ?  
> Do we really need 2 system browsers (Nautilus, Calypso)? Do we really need 2 
> compilers (OpalCompiler, Compiler) ?  Do we really need 8 delay schedulers 
> (DelayMicrosecondScheduler, DelayMillisecondScheduler, DelayNullScheduler, 
> DelayExperimentalSpinScheduler, DelaySpinScheduler, DelayTicklessScheduler, 
> DelayExperimentalCourageousScheduler, DelayExperimentalSemaphoreScheduler) ?  
> Do we really need 2 inspectors (GTInspector, EyeInspector) ?  Do we really 
> need 2 workspaces (GTPlayground, Workspace) ? Et cetera. Et cetera. Et 
> cetera.  I could go on, and on, and on…

Pharo 7.0 is a development version.
Before is releases most duplicated things you mention here will be gone: 

- Nautilus 
- Compiler
- EyeInspector

Workspace could be gone but we need a fallback in case the other more potent 
tools fail.
Schedulers are still necessary.

> 
> Pharo 5.1 had 5885 classes. Pharo 6.1 had 6481 classes. Pharo 7.0 alpha has 
> 7612 classes.  Can you see a trend?
> 
> Pharo 5.1 had 416 preference settings. Pharo 6.1 had 494 preference settings. 
> Pharo 7.0 alpha has 662 preference settings.  Can you see a trend?
> 
> Pharo 5.1 had a 27.44 MB image. Pharo 6.1 had a 35.18 MB image. Pharo 7.0 
> alpha has a 47.97 MB image.  Can you see a trend?

Pharo 5.1 didn’t have : 

- GTTools
- Iceberg
- Epicea
- and many others.

> 
> Add to that the fact that Pharo is a nightmare when you want to port code.  
> Just with the 7.0 release, 61 classes will be deprecated (and lots more to 
> come if you search for the string "deprecated" into the code, most of the 
> time hidden in the comments of the soon-to-be-deprecated-in-Pharo-8-I-guess 
> classes).

If you do not want we to remove classes, how do you want we to go “smaller" and 
cleaner?

> You have code that deals with sockets, should you use the old Socket classes 
> or convert everything to Zodiac? And why do we keep both "frameworks" in the 
> image ?  Pharo hasn't been backward compatible with "old socket classes" a 
> looooooong time ago anyway!

Zodiac relies on Sockets, there is not duplication there.

> You have code that deals with dependencies, should you use the old dependents 
> mechanism or convert everything to announcements?

you got me here. 
but removing takes time… you are free to contribute with fixes :)

> 
> UI speaking, what framework should anyone use ?  Athens?  Something else?

yes, I think Athens should not be part of the image but a loadable package.

> 
> You have code that deals with streams, should you use the old stream classes 
> or convert everything to Zinc ? And why do we keep both "frameworks" in the 
> image ?  Pharo hasn't been backward compatible with the old stream classes a 
> looooooong time ago anyway! 

again, you are mixing pearls and apples here.
(and btw, there was a HUGE refactor of streams on P7)

> So what's the plan?  For instance, should I keep using the Nautilus Browser 
> or I should switch to the Calypso browser and get used to it because Nautilus 
> will be deprecated?  Or should I just don't care because a third system 
> browser will be added in Pharo 8 just because "it's cool, let's add this one 
> too!” ?

The plan is continue improving slowly but steady… things takes time.

> Couldn't we just decide on what's "official" and what's a goodie or an 
> external optional tool/package/framework the same way all other Smalltalks 
> do?  If you say Calypso is the official & supported browser, fine!  Then just 
> get Nautilus out of the image, create a nice loadable package for it and if 
> someone prefers Nautilus, they'll just have to load it into the image, the 
> same way VW has a gazillion optional tools/packages/frameworks you can load 
> from a parcel!
> 
> Whenever I get asked a simple question by a newbie like "Oh, which system 
> browser should I use?", quite frankly, I don't know what to answer.  Did we 
> include Calypso to deprecate Nautilus later?  Is Calypso just a proof of 
> concept?  Is it just an optional tool?  What about all those delay 
> schedulers?  

You should read this list with more attention. 
We told at least 10 times Nautilus is going to be removed.
We told it in presentations.
We told it in tech talks. 
I don’t know how else we could tell it. Maybe a HUGE banner in our site? “HEY 
YOU, READER: NAUTILUS WILL BE REMOVED!"  


> "I loaded this code from SqueakSource and it just doesn't work".  Should I 
> help the guy to fix it or just tell him to convert all the code to the 
> corresponding framework in Pharo?

if there is a corresponding framework yes.
Problem is that people tends to believe a package from squeaksource not loading 
in P7 is our fault and not the responsibility of the package maintainer (or the 
one wanting to use it).

> 
> Perhaps a little bit of clarity and details about what's coming and what's 
> the plan would be beneficial to a lot of us.

Perhaps a little bit of reading? 
We told it, several times.

You cannot take an alpha version and expect production quality.
And you cannot expect that things happens magically: engineering takes a lot of 
time and efforts and we do our best with the resources we have as a community.
This is an open source project. With perks and no so much… but the way to 
change things is contributing.

And just to be clear: The goal of Pharo was never to be SMALL.  
The goal is to do a Smalltalk that is at the same time: 

- Clean (That DOES NOT MEANS SMALL!)
- Modern
- Fitting for business

I’m sorry for counter-rant your rant, but while there are somethings were you 
are right, I find the tone of your commentary not very constructive.

cheers!
Esteban


> 
> 
> ----------------- 
> Benoît St-Jean 
> Yahoo! Messenger: bstjean 
> Twitter: @BenLeChialeux 
> Pinterest: benoitstjean 
> Instagram: Chef_Benito
> IRC: lamneth 
> Blogue: endormitoire.wordpress.com 
> "A standpoint is an intellectual horizon of radius zero".  (A. Einstein)
> 
> 

Reply via email to