views:

269

answers:

8

I'm fairly new to this whole web-development thing (2 weeks maybe, my 1st scraping of code exists here, I quite like it) and I ended up learning to use Adobe's Flash Builder 4, which I have come to quite like (although Action Script annoys me at times).

Recently however I've been reading a lot about "the future" of web development, RIAs, web 2.0 etc, and it appears the whole Flash/Flex/ActionScript frame work's main competition will be the HTML/CSS/JS stack (or "HTML 5").

So obviously I don't want to take the time to learn a language (Flash/Flex/AS3) that will end up dead in a couple of years and end up having to learn another one (HTML/CSS/JS), when I could just move over now.

My main interests are fairly information rich (database orientated) web sites, with high levels of user interactivity for customisation, uploading, etc. I like the whole mobile web aspect, and would like to have the capacity to also develop for that platform, as well as mobile apps etc. I love the whole "live" aspect (like the tour de flex light up map that shows user activity), not particularly bothered by uber complex animation and obviously want things to be responsive and user friendly.

So yea, any input on this would be much appreciated, I'd just like some advice for overall direction for my personal learning and development.

Thanks!!

+7  A: 

You're making some basic mistakes in the question. The HTML/CSS/JS combination is different from HTML 5, That combination works just fine with current implementations (ignoring some of the annoyances of IE for the moment.) HTML 5 is a new extended definition of HTML with a number of new features like local storage.

HTML 5 is also not completely settled, nor completely supported.

You should learn HTML and CSS to start with; in general, you still need a web page in which to embed your Flash stuff. You should get some basic knowledge of Javascript for much the same reason.

Conveniently, the Javascript will carry over to Actionscript, which is a variant of the same ECMAscript standard.

Charlie Martin
IMHO, Flash websites are 00's. Now days people prefer solutions to be made in JS rather than Flash.
Ben
Wouldn't it be pretty to think so. At work I've got a 64 bit Ubuntu box for which there appears to be no workable flash support. You'd be amazed at the proportion of website (upward of 90 percent for commercial sorts of site) that have big blocks saying "missing plugin".
Charlie Martin
I like your point that Javascript skills carry over to Actionscript. That was the case for me, but in the reverse. I also agree that he is making mistakes in asking the question, but I think he should be focused at a higher level. I also think you're totally right about HTML + CSS - that's what everything else depends on.
Brian Stinar
While JavaScript and ActionScript are both variants of ECMAscript, due to ActionScript 3.0 being based on the now defunct ECMAscript4.0 draft standard, it has more in common with Java than JavaScript (AS2.0 was very similar to JS though).
Allan
Re: HTML5 vs. current implementations - Yes, this is technically true. However, HTML5 has also become a buzz word for any standards-based web app. It's kind of like AJAX or Web 2.0, in that it's a buzz word that means "cool stuff" to anybody outside of the developer community.
Ryan Kinal
+4  A: 

Flash isn't going anywhere for a long time, and given the glacial pace that the HTML5 committee is working at, the HTML 5 spec won't be fully standardised for a while yet either.

Plus before all these lovely HTML5 web apps can become commonplace, the world's windows users will need to have a better browser than internet explorer 8. Given that 10-20% of web users are still stuck on IE6, i don't think we'll be seeing html5 becoming dominant for quite a few years. Of course then by that time we'll be seeing HTML6 and the slow painful process of getting the world to upgrade will start again.

Personally i don't do flash, because for what i do i really don't need it, but flash is a really useful tool outside of web development too. Lot's of triple A Games have flash built menu's and user interfaces for instance.

But really, become good at either/both technology, and you'll probably not be short of work

Doozer1979
Your points are valid WRT to adoption rates, but I've personally decided that it's time for me to stop worrying about the idjits that won't move off of IE6. Most of those are corp and using internal or other b2b apps and 1/2 of those are probably blocking Flash as well. In large part, this is our own fault by continuing to think we need to support IE6. So, to the OP's question, I'd say "don't worry about the dinosaurs". That said, Flash will still be near ubiquitous for a few more years yet.
Jim Leonardo
I agree with @Jim. I'm old enough to remember Netscape 4. When things advanced far enough that we had to leave those users behind, we did, even though I'm sure there was still 20% or so market share. We're at that stage now with MSIE v6. It's not worth development resources to support those users unless there's an absolute need.
ghoppe
Doozer1979
I think the better point is IE9 which will support HTML5 won't be released for Windows XP. But yes, there are lots of government departments that are still stuck on IE6.
Allan
@Doozer1979 - I was staying out of the IE7/8 minefield ;). Most people who seem to know that they have a choice in browser seem to gravitate towards FF.
Jim Leonardo
A: 

HTML5 is still very unstable, so you shouldn't try it.

For me, HTML5 is great, but some business haven't moved off of IE6, given its current state. Flash, while useful, can be very very tedious at times and other times it doesn't even work on some computers or makes some computers truly a pain in the "insert word here".

