The first Mac's had no memory management unit, so everything used Handles to allow storage to be reclaimed. And with no MMU, threading was a programming convention. Just like Javascript today, the application was single-threaded and used an event loop.
But what was really fascinating was the conceptualization and clarity of the UI component framework. Menus, windows, labels, buttons, etc. were all there. I'm not sure if Apple was the first to do things this way but they were the first to teach it to me.
30 years have gone by since then but not much has changed in the approach to UI frameworks over those years. We've had Windows Forms, X-Windows and Java Swing in that period as well. All have much in common with the framework organization found in the Mac.
Lately we've heard about thin-clients, web-apps, mobile apps, etc. X-Windows was designed for thin clients. People even sold X-windows terminals.
Anyone remember Java WebStart? It was a way of downloading and launching a thick-client Java application from a web-site.
The web has evolved but it never really had a true Web 2.0 version. Changes were done incrementally. The key non-change is that what is shown on the screen is what is in the DOM.
What has struck me about today's web application technology is that how much has remained the same with a few critical differences:
- The thin-client now runs in a web-browser and its native graphics abilities are relatively awful
- Server-side processing (what used to be done in worker threads) cannot easily notify the presentation layer that the model has changed. The client has pull and poll to get anywhere
- Bandwidth and communication latency are important. Bandwidth is somewhat related to total information transferred (cost factor for mobile devices).
In my next blogs, I'll look at how these differences are shaping our current architectures.
No comments:
Post a Comment