Hi
I would like that you think a bit about our community and that there is a value in using common tools to share and develop common libraries. Because to me it feels like we are getting balkanize. It may look super cool and be hyper trendy to use github (because like that you can say that you use latest hyper cool features), but I would like to ask especially people building libraries to pay attention that it is important that other people can contribute back easily and that there is an easy way to load/contribute. Today I experienced Bloc - I cannot load code and I cannot contribute. - I saw mdl with a mixture between smalltalkhub and github (sounds super hyper cool) and I saw paul not being able to contribute :( Yes you can say that monticello sucks yes it is terrible yes we all fell like Cobol programmers but at the end of the day. Yes the herb is always greener elsewhere. Yes yes yes. Let us take some facts. We managed pharo and moose with it over the last 8 years successfully and Pharo and moose are not 5 packages together from what I can see. So pay attention about the decision you take. Now we will provide git support (this is 8 months that nicolas is exclusively working/thinking/dreaming about that) and that we are doing experiments (Guille is managing the bootstrap in github). Now when everybody will have its own little project lost on github (I do not count the amount of time I do not find pillar on github because I forget that it is called pillar-markup), what will we do. So we need an infrastructure to handle this and christophe is working on this. I think that you should consider the accidental complexity as something that we can minimise by using patterns and common practices. Now you can think that I'm an idiot and that I have no vision (be my guest) but we should pay attention because we are a small community. Stef |
It may look super cool and be hyper trendy to use github (because like Indeed Git and Github are hypercool and trendy but the important question here is why. Why C++ is so popular, why Java is so popular, why Javascript is so popular, Why python is so popular. When you ask why you understand that being hyper cool, its not a thing, its not something you can glance over its a practical need we needed a language that is super fast with ability to handle complex code, C++ we needed a language that is focused on enterprise development , Java we needed a language to make web developent, Javascript we needed a language to simplify C/C++/Java and C# without losing libraries, Python we needed a superfast decentralized versions control systems for both code and other assets , Git we needed a place to host online open source projects with git , Github we needed the perfect language , the perfect libraries a tool to end all tools , Nothing each one of those hypercools excel in what you are doing, in many cases they are more than one, not because they are easy but because they are powerful. To go back to old alternatives would be like going back to caves because you have hard time opening the front door of your house. You may choose to go back to the cave but do not expect people to follow you. You preach people not to leave the comforts of the nest because its safe and it easy, but in the end I find that as wasted potential. The question I am asking myself everyday how far can Pharo go with taking advantage of modern technology, how far Pharo can go if it gains access to the same exact resources as all other programming languages ? What would it mean for the average Pharo developer to be able to use not just web dev libraries but any library, any tool , any programming language , any time ? If you can answer these questions then you know why embracing git and github is the right choice even if it pains you, even if makes you lose sleep sometimes or even if you find it hard. Just because Smalltalk is an island, Pharo does not need to be one. Afterall .... Pharo is not Smalltalk, or so we claim Its time to put our money where our mouths are. |
In reply to this post by stepharo
Hi Stef,
I think that you are raising a valid point, and I actually agree with it. But I think there is another side of the coin as well. I think that right now we are in between worlds and this is not quite beneficial. Switching to GitHub is a significant effort, and treating it as business as usual will not work. That is why I think it is so important that we committed to the move for Pharo 7 and that we invest in the infrastructure. But, this will not be enough either if we do not get people to exercise it as soon as possible. To give an example. When the first version of Iceberg was announced, I started to use it for a couple of projects. I stumbled across problems that prevented me from working for several weeks. I could have easily switched to SmalltalkHub, but I did not. I connected with Nicolas and we worked through those problems. Btw, Nicolas is doing a wonderful job, and people should not take this for granted. He tends to be shy, so if you see him around, please give him a hug and let him know that we count on him. Or better yet, use Iceberg for your projects and send him your feedback :). I am sure that there are more problems ahead, and the only way to go through them is committing to go through them. This will push us back for a while, but I really believe in the promise once we get on the other side. I actually think that GitHub is not really a good match for Pharo from a conceptual point of view (the mismatch between what it offers and what we need is quite large), but it is an engineering decision that makes perfect sense for the future. So, yes, we should take GitHub with a grain of salt, and make it a goal to not change much our concept of what makes sense for Pharo. For example, we should not give up on having to resort to the file system. That is why it is so important to make Iceberg (this is not for you Stef because I know you know it, but for others :)). And I certainly agree that we should look for sane patterns, but as it goes with patterns, they emerge out of practice. I think we should aim for limiting the time of being in between the two worlds. It will not be pleasant, and we can only do it if we stick together and go through it as soon as possible. Cheers, Doru > On Nov 6, 2016, at 1:05 PM, stepharo <[hidden email]> wrote: > > Hi > > I would like that you think a bit about our community and that there is a value in using common tools > > to share and develop common libraries. Because to me it feels like we are getting balkanize. > > > It may look super cool and be hyper trendy to use github (because like that you can say that you use latest hyper cool > > features), but I would like to ask especially people building libraries to pay attention that it is important > > that other people can contribute back easily and that there is an easy way to load/contribute. > > Today I experienced Bloc > > - I cannot load code and I cannot contribute. > > - I saw mdl with a mixture between smalltalkhub and github (sounds super hyper cool) and I saw paul not being able to contribute :( > > > Yes you can say that monticello sucks yes it is terrible yes we all fell like Cobol programmers but at the end of the day. > > Yes the herb is always greener elsewhere. Yes yes yes. Let us take some facts. > > We managed pharo and moose with it over the last 8 years successfully and Pharo and moose are not 5 packages together from > > what I can see. So pay attention about the decision you take. > > Now we will provide git support (this is 8 months that nicolas is exclusively working/thinking/dreaming > > about that) and that we are doing experiments (Guille is managing the bootstrap in github). > > Now when everybody will have its own little project lost on github (I do not count the amount of time I do not find pillar on github because I forget > > that it is called pillar-markup), what will we do. > > So we need an infrastructure to handle this and christophe is working on this. > > I think that you should consider the accidental complexity as something that we can minimise by using patterns and common practices. > > Now you can think that I'm an idiot and that I have no vision (be my guest) but we should pay attention because we are a small community. > > Stef > > > > -- www.tudorgirba.com www.feenk.com "Presenting is storytelling." |
btw this is pharo-dev discussion, redirecting there.
Esteban > On 7 Nov 2016, at 08:50, Esteban Lorenzano <[hidden email]> wrote: > > We are developing Iceberg… and I know is not enough :) > Which “unifying tools” are you referring ? > > I have followed very close your TOdE development… in a moment I was planning a migration of it for pure-pharo, just… lack of time as always and then later we started iceberg. > now, we are in the process of defining a process ;) who works for pharo and is the moment to build the bridges we need, but in general I think that staying "with a foot in two boats” can just work during a very short lapse of time, after that, the stream continues going and if you do not finish your jump into one of the boats you will be very fast in the water. > > What I mean is that we can help any transition, but at the end there is no way of having a “nice, coexisting” ecosystem: we will have one OR the other, or something that does not works at all, but we will not have seamlessly one AND the other (which does not means people using monticello will be forced to use git tools or vice-versa, just that you will need to chose one… right now many (many for real) of our problems come from the attempt of keeping our git support behaving as regular monticello… and that way of doing has a limit. A limit I think we already passed. > > Anyway, if you can list what you think we will need for the transition, I will be very glad to see what we can do :) > > Esteban > >> On 7 Nov 2016, at 06:30, Dale Henrichs <[hidden email]> wrote: >> >> >> >> On 11/6/16 1:12 PM, Tudor Girba wrote: >>> Hi Stef, >>> >>> I think that you are raising a valid point, and I actually agree with it. >>> >>> But I think there is another side of the coin as well. >>> >>> I think that right now we are in between worlds and this is not quite beneficial. Switching to GitHub is a significant effort, and treating it as business as usual will not work. That is why I think it is so important that we committed to the move for Pharo 7 and that we invest in the infrastructure. But, this will not be enough either if we do not get people to exercise it as soon as possible. >> Doru, there are also holes in the tool set that are not being addressed ... there are a number of critical tools that need to be created and I don't see anyone working on them .... >> >> I went through this transition 5 years ago with my tool set and with the proper set of tools approach the difficult transition will be a bit easier ... >> >> As it stands Pharo is standing with one foot in two boats ... there are the old Monticello tools and the new Git/Filetree tools and what is needed is a tool or two that can unify to both tool sets so that the transition between the two can be seamless ... these two sets of tools are not complicated and there working implementations that can be adapted to Pharo or used as a fairly detailed guide ... >> >> The confusion and frustration that I see now is not a surprise to me ... I wrote" the emails" at the beginning of this year because I saw that Pharo was finally reaching a critical point in its move to integrate git into the mainstream development environment and I knew that these types of issues were going to come up where Monticello and Git were going to create friction --- friction that can be reduced by creating some simple "unifying tools" ... >> >> I want to help, I have tried to help and I am still willing to help, but I cannot write the tools for Pharo ... >> >> Dale >> > |
> On 7 Nov 2016, at 11:28, Dale Henrichs <[hidden email]> wrote: > > > > On 11/7/16 4:52 AM, Esteban Lorenzano wrote: >> btw this is pharo-dev discussion, redirecting there. >> >> Esteban >> >>> On 7 Nov 2016, at 08:50, Esteban Lorenzano <[hidden email]> wrote: >>> >>> We are developing Iceberg… and I know is not enough :) >>> Which “unifying tools” are you referring ? > The main unifying tool is a Metacello Project Browser (or something like the tODE project list). > > You have a nice tool with the CatalogBrowser (modulo BaselineOf support) ... but you know that already:) but once you load a Project into the image with the CatalogBrowser it sort of disappears ... > > There needs to be a way to see the _projects_ are loaded in the image ... right now you can see the package loaded into the image, and you can see the dirty packages, but the package is at too low a level > > From the project browser you should be able to commit a project --- which saves all of the dirty packages in the project --- in one commit for a git project --- all of the dirty packages written in one operation for mcz packages ... > > This project browser can provide the same set of services for an mcz project (ConfigurationOf) or a filetree project (BaselineOf): > - save > - load -- this is a bit more complicated to explain (I tried at the Metacello Dr. talk, but more discussion is needed) > - diff -- project level diff over a collection of packages > - commit log -- For ConfigurationOf, list the commit history of the Configuration. > For a BaselineOf list the commit log for the git repository > > The workflow at the project level is not that different between Mcz and Filetree, so it is straightforward to work with … this is what is provided by iceberg… it still needs some work, but this is precisely what is supposed to do :) (and btw, this is why I disagree with Thierry some mails below). > > The unification comes because you can use one metaphor (project) to work with both Mcz and Filetree ... the underlying implementation will ultimately... > > The next layer of unified tools is when you look at version history, for a method, you need to provide the ability to view the git commit history for the method (if stored in git) or the image history ... git commit hisotry can be provided at the project/package/class/method ... whereever possible the equivalent mcz/git service should be provided so that the two systems are on an even par … also, this is supposed to be provided by iceberg. > > The Monticello Browser and Iceberg GUI's don't go away, because it is often necessary to do work at the package level, but I think that putting focus on the project is the key ingredient to success for integrating git … Iceberg is not package-oriented. It just show repositories/packages/classes/methods… this is a good way to do it and I do not thing anything is lost like this. You need to take a second look at Iceberg :) > > Since git repos are persistent on disk and will be shared ... it is important that there be a way for developers to easily access the git repos for projects that have been cloned locally but not yet loaded in the image itself ... I am really struggling with getting how important this point as this is the also a point that ties a Catalog Browser and Project Browser together this is something to think… I do not get what catalog browser can do here (but yes, a way to browse local repositories needs to be provided). > > I've been using this approach for several years now and once you have the tools and can see at a glance what's "going on in your image" it is fun to work in a mixed environment ... all of this frustration that is bubbling on the list is largely due to not having these missing tools and underlying support --- I think … I do not think we are so far from your vision. I think you did not get it Iceberg right… please, take a second look :) now… is true that now everything you say is already done… but this is general orientation :) Esteban ps: all of this is *clearly* not pharo-users but pharo-dev discussion, let’s move there. >>> >>> I have followed very close your TOdE development… in a moment I was planning a migration of it for pure-pharo, just… lack of time as always and then later we started iceberg. > Yes, I have intended to do a port of tODE to Pharo, but of time is the killer :) >>> now, we are in the process of defining a process ;) who works for pharo and is the moment to build the bridges we need, but in general I think that staying "with a foot in two boats” can just work during a very short lapse of time, after that, the stream continues going and if you do not finish your jump into one of the boats you will be very fast in the water. > Yes but the two boat environment will last years ... it has taken almost 5 years for filetree to start to be used regularly ... and with the Metacello Project Browser approach the transition will not be nearly as painful, besides I think that the project-centric tools set is required when work with git.... >>> >>> What I mean is that we can help any transition, but at the end there is no way of having a “nice, coexisting” ecosystem: we will have one OR the other, or something that does not works at all, but we will not have seamlessly one AND the other (which does not means people using monticello will be forced to use git tools or vice-versa, just that you will need to chose one… right now many (many for real) of our problems come from the attempt of keeping our git support behaving as regular monticello… > As I say, I think that monticello/filetree can be abstracted away at the Metacello Project Browser level ... a commit of dirty packages writes all the dirty packages for the project in the appropriate repository ... BaselineOf are filetree and ConfigurationOf are mcz ... it doesn't take a whole lot of code to smoothly handle both projects --- as I've said, I have code in tODE that can be looked at for the key trickery and then re-implemented within Pharo without too much trouble ... > > Then the choice does not have to be made between supporting ConfigurationOf and BaselineOf as both are supported ... eventually a developer may choose to build an image that does not include ConfigurationOf and Monticello support --- but both are needed for at least the next several years > > >>> and that way of doing has a limit. A limit I think we already passed. >>> >>> Anyway, if you can list what you think we will need for the transition, I will be very glad to see what we can do :) > the presentation that I made last Wednesday really covers the most critical things that I think are required ... Metacello Project Browser and load specs are the big ones ... presumably a Project Browser/code browser that allows you to read code at the project level to augment the existing package level code browsers with the commit history integrated at project/package/class/method level ... project level diff tool -- multi-package diffs in one window ... and a git merge tool that does a three-way merge within the image ... > > Dale > |
Free forum by Nabble | Edit this page |