In the last few years India has emerged from being a small outsourcing destination to a large computing powerhouse (especially as far as programming resources and their critical skill sets go). Its one place that boasts of millions (not just thousands anymore!) of Java programmers. One reason for this growth has been the love for Java among enterprise customers up here in the United States, who outsource work down to India, and another has been the continued support from Sun and its affiliates (many of who train around its well recognized certification programs) in providing ample training and mentoring infrastructure in India. Yet, one more important reason has been the use of Java (over its traditional counterparts — i.e. C & C++) as the language of choice for instructional purposes in teaching programming languages at educational institutions. Finally last but not least, Java is easy to learn and there is too much out there on the web to help you get started :)

In the last couple of years Java has seen strong competition from two directions. The growth of Rich Internet Applications (Ajax and Flash platform based) got many Java programmers to use non-Java UI technologies with there Java servers and the advantages of dynamic languages (like Python and Ruby) lured the Java programmers away from the language towards efficiency and “more-with-less”. This phenomenon is global but local impact (in the United States) has so far been the greatest. However, it got me curious to see how these changes were impacting the millions in India. I started out by finding out the “State of Flash based RIA Adoption” by engaging in a conversation with an active developer and community leader to get a feel of what’s its like out there in the field. I plan to cover Ajax and the dynamic languages related discussion in subsequent posts.

Without further delay let me provide snippets of the online discussion I had with Abdul Qabiz, a person who actively spends a lot of time working on RIA and is a popular figure among Flex developers in India. He is employed with Yahoo! and let me mention upfront that his views and opinions are entirely his and not his company’s.

Hope you get an interesting insight into what’s brewing among developers in India. If you have questions, clarifications or comments then (as always) please speak up!

Here comes the snippets from the convesration —
(ST: Shashank Tiwari and AQ:Abdul Qabiz)

ST: Abdul, some of us have seen you as an active member of the Flex community, but could you please introduce yourself to those who may not know you yet!

AQ: I am a self-taught passionate programmer from India and have been involved with Macromedia/Adobe Flash Platform for over eight years. I have worked on various technologies and platforms, but Flash Platform is something that has always been close to my heart.

Currently, I work for Yahoo! Bangalore as Senior Web Developer where I focus on all web technologies not just Flash/Flex. I have worked in Adobe Flex team in Bangalore and contributed to Flex 1.5 and Flex 2.0 release. I was a Senior Architect in Mixercast, which uses Flash Platform quite extensively.

I am part of various flash/flex related group but flex-India is the place where I am relatively more active. I have a blog (http://abdulqabiz.com/blog), where I write about technology in general but particularly about the Flash Platform (Flash, Flex, FlashLite, AIR, etc).

ST: Could you tell us a bit about the Flex community in India. How big is that? How vibrant is it?

AQ: Flex community in India is growing day by day. For example, we had less than a hundred members in Flex India a year back and now the number has gone up to over a thousand (1000+). These are the members in just one of the groups (Flex India). These are members who take time to participate in mailing-lists, groups, blogs and more. I am very sure, there are more people who are actively doing development but not yet participating on user groups for some reasons (unawareness, busy or something else).

There is a large community of flash designers and developers, who are part of various smaller groups like iGeeks (formerly Indiammug), indimad, flashgroup and others, who are starting to use Adobe Flex/AIR.

I think, we would see more growth in the next one year. With Adobe AIR, AJAX developers would also become part of this growing community.

ST: What is you role in the organization (Flex India) ?

AQ: I joined Flex India as a member. Subsequently, I started helping Manish Jethani (founder of Flex India group) manage the group. Mrinal Wadhwa joined us in this effort too. The three of us manage the online activities such as moderation, announcements and group pages updates.

A majority of time, we are also participating by answering and discussing various Flex/AIR/RIA related topics.

ST: Is the Flex India group actively involved in organizing developer meets and seminars? Is it a place where developers come looking for jobs?

AQ: Flex India group has members who also participate in various local/regional Adobe user-groups. These regional user-groups organize regular meetings. BangaloreFx (Adobe user-group for Bangalore) had recently organized a large scale event “initRIA” (http://www.initria.org/) , which was successful and we saw members flying from various parts of country to attend it. Credit goes to Mrinal Wadhwa and Saurabh Narula who manage BangaloreFx.

Flex India group is an online group which connects developers from all parts of country and is a place to discuss and plan any large scale event, not just technical topics. We see lots of job postings, which surely help developers pick up interesting career opportunities.

ST: India is a programming powerhouse in today’s time and age. There would easily be over a million Java prorammers there. How many of these do you think may be getting inclined to learn Flex and why?

AQ: Since the Flex 2.0 release, I have seen that a lot of Java developers, who have started developing Flex applications. I don’t have exact numbers, however, I am aware of various startups, which bootstrapped with Java developers and successfully delivered some good Flex based RIAs. Some large service companies like Wipro, Infosys, etc, also have Java developers working on Flex projects.

There are many reasons Java developers find it easy to develop Flex based RIAs, some of these are:-

1) ActionScript 3.0 is very close to Java, in terms of syntax and usages.
2) MXML, an easy to learn declarative language, is kind of close to JSP (with custom tags for layout and presentation)
3) Availability of good frameworks (Cairngorm, FlexUnit, etc), which are inspired from and based on Java/J2EE patterns/tools.
4) Availabilitf of many open-source Flex and Actionscript libraries
4) Flex applications easily integrate with Servlets, Struts and other J2EE stuff.
5) Various data-service options (HTTP, AMF - Action Message Format, Socket, etc) helps
6) Adobe data-service servers (LCD, BlazeDS, etc) are based on J2EE technology stack.

