As a OL user I would say that I would prefer a clean break together with a good documentation of how I would have to change my code to make it run under OL3 again.&nbsp;<div>I think the Python analogy is pushing it a bit: with OL, I would think that most users have at most hundreds of lines of code, with Python it can be zillions. Plus it is web-delivered, so there is not really an issue of upgrading users etc...</div>
<div>My personal attitude to OL development is to once in while look at it, see what is new and what I can add in new features to my maps, do that, roll it out and forget about it for while again.&nbsp;</div><div>Cleanliness of the new code (and the removal of things that have not weathered well) is much preferable for this than any form of compatibility mode.</div>
<div><br></div><div>Ludwig</div><div><br></div><div><br><br><div class="gmail_quote">2008/11/24 Kenneth Skovhede, GEOGRAF A/S <span dir="ltr">&lt;<a href="mailto:ks@geograf.dk">ks@geograf.dk</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
It sounds like a great idea, and it actually works for Python.<br>
<br>
However, since OpenLayers extensively use subclassing, won&#39;t this be<br>
a problem, if one were to make WFS3 it might be required to also make<br>
Layer3, Grid3, etc?<br>
<br>
I can also see that the Map and Layer classes are tightly coupled, so I<br>
forsee trouble there. Will there be extra development to allow a Map3 to<br>
support a Layer, and vice versa for Layer3 and Map?<br>
<br>
Regards, Kenneth Skovhede, GEOGRAF A/S<br>
<br>
<br>
<br>
Christopher Schmidt skrev:<br>
<div><div></div><div class="Wj3C7c">&gt; Yo,<br>
&gt;<br>
&gt; I&#39;ve had a couple one-off conversations about this, but not one has<br>
&gt; been in a public, archived location for everyone to read, I&#39;ve realized.<br>
&gt;<br>
&gt; There are a number of significant refactorings we have planned for<br>
&gt; &quot;OpenLayers 3.0&quot;. This is expected: as I said during my presentations in<br>
&gt; Japan, &quot;We&#39;ve learned a lot in two years&quot;... pointing out that 2 years<br>
&gt; ago I&#39;d never used a WMS (OpenLayers was my first), knew nothing about<br>
&gt; projections, and the idea of EPSG:900913 didn&#39;t even exist.<br>
&gt;<br>
&gt; So, we have some significant refactoring/changes to make. Cool. However,<br>
&gt; one problem has always been that major refactorings all at once tend to<br>
&gt; make things hard -- the 2.4 release was in testing/RC for 6 weeks<br>
&gt; because of the huge number of things that we tried to pack in all at<br>
&gt; once.<br>
&gt;<br>
&gt; At one point in the past, I suggested that we target a method like the<br>
&gt; one used by the Python 3.0 development team: Target creating a &#39;final&#39;<br>
&gt; OpenLayers release that had a &#39;compatibility mode&#39; with OpenLayers 3.0.<br>
&gt; In 2.x mode, everything would continue to work as it does now. In 3.0<br>
&gt; mode, you would get errors -- preferably things like &quot;You really need to<br>
&gt; not be using the MouseToolbar class -- it&#39;s gone now, use NavToolbar<br>
&gt; instead&quot; -- that would tell you what was about to change.<br>
&gt;<br>
&gt; This would require having a pretty strong knowledge of what is going to<br>
&gt; be in 3.0 before we actually get there -- meaning we&#39;ll need some<br>
&gt; parallel development.<br>
&gt;<br>
&gt; I believe that at least some of the changes that we&#39;re talking about are<br>
&gt; possible to implement within the framework of 2.x -- though admittedly<br>
&gt; with some more code. For example, one of the things that I think people<br>
&gt; have been talking about is a single renderer root for SVG/VML. My vague<br>
&gt; guess is that this would require changes to all of the renderer related<br>
&gt; classes. It might also require changes to the Vector Layer, and some<br>
&gt; other things -- like different controls or something.<br>
&gt;<br>
&gt; However, it seems likely that since we&#39;ll want to provide transition<br>
&gt; support, we can do this refactoring in something like a Renderer3 class<br>
&gt; hierarchy (and similar for other classes).<br>
&gt;<br>
&gt; If we do this, then upgrading to 3.0 functionality is similar to &quot;from<br>
&gt; future import generators&quot; -- simply use the newer classnames in your<br>
&gt; code.<br>
&gt;<br>
&gt; Clearly, we wouldn&#39;t neccesarily be in a position to upgrade *all* code<br>
&gt; in that way -- and as we do the development, we can keep information<br>
&gt; about stuff that has or has not been upgraded. (This information will be<br>
&gt; informative/&#39;required&#39; for transitioning later, anyway.)<br>
&gt;<br>
&gt; Then, when we&#39;re ready to release 3.0, the transition isn&#39;t too painful:<br>
&gt; we simply move the &quot;3&quot; classes back in place of the &quot;2&quot; classes.<br>
&gt;<br>
&gt; I don&#39;t want to limit development of OpenLayers 3.0 -- but the idea of a<br>
&gt; &quot;code sprint for 3.0&quot; as has been mentioned does definitely scare me if<br>
&gt; it&#39;s done in the way we did the vector work.<br>
&gt;<br>
&gt; Perhaps my estimation of the depth of changes needed for some 3.0 work<br>
&gt; is too shallow, and this makes my proposal difficult, but what I&#39;d<br>
&gt; really love to see is:<br>
&gt;<br>
&gt; &nbsp;* putting together a branch for various 3.0 features<br>
&gt; &nbsp;* Developing them<br>
&gt; &nbsp;* Figuring out how to put the features into 2.x as something people<br>
&gt; &nbsp; &nbsp;can explicitly choose -- not in the API, but as a way of letting us<br>
&gt; &nbsp; &nbsp;use them now, and get development/testing on them without waiting for<br>
&gt; &nbsp; &nbsp;one big changeover of applications.<br>
&gt;<br>
&gt; Are there features that we can do this for? Are there features we can&#39;t<br>
&gt; do this for?<br>
&gt;<br>
&gt; I think one case of the latter *might* be the baselayer/overlay<br>
&gt; dichotomy fixing -- but even that feels like it could be fixed to some<br>
&gt; extent in an OpenLayers.Map3 class, maybe -- and maybe we don&#39;t go ahead<br>
&gt; and change all the layers to work in a new way, but instead, create a<br>
&gt; couple (Google, WMS) and then apply those changes to other layers as we<br>
&gt; do the upgrade to 3.0.<br>
&gt;<br>
&gt; Thoughts?<br>
&gt;<br>
&gt; Regards,<br>
&gt;<br>
</div></div><div><div></div><div class="Wj3C7c">_______________________________________________<br>
Dev mailing list<br>
<a href="mailto:Dev@openlayers.org">Dev@openlayers.org</a><br>
<a href="http://openlayers.org/mailman/listinfo/dev" target="_blank">http://openlayers.org/mailman/listinfo/dev</a><br>
</div></div></blockquote></div><br></div>