Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Web sucks and here’s how we can make it awesome (www.presslabs.com) similar stories update story
23.0 points by blubblyboo | karma 15 | avg karma 3.0 2015-02-11 17:25:57+00:00 | hide | past | favorite | 22 comments



view as:

This reads more like a ramble than something that resembles an argument of any coherency. For example, why not assign some blame that the consumer hardware technology is not up to snuff, or why bring in CoffeeScript as a counterpoint to JavaScript's flaws, CoffeeScript having some arguably worse problems? The JS examples are particularly contrived, since most serious developers avoid many of the approaches, if not all, laid out in the code snippets.

Every programming language has it's warts, JS is no different. But it's no harder to learn or work in then any other language, and it's far easier then most.

CoffeeScript sure does have some problems of its own, but it was designed to be compilable to JavaScript.

And of course developers are not going affected by the flaws mentioned in the snippets, but they're present and not nice. Would you like to work on a desk that's always messy?


Yeah, but he linked to the most epic internet take-down of any language ever[0]. So, you know: points++

But the brief section on SQL is just weird. It's so completely awful that some people invented a shitty way to not use it? That's the argument? Huh. Command Lines must be completely awful because someone invented a mouse and some pictures, and those are a shitty way to not use command lines.

[0]: http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/


Nobody said it's completely awful. It's just that using learning another language for it isn't necessarily the best way to go for someone new. Just like I'd rather use only one single language for scripting on my PC, not 5.

Well, if a database were a PC that you were writing some scripts for, then it might make sense to control it with the same language you use for scripting your PC, wouldn't it? I'd say it's a different enough thing that the same tool doesn't fit both well.

But to be serious, it's not the language that's the barrier. It's the concept of sets and set computation that's different from the more normal things. The language just happens to address the problem domain pretty well. What avoiding learning a smidge of SQL does is allow you to avoid learning to understand your data. And that's probably fine for a beginner. But the article wasn't really addressed to what's wrong with the web for beginners. It's about what's wrong with the web, period. And I don't think that SQL--as a langauge--is really a problem.


Using PHP to give an example of why the Web sucks is like saying MS-DOS sucks because of QBasic.

True, but people associate it with web development. Do a university course, most likely they'll teach you PHP. Contract someone to do a small site for you, they'll probably use PHP. WordPress uses PHP and it's the foundation of some of the most popular websites on the web.

Even if you want it or not, PHP is part of the web, de facto or not.


Aren't a significant proportion of web sites you can visit built on top of PHP?

I find it amazing how all these self proclaimed web gurus that make "pretty" blog posts or articles think that they're way of doing things is so great. This ? is how his blog looks on my phone. Gotta love reading two words on a line.

? http://i.imgur.com/WQ3Um9d.png


The article's flaws aside, it does give a number of specific examples of Javascript design flaws, specifically type system flaws leading to unintuitive results (like the "wat" talk). These are real flaws, which actually occur in real code that people are writing in Javascript, and this has been the case as long as Javascript was a thing.

It is not trivial to avoid all of Javascript's design flaws, and the bugs they create, all of the time. Pretending otherwise is like pretending that "serious" C programmers always free their memory and never dereference invalid pointers. Even if you can solve certain problems by always writing your comparisons backwards, there is a design flaw there that didn't strictly need to exist. C has at least the excuse that it's intentionally very low-level.

Whether you like them or not, whether their problems end up being worse, the huge number of layers and transpilers over Javascript (like Coffeescript and jQuery) have a following because of Javascript's enduring legacy of pain. But due to the politics of browsers (and not due to Javascript's supposedly perfect design) we seem to be permanently stuck with Javascript as the only real browser language.


I agree with your points, but as far as the high level argument as to "why the web sucks" goes, they are fairly weak towards that end and not as decisive as laid out in the article.

There were many superior hypertext systems BEFORE and after the WWW was invented. The WWW is the only one that has had phenomenal adoption, probably do to a bunch of "Worse is Better" factors.

The WWW is more widely adopted than any previous or subsequent user facing technology.

Thought experiment: I think a Smalltalk image running on Smalltalk-80 bytecode is a superior web. You think python3 scripts running on it's bytecode is a superior web. How will we have bytecode interop and battle it out, until one of these bytecodes wins and is the de-facto bytecode standard on the "better web"?

Today, developers make Native apps using a mix of REST and other IP based protocols. This makes more sense than sending around bytecode.


Do you think that making Native apps (e.g., using Objective-C) makes more sense than sending around Javascript code?

There are many languages better than Javascript. I think it would be great if Smalltalk fans could replace Javascript with Smalltalk, if I even had a real option of using Smalltalk (and the differences between Smalltalk and Python can easily be overstated). Even in the absence of a standard bytecode, I have no problem with better things battling it out, as a way out of an artificially maintained monoculture based on a language with unusually many and severe design flaws.

Meanwhile, asm.js is presented as a bytecode which just happens to be a horrible kludge. Why couldn't we have designed a proper bytecode, again?

I can drag my feet through Javascript because I have had to for years, as if it were a temporary arrangement, but why does anyone feel happy to think that we are going to have to deal with the same horrible decisions in 20 years? Can I see something that even tries to be better just before I die, at least?


In many real world circumstances, I don't think building a native app makes as much sense as building for the web.

However... every project has different constraints and opportunities. There are situations where native apps make more sense.


The Web was built to deliver interlinked hypertext documents and it succeeds at this goal.

"I see two things that could help the web ... a standardized and modern UI API, like any decent OS has, and a means of executing any other programming languages on the client side."

The author is trying to redefine the Web as an Operating System.


Really?

Yes, by all means, let's take the web, written in human readable languages which anyone can study, and write, without much if any cs knowledge * and a compiler, and replace it all with closed source, probably proprietary, binaries.

That would be so much better. God forbid the web remain free when it can be clean.

* excepting javascript, but that's not exactly difficult, and hardly necessary, as opposed to having everything written in, say, python.


There's clean and open source. Look at some of the nicer Linux distros.

I'm not entirely sure there's any large and complex C/C++ application which would be considered 'clean' by any generally accepted standard.

And in any case, i'm not sure that requiring anyone who wants to put up their own webpage to know how to write an OS level application necessarily leads to a web with freer expression than exists now.


Legal | privacy