Hello everyone !
I’m glad to join such an interesting and promising community.
You can find below:
- My BIO / Background
- My recent “Language Workbench” journey
I’m looking forward contributing to this community.
See you very soon !
1 - My BIO / Background
I’m a french software architect with a passion for modeling, crafting DSLs, and type-safety.
I’ve mostly worked as a independent dev / consultant.
I also worked as CTO in a fast-growing startup (from 5 to 100+ employees)
then as lead tech / CTO in the Innovation Lab of a large International-company.
The two very first languages I settled when I was younger were Haskell and Ruby
Both were very Language Engineering friendly, and shaped my interests quite a lot.
In Haskell I played quite a lot with parser combinators, free-monads and the like for various projects.
In Ruby, I crafted quite a few embedded DSLs.
I love playing with, and discovering new languages every so often.
I’ve hacked a little bit on a few GPL and DSL compilers and interpreters along the years.
I’ve switched my main language to typescript a few years ago.
Nowadays, I maintain a bit more than 150 typescript libraries in a wide range of categories.
When relevant, I like creating intermediary representation to decouple specification from implementation.
I often find interpreters the simplest way to turn those specifications into applications.
I’m also a code-generation enthusiast, notably when I can get type-safe low-abstraction boilerplate out from it.
I have created and refined my own code generation tooling over the years.
I’m not quite used to public speaking / writing about me.
So far, I have no website, no blog, and mostly only shared my work with friends and coworkers (with a few recent exceptions).
2 - My recent “Language Workbench” journey
I’ve recently embarked in a fun journey to create a new Language Workbench.
I’ll share details about what I’m building very soon. In the meantime, here is the backstory :
-
I’ve loved the idea of structural editors and graphical modelers for years.
-
Around two years ago, I spent 2/3 weeks building a small web-based modeler + integrated code-generator prototype for fun.
It didn’t go very far, and I abandoned it and moved to other topics.
-
Less than one year ago, I pick-up this idea again, and spent 3 months building a second prototype.
The tool was bootstraped, featured an extensible widget system, and was full of shortcuts to model / edit things “fast”.
Alas, I made quite a few unfortunate choices.
Lots of things were pretty naive, and the bootstraping was done too early.
Once again, I abandoned it.
-
At that time, I was working with a friend of mine who pushed me to structure my research and contact domain experts.
I did so, and decided to allocate a few more weeks to do research in this area.
I read a few books and a few papers.
I discovered Languages workbenches, played with a few of them, and fell in love with the idea even more.
I also understood I had a wrong approach on quite a few points. -
I then started a third prototype featuring modeling capabilities closer to what MPS offers.
I built a custom tree-based editor with shortcuts and goodies for fast-editing.
This prototype was the most promising so far, but…
I ran low on cash, so decided to look for work ¯\_(ツ)_/¯
-
And at the beginning of the year, I joined a French-based SMB sotfware company that was already familiar with software-modeling approaches.
There, one of my mission was to grow a DSL Engineering section to build DSls for various internal projects (e.g. contract modelling, or low-code platform).
One month after I joined them, my company approved my proposal to start building a new language workbench and around mid-February, I started working on my first “real” language workbench prototype.
This one didn’t fail yet and I’m now developing it full time, and am currently on-boarding 2 developers full time to help me on it.
We’ll also probably start hiring soon.
I’ll share more information about it with you very soon !
In the meantime, here is a small screenshot of its projectional editor :
Cheers !