Modern games will always try to max out your CPU/GPU.
Not true, especially on the PC where you can't assume people have the latest and greatest CPU and graphics card. I think this would be better phrased as "games whose authors decide that maxing out your CPU/GPU is a priority will do so." That really only covers a handful of games. Even DOOM 3 doesn't max out a 3GHz Pentium 4 with a Radeom 9800. (Yes, it has crazy settings that look 2% better and saturate the system bus, but turn them off and you're fine.)
I've heard so much about the programming practices at Microsoft and what not - and yet, ironically, these things keep cropping up so damn bloody often while some operating systems [openbsd.org] coded by a bunch of loosely connected hackers are way more robust and stable.
Three reasons:
1. BSD is a much simpler OS. Remember, Windows isn't just a kernel, but a graphics subsystem, a window management layer, and so on.
2. Windows is very high profile and is what the crazies are targeting with their virii and other attacks. People are actively looking for these exploits under Windows.
3. It isn't at all clear that BSD has fewer application-level exploits than Windows, such as these image decoding overruns. It's not like these newly discovered exploits have been used to attack Windows. They were accidentally discovered by programmers. I'm sure if everyone started going through the source for BSD applications they'd find exploits, too. So this isn't a valid comparison, because there's no data.
I won't save you the research - there's a very good chance someone else will, though - but the former appears to be true as far as I can see. Seems that whenever a security hole is reported on Slashdot, there's a pointer to a fix within the story or, at the very least, in a comment to it.
Ah, so this is just a gut feeling:) In all honesty, I see patches damn fast from commercial software companies, with the key word being "small." 4NT and Take Command (see http://www.jpsoft.com) get patched within a day whenever there's a critical bug. I've seen the same level of support from many small companies.
I spent 12 straight hours on saturday trying to help my brother with his XP machine.
He wanted to use it to play games, had spent a bunch of cash on good hardware, etc... and had spent the last 3 months enlisting help from various skilled support-type geek friends to try and stop it crashing.
Situations like this are common, but you can't blame XP for it. I've had similar problems with different OSes, including Linux. The general problem is that PCs are complex beasts. All it takes is one slightly flaky bit of hardware to cause headaches. I used to have a PC that randomly locked up, especially when playing games. It turned out that there was something not obviously flaky about my Radeon 9800 that did this. All of the usual suspects checked out. Swapping in a different Radeon 9800 card fixed my problems. But could I blame Windows or Microsoft for this? No. But it does make owning a PC pretty frustrating. Ah, to have a PC with the reliability of a game console...
Really, do you know if the JPEG decompression code in your favorite app or desktop is bug free? It's not so easy to write exploit free code for something like this without paying conscious effort to it, which is very rare in my experience. Consider that you need to range check just about all values and be very careful to make sure that some simple math which affects a pointer value is never used raw. Adding all of this to a JPEG decoder makes the code bulkier and makes it slower, which is why you don't see a lot of open source people rushing to do this. In fact, how many people run test suites on their image format decoders to ensure that they aren't exploitable? And if they do run test suites, how many people are really sure of the results? It's easy enough to have pointer overruns in C that go undetected, but can change critical values that affect other parts of the code. Scary.
What makes iD special is game play and the game engine. If Carmack moved to DX9 or it's successors, players and developers would move with him.
Truthfully, developers and players have moved. The only games developed in OpenGL any more are those from id, id engine licensees, and some low-end shareware. That's it.
I think the point is how do you know they are experts if there is no verification. You can't say entries are often entered by experts without some verification. Or maybe you can, depending on what your definition of "is" is. LOL.
Exactly. And there is a certain amount of astroturfing as it is, where people promote things they have done. For example, here's the entry for the NGL Programming language. Every heard of it? Neither had I. And there are zero links to referenced about the language, but prominent mention of the language's designer. Hmmm.
The trouble is that there are relatively few experts with time to contribute, but many, many people who are fervent and zealous believers in certain subjects, even though they may have little real experience. The result is that you get skewed and misleading entries for those subjects. And sure, someone can change those entries, but all the original author has to do is set a watch on those pages and go back in and edit out corrections.
I could concieve of a market for open source game engines seeing as many game developers release thier engines a few years down the line from their product.
Replace "many" with "a select few." Really, how many game companies have released the source to their earlier big hits? You can count them on your fingers. And of course this only applies to PC games, not consoles (which is where most of the huge hits are these days).
It's not like the gaming industry has been terribly innovative in itself either
The difference is that companies in the game industry don't attempt to directly clone existing games. They get very heavily inspired by existing titles and copy lots of features from them, even using a popular game as a prototype, but they don't simply attempt to write an exact version of a game right down to the name. You see this all the time in hobbyist game development.
Why do I care about heat output? The reasons are many. One, heat output is wasted energy. The Opteron is a more effecient chip -- it does more using 30 fewer watts. I pay for electricity. So does the environment. Having to evacuate the heat from the room is also a pain, and without air condition, the summer becomes an unpleasant time to compute. It's not tribalism, it's logic.
Now, seriously, and I mean this in as non-snide a way as I possibly can, if heat issues are a big issue for you, then you should be looking at slower chips. I see a lot of people talking about wanting cooler chips, but at the same time they always seem to want cuttinge edge speed.
Catch up? Because Linux doesn't [gnu.org] have [tcsh.org] any [zsh.org] command shells...
I think you're missing the point here. The examples you're citing are nothing new, just simple textual substitution shells that can start applications. Microsoft is talking about something that has a lot more direct linkage to applications, objects, and the OS itself. Sometimes I wonder if the Linux crowd is intentionally trying to live in 1978 just to spite everyone else.
I'll probably get flamed for this, but limited users under XP are more trouble than they're worth.
No, you've hit the nail on the head. "Administrator" under Windows XP is not like "root" under UNIX. The former is something that came along fairly recently and put down a few arbitrary restrictions on applications. Problem is, most Windows software was written prior to XP, and at one time the restricted items--like writing to your own application folder--were the accepted ways of doing things. There are even developers running older versions of Windows who don't know about the issues involved.
Furthermore, when you install a new application you have no way of knowing if it will work in a restricted account. So first you install it the proper way. Then you have to load it up and experiment with it for a while to find out if it is clean. Sometimes this is hard. Maybe it only gets caught when you try to save a document template or a window layout or some other less common activity. When this happens you have to uninstall and reinstall to a folder outside of "Program Files." This is generally not worth it. If you're running a firewall, anti-virus program, and not using IE, then running as administrator isn't a bad thing. Remember, even in administrator mode programs can do all sorts of bad things to your system, like emailing or deleting your files. It's only the "Windows" and "Program Files" folders that have any protection on them. To repeat: this is not like running as root under UNIX.
Actually, you can make a good generalization: Allowing a browser to execute downloaded code isn't safe. In particular, you should turn off any and all "scripting" in any browser.
That's the techie security view. And yet it seems that more and more big sites are making use not only of Javascript, but full Flash applications and custom ActiveX controls. For example, Shutterfly.com uses an ActiveX control to make uploading easier (you don't have to use it, but it's nicer if you do. Flickr.com uses fancy Flash applications to organize photos.
So while I agree with the sentiment, it is getting harder and harder to be the hardliner who turns off all scripting. At the very least you need to have a list of trusted sites for which scripting is okay.
When you've got 4K of code space, like this chip has, you have to get creative.
True, but it depends what your goal is: designing a great game or learning to bum cycles and bytes from assembly code. I would humbly suggest that the latter is significantly more valuable than the latter.
t would be nice to see some of the Linux GUI developers implement a fully vector-based scalable windowing system. This would put linux one visual step ahead of MS, as they are half-way there with the Longhorn GDI replacement.
The sad part is--and I mean this in a completely non-trolling way--that this could have been available YEARS ago if someone had been forward thinking enough to work on it. Why did it have to wait until Microsoft announced it? Why was so much time spend copying Microsoft's old interfaces rather than advancing the state of the art? In all honesty, the "Let's copy what the other guys have now and improve a few things" attitude is going to keep Linux in the backseat.
Similarly, Firefox is cool, but it's just Internet Explorer + 1. If the next IE is a major leap, will FF have been worth it?
I put the term in quotes, because I dislike it. It's much more loaded a term than "programmers."
The secret to being a top notch programmer is fairly simple: Be well-rounded. There are two parts to this. The first is to be well-rounded in your life in general. Play music. Write fiction. Read books other than science fiction. Don't wallow in geekiness, only reading Douglas Adams and Neal Stephenson, only watching The Matrix and Star Wars, and obsessing about video card performance. This is how you end up being the kind of person who posts "I want to write a great application for Linux, but I don't know what application to write."
Second, be well-rounded in the field of programming. Learn and use Perl, Python, Lisp, C, Haskell, Forth, J, Prolog, Icon, Smalltalk, Oberon, and a couple of assembly languages. Don't get involved in debates about Perl vs. Python or Emacs vs. vi or static vs. dynamic typing or why BASIC sucks or whatever. They're not worth it. Each alternative has something interesting about it. Get your knowledge broad enough that tasks like "write a compiler for language X" don't seem nearly as scary as they do for someone who only knows C, C++, or Java. Learn about operating systems other than Windows and UNIX variants. Learn your computer history. But still, don't spend every waking moment thinking about computers.
Second, and I'll probably be modded as troll for this, but all the programmers I know who like perl are sysadmin types who don't know better. Popularity isn't a much better measure of "goodness" in the open-source world than it is anywhere else.
Nah, that's just the people you know. Perl, in my experience, tends to be used by people who write little programs to get things done quickly. And really, this covers a lot of sysadmins. But that's always been the secret of Perl: it's geared toward solving problems quickly. For example, in most languages you compile regular expressions and get back a handle, then you use the handle for searches. But in Perl the compiler takes care of this for you. You don't worry about it. You don't have to import an "re" library either. A good philosophy overall, even if the language isn't as pure and pristine in other ways.
Still, I read the article, and I can't help thinking that Graham has already written this same article a couple of times in different forms.
For embedded systems, you want simplicity, reliability, and understandability. Neither Linux nor Windows give you these. Sure, Linux is more reliable in certain ways, but we're still talking about a hulking system that's not needed in 99% of embedded devices. And, yes, Linux is "understandable" in that you can get the source code for the hundreds out thousands of lines of code in the kernel, but that makes very little difference. In the typical embedded device, you need an "OS" that's about 4K in size, if that.
Kinda frustrating to see people ripping these commonsense points apart one by one. Really, these are all obvious and valid points. If you're all bent out of shape about them, even to the point where you need to rip the author on Slashdot, then you might just be part of the problem. Open Source is a simple and clean concept, but it is very secondary to good application design. "OSS" is not any kind of magic pill, and it certainly isn't an end unto itself.
(And personally, while I'm here, the number one most important tenet of open source should be SIMPLICITY. No one can safely modify code that isn't beautifully clean and understandable.)
Google is awesome yes, but running a search engine is very expensive, and people use it for FREE. AdWords, yes, but is that it for revenue streams? That's not worth a $100+ stock price.
I agree, locking an entire organization into one OS, like Windows, is a bad idea. So is locking into either of the other two popular options: Linux and OS X. But from a bigger picture point of view, there's really not a whole lot of variety out there. Linux and OS X are variants of UNIX. Ditto for BSD. They may differ internally in a lot of ways, but from the user's point of view (and often from the programmer's point of view), there's more in common than not. And taking UNIX out of the picture, we're still talking about interfaces that are all directly derived from the same source.
If avoiding monoculture is the utmost issue, then it would be better to get something *different* into the mix. Now what that something would be, and still be useful, I don't know. Very few people even in computer science don't have exposure to more than Windows + UNIX these days.
It's an open secret that low cost workers in India, China and other countries are hired to boost traffic for online ads by clicking on text links, banners etc.
Hard references, please! If you don't have any, then we know this is an urban legend. The big flaw in this theory is that it would be much cheaper and simpler to simply write a little program to send the HTTP requests than to have people clicking on links. It would be like paying people to copy text off of web pages when you could just print it out instead.
First off, realize that I'm not anti-Linux. I've used Linux both professionally and at home. UNIX, too. And I also know C++ and C#, among other languages.
What has always struck me about.net, C#, and okay Java too, is that they're essentially playing catch-up to what's already out there. People who've only used C++, and the people who can't shake the "everything has to be optimized down to the last microsecond" mindset, tend to really like C# and.net. After all, now they finally have real modules, a clean string syntax, hidden memory management, and so on. Just that the article makes a big deal about the power of this line:
bool matches = Regex.IsMatch( input, regex );
is telling. After all, you could do this--with a cleaner syntax, mind you--in Perl fifteen years ago. Don't like Perl? Well, Python then. Or even old clunky TCL. And so to me, the furor over.net and C# appear to be coming from people who spent the nineties thinking that C++ was the pinnacle of software development. If you look at Perl and Python, though, they still have lots of wins, like no noticible compile times, no need to jam everything into an object framework, less bulky syntax, a lot less fussing about types, and generally more malleable ways of programming. From that point of view, C# doesn't offer much, unless again you stay up late worrying about shaving cycles out of your button handler callbacks.
Perl and Python have always been better supported under Linux than Windows, and I'd even call them the Linux way of approaching software development. Leverage the best tools available so you can achieve more in less time. Microsoft has been playing catch-up here, and.net and C# are what they came up with, a solution that's still far behind what was already available. A solution that feels like something that would have been stunning in 1990 or 1992, but now is mired in an earlier generation of software development. The weird part is that dragging this over to Linux, making it an across the board cross-platform solution, is looked at as a good thing. The effort would be better spent elsewhere, like coming up with a lighter weight GUI toolkit for Python that breaks from Tk and behemoths like WxWindows.
Modern games will always try to max out your CPU/GPU.
Not true, especially on the PC where you can't assume people have the latest and greatest CPU and graphics card. I think this would be better phrased as "games whose authors decide that maxing out your CPU/GPU is a priority will do so." That really only covers a handful of games. Even DOOM 3 doesn't max out a 3GHz Pentium 4 with a Radeom 9800. (Yes, it has crazy settings that look 2% better and saturate the system bus, but turn them off and you're fine.)
I've heard so much about the programming practices at Microsoft and what not - and yet, ironically, these things keep cropping up so damn bloody often while some operating systems [openbsd.org] coded by a bunch of loosely connected hackers are way more robust and stable.
Three reasons:
1. BSD is a much simpler OS. Remember, Windows isn't just a kernel, but a graphics subsystem, a window management layer, and so on.
2. Windows is very high profile and is what the crazies are targeting with their virii and other attacks. People are actively looking for these exploits under Windows.
3. It isn't at all clear that BSD has fewer application-level exploits than Windows, such as these image decoding overruns. It's not like these newly discovered exploits have been used to attack Windows. They were accidentally discovered by programmers. I'm sure if everyone started going through the source for BSD applications they'd find exploits, too. So this isn't a valid comparison, because there's no data.
I won't save you the research - there's a very good chance someone else will, though - but the former appears to be true as far as I can see. Seems that whenever a security hole is reported on Slashdot, there's a pointer to a fix within the story or, at the very least, in a comment to it.
:) In all honesty, I see patches damn fast from commercial software companies, with the key word being "small." 4NT and Take Command (see http://www.jpsoft.com) get patched within a day whenever there's a critical bug. I've seen the same level of support from many small companies.
Ah, so this is just a gut feeling
I spent 12 straight hours on saturday trying to help my brother with his XP machine.
He wanted to use it to play games, had spent a bunch of cash on good hardware, etc... and had spent the last 3 months enlisting help from various skilled support-type geek friends to try and stop it crashing.
Situations like this are common, but you can't blame XP for it. I've had similar problems with different OSes, including Linux. The general problem is that PCs are complex beasts. All it takes is one slightly flaky bit of hardware to cause headaches. I used to have a PC that randomly locked up, especially when playing games. It turned out that there was something not obviously flaky about my Radeon 9800 that did this. All of the usual suspects checked out. Swapping in a different Radeon 9800 card fixed my problems. But could I blame Windows or Microsoft for this? No. But it does make owning a PC pretty frustrating. Ah, to have a PC with the reliability of a game console...
Really, do you know if the JPEG decompression code in your favorite app or desktop is bug free? It's not so easy to write exploit free code for something like this without paying conscious effort to it, which is very rare in my experience. Consider that you need to range check just about all values and be very careful to make sure that some simple math which affects a pointer value is never used raw. Adding all of this to a JPEG decoder makes the code bulkier and makes it slower, which is why you don't see a lot of open source people rushing to do this. In fact, how many people run test suites on their image format decoders to ensure that they aren't exploitable? And if they do run test suites, how many people are really sure of the results? It's easy enough to have pointer overruns in C that go undetected, but can change critical values that affect other parts of the code. Scary.
What makes iD special is game play and the game engine. If Carmack moved to DX9 or it's successors, players and developers would move with him.
Truthfully, developers and players have moved. The only games developed in OpenGL any more are those from id, id engine licensees, and some low-end shareware. That's it.
I think the point is how do you know they are experts if there is no verification. You can't say entries are often entered by experts without some verification. Or maybe you can, depending on what your definition of "is" is. LOL.
Exactly. And there is a certain amount of astroturfing as it is, where people promote things they have done. For example, here's the entry for the NGL Programming language. Every heard of it? Neither had I. And there are zero links to referenced about the language, but prominent mention of the language's designer. Hmmm.
The trouble is that there are relatively few experts with time to contribute, but many, many people who are fervent and zealous believers in certain subjects, even though they may have little real experience. The result is that you get skewed and misleading entries for those subjects. And sure, someone can change those entries, but all the original author has to do is set a watch on those pages and go back in and edit out corrections.
I could concieve of a market for open source game engines seeing as many game developers release thier engines a few years down the line from their product.
Replace "many" with "a select few." Really, how many game companies have released the source to their earlier big hits? You can count them on your fingers. And of course this only applies to PC games, not consoles (which is where most of the huge hits are these days).
It's not like the gaming industry has been terribly innovative in itself either
The difference is that companies in the game industry don't attempt to directly clone existing games. They get very heavily inspired by existing titles and copy lots of features from them, even using a popular game as a prototype, but they don't simply attempt to write an exact version of a game right down to the name. You see this all the time in hobbyist game development.
Why do I care about heat output? The reasons are many. One, heat output is wasted energy. The Opteron is a more effecient chip -- it does more using 30 fewer watts. I pay for electricity. So does the environment. Having to evacuate the heat from the room is also a pain, and without air condition, the summer becomes an unpleasant time to compute. It's not tribalism, it's logic.
Now, seriously, and I mean this in as non-snide a way as I possibly can, if heat issues are a big issue for you, then you should be looking at slower chips. I see a lot of people talking about wanting cooler chips, but at the same time they always seem to want cuttinge edge speed.
Catch up? Because Linux doesn't [gnu.org] have [tcsh.org] any [zsh.org] command shells...
I think you're missing the point here. The examples you're citing are nothing new, just simple textual substitution shells that can start applications. Microsoft is talking about something that has a lot more direct linkage to applications, objects, and the OS itself. Sometimes I wonder if the Linux crowd is intentionally trying to live in 1978 just to spite everyone else.
I'll probably get flamed for this, but limited users under XP are more trouble than they're worth.
No, you've hit the nail on the head. "Administrator" under Windows XP is not like "root" under UNIX. The former is something that came along fairly recently and put down a few arbitrary restrictions on applications. Problem is, most Windows software was written prior to XP, and at one time the restricted items--like writing to your own application folder--were the accepted ways of doing things. There are even developers running older versions of Windows who don't know about the issues involved.
Furthermore, when you install a new application you have no way of knowing if it will work in a restricted account. So first you install it the proper way. Then you have to load it up and experiment with it for a while to find out if it is clean. Sometimes this is hard. Maybe it only gets caught when you try to save a document template or a window layout or some other less common activity. When this happens you have to uninstall and reinstall to a folder outside of "Program Files." This is generally not worth it. If you're running a firewall, anti-virus program, and not using IE, then running as administrator isn't a bad thing. Remember, even in administrator mode programs can do all sorts of bad things to your system, like emailing or deleting your files. It's only the "Windows" and "Program Files" folders that have any protection on them. To repeat: this is not like running as root under UNIX.
Actually, you can make a good generalization: Allowing a browser to execute downloaded code isn't safe. In particular, you should turn off any and all "scripting" in any browser.
That's the techie security view. And yet it seems that more and more big sites are making use not only of Javascript, but full Flash applications and custom ActiveX controls. For example, Shutterfly.com uses an ActiveX control to make uploading easier (you don't have to use it, but it's nicer if you do. Flickr.com uses fancy Flash applications to organize photos.
So while I agree with the sentiment, it is getting harder and harder to be the hardliner who turns off all scripting. At the very least you need to have a list of trusted sites for which scripting is okay.
Uh, "the FORMER" is significantly more valuable than the latter."
When you've got 4K of code space, like this chip has, you have to get creative.
True, but it depends what your goal is: designing a great game or learning to bum cycles and bytes from assembly code. I would humbly suggest that the latter is significantly more valuable than the latter.
...it was used in *way* overpriced machines, ranging all the way up to US$10,000. Remember, at the time it was a top of the line super processor.
t would be nice to see some of the Linux GUI developers implement a fully vector-based scalable windowing system. This would put linux one visual step ahead of MS, as they are half-way there with the Longhorn GDI replacement.
The sad part is--and I mean this in a completely non-trolling way--that this could have been available YEARS ago if someone had been forward thinking enough to work on it. Why did it have to wait until Microsoft announced it? Why was so much time spend copying Microsoft's old interfaces rather than advancing the state of the art? In all honesty, the "Let's copy what the other guys have now and improve a few things" attitude is going to keep Linux in the backseat.
Similarly, Firefox is cool, but it's just Internet Explorer + 1. If the next IE is a major leap, will FF have been worth it?
I put the term in quotes, because I dislike it. It's much more loaded a term than "programmers."
The secret to being a top notch programmer is fairly simple: Be well-rounded. There are two parts to this. The first is to be well-rounded in your life in general. Play music. Write fiction. Read books other than science fiction. Don't wallow in geekiness, only reading Douglas Adams and Neal Stephenson, only watching The Matrix and Star Wars, and obsessing about video card performance. This is how you end up being the kind of person who posts "I want to write a great application for Linux, but I don't know what application to write."
Second, be well-rounded in the field of programming. Learn and use Perl, Python, Lisp, C, Haskell, Forth, J, Prolog, Icon, Smalltalk, Oberon, and a couple of assembly languages. Don't get involved in debates about Perl vs. Python or Emacs vs. vi or static vs. dynamic typing or why BASIC sucks or whatever. They're not worth it. Each alternative has something interesting about it. Get your knowledge broad enough that tasks like "write a compiler for language X" don't seem nearly as scary as they do for someone who only knows C, C++, or Java. Learn about operating systems other than Windows and UNIX variants. Learn your computer history. But still, don't spend every waking moment thinking about computers.
Second, and I'll probably be modded as troll for this, but all the programmers I know who like perl are sysadmin types who don't know better. Popularity isn't a much better measure of "goodness" in the open-source world than it is anywhere else.
Nah, that's just the people you know. Perl, in my experience, tends to be used by people who write little programs to get things done quickly. And really, this covers a lot of sysadmins. But that's always been the secret of Perl: it's geared toward solving problems quickly. For example, in most languages you compile regular expressions and get back a handle, then you use the handle for searches. But in Perl the compiler takes care of this for you. You don't worry about it. You don't have to import an "re" library either. A good philosophy overall, even if the language isn't as pure and pristine in other ways.
Still, I read the article, and I can't help thinking that Graham has already written this same article a couple of times in different forms.
For embedded systems, you want simplicity, reliability, and understandability. Neither Linux nor Windows give you these. Sure, Linux is more reliable in certain ways, but we're still talking about a hulking system that's not needed in 99% of embedded devices. And, yes, Linux is "understandable" in that you can get the source code for the hundreds out thousands of lines of code in the kernel, but that makes very little difference. In the typical embedded device, you need an "OS" that's about 4K in size, if that.
Kinda frustrating to see people ripping these commonsense points apart one by one. Really, these are all obvious and valid points. If you're all bent out of shape about them, even to the point where you need to rip the author on Slashdot, then you might just be part of the problem. Open Source is a simple and clean concept, but it is very secondary to good application design. "OSS" is not any kind of magic pill, and it certainly isn't an end unto itself.
(And personally, while I'm here, the number one most important tenet of open source should be SIMPLICITY. No one can safely modify code that isn't beautifully clean and understandable.)
Google is awesome yes, but running a search engine is very expensive, and people use it for FREE. AdWords, yes, but is that it for revenue streams? That's not worth a $100+ stock price.
I agree, locking an entire organization into one OS, like Windows, is a bad idea. So is locking into either of the other two popular options: Linux and OS X. But from a bigger picture point of view, there's really not a whole lot of variety out there. Linux and OS X are variants of UNIX. Ditto for BSD. They may differ internally in a lot of ways, but from the user's point of view (and often from the programmer's point of view), there's more in common than not. And taking UNIX out of the picture, we're still talking about interfaces that are all directly derived from the same source.
If avoiding monoculture is the utmost issue, then it would be better to get something *different* into the mix. Now what that something would be, and still be useful, I don't know. Very few people even in computer science don't have exposure to more than Windows + UNIX these days.
It's an open secret that low cost workers in India, China and other countries are hired to boost traffic for online ads by clicking on text links, banners etc.
Hard references, please! If you don't have any, then we know this is an urban legend. The big flaw in this theory is that it would be much cheaper and simpler to simply write a little program to send the HTTP requests than to have people clicking on links. It would be like paying people to copy text off of web pages when you could just print it out instead.
First off, realize that I'm not anti-Linux. I've used Linux both professionally and at home. UNIX, too. And I also know C++ and C#, among other languages.
.net, C#, and okay Java too, is that they're essentially playing catch-up to what's already out there. People who've only used C++, and the people who can't shake the "everything has to be optimized down to the last microsecond" mindset, tend to really like C# and .net. After all, now they finally have real modules, a clean string syntax, hidden memory management, and so on. Just that the article makes a big deal about the power of this line:
.net and C# appear to be coming from people who spent the nineties thinking that C++ was the pinnacle of software development. If you look at Perl and Python, though, they still have lots of wins, like no noticible compile times, no need to jam everything into an object framework, less bulky syntax, a lot less fussing about types, and generally more malleable ways of programming. From that point of view, C# doesn't offer much, unless again you stay up late worrying about shaving cycles out of your button handler callbacks.
.net and C# are what they came up with, a solution that's still far behind what was already available. A solution that feels like something that would have been stunning in 1990 or 1992, but now is mired in an earlier generation of software development. The weird part is that dragging this over to Linux, making it an across the board cross-platform solution, is looked at as a good thing. The effort would be better spent elsewhere, like coming up with a lighter weight GUI toolkit for Python that breaks from Tk and behemoths like WxWindows.
What has always struck me about
bool matches = Regex.IsMatch( input, regex );
is telling. After all, you could do this--with a cleaner syntax, mind you--in Perl fifteen years ago. Don't like Perl? Well, Python then. Or even old clunky TCL. And so to me, the furor over
Perl and Python have always been better supported under Linux than Windows, and I'd even call them the Linux way of approaching software development. Leverage the best tools available so you can achieve more in less time. Microsoft has been playing catch-up here, and