ngx Dont get me wrong, I am a great supporter of your work, and I dont see any other parser generator competing.
Well, not to worry, I mentally catalogued you from the start as being on my side!
You know, a funny thing is that I've had this sort of idea at times that I could start some internet meme -- not so much in my computer nerd activities, but in some political writing I indulged in. But I never managed to really get a meme going, like I thought this meme "Roger Rabbit narrative" that I came up with about 6 years ago had a chance, but it never really took off.
Funny thing about memes though, I just noticed that if you type the string "Norbert Sudhaus" into google, my blog piece on the Norbert Sudhaus Fan Club is the very first hit! And funny enough, that's on the basis of a single article on an obscure technical blog. If I really set as a goal to push the Norbert Sudhaus meme, it looks totally doable. (Probably I won't bother, though...)
By the way, it's okay if you think that I shouldn't have written that. There's a side to me that thinks I shouldn't have written that, but I did. It may well have been self-indulgent on my part, but it was just an expression of my frustration with certain people. Or a certain kind of attitude I was running into continually. But it's certainly not that I have any cause to retract anything I said there. I'm satisfied that it's all quite true. (Unfortunately.)
Not that the Norbert Sudhaus Fan Club phenomenon is the sole thing going on. It's also true that there just is a lot of inertia out there. I mean, a lot of the projects out there that use the legacy JavaCC are in a pretty sorry state themselves. And very often, the guy who used JavaCC to write whatever parser used in that project is long gone and none of the people left really understand how it works. And I'm pretty sure that is the main reason that, if I show up and say: "Hey, look, here's this new improved version of JavaCC. It's really hot shit, guys!" they don't take much notice. And, I think, BTW, that it is largely in that context, that they then ask you whether it is a 100% BWC replacement (which it is not) and the issue of whether it is on Maven Central comes up. And well, that is why I'm skeptical about the whole Maven Central thing. I mean, finally, my sense is that having it on Maven central makes little difference, because what these people really want is to just edit a single line in a pom.xml file and then be using the newer version. And once they realise that this is not possible, that it requires some tweaking of their code, then they're not interested. I mean, the guru who wrote their JavaCC grammar is long gone (presumably went off to found another ashram!) and they're terrified of touching any of that.
ngx Are you planning to have an OLD syntax to NEW syntax converter? This would be a great start for old users to convert.
Yeah, I've been planning to do that for the longest time and it's not even that difficult. It's just that I never buckled down and did it. My approximate plan is to have the converter working as part of JavaCC21, but once everything has shifted over to the Congo renaming, then there's just no support for the older syntax.
So then I can get rid of a lot of cruft in the core grammar. But it's not just that. I think we'll just change tack completely and hardly ever mention the legacy JavaCC, just mention it at the footnote level here and there that CongoCC does have its origins in a rewrite of that old JavaCC thing, it's not a secret or anything, but a new user won't give a **** about that anyway. Why should they? All the more so if it's a Python or C# guy!
ngx And I did not even consider adding Sybase, DB2, Microsoft... versions! Maybe this task is just impossible (?)
Well, it's challenging for sure, but the thing about it is that undertaking a very challenging task like that is bound to result in improvements to the tool. That C# grammar I wrote recently was really difficult and I certainly ended up nailing a couple of bugs in the tool in the process of writing it. I also became conscious of certain limitations, where I could see my way to expressing things more cleanly if the tool had certain features. So I'll probably be addressing that in the near future.
I mean, with the legacy JavaCC, the task probably is basically impossible. It's not just that the thing is missing very basic features, like INCLUDE and such, and it has this very fundamental problem of not being able to to do nested syntactic lookahead, but even there's just this fundamental problem that the thing is dead development-wise. There is just no prospect of any needed feature ever being added. If you run into a problem with your SQL work and it's like, well, I need such and such, and it's not too hard to implement the feature, well... we'll do it! Or better, since the codebase is so much cleaner now, you could learn the internals and do it yourself. (I think you'd end up seeing that it's not as difficult as you might suppose...)
By the way, what are your goals with the SQL work? Are you just intending to open source it or do you have some other plan?