Pratik, Very good comments.
1) Personally, I think staying with Java is a good idea for the engine. 2) The OT Core is very special purpose for the wave conversation model. Again, personally I would like to see it moved to a generic OT model, with adaptation to the conversation model. 3) I am not sure we need to throw away all of the code. Rather perhaps we should just branch and slash and burn. I am sure there are parts that could be kept, but I think we would severely break / reorganize. On 6/12/13 11:52 AM, "Pratik Paranjape" <pratikparanj...@gmail.com> wrote: >Question is: will we be able to sustain this enthusiasm long enough to >benefit from a clean slate? Code is in bad shape, agreed. There are better >options available today, agreed. But considering the scope, which is not >just OT, and but a whole platform to support services on top of >collaborative model, do we have enough reason to throw away the whole >code? > >1) Do we really need to move away from Java? We are moving fast towards >completely multi-core world. Every important language has a port for JVM . >Wave, no matter how you architect, is going to have a structure which will >thrive on parallelism. What could be the reason to move away from a >platform which has been designed and optimized for 15 years exactly for >these kinds of projects? I love python and javascript as much as I love >Java, hell I think javascript is cuter and python feels more at home. But >I >think there are clear practical considerations when it comes to platform >choices. > >2) How much time will it take to actually architect and re-implement : the >wave model, the document model, CC-OT, server federation. I don't think >there is another OT system currently in existence which supports complex >XML documents and arbitrarily overlapping annotations like wave does. Same >for CC. When we say we will redo, we will have to think about efforts to >preserve all these current advantages. > >3) If we do re-implement, concepts are not going to be any easier. I think >barrier for developers have been concepts. I am sure those who are not on >this mailing list, have not even opened the code. We will have better >code, >yes, but I don't think that is going to make people any smarter. > >I think a better way will be to insist on a loosely-coupled component >based >architecture connected through a message bus. the problem with the current >code is the the tight coupling. If we manage to get a message bus working, >everyone can use their favorite language on JVM to re-implement the part >they like..and we will even be able to reuse the parts of code. Overtime, >we can always provide canonical Java implementation and a reference. > > >On Wed, Jun 12, 2013 at 4:00 PM, Michael MacFadden < >michael.macfad...@gmail.com> wrote: > >> PP, >> >> I agree. I think we need to look holistically at the code base. I >> honestly don't know what the best approach is. It sounds easy to say, >> let's just modularize it. I am not sure the current code base makes >>that >> possible in any meaningful way. The code is so abstract and >>intertwined, >> it may take MUCH longer to modularize the code than it would to start >>over. >> >> On the other hand, I am not sure that starting over is feasible either. >> I >> really don't know. >> >> ~Michael >> >> On 6/12/13 11:26 AM, "Paulo Pires" <pjpi...@ubiwhere.com> wrote: >> >> >Why not simply try to improve what we already have, by modularizing >> >stuff, separate server from web client, documenting and providing ways >>of >> >people to develop their products on top of Wave? >> >I for one am not interested at all in current web client functionality, >> >but rather in the wave-model and OT. >> > >> >Also, moving things from a strong-typed language and powerful framework >> >like Java to Python or Ruby or Node.js or whatever you believe is the >>new >> >kid on the block, seems a little nonsense to me. People just don't >> >understand Wave internals and won't be able to implement it whatever >> >technologies you choose. >> >Also, writing things from scratch seem a little far fetched, as I doubt >> >anyone will be able to take on that task for the medium/long term. >> > >> >Please don't take me wrong here, but I've seen plenty discussion like >> >this in other big projects and the result was ultimately the same, too >> >much talk, no code. I wouldn't like this to happen to Wave. >> > >> >PP >> > >> >On Jun 12, 2013, at 10:28 AM, Michael MacFadden >> ><michael.macfad...@gmail.com> wrote: >> > >> >> Wavers. >> >> >> >> It is a very positive sign that the Wave project has seen increase >> >>activity >> >> in recent weeks. However, recent conversations point to the fact >>that >> >>we >> >> are at a decision point with Apache Wave. >> >> >> >> History >> >> ------- >> >> >> >> Google donated quite a bit of code to Apache for the Wave project. >>It >> >>is >> >> somewhat functional and is what the community is using to drive >>towards >> >>a >> >> release. However, the current community has little expedience with >>the >> >>code >> >> base. We didn't designed it and in many cases we don't understand >>it. >> >> >> >> As many have pointed out the code base is 1) Not easy to develop, 2) >> >>Hard to >> >> learn, 3) and not modularized between the client and server. These >> >>issues >> >> are hampering WiaB's adoption. >> >> >> >> Several people have suggested rewriting the codebase to separate the >> >>server >> >> and client and to greatly simplify the architecture. >> >> >> >> >> >> >> >> I think as a community we need to decide what we want to do. I have >>put >> >> forth three options which I would like the community to comment on. >> >> >> >> >> >> 1) Keep the current code base and just push ahead. >> >> >> >> Pros: >> >> ----- >> >> - We have a functional codebase that we evolve over time. >> >> - Potentially graduate sooner. >> >> >> >> Cons: >> >> ----- >> >> - Hard to get new developers excited about working with the code >>base. >> >> - Poetnetially slows the evolution of a scalable architecture that >> >>delivers >> >> what the community is asking for. >> >> >> >> >> >> 2) Ditch the current code base and start new. >> >> >> >> Pros: >> >> ----- >> >> - We can design something that meets the community needs. >> >> - We can simply the design from the beginning. >> >> >> >> Cons: >> >> ----- >> >> - We are very close to a release, this approach would set back future >> >> releases. >> >> >> >> >> >> 3) Keep the current code base AND start a new one. >> >> >> >> Pros: >> >> ----- >> >> - Can keep driving through the apache process. >> >> - We still have a working product. >> >> - We can start the redesign now. >> >> >> >> Cons: >> >> ----- >> >> - We barely have enough developers to maintain the current codebase. >> >> - If interest in the new codebase takes off, existing codebase would >> >> atrophy. >> >> >> >> >> >> Comments please. Thanks. >> >> >> >> ~Michael >> >> >> >> >> > >> >> >>