vsch / flexmark-java

CommonMark/Markdown Java parser with source level AST. CommonMark 0.28, emulation of: pegdown, kramdown, markdown.pl, MultiMarkdown. With HTML to MD, MD to PDF, MD to DOCX conversion modules.
BSD 2-Clause "Simplified" License
2.26k stars 269 forks source link

[Healthcheck] ping Vladimir Schneider #541

Closed bademux closed 1 year ago

bademux commented 1 year ago

Sorry for the dummy issue, but...

I'm choosing a library for a markdown, and just checking is author (and main contributor) OK It seems @vsch last activity on github was back (February) Homepage is down as well as commercial product is unsupported for some time.

Hope @vsch will close the issue himself.

bademux commented 1 year ago

looks like all Ok there is some activity in the repo

vsch commented 1 year ago

@bademux, yes, I was out of it for a couple of years. I spent the previous six years working like a madman on my Markdown Navigator plugin for JetBrains IDEs. The first three were literally 16-hour days, 7 days a week. This library was written for that plugin during that time.

When JetBrains switched to their current rapid release schedule, it made plugin development hell. The API evolved with every release and often in breaking ways, most of the time making it impossible to have a plugin compatible with more than a few releases. Their own bundled plugins are released for every IDE build. The alpha, beta and release candidate status became meaningless, there were breaking changes introduced by release candidate builds. In one case, forcing me to take five months to rewrite the implementation of both the plugin and flexmark-java, because a new bundled Kotlin compiler broke an old library used throughout the plugin.

With every release, I found myself spending 80% of the time "chasing the API" changes, leaving no time to make improvements to my plugin. JetBrains promotion of their sub-par Markdown plugin affected sales of my plugin.

To add insult to injury, JetBrains decided to start making some of their plugins require use of their own bundled Markdown plugin. Effectively, forcing my plugin to be incompatible if you wanted to use GitHub integration, Jupiter Notes, etc. They abandoned this required dependency after a couple of releases due to user complaints, but it left an unpleasant after-taste.

Eventually, I got fed-up of it all and just walked away. To date, my ROI on time invested into Markdown Navigator is less than $5/hr. Not an economically sustainable endeavour.

I only came back because I had an Arduino based project to complete and was using JetBrains CLion IDE with my Arduino Support plugin. Within hours, I had to get my must-have plugins updated, mainly Missing In Actions and Markdown Navigator. Arduino Support plugin too needed some attention. I wrote it five years ago, over the Christmas holidays, so I could have JetBrains IDE comforts, and never revisited meaningfully since.

I decided to give my plugins another go and spent the last two months updating my plugins, dependent libraries and finally getting Markdown Navigator functional, so I can work on flexmark development. The plugin provides navigation, completions and inspections for flexmark spec tests, making test development and maintenance comfortable.

So, this is a long-winded way of saying that for the near future, the library will be maintained and actively developed. At least until I get fed up with the workload without compensation. Information may want to be free, but developers need to eat, have a roof over their heads with steady heating and electricity.

bademux commented 1 year ago

@vsch Sorry, the question was shaped a bit rude. I need the information about project state to estimate worst case - forking. I totally understand the problem with supporting commercial product, as well as technical challenges with "quantum" APIs. Thanks for your work!