Adobe AIR has gotten a lot of online coverage lately and that’s a good thing. I’m an absolute fan and before I tell you why, let me tell you about the biggest perception mistake most being made about it.
I have found – on a number of occasions – articles comparing AIR and FLEX to Java and .Net, as if it’s another development suite trying to compete for space with the establishment (the incumbents, Ahem!!). I’ve made the same mistake too and this is far from correct.
The comparison is understandable if you are comparing application development on FLEX – in Flexbuilder – where you can develop anything in ActionScript3 from a small application to an enterprise monster. Your application can then be compiled to run inside a browser in a Flash player, or it can be made into a standalone desktop application.
To speed up development, it has time-saving components and libraries too.
So what’s the fuss? Java and .Net have been doing the same thing for years and they have far richer libraries than Adobe’s toy!
Correct.
You’d also be right to think that other similarities between these development suites pit them against each other as competitors. All three make heavy use of a specific runtime environment.
So they do compete, right?
Sort of, and the mistake comes in thinking that this is where the story ends.
This next part explains why I’m so excited about Adobe’s offering (soon to come out in the incarnation of FlashBuilder4 and FlashCatalyst).
The big difference is that Adobe’s suite aims to extend the reach and prowess of the web developer, while the others are made for a different breed, including folks who can hold a whole conversation in hexadecimal code (not that web developers can’t do this, but you get my drift).
To do this correctly, Adobe had to keep in mind the typical type of person who would be attracted to their tools, one I’d like to refer to as the Social Geek. Let’s call this type of person MASH, because they are increasingly aware that the best solutions are often a result of a multivendor mix. This person would be:
- Purely focused on web applications
- Someone who’s not too crazy about attaching their skill sets to a brand name (e.g. I’m a Banana™ certified developer)
- Someone who detests walled gardens (where software is concerned) and is always pleased to see them crumble
Right, let me tell you what’s so different about Adobe’s offering, and why that difference is so exciting and so powerful that Microsoft(.Net) and Sun(Java) are playing catch-up on similar development tools.
How does Adobe’s suite
play to the Social Geek’s tastesappeal to MASH?
For one, the development runtime is Java and the development environment is Eclipse – the most widely used open-source development environment by professional developers. It’s already the best and well supported. Why re-invent the wheel?
Whether, you like developing in Java, Python, Perl, PHP, Ruby, HTML/JavaScript or a host of other languages, Adobe’s tools welcome you with open arms. You are presented with so many options for bringing your web applications to life.
And here’s the kicker
You are not limited to the web browser
For the first time, this tool opens the doors for web developers to venture into the world of desktop app development. The compiled applications run on Windows, Mac, and linux without the need for porting and they can seamlessly integrate with online applications as well as run offline.
Update: Take a look at this basic example to get a better understanding.
When you consider the fact that Adobe’s other tools are market leaders in the rich-media space, you start to realise that never before has the web developer been given so much power and so many options speed away into the future.
Open-source, open everything!
That’s exactly what modern web developers like to hear, and they’ve already started supporting the environment by building AIR applications. A good example of this revolution is the growing number of Adobe AIR desktop applications for twitter. There’s a new one almost every day and we’re only just seeing the start of the web developer’s foray into much more serious applications.
Even though there are still some issues with memory leakage and performance, these are minor issues and something we realise will be fixed in future releases.
Instead of competing with Java and .Net, the Adobe suite aims to co-operate with all. The idea is to make new connections and build upon existing ones instead of cornering the market.
Naturally there will be technical hiccups with such a big undertaking but that I can put up with for the sake of the bigger picture.
Even giants like SAP and Intuit have built tools to make it possible for web developers to make AIR applications for their own platforms.
With the unprecedented upsurge of Social media, Microsoft and Java have realised the need to give more power to the web developer, and are already working profusely on their development tools to make this happen.
Instead of new walls going up, existing ones are being demolished
That’s got to be frightening for traditionalists. It’s still early days and I can’t wait for tomorrow.
I’m more excited about the philosophy and thinking behind the software than by the tools themselves.
That said, am I the only one that thinks we’re talking about a game-changer here? Where do you see all this going?
According to Aaron Newton of Clientcide, this is not the question to be asking.
And I happen to agree with him.
These two frameworks just aren’t trying to do the same things. They overlap in the functionality they provide, but they are not trying to do the same things
MooTools is aimed more at JavaScript developers, while jQuery is more for people who want to implement JavaScript functionality in the easiest possible way.
jQuery is for people who aren’t necessarily interested in delving deep into JavaScript while MooTools provides an object-oriented framework for hardcore JavaScript development. This is why most people find MooTools harder to use in comparison to jQuery.
jQuery makes working with the DOM easier. MooTools makes working with all of the JavaScript language – not just the DOM – easier.
Both are fantastic libraries/frameworks and I think the better question for you to ask is
Which one should I use for this project
This can be determined by circumstances beyond your control e.g. The project leadership has already selected a framework for you, or the application development framework you are developing on is already using one over the other – and you may wish to avoid bloating-up your application with multiple libraries and increasing load times (not to mention script conflicts).
Here’s an example of what the world’s most popular PHP content frameworks have chosen:
Drupal - jQuery
WordPress - jQuery
Joomla – MooTools
I work in each of these environments and I recommend to anyone doing the same to view jQuery and MooTools as tools – not competitors. You might simple prefer the one over the other, at the end of the day they are just JavaScript; and there’s a right one (tool) for the job at hand.
I also recommend learning pure JavaScript. It’ll give you a better understanding of what’s going on under the bonnet and you’ll find it easier to work with other JavaScript abstraction libraries. I’ve found my copy of JavaScript Bible – 6th Edition to be quite a handy mate for occasional reference.
How do you see this debate?
Aaron Newton authored the book: MooTools Essentials: The Official MooTools Reference for JavaScript™ and Ajax Development Read the full jQuery vs MooTools comparison here
I’m not an English native. Neither are most people who find themselves communicating in English just to participate in the world economy. So why don’t I speak English like a “darkie”?
Well, back in high-school my English teacher always insisted that we speak, read, and write English as if it was our mother tongue. This was met with resistance by some of my classmates and the protests flew hard and fast:
Well be abandoning our culture!
It’s unnatural!
I’m wont speak in a fake accent!
Nēvah!!!
To me, her instructions made a lot of sense. Everything, EVERYTHING around us requires a fair knowledge of English: TV sitcoms, music, movies, even a bar of chocolate! You need to be know clear about what’s in front of you and what’s entering your ears.
That covers the reading and understanding part, but what about the speaking and writing part?
What’s wrong with speaking English with an African accent?
Nothing, really. Except that I personally found it hard to differentiate meaning when uttering certain words in an African accent, so I chose to follow my English teacher’s advice.
When I say “Durban Beach”, I want it to be clearly understood that I’m referring to a piece of land that meets the ocean, not a female dog from Durban. Depending on the circumstances, someone could get deeply offended. I like my face the way it is, thank you very much, and I don’t want something as silly as mispronunciation to invite a cause to have it re-arranged.
So there you have it. I always make an effort to differentiate meaning in the way that I speak. The way I speak english is purely because I want to communicate clearly in the language. It’s important to my work and to business (and for staying in one piece).
It has nothing to do with me trying to be something that I’m not, or trying to appear holier than thou to my African peers. That might be the sole purpose of some who speak that way, but I’m unashamedly proud of my origins.
I speak African languages I know in their natural accent. (Sesotho and isiZulu have very different accents). English is a different language. Speak it so that it can be clearly understood. This will cause less confusion for you about the spelling when you need to write it.
If you are one of those people who have a problem with non-african-accent-african-english-speakers, you’ve just found a different angle to factor into your annoyance equation.
It may not be a fake accent and some of us are not posers ;P
I could say “Beach” or “Sheep” without considering its intended meaning, but I carefully choose not to.