Hacker News new | past | comments | ask | show | jobs | submit login

> I'm afraid you're browser doesn't support XScript, please download Chrome Explorer 310.

But this sort of thing already happens all the time. You don't have the right flash player, or the right silverlight player, or the right version of Java. There would be very little difference in the UX between different scripting languages and the current UX w.r.t. media codexes, and the end result would be the same in both cases: there would be some repertoire of languages and codexes that everyone uses and become standard.

The alternative is to forever have to deal with a language that by design cannot even handle integer math or unicode strings properly.




> But this sort of thing already happens all the time. You don't have the right flash player, or the right silverlight player, or the right version of Java.

That's exactly the point. Imagine dozens of them.


Dozens of what? Browser plugins? I don't have to imagine, that's the world we live in. Dozens of languages? I very much doubt that will happen. Just as we only have a small handful of codexes that actually matter (Flash, Silverlight, H264, maybe ogg) I predict that we will end up with a small number of languages that actually matter: Javascript, Python, Ruby, and Scheme. Maybe CL.

IMHO that would be a better world than the one we currently live in. Javascript is serviceable for its original purpose, but for serious webapps it's broken beyond redemption. NOTE: This is not to say that it is impossible to write serious webapps in Javasceript. Obviously it is possible. What I mean is that at some point the aggregate cost of dealing with Javascript's design flaws becomes greater than the aggregate cost of dealing with multiple browser scripting languages.


> Dozens of what? Browser plugins? I don't have to imagine, that's the world we live in.

That's quite a stretch. There are two browser plugins that are in broad use on the web: Flash, for fallback audio/video support and some casual games, and Silverlight, for Netflix. Both are dead technologies when you consider mobile web; even if you're only thinking about laptops/desktops, both Silverlight and Flash have essentially been abandoned by their creators, and the web platform has almost entirely subsumed their original purpose for existing, currently with the exception of DRM.

Personally, what I'm hoping happens is that we get one, single better compile target, and languages can just target that — giving the web a broader selection of languages without the fragmented nightmare (and security nightmare) of introducing dozens of new plugins. This is something that browser vendors are currently working on: Google with PNACL, and Mozilla (and, to some extent, Google as well) with asm.js. I hope we end up with PNACL, but a sufficiently optimized asm.js would serve the same purpose, albeit with a more difficult debugging / performance optimization story.


> Personally, what I'm hoping happens is that we get one, single better compile target

That is a terrific idea in theory, but the last time anyone tried to do that the result was the JVM.


Are you trolling here, or are you really implying that the JVM is bad? Could you elaborate?

I consider the JVM to be the best part of programming in Java. The JVM is fast, lets you write very portable code, and it gives you a great debugging experience. Plenty of other languages chose to target the JVM, like Scala and Clojure, for its quality.

