User: Password:
|
|
Subscribe / Log in / New account

Opera moves to WebKit and V8

Opera moves to WebKit and V8

Posted Feb 17, 2013 18:13 UTC (Sun) by khim (subscriber, #9252)
In reply to: Opera moves to WebKit and V8 by kripkenstein
Parent article: Opera moves to WebKit and V8

Standards are meaningless with a single implementation.

And this is a bad thing… exactly why?

Standards only raison d'etre is interoperability (well, some companies think it's PR - see OOXML, but let's ignore these aberrations for now). If you have just one implementation then interoperability is achieved automatically. In fact most languages achive interoperability this way: perl, tcl, python… they all have one "canonical" implementation which defines what the language is. Why is it such a bad thing to have for HTML or JavaScript?


(Log in to post comments)

Opera moves to WebKit and V8

Posted Feb 17, 2013 18:53 UTC (Sun) by viro (subscriber, #7872) [Link]

One name: srb. The situation when language is defined by "how does this one interpretation work" can suck _very_ badly.

It boils down to this: unless the damn thing includes strong AI, you need interoperability of sorts, at least with the mental models in the heads of programmers writing in that language. Learning a language means building such a mental implementation, just to be able to reason about the expected program behaviour. Without that people are reduced to cargo-culting their way through every problem and that's *not* a way to write well.

sh(1) sucked well before there had been other implementations (not that they had helped when they appeared) and in large part it had been caused by lack of predictability...

Opera moves to WebKit and V8

Posted Feb 17, 2013 19:23 UTC (Sun) by pboddie (guest, #50784) [Link]

Indeed, singular implementations of supposed standards (or mere descriptions of how something is supposed to work) can really drift away from the documentation to the point that those implementations actively conflict with the documentation (or folklore) of what is supposed to be going on under the cover.

It also doesn't help that in some projects, comments and documentation strings are seen as superfluous fluff, meaning that one has to get into the exact mindset of the developers to first of all discover what they were trying to do, and only then to figure out what they meant to do.

Standards can be fairly awful things that are mostly exercises of formalising various vendor implementations, and I perceive Opera Software to be yet another vendor in this respect, even though the various Web standards involved have been fairly comprehensive and coherent. But they do serve a genuine purpose.

Opera moves to WebKit and V8

Posted Feb 17, 2013 22:02 UTC (Sun) by anselm (subscriber, #2796) [Link]

Having just one »canonical« implementation of a programming language doesn't imply interoperability across all platforms where that implementation runs. There are lots of things that can go wrong even so unless whoever maintains that implementation is very careful indeed. The case in point would be Java, whose tag-line, famously, is »write once, debug everywhere«.

In general, it is very useful to have a notion of what programs in a language mean which is independent of a particular implementation of that language – even if there is only one implementation. Otherwise it is impossible to distinguish actual intentional properties of the language from quirks of the (albeit »canonical«) implementation.

Opera moves to WebKit and V8

Posted Feb 17, 2013 22:56 UTC (Sun) by Cyberax (✭ supporter ✭, #52523) [Link]

>The case in point would be Java, whose tag-line, famously, is »write once, debug everywhere«.
Yeah, "a witty saying might allow your name to live forever" (c) anonymous.

But in reality Java works pretty fine across all supported platforms. People routinely use Windows to develop and debug Java software that is later deployed on Linux (or earlier on Solaris).

Opera moves to WebKit and V8

Posted Feb 17, 2013 23:50 UTC (Sun) by anselm (subscriber, #2796) [Link]

But in reality Java works pretty fine across all supported platforms.

Yep. They have had 20 years or so to get their act together, after all.

The fun observation when Java was new was that Java basically claimed to do, as a big innovation, what many other languages (including Tcl, Perl, and Python) were already doing as a matter of course – while Java failed abysmally. The »everywhere« in »run everywhere« essentially meant »Windows and Solaris«, and that was only if you knew what you were doing.

Java got to where it ended up because Sun spent millions in the 1990s marketing it to suits; based purely on its technical merits it would have sunk like a lead balloon.

Opera moves to WebKit and V8

Posted Feb 18, 2013 3:13 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

Come on. I realize that it's popular now to bash Java, but remember 90-s.

There was NO fast cross-platform language in 95-97. Python was still very young, Perl was not fast (and, well, Perl), C++ was not nearly cross-platform (for GUI, in particular).

Java provided a way to create programs that run without large changes pretty much on all major platforms (even classic Mac OS).

Opera moves to WebKit and V8

Posted Feb 18, 2013 7:51 UTC (Mon) by anselm (subscriber, #2796) [Link]

Come on. I realize that it's popular now to bash Java, but remember 90-s.

Java was well worth bashing even then. As I said, it became popular only because Sun was flogging it to the suits. Eventually it had had so much money poured into it that it had to become a half-way usable language despite itself, but at least for the first five years of its existence it really, really sucked. Few technical people wanted anything to do with it if they could help it at all – the big use case it was being touted for (browser applets) never really got off the ground, and for most everything else, many folks thought of Java as a kind of C++ with non-removable training wheels and abysmal performance.

There was NO fast cross-platform language in 95-97.

That didn't really matter with respect to Java because Java at the time was by no means »fast«, either. In fact, compared to other interpreted languages of the time it was pretty slow. Just-in-time compilation for Java – which was the technique that eventually did make a difference – became popular only later.

Java provided a way to create programs that run without large changes pretty much on all major platforms (even classic Mac OS).

So? Other popular languages did, too.

Opera moves to WebKit and V8

Posted Feb 18, 2013 14:51 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

>Few technical people wanted anything to do with it if they could help it at all – the big use case it was being touted for (browser applets) never really got off the ground, and for most everything else, many folks thought of Java as a kind of C++ with non-removable training wheels and abysmal performance.
You're projecting.

A lot of technical people were thrilled with Java, because it FINALLY allowed to write large programs without spending hours compiling stuff or waiting for Perl interpreter to muddle through the code.

Java has never become successful on the client side, but on server-side it was an instant hit. A great explosion of OpenSource Java projects in 90-s attests to that.

> So? Other popular languages did, too.
Which ones (with cross-platform GUI frameworks)?

I know only of Tcl/Tk which requires, shall we say, quite a bit of getting used to.

Opera moves to WebKit and V8

Posted Feb 18, 2013 15:42 UTC (Mon) by anselm (subscriber, #2796) [Link]

A lot of technical people were thrilled with Java, because it FINALLY allowed to write large programs without spending hours compiling stuff or waiting for Perl interpreter to muddle through the code.

Yes, because Java in the 1990s gave you the joint benefit of both spending hours compiling stuff and waiting for the JVM to muddle through the code.

Now you're projecting.

I know only of Tcl/Tk which requires, shall we say, quite a bit of getting used to.

Tcl/Tk is a lot better than its reputation. It is safe to say that if Sun had spent all that money they spent pushing Java on pushing Tcl/Tk instead (which would have been quite feasible given that Java was a SunLabs project at the time) the world would be a different (and arguably better) place. Remember that in the 1990s Tcl/Tk was a language that actually had serious commercial users all over the place, while Java was a language desperately in search of something – anything, really – it could make itself useful for. Set-top boxes, web applets, you name it.

It is probably telling that Tcl/Tk, while never having had much of a marketing force behind it, is still popular in many places – and not unimportant ones, either.

Opera moves to WebKit and V8

Posted Feb 18, 2013 16:50 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

> Yes, because Java in the 1990s gave you the joint benefit of both spending hours compiling stuff and waiting for the JVM to muddle through the code.
Java compilation was fast enough not to care about it. And JVM has had a JIT compiler since 96.

> Tcl/Tk is a lot better than its reputation.
Blergh. I remember hours of debugging trying to find where it concatenated strings incorrectly. Thanks, but no thanks.

Now, Smalltalk (and Strongtalk) might have been more widespread. That might have been more interesting.

> It is probably telling that Tcl/Tk, while never having had much of a marketing force behind it, is still popular in many places – and not unimportant ones, either.
Thankfully, it's getting used less and less.

Opera moves to WebKit and V8

Posted Feb 18, 2013 17:19 UTC (Mon) by anselm (subscriber, #2796) [Link]

And JVM has had a JIT compiler since 96.

For the record, HotSpot came out in 1999 and became the default in Java 1.3, which was released in 2000. The HotSpot JVM was also not a particularly portable program, so the performance benefits of JIT were by no means universal to all Java platforms. (Which was fine by Sun because it meant that for reasonable server-side performance you pretty much had to be running Solaris.)

Opera moves to WebKit and V8

Posted Feb 18, 2013 17:28 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

For the record, JIT compiler (not a HotSpot compiler) become available in JVM 1.1 in 96. This JVM actually had a pluggable JIT interface, so there was a couple of custom JITs.

The first HotSpot JIT was present in JRE 1.2 (that's why it was called 'Java 2') later in 97.

Opera moves to WebKit and V8

Posted Feb 18, 2013 21:23 UTC (Mon) by pboddie (guest, #50784) [Link]

I suppose that adding a JIT that finally delivered on the research done previously on Self at Sun Microsystems probably did merit a major version bump, but Sun (and coincidentally Oracle) were masters at a bit of version bumping to warm over products getting a lukewarm reception.

For the record, I stumbled upon Java, Tcl/Tk, Python and a bunch of other languages at the same time, in around 1995. Java was the only one that needed me to get a disk quota upgrade and an account on a flaky Solaris server (whereas the others all ran on SunOS and a multitude of other platforms). I recall a colleague during my summer job showing me Java for the first time: Duke the Java mascot waving in an applet; premium UltraSPARC workstation required.

To be fair, I did get some mileage out of Java for a university project, doing a bit of graphics in AWT instead of using Xlib like everybody else, but a few months later I would saved myself the hassle of the dubious AWT implementation and used something like Python and Tk instead.

Sorry, how did we get onto this again?

Opera moves to WebKit and V8

Posted Feb 21, 2013 4:40 UTC (Thu) by mathstuf (subscriber, #69389) [Link]

> Which ones (with cross-platform GUI frameworks)?

Qt was started in 1991. I don't know when QtGui popped up.

Opera moves to WebKit and V8

Posted Feb 24, 2013 11:51 UTC (Sun) by Jandar (subscriber, #85683) [Link]

> But in reality Java works pretty fine across all supported platforms.

Only if you restrict the jre to a specified version and test the programm on all used platforms.

Up to now this "runs everywhere" is total bogus. Everytime a new jre version is rolled out by a customer reports about changed behaviour starts rolling in.

Opera moves to WebKit and V8

Posted Feb 19, 2013 3:47 UTC (Tue) by rgmoore (✭ supporter ✭, #75) [Link]

If you have just one implementation then interoperability is achieved automatically.

Not really. Fred Brooks goes into some detail of the drawbacks of implementation as specification in The Mythical Man-Month. The problem is that you never have just one implementation. Every version is a subtly different implementation from the previous version. If you define the implementation to be the specification, there are no such things as bugs. Every quirk of your implementation is part of the API, and any attempt to fix what you see as bugs may turn out to be eliminating a feature that somebody has come to depend on. Even if you have just one implementation, it can still be useful to have a formal specification to prevent yourself from getting stuck with that kind of problem.


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds