Join 3,512 readers in helping fund MetaFilter (Hide)


Client side web development with fancy graphics - what are the candidate tools? Which are going to "win"?
October 29, 2010 11:53 PM   Subscribe

I'm trying to get my head round the wealth of technologies available for creating "Rich" internet applications - featuring sound, graphics, interaction, animation - specifically from the client side. Flash, ActionScript, Silverlight, Expression, JavaFX, Java, HTML5, JavaScript, JQuery... In particular, I'm looking for the long view, preferably from people working in the field: what skills do you think you will you be looking for in new recruits a few years from now? And why?

I keep hearing flash is dead - but is it? JavaFX is changing - but how much? HTML5 is the future - but for animation, isn't that just the canvas element with JavaScript? What's the next Bejewelled Blitz going to be written in? How about FarmVille?
posted by handee to Computers & Internet (21 answers total) 12 users marked this as a favorite
 
Css3 can be used for animations.
posted by JonB at 1:01 AM on October 30, 2010


Javascript already works, jQuery, etc, just make it easier to build things cross-browser.

JavaFX has all the downsides of normal Java applets, including a smaller userbase compared with flash.

Flash isn't dead now, probably won't be in the future, and certainly won't be until all of the IE-using-masses upgrade to a modern version. How soon will that be? Flex has good support for building RIAs, with better deployment than java, and no dependency on IE.

CSS3 support will probably continue to improve, but what's the chances the IE team will get it right and deployed inside of the next 5 years?

So: javascript, flash.
posted by beerbajay at 4:13 AM on October 30, 2010


There really is no such thing as a long view in this field. Technologies are constantly changing, from the programs used to view pages to the hardware that runs them. Nobody knows what the landscape will be like a few years in the future. You have to be adaptive and able to pick up new skills, but that's pretty much true of any programming job.

Besides, your audience matters as much as anything else when choosing a technology. Look at these stats of Chinese users -- about 60% are still using IE6, and roughly 90% of them are using XP which means the highest version they could install is IE8 which doesn't support HTML5 and only supports parts of CSS3. They probably are on IE6 in the first place because downloading IE7 or 8 requires genuine validation which they fail. This is 2010, not 2004. If you were going to design a site that you wanted them to use, pretty much your only choice is Flash. But in the same 2010 if you want anyone on an iOS device to use your site, you can forget about Flash. So, audience matters too.
posted by Rhomboid at 5:24 AM on October 30, 2010 [1 favorite]


It depends on what you want to do, and who your intended audience is. I would expect that all of the technologies you list will still be active (ie potentially get you a job) in a few years. Some are on the wax, some on the wane, but all of them will still be in widespread use for something or other.
posted by contrarian at 5:38 AM on October 30, 2010


As someone currently involved in hiring web technologists, what I primarily look for is not tech centric.

I look rather for indications that the candidate is broadly technically experienced, is articulate and has demonstrated three abilities :

1) innovation - this expresses in previous tasks where she took initiative, defined and spearheaded new process, maybe managed a few people and achieved concrete goals. Also it's vital to me that if I need a new skills set in my team, I can count on at least one team member to figure it out, adapt and be at least competent with the skill quickly, at least so we can evaluate the approach.
2) self-direction - I want to hire folks who do not ask how high when I tell them to jump. I want them to understand why I told them to jump, what my reason was for saying so, be able to contextualize with current events and take it from there.
3) has the basics - I want everyone who is on my team to be computer and web literate enough that the rest of the team doesn't have to slow down so the laggers can keep up. Practically in the web world that means desktop power users who know networking, systems and debugging basics. Content devs should know html, javascript and css. They should be able to look up what they don't know. They should be able to consume and use team and company-originated best practices and design principles. They should know advanced concepts in design and implementation for their platform specialization (e.g. SharePoint development should know SharePoint services, ASP.NET, Silverlight on top of the basics).

Also in my experience even though I'd love to see some techs die, they don't. If I were asked or obliged to hire or cultivate an Assembly programmer who used Etc devices to program at some point in the future I'd be upset certainly but not actually surprised.
posted by kalessin at 5:51 AM on October 30, 2010 [3 favorites]


P. S. The reason I think I feel this way is that new techs seem to roll through with about the same frequency as the cycle of major implementation projects. Focusing on particular techs is something I leave to consultants. The folks I hire to my team should be folks I think they or I have a reasonable chance of continuing to cultivate and develop as the tech market changes.
posted by kalessin at 5:55 AM on October 30, 2010


html 5, css 3 + javascript, if you want a safe bet.
posted by empath at 6:15 AM on October 30, 2010


Agree with empath. HTML 5, CSS 3, JavaScript is the cleanest move. Probably set you up for 5 years or so. With JavaScript I would highly, highly recommend JQuery. So damn easy to use, lightweight, and it has a great community. Two thumbs up.

Java is definitely NOT the way to go. JavaFX is not that common either.

Flash is probably not bad, but the ramp up to get anything done is pretty significant. You need to buy flash developers tools and spend some time mucking with it, and, at the end of the day, you're using ActionScript in there as well.
posted by kryptonik at 6:53 AM on October 30, 2010 [1 favorite]


Dude, Google chrome frame means you can use all the HTML5 goodness as plug in, just like flash. So you can still use it in IE6 or whatever.

I would go with "HTML5" rather then flash. Although it seems like "HTML5" is just the label people are applying to HTML+Javascript these days. First it was DHTML, then Ajax, and now HTML5. HTML5 ads the canvas tag, which is a big deal.
posted by delmoi at 7:05 AM on October 30, 2010


HTML5, CSS3, JavaScript. It seems to be where things are trending, and where a lot of big companies are investing resources.
posted by chunking express at 8:05 AM on October 30, 2010


It wouldn't surprise me at all if future versions of the Flash IDE started to export projects to Javascript/Canvas as well as SWF - if that's the trend, Adobe will probably be working on getting a piece of the action.

Personally I'd say go with what you enjoy, because that'll inspire you to keep learning. Try to pick up new things and try out new technologies as you go along. Having a broad knowledge as well as a focus is a definite asset.
posted by le morte de bea arthur at 11:39 AM on October 30, 2010


I'm with kalessin. I hire for one of the world's largest companies. I'm not nearly as concerned with what RIA technologies you know as I am in seeing what you've accomplished with them. If you are creative, and technically inclined, I'll train you to use a specific toolset for a specific job. What I can't train you to do is be creative. Concentrate on demonstrating that you think fast, you think cleverly, and you can articulate your vision.

That said, I also think empath and kryptonik are spot on in suggesting HTML5 + CSS3 + JS. We can debate how long it will be before those are the dominant building blocks, but frankly, anyone who thinks those won't be the blocks doesn't know what they're talking about. Flash may have a place for some time to come, but it will be increasingly limited; learning Flash as a springboard to outputting HTML5/CSS3/JS is a waste of time. Learn how those things work without Flash as a intermediary, and you'll be better positioned for the market 5 years from now.

Along the same lines, don't start using jQuery (or any other JS library tool) until you clearly understand the underlying stuff. jQuery, et. al., are there to provide shortcuts and to shield you from the idiocies of cross-browser behavior; don't rely on them to produce functionality you would otherwise be unable to understand or create.
posted by OneMonkeysUncle at 12:03 PM on October 30, 2010


Not that this will come as a surprise to anyone, but you can take silverlight off your list for certain.

Flash still has its uses, but it's clearly trending down in favor of HTML5 (Adobe, who are not fools, clearly are preparing for this.)

Java has been a distant also-ran on the clientside for years and years. Personally I think Apple just signaled the last nail in its coffin.

HTML5 is the future - but for animation, isn't that just the canvas element with JavaScript

That and some CSS3 animation capability. (Just as Flash is "just" a plugin element with ActionScript.)

jQuery, et. al., are there to provide shortcuts and to shield you from the idiocies of cross-browser behavior; don't rely on them to produce functionality you would otherwise be unable to understand or create.

I get where this is coming from, but jQuery adoption is at this point so widespread, and it's so powerful, and the cross-browser idiocy it shields you from is so unnecessary, I wouldn't be surprised to see it turn into a de facto core element of in-browser javascript before too long. It used to be something I had to talk people into using; these days even my stodgiest corporate clients already have it. (Heck, even Microsoft is contributing to it these days.)
posted by ook at 12:42 PM on October 30, 2010


Just because nobody's come right out and said this, your list of technologies one might consider is kind of broken:

> Flash, ActionScript, Silverlight, Expression, JavaFX, Java, HTML5, JavaScript, JQuery


Actionscript is the language for scripting Flash. JQuery is a framework for simplifying Javascript development. Expression is an application for doing web development using other things already on your list, and so on.

So your question boils down to "things the browser doesn't do natively" (Flash, Silverlight, Java) and "things the browser does do natively" (the combination of HTML/CSS/Javascript).
posted by AmbroseChapel at 1:49 PM on October 30, 2010 [1 favorite]


Depends on what you're doing. For real animation, Flash is still king at the moment because you can do all kinds of things you can't do performantly with JS/Canvas yet. The best demo's are still pretty crappy games, while I've seen some amazing Flash games. Until canvas is hardware accelerated for the majority of people (as it is in IE9) it's only going to get used to render simple 2D graphics (e.g. charts)

