Developers As Pawns and One-Night Stands
jcatcw writes "At the Comes vs. Microsoft antitrust case, last Friday's testimony included evidence that James Plamondon, a Microsoft technical evangelist, in a 1996 speech referred to independent software developers as 'pawns' and compared wooing them to trying to win over a one-night stand. Last week's proceedings also included testimony by Ronald Alepin, a former CTO at Fujitsu Software Corp. and currently an adviser to the law firm Morrison Foerster LLP. He said that Lotus 1-2-3 was killed, in part, by Microsoft encouraging Lotus's programmers to use the Windows API even though Microsoft's own developers found it too complicated to use." The plaintiffs have created a site that includes transcripts of testimony presented in the case.
Witness for yourself the l33t powers of Microsoft's wooing. Not exactly worrying, is it?
Indeed!
The agreement even states that Apple will encourage its employees to use Microsoft Internet Explorer for Macintosh for all Apple-sponsored events and will not promote another browser to its employees. I had no idea Apple had agreements like this.
Were Java developers any better off until the recent open sourcing of Java? Not really. Neither were most independent developers. When you do that work, you are tying part of your future to another company's good will. That's all there is to it.
Well I am shock and surprised . Have you noticed that Microsoft products tend to have features that you can't easily program yourself. Say back in the late 1990s where Office had icons next to the menu options and Microsofts Own development tools didn't allow you to do so. Or crappy grid controls or page controls (in which Microsoft FoxPro had much superior ones that didn't appear until .net) MS Developers tools force use to stay 10 years behind the times.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
If you're writing an app for Windows, what is the alternative to using the Windows API? How could Microsoft develop Windows applications without using the Windows API? Was Lotus seriously considering developing Lotus 1-2-3 in Java? (Although that might explain the trainwreck called Lotus Notes.)
Comment of the year
I am guessing you havn't done much Microsoft Development. Did you ever wonder why MS Has features in their programs that you cannot program easily using Microsofts tools. When Office allows the fade in with graphics and colors menus in all their product while your API only allowed the text only popup Menus. MS Does do this. It is not about MS bashing it is about MS not giving us the tools to create modern applications.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
ISV's are, in essence, Microsoft's customers. RMS is not a customer of Microsoft. That's the difference, really.
This is Microsoft employees saying their customers, the ones they're supposed to be developing good API's and such for, are pawns and they should never be catered to.
What more tools than a programming language, and an API for basic operations, are really needed? Office looks the way it does, and has as many features as it does, because MS spends a significant amount of money developing it. Give any other software program the resources used to develop Office and I am sure that it would look 'modern' as well - no matter what API is used.
Ultimately this will/has hurt Windows, as those programs targetting the undocumented APIs -where some MS apps get their features from- will require that hidden API to remain relatively static. And when problems are found in this undocumented API, either you leave the problem in place and work around it (and thereby leave the existing software using it potentially vulnerable), or you have to push an update for all those programs.
Maybe this is part of the reason why Linux's kernel has no fixed ABI?
Indeed!
OSS doesn't remove tie-in, it adds more. Rather than being tied to a single company, OSS may be tied to more than one company and/or a large population of independent developers. So OSS removes the single point dependency.
Is it really news that contractors are considered nothing more than replaceable parts? Whenever we've staffed programs with contractors, it's always been understood (by my company and the contractors) that they are essentially mercenaries and not really part of our company and culture. (If they WANTED to be part of our (or any) company and culture, they wouldn't be contractors, right?) When things (i.e., money) get tight, who's the first to go? The contractors, of course. No surprises to anyone. We're not going to lay off our valuable employees. This seems like a ridiculous article/lawsuit.
That's a dumb question. Office menus look the way they do because they're written from scratch to look that way. Hundreds of applications for every OS ever made do this, that doesn't mean that there's some huge conspiracy, just that the Office team spent more time getting their menus right than you did and enough time to QA is so that people like you would be tricked into thinking it's some hidden part of the OS. How paranoid are you? Programming menus isn't some "magic operation" that can only be performed by the OS, any decent programmer can make their own pull-down menu implementation. I'm sure Photoshop and other applications of Office's size do the same.
Now asking *why* Office does this, that might be a valid question. But implying that it's some kind of conspiracy is stupid.
Hell, Apple used to provide basically a plug-in architecture for drawing menus, windows and buttons since they knew overriding the default appearance and behavior would be popular. It was a code resource in Mac OS Classic and if you had one in there, Mac OS would automatically load your code whenever it needed to handle a click on menus. (Obviously a bad idea from a security standpoint... it was disabled long ago.)
Comment of the year
Also, does anyone else get an image of the robot preacher from Futurerama when they hear the words "Tech Evangelist"?
So if working with Microsoft is a one night stand, isn't doing Open Source like doing 500 guy gangbang?
I have high standards, you insensitive clod!
You must be a daemon in the sack.
You must be agile.
No time for debugging your problems.
I will not use a trojan horse.
Time slicing with others is not okay.
Don't ever call my thing a widget.
For he today that sheds his blood with me shall be my brother.
You either (a) are being disingenuous; (b) are well self-controlled; or (c) frequent this place enough to have a username by now.
It is not really a conspiracy but a well known fact that they do not publish large portions of
their api's. This fact has been brought up in court numerous times. Just recently they tried to hold
back the security api until it became public they where doing so. If it was just a conspiracy they would not be having to produce a actual published api for the EU.
When you develop software for windows you are coding on a platform owned by your direct competitor. The fact that they hold back stuff for internal use should really be no surprise.
Got Code?
Probbably because tricking developers into using the Windows API, (which Microsoft knew to be problematic) is a part of Microsoft's anti-competitive behaviour. Anti-competitive behaviour isn't illegal unless you're a monopoly like Microsoft is. The article references Microsoft encouraging Lotus to use the Windows API, and claims that contributed to the decline of Lotus 1-2-3.
AccountKiller
Rubbish, check out owner-drawn menus in the MSDN documentation. THere's nothing to prevent you from doing kind of thing yourself. I've done it.
Anybody else get the Microsoft Visual Studio 2005 ad on this Slashdot article (screen shot below)?
6 /slashdot_ms.jpg
http://i64.photobucket.com/albums/h165/bradley197
Bradley Holt
I don't know about the fading, but it's relatively simple to use a bitmap as a menu item using the Windows API. It's covered by Petzold in the Programming Windows book.
Citations please?
I've never seen confirmation that MS apps make any significant use of non-documented OS APIs. The Office group writes much of their own code to be sure, but most of the big players do that.
It is easy enough to use a dependency checker and find all the symbols that a program imports from a DLL. If you cross reference the imports with the documentation in MSDN, it is easy to spot something that is not documented. Given all the axes to grind out there, I can't believe someone hasn't done this already, and I dont recall reading about all the incriminating evidence that was found.
A more plausible claim, and one much harder to prove or disprove, is that the Office team has access to Windows source code, so that rather than creating something from scratch they can just grab a copy of the menuing code and create their own version.
And that's exactly how you will notice that they do it their own way, you can turn off animations in Windows, Office will still do it. Office 97 would always "roll" down menus, even when used on Windows 2000, where the default setting was "fade-in" with "nice" alpha effects.
Looking at your resume, you haven't done much Windows API work, and in 1996 you hadn't done any. So let me correct a common misconception about Windows API programming:
There is no reason that someone else could not make controls that fade in with graphics and color menus. No secret Windows APIs are or were required to do this, even at that time. Windows has always allowed applications to draw whatever they want in their windows, and that includes transparency and fading. The win32s extensions for Windows 3.11 even offered support for non-rectangular windows. Even easier, Microsoft licensed their Office controls to applications developers who wanted to do it. There are no special undocumented API calls required to do this stuff.
Of course, the whole point of a one-night-stand is to get fucked.
dave
While I agree with you that the current Office developers are simply good and talented coders and aren't simply leeching off of some undocumented API for their spiffy graphics, it's long been alleged that Microsoft has used undocumented APIs for Office. While I can't find the cite, I believe this was a key part of the anti-trust lawsuit.
You can see "documentation" for many of them on the Sysinternals site. One thing I'd warn against is actually using these calls in production code. Undocumented means unsupported -- MS could decide tomorrow to yank these in their next XP hotfix, and your code would be left hanging high'n'dry. Not that they're likely to do it, but what if one of these had a worm come along exploiting it? The quick and obvious fix would be to simply remove it.
John
Even if an API is documented, MSDN is frequently wrong. Just try asking a Wine developer.
Game! - Where the stick is mightier than the sword!
Lotus 1-2-3 != Lotus Notes. Lotus 1-2-3 is a spreadsheet program, and was at one point the dominant spreadsheet program.
Game! - Where the stick is mightier than the sword!
None of these API's just fell out of the sky and landed in Microsoft's lap; they were built tediously and at great expense. And let's not forget that these are not the types of functions that are really making Microsoft top dog. Microsoft is top dog due to social and business factors, not API's and technical ones.
Funny that there are endless discussions about the poor technical quality of Microsoft's products, and at the same time rants that Microsoft is gaining an unfair advantage via technical means. Either the technology is good or it's not. If this case is valid, then we must also acknowledge that Microsoft's technology is king too.
No, you are wrong
Ok Windows fan boy, chew on this a little bit..
In its Findings of Fact, the District Court found that Microsoft had repeatedly withheld such information from ISVs, or used its disclosure as an incentive for 'friendlier' behavior, in an effort to preserve the applications barrier to entry (Findings, 84, 90, 91).
The rest I am not going to bother addressing, go back to playing with your rental operating system.
Got Code?
By the way,
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
Somehow I think "It's the gay bukkake of software engineering!" is not a slogan that will win over many folks for Open Source development...
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
The Office team rolls its own UI widgets, and have done so for years. You refer to Office having icons next to the menu options; well the Office team did that on its own. They haven't used the OS-provided menus since at least Office 97 (their menus are simply toolbars, which is why they can be moved, detached, docked to any border, etc; they are just like any other of Office's toolbars). At the time Office 97 was made, the neither the system nor MS devtools provided toolbars (of the kind that Office uses). It's called "programming"; if neither the system nor the dev tools provide the widgets that you want, you program the widgets on your own!! *gasp*
The Office team did nothing that any other dev wouldn't be able to do.
Are you really telling me that other devs are unable to roll their own UI unless the widgets are provided for them by the OS or the dev tools? Come on, now.
-- "I never gave these stories much credence." - HAL 9000
Kroah on obscure drivers not being accepted:Possibly your situation is more of a legal problem than it is a technical one. If such a VME acquisition driver is technically feasible, as well as preferable to hacking against a moving target, that is.
Indeed!
I happen to have been working for Microsoft at the time of the release of windows 3.0. Lotus chose to develop a version of 1-2-3 for OS/2, but for the release of Windows 3.0, they only did Notes. Now Notes was a pretty cool product, but they chose to work on the OS/2 version of 123 instead of the Windows version. They may have been swayed by IBM, but the hallway talk was that Steve Ballmer would have done anything to do a windows version, despite the fact that Microsoft had a competing product. Around that time, someone published a book named 'Undocumented Windows Calls' or something like that. I was a tester for one of the windows applications, and we were given a new task at that time: Find and report as bugs any uses of undocumented API calls. That pass turned up only one or two in the our application's code, and the developer who'd put it in had to drop what he was doing and fix them immediately. The SDK writer's purpose of documenting some API calls and leaving others out was to create a way for new versions of the operating system to be backward compatible without being forced to support the entire api exactly. (I know this, because the author of the SDK explained it to me) Those policies may have changed, but the marketing sea-change between 123 and Excel really started with the release of windows 3. The version of Excel already on the shelves worked with the new OS, and the new OS gave it a platform to really shine from. The reason it worked with 3.0 was because they used the Documented API for win386 exclusively. It's the use of the undocumented API's that is the main source of the 'Blue screen of death' that has been attributed to Windows instability. Not all cases certainly, but the undocumented calls can change from release to release. It got so bad that with windows 98 they had to release 'compatibility mode' api's so that the illegal calls in old programs could be mapped to the new functionality... For the record, I left Microsoft in 2000, and have been less than impressed with the company since before that, but we used to do good work once upon a time...
Sounds like a perfect way to get a virus.
The functions on that site are indeed largely undocumented (many of the functions are officially documented as part of the DDK, but only for use in kernel mode). The functions are considered private to the OS. No one is accusing Office or other Microsoft non-OS products from using those functions. They are only used to implement the Win32 API and some system services. I, too wish that they would document those since they are considerably cleaner and more stable interfaces than the Win32 equivalents, but please don't confuse private parts of the OS with special functions for MS applications. It'd be very infeasible for them to remove any of those functions; they're used heavily inside the OS to get things done. Never has a working function in the native API been removed or seriously changed. It'd be like removing the mmap() syscall from the Linux kernel in response to the mmap() vuln they had a while ago.
UpdateLayeredWindow and TransparentBlit (and a ton of other very-well-documented graphics API calls) have been in there since Win2K, at least. I use them all the time to generate fades and other effects. It's not hard.
... that's now. And I'm sure Microsoft still hides a lot of stuff.
But
The higher the technology, the sharper that two-edged sword.