The reason such boards of certification exist is restraint of trade. They were set up to prevent (too many) people from entering those professions. They are much less an indication of professional quality than something like Yelp would be. They are basically modern day equivalents to guilds. They raise the costs of the goods for all consumers with very little protections afforded. Further, they stifle innovation and services (See people wants to open up braiding shops having to get cosmetological licensing or dentists who want to give away free healthcare as part of community service but are barred because licensing requirements prevent them from performing cleanings).
This doesn't address your compile-to-JavaScript/type-safety issues but for a component-based approach to producing JavaScript apps, take a look at http://enyojs.com./
I made a comment to a poster over on the original posting of this. I think it's worth expanding upon in case people are persuaded by the arguments in the paper.
First off, just as TFA predicts, I'm not going to try to conquer his mountain of facts and experts by presenting a mountain of citations. Instead, I'm going to point out where his conclusions are not supported by his facts and point out his straw man arguments and his attempt to convince us through overwhelming expert opinion.
The straw man: In the article, he presents two scenarios (photo editing and video streaming) and claims that you can't reasonably do those because of memory limitations (on the iPhone/iPad). He then concludes you can't produce useful apps because you can't do those two. I couldn't find any citations of people attempting to do this on mobile using JavaScript. Choose the right tool for the job here. I'll give him these two use cases (and several others: 3D Games, audio processing, etc), however to extrapolate from here that no useful apps can be produced (ever!) using JavaScript is a leap too far.
Next, he spends a lot of time diving into the particulars of garbage collection (GC). I'm going to grant him practically every point he made about GCs. They're true. And, it's true that mobile is a constrained environment and you must pay attention to this. But, this is largely known by developers who are trying to write high-performance JavaScript applications on mobile. Hell, -anyone- writing high-performance apps in any language need to be aware of this. If you allocate memory during your animation routines in a game you're asking for trouble, regardless of the language. So, to me, this part is just a call to pay attention to your memory usage in your apps. This is really useful advice and I will be paying even more attention to the new memory tools available in the latest Google Chrome dev tools.
One of the biggest problems in the rant is the comparison of pure computing performance and his claim that ARM will never be as fast as desktop. I'm going to again grant that this is true. However, this means crap-all for most apps. Tell me: How many apps do you have one your phone that are processor bound? None? One? Two? The vast majority of apps spend their time either waiting on the user or, possibly, waiting on the network. You can write a lot of really useful apps even given constrained processor and memory. Anyone remember the Palm Pre? The TouchPad? Most of those apps were JavaScript and they worked just fine.
This brings me to the point of all this, TFA's author focuses on performance. However, users focus on responsiveness. JavaScript is perfectly capable of producing responsive applications. Sometimes, it takes attention to detail. Nothing is ever 100% free and easy. JavaScript is not a magic solution and those of us who think that JavaScript has a future in mobile app development know this. This is why programmers get the big bucks. Writing mobile apps, you need to be aware of the effects of CSS, memory, processor, responsiveness and more.
A flippant answer but it misses the point. As does the original article. It's true that writing performant mobile apps is hard. But it's always true that writing good code that has to perform in a constrained environment requires attention to performance and memory.
However, one thing that JavaScript libraries tuned for mobile provide is an optimized approach to common problems that are handled differently on different mobile browsers. The framework I use (and I wrote the book on it, literally) is Enyo. As a simple example, Enyo provides a number of scroll strategies that it choose from based upon the OS and even the version. Are you aware of all the bugs in the various versions of the Android browser? How about the bugs introduced in one version iOS and fixed in the next? Having a framework deal with the wildly different browser implementations so you can focus on actually, you know, writing an app is important.
The original article goes to great lengths to talk about GC and brings up the strawman of video streaming and image manipulation. If you want to do those on mobile today, go native. If you want JS as a front-end, use PhoneGap. Pick the right tool for the job. He then talks about pure programming performance. Tell me, how many apps do you have on your phone that are processor bound? I would guess almost all of them sit around and do nothing until you tap a button. Responsiveness is completely different from outright performance and it's completely possible to write rich, responsive apps in mobile using JavaScript.
I'm sure there'll be some cross-pollination between ExtJS/Sencha and Enyo. We always say that Enyo was 'mobile first' instead of something that came from a desktop browser world and moved down. I'm not sure there's any animosity between Enyo and those guys. Right now, Enyo has taken a more lightweight approach and doesn't have the dataviews, stores and readers/proxies you mention (though I'm not familiar with ExtJS enough to know those features well enough to know if there are analogues). Our new MVC bindings based on Backbone are intended to address the more data-heavy requirements of enterprise apps. I hope to be able to do a talk about the way open source projects can leverage other open source projects someday.
If you've done Enyo 1.0 then check the Enyo site for some notes on moving from 1.0 to 2.0. Some properties changed names and there are some other differences. Thanks for buying the book!
For the PC, you could package any of those apps with the Intel AppUp Encapsulator. The focus is more on the desktop/mobile web and mobile apps. Desktop apps are more like a freebie, not really a focus.
1) There is no more ubiquitous platform for distributing apps than the browser these days. You can't deploy C,C++,C# into the browser cross-platform today. And even if you could, you'd still need a framework to handle the UI. Java, given the security problems lately, isn't even a good bet for distributing apps cross-platform and doesn't exist on many mobile devices (e.g. iOS). JavaScript performance is quite good these days. Using Enyo you can target desktop web, mobile web and mobile apps with the same codebase.
2) To me, an app is different from a web page in that it provides interactive content without the need for a page refresh/reload.
3) (Get off your lawn?) Frameworks (in any language) are important for getting work done. Yes, you can hand-code a CMS in PHP if you wanted to, but why would you? HTML (even in the latest incarnations) doesn't provide all the controls people expect from interactive applications. JavaScript has some warts and a framework can help. Mobile and desktop browsers have any number of bugs that must be worked around for high-performance and well behaved apps, Enyo helps with this.
If you don't need to create cross-platform apps then you don't need to check out Enyo. If you already know HTML/JavaScript/CSS and need to get into Apps, then Enyo just might be for you.
It's worthwhile noting that all the jsFiddle samples have been fixed. I can assure you they did work at the time the book was published.
I do intend for the book to continue to grow as Enyo does (there will be a chapter soon on the forthcoming Enyo MVC addition, for example) and I will definitely fix the (very few) typos so the electronic versions are updated.
Now, having dispensed with those, I need to point out that Enyo: Up and Running was intended as an introductory text, not a reference book. The Enyo Web site (which is very good) should always serve as the reference. This book, I think, does exactly what it was intended to: Introduce the key features of Enyo and explain how the fit into the broader context of the framework. The first chapter of the book is intended to give the reader a flavor for the development process with Enyo and how certain concepts are applied. I think moving it later into the book would diminish the value in it.
Finally, some responses to specific comments: Regarding the unused parameter, this is an interesting question I struggled with a bit. JavaScript doesn't care if you provide the appropriate number of parameters and it doesn't care if you use them or not. As a teaching text, the book shows all possible parameters whether used or not so that the reader knows they are available. I could easily have left them out of the samples, but at the risk of hiding their availability. Regarding the uses of CSS, I decided to save styling using CSS until the chapter on styling so as to not confuse the issue. Break tags fit within the flow of the sample and show off how to use the 'tag' property. I don't see that they are 'wrong' in any way.
Enyo is a relatively new framework (in its open source form) but has a strong legacy from the webOS days, as others point out. I find it very useful and I think it neatly addresses the many shortcomings of producing cross-platform apps. JavaScript is ubiquitous and the deployment options mean you're not beholden to Apple, Google or any other provider. I urge you to check out Enyo, even if you're not interested in the book. There's a lot to like there.
If you do want advancement it might be a good idea to take some courses in English grammar. Since you're specifically talking about eligibility for hiring (and presumably advancement) then I feel justified pointing out your grammar could use some work. I don't know whether the 'editors' have even fixed up some of the more egregious problems in the post but your e-mails and resume convey a lot to people who read them. As someone who has hired programmers, I tend to get a negative impression of people who are sloppy with their writing.
Surprised to not see anyone recommend Freefall (http://freefall.purrsia.com). For art, I am really taken with A Redtail's Dream (http://minnasundberg.fi/) and The Bean (http://www.beanleafpress.com/). Aw, hell, and The Abominable Charles Shaw (http://www.abominable.cc/). Too many good ones for me to choose just one. My list just keeps growing so I'll stop.
I've wanted to get a good set of headphones with mic for use with the Mac... which means it must be USB capable. Everything I've tried so far is crap. The Creative USB connector has fallen apart on three of them so far. I don't want to have to get a separate mic because I use it with a laptop and it's just annoying to have that many cables. Anyone have any recommendations?
If I had penned this gem: "Author of dystopian novel about the logical conclusion of many trends in modern society, Fahrenheit 451, and many other works that have inspired fans of speculative fiction for decades has died at the age of 91 in Los Angeles, California, Tuesday night, June 5th, 2012. "
Could it have been made more torturous?
Submitter managed heroically to not mention what GIMP was in the whole summary or what products it compared to. Yes, I know what it is but there's no excuse for a summary not to at least mention what the damn software does.
You might be on to something if only they all ran the same firmware. In this case, it makes sense to call attention to the fact that they are all different firmwares.
I see... Because I have kids -and- an electronic gadget I'm obligated to spend $10 per month on apps? Interesting. I guess if my kid had no other interests I might could get behind you. You know what? I suspect it'd just be easier if there was a mandated $10/month app spending requirement that came with kids and iDevices so I could just stop thinking about how to spend my money. Thanks for your kid raising advice, stranger!
The reason such boards of certification exist is restraint of trade. They were set up to prevent (too many) people from entering those professions. They are much less an indication of professional quality than something like Yelp would be. They are basically modern day equivalents to guilds. They raise the costs of the goods for all consumers with very little protections afforded. Further, they stifle innovation and services (See people wants to open up braiding shops having to get cosmetological licensing or dentists who want to give away free healthcare as part of community service but are barred because licensing requirements prevent them from performing cleanings).
This doesn't address your compile-to-JavaScript/type-safety issues but for a component-based approach to producing JavaScript apps, take a look at http://enyojs.com./
I made a comment to a poster over on the original posting of this. I think it's worth expanding upon in case people are persuaded by the arguments in the paper.
First off, just as TFA predicts, I'm not going to try to conquer his mountain of facts and experts by presenting a mountain of citations. Instead, I'm going to point out where his conclusions are not supported by his facts and point out his straw man arguments and his attempt to convince us through overwhelming expert opinion.
The straw man: In the article, he presents two scenarios (photo editing and video streaming) and claims that you can't reasonably do those because of memory limitations (on the iPhone/iPad). He then concludes you can't produce useful apps because you can't do those two. I couldn't find any citations of people attempting to do this on mobile using JavaScript. Choose the right tool for the job here. I'll give him these two use cases (and several others: 3D Games, audio processing, etc), however to extrapolate from here that no useful apps can be produced (ever!) using JavaScript is a leap too far.
Next, he spends a lot of time diving into the particulars of garbage collection (GC). I'm going to grant him practically every point he made about GCs. They're true. And, it's true that mobile is a constrained environment and you must pay attention to this. But, this is largely known by developers who are trying to write high-performance JavaScript applications on mobile. Hell, -anyone- writing high-performance apps in any language need to be aware of this. If you allocate memory during your animation routines in a game you're asking for trouble, regardless of the language. So, to me, this part is just a call to pay attention to your memory usage in your apps. This is really useful advice and I will be paying even more attention to the new memory tools available in the latest Google Chrome dev tools.
One of the biggest problems in the rant is the comparison of pure computing performance and his claim that ARM will never be as fast as desktop. I'm going to again grant that this is true. However, this means crap-all for most apps. Tell me: How many apps do you have one your phone that are processor bound? None? One? Two? The vast majority of apps spend their time either waiting on the user or, possibly, waiting on the network. You can write a lot of really useful apps even given constrained processor and memory. Anyone remember the Palm Pre? The TouchPad? Most of those apps were JavaScript and they worked just fine.
This brings me to the point of all this, TFA's author focuses on performance. However, users focus on responsiveness. JavaScript is perfectly capable of producing responsive applications. Sometimes, it takes attention to detail. Nothing is ever 100% free and easy. JavaScript is not a magic solution and those of us who think that JavaScript has a future in mobile app development know this. This is why programmers get the big bucks. Writing mobile apps, you need to be aware of the effects of CSS, memory, processor, responsiveness and more.
A flippant answer but it misses the point. As does the original article. It's true that writing performant mobile apps is hard. But it's always true that writing good code that has to perform in a constrained environment requires attention to performance and memory.
However, one thing that JavaScript libraries tuned for mobile provide is an optimized approach to common problems that are handled differently on different mobile browsers. The framework I use (and I wrote the book on it, literally) is Enyo. As a simple example, Enyo provides a number of scroll strategies that it choose from based upon the OS and even the version. Are you aware of all the bugs in the various versions of the Android browser? How about the bugs introduced in one version iOS and fixed in the next? Having a framework deal with the wildly different browser implementations so you can focus on actually, you know, writing an app is important.
The original article goes to great lengths to talk about GC and brings up the strawman of video streaming and image manipulation. If you want to do those on mobile today, go native. If you want JS as a front-end, use PhoneGap. Pick the right tool for the job. He then talks about pure programming performance. Tell me, how many apps do you have on your phone that are processor bound? I would guess almost all of them sit around and do nothing until you tap a button. Responsiveness is completely different from outright performance and it's completely possible to write rich, responsive apps in mobile using JavaScript.
Ah, I was thinking of exactly this when I read the story. A big kudos to you guys.
I'll point that out to the team that maintains the web site. I suspect the wording isn't as clear as it should be.
I'm sure there'll be some cross-pollination between ExtJS/Sencha and Enyo. We always say that Enyo was 'mobile first' instead of something that came from a desktop browser world and moved down. I'm not sure there's any animosity between Enyo and those guys. Right now, Enyo has taken a more lightweight approach and doesn't have the dataviews, stores and readers/proxies you mention (though I'm not familiar with ExtJS enough to know those features well enough to know if there are analogues). Our new MVC bindings based on Backbone are intended to address the more data-heavy requirements of enterprise apps. I hope to be able to do a talk about the way open source projects can leverage other open source projects someday.
If you've done Enyo 1.0 then check the Enyo site for some notes on moving from 1.0 to 2.0. Some properties changed names and there are some other differences. Thanks for buying the book!
For the PC, you could package any of those apps with the Intel AppUp Encapsulator. The focus is more on the desktop/mobile web and mobile apps. Desktop apps are more like a freebie, not really a focus.
1) There is no more ubiquitous platform for distributing apps than the browser these days. You can't deploy C,C++,C# into the browser cross-platform today. And even if you could, you'd still need a framework to handle the UI. Java, given the security problems lately, isn't even a good bet for distributing apps cross-platform and doesn't exist on many mobile devices (e.g. iOS). JavaScript performance is quite good these days. Using Enyo you can target desktop web, mobile web and mobile apps with the same codebase.
2) To me, an app is different from a web page in that it provides interactive content without the need for a page refresh/reload.
3) (Get off your lawn?) Frameworks (in any language) are important for getting work done. Yes, you can hand-code a CMS in PHP if you wanted to, but why would you? HTML (even in the latest incarnations) doesn't provide all the controls people expect from interactive applications. JavaScript has some warts and a framework can help. Mobile and desktop browsers have any number of bugs that must be worked around for high-performance and well behaved apps, Enyo helps with this.
If you don't need to create cross-platform apps then you don't need to check out Enyo. If you already know HTML/JavaScript/CSS and need to get into Apps, then Enyo just might be for you.
It's worthwhile noting that all the jsFiddle samples have been fixed. I can assure you they did work at the time the book was published.
I do intend for the book to continue to grow as Enyo does (there will be a chapter soon on the forthcoming Enyo MVC addition, for example) and I will definitely fix the (very few) typos so the electronic versions are updated.
Now, having dispensed with those, I need to point out that Enyo: Up and Running was intended as an introductory text, not a reference book. The Enyo Web site (which is very good) should always serve as the reference. This book, I think, does exactly what it was intended to: Introduce the key features of Enyo and explain how the fit into the broader context of the framework. The first chapter of the book is intended to give the reader a flavor for the development process with Enyo and how certain concepts are applied. I think moving it later into the book would diminish the value in it.
Finally, some responses to specific comments: Regarding the unused parameter, this is an interesting question I struggled with a bit. JavaScript doesn't care if you provide the appropriate number of parameters and it doesn't care if you use them or not. As a teaching text, the book shows all possible parameters whether used or not so that the reader knows they are available. I could easily have left them out of the samples, but at the risk of hiding their availability. Regarding the uses of CSS, I decided to save styling using CSS until the chapter on styling so as to not confuse the issue. Break tags fit within the flow of the sample and show off how to use the 'tag' property. I don't see that they are 'wrong' in any way.
Enyo is a relatively new framework (in its open source form) but has a strong legacy from the webOS days, as others point out. I find it very useful and I think it neatly addresses the many shortcomings of producing cross-platform apps. JavaScript is ubiquitous and the deployment options mean you're not beholden to Apple, Google or any other provider. I urge you to check out Enyo, even if you're not interested in the book. There's a lot to like there.
If you do want advancement it might be a good idea to take some courses in English grammar. Since you're specifically talking about eligibility for hiring (and presumably advancement) then I feel justified pointing out your grammar could use some work. I don't know whether the 'editors' have even fixed up some of the more egregious problems in the post but your e-mails and resume convey a lot to people who read them. As someone who has hired programmers, I tend to get a negative impression of people who are sloppy with their writing.
Surprised to not see anyone recommend Freefall (http://freefall.purrsia.com). For art, I am really taken with A Redtail's Dream (http://minnasundberg.fi/) and The Bean (http://www.beanleafpress.com/). Aw, hell, and The Abominable Charles Shaw (http://www.abominable.cc/). Too many good ones for me to choose just one. My list just keeps growing so I'll stop.
Thirded.
Thanks for the tip. I'll check it out!
I've wanted to get a good set of headphones with mic for use with the Mac... which means it must be USB capable. Everything I've tried so far is crap. The Creative USB connector has fallen apart on three of them so far. I don't want to have to get a separate mic because I use it with a laptop and it's just annoying to have that many cables. Anyone have any recommendations?
If I had penned this gem: "Author of dystopian novel about the logical conclusion of many trends in modern society, Fahrenheit 451, and many other works that have inspired fans of speculative fiction for decades has died at the age of 91 in Los Angeles, California, Tuesday night, June 5th, 2012. " Could it have been made more torturous?
"Sounds interesting"... I see what you did there...
Submitter managed heroically to not mention what GIMP was in the whole summary or what products it compared to. Yes, I know what it is but there's no excuse for a summary not to at least mention what the damn software does.
I couldn't find any videos of this Octopus fight. :(
Well, I don't see why they would try to activate a phone made out of bread! http://dictionary.reference.com/browse/stollen
**woosh** Please report to the mothership for humor readjustment.
There's no need for comments as this is a rare article summary that actually tells you what you want to know. Bravo!
You might be on to something if only they all ran the same firmware. In this case, it makes sense to call attention to the fact that they are all different firmwares.
I see... Because I have kids -and- an electronic gadget I'm obligated to spend $10 per month on apps? Interesting. I guess if my kid had no other interests I might could get behind you. You know what? I suspect it'd just be easier if there was a mandated $10/month app spending requirement that came with kids and iDevices so I could just stop thinking about how to spend my money. Thanks for your kid raising advice, stranger!