1.2 goals [Re: SmartEiffel open Edition - what would be the goals?]

Daniel F Moisset <[email protected]> Thu, 26 May 2005 13:19:26 -0300
Newsgroups gmane.comp.lang.eiffel.smalleiffel
Organization Except
Message-ID <[email protected]>
On Thu, 2005-05-26 at 16:24 +0100, Roger Browne wrote:

> I can't really embrace Daniel's idea of repeating history by developing
> SmartEiffel 1.2 as a transition between 1.1 and 2.x. The SE team has
> done several man-years of development between 1.1 and 2.x. Why repeat
> any of that work? If we want the fruits of that development, we should
> just keep using 1.1 until we are able to upgrade to 2.x. If we don't
> want the fruits of that development, we can continue to maintain 1.1.
> To do some of the same work over again seems like an unnecessary
> duplication of effort. But maybe I misunderstand Daniel's goals.

I think you did. I'm not planning to replicate much of 2.x work
(although some of that will be needed), and I want everybody to be able
to have the fruits of the work done by the SE team for 2.x

I started to think about this project when trying to take that fruits
myself. I have written a lot of Eiffel code, some of it is publicly
available, mostly libraries I have found useful.

When 2.0 came out, I noticed that some of the new features were
attractive, and tried to use them. But my libraries didn't compile in
2.x. And to upgrade them, I would have needed to break compatibility
with 1.1. So my choices were to stay in 1.1 (and be left with an
unmantained release), or to go to 2.x, and force the same choice to my
users. In some cases it was even harder, because I depended on a 3rd
party library which worked only on 1.1

So moving to 2.0 (when you have an investment in 1.1 code) is a lot of
effort and harsh to my users. Staying in 1.1 is an evolutionary
dead-end. What I would have liked, is an 1.2 release that is not a pain
to migrate to (from 1.1), where I can port my code, and made in a way
that I can code for it and 2.x at the same time.

That release never existed (and probably would have been impossible
without perfect future foresight before 2.x was released).

So I'm writing it. I have the advantage of having perfect foresight
because 2.1 is around and I know what it does and what it does not. But
if 1.2 is successful, library developers should be able to go to 1.2,
make their work compatible with 2.x gradually, and then move to 2.x when
2.x has enough community and libraries to make it a safe option to move
to.

So, I will consider that 1.2 was successful, if some months (or a few
years?) after its release, nobody is using it and is using 2.x
instead :)

> An interesting question is: what should we do if we want to continue to
> develop SmartEiffel, but with different priorities than the SE research
> team? What would the priorities be for a community-developed industrial-
> strength SmartEiffel? Here are my suggestions:

Note that several goals of my project are similar to yours. And others
are compatible.

I'm doing it to help focus the community on SE. You might be doing it to
fork away (which I consider harmful to the already weak Eiffel
community). Anyway, I think we could share a lot of work.

* You mention correctness. That's a matter of following and closing
bugs. SE and SE1.2 have bugtrackers, and SE12 plans to have an open
model so a lot of people will be able to help closing them
* Compatibility: As I said, 100% compatibility with 1.1 is a primary
goal, and adding things from 2.x and ISE a secondary one (secondary does
not mean "not important" here, it means "second most important"). And
note that I'm starting from 1.1, as you propose :)
* Interoperability: I have no plans to work on that, but that doesn't
mean I'll reject contributions in this sense. However, I will prefer to
introducing these patches as they are accepted in mainstream SE. If the
SE team is rejecting them for no valid reasons, we can rediscuss this
way of doing this, but I will make all my effort to be a friendly
branch, and to not go away from the official SE (to avoid splitting the
community. I will tire all of you repeating this ;-) )
* Performance: same as above
* Productivity: I think making an effort towards compatibility allows
3rd parties to invest work on this. Tools like that are useful, but
there is no need to force them on the compiler writers (specially at
open source world, you can note that compilers and tools are often made
by separate people)
* Simplicity and mantainability: I guess I will be forced to do that,
given that those qualities will allow me to get all the help I need :)

> Should we fork SmartEiffel 1.1 with a set of goals similar to these?

You are able to fork, of course; as I said 42 times before ;-) , I think
that will be counterproductive. Even if you plan to do that (I can't
stop you :) ) consider working with SE1.2; we share a lot of goals from
the code (and I promise you'll have an open model, and you already have
an open code repository).

	Daniel

PS: roger, sorry about the duplication, I answered by mistake to your personal email address