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@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
165 Avenue Bretagne Lille 59000 France
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- www.tudorgirba.com www.feenk.com
"Be rather willing to give than demanding to get."