Anyone who's been in this industry for a long enough period of time will notice the trends that happen over and over.
In the days of the mainframe, centralized processing ruled. Then, things turned more to distributed processing with the popularity of PC's in the 80's. The 90's come along, and with it, the Internet became popular. All of the sudden centralized processing was back in the picture. Now we are beginning to see rich Internet applications becoming popular once again. And so on...
When will people stop to think that there is no perfect solution? There is a time and place when server side processing is better. There is also a time and place when client side processing is better.
I, for one, am extremely tired of the dull and dumbed down web applications out there. I have developed my fair share. Don't get me wrong, they are useful. But most of the time it is no way to write software.
What happened to the good old days of Forte Tool development? Anyone who has experience with it will remember the fantastic design and architecture of it. Why did things go from that to dumbed down web applications with HTML postbacks and poor mechanisms?
I think the answer is because of a trend. Something "new" is developed, that is the best thing since sliced bread. In the 80's it was DOS and the PC's. Suddenly one could afford their own personal computer instead of needing a mainframe (anyone out there remember good old Tron?). Of course, the Internet became popular in the 90's. This suddenly required a major change in the way we think. Unfortunately HTML is what became the standard. Next it was Javascipt that tried to "remove" the dumbness of the web browsers. AJAX came along, which is a client on crutches (i.e. Javascript). The whole HTML process needs to be slowly phased out and replaced with something better. We need rich and powerful client applications again.
So far, I'm very impressed with Adobe's Flex for creating Flash applications. The Flash player really has its act together. It is lightweight, appears to be very robust, and very high performance. On top of that, it is crossplatform and can even run outside a web browser (AIR). Microsoft is trying to sneak into the market (what else is new) with their Silverlight. I'm not sure how much share they're grab, but I'm sure it will be like anything else they do (lock in some clients by selling how great it is, only to abandon it later and make the clients shift to the next greatest thing).
What needs to happen is for people to begin focusing on architecture more than development. By layering a system or application, one is "safer" when investing in a new technology because they don't have all their eggs in one basket. I used to be paranoid about having a product written in more than one language. I have recently realized this isn't as bad as it seems. If the system/product is architected well, various layers can be phased out and replaced fairly easily.
Let's develop systems that give the user what they want (i.e. not a dumb user interface that is HTML in a browser). A pretty and high performance user interface, backed by a robust network and server. I personally am leaning to Flex (Flash) on the front end, with Web Services as the network/receiving layer along with Java on the backend for persistence and processing.
Flash is very lightweight, so it downloads very quickly for machines that don't have it. It utilizes the CPU very efficiently. It also happens to have an excellent XML parser, which lends itself to utilizing Web Services on the back end. The Web Services are of course crossplatform wizards, so this layer is safe in case you need to change the front or back end. By being Java on the back end, one has the ability to run on pretty much any popular platform (plus take advantage of many open source or third party products because of the maturity). Plus you don't have to pay Microsoft anymore for development tools or operating systems. Don't get me wrong, I'm by no means a Microsoft basher. I develop in ASP.NET, C#, and VB.NET almost every day. I think C# has some advantages over Java. .NET makes it extremely easy to create Web Services and to consume them (Java, listen up - AXIS is the next best thing but it isn't as good). But the crossplatform capabilities of Java just makes it worth it.
Anyway, I think we're going to continue to see a shift toward rich Internet applications. Possibly seeing desktop icons eventually that takes one straight to an Internet application (doesn't run in the browser but utilizes the Internet never-the-less). But how long will it last? Probably just long enough for the next big fad to come along and start shifting it toward being "dumb" once again (wait, has Microsoft already been doing this with SharePoint?)...
Friday, April 4, 2008
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment