Perhaps the fastest evolution in the world today is knowledge, not software. This has become painfully clear in the last few years.
The way I see it, Mozilla and I are both going through major turns in our respective life cycles:
- I turned 40 this past December. That has all sorts of implications by itself, good and bad, in the current technology sector…
- I am roughly 18-24 months away from finishing a Bachelor of Science degree in Computer Science (with no college debt, thank you very much).
- Mozilla has ended support for their (admittedly proprietary) add-ons model, XBL is on the way out, and XUL will follow. This means that the most specialized professional experience I have is not obsolete, but is dying a hard death, faster than I can keep up. So the bachelor’s degree is coming around at just the right time.
- Rust has definitely arrived in the Mozilla toolchain, and Servo is on the way, as a wholly new layout engine. (By the way, Lin Clark: thank you so much for your articles on web engine design. They’re priceless.)
- Mozilla Firefox WebExtensions replaced the old add-ons model, which means a whole new API to learn – and later, when I work in compiled code on my own projects, customize and extend. I’m really envious: these are amazing technologies in their own right, but only Rust, WebExtensions and maybe Emscripten are “mature” at this time from this list…
- I’m still working on es-membrane (formerly es7-membrane), which I think is pretty interesting in its own right. It’s maturing nicely as well, despite a lack of my available time. (I’m still looking for help on that, by the way.)
- I’m a little surprised that the D programming language hasn’t received much traction… although until they become part of GCC and LLVM natively, I suppose I should be. Supposedly, that’s in progress as well.
All of the above means that Verbosio, as a Mozilla Firefox-based XML editor with specific XML languages as add-ons to the editor, is truly and finally dead, and there’s no point trying to believe otherwise. Similarly, the need for a XUL IDE is dead as well. (Daniel Glazman and I need to get together to cry over a beer sometime.)
Enter a new code name, “Aluminium”.
I still want to build a stand-alone (but not too complex) web page editor supporting mathematics students at the high school, community college and university levels. Amaya remains my inspiration. I want to build a successor to that project, focusing on HTML5, MathML and SVG, with a conscious bias towards assisting students in doing their homework (but not doing the homework for them).
Of course, naming a future web page editor Aluminium, and basing it on arriving Mozilla technologies, leads to all sorts of bad puns:
- By inheriting the concepts and some of the non-legacy code from Verbosio, I may be able to call Aluminium “powderware”, not “vaporware”.
- When you mix powdered Aluminium with Rust, and a small spark of inspiration, you get some solid iron (very useful in repairing metal fatigue, I hear) and lots of heat to feed the fire (fox?)…
- Apologies to all the Mozilla Firefox theme add-ons with a name of “Aluminum” or “Aluminium”. Obviously, the name isn’t original.
- I want to use the spelling and pronunciation common in scientific publishing and outside North America. (This is again because I wish to place an emphasis on mathematics editing.)
- Aluminium is the name of a metal, like a certain extremely popular web browser.
- On the other hand, with all the features I want to implement, especially in-page version control for mathematics formulae, I’m not sure I can make it all that lightweight. (Mozilla is no simple beast to build, either.)
I know, I know, that’s enough jokes for now. But about the editor project itself, I’m actually quite serious.
Right now, one of the classes I’m taking at California State University, East Bay is titled “Graphical User Interface Programming Using a Rapid Application Development Tool”. In short, it’s an introduction to building GUI windows (using Qt as a baseline and toolkit) as opposed to a command line application. This is a course I am extremely lucky, and extremely happy, to get: it doesn’t appear in the catalogs for any other CSU campus that I could find, much less go to, and the Computer Science department had told me repeatedly it wasn’t supposed to be in the CSUEB Catalog anymore. All my programming experience and studies to date have either been for command-line applications, inside a web page, or with Mozilla’s platform code. None of that taught me how to build GUI applications from scratch, or how to embed a web rendering engine like Servo. That’s going to change…
Later down the line, I’m not planning on taking easy courses either: I’m looking forward to classes on “Automata and Computation”, “Analysis of Algorithms”, “Numerical Analysis”, “Compiler Design”, and existing mathematics software. All of these can only be force-multipliers on my computer programming experience going forward.
So yes, the old, non-standardized technologies of the last twenty years are being eliminated in Darwinian fashion… and a whole new generation of standards-based and safe-to-program-in computer languages are arriving. The way I see it, I’m earning my Bachelor’s of Science degree at exactly the right time. I hope future employers see it the same way, to work on some truly ground-breaking software.
Thanks for reading!