Well, according to the actual article released by the EC, the documentation Microsoft provided was reviewed by the Monitoring Trustee (Professor Neil Barrett, a tech expert chosen from a list of people provided by Microsoft) as well as TAEUS, the EC's technical advisors.
Re:Do either compare favorably to OS/2 threads? :-
on
Pthreads vs Win32 threads
·
· Score: 2, Insightful
You seem to be somewhat misinformed. OS/2 and NT have pretty much the same heritage and hence why windows (NT) is VERY heavy into threads.
Uh. No. Dave Cutler's rearchitected Windows NT kernel (from which all NT variants from 3.1 up to and including XP and probably also Vista are derived) has almost nothing in common with the 32-bit kernel that IBM completely rewrote for its OS/2 2.0 and later releases after the MS/IBM break-up.
In fact, it's probably closer to VAX/VMS than it is to OS/2.
Those two platforms' only common ancestry was the 16-bit OS/2 kernel, something both products shed 15+ years ago, and the only thing they had in common through NT 4 was the 16-bit VIO API that both of them supported (an old, outdated text-mode application interface even in the OS/2 world 15 years ago).
If you've ever done performance comparisons of OS/2 2.x versus any NT flavor of similar vintage, you'd be quite aware that OS/2 has historically washed the floor with its distant Windows cousin on similar hardware on both single- and multi-CPU configurations. Remember the NT Server versus Warp Server review where a single Warp 3 server outperformed NT Server on a quad-CPU machine in both file- and print-serving benchmarks? There's a reason for that. NT possesses a slow architecture by design, and that is true from the kernel outwards.
You let me know when there's an on-line rating board for electricians, home appliance repair dudes, carpenters, painters, plasterers, plumbers, etc. and we'll talk.
We have one here in Atlanta called kudzu.com. Other areas may have similar services.
Just curious. OS/2 software tended to be heavily thread-oriented even back in the early 1990's, and many programs had a half-dozen active threads or more. It seems like neither Windows nor Linux has that kind of history, which is why programs like Firefox still seem stupid (to me) about spinning off background tasks for things.
The interpreted mainframe macro language I use a lot in the Unisys mainframe world (@CALL) uses "=" or "!=: for case sensitive equality and inequality, "eq" and "ne" for case insensitive equality and inequality, and ":=" for variable assignment.
All in all, it's quite clean synctactically. A manual for the language can be found here:
With all due repsect, people like you are a part of the problem. People that think that being able to hack code is the same as doing a good job.
I am not the OP, but I've encountered plenty of people over the years who (1) did not have a CS degree but (2) were still able to produce structured, efficient, and easily supportable code. The two things are not mutually exclusive.
Yes, there are also some non-CS folks who write crappy code, just as there are also CS folks who write crappy code, but anyone with enough intelligence can pick up on most programming best practices eventually even without formal classroom exposure.
Programmers don't work in a vacuum. Not only were many of the non-CS folks I've known perfectly capable of learning from those of us who had a CS background, but some of them had picked up a lot of their good habits on their own, mainly through practical experience.
It sounds like you are being paid for your banking/business skills, not your software development skills, which is fine. but please don't fool yourself that you can produce high-quality software. You will never produce software with the same quality as someone who was motivated to do a CS degree and who got the proper education.
This strikes me as a gross overgeneralization, and I disagree with it completely. We don't know the OP's abilities, and they may or may not be related to having a CS degree.
A CS degree is nice and usually provides some very useful background, but it isn't a guarantee of competence in the field, and it also doesn't always indicate the presence or absence of native ability.
In my experience, some people simply have a natural gift for analyzing a problem, breaking it up into a series of logical steps, and creating a solution in a clean and structured manner. No degree required.
The fact that you didn't do a CS degree points to the fact that the subject didn't interest you as much as the subject you studied, or that you have enough training to even be aware of some of the issues.
Well, CS degrees have only been around for 20-25 years, and there are a lot of programmers out there who started well before then. Many of them are engineers who moved into programming, and some of them have formal training in programming as part of their engineering degrees, just not as part of a "CS" program.
It doesn't take much effort to teach the basic principles of structured modular programming to a non-CS cow orker. I've done it myself over the years, as I'm sure others have, but as I said above I've found a few people out there who discovered that sort of thing for themselves. Engineers aren't idiots, at least usually...
How would you feel if you were going in for an operation by a surgeon who studied history of art but taught himself to be handy with a knife?
I personally would pick someone with no formal education but 20 years of practical experience in the field over a wet-behind-the-ears graduate who has a lot of booklearning but no real hands-on experience outside of the academic environment.
Open source software also generally allows you to modify the source for your own use, and most will also allow you to distribute the modified version (though sometimes with limitations).
For a period of several years it often wasn't worth it for me to build a system out of discrete components because (a) pre-built systems were available with the most common hardware configurations I wanted and (b) those systems came with much longer hardware warranties than I could get from the individual component manufacturers, sometimes 2-3 times as long.
That's why I have a Micron box here, for example, and why I've purchased used IBM boxes in the past. Their IntelliStation line did what I wanted.
I haven't looked at Dell seriously for almost a decade, but I would if they'd give me the option to mot have a copy of Windows preinstalled on the box.
The elephant in the room is that there are still no programming tools that a gifted amateur can use.
That depends on the platform you're talking about. OS/2, for example, comes with REXX as its main bundled scripting language, and it's a very good scripting language (IMO) for beginning coders to learn with. It also has a lot of third-party libraries and such, and it is cross-platform to a certain extent. I wish more Linux distros would include REXX, actually. It's a good language.
That said, it *does* seem a lot harder to learn programming these days compared to when I was learning (and cutting my teeth on Integer BASIC on the Apple II) back in the late 70's.
Nah... Infinite movement/build/order queueing, semi-autonomous air units that are smart enough to repair themselves when they reach a certain damage threshold, open map and unit formats that make it easy for third parties to create new resources, and a rock-paper-scissors approach that makes typical swarm/rush attacks ineffective against a good opponent.
It's very different in feel and gameplay from C&C.
I might be interested. Clay (COSMOS) wrote his CCOMBAT/USMK031 version in COMPASS, I think, and he has a copy somewhere, but that isn't as easy to translate to other platforms.
In 1979, there was NOTHING like sitting on an ASR33 connected via a 110 baud accoustic modem to one of the CDC timesharing systems we had access to (mainly MERITSS at the U of Minnesota and MTS [MECC Timesharing System]) and waiting the loooong 30 seconds for your lasers to cool before you can slam another Laser/Missle/Missle volley into your long distance opponent in real-time while a dozen or more other ships were hurtling around in space around you and shooting at each other.
There were also multi-channel TALK programs (MTC, MMT, DDT, XTALK, etc) where one could chat with folks all over the state. And KARNATH.:-)
Doom Legacy has improved things tremendously. It uses a client/server model similar to that used by Quake, and it also added a LOT of new options, video modes, and a Quake-style command console.
You are thinking in terms of getting a program and using it yourself, for your own setup. If you are working in a larger business environment this may not hold useful.
Just to clarify: I'm also thinking in terms of getting a program, using it myself, and making general recommendations to others in a corporate environment where I don't have root access and the sysadmins will only install "company approved" software, meaning I'm on my own to find things not on the relatively short Approved List.
Many of your points simply don't apply to me, since I don't have to "sell" the software I use to some fictional set of Powers That Be. I install it, I use it in my own context on the various DEV machines on the LAN, and the risks that come with the usage are all mine.
Other programmers who follow my recommendations may or may not assume the same risk, as I have taken it upon myself to provide direct local support for some of the stuff for which I have soutce code. It varies with each program and with each person, though.
I sent out over 1000 cover+resume packages between Jan 2002 and Aug 2004, and I think I received around 20 or 25 rejection responses in total, most of those in response to paper/snailmail applications.
Not a very large percentage as far as I'm concerned. But it may depend on the positions you're applying for. I was mainly looking for programming or PC/Network support postions.
I don't care so much if a program is popular. I'm more interested in whether or not a program is actually USEFUL to me.:-) Some of the open source stuff I love is quite unpopular, but I don't care because it does what I want in the way I want it done.
That's one of the beauties of open source -- "winning" doesn't always matter.
Disclosure: I'm a contractor working on Vista at Microsoft.
I'm assuming that the nonstandard language and interesting viewpoints present in your response are each due, at least in part, to your exposure to Microsoft's culture.
> If Microsoft didn't keep introducing new APIs
> [...] people would gradually come up with
> viable compatibles for DirectX9 and Windows XP.
Wasn't five years long enough? XP came out in 2001, DX9 in 2002, why couldn't the industry produce compatible alternatives over that five year period? Doesn't it seem reasonable to conclude that a market which couldn't produce alternatives in five years is not going to produce them at all?
If you've been following the history of Microsoft Corporation over the past 20 years, you would know that they have a long history of making things difficult for third parties to emulate. From hooks in Windows 3.x to detect non-MS DOS variants to WIN32S.DLL updates every 10-12 weeks intended on breaking IBM's WinOS2 to changes to the Word.DOC format and CIFS, etc., Microsoft has always made it very difficult for others to create compatible products. And people have learned.
By the time a viable alternative is created, MS just shifts the API, protocol, or file format just enough to make the alternative far less useful.
Because of this, most people no longer bother.
Microsoft are constantly innovating. A day doesn't go by that we don't have thousands of people looking at our products and saying "how do we make this better?" - because that's our job.
In most industries, and in most software development houses, that process is known as "incremental improvement", not "innovation".
Innovation is having a flash of insight and creating something totally new. It's possible that Dan Bricklin had such an insight before creating Visicalc, for example. But the changes that we typically see in Microsoft software and hardware is not the result of brilliant insight. It's the result of a normal process of continual improvement, of the gradual addition and refining of new features, and of the slow integration of new or improved concepts into an existing product mix.
There's nothing at all wrong with that approach, but "innovation" is not the proper term to use to describe that process.
Copying other people is a road to failure. It doesn't lead anywhere else.
Then how to you explain Windows' continual copying of IBM's CUA interface standards on the Windows desktop? Their use of SMB/CIFS file sharing, also initially developed at IBM? Or their continued reliance on GUI elements initially envisioned at Xerox Parc?
It should be apparent even to you that sometimes copying has serious benefits, and that Microsoft has been as guilty of it (and has taken as much advantage of it) as anyone else.
It makes sense to do so. Most engineering disciplines, and most of the software developers I know, place tremendous value on the advice and experience of others, on the proactive reuse of proven techniques and technologies, and on the eventual creation of a set of proven and tested ideas, designs, and eventually modular components that can be used to more quickly and reliably create complex solutions in the future.
One might say that such practices are the basis of sound engineering.
Most of the engineers and developers I know also value standards, which are little more than the formalized description of a particular set of interface parameters with which they must interact.
These can be file standards, communications protocol standards, UI standards, and many other things.
Such standards are the basis for things like national transportation networks, national communications infrastructures, "The Internet", and the like. They are very important.
Years and years ago, people would have vomited IN TERROR at the thought of paying so much for firstly the hardware, then the OS, and then applications, then the internet connection, and then the electricity, and then having ads on the screen that they've paid for, and then paying more for content/plugins for the applications, and then paying more when the system breaks down from all the bloat to have it upgraded.
Several of those items are FAR less expensive today then they were years and years ago.:-)
I remember when a mainstream desktop PC with monitor was $4,000-5000, when there were no free OS alternatives at all, when single programs like WordPerfect 5.0 were almost $500, and when a 9600bps connection to CompuServe was $16/hour, and that was only 15 years ago.
What would be nice is if Microsoft's OS department was in the same boat as Microsoft's XBOX department - since there's fierce competition between PS3 (Mac?) and Wii (*nix?) we haven't seen a single "let's screw with the consumer" initiative by any of the three.
Yes, it would, but that would require Microsoft's OS department to have some serious competition in the desktop space, and that's not likely to happen (outside of free alternatives like Linux, *BSD, Solaris, etc.) unless the US DOJ actually enforces US anti-trust laws in a Microsoft context.
Since when is music distributed under a license?
Well, according to the actual article released by the EC, the documentation Microsoft provided was reviewed by the Monitoring Trustee (Professor Neil Barrett, a tech expert chosen from a list of people provided by Microsoft) as well as TAEUS, the EC's technical advisors.
See the FAQ for more information.
Uh. No. Dave Cutler's rearchitected Windows NT kernel (from which all NT variants from 3.1 up to and including XP and probably also Vista are derived) has almost nothing in common with the 32-bit kernel that IBM completely rewrote for its OS/2 2.0 and later releases after the MS/IBM break-up.
In fact, it's probably closer to VAX/VMS than it is to OS/2.
Those two platforms' only common ancestry was the 16-bit OS/2 kernel, something both products shed 15+ years ago, and the only thing they had in common through NT 4 was the 16-bit VIO API that both of them supported (an old, outdated text-mode application interface even in the OS/2 world 15 years ago).
If you've ever done performance comparisons of OS/2 2.x versus any NT flavor of similar vintage, you'd be quite aware that OS/2 has historically washed the floor with its distant Windows cousin on similar hardware on both single- and multi-CPU configurations. Remember the NT Server versus Warp Server review where a single Warp 3 server outperformed NT Server on a quad-CPU machine in both file- and print-serving benchmarks? There's a reason for that. NT possesses a slow architecture by design, and that is true from the kernel outwards.
We have one here in Atlanta called kudzu.com. Other areas may have similar services.
Just curious. OS/2 software tended to be heavily thread-oriented even back in the early 1990's, and many programs had a half-dozen active threads or more. It seems like neither Windows nor Linux has that kind of history, which is why programs like Firefox still seem stupid (to me) about spinning off background tasks for things.
The interpreted mainframe macro language I use a lot in the Unisys mainframe world (@CALL) uses "=" or "!=: for case sensitive equality and inequality, "eq" and "ne" for case insensitive equality and inequality, and ":=" for variable assignment.
t m
All in all, it's quite clean synctactically. A manual for the language can be found here:
http://www.visi.com/~rsteiner/2200stuff/callprm.h
I am not the OP, but I've encountered plenty of people over the years who (1) did not have a CS degree but (2) were still able to produce structured, efficient, and easily supportable code. The two things are not mutually exclusive.
Yes, there are also some non-CS folks who write crappy code, just as there are also CS folks who write crappy code, but anyone with enough intelligence can pick up on most programming best practices eventually even without formal classroom exposure.
Programmers don't work in a vacuum. Not only were many of the non-CS folks I've known perfectly capable of learning from those of us who had a CS background, but some of them had picked up a lot of their good habits on their own, mainly through practical experience.
This strikes me as a gross overgeneralization, and I disagree with it completely. We don't know the OP's abilities, and they may or may not be related to having a CS degree.
A CS degree is nice and usually provides some very useful background, but it isn't a guarantee of competence in the field, and it also doesn't always indicate the presence or absence of native ability.
In my experience, some people simply have a natural gift for analyzing a problem, breaking it up into a series of logical steps, and creating a solution in a clean and structured manner. No degree required.
Well, CS degrees have only been around for 20-25 years, and there are a lot of programmers out there who started well before then. Many of them are engineers who moved into programming, and some of them have formal training in programming as part of their engineering degrees, just not as part of a "CS" program.
It doesn't take much effort to teach the basic principles of structured modular programming to a non-CS cow orker. I've done it myself over the years, as I'm sure others have, but as I said above I've found a few people out there who discovered that sort of thing for themselves. Engineers aren't idiots, at least usually...
I personally would pick someone with no formal education but 20 years of practical experience in the field over a wet-behind-the-ears graduate who has a lot of booklearning but no real hands-on experience outside of the academic environment.
Open source software also generally allows you to modify the source for your own use, and most will also allow you to distribute the modified version (though sometimes with limitations).
Your sarcasm detector appears to be faulty.
Please report to Vaporization Chamber 7 on level 15A immediately for medical assistance.
The computer is your friend!
For a period of several years it often wasn't worth it for me to build a system out of discrete components because (a) pre-built systems were available with the most common hardware configurations I wanted and (b) those systems came with much longer hardware warranties than I could get from the individual component manufacturers, sometimes 2-3 times as long.
That's why I have a Micron box here, for example, and why I've purchased used IBM boxes in the past. Their IntelliStation line did what I wanted.
I haven't looked at Dell seriously for almost a decade, but I would if they'd give me the option to mot have a copy of Windows preinstalled on the box.
That depends on the platform you're talking about. OS/2, for example, comes with REXX as its main bundled scripting language, and it's a very good scripting language (IMO) for beginning coders to learn with. It also has a lot of third-party libraries and such, and it is cross-platform to a certain extent. I wish more Linux distros would include REXX, actually. It's a good language.
That said, it *does* seem a lot harder to learn programming these days compared to when I was learning (and cutting my teeth on Integer BASIC on the Apple II) back in the late 70's.
If I have the source to start with, and if it's a program I depend on, I'll usually try to get it to build myself at that point.
It's very different in feel and gameplay from C&C.
Check out TA Spring sometime, BTW...
I might be interested. Clay (COSMOS) wrote his CCOMBAT/USMK031 version in COMPASS, I think, and he has a copy somewhere, but that isn't as easy to translate to other platforms.
What format is the source in?
In 1979, there was NOTHING like sitting on an ASR33 connected via a 110 baud accoustic modem to one of the CDC timesharing systems we had access to (mainly MERITSS at the U of Minnesota and MTS [MECC Timesharing System]) and waiting the loooong 30 seconds for your lasers to cool before you can slam another Laser/Missle/Missle volley into your long distance opponent in real-time while a dozen or more other ships were hurtling around in space around you and shooting at each other.
:-)
There were also multi-channel TALK programs (MTC, MMT, DDT, XTALK, etc) where one could chat with folks all over the state. And KARNATH.
Best... RTS... Game... Ever... :-)
Doom Legacy has improved things tremendously. It uses a client/server model similar to that used by Quake, and it also added a LOT of new options, video modes, and a Quake-style command console.
Sure it did, both via modem, and directly using a nullmodem cable.
Just to clarify: I'm also thinking in terms of getting a program, using it myself, and making general recommendations to others in a corporate environment where I don't have root access and the sysadmins will only install "company approved" software, meaning I'm on my own to find things not on the relatively short Approved List.
Many of your points simply don't apply to me, since I don't have to "sell" the software I use to some fictional set of Powers That Be. I install it, I use it in my own context on the various DEV machines on the LAN, and the risks that come with the usage are all mine.
Other programmers who follow my recommendations may or may not assume the same risk, as I have taken it upon myself to provide direct local support for some of the stuff for which I have soutce code. It varies with each program and with each person, though.
I sent out over 1000 cover+resume packages between Jan 2002 and Aug 2004, and I think I received around 20 or 25 rejection responses in total, most of those in response to paper/snailmail applications.
Not a very large percentage as far as I'm concerned. But it may depend on the positions you're applying for. I was mainly looking for programming or PC/Network support postions.
I don't care so much if a program is popular. I'm more interested in whether or not a program is actually USEFUL to me. :-) Some of the open source stuff I love is quite unpopular, but I don't care because it does what I want in the way I want it done.
That's one of the beauties of open source -- "winning" doesn't always matter.
Most companies don't bother to respond at all these days unless the response is positive. Rejection letters are a thing of the past.
I'm assuming that the nonstandard language and interesting viewpoints present in your response are each due, at least in part, to your exposure to Microsoft's culture.
If you've been following the history of Microsoft Corporation over the past 20 years, you would know that they have a long history of making things difficult for third parties to emulate. From hooks in Windows 3.x to detect non-MS DOS variants to WIN32S.DLL updates every 10-12 weeks intended on breaking IBM's WinOS2 to changes to the Word .DOC format and CIFS, etc., Microsoft has always made it very difficult for others to create compatible products. And people have learned.
By the time a viable alternative is created, MS just shifts the API, protocol, or file format just enough to make the alternative far less useful.
Because of this, most people no longer bother.
In most industries, and in most software development houses, that process is known as "incremental improvement", not "innovation".
Innovation is having a flash of insight and creating something totally new. It's possible that Dan Bricklin had such an insight before creating Visicalc, for example. But the changes that we typically see in Microsoft software and hardware is not the result of brilliant insight. It's the result of a normal process of continual improvement, of the gradual addition and refining of new features, and of the slow integration of new or improved concepts into an existing product mix.
There's nothing at all wrong with that approach, but "innovation" is not the proper term to use to describe that process.
Then how to you explain Windows' continual copying of IBM's CUA interface standards on the Windows desktop? Their use of SMB/CIFS file sharing, also initially developed at IBM? Or their continued reliance on GUI elements initially envisioned at Xerox Parc?
It should be apparent even to you that sometimes copying has serious benefits, and that Microsoft has been as guilty of it (and has taken as much advantage of it) as anyone else.
It makes sense to do so. Most engineering disciplines, and most of the software developers I know, place tremendous value on the advice and experience of others, on the proactive reuse of proven techniques and technologies, and on the eventual creation of a set of proven and tested ideas, designs, and eventually modular components that can be used to more quickly and reliably create complex solutions in the future.
One might say that such practices are the basis of sound engineering.
Most of the engineers and developers I know also value standards, which are little more than the formalized description of a particular set of interface parameters with which they must interact.
These can be file standards, communications protocol standards, UI standards, and many other things.
Such standards are the basis for things like national transportation networks, national communications infrastructures, "The Internet", and the like. They are very important.
By agreeing
Serious question:
How do the voice control and dictation features in Windows Vista compare to those that came standard with OS/2 Warp 4 back in 1996?
Several of those items are FAR less expensive today then they were years and years ago. :-)
I remember when a mainstream desktop PC with monitor was $4,000-5000, when there were no free OS alternatives at all, when single programs like WordPerfect 5.0 were almost $500, and when a 9600bps connection to CompuServe was $16/hour, and that was only 15 years ago.
Yes, it would, but that would require Microsoft's OS department to have some serious competition in the desktop space, and that's not likely to happen (outside of free alternatives like Linux, *BSD, Solaris, etc.) unless the US DOJ actually enforces US anti-trust laws in a Microsoft context.