It's better to start with CSS and HTML4. Get the basics, then start going for more. By then, you'll know what to want.

rxu
Just because the market leading browser doesn't implement it, that 's no reason not to try it, like it or not HTML5 is going to be a huuuge part of the modern web, and if the OP wants a job, then he really should get into learning it.
Doozer1979
@Doozer1979: If the OP wants a job, then he'll be lucky if he doesn't need to make the site work on IE6. HTML5 still needs time. Time, that can be spent on things that definitely get you a job, get you paid and give you the time to look at things that seem more interesting.
back2dos
+1, for whatever reason someone downvoted. Learn CSS and HTML first, and by then, HTML5 may be out the door.
DMan
Doozer, the argument could be made that nothing can be a "huuuge part of the web" until it works in the most popular browsers...
fenomas
Hmm, I wonder if iPhone browser counts as one of the most popular?
no
@no: Nowhere close, if you mean web browsing in general including desktops. For only mobile devices, it appears to be in second place, behind Opera.
fenomas
+1  A: 

Don't bother with flash.

Yes, it's pretty and powerful and fairly ubiquitous. It's also on its way out the door, as you observed in your question.

Let's compare Flash and its newly-arrived competitor, the HTML5 canvas element.

Flash is only supported by Adobe; if you want quality development tools or resources you'll have to buy from them (for the most part).

HTML5 canvas doesn't need proprietary development tools. HTML5 canvas is supported by every major browser vendor -- Mozilla, Apple, Google, Microsoft. All vendors will provide documentation and competition for each other, which should result in a more refined product.

When OpenGL support (direct gfx card access) was in discussion for HTML5 Canvas, guess who was the only holdout? Adobe, of course. Everyone else wanted hardware graphics support for canvas.

In other words it's Adobe against everyone else here, and Adobe's not going to win. They might keep the status quo for a while, but eventually they'll lose their foothold and canvas & co will take over.

tl;dr: No use learning the dying proprietary technology when you can learn the modern open technology that's going to replace it.