BTW! Bruce Eckel, very well known in Java community, embraces Flex, which has certainly inspired/helped many Java developers to start thinking about Flex. James Ward, Flex Evangelist from Adobe, has been working closely with Java community to help them get started with Flex development.

ST: Are there enough employment options for these existing or budding Flex developers in India?

AQ: Yup! Flex developers are the most wanted :-)

ST: American offshoring is impacted by what Indian developers are adept with as much as Indian developers learn what the american firms desire.In this chicken and egg problem, where does the Indian developer community stand as far as RIA and AJAX go?

AQ: You are right, it’s a chicken-egg problem. Indian IT companies have been chasing the service model, which means, most of the time clients decide the technology. It continues to happen, we see developers being moved around various projects with different technological requirements. They end up learning various things but never get time to develop passion for any one. However, I am aware of many large service companies which have developed core-competency in various RIA technologies. Some of these companies are doing enterprise level Flex applications.

There are many developers who keep learning new things besides what they do at their day-job. Most of these developers are active members of Indian RIA community. I get to see and meet these developers in various events like Barcamp (), BlogCamp and DevCamp (http://devcamp.in/wiki/Main_Page).

We are seeing a lot of startups and entrepreneurs coming up, which is another reason RIA development is getting popular.

ST: Many smaller firms and startups are interested in leveraging the Flex talent pool in India. What would be your two cents on how they should go about hiring the right developers?

AQ: Adobe Flex is still a young technology compared to other technologies, so it’s hard to hire experts in a short time. It takes a lot of time to find and pursue an expert to join your startup. I suggest, hire smart guys (freshers or good programmers) and an expert, who can mentor/lead the team. Any one with good programming skills and web-application experience can pickup Flex/ActionScript and become a rockstar in a short time — the only requirement is to be open and enthusiastic to learn new things.

I hope, in couple of years, we would see a lots of Flex experts/rockstars in India.

ST: You are also an active supporter and contributor to open source software. What are your thoughts on Flex going open source?

AQ: I think, this is one of the best things that has happened to Flash Platform. Adobe has been thinking of open sourcing Flex since they acquired Macromedia.

It allows anyone and everyone to contribute to the development of Flex in ways that they choose. This would lead to a mature and better Flex SDK (tools and framework). There is already an open source flex/flash ecosystem, we know about osflash.org and many open-source flex/actionscript/flash libraries/projects on code.google.com.

Open source Flex would attract smart FOSS (Free Open Source Software) developers and lead to better tools, frameworks, libraries and so on. Any such thing is good for developers and Flash Platform.

ST: Do you think the common open source link between Java and Flex will bring any benefits to developers?

AQ: Adobe Flex development tools, part of Adobe Flex SDK, are written in Java. BlazeDS, another Adobe’s open-source project, is based on Java/J2EE. I think, we would soon start seeing some great integration and development tools which would allow better development/deployment work-flow.

We have seen how Java developers have been building various tools/servers (Red5) from scratch or by reverse engineering. Now with open-source Flex, things have gotten easier.

I can imagine end-less possibilities - open-source profiler, IDE, migration tools, integration tools, etc.

ST: Being a Java programmer yourself what are your thoughts on the Rich technologies that Adobe offers and the ones those Sun offers?

AQ: As far as I know, Sun’s offering doesn’t improve the designer-developer work-flow and just adds a new scripting language, that is not sufficient to create rich-user-experiences. If you look back, Applets were same except there was no JavaFX. Flash took off because of light-weight runtime, designers and developers worked closely to create rich user-experiences.

I think, Adobe’s offering includes various work-flows for RIA development, which leads to great user-experience. RIA is about Rich user-experience, which means compelling user-interfaces and interaction, there is no doubt that Adobe offers better tools to do that.

ST: Your love for Flex is evident but like all developers I am sure there are a few things that you don’t like about the technology. What are the top 3 things that you dislike about Flex and AIR?

AQ: There is nothing, I dislike. Both Adobe Flex and AIR are new, hence there is a room for improvement. I would like to see following:-

1) More Decoupling in Adobe Flex framework so that designers and developers can work on their pieces independently - better work-flow
2) Better support for Text (HTML and Bi-directional text) in Flash Player (Flex only).
3) Limited HTTP APIs in Flash Player - Need more support of HTTP verbs (PUT, DELETE, HEAD, etc)
4) Flex applications on mobiles and devices - a light-weight Flex framework and capable FlashLite and Mobile AIR runtime(s).

Adobe has been very open to discuss and listen, most of these things are already part of Adobe’s plan.

That’s it for now!