Skip to Content

A healthy ecosystem is not a monoculture.

Chevrotain – JavaScript Parser Toolkit

A very fast and feature rich Parser Building Toolkit for JavaScript. It can be used to build parsers/compilers/interpreters for various use cases ranging from simple configuration files, to full-fledged programing languages.

In my last blog post, I pointed out that Open Source projects come in lots of different flavors.  Today let’s take a look at another of our most popular open source projects.  This one, however, is a different size, and therefore takes a different approach, then it’s bigger cousin UI5.

Introducing Chevrotain

Chevrotain, which is French for “little deer” (or “little goat”, according to a different French friend), was a project started by Shahar Soel (bd82) and moved to GitHub in 2015.  It fits in to the “library tool” definition of Open Source projects, because it is a library which you can incorporate in to other code written in JavaScript for NodeJS.

Like a lot of other libraries that can be used in your code, tools like this one are usually one of several possible options to solve problems.  Libraries like this usually fall in to one of two categories:  different codelines that perform the same task (for example, two different libraries that read the same XML standard format to do a specific job), and then libraries that get to the same result using a slightly different tactic (again, as an example, using a custom XML template, which is more efficient in specific cases).

Chevrotain falls in to the second category.  It’s part of the group of Parsing Libraries in JavaScript, but unlike many of its fellow libraries, it does so using a hybrid approach.

I won’t attempt to explain the details.  This article, Parsing in JavaScript, does the job quite well.

A different type of Open Source Project

Chevrotain contrasts with its bigger cousin UI5, and the differences are what make it interesting to us in the big picture of Open Source in the big picture.

The interesting part about Chevrotain is the role it fulfills in our bigger Open Source picture.

Chevrotain is the personal project of one person, Shahar.  He is a huge advocate of Open Source, and he believes strongly in giving back to the community.  Originally, this project coincided with some work that he was doing at SAP.  But, since it was released, he has moved on to other things inside the company.

Committing to Open Source, though, isn’t something you do for a few days or weeks.  Once a project is released, it’s important to continue to maintain and take care of it.  Shahar does this in his spare time, and it’s his sign of commitment to the idea of Open Source.

This makes Chevrotain a different kind of project at SAP.  Unlike its larger cousin, UI5, which has a whole team of people dedicated full-time to development, this project is just a part of Shahar’s job – something he does because it’s important to him, and to the community it serves.

Does that make it less important?  No.  In fact, it’s probably harder to do this kind of work than to be dedicated to a full-time project.

Open Source Ecosystem

The primary reason I presented this project is to show the differences in different types of projects.  This gives me a chance to talk about Ecosystem – the “big picture” of SAP Open Source, and how all of these different things fit together.

“A healthy ecosystem is not a monoculture”.  This is a term borrowed from ecological science, and it’s also true here.  Monocultures are made up of a single type of organism.  In ecology, this is usually a warning sign – monocultures are very fragile.

We have a similar situation in Open Source.  In order to have a healthy mix, we have to encourage different types of projects to thrive in our space.  Each type of project has different demands, different needs, and therefore requires different kinds of resources.  (Just like in nature!  Interesting…)

A project like this one will never grow in to a major framework like UI5.  But it’s not meant to, and so we don’t treat them the same way.  This type of project, however, is a lot more common here at SAP.  And so, we give it different support, and have very different expectations on what it will do.

Opening the door to the big picture

I know, that all sounds a bit vague.  That’s not on purpose – it’s because a discussion of exactly what we do differently, and why, and how they interact is almost another blog series in itself.  I will be returning to ecosystems for much greater detail in the future.

Before I do get there, however, this is only the second type of project.  There are still several more to talk about, before we have a good representative sample of the different kinds of projects here at SAP.  So, look for several more projects over the coming weeks.

Then, once we have that sample in place, we can start to talk about how they all interact, and how they all fit together.

 

Enjoy Chevrotain.

 

And thanks for stopping by Open Source Monday.  Looking forward to more soon!

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply