Some time ago, on a previous incarnation of my blog, I mentioned the subject of web apps. At the time there was a lot of debate (and still is) about which technology was best for web apps. AJAX was really beginning to take off, Java was sticking firmly to its Enterprise world, Adobe were releasing Flex and Microsoft responded with Silverlight. In addition, there was (are) a zillion different toolkits and frameworks in various languages (Ruby, PHP, Python, Perl…)
Now everyone is entitled to their own opinion, but for me the main decision comes down to “what sort of site are you building?” If you are building an information site where people click around and read stuff, maybe fill in a contact form or post to a forum – that style of app is served very well by a combination of HTML, DHTML and JavaScript (even AJAX).
If you’re building an online equivalent to a desktop application – HTML and AJAX suck – end of story. I’ve written thousands of lines of code using this more traditional style, and it is a serious pain in the backside. It’s the biggest reason I have long held out hope that Java would become the dominant web app technology. A Java app can be programmed in the same way as a windowed desktop app, can maintain state, and can be made as robust and responsive as any desktop application.
But there is a huge problem with Java, for me anyway; it feels too thick and heavy, and all the goodies that help people create Enterprise solutions with it seem to get in the way of “Rich Internet Application” development.
So what’s the answer? HTML is too fragile, Java is too heavy – Silverlight? No thanks – I’ve been a Windows programmer for a long time but there’s something about dotNet, and Silverlight in particular, that leave me feeling underwhelmed – but that’s another topic entirely.
The technology that has won me over is Adobe Flex. I know some people have issues with Adobe, but I have used it for a number of apps now and it strikes the right balance; it’s not too heavy, but it supports the creation of very attractive and usable interfaces, easily. Coming from a background of classic client-server development, data-aware controls, and the like, one of the things that threw me initially was the complete lack of any database capability. This actually turns out to be a major strength of Flex.
Even when the pressure is on, you are forced to create a system that separates database code, and presentation layer. You can still hack the business rules in multiple places, but the fact that you are forced to make SOME separation in your code, also discourages you from making “dirty hacks” that are so easy in an environment such as VB or Delphi.
You are also free to use whatever server-side technology suits your experience and/or needs. Implement a fully-fledged Java application server, a Ruby on Rails app, a custom set of PHP scripts, or a SOAP interface in ASP.NET. The choice is yours, the list is endless, and the difference to your Flex application is relatively minimal.
Is it perfect? Of course not, but for my money, when it comes to creating interactive desktop-style web applications you’ll find a good solution with an Adobe Flex RIA, and simple HTTP/HTTPS communication with business/data layers coded in PHP on the server side.
As you read through this blog, you will detect a heavy bias towards online business. This reflects my own personal interest in the subject, and efforts to assist others in achieving success. But online business is only part of the “Tools, Information and Opportunity” story that underpins Avallach Technology.
My other burning desire relates to my background as a software developer and long-term computing enthusiast, and the emergence in recent times of the Free / Open Source “movement”. It’s been a real joy to watch the Linux world evolve from providing out-and-out geek hobbyist toys (powerful, but useless to any non-technical person) to well-rounded distros such as Ubuntu and LinuxMint.
I’ve hovered between these two distros for a while now, having become a Debian fan some time ago, Ubuntu really caught my eye a couple of years back, and I then encountered Linux Mint. Mint is based on Ubuntu, but attempts to create a more usable “out of the box” system, with a cleaner/nicer look and feel. For what it’s worth, I think the Mint developers have achieved what they set out to achieve – in many ways, Mint can easily claim to be a better Ubuntu.
But I still come back to Ubuntu for one simple reason – the time delay between a new Ubuntu release and corresponding Mint update. This isn’t a criticism, just a reason. Hopefully the Ubuntu team will create a different default theme at some stage (in fact I believe that is slated for 9.10), thereby removing one of the main reasons I prefer Mint.
There’s something still not quite right with Linux though – it’s not /quite/ ready to achieve its full potential on the desktop, home or business. The main reason, in my opinion, is an apparent lack of business applications. Now before people start shouting about Open Office, various open source mail clients and all those other wonderful general purpose, “horizontal” apps, I am talking about the more “specialised” business applications that are used on desktops across the globe; payroll, HR, accounts, asset management and specialised database apps in vertical markets.
Once that is solved, and Linux starts to penetrate the small to medium business desktop market, the penetration of the home desktop market will follow. Firstly people will be more comfortable with Linux, having used it at the office, and secondly the creation of business software will probably flow through to apps for home use.
I personally believe we are a long long way away from working with computers much differently than we do now – at the small-to-medium business level “cloud computing” is unlikely to have a huge impact. The biggest change I think we will see in the short-to-medium-term, is that Linux will become the dominant desktop operating system. That’s been promised for a long time now I know, but I still believe it WILL happen, eventually.
Based on what we have today, I personally would love to see Ubuntu become the operating system that kicks Windows off the throne. The efforts and vision of Mark Shuttleworth will be appreciated for many years to come I am sure. It is for this reason that Ubuntu is the “standard operating environment” (SOE) adopted for Avallach Technology, and why one of the things Avallach will be concerned with is creating business software for that environment.
It is envisaged that the software develooped will ultimately help create greater depth to the Ubuntu desktop. With continuing efforts being made with the operating system itself, and active development of business apps, the potential of Ubuntu will finally be realised.