Well, C++ was never a "preprocessor". Cfront was always a full-fledged compiler albeit the output was not native assembler but C code. The Comeau C++ compiler works on the same principle. There is no need for C compatibility in the language in order to do this though.
When Stroustrup says C compatibility was crucial for its success, it is your final sentence that's relevant: the userbase was originally very small, and they basically demanded C compatibility. In "Design and evolution", Stroustrup explains how he eg tried to fix function declaration to something saner, but his audience threatened to walk-out on him if he did, so he was basically forced to cater to their whims because otherwise the language would be dead.
Without actually having read the "why C++ sucks" argument, I tend to agree that C compatibility was not necessarily a good thing, even if pragmatic.
1. Undefined behavior does not mean that a compiler is supposed to stop with an error. In fact, it means that the compiler should accept the code, but that the standard does not mandate any particular behavior in the code that is generated.
2. This is not equivalent to saying that a function which declares a non-void return type must have at least one return statement.
A compiler is certainly not required to stop with an error, but it is perfectly legal for it to do so:
"1.3.12 undefined behavior
behavior, such as might arise upon use of an erroneous program construct or erroneous data, for which this International Standard imposes no requirements. Undefined behavior may also be expected when this
International Standard omits the description of any explicit definition of behavior. [Note: permissible undefined behavior ranges from ignoring the situation completely with unpredictable results, to behaving during translation or program execution in a documented manner characteristic of the environment (with or without the issuance of a diagnostic message), to terminating a translation or execution (with the issuance of a diagnostic message)."
Perhaps you are thinking of unspecified behaviour?
What you are saying is not correct. The C++ standard says:
"6.6.3 The return statement [...] A return statement without an expression can be used only in functions that do not return a value, that is, a function with the return type void, a constructor (12.1), or a destructor (12.4). [...] Flowing off the end of a function is equivalent to a return with no value; this results in undefined behavior in a value-returning function."
It is perfectly legal for a compiler to issue a warning for this or even an error. I consider a compiler refusing to compile it a superior compiler.
Thanks for stepping up and fielding the question for me:)
Japanese already has a phonetic alphabet (well, syllabary) that is very well suited to write Japanese in the kana. Problem is, only small children write exclusively with it. To appear at all literate, kanji is certainly needed. It's actually a lot easier to read a Japanese text if there is kanji, as long as one knows the kanji in question.
You are completely ignorant of both runes and kanji if you think them similar, and that runes fell out of use because the latin alphabet is "superior".
An efuse is a physical alteration of the circuit. An FPGA uses SRAM or flashrom to hold the logic. Coming from PS3, I don't know anything about this Motorola phone, but I do know that people throw around the magical "efuse" whenever something happens that they don't understand. Example: "Sony prevented downgrades with firmware 2.10" -"OMG, they've blown an EFUSE!!"
From reading the brief of the previous story, this seems very much like one of those instances...
HAM didn't work quite as you describe. Six bits per pixel were used. The top two bits decided the operation according to:
00: bits 0-3 decides pixel value direct by indexing into the color palette
01: The pixel immediately to the left is copied and the blue component is replaced by bits 0-3
10: The pixel immediately to the left is copied and the red component is replaced by bits 0-3
11: The pixel immediately to the left is copied and the green component is replaced by bits 0-3
The palette also need not be fixed but could be replaced mid screen, as could the resolution.
The Amiga had four non-pannable PCM audio channels: two fixed to the left audio output and two to the right.
The Amiga blitter could be used for rendering filled vectors, although not in the most efficient manner since it required line-drawing first, followed by a copy and fill.
Well...
NASA has never lost any space probes due to software bugs, right?
And OpenBSD has only had two remote holes ("Only" two?) in the default install (with nearly all services turned off).
Avionics industry is doing better, but check out the requirements on them ( http://en.wikipedia.org/wiki/DO-178B )
If this is to be followed for all software, well, something is certain: costs and development time will go up.
In my limited experience, the wish is rather for these to go down even further, with more impossible deadlines ever coming up...
I'm not sure what you are complaining about exactly? DRI is an architecture, and one that couldn't support the features nVidia wanted. So they invented their own and hooked that into X. Is your complaint that they didn't make this achitecture open to all?
Well, it is maybe not the best counter-example to a rule "novels are unfilmable" as much as it was an extreme example because LR is simply a mastodont work any way you cut it, and yet it was successfully (at least at the box office) turned into film.
Now, I didn't like the films, particularly from the second half of the second film and onwards, but this is not because the book is decidedly "unfilmable"; it's simply because I think Peter Jackson is a poor director.
I did mention Neuromancer. He's an AI. He wants to merge with his brother. He is logical and impulsive and he manipulates the world. Don't you think this can be told in the film?
Linda? She was Case's earlier gf, right? And how much do we even know of her? Yep, that's right.
Riviera, yeah, I guess I kind of surpressed him since I found a hologram-projecting heroinist/sadist pretty...well...silly. Oh, along with the vat-grown ninja (but hey! it was the 80s! of course there had to be a ninja!) Hideo was of course also essential and with a fantasticly rich backstory, right? The director should definately take a deep look into those vats, hehe.
Now, I give you that I forgot 3Jane, and I'll grant that the whole Tessier-Ashpool business is rather murky, but really, what's important here is like, they built Freeside, they're responsible for the two AIs, they went more or less nuts and hide up in orbit, and they created cloned children, one of them being 3Jane. One would have to go into a bit more detail here compared with other characters, but it's not something impossible.
And now you'll have to excuse me, I didn't even remember Maelcum without looking him up. Now, that's an important character. Yeah, a rastafarian pilot who brings Case to Freeside. A lengthy backstory is absolutely of vital important here, I agree:)
And Julie Dean is so essential to the book that he is not even mentioned in the Wikipedia article. Once again, how could possibly a Neuromancer film be made without a careful exploration of this man's 150 year old life in hideous detail?
How to explain how Case is?
Short version:
-"I ripped of the wrong kind of customer." -"They punished me." -"Now I lead drugged up miserable life waiting for death because I can jack in no moooore!!!"
Of course, this very delicate and intricate part of the story would probably require one third of the film or so, which would leave very little screen time for exploring the inner depths of Angelo, the shark boy:/
That concept of cyberspace was pretty ridiculous from a usability point when it was first written. Dialing with a 300bps modem on my C64 was probably more effective:)
But much less interesting visually! And films are visual. There's a reason the 3D visualization of cyberspace is/was so popular in films.
On the other hand, and it's been a long time since I watched Johnny Mnemonic, but I don't immediately recall any 3D cyberspace in that one? What I can remember is that it was all about physically transporting data. Maybe Howard the dolphin did some 3D hacking?
I'm not sure I agree. My computer equipment still includes neither electrodes, immersive 3D visualization of cyberspace, nor AIs, and my equipment is pretty modern;)
Or if you mean that these things have already been used in films, yeah, well, that's true, but I don't feel a Neuromancer would be fatally hurt by that.
Seriously? If the criterion for being 'unfilmable' is being longer than a short-story, then per definition every novel is unfilmable.
Secondly, Neuromancer is dense? True, Gibson's prose is terse and not too seldom not very easy to follow, making it possible to fit quite many scenary-changes at a break-beck speed in not too many pages. You could either cut down on them, or for the 'purist' film, do them in a similar style to Gibson's prose with quick cuts from here to there without too much detail for the viewer's benefit.
And the characters? It's like, Molly - ex-prostitute kick-ass razorgirl with black implant glasses - Case drugie-exhacker, Finn - typical techie-information guy, Dixie Flatline - ROM construct of superhacker and Case old teacher, Armitage - constructed personality by Wintermute, Wintermute himself - Well, how much do you really need to say about an AI?
If you think these characters are too fleshed out to be able to appear in a film, well, I can understand the sentiment that all novels are unfilmable.:)
You do know that they made films out of The Lord of the Rings? True, I pretty much despise those films (except maybe the first one which wasn't too horrible), but plenty of people do like them...
Still? Did you not understand? They were forced to invent their own because it was impossible to implement the features they required, with DRI. This is not the same as a "Not invented here" attitude.
As for why they don't use DRI now, well, isn't it DRI2 that's the future these day? Anyway, as I have no association with nvidia I can but venture a guess that their design works well enough for them. As my ancient Geforce 6600GT was a hell of a lot faster in Linux than my last year's new ATI 4830, I kind of see the point:)
Why should they be forced to do that? Their business plan is to sell the hardware cheaply, or at loss even, and make money on software sales by having third-party developers pay a license fee for titles they wish to have available. Why should the hardware manufacturers not be free to use this tactic? Because it's better for third-party developers if they don't have to pay license fees? Are consumers better off? The price of software might possibly be lower due to removal of license fees, but logically the cost of the hardware would go up, but if the consumers buy enough software, maybe they are better off in the end. But is even this enough justification for removing the hardware manufacturers' freedom to choose what software they make available on their website?
Since when? I bought a Radeon HD 4830 early this year and it was pretty much unusable in Linux. Ok, I was trying to run Compiz, but my old nVidia 6600GT had no problem doing that, while the Radeon had trouble even with something as simple as just moving an xterm window, and not too seldom everything would just freeze and even lock up. In Windows (and Windows Vista at that!) it worked just great though. Since then I've switched to running Linux on my second workstation and plopped a fanless nVidia 8600GT in there and it runs just swell.
I bought the Radeon partly because of AMD opening up the specs but the open driver just didn't work with 3D, so I tried using the proprietary one, and yeah, that was an improvement (a very slight indeed). In the end, Linux basically looked ridiculous in comparison to Windows using the Radeon card, whereas I've had no troubles at all with nVidia.
If AMD has improved their driver, or even more spectacularly, if the open driver is now actually in a usable state, well, maybe I would be willing to give Radeon on Linux another try, but I'll believe it when I see it...
What is the language design problem, and is there a better solution than RAII?
Well, C++ was never a "preprocessor". Cfront was always a full-fledged compiler albeit the output was not native assembler but C code. The Comeau C++ compiler works on the same principle. There is no need for C compatibility in the language in order to do this though.
When Stroustrup says C compatibility was crucial for its success, it is your final sentence that's relevant: the userbase was originally very small, and they basically demanded C compatibility. In "Design and evolution", Stroustrup explains how he eg tried to fix function declaration to something saner, but his audience threatened to walk-out on him if he did, so he was basically forced to cater to their whims because otherwise the language would be dead.
Without actually having read the "why C++ sucks" argument, I tend to agree that C compatibility was not necessarily a good thing, even if pragmatic.
A compiler is certainly not required to stop with an error, but it is perfectly legal for it to do so:
Perhaps you are thinking of unspecified behaviour?
What you are saying is not correct. The C++ standard says:
"6.6.3 The return statement
[...]
A return statement without an expression can be used only in functions that do not return a value, that is, a function with the return type void, a constructor (12.1), or a destructor (12.4).
[...]
Flowing off the end of a function is equivalent to a return with no value; this results in undefined behavior in a value-returning function."
It is perfectly legal for a compiler to issue a warning for this or even an error. I consider a compiler refusing to compile it a superior compiler.
Thanks for stepping up and fielding the question for me :)
Japanese already has a phonetic alphabet (well, syllabary) that is very well suited to write Japanese in the kana. Problem is, only small children write exclusively with it. To appear at all literate, kanji is certainly needed. It's actually a lot easier to read a Japanese text if there is kanji, as long as one knows the kanji in question.
You are completely ignorant of both runes and kanji if you think them similar, and that runes fell out of use because the latin alphabet is "superior".
eFuses are not affected by UV light; perhaps you're thinking of EPROM, a completely different technology?
An efuse is a physical alteration of the circuit. An FPGA uses SRAM or flashrom to hold the logic. Coming from PS3, I don't know anything about this Motorola phone, but I do know that people throw around the magical "efuse" whenever something happens that they don't understand. Example: "Sony prevented downgrades with firmware 2.10" -"OMG, they've blown an EFUSE!!" From reading the brief of the previous story, this seems very much like one of those instances...
HAM didn't work quite as you describe. Six bits per pixel were used. The top two bits decided the operation according to: 00: bits 0-3 decides pixel value direct by indexing into the color palette 01: The pixel immediately to the left is copied and the blue component is replaced by bits 0-3 10: The pixel immediately to the left is copied and the red component is replaced by bits 0-3 11: The pixel immediately to the left is copied and the green component is replaced by bits 0-3 The palette also need not be fixed but could be replaced mid screen, as could the resolution. The Amiga had four non-pannable PCM audio channels: two fixed to the left audio output and two to the right. The Amiga blitter could be used for rendering filled vectors, although not in the most efficient manner since it required line-drawing first, followed by a copy and fill.
Maybe check out the demo scene where 512-byte, 1k, or 4k productions are common?
Well... NASA has never lost any space probes due to software bugs, right?
And OpenBSD has only had two remote holes ("Only" two?) in the default install (with nearly all services turned off).
Avionics industry is doing better, but check out the requirements on them ( http://en.wikipedia.org/wiki/DO-178B )
If this is to be followed for all software, well, something is certain: costs and development time will go up.
In my limited experience, the wish is rather for these to go down even further, with more impossible deadlines ever coming up...
I'm not sure what you are complaining about exactly? DRI is an architecture, and one that couldn't support the features nVidia wanted. So they invented their own and hooked that into X. Is your complaint that they didn't make this achitecture open to all?
Well, it is maybe not the best counter-example to a rule "novels are unfilmable" as much as it was an extreme example because LR is simply a mastodont work any way you cut it, and yet it was successfully (at least at the box office) turned into film.
Now, I didn't like the films, particularly from the second half of the second film and onwards, but this is not because the book is decidedly "unfilmable"; it's simply because I think Peter Jackson is a poor director.
Well, when you make an assumption, you make and ass out you and umption ;)
I did mention Neuromancer. He's an AI. He wants to merge with his brother. He is logical and impulsive and he manipulates the world. Don't you think this can be told in the film?
Linda? She was Case's earlier gf, right? And how much do we even know of her? Yep, that's right.
Riviera, yeah, I guess I kind of surpressed him since I found a hologram-projecting heroinist/sadist pretty...well...silly. Oh, along with the vat-grown ninja (but hey! it was the 80s! of course there had to be a ninja!) Hideo was of course also essential and with a fantasticly rich backstory, right? The director should definately take a deep look into those vats, hehe.
Now, I give you that I forgot 3Jane, and I'll grant that the whole Tessier-Ashpool business is rather murky, but really, what's important here is like, they built Freeside, they're responsible for the two AIs, they went more or less nuts and hide up in orbit, and they created cloned children, one of them being 3Jane. One would have to go into a bit more detail here compared with other characters, but it's not something impossible.
And now you'll have to excuse me, I didn't even remember Maelcum without looking him up. Now, that's an important character. Yeah, a rastafarian pilot who brings Case to Freeside. A lengthy backstory is absolutely of vital important here, I agree :)
And Julie Dean is so essential to the book that he is not even mentioned in the Wikipedia article. Once again, how could possibly a Neuromancer film be made without a careful exploration of this man's 150 year old life in hideous detail?
How to explain how Case is?
Short version:
-"I ripped of the wrong kind of customer."
-"They punished me."
-"Now I lead drugged up miserable life waiting for death because I can jack in no moooore!!!"
Of course, this very delicate and intricate part of the story would probably require one third of the film or so, which would leave very little screen time for exploring the inner depths of Angelo, the shark boy:/
That concept of cyberspace was pretty ridiculous from a usability point when it was first written. Dialing with a 300bps modem on my C64 was probably more effective :)
But much less interesting visually! And films are visual. There's a reason the 3D visualization of cyberspace is/was so popular in films.
On the other hand, and it's been a long time since I watched Johnny Mnemonic, but I don't immediately recall any 3D cyberspace in that one? What I can remember is that it was all about physically transporting data. Maybe Howard the dolphin did some 3D hacking?
I'm not sure I agree. My computer equipment still includes neither electrodes, immersive 3D visualization of cyberspace, nor AIs, and my equipment is pretty modern ;)
Or if you mean that these things have already been used in films, yeah, well, that's true, but I don't feel a Neuromancer would be fatally hurt by that.
Seriously? If the criterion for being 'unfilmable' is being longer than a short-story, then per definition every novel is unfilmable.
Secondly, Neuromancer is dense? True, Gibson's prose is terse and not too seldom not very easy to follow, making it possible to fit quite many scenary-changes at a break-beck speed in not too many pages. You could either cut down on them, or for the 'purist' film, do them in a similar style to Gibson's prose with quick cuts from here to there without too much detail for the viewer's benefit.
And the characters? It's like, Molly - ex-prostitute kick-ass razorgirl with black implant glasses - Case drugie-exhacker, Finn - typical techie-information guy, Dixie Flatline - ROM construct of superhacker and Case old teacher, Armitage - constructed personality by Wintermute, Wintermute himself - Well, how much do you really need to say about an AI?
If you think these characters are too fleshed out to be able to appear in a film, well, I can understand the sentiment that all novels are unfilmable. :)
You do know that they made films out of The Lord of the Rings? True, I pretty much despise those films (except maybe the first one which wasn't too horrible), but plenty of people do like them...
Hmm, in what sense would Neuromancer be unfilmable?
Still? Did you not understand? They were forced to invent their own because it was impossible to implement the features they required, with DRI. This is not the same as a "Not invented here" attitude.
As for why they don't use DRI now, well, isn't it DRI2 that's the future these day? Anyway, as I have no association with nvidia I can but venture a guess that their design works well enough for them. As my ancient Geforce 6600GT was a hell of a lot faster in Linux than my last year's new ATI 4830, I kind of see the point :)
nVidia doesn't have DRI support. Why? Because DRI is totally broken and they were forced to come up with their own framework instead. Check http://linuxhaters.blogspot.com/2008/06/nitty-gritty-shit-on-open-source.html
A meteor with enough energy impacts Mars and sends material flying with enough velocity to escape Mars gravitation.
Is there regulation that stipulates that such a thing? I can't manufacture and sell a TV that will only receive one channel?
Why should they be forced to do that? Their business plan is to sell the hardware cheaply, or at loss even, and make money on software sales by having third-party developers pay a license fee for titles they wish to have available. Why should the hardware manufacturers not be free to use this tactic? Because it's better for third-party developers if they don't have to pay license fees? Are consumers better off? The price of software might possibly be lower due to removal of license fees, but logically the cost of the hardware would go up, but if the consumers buy enough software, maybe they are better off in the end. But is even this enough justification for removing the hardware manufacturers' freedom to choose what software they make available on their website?
Since when? I bought a Radeon HD 4830 early this year and it was pretty much unusable in Linux. Ok, I was trying to run Compiz, but my old nVidia 6600GT had no problem doing that, while the Radeon had trouble even with something as simple as just moving an xterm window, and not too seldom everything would just freeze and even lock up. In Windows (and Windows Vista at that!) it worked just great though. Since then I've switched to running Linux on my second workstation and plopped a fanless nVidia 8600GT in there and it runs just swell. I bought the Radeon partly because of AMD opening up the specs but the open driver just didn't work with 3D, so I tried using the proprietary one, and yeah, that was an improvement (a very slight indeed). In the end, Linux basically looked ridiculous in comparison to Windows using the Radeon card, whereas I've had no troubles at all with nVidia. If AMD has improved their driver, or even more spectacularly, if the open driver is now actually in a usable state, well, maybe I would be willing to give Radeon on Linux another try, but I'll believe it when I see it...