What’s the Platform of the Future for Developing Interactive Graphical Educational Software?

So, what is the platform of choice for folks who want to create interactive graphical educational software (see for example all the stuff at PHET and NLVM). Currently, there are two primary options: Flash and Java Applets. I’m not covering in this post web applications, which can still use just about anything you want: PHP, Java, Ruby, Python, .NET, etc., or business/office/administrative software which can either be web apps or desktop apps coded in C++/Java/.NET/Python, etc., or 3D desktop games, usually coded in C++/Java/.NET/Python. I’m centered on interactive, graphical educational software like you see all over the web now.

The PHET project, for example, uses both java and flash. These haven’t always been the main options, however, and I suspect it will change again in the near future. Here’s a short history of some of the development tools I’ve leaned on for educational software development over the past 15 years:

  • early 90s – hypercard / supercard, Perl/CGI for web apps
  • late 90s – java, visual basic, real basic, PHP emerges for web apps, javascript in the browser
  • early 00s – by this time, commercial options no longer cut it for me, too many bugs, ignored feature requests, too expensive, vendor lock-in – free and open source is king: python, java (later open sourced), C#/vb.net (esp. the Mono open source clone). Unfortunately there is no alternative to the commercial, proprietary flash, which becomes king of RIAs (rich internet applications) instead of java applets.
  • late 00s – by this time, desktop apps no longer cut it. RIA is king for creating interactive graphical educational apps – java and JVM languages like scala, and still no real alternative to flash (there is javafx, but it hasn’t largely caught on yet, and just about all the demos so far require you to download the app (JNLP) rather than run in the browser, despite support for JNLP applets). The move to RIA means no more Mono/.NET since it doesn’t run in the browser – support for silverlight is weak/non-existent on many browsers/platforms. And no python, although perhaps one day browsers will support it as an alternative language to javascript. I’m not holding my breath on that though. Mono/.NET is emerging again now in 3D virtual world space, however, because it is the basis for Second Life / OpenSim, and its only open source competitor, the java-based Project Wonderland is no longer supported by Oracle, who bought out Sun. The project is continuing outside of Oracle, but it’s future is unclear.
  • early and late 10s? – This is the question of this post. Mobile platforms can no longer be ignored, and that means no java. Actually android is essentially java (dalvik), but standard java applets do not work. Flash is only just now being ported to work on android, and it may become available for the iphone as well, although Apple is hostile to it (as well as java). Since google doesn’t support browser applets (even android applets), and Apple wants total control of their platform, Flash is only increasing its dominance and importance.


Since Oracle bought out Sun, and there is no support nor any planned support for java on the android and iphone platforms, it appears the only open source alternative for the future of RIA apps may be HTML5. But that cannot be used for creating the kind of highly interactive graphical educational software that you can create in java and flash. For this to work in HTML5, it would require WebGL, a 3D (OpenGL ES) canvas for HTML5. WebGL still does not work out of the box on any mobile platform, but it has been or is being ported to work on WebKit (the browser engine for Palm’s WebOS and the iphone web browser) as well as android. Currently, to run WebGL you need to grab a nightly build of Firefox, WebKit, or Google Chrome (I’m trying out the last one). Official builds will have likely have built-in support for WebGL come November 2010 or so perhaps (Firefox 4). Here are some more resources on WebGL:

The main drawback to the HTML5 platform is that javascript is the only language supported. That’s not a problem for me, personally, I’ve been using javascript since when it was called livescript. But my interest also is in programming languages/tools that make it easier for students, teachers, and other non-CS types to develop interactive educational software, as discussed in this chapter (pdf). A workaround for now would be to create a to-javascript compiler for alternate languages, as has already been done for java with the GWT project (which has various WebGL controls in development: WGT, GWT-G3D, GWTGL, GWT-WebGL), but in the long run it would be best if a common runtime were developed for WebKit and Firefox to support other languages than javascript, but then we are just re-inventing java and the JVM. So I don’t dismiss the java platform at all just yet, but it’s definitely not having a good year so far 🙂

Posted in android, development, html5, java, opensource, programming, scala, software
14 comments on “What’s the Platform of the Future for Developing Interactive Graphical Educational Software?
  1. bryanwb says:

    I strongly believe that HTML 5 is the future platform for educational software. In fact I have been working on it for the past year. Check out our demos here http://karma.sugarlabs.org and our blog http://karmaeducation.org

    It is all open-source, MIT License.

    I have done a lot of work w/ Flash in the past and in my experience so far HTML 5 is definitely up to the job. The only thing really lacking is a WYSIWG editor for creating animations

  2. bryanwb says:

    btw, you absolutely can develop apps with HTML 5 that are just as interactive as Flash.

  3. I think it’s important to think beyond the confines of the client device and consider the system as a whole. It definitely will involve both client-side and server-side technologies.

    Additionally, the more open the better. That means no Java, no Flash. That’s not just because of device implementation issues, that’s because higher education SHOULD avoid proprietary solutions and vendor lock in.

    With regard to the JavaScript capabilities issue, there are amazing JS frameworks available, not the lest of which is jQuery, but Sproutcore (the engine behind Apples beta iWork.com) is also a contender.

    As far as JS translation, that concept already exists in Rails in the form of RJS (Ruby-generated JavaScript). It’s essentially a way to code AJAX interaction, but write it entirely in Ruby — great for Ruby developers.

    The same could be done (or is currently being done?) for other languages.

  4. Tom Hoffman says:

    I think you’re overestimating the importance of 3-D. Unless it is absolutely necessary, 3-D tends to add a lot of complexity to a learning application.

    Regardless, I’d bet on the long term prospects for 3-D in HTML5 more than I’d bet on Flash and Java applets.

  5. edtechdev says:

    It’s not just 3D, it’s fast 2D as well. The current HTML5 canvas without WebGL can’t handle the level of interactivity seen in most of the apps I linked to at the PHET and NLVM sites. Such as an animated circuit simulation. That’s not to say it can’t do some animation as Bryan’s site shows. But I’m not even seeing physics simulations done in HTML5 canvas, yet, or something even simpler like a line rider game. Perhaps in the future the plain canvas will become hardware-accelerated. Of course now we’re re-inventing Java2D.

    • bryanwb says:

      I may be mistaken, but WebGL may already be hardware-accelerated on some platforms. If not, we should see significant hardware acceleration.

      I also agree w/ Tom that a large sector of learning applications do not need fast 2D or 3D. I feel educational technology as a whole is overly focused on edutainment and catering to higher-level math and science. There are tremendous applications for simple html5 apps in basic math, language, geography, and basic science.

      @David Poindexter, I really think that the client-side and server-side of applications need to be decoupled. A tightly-coupled application makes integration with an LMS much harder. That is one of reasons I have opted not to use sproutcore.

    • bryanwb says:

      Here is a presentation I put together on the case for HTML5 + CSS + SVG as the future of educational technology

  6. edtechdev says:

    Yeah I see your posts here: http://karmaeducation.org/

    Appreciate your comments, you’re doing great work!

  7. Tony Karrer says:

    My guess is that we will see authoring tools that deliver HTML 5 as output soon enough.

  8. […] 9, 2010 · Leave a Comment Doug Holton has a new post in which he explores various tools and programming languages that have been used for […]

  9. […] What’s the Platform of the Future for Developing Interactive Graphical Educational Software? « Ed… […]

Comments are closed.

%d bloggers like this: