> If you want to take ownership it should be possible to fork Jonathan’s FreeMarker 3
If, by "you", you mean the Apache Foundation: there's no plan to fork FreeMarker 3 from Jonathan. Apache FreeMarker is a continuation of Apache FreeMarker 2. On Tue, 6 Feb 2024, 07:24 Denis Bredelet, <brede...@mac.com.invalid> wrote: > I read the whole ramblings so you don’t have to. > > In short: > > Apache FreeMarker 3 is not a viable project. > > Jonathan is working on FreeMarker 3 which is a continuation of the > original project before the Apache fork. It uses a new parser (CongoCC) > which makes it much easier to modify and extend the grammar. It uses POJOs > instead of “models”. Expect big improvements in all areas. > > Jonathan is looking for collaborators who are dedicated to the project. He > is very much against moving FreeMarker 3 to Apache. > > > My personal comment: > > I don’t know how Jonathan is as a project leader, but the tone of these > ramblings does not put me at ease. If you want to take ownership it should > be possible to fork Jonathan’s FreeMarker 3. But I expect any license > change would have to go through him first. > > — Denis. > > > On 5 Feb 2024, at 13:46, Jonathan Revusky <revu...@gmail.com> wrote: > > > > Hi Vinay. Nice to see you here. > > > >> On Mon, Feb 5, 2024 at 11:50 AM Vinay Sajip <vinay_sa...@yahoo.co.uk > .invalid> > >> wrote: > >> > >> I happen to use FreeMarker, because I work on CongoCC, which uses it, > but > >> I don't work on any FreeMarker codebase itself. I'm not speaking for > >> Jonathan, but my view on "why not join hands in here ...? " might be > >> answered in part by comments Dániel Dékány made - "I think the next > logical > >> step in FM3 is replacing the whole parser" - not exactly a small amount > of > >> work, but something that's already been done in the project Jonathan > linked > >> to. > > > > > > Well, yeah. Again, if one is really interested in moving the thing > > forward... But there are some niggles in all this. The rewrite of the > > parser that I undertook last summer, all of this is best understood as a > > result of using the more advanced features of CongoCC. ("Apache > FreeMarker" > > still uses legacy JavaCC, as you no doubt know.) But anyway, this gets > into > > some nooks and crannies of history now. You see, when I started working > on > > my own "fork" (not really a fork since it wasn't a bifurcation of effort > > either!) of JavaCC back in 2008, I switched the trunk of FreeMarker > > development to using FreeCC (which is what my version was called back > then, > > now it's CongoCC). > > > > When Daniel took the project to ASF (the "incubator" yah dee dah...) he > did > > not take the trunk (trunk in SVN is called "master" or now "main" in git) > > but took the older 2.3.x. maintenance branch and effectively threw away > all > > the work I had been doing from 2006-2008. (So, for one thing, this Apache > > FreeMarker is based on a really, really old version of FreeMarker!) > > > > Now, the question is why did Daniel take the older version of FreeMarker > to > > ASF rather than the trunk? Did he really believe that the older codebase > > was somehow better than the newer one? > > > > As best I can guess (though Daniel could clarify) the reason that Daniel > > threw away the latest version of the code is because that was built using > > FreeCC and he wanted to revert to using legacy JavaCC for the build. > Later, > > I noticed, looking at the archives of this dev list that the whole > question > > came up of using a different (perhaps actively maintained) parser > generator > > rather than the JavaCC abandonware, and various possibilities were > floated > > and I notice that Daniel never even mentioned the existence of FreeCC. > > That, despite the fact that there was at least one actual release that > was > > built with FreeCC. So, my own theory on that whole thing is that Daniel > > threw away the most up-to-date version of the code for that reason, he > > wanted to get rid of the FreeCC dependency. And then, when the topic of > > parser generators came up, he somehow did not know that FreeCC had ever > > existed. > > > > But anyway, all this gets back to why it would be quite difficult to > merge > > my ongoing work with Apache FreeMarker, since Apache FreeMarker is based > on > > the older codebase, while the FreeMarker 3 that is used in CongoCC (and > its > > predecessor JavaCC21, of course) is one based on an ongoing evolution > from > > the main line of FreeMarker development, the SVN trunk. > > > > So, again, Daniel took the older obsolete codebase to ASF, the 2.3.x > > maintenance branch, and quite a bit later, when I decided to resuscitate > my > > FreeCC (now CongoCC work) the FreeMarker version that I was using, that > was > > under my control, was the more advanced one based on the SVN trunk. That > is > > why our templates in CongoCC do not use #assign/#local but rather > > #set/#var, which IIRC I implemented at some point in 2008, or possibly > even > > 2007. By the way the #set/#var is still on the wish list as a feature to > be > > implemented in the "Apache FreeMarker 3" vaporware. I mean think about > > that. That feature was already implemented in 2008, 16 years ago! And it > is > > on the wish list of things to have in the next major release of Apache > > FreeMarker, which now, by Daniel's admission, is never going to happen > > anyway! Can you really characterize this as anything other than a total > > train wreck? > > > > So all of the above, though it is a bit involved to understand it, can > give > > anybody a sense of how FUBAR all of this was. But an interesting > > side-effect of all this is that the FreeMarker 3 codebase that I have > been > > working on, the continuation of the SVN trunk, was NEVER at ASF. Well, in > > principle, I was donating the latest version of the code, or I thought I > > was. But it was never taken back then and just continued to sit there at > > Sourceforge. So, basically, towards the end of 2019, or early 2020, I > > picked it up and started doing some things with it. Not so much until > last > > year, when I really went on a tear and rewrote the parser and the core of > > it. > > > > But, you know, as I relate all the above, all of this was pretty... > well... > > sleazy, really, and the whole idea that I would be interested in donating > > any more code to ASF, or at least to this Apache FreeMarker project, > after > > all of this... it's pretty fanciful. > > > > So, anyway, the FreeMarker 3 code that I'm working on is not a "fork". > It's > > just a continuation (after a long hiatus) of the main line of development > > which stems from the SVN trunk back when the project was on Sourceforge. > > > > > >> If the interest of the community is in moving the technology forwards, > >> then that work would seem a suitable starting point, rather than an old > >> branch which seems very out of date but just happens to be in the same > >> repository. > > > > > > Well, sure, but the most advanced version of the code was just mothballed > > for no obvious reason back when, so... Actually, I think the reason > mainly > > was to NOT use FreeCC. Daniel very much did not want any further > > involvement on my part (and I think still doesn't) so that would surely > be > > the reason for all that. But if there is some other reason, Daniel is > > around and can explain it. > > > > > >> You'll see that for whatever reason, it's hard to innovate in the Apache > >> project because the challenges are not only technical (getting some work > >> done) but also social (getting others to accept to work with it, or with > >> you). > > > > > > Well, yeah. Even aside from the aforementioned skullduggery with so much > of > > my work (everything I did from 2006-2008) being thrown away, just the > whole > > idea of trying to operate in this scene... it just looks so unappealing. > > Well, the appealing aspect is that your work automatically gets a lot > more > > usage and visibility, but for me, that's just not a positive tradeoff. > > There are aspects of the "culture" here that I would be very disinclined > to > > deal with... > > > > > > > >> What are the recent innovations in Apache FreeMarker, apart from > working a > >> bit on the margins like servlet API-related stuff (hardly core to a > >> template engine)? I'm only a recent subscriber to this list so I've only > >> seen discussion of that kind of thing, but happy to be informed about > other > >> more substantial innovations. Now it's a very mature project that > perhaps > >> doesn't need much in the way of innovation, but for me the new syntax > >> changes in Jonathan's project (the ability to use e.g. #if ... /#if > >> instead of [#if...] [/#if] in many contexts) is a readability win, even > if > >> it seems a small change. > > > > > > Well, actually, there are much more profound changes now in FreeMarker 3 > > that are not so readily apparent. Pretty much all that object wrapper > stuff > > is gone. Objects are exposed to the template layer as POJOs. So, in > > FreeMarker 2.x, anything exposed to the template layer was some sort of > > TemplateModel instance. So, if you exposed a string, it was either a > > SimpleScalar or a StringModel, depending on whether you were using the > full > > beans wrapping or not. Now, any string you expose is just a > > java.lang.String. Same with numbers as well as maps and lists. This > version > > of FreeMarker just uses POJOs pretty much, so it's much less unwieldy to > > deal with -- for any application programmer who has to interface with > > FreeMarker. > > > > Of course, also, the rewritten parser using CongoCC is such that it is > > vastly easier to implement new language features than it ever was before. > > > > > > > >> Not sure how much work would be required to retrofit that in Apache > >> FreeMarker, but I doubt anyone will step up to do that kind of thing. > > > > > > It seems quite unlikely. :-) In any case, any new language feature is > much > > harder to implement in Apache FreeMarker, because it still uses the old > > legacy JavaCC. > > > > > >> So if one's primary interest is in the technology and advancing the > state > >> of the art, one tries to work with whatever is the best of breed in an > >> area. If one's interest is more in being part of a community, then one > >> works with the community, no matter the technical and social limitations > >> that this entails. In that case, the technology / technical solutions > seem > >> secondary. > >> > > > > Well, the desire to be part of a community that coalesces around some > very > > obsolete, inferior version of something... also, probably with the > > unwritten rule that you're never supposed to mention that the more > advanced > > version of the tool exists... Really, c'mon, WTF kind of "community" is > > that to want to get involved in? > > > > But, okay, it's true that different people have a different world view, > > so.... > > > > JR > > > > > >> > >> Regards, > >> Vinay Sajip > >> > >> On Monday, 5 February 2024 at 06:22:15 GMT, Taher Alkhateeb > >> <ta...@pythys.com.invalid> wrote: > >> > >> > >> Hello Jonathan, > >> > >> Why yes if you recall I actually replied to you in that thread, and I > was > >> asking you why not join hands in here instead of maintaining a fork and > >> confusing everyone as to what's going on not to mention fragmenting an > >> already small community? > >> > >> Regards, > >> > >> Taher Alkhateeb > >> > >> On Sunday, February 04, 2024 23:27 +03, Jonathan Revusky < > >> revu...@gmail.com> wrote: > >> Hi Taher (and everyone else). > >> > >> A couple of months ago, I announced the availability of a more advanced > >> FreeMarker 3 version here: https://github.com/freemarker/freemarker3 > >> > >> Really, the bottom line is that if you do want to get involved in > hacking > >> the FreeMarker code, this is the one you should get involved in. This > is a > >> continuation of work by the original author (ME) and if you get in there > >> and have whatever questions about how the code works, you have the > >> collaboration of the original author (ME). > >> > >> If you work on Apache FreeMarker 2.x or 3.x you're working on a much > more > >> primitive, older version of the code. For one thing, the FreeMarker 3 > that > >> I point to is rewritten to use a much more powerful parser generator, > which > >> is CongoCC. And this really has allowed quite a streamlining of the > code. > >> Just look at what the CongoCC grammar looks like: > >> https://github.com/freemarker/freemarker3/tree/master/src/parser And > >> compare that with what the legacy JavaCC grammar looks like for Apache > >> FreeMarker: > >> > >> > https://github.com/apache/freemarker/blob/2.3-gae/freemarker-core/src/main/javacc/freemarker/core/FTL.jj > >> > >> Just eyeball the two and think about which one you would rather work > with! > >> I can be quite objective because I am basically the author of both > >> versions! > >> > >> On Sat, Feb 3, 2024 at 9:20 AM Taher Alkhateeb <ta...@pythys.com.invalid > > > >> wrote: > >> > >>> Hello, we were just having a discussion about this: > >>> > >>> https://lists.apache.org/thread/2p3521br9jnp9ww1f5vf80l90fntmfdf > >>> > >>> Essentially the way I understood it, it's better to focus on 2 and get > >>> things done as 3's future is not very clear and requires a lot of work > >> from > >>> developers intimate with the code base. > >>> > >> > >> Look, the real truth of the matter is that working with either Apache > >> FreeMarker 2 codebase or the 3, it's just an exercise in necrophilia. > >> Nothing meaningful has been done for ages and, at this point, there is > just > >> about no prospect of anything happening. By all means, you could get in > >> there and try to clean it all up and so on, but frankly, your prospects > of > >> ever catching up to the state of the FreeMarker 3 that I have pointed > to... > >> it's quite bleak really. > >> > >> I mean, really, c'mon, even just reading between the lines in Daniel's > >> response to this question about FreeMarker development, you can get the > >> feeling that it's really just a waste of time. The thing is dead and > Daniel > >> is not hardly even trying to hide this. > >> > >> But anyway, 'nuff said. I just would tell you to do your due diligence > and > >> figure out which way is up! I would be delighted to have collaborators, > and > >> you would be collaborating with the person who is, to all intents and > >> purposes, the original author of the tool. > >> > >> It really ought to be a very easy decision. > >> > >> Best Regards, > >> > >> Jonathan Revusky > >> > >> > >>> > >>> On February 3, 2024 10:51:15 AM GMT+03:00, Alon Ziv > >>> <nola...@google.com.INVALID> wrote: > >>>> Specifically - is there anything contributors can help with to get > this > >>>> completed? > >>> > >> >