Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
May 2020
- 168 messages
splitWithin: ?
by Stéphane Ducasse
Hi
We have splitOn:
'| a b | c d |' splitOn: â|'
>> an OrderedCollection('' ' a b ' ' c d ' â')
And I think that it would be nice to have
'| a b | c d |' splitWithin: â|'
>> an OrderedCollection(' a b ' ' c d ' )
Do you have idea?
S.
--------------------------------------------
Stéphane Ducasse
http://stephane.ducasse.free.fr / http://www.pharo.org
03 59 35 87 52
Assistant: Julie Jonas
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley,
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France
May 16, 2020
Re: [Pharo-dev] Squeak and Pharo speed differences
by Bernhard Höfner
It seems that someone needed an optimized factorial-routineâ¦
The problem on the other hand is, that the machine friendly code is much less âdidactical" than the human friendly common implementation. To have both I propose to add the human friendly clear and short version as comment. Its a bit like some primitive methods were after the primitive call there is the smalltalk version as well (VisualWorks).
Regards, Bernhard Höfner
> ...
> The algos are different:
>
> Pharo 8:
> Integer>>factorial
> "Answer the factorial of the receiver."
>
> self = 0 ifTrue: [^ 1].
> self > 0 ifTrue: [^ self * (self - 1) factorial].
> self error: 'Not valid for negative integers'
>
>
> Pharo 9:
>
> Integer>>factorial
> | nex nexnext acc |
> "Guard for know cases (0,1,2,error)"
> self < 3
> ifTrue: [ ^ self < 0
> ifTrue: [ self error: 'Not valid for negative integers' ]
> ifFalse: [ self > 0
> ifTrue: [ self ]
> ifFalse: [ 1 ] ] ].
> acc := 2.
> nex := 2.
> nexnext := 10.
>
> self // 2 - 1
> timesRepeat: [ nex := nex + nexnext.
> nexnext := nexnext + 8.
> acc := acc * nex ].
> self odd
> ifTrue: [ acc := acc * self ].
> ^ acc
>
> ...
May 16, 2020
Re: [Pharo-dev] Squeak and Pharo why the fork
by Eric Gade
On Sat, May 16, 2020 at 11:19 AM Ben Coman <btc(a)openinworld.com> wrote:
>
>
> But lets also consider something at least as important as all the other
> points... "resourcing".
> Assuming all technical and political issues were dealt with, who will do
> this reintegration work?
> Assuming You were at a point where you were familiar with both platforms
> to be capable of doing the work,
> would You be willing to put aside your other interests to do at least 50%
> of that work?
>
>
I know Pharo has the consortium, which funds some of the work that goes on.
I also know that Squeak has a foundation, but that it barely keeps the
servers running. Even if there were just one open source Smalltalk out
there, resources are limited. VM developers, especially, need to be
compensated somehow. I have often wondered why there is not some Patreon
like option for the developers of the Opensmalltalk-vm or similar unity
efforts. I would gladly part with $20/mo or whatever to ensure that
development happens in a coherent and agreeable way.
In short, I don't think this is just about "people doing the work." Most
smalltalkers can't do the VM work, for example. It requires a lot of
knowledge and experience. People have day jobs, and that saps not only
their time, but their mental capacity to program. I'm thinking small
amounts of money from members of the community would go further in
enhancing the big parts of these systems than minor, scattered programming
contributions. But that's just my $0.02.
--
Eric
May 16, 2020
Re: [Pharo-dev] Squeak and Pharo why the fork
by Ben Coman
On Sat, 16 May 2020 at 16:57, Shaping <shaping(a)uurda.org> wrote:
> You also had personality differences and disagreements which developed
> over years. Eventually the Pink plane community forked and created Pharo.
> The foundational community of Squeak (Blue plane) did not want to make the
> changes the Pink plane community wanted or required.
>
> What are the specific changes that Squeak folks donât want to make?
>
> Squeak/Pharo is a configurable environment. We can still have a quasi-OS
> world if we want that. What specific aspects of the analytic and creative
> experience break or degrade for Squeak users with these specific changes,
> and also cannot be preserved by loading the right Smalltalk packages?
>
> At a minimum, not until the Squeak community could build Squeak from a
> Pharo kernel image. Then it would be possible. But I don't think likely.
>
> What are the specific problems? Anyone?
>
I'm mainly focused on Pharo but I respect the Squeak heritage and monitor
their mail list, chipping in when I can - so I have felt comfortable
sharing the general philosophical differences between Squeak and Pharo as I
understand them. But as to specifics, you'd probably need someone from
Squeak to pair-review the Pharo changelogs [1] with you - and that might
not even capture everything.
[1] https://github.com/pharo-project/pharo-changelogs
But lets also consider something at least as important as all the other
points... "resourcing".
Assuming all technical and political issues were dealt with, who will do
this reintegration work?
Assuming You were at a point where you were familiar with both platforms to
be capable of doing the work,
would You be willing to put aside your other interests to do at least 50%
of that work?
Because otherwise discussion around it with the idea that others do it is
pointless. :)
Note, last year I personally did have the inspiration and intention of
investigating the differences between Squeak and the Pharo Bootstrap to
understand the possibility of Squeak bootstrapping off the Pharo Bootstrap,
so there might one day they might have a common non-gui system - but other
interests ended up having a stronger hold on me. Realistically its not
something I'll get to any time soon.
cheers -ben
May 16, 2020
Re: [Pharo-dev] Squeak and Pharo speed differences
by Ben Coman
On Sat, 16 May 2020 at 12:56, Eliot Miranda <eliot.miranda(a)gmail.com> wrote:
> Hi Ben,
>
> On May 15, 2020, at 10:33 AM, Ben Coman <btc(a)openinworld.com> wrote:
> On Fri, 15 May 2020 at 14:09, Shaping <shaping(a)uurda.org> wrote:
>
>
>>
> *Would reintegrating Squeak and Pharo development make more sense?*
>>
>
> I think that is not likely. Both continue to have different goals. And a
> significant area where they are likely to continue to diverge is the
> graphics. Squeak is likely(?) to stay with Morphic a long while Pharo
> intends to dump Morphic.
> This is one of the reasons that Spec was created - to be independence
> layer.
> IIUC in Pharo 9 Spec is already working on top of a GTK3 backend.
>
> wrt the VM, Pharo want to remove all native-windowing from the VM, so that
> window opening
> is controlled from the Image via FFI rather than the VM. This conflicts
> with Squeak's backward comparability goals.
>
>
> The VM comprises an execution engine[1], a memory manager[2] (which share
> an object representation), and an assorted collection of plugins and
> platform support[3]. The execution engine and memory manager are the core
> support for Smalltalk language execution and are shared 100% between Squeak
> and Pharo. And I have rearchitected this core, adding a JIT and a much
> improved object representation and memory manager. Pharo has made *no
> change* to this core.
>
> The assorted collection of plugins and platform support are a kit of parts
> which can be assembled in a variety of configurations, just as a Smalltalk
> image can be configured in radically different ways to develop and deploy
> different applications.
>
> It is therefore not true that there is a conflict in backward
> compatibility. The core VM is only backward compatible at a source level.
> Backward compatibility in the platform is no more than a configuration in
> the kit of parts. And the existence of the minheadless minimal core
> platform support alongside the transitional head Gul platform proves that
> there need be no conflict.
>
> The Pharo community makes great claims about how different its VM is when
> in fact the new work that has given us much improved performance and
> scalability is shared 109% between the two.
>
Thanks for clarifying that for Shaping. I did understand that [1] and [2]
are the same for SqueakVM and PharoVM. My point was that IIUC Pharo is
dropping some significant parts of [3] from their VM, so a Squeak/Pharo
reintegration into a common Image running on a single VM binary could not
run old Squeak images. Such backward compatibility I understand is
important to the Squeak community, but not so important to Pharo since
Pharo delivers a specific VM for a specific Image Release and uses
PharoLauncher to coordinate which VM to use for a given Image. Just
another difference in philosophy the would impede a full Squeak/Pharo
reintegration.
cheers -ben
May 16, 2020
Re: [Pharo-dev] [Vm-dev] Squeak and Pharo speed differences
by Stephan Eggermont
Metacello works well across Gemstone, Squeak and Pharo
Verstuurd vanaf mijn iPhone
> Op 16 mei 2020 om 15:33 heeft Robert <robert.withers(a)pm.me> het volgende geschreven:
>
> 
> Hi Shaping,
>
>> On 5/16/20 8:47 AM, Shaping wrote:
>> Can you tell me about those efforts? I know the VM is one, maybe the biggest. What else do Squeak folks work on?
>>
>> I also understand why the developers of the new Pharo preferences tree did not like to invest the same effort in Squeak. What incentive would they have?
>>
>>
>>
>> Make all features (GUIs/frameworks) loadable into a new, mostly empty image.
>>
>
> Andso, here we have the biggest challenge to doing such sharing. You say all features should be loadable into either image. The issue is that Pharo has driven forwards in creating new load formats, such as Tonel. I tried to load up the Tonel format, but failed. I couldn't get distracted from my core work.
>
> NO EFFORTS have been made to have Squeak able to load such formats, and the Pharo folks have deprecated the existing Montecello load format, from a long time in Squeak. In particular, it is not possible to load a Monticello Configuration Map in Pharo and Squeak can't load the newer formats Pharo has created. So there is no commonality of load systems between Squeak/Pharo. It totally sucks. That is step number one to having features co-loadable, common load systems. I recall someone from the Pharo side being disparaging to the Monticello load format, so there is no interested in making features cross-image. NONE. ZERO! It is a hard fork. So sad. :(
>
> K, r
>
> --
> Kindly,
> Robert
May 16, 2020
Re: [Pharo-dev] [Vm-dev] Squeak and Pharo speed differences
by Shaping
== First, on the text selection delay issue. ==
Now that you mention it, the text seems to get highlighted slightly slower
than in native Windows widgets or WordPad (which is what I had available for
comparison). But it also behaves differently.
Please try the following and report whether you experience the same
delay: 1) click into the middle of a word with a single click - it won't get
highlighted,
Correct.
2) click again at the same cursor position
How soon after? If more than a small fraction of second, this is just
another single click.
- the whole word should be selected now.
No, not unless this is a double click. If I do a double click (splitting a
double click into two different click locations is almost impossible), then
the text highlights with a noticeable delay.
Is the reaction to the second click also too slow?
There is no response to the second click except to place the cursor in the
same place again. A rapid sequence of clicks (double-click) must happen to
cause selection.
In regular Windows widgets you have to double-click, not click again, to
toggle word selection. Your experienced delay might therefore be associated
with Squeak/Pharo processing two consecutive single clicks and the OS
widgets processing one proper double click event. But that's only
speculation on my part, I didn't check the code.
These are Pharo windows, not native Windows windows. I'm doing the tests in
a Pharo 9 Playground. It follows the same selection protocol as a native
window: a double click. Pharo has its own event loop, like VW, right?
== Second, on the divergence of Pharo and Squeak == from my perspective and
I have not been around at the time of the split yet.
A general note: you will obviously get biased views from each side and the
other one might view them as unfairly presented (which makes such
discussions unproductive quickly). Moreover, much of the divergence is not
in the VM but in the image,
No good reason for image divergence has been given yet. The Pharo effort to
modularize completely, if successful, gives all Squeak and Pharo
Smalltalkers what they want: painless, reliable/predictable, deep
fine-grain reconfigurability of the environ. Is there something else to
want here? What does the bold stuff not cover?
so you might not even be talking to the right people on the Squeak side.
Since not everyone is subscribed to both (or all three) mailing lists, they
might not see all the answers, so you cannot have a coherent discussion at
all.
I might not be mailing to the right lists. Feel free to make suggestions.
To start with the example, I suppose the new preferences look has probably
not gotten from Pharo into Squeak not because the Squeak community did not
like it, but because it was simply not contributed back. The Squeak folks
would have had to pull it and probably did not deem it important enough (or
were not even aware if they don't use Pharo regularly).
Yeah, that's a problem.
Besides, the preferences in Squeak are also not a flat list, they have had
categories for ages.
The categories are in an alphabetic list. It should be a tree. The list is
too long and doesn't show any organization besides the alphabetic ordering.
That's the point. There is one invisible root and a wide first level-not
much branching. Two levels. Also, the subitems in each category are
sometimes alphabetic and other time not. I'd have to study the options for
a week to determine what I would do differently, but I don't like the first
impression this gives. There is some sense of subcategory, like several
contiguous browse* items or syntax* items, but these groups should be in
subnodes. I'm seeing three of four levels. I'm not sure. It would take
some study. It doesn't feel coherent and compelling. It doesn't pull me
in. It looks like a bunch of miscellaneous details. The Settings browser
makes pretty get sense, yes?
If the Squeak community was busy all the time pulling things
--Not all the time, just what you can use when you need it. I don't think
the need for tree is perceived beyond the two levels.
back from Pharo, they could not concentrate on their own efforts.
Can you tell me about those efforts? I know the VM is one, maybe the
biggest. What else do Squeak folks work on?
I also understand why the developers of the new Pharo preferences tree did
not like to invest the same effort in Squeak. What incentive would they
have?
Make all features (GUIs/frameworks) loadable into a new, mostly empty image.
Make all aware of those features. Knowing that this will happen for all
feature-work contemplated will lower the threshold to doing the
feature-work. A Squeak dev will learn about the Settings feature, for
example, and adapt it if he wants. If we have the same basic graphical
framework, there is nothing to adapt (to Morphic). It just works. Yes, the
transition is painful. And there is always a new transition coming as new
tech surfaces. We need a way to deal with that systematically without
killing creativity and without creating so much disruption that commercial
interests are wary of the environ.
And here we are. Such differences and the additional effort are the
liability of a fork, for both sides. Some people are or were active in both
communities to invest the effort. For example, Eliot also provided the image
side of VM improvements to Pharo, not only Squeak, if I remember correctly.
I don't know whether he still does that since the fork of the VM.
What fork of the VM? Please explain.
Pharo would like to get rid of Morphic; as far as I know, Squeak embraces
Morphic for its direct manipulation interface and UI discoverability
(inspecting Morphs and such).
Right.
GTK has its inspector, but I don't know whether you get the same features
out of it. Direct manipulation probably not, only indirect. And can you
control that inspector from Pharo or do you have to write C code to change
it in GTK itself? From my impression, this would be a no-go for Squeak. The
tools must be maintainable in Smalltalk, working with C is a necessary evil
in the VM. Maybe Pharo has found a way to have the best of both worlds, I
don't know.
I don't know much about GTK yet. I'll get to it.
Still that leaves all Morphic applications behind; their UI (or even the
entire program) would have to be rewritten from scratch. I doubt that Pharo
will keep Morphic workable once they can drop it from the mainline.
I don't understand. Drop? Why? If Morphic works and someone wants it,
then keep it. Are you saying it would be dropped because it cannot be
satisfactorily re-implemented with the GTK3 backend? What's wrong with
keeping Morphic primitives?
And Spec2 is not the first new idea of UI technology in Pharo, you know. In
return, the different technology makes it harder for Squeak to port new
features even if they wanted to, making it less likely to happen. Even some
basic Collection API has changed in Pharo (string trimming and joining for
example), now try to keep your code compatible with both without messing it
up...
Yes. The "port" is only difficult once if the aim is thereafter to work
from a common base image. But there will be more ports and conversions.
Is there a system on either side for managing incorporation of new tech,
libraries, and standards?
The compatibility and porting problems are offloaded to the application and
library developers, even between Pharo releases. I don't know how this can
be advertised as appealing to commercial development. VisualWorks & Co.
could certainly not deal with their users that way.
This happens in any case. That it happens in one image and not two is
better.
I don't think that Pharo does bad stuff in general, in fact their work could
be very good (I don't look at it regularly and certainly don't follow the
implementation). Like you said, disentangling, modularization, test
automation, and innovation are valuable goals.
Squeak mostly agrees on the goals, but does not pursue them in the same
disruptive manner. Probably this is the "pushback" you have been told of...
Right. How does squeak do things less disruptively? I agree that the
innovation on the Pharo side is accompanied by almost as much bloat and
confusion, especially for new comers trying to port. What is the Squeak way
of improving the frameworks and using new tech, like 3rd part libs?
If Spec is a UI generalization framework that makes it independent from the
graphics implementation,
Yes, that's the aim.
then one should rather compare it to Squeak's ToolBuilder, not Morphic.
ToolBuilder as well could have different targets, such as GTK, (I have seen
Squeak tools rendered with some Java UI Framework a few months ago) but
nobody pushes that in the Squeak trunk. There was no voiced demand.
I don't know ToolBuilder. Perhaps I should have a look. Why would the best
of both TB and Spec2 not be used in a common base tool-building framework,
which sounds broader than what Spec2 does, but may not be? I don't know
enough of TB to say.
How is framework adoption/inclusion decided? The dev who writes the
framework first and demonstrates utility first with that framework will have
it included in the base image? Just thinking aloud. How does it work? How
do you want it to work?
I haven't participated in such discussions of the right wayT in the past,
but my impression from what I heard so far is that Pharo pushes forward
rigorously and does not look back, and if it does, then sometimes with a
disparaging or snappy tone.
Does this mean that Pharo folks are unfairly critical of old frameworks in
order to push the new thing (whatever it is) along?
Some of the Squeak guys are therefore very sceptical about Pharo and their
attitude, to say the least, and sometimes also talk harshly.
I can see how that might happen. Too many changes too quickly doesn't look
like innovation to some. It looks risky, especially to commercial
interests, but clearly the consortium don't want this view. It's not
healthy for Pharo or Smalltalk.
The recent fork of the VM further deepens the trenches,
Okay, this must have been the fork I saw Eliot mention a few weeks back. I
don't know the details, but it sounds like a bad idea.
especially since the foundation of "OpenSmalltalk" VM (no longer "Squeak"
VM) was in my perception a commitment to cooperate at least on that end.
There are probably only a bunch of persons who are responsible for the bad
mood, and I assume that the majority of both communities are in fact
friendly people. :-)
So it seems, but I don't know the details. I prefer to focus on the tech,
not personalities and self-esteem issues.
Thanks for the perspective.
Shaping
Am Sa., 16. Mai 2020 um 08:40 Uhr schrieb Shaping <
<mailto:shaping@uurda.org> shaping(a)uurda.org>:
>
>
>
> Why can't the OSVM be a single, unforked, maxed-out VM with all the best
and fastest features working in Squeak and Pharo? Why did the split
happen?
>
>
>
> In very general terms, the fork was due to their being Group A wanting
> to go one direction and Group B wanting to go in a different direction.
i.e....
>
> B says "We want to do X".
>
> A says "We don't want to do X."
>
> B says "We really want to do X."
>
> A says "Definitely no."
>
> B says "We really want to do X and actually we're doing it over here."
>
>
>
> Lol Thanks for the explanation. That's more or less what I thought.
>
>
>
> But can't the differences be setup at config-your-environ time instead of
build time, when the task is heavier and slower?
>
>
>
> In essence, Squeak considered backward compatibility of prime importance
including the code of some applications that had become entangled in the
main code base. Pharo wanted to "clean the code" by disentangling and
stripping those parts.
>
>
>
> I like disentangling and modularizing. I suppose this is a universal
like.
>
>
>
> They also wanted to move to a reproducible-build-system where each
> change "bootstrapped" a nightly image from an empty file,
>
>
>
> I like this too.
>
>
>
> whereas Squeak continues to use a "continuous evolution" model.
>
>
>
> Don't both groups want the automatic building and testing the Consortium
is talking about recently?
>
>
>
> I'm not sure I understand how "continuous evolution" works. Sounds like
there is lots of wiggle room in that idea. Don't we need some structure?
We seem to be getting that in Pharo.
>
>
>
> I'm not sure about Squeak. The GUI tools/menus still feel hodgepodge
(much nicer, but still not well organized) 16 years later. I used it
between 2002 to 2004, and then again just a few days ago. I like the faster
debugger and the flat GUIs, but I don't need Morphic to have those dev-tool
GUIs. I'd prefer to rework the GUIs with Spec2/GTK3, and keep the flat,
clean, button-packed look with some improvements (like the new Spec2
selection highlighting pattern, which is very nice). The rest of Squeak
seems messy.
>
>
>
> I do very much like the technical, concrete feel of Squeak's details about
the VM. That reminds me of old times and why I got involved in computers,
and it supports my current interest in VM parallelization. Those VM details
need a somewhat different shape/presentation. There is a beauty in Squeak,
but the eviron still feels a bit rough.
>
>
>
> For example, why aren't all those preferences in a tree where you can
actually find things because they are categorized. It's a big list. That
seems very strange in 2020. Why don't Squeak folks borrow the Pharo
Settings GUI idea, and implement that in Morphic, as they like? I thought
more would have happened in the Squeak GUI in 16 years, but I've not seen
all of 5.3 yet. I'm still poking around. I suppose most of the
improvements are in the VM, which I imagine absorbs most of the group's
energy.
>
>
>
> And there are more reasons I probably not aware of.
>
> Here is the Pharo Vision document circa 2012 which inspired me
> <https://hal.inria.fr/hal-01879346/document>
https://hal.inria.fr/hal-01879346/document
>
>
>
> Thank you. I will read it. Is the Consortium updating that doc? There
was a doc recently from Stef that looks like it belongs in there, merged
somehow.
>
>
>
> It looks like a bad use of energy in a community that is small and needs
to use its human resources efficiently.
>
>
>
> Trying to go one way and dealing with continual pushback and conflict
around that is also bad energy.
>
>
>
> Agreed. I don't understand the pushback because I don't understand Squeak
folks' objection to rigorous, systematic, automatic testing and
disentangling/modularizing of frameworks. They are probably fine with all
that. Do Squeak folks have a document that defines "continuous
development." I know that VM testing is automated. I don't see how the
objectives are so different, at least on the automation front. Everyone
seems to agree that CI is good.
>
>
>
>
>
> I want to help, but need to port first from VW, and I'm trying to choose
Squeak or Pharo. Both have speed problems. Squeak has fewer, but Pharo
could be much faster with broad use of Spec2.
>
>
>
> Would reintegrating Squeak and Pharo development make more sense?
>
>
>
> I think that is not likely. Both continue to have different goals. And a
significant area where they are likely to continue to diverge is the
graphics. Squeak is likely(?) to stay with Morphic a long while Pharo
intends to dump Morphic.
>
>
>
> I never liked the halo thing. It's okay. It seemed/seems too busy and
distracting. I think Morphic and the "too many cooks" problem is why I
broke off in 2004.
>
>
>
> If we are fully modular, and you love Morphic, and want to live there
mentally and visually, all the time, then load the Morphic package into the
new universal OpenSmalltalk. Have all your GUIs built with Morphic. Have
cute little morphs stuck here and there. Knock yourself out. Don't like
Morphic? Don't think it's cute? Load the more business-like-but-not-boring
Spec2. I don't see an insurmountable technical problem here.
>
>
>
>
>
> This is one of the reasons that Spec was created - to be independence
layer.
> IIUC in Pharo 9 Spec is already working on top of a GTK3 backend.
>
>
>
> Yes, the Spec2 Launcher is inspiringly snappy, modulo the text-selection
slowness problem, which is everywhere in Pharo and Squeak. I've mentioned
this a few times recently-of all the goofy things to prevent a port from
VW...Okay, that and Pharo's slow debugger. Two things keep me out of
Pharo/Squeak. I don't love VW. I tolerate it really well. That's
different. J
>
>
>
> wrt the VM, Pharo want to remove all native-windowing from the VM, so
> that window opening
>
> is controlled from the Image via FFI rather than the VM.
>
>
>
> I agree with the objective.
>
>
>
> This conflicts with Squeak's backward comparability goals.
>
>
>
> Okay, this is the real problem.
>
>
>
> So there is a ton of old Squeak code that no one is willing to rework in
order to be compatible with the new vision for native-windowing
independence. Perhaps someone can give more details on that old code.
>
> I suppose many Squeak folks bemoan all the extra work needed for a
recoding. Is this still really an issue? Maybe very little of that old
code is still being used in business-critical ways. The need for a recoding
may not be the big issue it once was.
>
>
>
> This change would effectively create more devs willing to work on any
problem. This change would also prevent fracturing of feature-sets across
the two Smalltalks from happening in the first place.
>
>
>
> I personally had the inspiration that Squeak might be based off the
> Pharo Headless Bootstrap,
>
> but in the end I didn't find the time to push this further.
>
>
>
> That's a very good idea. Why don't all the Squeak folks work on it? Are
you the only one pushing for this?
>
>
>
>
>
> Squeak and Pharo GUI styles are different. So be it. Can't the GUI
frameworks and conventions be separated in the same image, and configured as
desired in GUI sections of Settings?
>
>
>
> Pharo currently can use both Morphic and GTK3 for its GUI backend.
> Possibly the GTK3 backend would provide some speed benefit (??)
>
>
>
> It's a good question. Is the core Morphic issue whether GTK3 can render
non-rectangular shapes efficiently? There's a lot of that in Morphic. I
suppose it's the main concern. Even if Morphic relies on special drawing
primitives, they can go in a lib and be accessed via FFI.
>
>
>
> Shaping
May 16, 2020
[Pharo 9.0] Build #299: SyntaxErrorDebuggerDepentsClean
by ci-pharo-ci-jenkins2@inria.fr
There is a new Pharo build available!
The status of the build #299 was: FAILURE.
The Pull Request #6357 was integrated: "SyntaxErrorDebuggerDepentsClean"
Pull request url: https://github.com/pharo-project/pharo/pull/6357
Issue Url: https://github.com/pharo-project/pharo/issues/SyntaxErrorDebuggerDepentsCle…
Build Url: https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%2…
May 16, 2020
Re: [Pharo-dev] Squeak and Pharo why the fork
by Stephen Davies
Hi,
It's worth mentioning Cuis which has a radical commitment to simplification
- at the expense of power I suspect but more understandable for a begginer,
I find.
On Sat, 16 May 2020, 10:57 Shaping, <shaping(a)uurda.org> wrote:
> Hi Jimmie.
>
>
>
> On 5/15/20 5:26 AM, Shaping wrote:
>
> I donât understand the split. It looks silly. Maybe someone can explain
> the split in terms of technical/architectural advantages, if any exist.
>
>
>
> I began using Squeak about 20 years ago. And then Pharo when it started. I
> will explain as best as I can.
>
> The differences do have bearing on architecture and technical things but
> at the beginning the basis of it all is philosophy. Differences in what you
> want Squeak/Pharo to be, where you want it go.
>
> Squeak is from Apple Smalltalk. Smalltalk is not simply a language, but
> began as an OS, an environment and a language. It ran directly on the
> hardware. Then Smalltalk was ported to operating systems. But still took
> with it a very OS like environment and world view. It was the world.
>
> This was very much Squeak. Squeak was the world. It was an amazing and
> interesting environment. It could play mp3s, had MIDI capabilities. It was
> a very interesting multimedia environment. Bright, colorful, creative. But
> it was also a very productive programming environment to build whatever you
> wanted to build.
>
> All of the people involved in Squeak, loved the productivity of the
> Smalltalk language and the live environment. You had debates about "Pink
> plane" vs "Blue plane". What was the direction of the community and the
> artifact Squeak. There were two large communities with differing opinions
> on direction.
>
> Alan Kay
> The Computer Revolution Hasn't Happened Yet OOPSLA 97 Keynote (VPRI 0719)
> https://www.youtube.com/watch?v=aYT2se94eU0
>
> """
>
> https://pab-data.blogspot.com/2007/03/what-colour-do-you-like-your-objects.…
> In Alan Kay's keynote speech at OOPSLA in 1997 he talks about a blue plane
> and a pink plane. The pink plane represents ideas which are an incremental
> improvement of existing ideas. The blue plane which runs orthogonal to the
> pink represents revolutionary ideas that break the old way of doing things,
> setting you off in a new direction.
> """
>
> Many people had projects and ideas which were very able to be done in
> Squeak, but did not want the entire OS-like image. ...
>
> Maybe I want a web server. I don't need to play multimedia files. Have a
> GUI. etc.
> Insert your own application here.
>
> People wanted to build businesses around what they could do with Squeak.
>
> The Pink plane community wanted to begin to clean up Squeak. Break it up
> into parts which could be reloaded. It wanted a much more modular
> environment which allowed you to build the image you want for the purpose
> you intend.
>
> The Blue plane community didn't see any problems with the way it was. They
> liked it and still do. It fit what they wanted to do with Squeak/Smalltalk.
> Frequently more research oriented and less business oriented.
>
> Applied basic research is most of what I do. I still want a clean,
> modular environment. I donât see how that interferes with creative verve.
> It should help if only by limiting confusion and clarifying configurational
> choices.
>
> Then in the midst of all this you have overlap in individuals who
> understand both. You also had personality differences and disagreements
> which developed over years. Eventually the Pink plane community forked and
> created Pharo. The foundational community of Squeak (Blue plane) did not
> want to make the changes the Pink plane community wanted or required.
>
> What are the specific changes that Squeak folks donât want to make?
>
> Squeak/Pharo is a configurable environment. We can still have a quasi-OS
> world if we want that. What specific aspects of the analytic and creative
> experience break or degrade for Squeak users with these specific changes,
> and also cannot be preserved by loading the right Smalltalk packages?
>
> Pharo is now 12 years or so into its journey. It is not easy losing weight
> and still keep working. But that is the goal of Pharo. Keep reducing until
> the entire system can be built up from a base image. And when it gets
> there. We don't have a problem with from that foundation, being able to
> build it back up into a Squeak-like image.
>
> I have numerous projects which I am doing in Pharo. One is a trading
> application. I personally want as little in my image as possible which does
> not have to do with my trading application. It desires to be as fast as
> possible, run without failure, and as memory and cpu efficient as I can
> make it to be in Pharo. I could make and run this application in Squeak.
> But it would include much that I don't need and don't want. And that is the
> case in Pharo currently as well.
>
> This points to needing more modularity, not less. We want to unload all
> that we donât want, in small or big pieces, easily and confidently, without
> breaking anything. It sounds easy, but itâs not. I think this should be
> one of the Consortiumâs main goals.
>
> But Pharo has its philosophy and its direction that it is moving towards.
> At some point in time my trading application will what I want it to be with
> very little unused code in the image. That might not be until Pharo 10+. I
> don't know. But there is a vision within Pharo for people to build such
> applications.
>
> Image minimization is a useful feature. A Squeak user would want this
> too, at least when deploying.
>
> I have not used Squeak in years. And nothing I write here is meant to
> speak badly about Squeak. I like the Squeak community. They are full of
> great people. And I do not know how accurate what I write is to the current
> Squeak. My apologies for any inaccuracies or errors.
>
> Pharo in general is much more pro-business. It is an explicit goal of
> Pharo.
> https://pharo.org/about
> https://gforge.inria.fr/frs/download.php/30434/PharoVision.pdf
>
> Both websites give you a feel for who the community is and the orientation
> of their goals.
>
> As much as re-unification would be nice.
>
> Logical and utilitarian.
>
> I don't know that it will happen. At a minimum, not until the Squeak
> community could build Squeak from a Pharo kernel image. Then it would be
> possible. But I don't think likely.
>
> What are the specific problems? Anyone?
>
> This is just my generalizations in an effort to answer your question.
> There are people who are in both communities. Both communities in general
> attempt to cooperate when we can. Both are communities with friendly,
> amazing people. And both communities have people who have been doing this
> for a very long time, and that is a very good thing.
>
> Both are completely open source projects which will allow you to do
> whatever you want within your abilities and resources.
>
> Basically it is simply this. Different visions for the direction of the
> project and the pursuit of those directions for an extended period of time.
> This email is an simplification of a lot discussions and debates over a
> period of years which finally lead to a fork of Squeak.
>
> Hope this helps.
>
>
>
> Shaping
>
>
>
>
>
>
>
>
>
May 16, 2020
[Pharo 9.0] Build #298: toolsMenu
by ci-pharo-ci-jenkins2@inria.fr
There is a new Pharo build available!
The status of the build #298 was: FAILURE.
The Pull Request #6345 was integrated: "toolsMenu"
Pull request url: https://github.com/pharo-project/pharo/pull/6345
Issue Url: https://github.com/pharo-project/pharo/issues/toolsMenu
Build Url: https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%2…
May 16, 2020