Hey, this is an excellent analysis for the future of the IDL
implementation, thanks!

I am really not any expert around parser generators, but I've learned
quite a bit from reading through your PRs.  Switching to ANTLR might
bring in some more active developers in this area, so I'm all for it!
Thanks again for the work you've been doing and if you choose to take
on this task.

Would using ANTLR help some of the other SDKs implement the IDL
specification?  That would be a huge advantage.

All my best, Ryan



On Thu, Jan 6, 2022 at 4:30 AM Raymie Stata <[email protected]> wrote:
>
> I support your recommendation.  I've recently used ANTLR on a use-case
> similar to this one and had a great experience.
>
>   Raymie
>
> On Wed, Jan 5, 2022 at 5:13 PM Oscar Westra van Holthe - Kind <
> [email protected]> wrote:
>
> > Hi everyone,
> >
> > One of the avro components in Java is the IDL parser. It is generated from
> > a grammar using JavaCC. This is an old library, that enforces Java 1.5
> > syntax for the IDL class. What's worse, it is not really upgraded anymore.
> >
> > For now it works, but it's not suitable for maintaining a high quality
> > component. As a result, I've been looking for a replacement.
> >
> > Some alternatives to JavaCC are:
> > * JavaCC 21; written by a brilliant mind, but who has been out of
> > programming for a decade and returned a few years ago. JavaCC 21 lacks
> > maven support, and I cannot find it in Maven Central.
> > * CookCC; has a YACC-like syntax (quite archaic), and is at version
> > 0.something
> > * CUP (a Java based “Constructor of Useful Parsers”) generates more
> > powerful LALR parsers, which allows for grammars that are easier to read.
> > However, it was last released in Oktober 2015.
> > * ANTLR is actively developed (9 releases since 2017, last one November
> > 2021) and thus the most obvious choice, but requires ANTLR artifacts at
> > runtime (i.e. a 328kB extra runtime dependency for the IDL parser)
> >
> > Going forward, I suggest switching to ANTLR.
> > My reasons:
> > 1. It's actively maintained
> > 2. There is a Maven plugin,  to generate the parser during the build
> > 3. I know where to find working examples
> >
> > Does anyone have a better/easier suggestion?
> >
> > Or should I continue with ANTLR?
> >
> >
> > Kind regards,
> > Oscar
> >
> >
> > --
> > Oscar Westra van Holthe - Kind <[email protected]>
> >

Reply via email to