Re:It's just that fewer girls are religions loons
on
Want More Geek Chicks?
·
· Score: 1
Thanks for the civil reply..
My line of work is mainly 3D simulation and Virtual Reality, so I guess that is the context I'm using when considering what is useful. Virtually every 3D graphics and simulation API on the market is using either C or C++. Sure, widely used does not mean good, but my reasoning for why I think C++ is useful is that I don't know of any other language that would have been a better choice for writing APIs like, for example, the Multigen toolkits. Or the VTree toolkit. There are hundreds of such API's, all C++. Its useful, in my opinion, because you have essentially an unmatched ability to work from low-level to high-level - you need the perfomance and you need to work at a pretty low level, but you still need to be able to effectively design components of your system at a very high level. C++, I feel, combines the two seemingly contradictory goals more effectively than any other language I know.
Smalltalk, for example, works well with high-level OOP design, and because of it you can do some very cool things. But at the expense of performance. Java sacrifices performance for the goal of cross-platform binaries.
We use C++ for our own APIs (I also spend five days (or more) a week doing C++ programming).
For probably the majority of all applications C++ is not the right choice (Java, VB, Delphi, perl, Smalltalk etc etc etc are better for what they are good at). But I still believe that you're better off choosing it for large programs that may not be horribly slow (eg a web browser like Netscape Navigator, or an Operating System, or a Word Processor.)
Perhaps I'm a bit behind the times, perhaps the performance is not so much of an issue anymore. But my feeling is that 3D simulation is still too slow in general, even using C++. There is still much to be done to improve simulations and 3d graphics quality, and to be "the best" you need to have fast code.
Re:It's just that fewer girls are religions loons
on
Want More Geek Chicks?
·
· Score: 1
I read Tim Sweeney's article when the link was posted on slashdot, and I don't disagree with most of it. But with current computers, languages like Smalltalk and Java have just not been practical to use for large projects that require performance - I'm talking mostly about games, of course.
Please don't make the assumption that I'm just a C++ zealot pushing some sort of C++ religion. You know nothing about me.
You are the one that comes off as an anti-C++ zealot. I was not advocating C++ at all. I was just saying its turned out to be an extremely useful language, and if you can't see that then you should take your blinders off.
I believe that "true" OOP languages have enough perfomance overhead to make them languages of the future, not languages of the present, when it comes to apps like games, operating systems, etc. And C is *still* the most useful language for embedded systems, operating systems, low-level device drivers etc. Your "true OOP" zealotry is blinding you to these facts.
Re:It's just that fewer girls are religions loons
on
Want More Geek Chicks?
·
· Score: 1
Too bad virtually none of the languages you mention has turned out be nearly as useful and practical as C++. I guess C++ can't suck that bad. I guess practical concerns like performance must be more important in the real world than sticking religously to a specific paradigm doctrine (I'm referring to the "it has to be real OOP, and C++ isn't real OOP, therefore it sucks" mentality.) I don't care if my language is "real this" or "real that". I want it to do the job.
When computers become much faster then "real OOP" languages like Smalltalk and Java will no doubt start to be used more often, but until then issues like performance will overshadow theoretical idealisms.
"write APIs that won't support languages other than C++"
API's are NOT tied to specific languages. If I write an API in C++ then what you get is normally, say, a dynamic library and maybe a header file which will describe to you how to call the functions and members etc. From that point you can create bindings for any frikking language you want. I'm afraid I've missed your point or something, but I fail to see how object (binary) code can be language-specific.
.. that they have done something wrong when "the screen goes blue" or when they get "one of those windows telling them they've done something illegal".
"Lawyers are busy people, and when the paperwork for "whois.net" dropped on their desk, they probably didn't realize that the generic term was already in use"
Thats their job. Thats why they're so busy, and thats why they get paid: to check these things. If they didnt check, its because they werent doing their jobs.
As if stopping people from voicing their racist opinions is going to get rid of racism. It may slow down the "recruiting process" a little, but I doubt it.
Of all the racists I know (and I know many), I would guess about 85% of them learned the racist "culture" from their parents, and 15% learned it from friends. Not one of them learned it from anywhere in the media (including TV, radio, newspapers and magazines.)
Based on this, I think that censoring online race hatred is going to be counterproductive, as it will falsely lead people to believe that there is less racism, when in fact there is merely less online discussion and expression of racism.
We should rather attack the problem at its roots, i.e. teach people why racism is both wrong and stupid.
Makes more sense now.. sounds a bit like Smalltalk, my experience with which was that it was very slow.
I can't imagine that sort of thing not having so much overhead that you can't really write a game with it. But I guess part of his point is that hardware is getting faster and faster, and pretty soon I suppose game programmers (and in fact many other programmers) will want to use something like that.
"Few people use C++ for object oriented programming"
Perhaps I'm the clueless one here, but this flies in the face of everything I know about the current state of the software development industry. Perhaps I might be more inclined to listen to your point if you could back this up by providing me with a reference to the source of your information; otherwise I might be inclined to irrationally believe that you boldly made that up simply because it is your own opinion.
The rest of your post makes a fair point, use the best language for the job.
I'm not saying he doesnt. In fact, I'm sure he knows C++ pretty well. But maybe he just doesn't explain himself very well, because he comes across as not understanding how to do various things in C++. He dismisses C++ out of hand as being 'unable to do' various things that are in fact incredibly easy to do in C++, and do them in a very general way (as he seems to describe) (e.g. C=A+B on arrays, and in fact on anything you like if you combine this with template classes and maybe a mixin if you're inclined to do things like that.) Maybe I just don't get what sort of amazing generality he is referring to.
He didnt explain very well at all what is so "flawed" about C++'s parametric class (templates) implementation. Instead he came across as sounding like he maybe once read through a chapter in a book on template classes and then never bothered to try them out.
Now, I have a lot of respect for Tim Sweeney, and I know he is extremely competent and I know he knows what he is talking about. He just doesn't explain himself too well. Instead of explaining technically his problems with C++ he comes across as someone who just has a bias against it.
"'industry standard' for games (DirectX) rather than the proprietory (and according to many graphics industry experts, technically inferior) OpenGL"
Huh?? Sorry, but your sentence makes no sense, OpenGL is far more open than Direct3D. Completely open-source implementations exist for OpenGL (Mesa3D for example.) OpenGL also runs on a much wider variety of platforms than does DirectX.
I'm sure an 'industry expert' like John Carmack might be inclined to disagree with your assessment.
Comparing OpenGL to DirectX is like comparing apples to oranges. However, it does make a lot more sense to compare OpenGL to Direct3D. As someone with industry experience in both, OpenGL is in my opinion by far a more well designed API. It has been around much longer (since about 1992, IIRC) and has always been way ahead of Direct3D. Direct3D has only just begin to catch up to OpenGL (and may only now begin to overtake OpenGL if nobody starts working on an OpenGL 2.0.)
Moreover, the current trend in the games industry is towards OpenGL. Remind me again what Quake3 uses? Many of the newer games on the market support OpenGL. The only reason Direct3D spent a few years as the "industry standard" 3D API was not because Direct3D was better, but because very few cards had working accelerated drivers for OpenGL. This has changed.
I personally never want to see DirectX on Linux. I would rather see something like SDL (Simple Directmedia Layer) become some sort of cross-platform games API standard (the latest development version of SDL has OpenGL support.)
As a marketing person, I suggest you learn at least a little bit about the technologies you market. At least that way you might sound like you know what you are talking about. And yes, I do have industry experience doing 3D graphics programming, both in Windows and Linux, and in OpenGL and Direct3D.
I offer this "open-source" technical advice for free.
Basically a modern version of the chastity belts in the old days. I know many (conservative) parents who would go for something like that. As sick as it sounds, I can definitely see it happening, although I doubt sexual desire can be pinned to a single gene, but the technology will get there.
"Under the law, a system to protect secrecy does not become unreasonable simply because a clever thief finds a way to penetrate the security"
This line is my main problem with the ruling. The above line implies that vitually any system to protect secrecy is good enough simply because it is there. The problem is, where does one draw the line? Any self-respecting computer export will tell you that 40-bit encryption is pathetically weak, but clearly the judge doesn't realise this. What if they had used an "xor 0xFF" to encrypt the DVD's? The above quote implies that XOR encryption would also not be "unreasonably simple", and in fact I doubt the judge would have been able to crack it. But clearly XOR encryption is a horrible joke - yet it would still be considered "a system to protect secrecy". In this day and age, nobody who is even remotely serious about encryption would even consider 40-bit encryption. How "clever" a thief do you have to be to crack a system? Clearly you have to be a relatively clever thief just to crack an XOR 0xFF encryption.
"I'm not comfortable with the government second-guessing software companies and demanding that they prove they have a 'good technical reason' for adding a feature"
Good point, but I'm not comfortable with Microsoft making those decisions, since they don't seem to make decisions based on technical merit at all. This seems to be the general case for any company with a monopoly in a given market, and the government has in the past successfully made the right decision many times in "untying" products which should never have been tied together in the first place. I believe they are still capable of making that sort of decision, even though software is a bit more complex. From my personal interpretation of the findings so far in the antitrust trial is that the Judge seems to have a pretty good idea of what the underlying issues here are.
The TCP/IP stack doesn't really fall under the Sherman antitrust laws, since there isn't really a market for "TCP/IP stacks" by themselves. I have never heard of anyone wanting to go out and buy a TCP/IP stack, but many people I know have gone out and bought a desktop operating system, which is the market at issue in the trial.
Supplying a web browser with an OS is a good idea. I agree. "Integrating" a web browser application into an OS is (in my opinion) without technical merit; and as has been pointed out in the FoF, a not insignificant number of clients require the OS without the browser for various reasons. In other words, two seperate products.
Windows has never been so slow as when they decided to "integrate" IE. Every day my PIII 450 with 256 MB RAM drags along like a crappy 386.
Yes, software companies hsould be allowed to make their own design decisions. But they are not exempt from the same antitrust laws that apply to other markets. Neither is the software industry immune from the same dirty tactics that require those laws.
"I don't know, but I don't see as it matters. After all, there are *lots* of programs that come as part of the OS, and if Microsoft shouldn't have included IE, what else are they not allowed to include. For purists modern OS's are not OS's at all but merely massive bundles of API's and utilities. But if you stripped Win95 down to its kernal, you wouldn't have much left"
You've missed the point. There is nothing wrong with distributing applications (Paint, MSCalc, Notepad etc) with your OS. The integration of IE is VERY different, in the sense that when you install Windows, you do not have the option of not installing IE - you have to install it - whereas all the other applications (Calc, Minesweeper etc) can be uninstalled with no hassles at all. There is a big difference between these two categories of applications. You are not forced to install stuff like Minesweeper.
The main reason this is "wrong" is that it was done for no good techical reason - this "integration" was done only for the purpose of pushing Netscape out of the browser market. Simple as that.
"Besides, how many car jackings where there in the whole of the UK last year? Insanely few I bet.. How many gun touting car jackers are willing to chase you down and kill you in a car to car shoot out? Zero. How many people would car jack a car with an active satallite tracker and remote shutdown? Zero"
Firstly, as has been said, there are of times when you legitimately need to speed.
Secondly, as far as I know, it is only illegal to speed on public roads. People should be allowed to speed on private property if thats what they want to do.
Thirdly, where does this all stop? If they install this system it becomes much easier to justify installing other systems in future.. there are plenty of possibilities, such as installing cameras in peoples cars.. before you know its a 1984 scenario, and nobody will realise till its too late, frog in boiling water scenario, etc etc. We should put our feet down now.
"all the IT and CompSCI people out there weren't really worried"
I'm kind of offended at your arrogant post that implies that all the IT and CompSci types are clueless and that the wonderful "engineers, technicians and programmers" are the only ones who understood and sorted out the problems. There are thousands of clued up CompSci types who understood the problems and worked their butts off preparing systems for Y2K, fixing problems BEFORE THEY HAPPENED; the problems were VERY REAL for them, and they are just as deserving of praise as you guys who do embedded systems etc.
I'm sorry if you ran into a few arrogant clueless CompSci people, but don't form any generalisations from that. There are plenty of arrogant clueless engineers too.
We've already wasted a lot of money refactoring code that should have been done cleaner from the start.
"If you do not pursue the Simplest Thing That Can Possibly Work"
We write Virtual Reality simulators for PC's. Almost nothing of what we do is simple. The core technologies are complex. Writing them 'as simple as possible' has in the past time and again proven to result in code that is not re-usable without putting a whole lot more work in to clean the code up.
"If you do not Embrace Change"
"Embracing change" does not have to mean "rewrite from the ground up when your needs change. Trust me, in PC 3D graphics, you have to embrace change, because hardware and software are evolving quickly. If you design well, you can take advantage of new hardware etc by just making changes to relevant modules. If you design badly, you're screwed. No matter what you do though, in 3D graphics, every few years you should be prepared to rewrite large chunks of your API, but that does not mean ignoring planning and re-use.
"If you think the feature set is frozen at the end of Design"
This is ridiculous. You come across as someone who knows very little about more "traditional" software design techniques. I acknowledge that I need to read up more about XP, but I suggest you read up more about conventional planning and design, which most definitely does NOT imply feature sets "frozen at the end of design" unless you don't know what you're doing.
"If you think you can accurately estimate the time for implementation before it starts"
Are you telling me that in XP the time estimate problems are magically solved? That the managers don't want to have time estimates anymore? That with XP you can magically more accurately estimate times?
To have set up a "unit test" you must already have defined some sort of spec to test against, which isn't what I was talking about.
"the potential problem of similar-but-different functions are covered by the practices of refactoring"
Refactoring is a fix-it-after-its-happened strategy. In our company that has turned out to be far more costly than just doing proper planning to begin with.
I'm just skeptical, thats all - at a glance the proposals sound exactly like advocating practices that have gotten us into sticky messes before, so I have the right to be skeptical.
"Don't spend forever in meetings discussing library design. Let the application drive the libraries and watch as successive application coding efforts get shorter and shorter with greater re-use"
I can't see how this can work. Say you have a smallish team of say half a dozen programmers, working on a single set of libraries, and several applications. Application 1 requires some functions to work in a certain way. Then programmer 2 from another application decides that his app needs those functions to work somewhat differently. Either he changes your functions or he adds new similar-but-different functions. Then do this for n programmers and m applications. What you end up with is a mess - multiple stupid functions instead of one decent function, newcomers have no idea which functions do what, there is no single coherent document or specification for anyone to learn what is going on. Programmers make little changes in a library that make their app work, but break others. "Copy-n-paste" becomes a method of "code reuse", since various shared functions weren't put where they belong in the beginning. "Let the application drive the libraries" becomes more like "lets hack functions into the libraries as soon as apps need them". Nobody has a good idea of the overall layout of the system, and nobody knows what everyone else is doing.
This cannot work without a single, decent specification that was planned in one of those boring library design meetings.
"We'll never REALLY know why it happened -- trying to find the WHY... isn't going to do any good"
Are you seriously implying here that just because we don't know the reason why it happened that we shouldn't try to figure out why it happened? Seems to me that making a serious, intelligent effort to determine the "why" could potentially help millions of people in the future - in light of this, how can we possibly attempt to do nothing about it? (As an arbitrary example, if you determine that schizophrenia was a major contributor to this incident, the desire to find a cure for schizoph. will be intensified, and when such a cure is found, millions of people would benefit.)
Remember, they used to burn "witches" just because they were too stupid/lazy/ignorant to figure out the "why" of some peoples' behavior.
Q1, Forgive my lack of knowledge of patent law, but not very much of this is "new", this concept has cropped up in the media many times and is pretty old. Point 15 seems to be the "original" bit.
Question 2, I'm no physicist, but I would guess that it should be possible to create a wearable device that can create enough interfere with the GPS signal to block the tracking device when you want to. How difficult would this be?
"historically, in the population of geniuses, the percentage of maladjusted people is much higher than in general population. It does not mean that you have to be mentally ill in order to create a masterpiece, but it means that there is a connection (which looks quite reasonable to me) between abnormal working of the mind and breakthroughs in creativity."
True, there is definitely a statistical link of some sort between creative people and mentally ill people; but correlation is != causality, and nobody really knows what the true nature of the link is. Personally, I would rather treat everyone who is mentally ill. Sure, we might end up with a few less great paintings, books, songs etc - but none of those things is worth the amount of suffering that mentally ill people have to go through.
"what if I am unhappy for a day? for a week? for a month?"
The deciding factor here is whether there is something mental that is more or less beyond your control which is getting in the way of your ability to be happy, i.e. if you are literally unable to reach an emotional state that would qualify as happy (I guess this is more specific to depression than mental illness in general.) If I am unhappy because my girlfriend did something to upset, then I can do something about it, like discuss the matter with her, then afterwards I'll probably feel better - that is in my control. But if I've been unhappy for the past three months and I don't even know why, then there is a problem.
"(what if I am unhappy because I have cancer or AIDS?)"
Currently this does qualify as depression, and rightly so. These people normally need counselling.
As for the issue of defining what "happy" is, I don't see any problems in leaving that decision to the individual. Most people are capable when questioned of determining whether or not they are happy or unhappy. Only you can decide if you are "happy", and as far as I know the government or anyone else hasn't begun to try to tell people if they are happy or not. My psychiatrist normally asks *me* how happy I am, he doesn't tell me.
Your point on individual choice is a very valid one - up to a point. If you don't want to take Prozac and you want to be unhappy, fine - just as long as you don't end up running around a school with a semi-automatic weapon blowing peoples heads off. If you pose a danger to anyone around you, you should be forced to take medication. I should not have to live with the negative effects of someone elses choice to throw away his Prozac. I should also be allowed to choose whether my tax money goes to (a) welfare checks for some person who can't hold down a job because they are too depressed to get out of bed, or (b) Prozac for that person so that they can function enough to flip burgers for me when I buy MacDonalds.
"Consider this: let's say I refuse to work as a corporate drone and instead flip burgers for food and spend most of my time programming the latest and greatest game/tool/app/etc. Moreover, from the point of view of my friends and family, this behavior is irrational, bad for me, and nothing good will come out of it. Am I functional? Probably not. Would you, then, claim that I am mentally ill? and should be treated with mind-altering drugs?"
Probably not, if thats what you want to do. However, if you decide that you're going to refuse to work as a corporate drone and rather spend all day and night lying in bed, semi-catatonic, neglecting personal hygeine, not eating properly, mutilating yourself with a knife every other day, and living off the people around you and off welfare, then you're probably heading into the "mentally ill" category. If thats what you *want* to do, fine, who cares, but just don't expect other people to pay for your accomodation and food then. The definition of "functional" hinges around whether or not you are capable of being self-sufficient. It isn't some fuzzy, borderline concept that you can pretty much decide where you want to draw the line, it is pretty clear.
Thanks for the civil reply ..
My line of work is mainly 3D simulation and Virtual Reality, so I guess that is the context I'm using when considering what is useful. Virtually every 3D graphics and simulation API on the market is using either C or C++. Sure, widely used does not mean good, but my reasoning for why I think C++ is useful is that I don't know of any other language that would have been a better choice for writing APIs like, for example, the Multigen toolkits. Or the VTree toolkit. There are hundreds of such API's, all C++. Its useful, in my opinion, because you have essentially an unmatched ability to work from low-level to high-level - you need the perfomance and you need to work at a pretty low level, but you still need to be able to effectively design components of your system at a very high level. C++, I feel, combines the two seemingly contradictory goals more effectively than any other language I know.
Smalltalk, for example, works well with high-level OOP design, and because of it you can do some very cool things. But at the expense of performance. Java sacrifices performance for the goal of cross-platform binaries.
We use C++ for our own APIs (I also spend five days (or more) a week doing C++ programming).
For probably the majority of all applications C++ is not the right choice (Java, VB, Delphi, perl, Smalltalk etc etc etc are better for what they are good at). But I still believe that you're better off choosing it for large programs that may not be horribly slow (eg a web browser like Netscape Navigator, or an Operating System, or a Word Processor.)
Perhaps I'm a bit behind the times, perhaps the performance is not so much of an issue anymore. But my feeling is that 3D simulation is still too slow in general, even using C++. There is still much to be done to improve simulations and 3d graphics quality, and to be "the best" you need to have fast code.
I read Tim Sweeney's article when the link was posted on slashdot, and I don't disagree with most of it. But with current computers, languages like Smalltalk and Java have just not been practical to use for large projects that require performance - I'm talking mostly about games, of course.
Please don't make the assumption that I'm just a C++ zealot pushing some sort of C++ religion. You know nothing about me.
You are the one that comes off as an anti-C++ zealot. I was not advocating C++ at all. I was just saying its turned out to be an extremely useful language, and if you can't see that then you should take your blinders off.
I believe that "true" OOP languages have enough perfomance overhead to make them languages of the future, not languages of the present, when it comes to apps like games, operating systems, etc. And C is *still* the most useful language for embedded systems, operating systems, low-level device drivers etc. Your "true OOP" zealotry is blinding you to these facts.
Too bad virtually none of the languages you mention has turned out be nearly as useful and practical as C++. I guess C++ can't suck that bad. I guess practical concerns like performance must be more important in the real world than sticking religously to a specific paradigm doctrine (I'm referring to the "it has to be real OOP, and C++ isn't real OOP, therefore it sucks" mentality.) I don't care if my language is "real this" or "real that". I want it to do the job.
When computers become much faster then "real OOP" languages like Smalltalk and Java will no doubt start to be used more often, but until then issues like performance will overshadow theoretical idealisms.
"write APIs that won't support languages other than C++"
API's are NOT tied to specific languages. If I write an API in C++ then what you get is normally, say, a dynamic library and maybe a header file which will describe to you how to call the functions and members etc. From that point you can create bindings for any frikking language you want. I'm afraid I've missed your point or something, but I fail to see how object (binary) code can be language-specific.
.. that they have done something wrong when "the screen goes blue" or when they get "one of those windows telling them they've done something illegal".
"Lawyers are busy people, and when the paperwork for "whois.net" dropped on their desk, they probably didn't realize that the generic term was already in use"
Thats their job. Thats why they're so busy, and thats why they get paid: to check these things. If they didnt check, its because they werent doing their jobs.
As if stopping people from voicing their racist opinions is going to get rid of racism. It may slow down the "recruiting process" a little, but I doubt it.
Of all the racists I know (and I know many), I would guess about 85% of them learned the racist "culture" from their parents, and 15% learned it from friends. Not one of them learned it from anywhere in the media (including TV, radio, newspapers and magazines.)
Based on this, I think that censoring online race hatred is going to be counterproductive, as it will falsely lead people to believe that there is less racism, when in fact there is merely less online discussion and expression of racism.
We should rather attack the problem at its roots, i.e. teach people why racism is both wrong and stupid.
Makes more sense now .. sounds a bit like Smalltalk, my experience with which was that it was very slow.
I can't imagine that sort of thing not having so much overhead that you can't really write a game with it. But I guess part of his point is that hardware is getting faster and faster, and pretty soon I suppose game programmers (and in fact many other programmers) will want to use something like that.
"Few people use C++ for object oriented programming"
Perhaps I'm the clueless one here, but this flies in the face of everything I know about the current state of the software development industry. Perhaps I might be more inclined to listen to your point if you could back this up by providing me with a reference to the source of your information; otherwise I might be inclined to irrationally believe that you boldly made that up simply because it is your own opinion.
The rest of your post makes a fair point, use the best language for the job.
I'm not saying he doesnt. In fact, I'm sure he knows C++ pretty well. But maybe he just doesn't explain himself very well, because he comes across as not understanding how to do various things in C++. He dismisses C++ out of hand as being 'unable to do' various things that are in fact incredibly easy to do in C++, and do them in a very general way (as he seems to describe) (e.g. C=A+B on arrays, and in fact on anything you like if you combine this with template classes and maybe a mixin if you're inclined to do things like that.) Maybe I just don't get what sort of amazing generality he is referring to.
He didnt explain very well at all what is so "flawed" about C++'s parametric class (templates) implementation. Instead he came across as sounding like he maybe once read through a chapter in a book on template classes and then never bothered to try them out.
Now, I have a lot of respect for Tim Sweeney, and I know he is extremely competent and I know he knows what he is talking about. He just doesn't explain himself too well. Instead of explaining technically his problems with C++ he comes across as someone who just has a bias against it.
"'industry standard' for games (DirectX) rather than the proprietory (and according to many graphics industry experts, technically inferior) OpenGL"
Huh?? Sorry, but your sentence makes no sense, OpenGL is far more open than Direct3D. Completely open-source implementations exist for OpenGL (Mesa3D for example.) OpenGL also runs on a much wider variety of platforms than does DirectX.
I'm sure an 'industry expert' like John Carmack might be inclined to disagree with your assessment.
Comparing OpenGL to DirectX is like comparing apples to oranges. However, it does make a lot more sense to compare OpenGL to Direct3D. As someone with industry experience in both, OpenGL is in my opinion by far a more well designed API. It has been around much longer (since about 1992, IIRC) and has always been way ahead of Direct3D. Direct3D has only just begin to catch up to OpenGL (and may only now begin to overtake OpenGL if nobody starts working on an OpenGL 2.0.)
Moreover, the current trend in the games industry is towards OpenGL. Remind me again what Quake3 uses? Many of the newer games on the market support OpenGL. The only reason Direct3D spent a few years as the "industry standard" 3D API was not because Direct3D was better, but because very few cards had working accelerated drivers for OpenGL. This has changed.
I personally never want to see DirectX on Linux. I would rather see something like SDL (Simple Directmedia Layer) become some sort of cross-platform games API standard (the latest development version of SDL has OpenGL support.)
As a marketing person, I suggest you learn at least a little bit about the technologies you market. At least that way you might sound like you know what you are talking about. And yes, I do have industry experience doing 3D graphics programming, both in Windows and Linux, and in OpenGL and Direct3D.
I offer this "open-source" technical advice for free.
Basically a modern version of the chastity belts in the old days. I know many (conservative) parents who would go for something like that. As sick as it sounds, I can definitely see it happening, although I doubt sexual desire can be pinned to a single gene, but the technology will get there.
"Under the law, a system to protect secrecy does not become unreasonable simply because a clever thief finds a way to penetrate the security"
This line is my main problem with the ruling. The above line implies that vitually any system to protect secrecy is good enough simply because it is there. The problem is, where does one draw the line? Any self-respecting computer export will tell you that 40-bit encryption is pathetically weak, but clearly the judge doesn't realise this. What if they had used an "xor 0xFF" to encrypt the DVD's? The above quote implies that XOR encryption would also not be "unreasonably simple", and in fact I doubt the judge would have been able to crack it. But clearly XOR encryption is a horrible joke - yet it would still be considered "a system to protect secrecy". In this day and age, nobody who is even remotely serious about encryption would even consider 40-bit encryption. How "clever" a thief do you have to be to crack a system? Clearly you have to be a relatively clever thief just to crack an XOR 0xFF encryption.
"I'm not comfortable with the government second-guessing software companies and demanding that they prove they have a 'good technical reason' for adding a feature"
Good point, but I'm not comfortable with Microsoft making those decisions, since they don't seem to make decisions based on technical merit at all. This seems to be the general case for any company with a monopoly in a given market, and the government has in the past successfully made the right decision many times in "untying" products which should never have been tied together in the first place. I believe they are still capable of making that sort of decision, even though software is a bit more complex. From my personal interpretation of the findings so far in the antitrust trial is that the Judge seems to have a pretty good idea of what the underlying issues here are.
The TCP/IP stack doesn't really fall under the Sherman antitrust laws, since there isn't really a market for "TCP/IP stacks" by themselves. I have never heard of anyone wanting to go out and buy a TCP/IP stack, but many people I know have gone out and bought a desktop operating system, which is the market at issue in the trial.
Supplying a web browser with an OS is a good idea. I agree. "Integrating" a web browser application into an OS is (in my opinion) without technical merit; and as has been pointed out in the FoF, a not insignificant number of clients require the OS without the browser for various reasons. In other words, two seperate products.
Windows has never been so slow as when they decided to "integrate" IE. Every day my PIII 450 with 256 MB RAM drags along like a crappy 386.
Yes, software companies hsould be allowed to make their own design decisions. But they are not exempt from the same antitrust laws that apply to other markets. Neither is the software industry immune from the same dirty tactics that require those laws.
"I don't know, but I don't see as it matters. After all, there are *lots* of programs that come as part of the OS, and if Microsoft shouldn't have included IE, what else are they not allowed to include. For purists modern OS's are not OS's at all but merely massive bundles of API's and utilities. But if you stripped Win95 down to its kernal, you wouldn't have much left"
You've missed the point. There is nothing wrong with distributing applications (Paint, MSCalc, Notepad etc) with your OS. The integration of IE is VERY different, in the sense that when you install Windows, you do not have the option of not installing IE - you have to install it - whereas all the other applications (Calc, Minesweeper etc) can be uninstalled with no hassles at all. There is a big difference between these two categories of applications. You are not forced to install stuff like Minesweeper.
The main reason this is "wrong" is that it was done for no good techical reason - this "integration" was done only for the purpose of pushing Netscape out of the browser market. Simple as that.
As far as I know, nobody has ever managed to find any evidence at all that the viewing of pornography by minors is harmful to them.
"Besides, how many car jackings where there in the whole of the UK last year? Insanely few I bet.. How many gun touting car jackers are willing to chase you down and kill you in a car to car shoot out? Zero. How many people would car jack a car with an active satallite tracker and remote shutdown? Zero"
Come live in Gauteng in South Africa for a while.
Firstly, as has been said, there are of times when you legitimately need to speed.
Secondly, as far as I know, it is only illegal to speed on public roads. People should be allowed to speed on private property if thats what they want to do.
Thirdly, where does this all stop? If they install this system it becomes much easier to justify installing other systems in future
"all the IT and CompSCI people out there weren't really worried"
I'm kind of offended at your arrogant post that implies that all the IT and CompSci types are clueless and that the wonderful "engineers, technicians and programmers" are the only ones who understood and sorted out the problems. There are thousands of clued up CompSci types who understood the problems and worked their butts off preparing systems for Y2K, fixing problems BEFORE THEY HAPPENED; the problems were VERY REAL for them, and they are just as deserving of praise as you guys who do embedded systems etc.
I'm sorry if you ran into a few arrogant clueless CompSci people, but don't form any generalisations from that. There are plenty of arrogant clueless engineers too.
"If you do not Refactor Mercilessly"
We've already wasted a lot of money refactoring code that should have been done cleaner from the start.
"If you do not pursue the Simplest Thing That Can Possibly Work"
We write Virtual Reality simulators for PC's. Almost nothing of what we do is simple. The core technologies are complex. Writing them 'as simple as possible' has in the past time and again proven to result in code that is not re-usable without putting a whole lot more work in to clean the code up.
"If you do not Embrace Change"
"Embracing change" does not have to mean "rewrite from the ground up when your needs change. Trust me, in PC 3D graphics, you have to embrace change, because hardware and software are evolving quickly. If you design well, you can take advantage of new hardware etc by just making changes to relevant modules. If you design badly, you're screwed. No matter what you do though, in 3D graphics, every few years you should be prepared to rewrite large chunks of your API, but that does not mean ignoring planning and re-use.
"If you think the feature set is frozen at the end of Design"
This is ridiculous. You come across as someone who knows very little about more "traditional" software design techniques. I acknowledge that I need to read up more about XP, but I suggest you read up more about conventional planning and design, which most definitely does NOT imply feature sets "frozen at the end of design" unless you don't know what you're doing.
"If you think you can accurately estimate the time for implementation before it starts"
Are you telling me that in XP the time estimate problems are magically solved? That the managers don't want to have time estimates anymore? That with XP you can magically more accurately estimate times?
"the unit tests make sure that nothing breaks"
To have set up a "unit test" you must already have defined some sort of spec to test against, which isn't what I was talking about.
"the potential problem of similar-but-different functions are covered by the practices of refactoring"
Refactoring is a fix-it-after-its-happened strategy. In our company that has turned out to be far more costly than just doing proper planning to begin with.
I'm just skeptical, thats all - at a glance the proposals sound exactly like advocating practices that have gotten us into sticky messes before, so I have the right to be skeptical.
"Don't spend forever in meetings discussing library design. Let the application drive the libraries and watch as successive application coding efforts get shorter and shorter with greater re-use"
I can't see how this can work. Say you have a smallish team of say half a dozen programmers, working on a single set of libraries, and several applications. Application 1 requires some functions to work in a certain way. Then programmer 2 from another application decides that his app needs those functions to work somewhat differently. Either he changes your functions or he adds new similar-but-different functions. Then do this for n programmers and m applications. What you end up with is a mess - multiple stupid functions instead of one decent function, newcomers have no idea which functions do what, there is no single coherent document or specification for anyone to learn what is going on. Programmers make little changes in a library that make their app work, but break others. "Copy-n-paste" becomes a method of "code reuse", since various shared functions weren't put where they belong in the beginning. "Let the application drive the libraries" becomes more like "lets hack functions into the libraries as soon as apps need them". Nobody has a good idea of the overall layout of the system, and nobody knows what everyone else is doing.
This cannot work without a single, decent specification that was planned in one of those boring library design meetings.
"We'll never REALLY know why it happened -- trying to find the WHY ... isn't going to do any good"
Are you seriously implying here that just because we don't know the reason why it happened that we shouldn't try to figure out why it happened? Seems to me that making a serious, intelligent effort to determine the "why" could potentially help millions of people in the future - in light of this, how can we possibly attempt to do nothing about it? (As an arbitrary example, if you determine that schizophrenia was a major contributor to this incident, the desire to find a cure for schizoph. will be intensified, and when such a cure is found, millions of people would benefit.)
Remember, they used to burn "witches" just because they were too stupid/lazy/ignorant to figure out the "why" of some peoples' behavior.
Q1, Forgive my lack of knowledge of patent law, but not very much of this is "new", this concept has cropped up in the media many times and is pretty old. Point 15 seems to be the "original" bit.
Question 2, I'm no physicist, but I would guess that it should be possible to create a wearable device that can create enough interfere with the GPS signal to block the tracking device when you want to. How difficult would this be?
"historically, in the population of geniuses, the percentage of maladjusted people is much higher than in general population. It does not mean that you have to be mentally ill in order to create a masterpiece, but it means that there is a connection (which looks quite reasonable to me) between abnormal working of the mind and breakthroughs in creativity."
True, there is definitely a statistical link of some sort between creative people and mentally ill people; but correlation is != causality, and nobody really knows what the true nature of the link is. Personally, I would rather treat everyone who is mentally ill. Sure, we might end up with a few less great paintings, books, songs etc - but none of those things is worth the amount of suffering that mentally ill people have to go through.
"what if I am unhappy for a day? for a week? for a month?"
The deciding factor here is whether there is something mental that is more or less beyond your control which is getting in the way of your ability to be happy, i.e. if you are literally unable to reach an emotional state that would qualify as happy (I guess this is more specific to depression than mental illness in general.) If I am unhappy because my girlfriend did something to upset, then I can do something about it, like discuss the matter with her, then afterwards I'll probably feel better - that is in my control. But if I've been unhappy for the past three months and I don't even know why, then there is a problem.
"(what if I am unhappy because I have cancer or AIDS?)"
Currently this does qualify as depression, and rightly so. These people normally need counselling.
As for the issue of defining what "happy" is, I don't see any problems in leaving that decision to the individual. Most people are capable when questioned of determining whether or not they are happy or unhappy. Only you can decide if you are "happy", and as far as I know the government or anyone else hasn't begun to try to tell people if they are happy or not. My psychiatrist normally asks *me* how happy I am, he doesn't tell me.
Your point on individual choice is a very valid one - up to a point. If you don't want to take Prozac and you want to be unhappy, fine - just as long as you don't end up running around a school with a semi-automatic weapon blowing peoples heads off. If you pose a danger to anyone around you, you should be forced to take medication. I should not have to live with the negative effects of someone elses choice to throw away his Prozac. I should also be allowed to choose whether my tax money goes to (a) welfare checks for some person who can't hold down a job because they are too depressed to get out of bed, or (b) Prozac for that person so that they can function enough to flip burgers for me when I buy MacDonalds.
"Consider this: let's say I refuse to work as a corporate drone and instead flip burgers for food and spend most of my time programming the latest and greatest game/tool/app/etc. Moreover, from the point of view of my friends and family, this behavior is irrational, bad for me, and nothing good will come out of it. Am I functional? Probably not. Would you, then, claim that I am mentally ill? and should be treated with mind-altering drugs?"
Probably not, if thats what you want to do. However, if you decide that you're going to refuse to work as a corporate drone and rather spend all day and night lying in bed, semi-catatonic, neglecting personal hygeine, not eating properly, mutilating yourself with a knife every other day, and living off the people around you and off welfare, then you're probably heading into the "mentally ill" category. If thats what you *want* to do, fine, who cares, but just don't expect other people to pay for your accomodation and food then. The definition of "functional" hinges around whether or not you are capable of being self-sufficient. It isn't some fuzzy, borderline concept that you can pretty much decide where you want to draw the line, it is pretty clear.