no
"Adobe against everyone else here". You say it like it's a weakness. I think it's actually a strength that they're in control of the product. If they spot a weakness they can program it in to the next update, and probably within a year 90% of computers will have that version. Compare that to updates to the HTML spec, and at the moment you're looking at a 4-5 year cycle. Both will have their place, and i think HTML5 will usurp what a lot that flash is currently used for, but i think Flash will still have a place in the future of the web.
Doozer1979
It's Microsoft against everyone else, does this mean that it would be a bad idea to write Windows software for people if they are willing to pay you? I like working in an open, standards-driven environment more than not, but it's really important to look at the requirements and specifications of a specific problem before answering 'should I use XXX to solve my problem?' Since the author of the question didn't actually specify anything though, your arguments are as valid as mine for an ill-defined problem.
Brian Stinar
-1 for a terrible, biased, uninformative post. 1) If you want quality tools you have to buy them? You lose credibility right there. Go google HaXe, FlashDevelop etc. Can you link to where a credible source says Adobe blocked OpenGL? As far as I can tell HTML5 will have OpenGL support through WebGL. I am quite convinced that most HTML5 fanatics have never been involved in anything other than JS/HTML deving with simple websites. When you build significant rich web apps/games you will quickly realize why currently JavaScript and HTML5 are a poor choice for that and are far from modern.
Allan
Not particularly, if HTMl5 does become the status quo I will have to use it. Hey, gotta pay the bills right. But for me, that will be like going back to AS2.0. I thought the idea of technology was to create better tools enabling better productivity and products. HTML5 is great for simple stuff tweens etc but as for heavy web apps? No thanks. Dynamic, weak typed languages are not cool for that. In the end if a Flash developer can create heavy content, faster, cheaper, with less cross browser issues then businesses will listen to that because ultimately money matters.
Allan
Canvas is neat. Too bad it's ridiculously slow for anything but very rudimentary graphics...
Jani Hartikainen
http://www.youtube.com/watch?v=uofWfXOzX-g
no
This answer is hugely in conflict with observable facts. For one, Adobe has high level partnerships with practically everyone in the web industry except Apple (and even there they cooperate fine outside of iDevices). Google, for example, is publicly backing Flash in various ways. For another thing, Adobe isn't even anti-HTML5 - they've already started updating their tools to work with it, and have announced a lot of similar updates to come.
fenomas
Everyone in this industry has partnerships with each other. It doesn't mean several companies won't gang up and try to push a competitor out of a particular market. This is _exactly_ what's going on with WebGL. As you mention Adobe is responding directly to the challenge by a) announcing tools that work with it, and b) announcing an in-dev version of flash with more GPU-enabled 3d stuff. Bottom line is browser vendors don't want plugins for what can be done with markup, possibly excepting MS silverlight. Flash will become less and less relevant. It's just a matter of time.
no
@no: your prediction that Flash will become less relevant is not very meaningful if you support it with spurious claims. When did Adobe block HW acceleration for Canvas? (And how did they achieve that when they're not even a member of whatWG?) What is your support for the claim that the whatWG members are ganging up to force Flash out of 3D?
fenomas
Further, the part of your answer about tooling is still plainly false. Considering that you can develop Flash with free, open source tools from both Adobe and others, plus the fact that HTML5 tooling mostly hasn't developed yet, the picture you paint in your answer is very nearly the opposite of what's currently true.
fenomas
Adobe is a member of W3C, not WHATWG. Both W3C and WHATWG work on the HTML5 spec. I'm pretty sure I read something about Adobe putting in a 'no' vote for WebGL in a relevant IRC log somewhere, but I can't seem to find it ATM. Maybe I imagined it. re: tools -- I haven't found any good ones that can make heads or tails of some of the flash junk I've been handed (besides Adobe's commercial product). I'd love to hear about a decent alternative.
no
@no: If you want a serious answer, try being more precise than "some of the flash junk I've been handed". If you mean FLA files, those are flash authoring's project files - complaining that only Flash authoring supports them is like complaining that only Eclipse supports Eclipse .project files. Again, to develop Flash content you can use the Flex SDK (Mozilla license) and any of several high-quality front ends, such as FlashDevelop (MIT license). The claim that you must buy Adobe software is blatantly false.
fenomas
+2  A: 

Is this just for the fun of learning, or do you have any specific tasks to accomplish? I like to use the correct tool for the job. If you don't have a specific job to accomplish, or any constraints to work under, I would just pick the most marketable skill and go with that. Unfortunately, I'm not exactly sure which is the most marketable skill.

My recommendation would be to check out some JSON type stuff in JavaScript. That seems to be a pretty stable (might I even say fad-resistant) AJAX evolution which is pretty wide spread and likely to stick around for a while. If you focus on the high level theoretical concepts, the specific comings and goings of implementations won't be as important (in my opinion).

I think learning AJAX (using JSON rather than XML) is a good way to go so you learn about implementing asynchronous information rich sites. If you have to redraw the site entire site when you pull information, you're doing something wrong. The AJAX concepts will come in handy regardless of your platform.

Good luck!

-Brian J. Stinar-

Brian Stinar
+2  A: 

Learning a language like Actionscript can never be a waste of time , the mindset you will develop from it will enable you to understand the concepts of programming and it'll be easier for you to move to other languages if/when you so desire. Learning HTML & CSS is essential if you plan to develop for the web but it will not bring you the same type of knowledge, as it uses a very different logic. If you like the idea of developing web applications, one day you may want to develop desktop applications, HTML won't be of much use then, whilst the programming knowledge acquired with AS3 will not be lost.

PatrickS
A: 

Personally I think all the answers here are overcomplicating things. Here's my take:

Use whichever technology excites you, and is best for what you want to build right now.

If the app you want to build right now feels perfect for Flex, use Flex. If something about HTML5 has caught your fancy and won't let go, dive into it. You can always change technologies in a year or three, and You'll be taking everything you've learned about design and architecture and usability with you - learning a new scripting language and some new tools won't be that bad. The only way you can make the "wrong" choice here is if you, for whatever reason, pick a technology that you wind up not enjoying enough to get anything built.

The reason I feel this is the best way is, nobody here can tell you anything useful about what technologies will or won't be around in a few years' time. Adobe could go bankrupt; Steve Jobs could die; Google could get broken up in an antitrust suit. Hell, Flash could be on the iPhone next year for all we know - or HTML6 could adopt a new, strongly-typed JITable programming language. Or a hundred other things could happen to render your (and our) predictions moot.

I mean, personally I expect that both Flash and HTML5/6/7 will be vibrant and flourishing in five or ten years - because they both have successful organizations behind them investing in their futures, and because I've never heard a whit of a meaningful argument why the success of one should require the failure of the other. But that's just a guess, and my guess is no better than yours. Focus on getting good stuff made now, and the technology road map of the future will come when it comes.

fenomas
A: 

In my opinion – everything is worth learning, especially when it comes to HTML/CSS/JS/Flash, which are each completely different systems/skill pools tailored to entry-level developers.

HTML is tagged markup, and very important because it outlines XML usage. CSS is writing visual formatting rules. JavaScript is a scripted language, and a great way to get your feet wet with simple programming logic. And Flash is a great system in which to get into object-oriented programming within a compiled language.

As you keep venturing out, you'll find that a lot of technologies are really just different flavors of the same ice cream. While different languages have their own nuances, there are fundamental similarities between –say– most compiled languages. I came from Flash and got into iPhone development... while Objective-C is a way bigger and uglier system to dive into, I still generally knew my ass from my elbow while building my first app after several years experience with AS3. The same goes for .NET and Java. Also, I would second the notion that Flash is not dead, despite loosing traction in the wake of the iPocalypse. Whether it dies in a few years or not, it doesn't make AS3 any the less valuable to have learned in addition to HTML/CSS/JavaScript.

Greg