top | item 5246004

HTML5 is the future of development, and it sucks

31 points| tylermenezes | 13 years ago |blog.framebase.io

32 comments

order
[+] tulrin|13 years ago|reply
HTML is unlikely to replace native platform development except in some areas where a "cloud based" app makes sense such as calendars, email and file storage... Or in other words where content is document oriented.

The reason is the same as to why Java never replaced C/C++: Performance.

HTML requires runtime interpretation so matter how fast that is made compiled programs will be orders of magnitude faster. The reason lies in the laws of physics and as such will always be an insurmountable factor in favor of machine code.

So called experts have been predicting the end of native programs for many years however it has failed to materialize. When the web catches up and can do something as well as a native program the native program has moved on to even bigger and better things.

There will always be a place for both and the likely future will be just as it is today, a mix of web-based apps and native apps.

As a matter of fact if you look at the current market with mobile platforms included native applications have actually increased.

As a side note, if you are looking at Microsoft as an indicator of the future you will be sorely disappointed. Microsft's "me too" development strategy seved them well in the past however in the last five years it has been their undoing. It is possible that they can turn things around but it certainly won't be with Windows 8.

[+] Skoofoo|13 years ago|reply
> I can’t help feeling that we might be better just starting over with a totally new spec.

We might be. I've been thinking a lot about this, because this is something we will eventually need to do. It is ridiculous how contrived and complicated it is to develop for the web nowadays. When the web first came out, all you had to know to make a competitive website was HTML and some Perl or PHP. Now it is a fatter HTML(+Haml), along with CSS(+Sass/Less), JavaScript+jQuery+Backbone(+CoffeeScript), Ruby+Ruby on Rails+RSpec/Python+Django, and potentially others, none of which are getting any simpler. It's already become impractical for neophyte developers to learn the ways of the web versus Android/iOS.

The main issue is that we would have to design a successor to the web that is so much better that it's worth jumping ship and obsoleting the huge amount of work put into building the web, and worth the work of creating and maintaining ports for every platform and convincing millions of people and thousands of developers that it's the future, in the midst of a cold war between the open web and walled garden platforms.

I plan on writing a post with my design for such a successor :) This is something more people should be discussing. An open platform can't win if it takes so much contrived knowledge to make an app for it.

[+] unconed|13 years ago|reply
HTML5 sucks because he doesn't know about UTF-8? Yup, definitely a C programmer. I'll be over here, doing JS, not giving a shit about binary-safe strings.
[+] PasserBy2|13 years ago|reply
Modern web basically limits client-side innovation to within HTML/JS. Why do I need to wait for some consortium to scratch once per decade and spit out an evolutionary version of same ol'? "Look we have this control you can draw on, we call it The Canvas! Innovation!".
[+] unconed|13 years ago|reply
"And now we've taken this canvas, and hooked it up to a modified version of OpenGL ES!" Only it turns out that neither Apple nor Microsoft trust their "superior" native drivers enough to let the open web talk to it, even through a completely type-safe and memory-managed interface.

Different constraints, different security model, different applications. But the fact that triple A games still routinely crash on Windows is enough of an indicator that the security and stability of native code is highly overrated.

[+] ibudiallo|13 years ago|reply
Well you learn c, c++, java and all those fantastic languages for years and you mastered them. Now you come across javascript and you suck. There is only one thing to do. Learn it and stop complaining. This is a whole new game
[+] general_failure|13 years ago|reply
I agree that HTML5 is not pretty and not ideal. A large part of the HTML5 trend (for apps) is that most apps have moved to the cloud. This means that the front end is not overly complex. For a world where software is moving to the cloud, HTML5 fits the bill. Again, not pretty but works.

Why would I want to write a cloud service front end 3 times - in Obj-C ,Java, C#, HTML5 itself (firefoxos). There's no value.

[+] PasserBy2|13 years ago|reply
"Why would I want to write a cloud service front end 3 times..."

Because you want native platform look and feel? Will you have WP tiled layout in your iOS app?

PS: you could use Mono.

[+] puddlewitt|13 years ago|reply
I too agree. Developing for the web is painful, as already stated the only thing I like about it as a developer is the zero deploy.
[+] macavity23|13 years ago|reply
"Javascript is so far removed from what most programming languages look like, that people who know almost any other modern language still require extensive education to understand Javascript."

Eh? Anyone who has ever programmed any functional language can grok JS very quickly.

[+] WayneDB|13 years ago|reply
You can have my native SDKs when you pry them from my cold, dead fingers.

I don't care what you say - I will find a market that I can develop native apps for or I will quit being a developer. That is how much I think HTML/CSS/JS suck for front-end development.

The only thing the web's got going for it is the zero-deployment. Everything else about the web (for apps) is stone-age compared to native platforms.

"I can’t help feeling that we might be better just starting over with a totally new spec."

Agree, 100%. I don't want to use a document platform as an application platform. HTML is fine for documents. Let's have something new for apps please. I don't want to type "5 divs" to have a simple 3-column grid layout. I want to type "grid columns=3".

[+] malandrew|13 years ago|reply
What about the web is stone age and that you would need for web development to be on par with native development?

Genuine question here. We're working in this space and we want to know more about what you feel is lacking. We have our ideas on how things can be improved, but we want to hear specifics from developers like yourself.

[+] nkerkin|13 years ago|reply
There's plenty of js grids out there that allow you to pass in column definitions. You should try out angular.js, you can build your own directives to support expressions like "grid columns=3"
[+] PasserBy2|13 years ago|reply
Finally, a sane person! I wish there was a light-syntax open-source version of XAML...
[+] kunai|13 years ago|reply
The proof is in the name:

HyperTEXT MARKUP Language

HTML is for documents. Some sort of sick, twisted ideology has proclaimed it the all-useful programming language, but I repeat -- HTML is not an all-purpose programming language, the proof is in the name.

I want to deal with arrays, strings, pointers, and variables. I want to get down there with the hardware and control it myself. I want to optimize memory myself.

I want to do the dirty work because I want control over the computer I'm programming for.

Trying to replace C/C++/ObjC/Java/Python with HTML is like trying to replace LaTeX with plain text formatting. It's just way too limited for ~90% of the uses of programmers.

Don't get me wrong, HTML is awesome for documents and has come a long way, but it is no application development platform.

Not when you have <h1> and <body> tags scattered throughout instead of

  #include <iostream>
  #include <string>

  int main()
  {
       using namespace std;
       cout << "Do you honestly think HTML5 is a replacement for C++?\n";
       String x;
       cin >> x;
       cin.ignore();
       if ( x = "Yes" )
       {
            cout << "You probably work for Google. Get out of here!\n";
       }
       else if ( x = "No" )
       {
            cout << "It's nice to see that we're on the same page here; HTML is a document editing language first and a programming language 50032th.\n";
       }
       return 0;
  }