As before, I’m still pondering indecisively how I might implement the Glom Web UI. There’s several AJAX toolkits that should take some of the pain away, but the choice of programming languages is still the big forking decision.
Now that Java can be distributed on Linux, it’s a candidate again. And now that Java has generics, they’ve dealt with the lack of compile-time type-safety that always annoyed me. Python is less verbose, but the run-time type surprises have always annoyed me. Of course, Java still isn’t open source (or clearly patent-free, so free implementations may also be in danger), and it’s monolithic, so we’re stuck with the quality that we’re given. That is admittedly only marginably better than putting my nuts in Microsoft’s hands. But I guess it helps that it’s so big and successful already.
And I started thinking about Java again when I saw that Google released the Google Web Toolkit, a Java API for AJAX UIs. (Update: It’s not Open Source so I won’t be using that. There will be bugs and I’d want to fix them.) I didn’t expect them to be using Java. I thought they were all about C++ (The main search UI, apparently, and I’ve heard they use lots of boost::python.) and Python (not sure where though). I’d love to see a list of Google products with programming languages and technologies that they use. There must be enough client-side clues to figure that out. At the moment there’s such a mess of competing frameworks that I’d love to choose something based on the quality of google’s products.
There’s now a libglom, with a C++ API, which I’ll want to reuse. boost::python for C++, or JNI for Java would let me do that. I don’t have much confidence that I’d be able to use C++ for this. I just dont’ think enough people are doing that, and I’d rather not be the only consumer of a toolkit.
I looked at Ruby on Rails, and I think there’s a Python version now too. It seems to demand a static database structure. I think it generates classes for each database table. I imagine that’s a fast hacky way to do web applications. But that’s no good for a generic database API. It’s the UI and session management that I’m interested in.