That's not to say the JVM is perfect. I don't like type erasure for instance (I understand C# has 'better' generics). Nevertheless - and this idea comes up frequently - imagine if browsers ran VM bytecode instead of interpreting JavaScript. The browser would be totally language-independent. You could write in any language that compiles to the browser bytecode, and deploy the precompiled bytecode 'object' files. I mean, it is a great idea in theory, and it's exactly what the JVM has succeeded in doing, except that the JVM does it for operating systems and not browsers.

Of course, this is all a fantasy at this point. There's no possible way browser vendors would ever agree on a standardized virtual machine, much less all implement it (see DartVM).


> Are you trolling here, or are you really implying that the JVM is bad? Could you elaborate?

No, I'm not trolling. I was responding to someone who said that the two non-dead browser plugin technologies were flash and silverlight. Java is notably absent from that list. (Can you even interact with the DOM from a Java applet?)

I agree with you that the JVM is the best part of Java, but that's not saying much IMHO.


Java applets had a lot working against them from a technical and UX perspective: they were insecure, and popped up quite scary warning notices about security that had to be clicked through in order to run the applets. Java was also poorly optimized for consumer-facing applications: JIT startup and warmup time was sufficiently long that they felt more sluggish than HTML/CSS/JS, despite the fact that in the long run the JVM outperforms JS by a significant margin.

In an aside, the JVM has only relatively recently been an effective general-purpose compile target, and it wasn't designed as such. The JVM's failure for frontends doesn't give much indication as to where the pitfalls of targets like PNACL or asm.js might be: it died (deservedly) because of reasons that apply to neither technology — slow startup time and lack of effective sandboxing. Both PNACL and asm.js start quickly, lean on hardware-acceleration in the browser to react smoothly, are designed from the start as compile targets, and are sandboxed to the point where browser vendors don't feel the need to pop up warning boxes that scare off consumers.


And the JVM is wonderful!

Incredible amounts of R&D devoted to optimizing its performance, broad hardware and os support, with lots of interesting languages to choose from running on top of it.


Yes, but as a browser extension technology I think it's fair to say that it has failed.


>But this sort of thing already happens all the time. You don't have the right flash player, or the right silverlight player, or the right version of Java.

For one, if you find it bad, then why would you want to add to this badness with extra web languages? If anything, what you say is a counter-example.

Second, what you describe has stopped happening to 90% of web users for like 5 years or so. Nobody caresa bout Java or Silverlight, and Flash is getting all the more obscure. Heck, major browsers like Safari don't ship it algother, and even YouTube plays without it. At worse, you lose some shitty casual games.

>The alternative is to forever have to deal with a language that by design cannot even handle integer math or unicode strings properly.

Well, we seem to be doing ok even with such a language. Besides, most languages cannot handle unicode strings properly anyway (including Java, Go, PHP, Python, Ruby and several others). There are just too many subtleties.


> if you find it bad

I don't. (Presuming that by "it" you mean "having a lot of plugins floating around".)

> Nobody caresa bout Java or Silverlight

Netflix uses Silverlight. There are an awful lot of nobodies using Netflix.

> we seem to be doing ok even with such a language

That depends on what you consider "OK". Blub users always think that things are OK.

> most languages cannot handle unicode strings properly

The problem with JS is that the standard requires strings to be represented internally as UTF-16, which cannot cover the entire unicode code point space. So JS's brokenness is worse than other languages because it is actually enshrined in its standard.


>That depends on what you consider "OK".

What I consider OK is that we have had great growth in the breadth, scope and capabilities of the modern web. I've been on it professionally since 1996, and followed it even before, and I don't think there's anyone who would disagree with such a statement.

From a joke environment based on plain text circa 1993-4, we know have the ability to emulate whole CPUs inside a Javascript VM, AND with usable speed. And then there's ES6 with a whole lot of additions to the language.

>Netflix uses Silverlight. There are an awful lot of nobodies using Netflix.

Well, in the US. The world is 20 times bigger than the US. I'm not even sure why US users put up with Netflix pulling this shit.

>Blub users always think that things are OK.

Well, other's have it worse. They always think that the "blub" concept, a random idea in an essay, is something that's true, universal and settled, were it's just someones opinion. The blub idea, furthermore, is about the "expression problem", and it's condescending to people by assuming that that's all that matters.

People chose to write something in C, C++, Assembly, Lisp, Haskell whatever for lots of reasons, and the success of that undertaking involves a lot more reason than "expression". Things like community, libraries, toolsets, hireability, existing codebase, documentation, speed, heck, even familiarity, play a role as much, or even more, important than the mere "expression" capability of the language.

And, statistically speaking, the oh-so-expression language people don't have much to show for it, whereas the blub C/C++ people have tens of thousands of indispensable programs used by billions. Sure, they are much less, but at one point they were much more (Lisp existed before C/C++), and they also had nice funding going on until the mid-eighties, with not much to show for it. 3-4 C people in AT&T laid the foundation for most of what we use today. Were are the equivalent non-blub people, who had an impact in fields other than PL design?


> 3-4 C people in AT&T laid the foundation for most of what we use today.

The security consultants on the 21st century know whom to thank for their jobs.




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

Search: