This all seems to assume that Javascript,css,html and the web 'stack' in general are reasonable and efficient ways to write robust applications. I fundamentally disagree.
Finally some reason. Tried and true native methods are superior in just about every aspect except 'shininess' (the DOM-based styling of CSS) and simplicity for end-users that wish to not understand even the basic concepts behind the systems they use. There's no reason to build on the abstraction of a browser in order to build applications /except/ that it's ubiquitous/instant. This seems to attract developers that want to get users more than they want to develop truly excellent software.
Just about every other property of the web as a runtime makes a solid argument against its usability: stability (browsers are trying to implement a process model now because the JS/DOM sandbox/environment is not sufficiently robust to be depended on to not crash), standardization ("use webkit" or "use compatibility libraries in js" is a weak answer compared to real guarantees from fairly static and mature standards), efficiency (everything goes through at least: parsing, the DOM, javascript's broken (mostly-missing) typesystem, etc., all at runtime or application startup), and simplicity (more layers mean more complexity; we have various openGL standards and now also WebGL, implemented on top of one or more of them on each platform; javascript as a 'bytecode analogue' for slightly more usable languages such as coffeescript).
Throwing more code at problems has rarely resulted in an elegant and efficient solution, but that's the approach we're taking to try to get back the performance and featureset lost from running web apps in a JS/DOM container. We've wrapped enough fundamental OS features in JS libraries/DOM extensions/HTML features. It's time to end this nonsense and create a real standardized and generalized sandboxing model if that's what we want.
I consider ubiquity and instant-ness (i.e., accessibility) to be quite important aspects in which the Web platform is superior to native platforms.
I don't know what you mean by "truly excellent software", but I'd rather make imperfect, useful software than perfect software no one uses, wouldn't you? And it is certainly possible, and nowadays routine, to create simple, elegant, well-architected, maintainable, efficient, performant, small-footprint Web applications.
Yes, the Web platform has all kinds of warts and scars. In and of itself, all else being equal, they are of course strictly a bad thing. But the principle of openness and cross- and backwards compatibility--the principle that technical concerns must be balanced against community concerns--that is their root cause, I believe to be superior to any of the alternatives we've seen, which have given rise to proprietary standards, walled gardens, dependency and upgrade hell.
I agree that "throwing" more code at problems rarely results in elegant and efficient solutions, but disregarding existing community concerns, like legacy software or standards, rarely results in successful solutions.
Due to network effects, some developers can only create the app they want and have it succeed by making sure they can get users. Excellence for such software is dependent upon adoption.
I think the web could handle a fully re-imagined stack. So long as it adhered to well defined standards and kept dns, with buy in from the major browsers the two stacks could co-exist.
More signs of the greater problem --> A fake, service economy.<br>
Stephen Colbert: "Our children are very generous, they just don't know it yet"
Aflac Salesman: "Aflac depends on continual unsubstantiated growth"
Let's do the math on continual growth.
(average us citizen has 1.9 children)
A generation is approx 32 years.
Our economy depends, and comes down to 1 thing, and 1 thing only - your and my ability to buy shit, lots of it!
But what is ironic is our economy is at odds with itself, because a service based industry is at odds with a commodity consumer industry.
Just ask yourself (if you are older than 21) What did my dad do when he was 21? (good chance it involved actual labor in which there was a physical product, or outcome)
What did I do when I was 21 for a job? (Most like it didn't involve anything physical)
All early signs of an economy that is based on nothing, not backed by anything, currency is relative, and the consumer doesn't have faith in - what doesn't exist.
There are free software exchange clients, and it's an open platform. Do the math. :)
The truth is that the baked-in software stack is never going to be what sells this phone. If what the user wants is an expensive, high end, pocket-sized browser appliance, then the iPhone has already cornered that market. Android is trying to be a platform. The extent to which it succeeds is precicely that to which criticisms like yours miss the point. If there are important things that it can't do that aren't addressed by the developer base, then it will fail. If not, then it wins.
It seems to me like with any mobile device, once the "Oh this thing is cool, and I'm going to play with it" phase wears off. Most people are just content using any mobile device in a way that benefits them, easily, and conveniently.
Music is an obvious avenue for mobile success - there's still lots of tedium to our everyday lives, and there are many places where music can fill in those gaps (car, gym,
park, DMV, etc)
I work as a Systems Engineer, and I don't carry a blackberry or Treo - I refuse to, I don't WANT the temptation to write and respond to emails while I'm eating my breakfast before work. That's a different topic, but the device needs to substantially make my life better in a way bringing my laptop with me can't - and I just don't see the benefit yet.
I see the complaint as this:
Does Lisp Feature a PECL Installer? - What if you need a clustered server environment - how are you going to role out a large application to 20, 30, 500 servers?
PECL and PHP Offers libraries (functions really) to accomplish much more off the shelf through it's Standard Library than many other languages.
-Compiled-In DB Drivers (MSSQL,MYSQL,PGSQL,ODBC,SQLITE)
-LDAP
-KADM5
-Mcrypt
-PDO
-Sockets
-XML
-SOAP
-(an excellent set of string and array functions)
Actually can someone who knows more about .Net, Ruby, or Java tell me of the features I listed what languages have these features that come with, or are optional?
I don't find the language to be ugly, dirty, or unpleasant.
Java is the most popular programming language in the world, and I cannot stand it, if I have to create one more NEW object simply to format CSS text I am going to explode.
I have no problem properly naming and using 1,000 functions.
I would rather know each function than have 10 objects with 100 methods each.
Objects have their place for Webapps (which ultimately output text last time I checked) Web Applications do not need to be abstracted to the point of Object Inheritance Oblivion!
Can someone please tell me of all the better ways to write this in other languages that are so far superior to PHP?
Consoles are ALWAYS going to have a market, and possibly a growing market.
Games are getting harder and more expensive to make, but projects like Irrlicht and Ogre 3d are becoming more complex. As the years go on the paradigm will change from a content centric design in PC games, to a complexity and community centric design philosophy. I can see a time when the community builds the environment within the bounds of the rules of the game engine - and I'm not talking about second life.
And where do you suggest all the millions of Modders will go?
Consoles are becoming computers, and I can guarantee the operating systems will look more and more like a simplified version of windows, or OSX as the years go on.... OpenGL, DirectX will continue to be developed. The simple fact alone that Console games must be developed on a PC is going to keep the PC kicking - it has to run emulated versions of the software that the console (lesser hardware) runs - PC Gaming isn't dead at all ... All you need to realize that is an internet connection and a POGO account.
I realize this isn't the market segment you are talking about but the largest private website in the world is an online PC games site (http://en.wikipedia.org/wiki/Miniclip)
As long as there is a pc - AND THERE always will be a device that allows for open development, and deployment of software - there will be games (irregardless of how complex) for that platform.
Bottom Line: as long as people have computers they, and their kids are going to want to put games on them.
"I can see a time when the community builds the environment within the bounds of the rules of the game engine - and I'm not talking about second life."
Hey! Like Spore! I think it's a damn great idea :)
(what do you need for an os)
Web Browser - Check! (Chrome)
Value Proposition - Check! (Android)
3d Rendering - Check! (OpenGL ES)
Windows application support - Check! (http://arstechnica.com/news.ars/post/20080219-google-intoxic...)
Gaming Engine (valve)
Application Suite (Google Pack)
This is great humor - I ran as root while I was learning how to use slackware waaay back. Now I use Fedora because I'm lazy but don't worry behind the PECL and LIVNA libraries I still do a make && make install from time to time.
I think for a noob, running as root is probably wise, understanding chmod, and chown right off the bat is a tough one - and often people get so frustrated from the inability to change settings they give up.
Either way - Batman runs as root... thats good enough for me.
A great article. I have seen a lot about what Steve is talking about at corporations I've worked at. Plainly stated it is true that marketing makes money! - But incentive reveals motive. There are a lot of words we use instead of 'greed' like 'good business sense' - but if a companies primary motivation is greed it will fail, and if its secondary motivation is survival, it will just resemble the stages of grief. I have worked in technology a lot - and people in management will always say to me "I don't care how you get it done ... just get it done." That is ok for other industries, for the automotive, and carpentry industries a manager can get by with that attitude, but what if your 8th grade math teacher told you the same thing? - Would you really learn anything about math? And that's what we need to take from this story, it takes SOMEONE with intellectual fortitude to 'bring it all together' like Steve so pointedly stated.
Greed isn't necessarily bad. If it means figuring out what service millions of people will pay money for, then yes, you're making money. but you're also creating a useful service. The two often go hand in hand.
Creating a good product because your greed says it will get you more money is ok, but I think the point is that if you flip it round - create a good product because you want your product to be good - you get a better product and potentially more money.