The browser thing is so hypocritical it's almost beyond belief. MS were bundling IE with Windows right back to Win95 with IE2 IIRC. At the time, Netscape was closed source, paid for software, often licensed by ISPs to give out to their customers. We used it because it was what came with our ISP package and knew no different. I discovered IE when I double clicked on a.htm file on the harddisk once and wondered what it was. No one complained, because Netscape had pole position of mindshare and possibly (I'm guessing but cannot confirm) was better anyway. Then... IE started actually getting good, and there was competition, and all of a sudden it was "unfair that they're bundling a browser", even though it wasn't "unfair" for years before that. Now we have a range of open source, free browsers. We would still be buying them if IE wasn't given away with Windows. If you think that's unfair, then you can donate to your favourite browser team.
I liked that IE was integrated into the OS! Just as how I like that KDE does (or did, I've not used KDE4 to know if it's changed). But now, because other people weren't choosing to use other browsers, I now can't choose what I wanted. The whole things stinks of hypocrisy. But yes... this is slashdot huh. Oh well... I'm sure no one else will read this now anyway!
Wow didn't even realise it'd been modded down so heavily, thanks for bringing it to my attention! *lol* but yes, reminders that there are reasonable and experiences people on here too is what keeps me coming back. The signal to noise ratio is horrendous, it seems full of people emoting uncontrollably and unreasonably, but I figure that just means the rest of us have to speak up more often, cuz we are what make it! Take it easy dude:-)
*So* far wrong. The speed from locking is not 'two instructions', the closest would be instruction level locking for atomic updates where the bus lock is raised while the instruction executes, but that's not really the level of locking we're talking about here, although that will be used inside the locking primatives at the assembly code level. Spinning mutual exclusion locks require more instructions, including at least one comparison and conditional jump, which in all contended cases or when branch prediction gets it wrong means at least one pipeline flush. If you hit a lock that's unlikely to be released in the very near future (which is always the case on single core - the lock can't be freed while you've got the processor) you have to yield the processor to give whatever's got the lock chance to finish using and release it... this means context switches which are expensive. Futex's (fast userspace mutual exclusions) are fast (as the name implies) and don't require a context switch in uncontended cases, but contended cases an be more expensive.
But all this is by the by anyway; designed well, with the correct locking algorithms used in each place rather than devestating locks such as the BKL, locking doesn't have to be expensive at all - or even necessary in cases where lockless algorithms can be used (such as by using per-core variables, RCU and the like), but locking conflicts *do* come up. NASA sent stuff up to Mars which crashed when it got there - it took much debugging to find it was being caused by priority inversion and they had to implement priority inheritance to stop it from happening. Linus eventually conceeded to allow some priority inheritance into the Linux kernel to stop its effects happening there once the "people should write proper code that won't suffer priority inversion" argument was viewed to be a futile one. This wouldn't happen if locking doesn't go wrong, or if locking problems were the CPU's fault and had to wait for newer processors to resolve.
Are you getting that I'm not making stuff up yet? The stuff going on beneith the hood of modern day operating systems is *chaos*. Slight timing issues for example due to a slower harddrive on one machine can cause a cascading effect of stalled locks through the system resulting in deadlock and livelock situations. Mine cropped up in [a much earlier version of] MySQL (although this doesn't necessarily mean it was mysql that was at fault). Telling it to run with only a single thread cured the problem. Newer versions are now running fine with a thread per core, on the same hardware.
Finally,
"Honestly, the newer cores were always faster than older cores "even at the same clockspeed""
Not in all cases! Please, resist using terms like "is always", you should be open to the fact that there could be knowledge outside of your own. Much code slowed down going from P5 to P6 as CISC to RISC instruction emulation was expensive. This mainly affected 16bit code IIRC (which there was a lot more of around at that time). There've also been cases where a newer architecture has been slower, but the changes have allowed them to push the core speed much higher than the previous architecture, so ultimately the speed will improve. I couldn't tell you exactly which ones as it's stuff I remember coming across and don't have time to dig through processor history of the past 5-10 years to find them (I've spent way too long on this already!), but I hope you can see that I'm not confused and my statements are well founded rather than baseless. I'm not in the habit of just making stuff up.
Pinning it to a single core's not necessary at all, just running it as a single thread's sufficient, as a single thread will only ever be executing at most in one place at a time, much of the locking issues, race conditions etc, disappears as your code's all going to run strictly in order. You will still lose speed if you have to use any thread-safe libraries though, as they will have the proper locking code which will still get executed even in a non-threaded context, but most locking primatives are good enough that overhead in non-contended cases if minimal. Of course, if you have non-thread-safe versions of the libraries to use, then you get that speed back.
(In fact pinning it makes no difference at all, even on a single core, multithreaded apps still need proper locking as you never know when the OS is going to stop your execution and pass it over to another thread)
Done correctly the effects should be negligable anyway so this is all pretty much academic. The newer cores will tend to be faster than the older cores even at the same clockspeed (there've been a few exceptions in the past during the hertz-war, but thankfully we're past that now!):-)
"The last person you trust is the person who made the software"
I wouldn't be running software written by anyone who I distrusted that much.
"you need someone looking at it who doesn't have a profit motivation"
If they're doing it for a living, they have a profit motivation. Plus, you don't think that if MS were up to the naughties they couldn't corrupt the parties that are charged with auditing the code? Maybe not everyone, but then maybe not everyone who would see the code actually inside microsoft would keep as quiet about it as ms'd prefer.
It I guess does just come down to where you draw the line. I'm perfectly happy trusting that my copy of 2003 is perfectly fine for me to run and that ms haven't shipped it with malicious code that they're gonna use against me... and it's not blind faith, I don't think it would do their business any good, especially if word ever got out, and word would get out.
I believe your reasoning is a little off... I think there are many reasons why breaks in compatibility can occur, I really don't think that it's because people being pissed off with breaks in compatiblity shows that they want backward compatiblity. That's just not how motivation in people works.
Well just to play penguins advocate (what, you're a bsd buff?) but one app doesn't exactly give a whole picture. I'm a Linux From Scratch guy, so I know how much of a pain it can be to get old stuff to run even with the source code. Often I can fix it up (like where the code's broken due to changes in gcc, which are usually fairly easy to fix) but often enough I've had to just drop the idea of getting certain things running unfortunately time isn't supply on demand.
What about if you want to use your hardware, like say, your nvidia graphics card? Sure you can argue that nvidia should open source their drivers, or you can tell people to wait for nouveux, but they won't, and they won't!
Please note before you argue back cases for windows non-backward-compatibility examples, these are not intended to be counter arguments to your statements about windows, just your statements about linux.
"The argument is that it's ridiculous to suggest that backwards compatibility is "THE REASON" for MS's success"
I don't think the word 'the' was meant to be taken as a literal definite article, sometimes people exagerate to demonstrate their point as a shorthand way of explaining that the actual extent of their point is large enough to warrent exageration. It's something I personally prefer to not do, but I don't think it's too much of a problem when people do.
I don't think anyone's going to suggest that MS OS's are perfectly backward compatible; sometimes things do need to change, and sometimes things rely on bugs that shouldn't be left open, but in all my own personal experience, they do win hands down next to Linux and Apple (I can't comment outside the scope of those three). Say what you want about "having the source code", but when things need certain versions of libraries for certain APIs, or relied on the way a particular version of GCC compiled their code that's now no longer the case, things don't stay so black and white. Yes I've been able to update a lot of old code myself to reflect changes and get it to compile, but there's still an awful lot I can't.
Because yeah if MS were any good they wouldn't need to use these 'shims' or whatever they sound like because they would've developed a time machine by now to go back in time and delay the release of their OS's until they had full multiuser support that didn't slow things down too much despite the fact that people didn't even need it at the time.
Mistakes happen, sometimes out here in the real world you just have to patch up and get on with it. You can't just rip everything out and start again every time you hit a design snag when there're people relying on said everything to continue working.
I suppose you check the design schematics for your car and watched your house being built to make sure there're no bugs planted in the wall...
You have to draw the trust line somewhere. So a business wants to check the code's all alrighty, they have to pay someone to do it... except then you're relying on the trustworthiness and skill of that person. They may as well just be paying MS.
Don't get me wrong, my line of work's all open source stuff, and where people require windows servers they always go in a virtual machine, never on bare metal. But I'm not everyone, other people and other businesses have other priorities. Ignoring that helps no one.
and then followed it up by listing a bunch of arguments showing why it is due to backward compatibility! That totally caught me by surprise! But yeah, you're right, if they dumped compatibility people would get pissed off, because they do want backward compatibility!
"All the app makers target Windows because thats what 90% of desktop users use"
Do you think Windows would ever've gotten so popular if it didn't allow people to run their old DOS programs? Course not. It's called 'transition', and it's much less disruptive, esp to businesses, than quantum leaps.
"It's backwards compatibility for the win, ever since version 1"
Except version one wasn't exactly a 'win'... or two... three was where it really started taking off.
Of course the fact that you could still run your old DOS programs was quite the benefit as people had a lot of them... oh no, there goes your argument!
Haha yeah I missed out w3m didn't I? Yeah I have that installed on my Linux boxes for when X fails to load and I need to look stuff up and other similar occasions:-)
Well, not jew specifically, you're just the one that bit *lol*
"I'm trying to help you come across as less stupid"
Which makes this all the more ironic... or maybe moronic? So convinced that I was stupid, rather than just someone who's been watching too much South Park, that you forgot to consider your own looking stupidness!
Ah, if only you'd just politely said something like "did you mean to say...?" or "do you know it's meant to be...?" you would've just come across as someone who didn't spot an admittedly not too easy to spot joke rather than as a complete twat. But, I guess you're saved by posting AC huh.
Also, look up the word 'whining', I do not think it means what you think it means, because recognising achievement and awarding credit for it does not by *any* stretch of imagination constitute whining!
Be good to people man, there's absolutely no call for your attitude.
This is mostly true, although I have in the past found some software which works better on single processor than dual due to poor locking code/design covering data structures which was not there in the single threaded version, but that got fixed up (it wasn't a game tho). Most games should be able to benefit from a second core to an extent greater than they are hindered by the addition of the locking code. These days there shouldn't be any excuse for not knowing about different locking methods available, race conditions, minimising critical sections etc.
Aww, you meant to say "are you this condescending..." but your little rage took over and the keyboard and the words got all confusing and it was all a bit much wasn't it? But it's okay, we knew what you meant, and it's just adorable that you tried so hard!
"For the application at hand, it would be simpler to just buy a $300 budget gaming PC and be done with it."
Have you met any getting-married people? They spend nothing on anything that isn't "saving up for the wedding"... unless it's like one of those google "beta" "engagements" of course.
Classically yes, but... meh... it doesn't make sense, it's unstructured, it's not nearly as expressive, and so I for one plain don't like it. For example, take a question within a statement or question:
Did he just say "what's your name?"?
Yes, he did just say "what's your name?"!
It's far more logical that way; the ending punctuation applies to the current lexical block and expresses information about it. Without it, take this contrived example:
He said "I said that?"
Am I asking whether he told me that he did say it, or am I telling you that he asked me to confirm what he said.
No, I don't like it one bit... and it's not stupidity, ignorance or laziness, I actually think the other way is better.
The browser thing is so hypocritical it's almost beyond belief. MS were bundling IE with Windows right back to Win95 with IE2 IIRC. At the time, Netscape was closed source, paid for software, often licensed by ISPs to give out to their customers. We used it because it was what came with our ISP package and knew no different. I discovered IE when I double clicked on a .htm file on the harddisk once and wondered what it was. No one complained, because Netscape had pole position of mindshare and possibly (I'm guessing but cannot confirm) was better anyway. Then... IE started actually getting good, and there was competition, and all of a sudden it was "unfair that they're bundling a browser", even though it wasn't "unfair" for years before that. Now we have a range of open source, free browsers. We would still be buying them if IE wasn't given away with Windows. If you think that's unfair, then you can donate to your favourite browser team.
I liked that IE was integrated into the OS! Just as how I like that KDE does (or did, I've not used KDE4 to know if it's changed). But now, because other people weren't choosing to use other browsers, I now can't choose what I wanted. The whole things stinks of hypocrisy. But yes... this is slashdot huh. Oh well... I'm sure no one else will read this now anyway!
Wow didn't even realise it'd been modded down so heavily, thanks for bringing it to my attention! *lol* but yes, reminders that there are reasonable and experiences people on here too is what keeps me coming back. The signal to noise ratio is horrendous, it seems full of people emoting uncontrollably and unreasonably, but I figure that just means the rest of us have to speak up more often, cuz we are what make it! Take it easy dude :-)
*So* far wrong. The speed from locking is not 'two instructions', the closest would be instruction level locking for atomic updates where the bus lock is raised while the instruction executes, but that's not really the level of locking we're talking about here, although that will be used inside the locking primatives at the assembly code level.
Spinning mutual exclusion locks require more instructions, including at least one comparison and conditional jump, which in all contended cases or when branch prediction gets it wrong means at least one pipeline flush. If you hit a lock that's unlikely to be released in the very near future (which is always the case on single core - the lock can't be freed while you've got the processor) you have to yield the processor to give whatever's got the lock chance to finish using and release it... this means context switches which are expensive. Futex's (fast userspace mutual exclusions) are fast (as the name implies) and don't require a context switch in uncontended cases, but contended cases an be more expensive.
But all this is by the by anyway; designed well, with the correct locking algorithms used in each place rather than devestating locks such as the BKL, locking doesn't have to be expensive at all - or even necessary in cases where lockless algorithms can be used (such as by using per-core variables, RCU and the like), but locking conflicts *do* come up. NASA sent stuff up to Mars which crashed when it got there - it took much debugging to find it was being caused by priority inversion and they had to implement priority inheritance to stop it from happening. Linus eventually conceeded to allow some priority inheritance into the Linux kernel to stop its effects happening there once the "people should write proper code that won't suffer priority inversion" argument was viewed to be a futile one. This wouldn't happen if locking doesn't go wrong, or if locking problems were the CPU's fault and had to wait for newer processors to resolve.
Are you getting that I'm not making stuff up yet? The stuff going on beneith the hood of modern day operating systems is *chaos*. Slight timing issues for example due to a slower harddrive on one machine can cause a cascading effect of stalled locks through the system resulting in deadlock and livelock situations. Mine cropped up in [a much earlier version of] MySQL (although this doesn't necessarily mean it was mysql that was at fault). Telling it to run with only a single thread cured the problem. Newer versions are now running fine with a thread per core, on the same hardware.
Finally,
"Honestly, the newer cores were always faster than older cores "even at the same clockspeed""
Not in all cases! Please, resist using terms like "is always", you should be open to the fact that there could be knowledge outside of your own. Much code slowed down going from P5 to P6 as CISC to RISC instruction emulation was expensive. This mainly affected 16bit code IIRC (which there was a lot more of around at that time). There've also been cases where a newer architecture has been slower, but the changes have allowed them to push the core speed much higher than the previous architecture, so ultimately the speed will improve. I couldn't tell you exactly which ones as it's stuff I remember coming across and don't have time to dig through processor history of the past 5-10 years to find them (I've spent way too long on this already!), but I hope you can see that I'm not confused and my statements are well founded rather than baseless. I'm not in the habit of just making stuff up.
haha that's like the guy in southpark who has a bone condition that stops him pronouncing the 't' in 'planetarium' *lol* :-)
Pinning it to a single core's not necessary at all, just running it as a single thread's sufficient, as a single thread will only ever be executing at most in one place at a time, much of the locking issues, race conditions etc, disappears as your code's all going to run strictly in order. You will still lose speed if you have to use any thread-safe libraries though, as they will have the proper locking code which will still get executed even in a non-threaded context, but most locking primatives are good enough that overhead in non-contended cases if minimal. Of course, if you have non-thread-safe versions of the libraries to use, then you get that speed back.
(In fact pinning it makes no difference at all, even on a single core, multithreaded apps still need proper locking as you never know when the OS is going to stop your execution and pass it over to another thread)
Done correctly the effects should be negligable anyway so this is all pretty much academic. The newer cores will tend to be faster than the older cores even at the same clockspeed (there've been a few exceptions in the past during the hertz-war, but thankfully we're past that now!) :-)
"The last person you trust is the person who made the software"
I wouldn't be running software written by anyone who I distrusted that much.
"you need someone looking at it who doesn't have a profit motivation"
If they're doing it for a living, they have a profit motivation. Plus, you don't think that if MS were up to the naughties they couldn't corrupt the parties that are charged with auditing the code? Maybe not everyone, but then maybe not everyone who would see the code actually inside microsoft would keep as quiet about it as ms'd prefer.
It I guess does just come down to where you draw the line. I'm perfectly happy trusting that my copy of 2003 is perfectly fine for me to run and that ms haven't shipped it with malicious code that they're gonna use against me... and it's not blind faith, I don't think it would do their business any good, especially if word ever got out, and word would get out.
I dunno, does your computer play 'whoosh' sounds at you when you scroll down or anything? If it's confusing you, you should turn that off.
I believe your reasoning is a little off... I think there are many reasons why breaks in compatibility can occur, I really don't think that it's because people being pissed off with breaks in compatiblity shows that they want backward compatiblity. That's just not how motivation in people works.
Well just to play penguins advocate (what, you're a bsd buff?) but one app doesn't exactly give a whole picture. I'm a Linux From Scratch guy, so I know how much of a pain it can be to get old stuff to run even with the source code. Often I can fix it up (like where the code's broken due to changes in gcc, which are usually fairly easy to fix) but often enough I've had to just drop the idea of getting certain things running unfortunately time isn't supply on demand.
What about if you want to use your hardware, like say, your nvidia graphics card? Sure you can argue that nvidia should open source their drivers, or you can tell people to wait for nouveux, but they won't, and they won't!
Please note before you argue back cases for windows non-backward-compatibility examples, these are not intended to be counter arguments to your statements about windows, just your statements about linux.
"The argument is that it's ridiculous to suggest that backwards compatibility is "THE REASON" for MS's success"
I don't think the word 'the' was meant to be taken as a literal definite article, sometimes people exagerate to demonstrate their point as a shorthand way of explaining that the actual extent of their point is large enough to warrent exageration. It's something I personally prefer to not do, but I don't think it's too much of a problem when people do.
I don't think anyone's going to suggest that MS OS's are perfectly backward compatible; sometimes things do need to change, and sometimes things rely on bugs that shouldn't be left open, but in all my own personal experience, they do win hands down next to Linux and Apple (I can't comment outside the scope of those three). Say what you want about "having the source code", but when things need certain versions of libraries for certain APIs, or relied on the way a particular version of GCC compiled their code that's now no longer the case, things don't stay so black and white. Yes I've been able to update a lot of old code myself to reflect changes and get it to compile, but there's still an awful lot I can't.
Because yeah if MS were any good they wouldn't need to use these 'shims' or whatever they sound like because they would've developed a time machine by now to go back in time and delay the release of their OS's until they had full multiuser support that didn't slow things down too much despite the fact that people didn't even need it at the time.
Mistakes happen, sometimes out here in the real world you just have to patch up and get on with it. You can't just rip everything out and start again every time you hit a design snag when there're people relying on said everything to continue working.
"Yeah, real funny"
It's slightly funnier if you don't think of jokes as being accurate representations of fact.
But I guess once you're angry, you're angry.
I suppose you check the design schematics for your car and watched your house being built to make sure there're no bugs planted in the wall...
You have to draw the trust line somewhere. So a business wants to check the code's all alrighty, they have to pay someone to do it... except then you're relying on the trustworthiness and skill of that person. They may as well just be paying MS.
Don't get me wrong, my line of work's all open source stuff, and where people require windows servers they always go in a virtual machine, never on bare metal. But I'm not everyone, other people and other businesses have other priorities. Ignoring that helps no one.
Why? API redirection is like a zillion times faster than virtualisation.
Haha, for me, the best bit was where you said
"its not due to MS backwords compatibility"
and then followed it up by listing a bunch of arguments showing why it is due to backward compatibility! That totally caught me by surprise! But yeah, you're right, if they dumped compatibility people would get pissed off, because they do want backward compatibility!
"All the app makers target Windows because thats what 90% of desktop users use"
Do you think Windows would ever've gotten so popular if it didn't allow people to run their old DOS programs? Course not. It's called 'transition', and it's much less disruptive, esp to businesses, than quantum leaps.
"It's backwards compatibility for the win, ever since version 1"
Except version one wasn't exactly a 'win'... or two... three was where it really started taking off.
Of course the fact that you could still run your old DOS programs was quite the benefit as people had a lot of them... oh no, there goes your argument!
"or flagrant violation of antitrust laws"
hint: they had to become a monopoly power first!
Haha yeah I missed out w3m didn't I? Yeah I have that installed on my Linux boxes for when X fails to load and I need to look stuff up and other similar occasions :-)
"You've gotta be fucking kidding me"
Well, not jew specifically, you're just the one that bit *lol*
"I'm trying to help you come across as less stupid"
Which makes this all the more ironic... or maybe moronic? So convinced that I was stupid, rather than just someone who's been watching too much South Park, that you forgot to consider your own looking stupidness!
Ah, if only you'd just politely said something like "did you mean to say...?" or "do you know it's meant to be...?" you would've just come across as someone who didn't spot an admittedly not too easy to spot joke rather than as a complete twat. But, I guess you're saved by posting AC huh.
Also, look up the word 'whining', I do not think it means what you think it means, because recognising achievement and awarding credit for it does not by *any* stretch of imagination constitute whining!
Be good to people man, there's absolutely no call for your attitude.
"OK, OK, I give"
You're making that up, aren't you?
"There's no need to let loose the full armament of pedantic weapons"
There ya go, fixed it :-p
*lol* (sorry, but I am giggling my ass off here! At least I didn't comment on the capital D... oh crap... nevermind, feel free to hate me now ;-) )
This is mostly true, although I have in the past found some software which works better on single processor than dual due to poor locking code/design covering data structures which was not there in the single threaded version, but that got fixed up (it wasn't a game tho). Most games should be able to benefit from a second core to an extent greater than they are hindered by the addition of the locking code. These days there shouldn't be any excuse for not knowing about different locking methods available, race conditions, minimising critical sections etc.
We should start a movement, a Structured English Society to spread awareness of gain followers of this improvement to the written language :-)
Should that be a question mark at the end there? (*lol* sorry couldn't resist, plz don't pull out the WWII references!)
"Are this condescending to your fiance directly"
Aww, you meant to say "are you this condescending..." but your little rage took over and the keyboard and the words got all confusing and it was all a bit much wasn't it? But it's okay, we knew what you meant, and it's just adorable that you tried so hard!
"For the application at hand, it would be simpler to just buy a $300 budget gaming PC and be done with it."
Have you met any getting-married people? They spend nothing on anything that isn't "saving up for the wedding" ... unless it's like one of those google "beta" "engagements" of course.
Classically yes, but... meh... it doesn't make sense, it's unstructured, it's not nearly as expressive, and so I for one plain don't like it. For example, take a question within a statement or question:
Did he just say "what's your name?"?
Yes, he did just say "what's your name?"!
It's far more logical that way; the ending punctuation applies to the current lexical block and expresses information about it. Without it, take this contrived example:
He said "I said that?"
Am I asking whether he told me that he did say it, or am I telling you that he asked me to confirm what he said.
No, I don't like it one bit... and it's not stupidity, ignorance or laziness, I actually think the other way is better.