Here is my second developer interview. I’ll be rolling more out in the future but pretty slowly since I’m tailoring my questions to the developer at hand. So stay tuned for more.
Thanks again to +Jesse Freeman for taking the time to produce some great responses.
What projects are you working on right now and what are you using to build them?
I have been all over the place at Roundarch lately. I recently finished up a huge Flash project then went right into a native Android app and even had to help out on a custom WordPress project for the front end of an enterprise app. Outside of coding I am involved in pitches and research. There is a lot of mobile on my plate as well as HTML 5. Flash/Flex is not so common for me but people keep telling me it is still being asked for. I do try to pitch AIR for mobile when I get the chance since right now it is still the only multi-platform game in town that I feel comfortable with. Outside of that I always say go native but have even dabbled with PhoneGap a bit as a backup plan.
You’ve worked on all types of projects, from enterprise-level applications to casual games. What area of development do you enjoy the most?
I really have a passion for making games. That is actually how I got into Flash but I quickly realized there was no money in it so I started doing agency/enterprise work. Now I focus 100% of my free time to making games for the web and mobile. I have a long ways to go before I will probably make a successful one but I need all the practice I can get. I am great at the technical part but I am still trying to find that magical formula for fun. Right now mobile is big, especially for casual games. It’s a good time to try and be part of the mobile indi/casual game market since trying to monetize web games was never that lucrative. Don’t get me wrong, devs can and have made livings off of Flash based web games but people are spending more time on their phones and tablets then their computer or TVs now a days.
At first I was really opposed to doing Java Script. After spending years understanding Classes, Design Patterns and building large scale web applications it felt like a total step back to the stone ages. Over the last two years I have worked very hard on being able to understand development and be language agnostic. It wasn’t until recently that I could look at a language and not try to compare it to ActionScript which is what I primarily worked with. Now that I have this perspective shift I see the strength and weaknesses of JS in a new light.
There are some aspects of the language that are truly freeing. Then I hit a wall because I still cling to the what I am comfortable with. In the end we all have to accept whatever the next language is with open arms. At least for now it looks like Java Script is what will take us in to the next cycle of web development while Flash slowly (or quickly depending on how you look at it) becomes even more specialized.
If you can keep an open mind while learning a new language you will pick it up a lot faster. It’s important to try and stay positive and challenge yourself with tasks you can accomplish. In the past I would bite off more then I could chew with a new language and flounder. With JS I am taking it nice and slow and at my own pace. Also having a solid IDE like PHPStorm or WebStorm which has code hinting is monumental in easing the burden of learning JS.
A lot of people are uptight these days when it comes to technology discussions. Why do you think people get so defensive about a specific technology?
I once had a teacher who said that when you do something more then 3 times it becomes a habit. Think about how much repetition there is in development. Programming is a very personal experience for people. In order to be good at a language you have to be close to it, speak it and understand it. Developers form a special bond with the platform they are working on and when something disrupts that balance they tend to lash out. I probably spend more time with my code then I do my wife, my kid, my family or my friends. That’s a lot of time to spend with something and you grow to love it.
Programming languages come and go, they all have their own life cycle. Not to get all spiritual on everyone but it does become like a religion to some people. It also doesn’t help that the companies that develop these products brain wash their user base into thinking their platform is the best one out there and sometimes go to great lengths to bring down the competition. It is all marketing at the end of the day, companies are selling developers a dream and it’s heard to stop drinking the kool-aid. I can clearly remember how hard Adobe’s stance was on Silverlight yet when Apple called them out for their own faults they cried foul.
There will always be those people who can’t move on or choose not to when a platform is nearing the end of its life cycle. There was a huge rift between Director and Flash developers until it was clear that Flash was going to be the winning platform. Adobe still supports Director to some extent so these things die slow and painful deaths. Sometimes it’s hard to see the end of a platform because as more people move away from it there is an over abundance of work since less and less developers are around to do it. Eventually that work becomes maintenance and who wants to be the last one at the party. I guarantee if you can find director work you will be highly paid, not because it’s “in” but because everyone is out.
In the end you need to look past the marketing and find the platform that is right for you. Some people pick languages that have no commercial value simply because they are fun. Others go where the money is. The worst thing we can do is be critical of other languages or developers who chose to explore new languages. This is exactly what is going on in the Flash community and it will be the thing that tears it apart. What is even worse is that Adobe is doing little to help ease the rift between those who feel abandoned and the ones who are still making a living with it.
Eventually when a company doesn’t see a return on investment for a platform it gets canned and everyone feels cheated. Even bringing this up and making people nervous about it sparks all kinds of emotions. Just look at how large of an ecosystem depends on a development platform and you can see there are a lot of things at stake when it is threatened. People lose their jobs, their entire living could be flushed down the toilet just because a company failed to maintain it’s hold on the market.
Do you still prefer WP7 as your main device OS and are you developing for it?
Adobe Flash is still very widespread, but the tools and support are arguably lacking. C# and Visual Studio are obviously amazing, but its products lag behind. What can either of these companies do to help perfect that cycle?
One day I am going to sit down and finish this series of articles I have been wanting to do where I talk about how I would run companies like Microsoft, Adobe, RIM and others. To say that Flash’s tools are lacking is an understatement. Just look at 3rd party IDEs like FDT and IntelliJ and you will see how far behind Adobe is on their own platform. Even worse is the fact that Unity 3D will be compiling to Flash so that will be the only real solution for a 3D IDE for Flash. Adobe continues to dump so much money into Flash Builder yet a much smaller team maintains IntelliJ which handles countless languages with ease. Adobe doesn’t have a strategy for building developer tools, and the fact that all of their IDE’s still don’t work together is a clear indication on how dysfunctional their future vision for their products is.
Adobe needs to learn how to become a developer IDE company or buy a company that understands what developers want. Microsoft is the exact opposite, they build the best development tools out there, they treat their developers with respect and actually listen to what they want. That kind of dedication to their community really shows through in the tools, the language, and the entire platform. The only problem MS has is that they like to kill off their platforms as soon as they mature. WFP to Silverliight, Silvelright to HTML 5, who knows what’s next? They are a wild card right now with this move to Windows 8 being JS and HTML based. We’ll have to see what they are planning on doing with C# and .Net in September at their Build conference. I’ll be there of course, I think they have an ace up their sleeves. As for Adobe if they can’t migrate Flex over to being GPU accelerated through Stage3d in the next 2 product cycles they will lose any foothold they hope to make in the mobile space. By the end of the year every major mobile language will be hardware accelerated except for Flash.
If you could choose one programming language to rule them all, RIGHT NOW, what would it be?
True or False, Canvas games will overtake Flash games by 2013?
WP7 will eventually take off and Visual Studio will be on all of our computers.
True (If every computer is a PC)
Adobe AIR will become a wildly popular solution for cross-device development.
People will eventually get along and start being creative again.
Apple is evil.
Thanks!Read / Write Comments