At start I want to underline that I've been programming JS in notepad in times when FrontPage or Dreamweaver or some other web design tools wasn't existing in order to make move thoose static HTML tags and make them "dynamic html". And I agree that technology was advance in that time. Today????? Future isn't bright with the such advicers that take compromise to go back for lack of their knowledge and vision. Strategy could be based only on the checked information and news should be tracked. For example Apple first restricted submission to Apple Store only to application developed thru its tools
but then, after seeing Droid taking the market, abandon the restriction. Now many tools offer creation of Apple content not just Adobe Air but Unity3D based on C#, Titanium based on JS, Corona based on Lua,....
Now I could see enormous effort in conversion and injecting steroids in JS.
Yes Action Script is ECMA based as JS but Action Script has the power OO language for long time while 90% of JS developers write spaghetti code like this
function(param1,function(param3,param4,function(param5),param6......
{
or not follow any patterns or good practice of programming.
Update: My friend who gone to JS commented bellow saying with JS I can do something fast. That for what script is. Who care about good programming practices. Not serious project( Yeah I know its possible and you Google or other big brothers have done it. What is the cost and fun. No all around IDE. You Notepad lovers. Ooo have build your own compiler and optimizer? and you have your own browser. and your code bit hiccup on IE.... and so on dreams about beautiful world).
Comparing to Action Script, Flash for years had Tweeners,Animated Charts
Patterns, Classes, Biniding (backbone.js),Sockets, Localization, ModelViewControl (3 generation), UI components, unit testers and profilers... and why all of this should be recreated in JS???
Update: WebGL,WebSockets,Webworkers,...now even Starling has Starling.js. Everything is JS. It's a mainstream right.?
What is new in NEW? O.. It would be in HTML 6,7,8 a! OK.
I could also blame Steve Jobs sending the first poison arrow.
But most to blame is on Adobe. Adobe is killing its child.
Their amateur decision makers, or lets say smart asses staying on the save side. (Who care about 100,000 or more of AS developers. They would send Lee Brimelow or Thibault Imbert to make us tutorials how easy we can transfer to JS). The Logic blockade is not that I/we couldn't learn simple script in a sec, its about why I need to jump from horse to donkey?
What about time and resources (all that chickens reoriented from Flash technology seed to HTML5)?
Could we as human kind spend on developing something new and better and go forward during that time.
Adobe Recap 07:18 from MAX2013 What Adobe brings with CS6 with JS toolkit gave me feel that I'm using AS1(onPress :)) for making banners and exporting in JS. Did we pass that Flash, the Flash good for banners, years ago?. What about dynamic banners with all that unreadable conversion code :).(I remember of one Adobe wow presentation converting Flash animation into HTML jQuery in one click)
Developers community showed what they need.
3D IDE (idea http://www.flare3d.com/)
2D Programmable bones (idea http://dragonbones.github.io/)
GPU accelaration in 2D (idea http://gamua.com/starling/)
GPU accelarated components (idea http://feathersui.com/)
Live Codding (idea http://www.codeorchestra.com)
You are free to look at the videos about global ideas what tools should bring.
Let see what you get with this new but old technology.
EXECUTION SPEED & FILE SIZE: Code optimizers, packagers (zippers) or browser producers could improve their browser parsers in order to gain faster download and execution speed of several thousand lines of code in serious apps.
Someone would say doesn't matter when now we all have optic-fiber connection and super computers, but even then as engineer isn't logical to use resources to push wooden cart on highway instead of using them for some future invented vehicles.
What about readability and updatability of that optimized, packed code? What about of time of zipping and unzipping? Why we are compile code and create binaries when size and parsing of text files (.js) is better solution!?
MONOPOLY:
OK. Adobe have monopoly on Flash player, but not on whole web. Now who will have web monopoly. Google and Apple with their browsers,... and most benefit of Flash dead would have Unity. That's it about everything about "OPEN" Linux style dream.
COMPATIBILITY: Here come the CEO's technological adviser's statement that JS is compatible with everything even with mobiles.
Partly true. Lot false.
There are several things why this is not true.
First NO BROWSER never was and wouldn't ever follow be 100% compatible with W3C standards let say HTML5 currently. There may reasons why which I won't to elaborate now. Even in browser version of same producer, difference are so big so you need to write code to handle not just browser type but also same browser versions.
Here comes redundancy of code when you have same code that handling browser with every framework you engage into your project.
And top of that your code wouldn't be compatible with the next version(Noone guarantee) of browsers.
Then comes good news your web site would be viewable on mobile devices. Partly true. Even we assume that web browsers and mobile browsers are 100% clones, what is the benefit of that your web site is visible but simple not usable in same way in browser.For example websites were designed for using with mouse and not with finger touch and all those fancy moves. So not compatible, when you need to have to use jQuery and jQueryMobile for addressing different device. And why big companies like Yahoo and Facebook offer right away native application(APPLICATIONS!!! NOT HTML5/JS WEB SITES ) for your device and why they not let you to use your mobile browser, if usability and experience is the same???
Flash player had backward compatibility and user would have 90%(maybe this is 95% or more but I'm satisfied with 90% compared to experiences of writing HTML/JS/CSS for every major browser) same experience in all major browser.
Yes, Flash player is discontinued from mobile devices( anyway Flash could show full power on low hardware mobiles then and was hard to exploit specific device options) but you can develop application using Adobe AIR technology. You can use full power of Flex RAD(Rapid Application Development) practices into you main content and target with the same effort target Android,IOS,BlackBerry,Windows,MacOs...Plus you can extend toward specific device functionality using Adobe Native Extension and write native code.
DEPENDENCY: First dependency is of your OS. (text)
... Second dependency is of your browser. Third dependency is installed programs and plugins.
At the end if you think that you become dependent in some way installing Flash Player pluggin did you get dependent also when you install Garmin(for you training device), Java applet or other pluggins in your web broswer. Why you then feel dependent of?
GAMES: To find JS games are so rare as needle in the haystack. Even with the introducing to canvas lack of quality visual IDE, game engines and frameworks, constant browsers crashing, performance and being not visual attractive make JS far from favorite game development environment.
3D: Use of third dimension thru JS is possible for ex. with Three.js(by Mr.Doob former Papervision 3D guru) and it's based on WebGL. But even it works on Chrome and could be enabled in FireFox, the owners of technology Microsoft, have sealed its future stating they would not continue developing or support in its browsers e.g IE.
Update:IE would support WebGL.
In Flash Player many graphics cards are supported offering 3D across browsers and mobiles. Frameworks like Starling gives great performance by utilizing use of GPU to UI and Games.
PRELOADERS: Boring right. JS have no preloaders!(Wrong, maybe in some simple text and image HTML pages)
Flash does. Unity does.
SEO: Maybe this is very HTML have advantage. SWFAddress
REALTIME APPLICABILITY: I didn't encounter so far pure JS based streaming solution or real time data transfer.There were some tries to make HTML/JS Video players but saw Youtube back to Flash Player and Apple made custom video application that jump out when you browse and want to see video. I'ven't seen something made in JS in comparation to Adobe Live Data Cycle.
JSON: Main data transfer JS format is way outdated when many formats today offered ,like AMF, faster and class object transfer. Libraries like AMFPHP and ZendAMF, FlourineFX(.NET) or Java AMF allows seamless/realtime OO communiction with backend.
Someone would say "SignalR" and I couldn't find here Eureka just another muscle injection.
CONSTANT BEHAVIOR: Freedom of dynamic scripts (a.k.a prototyping) as JS means freedom in syntax creation, but that not mean artistic freedom. With that freedom library's creators can use $,#,_ to make some functionality which looks cute as art and in saving file size and speed up codding, but as developer with every new library you need to learn new syntax and new way of use. Sometimes I feel like I'm into new script/language not in JS cos of so called freedom to design library. Pain!.
One JS GURU told me take backbone.js it fits 80% to original JS syntax and AngularJS about 15%. Fits? So today top libraries jQuery,AngularJS ... parse HTML + there enhancing syntax (part fitting - part new language) into JS, minimized in 1000 ways , which then would be parsed AGAIN! by browser. Hell not logical.
UNIFICATION: This is great thing. JS thruout the programming world. Great! But in the ideal world and with some universal purpose strong language, and definitely not with 15 year old script concept.
RIDING ON THE NEW WAVE WITH YOUR OLD IRONING BOARD:
I also couldn't describe all of Action Script Gurus who waste 10 years of their life, now are writing JS tutorials Lee Brimelow, try to convert their components to JS like Keith Peters, try to convert their Union multiplayer server Collin Mock (50,000lines of code!!!!)...., create JS frameworks alike Action Script so developers can easy transfer to JS like Grant Skinner, other then turncoats, call me stubborn to new turn into bright web future, if you like, but I could see all of this as step backward and reinventing the 15 years old wooden wheel as some kind of advance,which we all need to follow and to be your company future
strategic goal.
Update:
I would like to add to the list Thibault Imbert here ,after he been assigned to HTML dev team, he said he Flash is his heart but TypeScript and new ECMA6 is almost good as AS.
Couldn't have said it better myself.
ReplyDeleteYou can distort reality all you want, but in the end when it comes down to schedules and budgets, the better technology is AS3 / Flash. Same goes to AIR as the leading cross platform solution for mobile games and apps.
This mass adoption of JS as a cure-all solution might lead to a digital dark age.
im on the fence with this one. as a *former* as3 dev who has a new job as a js dev i feel i need to say they both have strengths and weaknesses. i completely agree with the lack of formal coding guidelines in js... you *can* code oop in js, but most people dont. but at the same time that lack of formal structure is one of my favorite parts of languages like php. sometimes just getting the job done the fastest was is best. oop can add a lot of "baggage" to your code that it might not need, but it can be at the sake of consistency and real structure. it wasnt that long ago that everyone suggested turning js *OFF* in the browser! now you cant view the modern web without it. i feel the same way a mr.doob (i assume), we're just trying to move in the direction that we find the most interesting, regardless of web/market trends. i agree with you that steve jobs killed flash. but android (who used flash as a leveraging tool against ios) is now deprecating it and no longer supporting/updating it's plugin. which brings me to the next point. flash utilizes a plugin, and people *HATE* them (dont as me why). but js is dependent on browser implementations. if say, IE, doesnt want to do it the "standard" way, IE users/coders are forced to do it their method. while flash being managed by a centralized group forced everyone to be on the same page. *sigh* i have mixed feeling on the is topic.
ReplyDelete