A dictionary application for articial/constructed language enthusiasts.
The application was originally written between 2006 and 2012 as a cavalcade of me learning about new and interesting Java software development thingies.
Unfortunately, I made a really bad bet with the latter one. The app originally used bog-standard Swing, but NetBeans promised a bright new future: Matisse interface builder, and a new exciting Java GUI application system, Swing Application Framework (JSR 296).
…and of course, now that Oracle is managing things, they decided to straight up drop the nice things. Actually, it turns out that later, they even dropped JAXB from the standard JDK.
Now, I had a build of the application from early 2012, so I was not really in any hurry of getting the damn thing back on track again. Around 2016-2022 I also had a bit of a creative writing lull where I didn’t really work on worldbuilding stuff all that much.
So I investigated a few other options, including trying out other Java UI frameworks (including JavaFX, which at the time seemed like the preferred way of building Java desktop apps).
Buuuut. The major problem was this:
Ultimately, I thought that the easiest and finest way to fix the convoluted and prototypesque mess would be to just rewrite the app from ground up.
After tossing various ideas, in 2018, I decided to use C#, .NET Framework and settled on using Avalonia for the UI.
Then, suddenly, after a few more years, in 2023, I decided to actually start to write some real vaguely working code, because I’ve clearly procrastinated enough with this project.
And in 2025, having not heard myself the previous time, I decided to actually start stopping procrastinating [sic] and actually work on the darn rewrite project.
Previously, I just kept getting demotivated every time I had to open up Visual Studio, but as it turns out, apparently C# is actually a fun language to code in in Visual Studio Code.
So this is the start of version 2.0 - even though technically the Java version didn’t even reach 1.0. This is basically where we stand now.
I gave up trying to find a solution similar to JAXB, and instead use custom XElement / LINQ conversion methods.
Writing custom XML reader was a massive headache in the Java 1.4 to 6 days. So JAXB was pretty much a revelation - your classes can correspond to the XML schema.
But now, in C#, implementing a custom method was actually faster than trying to find a binding framework that actually seemed sensible. LINQ makes custom stuff like this a lot more elegant, and building stuff out of XElement can be cleanly split into the classes that represent stuff.
Avalonia UI. I’ve yet to wrap my head around how this thing actually works on the daily, but it seems to be fairly sensible so far.
ReactiveUI seems to be the solution that I’m looking for if I want a user interface that meddles with the data.
NUnit. It’s basically like all testing frameworks. It seems sensible.