What is Flex?

[Warning: might contain geek subjects]

So, I recently (that’s 4 months ago) resigned from the advertising stress and insane (and unrealistic) deadlines, most times set up randomly (by braindead accounting people who have no clue about programming/flash/3d-rendering/whatever). That was the best decision I took for my career, since I was basically trading my social life for not learning or developing anything new, just executing, non-stop and actually getting behind the technologies changing every day. I add an offer at the time from the company I am working at currently, to develop applications (web and desktop) for the financial/trading markets. So my days are spent now with a few of the things I was dealing with before (PHP and Flash) but mostly with something new to me that I am loving to work with, challenging and rewarding: That’s FLEX (developing with beta 3R3, soon to be an official release). And by the way, it makes a huge difference when your boss and accounting people understand how things work and grasp what programming and the technologies involved are.

To everyone who keeps asking what that Flex thing is, I found this post which explains it really well, from Ted Patrick, on his great blog:
Quoted:

I have wanted to cover this basic question for a really long time but it is a very hard question to answer. Flex is many things but I wanted to put a definition out there to help everyone see what it is, where we are headed, and why we created it. With all my presentations I start with “What is Flex?” and it is about time my blog had the same information. So here is my definition:

What is Flex?

Flex is a way to make SWF files!

At the heart of Flex is the ability to create SWF files that run in Adobe Flash Player. Distill all the features down and really it is a development paradigm that compiles to SWF. It really is that simple but often we make the definition much harder. Just like Flash can create SWF files, so can Flex but the way you develop is completely different.

Flex is for developers.

Flex was not built for animators, writers, accountants, it was written for software developers and the paradigm matches the development methodology you already know. If you know Java, C, C++, C#, Delphi, VB, PHP, ColdFusion, Python, Ruby, you can learn Flex with little effort. The goal when Flex was created was to make a development paradigm that developers could learn easily/already know and have that create SWF files for Flash Player (and now AIR). Flex has classes, components, a compiler, a debugger, class libraries, and uses XML (MXML) for declarative markup of components. The ActionScript programming language is based on ECMAScript 4 (the language standard behind JavaScript) and has full support for the ECMA XML standard E4X. It also has most of the UI components that you already use like buttons, lists, datagrid, combobox, tree but it also supports containers like HBox, VBox, TabNavigator, TitleWindow and many others. If you have written software before you can learn Flex easily. Better still is that Flex is compatible with all HTTP servers and any server side programming language, so the knowledge you have of servlets, php, ASP.net, JSP is really handy. Flex just lets you program the client side in a paradigm you already know and understand.


Flex is for making applications…

Flex was built for making rich client side application behavior. It wasn’t built for making web pages, banner ads, or server side logic, it was built for creating client/server applications that run over the web. Now these applications can look great but they do need to do more than just layout text and graphics otherwise Flex might not be the right tool. Flex has been used to make some really great apps like Buzzword (Document Editor like Microsoft Word but in the web) or Picnik (Photo Editor/Manager for touching up your best snapshots) or SlideRocket (Presentation software like Apple Keynote but in the web) or Oracle Sales Prospector (An enterprise ERP application. Yes Oracle uses Adobe Flex! ) or many other applications you can see at Flex.org. The real key is that all these examples provide an application experience just like desktop software.

that run on the web (Adobe Flash Player)…

Flash Player 9 is installed on more than 95% of computers that use the Internet and has been installed more than 3,500,000,000 times at a rate of over 10,000,000 times per day. When you develop software, you want it to run compatibly in as many places as possible. Adobe Flash Player provides a solid foundation to build these experiences without the need to install or update anything on the end users computer. If you were running a store you would want that store available to as many customers as possible and choosing Flash Player allows you to provide a great experience (rich) to 95% of the web (reach). Make sure to look at the reach of the technology you select, if you choose something not widely installed or incompatible, you are simply turning away customers and business.

,on the desktop (Adobe AIR)…

Adobe AIR is a new runtime in development by Adobe and we are very close to releasing Adobe AIR 1.0. AIR allows you to write desktop software that runs on 3 operating systems (MAC,WIN,LINUX) with the same file. This allows your application to be a true desktop application rather then just a website and allows you to do much more than the web allows today. AIR applications are real native desktop applications and provide API’s for writing files, drag-drop, system notifications, network detection, and more. AIR empowers developers to write desktop software that leverages the Internet.

, or on mobile devices.

We are working to allow Flex to run on mobile platforms and support a wide range of devices. Just as Flex can be used to write a web based application or desktop application, it can be used to write software for mobile devices. The fact is that devices are becoming ever more powerful and more plentiful. It is just a matter of time before we enable developers to leverage Flex to deliver mobile applications on Flash Lite or AIR on mobile.

In summary, Flex is a development paradigm that allows you to write software for the web and desktop that many people can use compatibly today. It leverages the tools, servers, and development models that you already know and allows you to write the next generation of software compatibly. At Adobe we are working around the clock to make this ecosystem of software better and provide you with the best tools and platforms to make your projects a success.

I encourage you to take a fresh look at Adobe Flex and discover the opportunity in learning a new language and ecosystem. Developers around the world are embracing it to create all sorts of new applications and I think you should jump in too.

My biased answer:

Flex, A development platform that is revolutionizing how the world writes and deploys software!

Cheers,

Ted :)

One Response to “What is Flex?”

  1. Sonia SWEDEN Mac OS X Mozilla Firefox 2.0.0.11 Says:

    ok, well I think that when Xavier desribed you as the “Alfa Geek” he wasn’t overreacting…I have studied some of this stuff, but if I was to understand it completly I can say that I would have to google around…eeh…let’s say 80% of the terms…Thanks for the explanation anyway…now I really feel like my website is going to take of!…(NOT)
    LOLOLOL

Leave a Reply


Close
E-mail It
Socialized through Gregarious 42