Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Is it the web’s purpose to emulate native by inserting yet more features?

Certainly not. In my opinion, the problem with the web is that it has become too complicated. In an effort to make the web simpler for the ordinary user, the web has actually become a more complicated place for the (advanced) developer.

HTML, CSS and javascript have grown so complicated that they lack certain desirable properties, such as verifiable security, flexibility. For instance, a developer has no choice of programming language, but has to resort to javascript; we are stuck with the cooperative multitasking of the 80s (webworkers support only message-passing, no shared state); also, the developer has no choice of render engine, and to make matters worse, the developer has to write code that is compatible with about five different platforms (desktop/phone/tablet). And of course, the fact that those platforms are not identical is also due to the fact that the web is too complicated.

I'm hoping that in the future, we can make the web more simple and elegant for the developer. We need simpler primitives, not the complicated and restrictive building blocks that we have seen thus far.



Lack of support for shared state is no disadvantage! When you write multithreaded programs in a language such as C++ or C#, you try to impose on yourself the same restriction, in the interests of making your life easier...

(I haven't used web workers, so maybe they're in fact awful to use. But from what I've read, it looks like the right decisions were made, pretty much.)


Why be so protective? Perhaps somebody invents some programming tool that makes it easy to reason about shared state. This is exactly the kind of mind-set that makes it difficult to develop for the web.

Also, shared immutable state is a useful (often perhaps even essential) property for building efficient code in a multithreaded environment, even when using the message-passing style.


Tastes differ. I don't have any problem with erring on the side of overprotectiveness when it comes to multithreaded programming.


> HTML, CSS and javascript have grown so complicated that they lack certain desirable properties, such as verifiable security, flexibility.

Verifiable security? You can't statically verify a program is secure.

Flexibility? The complexity has given it greater flexibility.

> For instance, a developer has no choice of programming language, but has to resort to javascript

Just like on native platforms, where the developer has no choice of programming language, but has to resort to machine code!

Unless you use a compiler. Which you can do, and it works very well.

I thought you thought complexity was a problem? Introducing "native" other-language support would only increase it.

> also, the developer has no choice of render engine

I thought complexity was an issue?

But this is also not true. You can use your own if you really want to.

Although why you need your own rendering engine is a good question. Almost all native apps use the OS's GUI framework.

> the developer has no choice of render engine, and to make matters worse, the developer has to write code that is compatible with about five different platforms (desktop/phone/tablet)

Who said they did? They can choose to write code that doesn't work well on other platforms. Though that's largely a UI thing, the code will run on any without changes.

> And of course, the fact that those platforms are not identical is also due to the fact that the web is too complicated.

What? From a code perspective, if it runs on one, it runs on the others. The API is the same. The only difference is UI: screen sizes and input methods.

> We need simpler primitives

We have those. If you want to run a 50MB C++ GUI framework in the browser, you can! It's just a terrible idea.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: