Andrew Lentvorski wrote: > Christopher Smith wrote: >> Andrew Lentvorski wrote: >>> It's the C++ folks who should feel the threat. C++ really needs to >>> die at this point. >> Yes, they should be really threatened by all the other languages that >> have been used to implement full featured browsers. Languages like...... >> Okay, maybe they aren't so worried. ;-) > > Yet businesses who are running much larger codebases seem to be all > Java based. Gee, I wonder why .... You of course would be referring to business like Google, Adobe, Yahoo, Microsoft, Symantec,..... ;-) > Or maybe, that means we should use a language like C++ for really > large, complicated systems like ... say ... operating systems? Hmmmm, > no that doesn't seem to quite fit either since no large operating > system has been written in C++. I guess that depends on how you define "large" and "operating system" (one might claim Linux is written in C, but KDE sure accounts for a lot of the code ;-), but certainly there are a number of operating systems primarily written in C++, and they have been high quality implementations with comparable capabilities to their C breathren. > Don't confuse arguments of merit vs. arguments of inertia. Oh, trust me, I wouldn't. > Every current browser that I can think of has a code base that stems > from a time when the only really commercially used languages were > Cobol, FORTRAN, C, C++, Lisp, and Ada. When you then factor in the > price of language compilers other than GNU C/C++ back in the 1988-1994 > timeframe, you have a whopping codebase built around machine > assumptions and economic conditions that haven't held for almost 20 > years. Yes, unfortunately back then you could only get free fortran, LISP, and Ada implementations, so I guess that the only reason we haven't seen the great Cobol browser is because it wasn't available for free.
There were lots of programming languages one could aspire to write a browser in back in that era. Heck, before Java took over the scene everyone was trying to be the "alternative to C++". Certainly, there were also quality implementations of Objective-C available for free. You could get Digitalk Smalltalk for $100. Visual Basic was available at competitive prices. Perl was free. Free versions of Haskell and ML existed (in the case of ML, even decent ones were available). I don't recall a free version of Eiffel, but there was Sather. Pascal and Object Pascal were available (Borland's Delphi showed up right when Java did, IIRC). Oberon-2 was available. Implementations of Modula-2 and -3 were available. Python was available. Ruby was too, but I don't think anybody outside of Japan had heard of it yet (but that wouldn't stop the Japanese with coming up with a browser). There were several free implementations of LISP/CLOS and Scheme available (and in the case of Scheme, you could pretty much build your own in the course of a week), not to mention some reasonably priced LISP/CLOS implementations. You could find free versions of Simula and it's descendant: BETA. Sure, there are better implementations of a lot of these available at lower costs today (well, those that survived the Java onslaught at least), but the same is true of C++. In fact, browsers were written in many of the languages I mentioned, and they all tended to suck compared to Netscape or even second tier browers like Mosaic, IE, and Cello. There was a reason the Netscape folks chose C++ from all the language choices they had back then. In truth, modern browsers are built on codebases that were largely rewritten from scratch in the late 90's, so there was a chance for a new language champion to emerge. Furthermore, the codebases of older browsers were so small that it didn't take much effort to reach feature parity of them (indeed, there was an old Dilbert comic strip that jokingly made reference to the notion that typing randomly at your computer for a few days would produce a functional web browser). Java in particular has no real excuse beyond language limitations. The HotJava browser was written in 1994 and released in 1995 (oh, and Java was available for free in 1995 too). It was briefly successful due to its unique support for Applets, but rapidly lost favour once other browsers obtained the capability. Sun made various attempts to revitalize the project, and never drew much interest. At the same time that the Mozilla code base was open source, Netscape open sourced "Jazilla", their own in-house Java-based browser effort. While having most modern browsers implemented in C++ doesn't prove much of anything in terms of its superiority, it does prove much with regards to arguments about its inferiority. If other languages were so obviously better than it, surely we wouldn't all be using C++ browsers, e-mail clients, word processors, spreadsheets, etc. Surely the huge technical disadvantage you suggest would ensure that developers would come up with better solutions in other languages, or never think to choose C++ for their projects to begin with. > Of course, since C++ doesn't even play well between different > compilers, it's no surprise that those who use C++ are trapped with it. I grow tired of this silly statement that you raise again and again. Heck, most Java implementations are built from the same reference code base, they have a massive conformance test for branding, and yet you still run in to problems between the different versions (and the ones that are from unique codebases are even more problematic). Heck even Java compilers, despite largely being glorified parsers, run in to problems (I still recall Sun simply refusing to fix a bug in their VM back in 2000 on the grounds that the byte code sequence in question would never be produced by *their* compiler). I've seen first hand the problems that spring from different implementations in C, Smalltalk, LISP, ML, Haskell and even Perl back in the early days of the ActiveState fork (and they had the advantage of full access to the original version). I'd argue that having such issues is actually a sign of a language maturing to the point where multiple competing implementations exist. Eventually, with additional maturity, those issues begin to diminish (as they have with C++). --Chris -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg
