Hi Cyril,
Thanks a lot for the detailed email.
Please do not apologize because there is really nothing to apologize for. Moose is an open
project that welcomes any amount of effort and nobody should feel bad because the effort
did not meet whatever standard.
It’s better to look at the issue from a more positive perspective and describe the problem
as you face it (like you did here). Emails like these are the prerequisite for being able
to address your points at all.
If I understand correctly, an important problem is to be able to reuse parts
independently. We can address that one, so let’s work on this and finalize
ConfigurationOfFamix. What do you say?
Cheers,
Doru
On Jul 19, 2016, at 5:29 PM, Cyril Ferlicot D.
<cyril.ferlicot(a)gmail.com> wrote:
Hi,
since I saw many times "Synectique" on the conversation I would like to
make the comments about my experience of Moose at Synectique.
For the stable and alpha version of Moose I don't think there is a
problem to get the moose stable on the Pharo stable and the Moose dev on
the Pharo dev.
It's true that sometimes we need some features that are not in the
stable but in the dev. For this I think that making Moose a sort of
meta-project grouping some little project would make easy to load a
specific version of what we need. For example we could use Moose stable
and load small dude dev after. But making branch as in Moose51 with
Monticello is a really bad idea. I will come back on this point later.
A bad point about Moose is that it make configurations really really
really hard. I spend days to fight with configurations. In Pharo 4 there
was bugs with the configurations and the configurations of Moose were
really hard to deal with.
A part of the problem comes from the branch to backport some features.
They messed up *a lot* with the configurations. This should not be
redone with Monticello. NEVER! We never end with the right commits, when
the configuration load. I can't count anymore the number of "The version
XXX was not found. Possible versions: #stable, #development,
#bleedingEdge, 1.0, 2.0, XXX, …".
Another problem is that there is 2 ConfigurationOfGlamourCore (or
Glamour? I don't remember) in two repositories… This cause a lot of bug
because they are not the same and they can't co-exist in the same image.
I got many errors because the wrong one was in the image and Metacello
could not find the right version.
The problem is increased when you add the fact that a lot of projects
have bad dependencies and load everything, glamour is in a *lot* of
configurations. I saw pure model project that loaded GlamourCore,
Glamour, Roassal, Merlin during the loading because everything depend on
everything.
This is the reason why we had a "fork" of Moose. And our configurations
depending on Moose51 are full of "spec postLoadDoIt: #hackScript" that
remove and reload some packages because we lost too many time on
configurations.
When we moved on the web we begun to build our tools in an image with
Moose and our old tools. This month I cut made the configurations to
load our web tools without the old UI. It worked at the first try!
Usually I spend days to get a working configuration.
This problem can be lessen with better defined dependencies (For example
on Moose group Core we get Roassal and Glamour… But if I only want the
model? Why am I forced to get the UI?). Not using branches in Monticello
anymore (*please*). Having *one* configuration in one repository for
each projects.
This was improved in Moose 6 with the ConfigurationOfFamix. This is a
first step but there is still dependencies problem. For example the
famix tests cannot be in the famix configuration because they depend on
Moose.
For the branches problem, moving to git when the tools will be ready can
improve that.
Another problem was that the metamodel is not practical to build good
tools. We have to hack a lot in Famix to build our tools. But everyone
know that and you already talked about hiring someone to work on this.
Since Synectique already gave his point of view on this I will not talk
more about this point.
About moving on the web, our major concerns was:
- To not have the configurations problem anymore
- To have good looking interfaces
- To build interfaces fast
- To get profit from all the good and stable JS libraries
- To deploy easily (It's fastest to deploy an headless server that
blocking everything as halo, debugger, spotter, etc in an image and to
install it on every computers)
In 1 week we can create a Tool that is good to look and easy to use when
we cannot do it in Pharo. Glamour is "smalltalk oriented", this is not
what we need for customers that are not smalltalkers.
For this point I think that Pharo will have improvements with Bloc/Brick
and Spec. But we cannot wait and we cannot contribute because we are 2
full time developers and 2 part time developers. We cannot make the
tools, fill the contracts AND make huge contributions to Pharo/Moose.
I try to make some small contributions on my free time but at Synectique
we don't have the time or the company will not survive. Moving to the
web speed up a lot our work and be get a better result. Much more
stability, more performent, easy to build, fast to build, easy to map JS
library…
I don't want to hurt anyone and I know that everyone work hard. I shared
my feeling for you to get the vision of someone using Moose in
production tools.
I hope that this can help you. There is a lot of work everywhere. For
example Moose with configurations, Famix and the model, UI frameworks
with the look and stability, Pharo with git and deployment. I hope that
I will see everything improve little by little. :)
I am sure that most problems will be resolved with time, if we choose to
not use anymore some things it's just because we don't have this time
and we don't have the man power to clean/improve everything.
--
Cyril Ferlicot
http://www.synectique.eu
165 Avenue Bretagne
Lille 59000 France
_______________________________________________
Moose-dev mailing list
Moose-dev(a)list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev