The fact that GCC is a shitty C++ compiler does not mean that C++ is not good for system or hardware-related programming.
any compiler or language that likes to hide things like memory allocations behind your back just isn't a good choice for a kernel.
You don't have to do that in C++. You can do your malloc and free manually if you want. That's the beauty of C++, you can use the C subset if needed (not that it's needed as often).
you can write object-oriented code (useful for filesystems etc) in C, _without_ the crap that is C++.
ROFL. That made me laugh! Good stuff. Objects in C! And C++ is crap for OO stuff! LMFAO! Was that a joke? That guy doesn't have a clue... No wonder the Linux kernel sucks big time (and, yes, I have plenty of first-hand experience with the Linux kernel -- it's just shit).
Yes, but that refers to creating a non-hidden partition with PGP or any other product. That does not protect you because it is easy to find (unlike the hidden volume, which he did not mention at all).
Schneier actually mentions TrueCrypt in his article too. However, strangely, he ignored the single most important feature of TrueCrypt regarding this topic, the plausible deniability. The hidden volume feature is exactly designed to prevent Big Brothers from breaching your privacy.
And remember, just as FSF defined what Free Software is, the OSI people defined what Open Source means. That any random newbie now believes he can redefine what Open Source means is irrelevant.
What you've linked to is NOT _the_ definition of 'open source'.
If there is any definition of the term Open Source, it is the OSI definition. Heck, even MS knows this and respects OSI (they submitted a few open source licenses to them for approval).
Uh, no, it isn't. Microsoft knows very well why they call it shared source, and not open source. If you want to know why, read the definition of open source, or just shut the f* up.
That would be true, if the Flash functionality was dispensable for them. (And if it was, why bother developing Silverlight or any other Flash alternative). MS tried to compete with PDF and their actions indicate they know they failed. They can admit failures. Silverlight may just be the next. They don't have to force anything. They pretty much own the PC world anyway.
Umm, if 95% of their visitors have Flash installed and 10% (or what?) have SilverLight installed, well, they would be idiots if they didn't use Flash...
No they do not necessarily have to contradict. Trojan horses can inject HTML content (including ad content or links to it). I wonder why such misleading knee-jerk posts get modded +5 now.
From the article: "On Tuesday, a user named Hai-Nam Nguyen reported that anti-virus programs detected the Xorer Trojan inside the add-on. Firefox admins quickly confirmed the presence of the Trojan's code and removed the file the same day."
Eh? From the article: "On Tuesday, a user named Hai-Nam Nguyen reported that anti-virus programs detected the Xorer Trojan inside the add-on. Firefox admins quickly confirmed the presence of the Trojan's code and removed the file the same day."
the judge ruled that violating the license didn't suddenly make it copyright infringement, merely contract violation.
Yes, but the Artistic License does not have a specific section that GPL does. The section states that if you don't comply with the terms of the license, your rights under the license are terminated. Then it becomes copyright infringement (although the infringement might be proven incidental later on).
In short, there's a crucial difference between those licenses, so you can't compare their cases.
When I first learned C in the K&R era, I thought those greybeards were pretty clever. Then I came across strcpy() and I wondered what they were smoking that I wasn't sharing. I thought to myself, their must be some higher level idiom that protects against buffer overflow, because no sane architect would implement such a dangerous function otherwise. Man, was I ever naive.
Yep, pretty naive. The standard C library was created in times when each damn if() cost *PRECIOUS* CPU cycles. Now that everyone can, and does, write bloatware, it's somehow no longer understandable why these standard functions did not check every boundary (like eg. BASIC). Oh, well.
The fact is, C++ compilers are not trustworthy.
The fact that GCC is a shitty C++ compiler does not mean that C++ is not good for system or hardware-related programming.
any compiler or language that likes to hide things like memory allocations behind your back just isn't a good choice for a kernel.
You don't have to do that in C++. You can do your malloc and free manually if you want. That's the beauty of C++, you can use the C subset if needed (not that it's needed as often).
you can write object-oriented code (useful for filesystems etc) in C, _without_ the crap that is C++.
ROFL. That made me laugh! Good stuff. Objects in C! And C++ is crap for OO stuff! LMFAO! Was that a joke? That guy doesn't have a clue... No wonder the Linux kernel sucks big time (and, yes, I have plenty of first-hand experience with the Linux kernel -- it's just shit).
> It does when you can't use g++ in the kernel, but gcc works just fine...
This does not make sense.
> P.S. "C++ has all capabilities and features as C" - that's why I said C/C++
You haven't said "C/C++" anywhere in this thread...
The fact that the Linux and Microsoft kernels are written in C does not change these facts:
- C++ has all capabilities and features as C
- C is an obsolete 1960's-ish language without objects, custom types, custom operators and other modern stuff.
You can use objects, custom types, custom operators. I could continue. Compared to C++, C is a simple and obsolete language.
The word pedantic suggests that you consider C++ only a minor improvement over C. Whereas it is a major one.
> C is the only viable language if you need direct access to the hardware.
The only language? What about C++?
> I do wish C had complex number and bit variables though
If you can, upgrade to C++ and you can create custom types and operators as you wish.
If you don't believe what Balmer says, maybe consult some trustworthy third-party statistics and see that... he's actually right.
And, in the mean time, 15% of desktop users use Windows Vista.
Yes, but that refers to creating a non-hidden partition with PGP or any other product. That does not protect you because it is easy to find (unlike the hidden volume, which he did not mention at all).
Schneier actually mentions TrueCrypt in his article too. However, strangely, he ignored the single most important feature of TrueCrypt regarding this topic, the plausible deniability. The hidden volume feature is exactly designed to prevent Big Brothers from breaching your privacy.
Sorry, the link was just to the OSI homepage. The direct link to the definition is: http://opensource.org/docs/osd
And remember, just as FSF defined what Free Software is, the OSI people defined what Open Source means. That any random newbie now believes he can redefine what Open Source means is irrelevant.
OSI isn't the authority on what "open" means
Certainly not. But some of them are the people who came with the term Open Source a long time ago.
What you've linked to is NOT _the_ definition of 'open source'.
If there is any definition of the term Open Source, it is the OSI definition. Heck, even MS knows this and respects OSI (they submitted a few open source licenses to them for approval).
"Shared source" IS open source.
Uh, no, it isn't. Microsoft knows very well why they call it shared source, and not open source. If you want to know why, read the definition of open source, or just shut the f* up.
That would be true, if the Flash functionality was dispensable for them. (And if it was, why bother developing Silverlight or any other Flash alternative). MS tried to compete with PDF and their actions indicate they know they failed. They can admit failures. Silverlight may just be the next. They don't have to force anything. They pretty much own the PC world anyway.
Umm, if 95% of their visitors have Flash installed and 10% (or what?) have SilverLight installed, well, they would be idiots if they didn't use Flash...
No they do not necessarily have to contradict. Trojan horses can inject HTML content (including ad content or links to it). I wonder why such misleading knee-jerk posts get modded +5 now.
From the article: "On Tuesday, a user named Hai-Nam Nguyen reported that anti-virus programs detected the Xorer Trojan inside the add-on. Firefox admins quickly confirmed the presence of the Trojan's code and removed the file the same day."
Eh? From the article: "On Tuesday, a user named Hai-Nam Nguyen reported that anti-virus programs detected the Xorer Trojan inside the add-on. Firefox admins quickly confirmed the presence of the Trojan's code and removed the file the same day."
the judge ruled that violating the license didn't suddenly make it copyright infringement, merely contract violation.
Yes, but the Artistic License does not have a specific section that GPL does. The section states that if you don't comply with the terms of the license, your rights under the license are terminated. Then it becomes copyright infringement (although the infringement might be proven incidental later on).
In short, there's a crucial difference between those licenses, so you can't compare their cases.
The summary and article in one word:
FUD
Of course, if you dynamically allocate a block of memory, you won't use sizeof() but a relevant variable (number of allocated bytes).
Out of curiosity: how can you check that the size of a memory block pointed to by a pointer in C ?
The modern secure variants of strcpy() solve it by requiring additional parameters where you pass e.g. sizeof(dest) and sizeof(src).
When I first learned C in the K&R era, I thought those greybeards were pretty clever. Then I came across strcpy() and I wondered what they were smoking that I wasn't sharing. I thought to myself, their must be some higher level idiom that protects against buffer overflow, because no sane architect would implement such a dangerous function otherwise. Man, was I ever naive.
Yep, pretty naive. The standard C library was created in times when each damn if() cost *PRECIOUS* CPU cycles. Now that everyone can, and does, write bloatware, it's somehow no longer understandable why these standard functions did not check every boundary (like eg. BASIC). Oh, well.