4 ms·
Well, I have a Java system for playing interactive fiction games on the desktop. When people started playing them on the browser, the obvious way to adapt my sy
by Al-Khwarizmi 13y ago
Well, I have a Java system for playing interactive fiction games on the desktop. When people started playing them on the browser, the obvious way to adapt my system to that functionality was an applet. That way I could reuse 99% of the code, and they could get the same functionality as on the desktop.
Sadly, now it's getting harder and harder to run applets. And I'm not going to code a different web-based version of my system (which would involve not only rewriting a lot of code, but finding different libraries to handle MP3, OGG, SVG graphics, etc.) so I suppose my system will just slowly fade into obsolescence.
For some things, applets are still the best choice... or would be, if users were not aggressively discouraged from using them due to what amounts mostly to PR campaigns (as i.e. Flash is by no means more secure than Java applets, and browsers don't make you click through four layers of scary dialogs to run it).
What I hate about coding projects for end users that need to run on shiny platforms (like the web) is that you always get caught on politics. Stuff like company X not allowing running software written in language Y on platform Z so as to promote its own platform, and making you port everything several tiems. Or company X including a crippled distribution of software Y because it hates company Y (this happened with Ubuntu and Java and has brought me scores of bug reports to handle). I guess my future hobby projects will be in C/C++ and directed to technical users that don't expect to run their machine learning software (for example) on a tablet browser...
- Skinney 13y agoIf you really want to target the web, what's wrong with JS/CS in the browser or on Node.js for desktop apps? Of course, you could always use C/C++ with emscripten, and target the web that way...
- Al-Khwarizmi 13y agoBecause this project is already there, I started it in year 2000 when most of those technologies didn't exist. I would need to code everything again in JS, and we are talking about more than 150 KLOC. Plus libraries that might not be available in JS. And then I would have two separate versions to maintain. No way I'm going to do that, I'm not getting paid for this project and I don't have enough free time. With Java on the other hand, I had a desktop app and an applet sharing the vast majority of the codebase, only very specific parts of the code (a small part of the UI and I/O code) differ. This is what was allowing me to maintain the project and support both desktop and browser, until the applet paranoia growed out of proportion and browsers put applets in permanent quarantine. Of course, if I started this project now rather than in 2000, I would probably make different decisions regarding language and technologies used. Although it would still be a bit annoying not to be able to use Java. It's not my favorite language, but I definitely prefer it to JS by a mile.
- Skinney 13y agoI was thinking more about the fact that you had switched to C/C++. I agree that re-writting an app of that size is a giant PITA. You could always use GWT though, and compile Java to Javascript. Altough you would probably have to re-write code as you're not targeting an applet anymore.
- moondowner 13y agoIf you want to reuse code, or still code in Java on the front end, why not try GWT?
- Al-Khwarizmi 13y agoI suspect the multimedia part of the code (SVG libraries, MP3 libraries, etc.) will get me into trouble when converting to Javascript. But yeah, at least I could try and see if I can get a subset of the system working, even if it's only to learn some GWT :)