Java applets were one of the earliest attempt at semi-open RichInternetApplications. However, it didn't quite catch on for various reasons. This is to study the reasons for failure that any future attempts should consider. Many are frustrated with current internet GUI options, and so hope the lessons are known to the next attemptor. ----- * Wasn't/isn't quite an open-standard. * Versioning headaches - apps were very specific and demanding about which run-time engine they wanted. It should perhaps have been chunkified such that apps target a major version number and the user is allowed to try to use a newer or older one if they so choose. * Complex GUI kit - Java's GUI kits appeared more targeted to dedicated GUI experts rather than general developers. Java assumed large teams in which individuals specialize in given packages. While perhaps useful for large-team projects, it frightened away smaller teams and individual multi-hat developers. (I suggest the Java team study commercial GUI widgets to learn how to simplify the developer interface.) * Poor integration with other web standards, such as HTML. * All-or-nothing down-loading. Java didn't make it easy to partition an app so that only the parts needed are downloaded. Thus, users could spend several minutes watching the hour-glass. Typical web apps only download an HTML page when it's clicked-on, not all up-front. (The next "partitioning" item may be related.) * Poor partitioning of server-side-versus-client-side running or execution. A developer should be able to run most on the server and/or client per need or preference. * Tied to a specific app language. Something like GuiMarkupProposal perhaps would have been more language-friendly. The markup language handles only typical GUI idioms/actions, and leaves most business logic to an app language. ----- EditHint: Merge or refactor with JavaAppletsSuck