For websites and applications, HTML + CSS + JS all the way. Flash was never meant to make full websites in; people just abused it as such. This is going to be the tech of the future because of the underlying principles and broad support from the major companies and browser vendors -- and mainly because it works for text content: content is separated from presentation. Added bonus: forms etc. work like they do in the other parts of your OS, allowing for a logical transition. (In Flash you'd have to recreate a scrollbar, for instance)

From a recruiter standpoint I'd look for someone who:

* Knows how to handle his computer (can type fast and accurately, knows his OS and others, can find information fast, masters his text editor of choice)
* Knows how to program - it doesn't really matter what language
* Learns quickly
posted by wolfr at 2:40 PM on October 30, 2010 [1 favorite]


>> jQuery, et. al., are there to provide shortcuts and to shield you from the idiocies of cross-browser
>> behavior; don't rely on them to produce functionality you would otherwise be unable to
>> understand or create.

> I get where this is coming from, but jQuery adoption is at this point so widespread, and it's so
> powerful, and the cross-browser idiocy it shields you from is so unnecessary, I wouldn't be
> surprised to see it turn into a de facto core element of in-browser javascript before too long.


Uhh, I think this is more in the vein of "know how memory allocation works before using garbage collection". In this case, it's crucial to understand the DOM API, javascript callbacks, etc before getting deep into JQuery and thinking it's all "magic". That approach works until something is broken, or you need to extend JQuery.
posted by mezamashii at 4:09 PM on October 30, 2010


HTML5 + CSS3 is just now picking up steam, so it will definitely be must know in the not-too-far future.

I definitely think that it will be several years before Flash starts to decline, especially for applications with heavy sound, graphics, and animation. IMO, the whole "Flash is dead" meme is really premature.

JavaScript and jQuery are must-know skills.

Java isn't really used for client side development, but a large amount of backend development is done with Java, especially for corporate IT environments, so it's good to at least have a working knowledge of it.

JavaFX, Silverlight, and Expression are going to be niche skills (not necessarily a bad thing, though.) Really, you can safely ignore JavaFX.
posted by kenliu at 10:56 PM on October 30, 2010 [1 favorite]


FWIW, I hear jQuery all the time in work discussions with our web developers/web designers. This utilization crosses the domains of Microsoft-based and Java-based and other platforms.

But I also think that the basics of the platforms you are using is equally vital as the specific APIs that I will train new hires to use, as well as demonstrable self-direction, creativity and self-will that I really hire for.

Also, if I had a dime for every time I've worked with a technology specialist who didn't understand the basics of how the user-level operations of networking (like connecting to different networks, knowing what they represent and how they connect to the Internet, as well as of managing hosts files and proxy settings), I'd have a tidy Christmas bonus and it's so unbelievably frustrating to hire someone whom you think of as competent and clueful and end up having to teach them the essential basics of how computers hook together and how applications integrate.

It's so tiring! So be sure you also have the basics well in hand before you specialize.
posted by kalessin at 9:41 AM on October 31, 2010


Uhh, I think this is more in the vein of "know how memory allocation works before using garbage collection". In this case, it's crucial to understand the DOM API, javascript callbacks, etc

Like I said, I get where it's coming from. But I literally can't remember the last time I needed to use the DOM API directly. I really do believe that jQuery is going to seem less and less like an extension that sits on top of javascript, and more just part of the language itself.

I know we're all supposed to pretend that in a pinch we'd be able to rewrite our web apps in raw assembly code; we've opened up every single black box to see its inner workings, we're on a first name basis with every turtle all the way down. But we all know it's not true. At a certain point you're going to be depending on something that may as well be magic. "know the basics" is always good advice, it's just a matter of what you choose to define as "basic". The parts of javascript that jQuery replaces are parts of javascript that I'm increasingly comfortable with the idea of never needing to think about ever again.
posted by ook at 5:32 PM on October 31, 2010


Many thanks for your answers - I was leaning towards HTML5 & JavaScript and this confirms my prejudices. You've also convinced me that I really need to look more deeply into JQuery.

Just in case any of you are still following this via their activity... here's a quick followup question: Are many people using dojo? Is that worth a look?
posted by handee at 12:47 AM on November 12, 2010


Here's an analysis showing significant market share for JQuery.
http://elie.im/blog/web/45-of-the-popular-websites-use-a-javascript-framework/

I've seen similar analyses elsewhere.

Note that just because something is popular (in the tech world) doesn't necessarily make it BETTER. Due to market pressures, you generally have to have working knowledge of the latest most popular tool or technology, but a lot of times having knowledge of some niche technology is going to be the thing that lands you a job.
posted by kenliu at 5:47 PM on November 12, 2010


« Older I was watching The Social Netw...   |  Where can I donate used (but s... Newer »
This thread is closed to new comments.