Hacker News new | ask | show | jobs
by zachstronaut 5219 days ago
Yes. I share your concerns. This attitude that HTML and CSS and browser UI somehow need to be replaced by a custom layer of JavaScript ultimately is a slippery slope towards things like applets and swfs... towards a byte-code compiled web. See also: Native SDK.

We've got all these mechanisms built up to deal with web UI that is constructed with HTML and CSS in terms of accessibility, in terms of search indexing, in terms of browser plugins and extensions, in terms of web services and bookmarklets, in terms of UI debugging... Also, the web UI you get with HTML and CSS inherits a bunch of standard behaviors and defaults that make for more consistent experience from site to site. Consistency in UI mental models is a great thing.

I can't think of a single argument FOR this idea of rendering UI entirely in canvas that shouldn't instead be met with a response of "so lets make HTML and CSS better!" Instead of improving the open standards of HTML/CSS, people are pushing towards proprietary solutions.

Sometimes even the best intentions can go awry. I don't think this is malice so much as ignorance.

1 comments

Sorry, but those things are totally different. Applets and flash are plugins - proprietary additions to browsers that live in a black box. Canvas is a standard, and is part of the browser itself. HTML and CSS don't need to be replaced for most things, but this is an interesting experiment to see whether for a certain class of applications, canvas can outperform the DOM and take care of some of the cross browser issues that CSS is plagued with. I don't get why people are so attached to HTML and CSS.
I'm attached to HTML and CSS because I remember UI programming before HTML and CSS. I'm attached to HTML and CSS because of the debugging tools for HTML and CSS UI. I'm attached to HTML and CSS because it allows for bookmarklets, and screenscraping, and browser plugins/extensions. I'm attached to HTML and CSS because it creates a beautiful separation between front end and back end code. I'm attached to HTML and CSS because UI designers can skin software built by JS programmers by tweaking a CSS file without having to know any JS. I'm attached to HTML and CSS because the web is HTML and CSS.
It's still an HTML document. Bookmarklets and screen scraping are most certainly doable. The latter, probably easier than it normally is. How is this presenting a problem?

Browser plugins and extensions are entirely unrelated to HTML and CSS, but if they were related it'd still be a non-issue since this is still an HTML document in a browser.

Just because things sucked before HTML and CSS doesn't mean that they're the pinnacle. I personally find debugging HTML and CSS incredibly frustrating. Uneven standards implementation across browsers doesn't help either.

And I am seeing first hand how UI designers find CSS (it's NOT intuitive at all).

We build things with HTML, CSS, and JS that they were never designed to be building blocks to. At some point we either have to accept that these are not up to scratch or we can continue to see the web eroded in favor of native platforms (most of which are even more closed).

Attitudes like this makes this quote ring true: "All truth passes through three stages. First, it is ridiculed. Second, it is violently opposed. Third, it is accepted as being self-evident."

Let's not get all Gandhi here. You're not liberating a people from an oppressive colonial power. You are programming.

The newness of an idea does not indicate its objective "truth."

I'm saying that HTML and CSS can and should be brought "up to scratch."

I also disagree with your assertion that HTML, CSS, and JS somehow have some predefined subset of things that were intended to be built with them.

Actually I do find the DOM oppressive, especially at 4am in the morning before a deadline ;)

On a serious note, there is no historical precedent for standards committees to competently steer the technical underpinnings of a platform as dynamic and fast-changing as the web. Web development is unwieldy right now because of this.

I never asserted "that HTML, CSS, and JS somehow have some predefined subset of things that were intended to be built with them." At the end of the day, software performance is based on architecture. The architecture of a platform or a language or a framework is intertwined with it's intended purpose. Anything otherwise is just bad engineering.

HTML and CSS are reasonably well engineered tools. They just rely on the web from the 90's, a set of interconnected documents. Not the application and data driven web. The architecture is not designed to handle these new paradigms.

And JS? JS was designed to do form validation. Nowadays it can run your entire web stack, it was NEVER designed to do this. Can you build awesome web apps with HTML, CSS, and JS? You bet. But don't kid yourself that it's easy. Tools like Cappuccino, and Sproutcore, and Blossom are awesome and help sort of solve this issue but they do so at huge performance costs.

Someday the web will be written using the tools and frameworks that don't drive developers to frustration. How soon that day comes will have a lot to do with how attached we are to the outdated architectures used by the web today.