Why do applets have such a low adoption level, compared for example against Flash? Is it because they are technological disadvantages, or is it just an issue of popularity?
I'll assume you're talking about Java applets.
I think one of the biggest advantages Flash had with adoption was one single development environment with attractive and easy to use tools. This was complimented by an abundance of training material. It is also basically single purpose, whereas Java has an enormous variety of uses and target audiences.
The Java environment is heavy and unwieldy.
It takes several seconds for it to fire up and start running and it's usually a burden on CPU and memory.
Flash on the other hand is considerably more lightweight.
Another factor is that Java applets are usually less visually attractive than flash.
Back in the 1990s when Sun introduced applets to the world, the JVM was slow, and applets were slower. Think "wait fifteen minutes for it to finish loading" slow.
Slow technologies are dead technologies. Speed wasn't the only advantage that Flash and its ilk had over Java applets, but it was a major contributor to their decline.
As mentioned, applets are somewhat heavy and old-fashioned. Sun is now trying to push JavaFX, which could well be the "next Flash".
Up until quite recently, Java applets were fairly heavy. Any Java Applet requires the JVM to start up and load the applet, which can take some time on a modern machine and was even slower on the machines that were around when Java was introduced. Additionally, Java Applets are a bit more of a complex beast compared to Flash and there are a number of issues that arise as a result (ever need to sign your applets? it can potentially be a huge pain for the developer). Also, Flash quickly developed an ecosystem of products that did what people wanted (fun graphics!) quickly and easily, whereas in Java, anything other than buttons and checkboxes (stuff already provided at the base browser level) required some more work and did not have nearly the support that flash did.
One point everyone seems to be forgetting: Originally Flash had a very designer oriented work-flow, so many graphical designers jumped on board and made cool looking stuff, which Internet-users found fun, so they would download Flash, and the community grew.
Java Applets on the other hand were targeted at programmers and enterprises, and that was fine, but boring to the average user. And on-top of that the script kiddies of the time (myself included) made Applets that leaked resources and/or froze the browser, and even other more skilled kiddies used the powers of Applets to create traps, and harmful websites, so most Internet users wouldn't enable Applets.
So in the end it was probably the target developers (graphical designers vs. programmers) of each platform that caused the issues.
Generally they are heavy, slow. Lot of them are plain ugly (early Swing looking like Xaw or Motif). The difference is, that the Sun is company which deals with heavy iron and corporate business, while Macromedia and Adobe are companies which always have dealt with graphics designers. So the Flash had the "wow factor", applets did not.
Installing and managing the multiple Java runtime versions required on your PC was a bother that most users didn't want to go trough, either. If it doesn't work out of the box, forget it!
Java was greatly disadvantaged simply because it was complicated to download and install for common users.
Potential users would be offered multiple versions of the Java package, including SDK's and so on. That would scare off most users who just wanted to quickly view a simple applet.
Java has fixed this and now java.com has a one-click plugin download. Flash had this from the start, and I wouldn't be surprised it contributed for part of it's success.
Java vs Flash then and now:
Then:
- Flash had a single-click installer that took 2 minutes to download and run. Java had an installer that took 10 minutes to download and run.
- Flash applications loaded in less than a second. Java applets took 10 seconds.
- Flash applications tended to be self-contained and would "just work". Java applets tend to refer to external resources. Broken links were frequent and the applet engine was plagued by stability problems that could sometimes take down the entire browser.
- Flash adoption was at all-time high because it shipped with Windows. Java did not.
Now:
- Sun rolled out a single-click installer called Java Kernel that takes 2 minutes to download and run.
- Java6 update 12 loads applets in under a second.
- Java applets now run in a separate process than the browser and the engine has been rewritten from the ground up. Stability issues are a thing of the past. Unfortunately, the web is still full of old applets containing broken links.
- Java ships standard with most new computers. Java adoption rates vary from 70% - 90% depending on who you talk to. Feel free to measure your own website.
The one big difference that remains is that Flash has better artist-oriented tools than Java does. That being said, there is a huge range of software that you can write easier and more efficiently in Java than in Flash. Java is a far more mature and scalable platform. You will see many people using Flash for ad banners, but far more people using Java for full-fledged applications or games. For example, compare 3D rendering support in Java versus Flash.