For exactly the same reasons that the GCC team and many others do, perhaps?
Borland are a business, the "gcc team and many others" are not.
What about "but I want to produce LGPL-licensed code" ??
If you're willing to have your code commercially exploited, that's your business. But you don't have the right to make the same decision on Borland's behalf.
I thought the GPL only applied to derivative works of GPL'd software
RMS's viewpoint is that if you link, your work is derivative. Certainly a contentious claim, but it is indeed what the GPL intends.
If I want to
develop "Bob's Foo Farm" as a closed-source program, I can compile it with gcc and not have to worry about the GPL.
Not exactly. The gcc headers and library make special exceptions for software that is compiled with gcc. But you can't take a header from gcc, and then compile Bob's foo farm with that.
Unless
GCC is inserting some code of its own into what it has compiled,
Yes, but it often does this. (see libgcc.a, and libstdc++)
Oh, just because they kill people who disagree with the government, especially those that spread "subversive" ideas like
Chrisitianity.
This is nonsense. Christianity is not banned in China.
There is no real religious or political freedom possible in China right now,
You make it sound as though China is unique with this property. On the contrary, Afghanistan, and several of the Arab countries (Saudi Arabia, Iraq, Iran) are considerably worse.
China is the world's worst offender in human rights, outdone in degree to be sure by atrocious places
like Sudan,
You just contradicted yourself. And Sudan is not the only counter-example (again, see Iran, Afghanistan, and Iraq)
but far and away the world leader in bringing misery to human lives in volume.
That's a silly criterion, because you're confusing their high poplulation with their human rights record. Indeed, on that scale, the US is probably worse than any other industrialised nation.
Perhaps because they killed >1000 civilians for no reason, in front of the worlds media, and then denied it?
Still, this in itself does not make them "the worst". Certainly not very good, but there are places that are worse (eg Afghanistan, which recently recieved some money from the US)
It's sort of like a generalized Turning test. If something can perfectly immitate an x, shouldn't it should be considered equivalent to an x?
In a nutshell, no. The problem is that of determining "perfect imitation". The Turing test has this very problem, and its biggest weakness is human gullibility. This particular example has a similar problem -- (moving to the Turing test analogy) the "interrogators" are not legal experts and hence not immediately able to observe bad answers. This is partly because they may not ask the right questions, and partly because they don't know how to identify a wrong answer.
The technical publishing world has become very corrupt. Publishers know that people find it difficult to evaluate a book while
they are in the bookstore. So, a publisher who provides a poor quality book with big promises on the cover will sell books.
I'd have to say you're right on the money here.
Most C++ books are written by incompetent authors, who often commit various transgressions varying from failing to explain (or even demonstrate that they understand) polymorphism, to confusing Windows specific functions with the standard library.
The only credible publisher for C++ books is Addison-Wesley, nearly all titles from other publishers are junk (with a couple of exceptions from Prentice-Hall, who also publish a lot of the better C books.)
A big part of the reason none of the C++ books you've found talk about socket programming is there is no C++ socket API. There
is a fairly standard C socket API (standard across UNIX systems, anyway)
Not really, there isn't a standard socket API for C or C++, strictly speaking, in the sense that sockets are not part of either language. Because of this, C++/C programming books are not going to teach him anything useful about sockets, he really needs a UNIX programming book.
Of course, the assertion that BSD sockets are supported on most platforms is "mostly" correct.
As for learning OO in java, one of the messy things about java is that it makes proceedural programming very awkward. I also found its object model confusing when I started out. For example, why is main static (as opposed to, say, eiffel, where you run the program by instantiating an application ?) Those words "public static void main are a tad intimidating, especially when you're reading a book that doesn't even explain what these mean until 500pages or so in.
I wanted to pick up tihngs on my own,
but I don't know where to go from. I'd love to learn to program with sockets, even maybe some X apps or somtehing of the
similar, but I don't see that much documentation
Then perhaps you are not looking at the right documentation. Let me explain -- the C++ programming language does not support sockets or X or Qt or anything else. These are third party libraries. In particular, books about C++ don't explain how to do GUI or systems programming.
What you possibly need is not more books on the C++ programming language, but rather, books on UNIX programming. For example, one of my favourites here is "beginning Linux programming" by Stones/Matthew.
I'm also going to plug my webpage which has some interesting bits and pieces.
HTH
Re:Object Oriented programming is overrated
on
Why not Ruby?
·
· Score: 1
My point is that these features (otherwise known as abstract data types) are available in all modern
programming languages
A language that supports encapsulated ADTs is object based. A language needs to support runtime polymorphism to be called "object oriented". Object based languages aren't necessarily object oriented, but object oriented languages contain all the functionality of object based languages.
If the vast majority of the Chinese populace were truly upset about the way things are going, they'd
have done somtehing that couldn't be stopped by a few hundred tanks by now.
They are doing something tanks can't stop... they're packing their bags and leaving. Everyone in China wants to get out.
The real news in here, for me at least, is the frequent gaps between C and C++ implementations of the same thing. For the few sources I managed to look at (yes, the server is/.'ed to hell) the main culprit seems to be the STL.
Sure -- you are definitely "closer to the metal" with C, at least when you write C++ that looks like C++. But the nice thing about C++ is that it gives you a choice -- you can trade speed for maintainer/programmer efficiency. Or you can write C++ that looks like C. I do both, depending on the context.
The real news in here, for me at least, is the frequent gaps between C and C++ implementations of the same thing. For the few sources I managed to look at (yes, the server is/.'ed to hell) the main culprit seems to be the STL.
I love it, but I agree with your point about the learning curve. I'd recommend "Accelerated C++" as a great book for getting up to speed on it.
I've found STL to be vastly superior than the half-assed attempts at container class designs I see in most textbooks (a lot of the authors barely seem to comprehend the fact that linked lists are not random access data structures, making a basic conceptual error in using indices instead of iterators)
I don't like the streams libraries either
Love 'em. Typesafe, fast, extensible. Works for me. As a side note, the printf("hello world") vs cout
Does this go to reinforce my position that in this day and age Java is a logical choice for pretty well everything bespoke and not performance critical?
It's too bad it's not standardised. It's a nice "slow" language. I've made a lot of use of reference counted "envelope" classes in C++, and having everything GC'd is certainly a nice idea if performance isn't critical. Unfortunately, for most of my work it is. If there was a mature Java Qt port, I'd consider it.
size() doesn't use "lazy" or "overeager" evaluation, it's an accessor method. A vector needs to keep track of what its size is-- how else does it know when it needs to allocate more memory for itself ? If it "dynamically" computed its size, push_back() would be an O(n) operation (and compliant implementations need to do better than this in C++)
which would make.deb the standard, at least my experience says so (no twenty-seven-hours-of-which-package-might-that-stu pid-library-i-need-be-found-in (-> 'better' dependencies)
Your problems would not at all be solved by everyone using.deb, because a lot of them are probably caused by binary incompatibility (for example, if you have to change a core component of your distribution to isntall a new package, the real problem has to do with binary incompatibility)
The dependency system works fine, and RPM is nicer for packagers , since you don't have the same one-patch limit imposed by.deb.
Forget about Dell for Linux. Recently, our dept ordered from two vendors: a Linux vendor,
aslab.com, and Dell. The boxes from aslab worked OOTB, and came with a well-patched 2.2.19 kernel, (which meant we had ReiserFS on the RAIDS and the server was configured as we wanted it in very little time) the Dell machines which cost a fortune arrived in a non-functional state, with what looks like a default RH 7.0 install. And their tech people don't know how to get the PowerVault (fiber channel RAID) to work..
If Dell replaces people who actually know Linux, it will be a tragedy indeed.
It's true that the newer compilers reject a lot of broken code. However, what do you think of his take on binary compatibility ? Are C++ developers really supposed to ship static binaries ? What if the code uses dl-modules ? I think he's trying too hard in his role as apologist. If he'd stick to debunking the complaints about non-standard code not compiling, I'd almost take that page seriously.
a search by a friend of mine on freshmeat turned up 3 KDE front ends to packet sniffers and no download managers -
Your friend does not know how to search the internet. A search for
linux download managers
On google.com turned up several hits. As for why bother with Linux, I've installed and used open BSD, and Linux is simply more pleasent to use overall. The configuration is made very simple. All the interesting open source packages make linux binaries available. The Linux community have been more aggressive about making the platform usable than their BSD counterparts. Linux tends to enjoy better hardware support, and while FreeBSD supports SMP, OpenBSD does not.
I'm curious -- what platforms have you actually installed and used on your own machine ? I admin a bunch of Linux boxes, I used to run an OpenBSD box. I also had to work with a Solaris box for a while. The Linux machines where the most usable of the bunch, by a long way.
I simply do not believe that Linux is shipping on 25 percent or more of all new servers and I just cannot believe the IDC figures
This is not at all inconsistent with the assertion that he actually asked customers what they were running -- the point is that you'd expect that the number of preloads would exceed the number of users, or at least be not too much less than the number of users.
If the majority of customers got their Linux via download or some other way, "then the market is in even worse shape than my survey shows,"
Right -- because it means that downloads are getting counted in his survey, but they don't show up in sales figures, and download users are also unlikely to purchase support contracts.
fyi, vim also does things like keyword completion,
and with the tags file you can "jump" to different
functions, much like an IDE. One can use a seperate GUI builder (eg designer). The only thing I'd like that I don't have is a decent class browser.
Excuse me, but C++ was *designed* to be a multiparadigm language (procedural, generic programming (templates/containers), AND Object orientated.) That is its strength, and what makes it so complex to learn.
All 3 paradigms are orthogonal, and supported by the language. It is up to the programmer/designer to know what paradigm applies to the task.
I think you're miss-reading the other guy. He's not bashing C++, but pointing out that the complexity (ie 3 paradigms) does make it hard to learn. For example, it's quite difficult to write OO code without worrying about memory issues (virtual destructors, dynamic memory, handle classes). In languages that use reference counted or garbage collected handles, life is much simpler.
I've met very few people who are competent in C++,
but several who are proficient with C. Then again, someone who is intelligent, motivated and willing to do some reading can learn it in a fairly short time frame.
Thats the problem with the RIAA, they market shit which is the reason I cant find anything good on the Radio's or MTV.
This is a lie. The RIAA labels release all kinds of music, for example I listen to jazz music you wouldn't have heard of, and almost all of it is on RIAA labels. It's not that they don't market all kinds of music, it's more that the average listener isn't interested in good music.
more foreign developers who will work 80 hour weeks for $25K a year for whatever US company will sponsor their visa.
No, they earn substantially more than $25k. IT job market, tight ? There are still a lot of people with no talent, no qualifications, no skills, and no interest who can get jobs.
I don't agree that the advanced economy does cause them. Computers are clearly far less toxic than e.g. cars
In an advanced economy, you'd have cars as well (-; In any case, it's simply not true that giving a country computers will cause a shift to a high-tech based economy that would make pollution go away (there are a ton of very questionable assertions in that statement). The problem is that giving them computers would not have a major impact on other problems (I doubt it would destroy polluting industries, for example.)
Are computers "hazardous" waste?
Yes, they definitely are. (did you read the article?)
But it seems that the environmental problems are primarily caused by the "advanced economy".
And if there are "hackers" there, they'll need better equipment than 286s.
Not to mention there's the basic issue here that this idea really doesn't solve the basic problem that the equipment is basically hazardous waste -- all it does is hand it over to those who have no chance of disposing of it safely.
The problem with your reasoning, is that you want him to give up his privacy, but noone else can do the same. You can't have some people with privacy and some people without.
In a world without privacy, the born-again Christians would be a tad more realistic, indeed, there'd likely be less born-again Christians, because for the most part, their squeaky clean expectations are unrealistic, and they wouldn't be able to maintain the charade.
Borland are a business, the "gcc team and many others" are not.
What about "but I want to produce LGPL-licensed code" ??
If you're willing to have your code commercially exploited, that's your business. But you don't have the right to make the same decision on Borland's behalf.
RMS's viewpoint is that if you link, your work is derivative. Certainly a contentious claim, but it is indeed what the GPL intends.
If I want to develop "Bob's Foo Farm" as a closed-source program, I can compile it with gcc and not have to worry about the GPL.
Not exactly. The gcc headers and library make special exceptions for software that is compiled with gcc. But you can't take a header from gcc, and then compile Bob's foo farm with that.
Unless GCC is inserting some code of its own into what it has compiled,
Yes, but it often does this. (see libgcc.a, and libstdc++)
This is nonsense. Christianity is not banned in China.
There is no real religious or political freedom possible in China right now,
You make it sound as though China is unique with this property. On the contrary, Afghanistan, and several of the Arab countries (Saudi Arabia, Iraq, Iran) are considerably worse.
China is the world's worst offender in human rights, outdone in degree to be sure by atrocious places like Sudan,
You just contradicted yourself. And Sudan is not the only counter-example (again, see Iran, Afghanistan, and Iraq)
but far and away the world leader in bringing misery to human lives in volume.
That's a silly criterion, because you're confusing their high poplulation with their human rights record. Indeed, on that scale, the US is probably worse than any other industrialised nation.
Still, this in itself does not make them "the worst". Certainly not very good, but there are places that are worse (eg Afghanistan, which recently recieved some money from the US)
In a nutshell, no. The problem is that of determining "perfect imitation". The Turing test has this very problem, and its biggest weakness is human gullibility. This particular example has a similar problem -- (moving to the Turing test analogy) the "interrogators" are not legal experts and hence not immediately able to observe bad answers. This is partly because they may not ask the right questions, and partly because they don't know how to identify a wrong answer.
I'd have to say you're right on the money here. Most C++ books are written by incompetent authors, who often commit various transgressions varying from failing to explain (or even demonstrate that they understand) polymorphism, to confusing Windows specific functions with the standard library.
The only credible publisher for C++ books is Addison-Wesley, nearly all titles from other publishers are junk (with a couple of exceptions from Prentice-Hall, who also publish a lot of the better C books.)
-- Donovan
Not really, there isn't a standard socket API for C or C++, strictly speaking, in the sense that sockets are not part of either language. Because of this, C++/C programming books are not going to teach him anything useful about sockets, he really needs a UNIX programming book.
Of course, the assertion that BSD sockets are supported on most platforms is "mostly" correct.
As for learning OO in java, one of the messy things about java is that it makes proceedural programming very awkward. I also found its object model confusing when I started out. For example, why is main static (as opposed to, say, eiffel, where you run the program by instantiating an application ?) Those words "public static void main are a tad intimidating, especially when you're reading a book that doesn't even explain what these mean until 500pages or so in.
I learned from that and it served me well, but you're only going to get so far with just one book.
see my reading list for a bunch of good titles on C++.
I wanted to pick up tihngs on my own, but I don't know where to go from. I'd love to learn to program with sockets, even maybe some X apps or somtehing of the similar, but I don't see that much documentation
Then perhaps you are not looking at the right documentation. Let me explain -- the C++ programming language does not support sockets or X or Qt or anything else. These are third party libraries. In particular, books about C++ don't explain how to do GUI or systems programming.
What you possibly need is not more books on the C++ programming language, but rather, books on UNIX programming. For example, one of my favourites here is "beginning Linux programming" by Stones/Matthew.
I'm also going to plug my webpage which has some interesting bits and pieces.
HTH
A language that supports encapsulated ADTs is object based. A language needs to support runtime polymorphism to be called "object oriented". Object based languages aren't necessarily object oriented, but object oriented languages contain all the functionality of object based languages.
They are doing something tanks can't stop ... they're packing their bags and leaving. Everyone in China wants to get out.
Sure -- you are definitely "closer to the metal" with C, at least when you write C++ that looks like C++. But the nice thing about C++ is that it gives you a choice -- you can trade speed for maintainer/programmer efficiency. Or you can write C++ that looks like C. I do both, depending on the context.
The real news in here, for me at least, is the frequent gaps between C and C++ implementations of the same thing. For the few sources I managed to look at (yes, the server is /.'ed to hell) the main culprit seems to be the STL.
I love it, but I agree with your point about the learning curve. I'd recommend "Accelerated C++" as a great book for getting up to speed on it. I've found STL to be vastly superior than the half-assed attempts at container class designs I see in most textbooks (a lot of the authors barely seem to comprehend the fact that linked lists are not random access data structures, making a basic conceptual error in using indices instead of iterators)
I don't like the streams libraries either
Love 'em. Typesafe, fast, extensible. Works for me. As a side note, the printf("hello world") vs cout Does this go to reinforce my position that in this day and age Java is a logical choice for pretty well everything bespoke and not performance critical?
It's too bad it's not standardised. It's a nice "slow" language. I've made a lot of use of reference counted "envelope" classes in C++, and having everything GC'd is certainly a nice idea if performance isn't critical. Unfortunately, for most of my work it is. If there was a mature Java Qt port, I'd consider it.
Your problems would not at all be solved by everyone using .deb, because a lot of them are probably caused by binary incompatibility (for example, if you have to change a core component of your distribution to isntall a new package, the real problem has to do with binary incompatibility)
The dependency system works fine, and RPM is nicer for packagers , since you don't have the same one-patch limit imposed by .deb.
If Dell replaces people who actually know Linux, it will be a tragedy indeed.
It's true that the newer compilers reject a lot of broken code. However, what do you think of his take on binary compatibility ? Are C++ developers really supposed to ship static binaries ? What if the code uses dl-modules ? I think he's trying too hard in his role as apologist. If he'd stick to debunking the complaints about non-standard code not compiling, I'd almost take that page seriously.
Your friend does not know how to search the internet. A search for
On google.com turned up several hits. As for why bother with Linux, I've installed and used open BSD, and Linux is simply more pleasent to use overall. The configuration is made very simple. All the interesting open source packages make linux binaries available. The Linux community have been more aggressive about making the platform usable than their BSD counterparts. Linux tends to enjoy better hardware support, and while FreeBSD supports SMP, OpenBSD does not.I'm curious -- what platforms have you actually installed and used on your own machine ? I admin a bunch of Linux boxes, I used to run an OpenBSD box. I also had to work with a Solaris box for a while. The Linux machines where the most usable of the bunch, by a long way.
This is not at all inconsistent with the assertion that he actually asked customers what they were running -- the point is that you'd expect that the number of preloads would exceed the number of users, or at least be not too much less than the number of users.
If the majority of customers got their Linux via download or some other way, "then the market is in even worse shape than my survey shows,"
Right -- because it means that downloads are getting counted in his survey, but they don't show up in sales figures, and download users are also unlikely to purchase support contracts.
fyi, vim also does things like keyword completion, and with the tags file you can "jump" to different functions, much like an IDE. One can use a seperate GUI builder (eg designer). The only thing I'd like that I don't have is a decent class browser.
All 3 paradigms are orthogonal, and supported by the language. It is up to the programmer/designer to know what paradigm applies to the task.
I think you're miss-reading the other guy. He's not bashing C++, but pointing out that the complexity (ie 3 paradigms) does make it hard to learn. For example, it's quite difficult to write OO code without worrying about memory issues (virtual destructors, dynamic memory, handle classes). In languages that use reference counted or garbage collected handles, life is much simpler.
I've met very few people who are competent in C++, but several who are proficient with C. Then again, someone who is intelligent, motivated and willing to do some reading can learn it in a fairly short time frame.
Good books, BTW. Coplien is my favourite author.
This is a lie. The RIAA labels release all kinds of music, for example I listen to jazz music you wouldn't have heard of, and almost all of it is on RIAA labels. It's not that they don't market all kinds of music, it's more that the average listener isn't interested in good music.
No, they earn substantially more than $25k. IT job market, tight ? There are still a lot of people with no talent, no qualifications, no skills, and no interest who can get jobs.
I don't agree that the advanced economy does cause them. Computers are clearly far less toxic than e.g. cars
In an advanced economy, you'd have cars as well (-; In any case, it's simply not true that giving a country computers will cause a shift to a high-tech based economy that would make pollution go away (there are a ton of very questionable assertions in that statement). The problem is that giving them computers would not have a major impact on other problems (I doubt it would destroy polluting industries, for example.)
Are computers "hazardous" waste?
Yes, they definitely are. (did you read the article?)
Not to mention there's the basic issue here that this idea really doesn't solve the basic problem that the equipment is basically hazardous waste -- all it does is hand it over to those who have no chance of disposing of it safely.
Sounds like a covert way to send our trash to the third world -- and it doesn't solve the long term problems.
In a world without privacy, the born-again Christians would be a tad more realistic, indeed, there'd likely be less born-again Christians, because for the most part, their squeaky clean expectations are unrealistic, and they wouldn't be able to maintain the charade.