Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Joel On Microsoft's API Mistakes

timothy posted more than 10 years ago | from the microsoft-is-a-big-software-company dept.

Microsoft 690

AceMarkE writes "Joel Spolsky of Joel on Software has posted an article entitled "How Microsoft Lost the API War". He covers why the Win32 API is important to Microsoft, what they've done to keep it working, why Microsoft's switch to the .Net platform is both a good and bad idea, and why he feels the browser will be the real future of application development. Definitely worth a read no matter what your opinion of Microsoft is."

Sorry! There are no comments related to the filter you selected.

FP (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#9446781)

I'm secretly in love.

Me on Joel (-1, Troll)

Anonymous Coward | more than 10 years ago | (#9446783)

That guy is really an ass. Yeah, you know lots about software development, blah blah blah. Now shut up. Thanks.

Why it has to die (0)

Ckwop (707653) | more than 10 years ago | (#9446801)

I have a little different opinion to the article. The reason for the death of the API is probably GNU/Linux. A closed set of poorly documented APIS
doesn't compare to much to "We'll give you the source code" - .NET is the halfway house..

It's open and documented such that developers feel comfortable using it and feel like they're getting a powerful suite. It's closed enough such that Microsoft can maintain an effective monopoly on the framework
because projects like Mono will always be playing catch-up to some extent.

One thing that Microsoft hope doesn't happen is Mono becoming the defacto standard and not the MS framework.
That patent warchest of theirs is probably set aside for that particularly eventuality.

Simon.

Re:Why it has to die (1, Interesting)

Anonymous Coward | more than 10 years ago | (#9446812)

Joel's a great writer and has shed tons of insight into software development, interface design, software business practices, etc. Hell he even managed to make an article on redoing your office a good read. Much props to him, holla!

Re:Why it has to die (5, Informative)

Anonymous Coward | more than 10 years ago | (#9446844)

A closed set of poorly documented APIS

Say what you like about MS's evil ethics but *do not* mock their API docs [microsoft.com] . They're very good.

Re:Why it has to die (0)

Anonymous Coward | more than 10 years ago | (#9447031)

compared to what exactly?

they are impossible to read.

Examples:

+ finding documentation on ASP vs finding documentation on PHP

+ finding documentation on VB.NET vs finding documentation on python

Re:Why it has to die (3, Informative)

RupW (515653) | more than 10 years ago | (#9447130)

Examples:
+ finding documentation on ASP vs finding documentation on PHP


In the index, you click "Web Development", "Server Technologies", "Active Server Pages". If that's too hard, you type 'ASP' in the search box in the top left hand corner. OK, the ASP language reference is under the IIS docs but you'll find a link to it from the easy-to-find ASP pages above.

+ finding documentation on VB.NET vs finding documentation on python

OK, I couldn't see this one in the index myself. But I searched for 'VB.NET' in the box on the left and the sixth or seventh link goes to the VB and VC# language docs, complete with reference, which is in the Visual Studio documentation section.

Re:Why it has to die (5, Insightful)

Tranzig (786710) | more than 10 years ago | (#9446878)

The reason for the death of the API is probably GNU/Linux. A closed set of poorly documented APIS
doesn't compare to much to "We'll give you the source code"

Microsoft Developer Network [microsoft.com] has comprehensive documentation about the Microsoft APIs. When I was developing for Windows platform, I never needed any documentation other than MSDN. And if you want source code, you can download the SDKs for free. Though it contains only sample codes, I wonder how many Linux developers looked at the sources of the APIs they use. I have never did such a thing.

Re:Why it has to die (1)

tolan-b (230077) | more than 10 years ago | (#9447065)

I frequently look into (non Sun) APIs when I'm working in Java. If the documentation is unclear then what better way than to just have a look?

Re:Why it has to die (1)

tcopeland (32225) | more than 10 years ago | (#9447082)

> comprehensive documentation
> about the Microsoft APIs

I don't know... some seem to be better than others. The MAPI docs aren't so hot, especially if you want to do something with Extended MAPI. Granted, simple MAPI was documented very well... but try hooking some of the events and dealing with long IDs and all that... whew.

The best resource I found was an out-of-print book [insidemapi.com] . Looks like Les has made it available on CD now, which is nice... a few years ago I had to buy a used copy off Amazon for $70 or so.

Re:Why it has to die (4, Interesting)

mcgroarty (633843) | more than 10 years ago | (#9447097)

When I was developing for Windows platform, I never needed any documentation other than MSDN.
Then you only worked on small projects, or you had a lot of tolerance for wrong and outdated documentation.
I wonder how many Linux developers looked at the sources of the APIs they use. I have never did such a thing.
That's because you couldn't.

Once you get used to building projects where you can view data paths from end to end with no opaque blocks in the middle, and once you get used to being able to compile debug code into any and every library, you'll never want to go back.

Re:Why it has to die (5, Insightful)

mangu (126918) | more than 10 years ago | (#9447104)

Microsoft Developer Network has comprehensive documentation about the Microsoft APIs.


Comprehensive up to a point. In fact, not comprehensive at all. People have sold books [amazon.com] , profitting from Microsoft's incomplete documentation. I think the grandparent post is somewhat exagerated in saying that it was Linux that made Microsoft put aside the API. However, in my particular case, it was the incomplete API documentation that made me stop using NT and start programming in Qt in Linux. I tried and tried, and there was no way I could make a data acquisition program I was writing to work well under NT 4. I did exactly what the MSDN documentation said. Then, in desperation, I tried to learn Qt. 20 minutes after starting to read the Qt documentation I had my first non-trivial working Qt program. That was in 1998, and I never wrote a MS-Windows program ever since. I have migrated with little effort my MFC programs to Qt/KDE. I only need three sources of documentation: qt3-assistant, Johnson & Troan's "Linux Application Development", and Rubini's "Linux Device Drivers". Plus the thousands of sites in the web where I can find source code for Linux, of course. A complete documentation is good, but nothing can replace a good set of examples.

Re:Why it has to die (2, Informative)

Nasarius (593729) | more than 10 years ago | (#9447111)

When I was developing for Windows platform, I never needed any documentation other than MSDN.

You haven't done anything very unusual then. I'm writing software that has to support NT4. Try searching for NetSetupComponentInstall. It's a valid API function, but all you'll find are a couple references on Google Groups.
And I have to say I refuse to use .Net for the same reason I won't use Java for anything serious: it requires you to install a huge VM on each machine.

Re:Why it has to die (0)

Anonymous Coward | more than 10 years ago | (#9447113)

Microsoft doesn't even tell you about some APIs.. Like the API which automatically resizes columns in ListView controls to fit the cotents, Why?!

But they do cover most APIs and it's not really essential to know these undocumented ones, so I'm not too bothered really.

Re:Why it has to die (5, Interesting)

Carnildo (712617) | more than 10 years ago | (#9446899)

I've programmed for Win32, MacOS Classic, and MacOS Carbon. Of those APIs, Win32 was the easiest to use and had the best documentation. Carbon came in second, with Classic a very distant third.

Try POSIX next. (1)

torpor (458) | more than 10 years ago | (#9447063)

And/Or some of the other [libsdl.org] interesting [clanlib.org] OSS [wxwindows.org] API's ...

Your list will get bigger, though you might have to shuffle a few things around.

Re:Try POSIX next. (2, Informative)

Carnildo (712617) | more than 10 years ago | (#9447138)

I've used wxWindows (now wxWidgets). For the parts that aren't buggy, it's slightly better than Win32 in ease of use, and somewhere worse than any of the others in terms of documentation.

That's so much BS (1, Insightful)

Anonymous Coward | more than 10 years ago | (#9446951)

The Microsoft API's are well documented (*very* well documented), and the tools that Microsoft and others provide to use them are first rate. Contrast that with Linux, which still has no developer tools of that quality. Even though they are often icky and clunky, they are no worse (and often better) than what Linux and X and GNOME provide. The documentation for them is sure a thousand times better, and the developer community is larger and more experienced.

I think that Joel has a good theory as to the reason: Microsoft has a critical mass of people whereby the internal voices overwhelm the external voices and they have decided to clean things up, and modernize and improve them. That means breaking old stuff, in order to remove the icky and clunky bits.

In the long run (Joel theorizes), that kills Microsoft's huge advantage over Linux, Apple, and everyone else: backwards compatibility. If Microsoft wants to retain their advantage, they have to push their advantage: write once, run on any Windows system that comes out in the future, and many that came out in the past.

Re:Why it has to die (2, Insightful)

jon3k (691256) | more than 10 years ago | (#9447055)

Who cares if the API's are open? How many developer's read through linux API's? 0.000000001% ... of linux users! Whats that, like 6 guys?

API's are a black box: you pass them values, they return some.

All you need to know is what to feed them and what to expect in return.

PS - I've developed software for both GNU\Linux platform as well as microsoft platform(s) and I'll take linux ANY DAY OF THE WEEK!

Re:Why it has to die (5, Interesting)

Malc (1751) | more than 10 years ago | (#9447122)

Poppycock! When I write code under Linux, I go to man and Google first, not the source. In my experience, the MSDN library is more than a match - it's very good documentation. The problem is the sheer number of APIs under Windows..

Most of my work these days is under Windows, and I will freely admit that on occasion I have used the source that Microsoft provides. That's right, I have the source to MFC, C library, ATL, WTL, etc. It's not due to lack of documentation though. I often debug in to assembly code, but it's normally to get to somewhere else (e.g. step in to the COM libraries to reach my COM code) and the debug symbols that are freely available normally suffice to give me enough context

Prophecy (0, Troll)

cbrocious (764766) | more than 10 years ago | (#9446807)

My prophecy is that HTML and HTTP will be completely deprecated within the next 4 years, and will be replaced by an open standard, probably backed heavily by Microsoft, allowing more power and flexibility to developers. Something like that may being me back to web-development...

Re:Prophecy (3, Insightful)

RAMMS+EIN (578166) | more than 10 years ago | (#9446903)

Microsoft supporting an open standard? Pass me some of what you are smoking, please!

Seriously, an open standard will keep them _alive_, but it won't keep them _ahead_. They have to innovate and stay incompatible, so that people won't want to use competing products.

Re:Prophecy (2, Insightful)

I confirm I'm not a (720413) | more than 10 years ago | (#9447067)

I think you're bang on the money regarding Microsoft and open standards.

My prophecy is that Microsoft have their eye on the next web battle over standards - XAML vs. XUL [mozdev.org] vs. Flex. [macromedia.com]

Re:Prophecy (1)

Izago909 (637084) | more than 10 years ago | (#9446982)

That's a big guess. Currently, the words Microsoft, open standard, and internet shouldn't be used in the same sentence. Nearly everything Microsoft has ever done has been backed by the idea that they must do anything and everything possible to maintain a stranglehold on the market. Remember, before anything else, Microsoft is a business, and the name of the game is profit. If it comes down to maintaining an open standard, or increasing their profit margins, it will be an easy guess which one they choose.

Re:Prophecy (1)

mcgroarty (633843) | more than 10 years ago | (#9447015)

MS is already pushing XML-RPC. They would love the web to turn into a network of XML-RPC applications with a rich desktop interface, rather than a bunch of server-local copies of stuff with a dumb client.

Re:Prophecy (5, Insightful)

tedhiltonhead (654502) | more than 10 years ago | (#9447053)

Umm... HTML and HTTP *are* open standards that are backed heavily by Microsoft that give power and flexibility to developers. :)

If you were using something other than HTML and HTTP, you wouldn't be doing Web development; you'd be doing some other kind of development.

Macromedia Flash applications backed by SOAP look very interesting for apps requiring more GUI-like, real-time interaction. This is basically what Java applets were intended for.

.NET & C# (2, Interesting)

artlu (265391) | more than 10 years ago | (#9446815)

It is amazing how .NET and C# are finally starting to migrate over into commercial use. There were ideas in the early 90s by those of us who were smalltalk developers that we wanted to see back then. It isnt until now that C# is finally integrating some of those features for development use.

Damn, I miss Smalltalk :(

GroupShares.com [groupshares.com]

Re:.NET & C# (1)

filtur (724994) | more than 10 years ago | (#9446937)

Hurray for smalltalk. It's alive and kicking in some parts of the world. I was 'forced' to use it for an algorithms class. I didn't really care for it when I started, but in time it grew on me. I learned a lot more than just copying C algorithms from books

Re:.NET & C# (4, Interesting)

javaxman (705658) | more than 10 years ago | (#9447090)

I don't miss SmallTalk.

I program in Objective-C, using Cocoa libs under Mac OS X. ;-)

< ducks, fearing SmallTalk programmers with flamethrowers >

What's amazing is that Java combined with the hack-y nature of the Win32 APIs finally forced Microsoft to create something that's still not as good as NeXTStep was 15 years ago, and probably isn't ( yet ) as good as Java ( it's just optimized for it's single target platform ).

I'll leave for those who care to debate Java vs .NET. For me, that's a debate that is pointless unless .NET somehow becomes cross-platform, at which point I expect Bill Gates to burst into flames.

Repeating my comment on OSNews... (5, Insightful)

RAMMS+EIN (578166) | more than 10 years ago | (#9446832)

I have 2 comments:

1. Web clients vs. rich user interfaces

I have long wondered why web interfaces aren't much good. The technologies are there; Java applets, Flash, Python could do it, JavaScript could with a few extensions, XUL, heck, even C, compiled on the fly. All these stop just short of integrating well with the web and the client platform. Why? Why has nobody managed (or tried) to take the last step? Even .NET doesn't go there; the GUI interface is very much tied to Windows.

2. API changes

Contrary to Microsoft's, UNIX and POSIX APIs have been very stable. There have been extensions, but the bulk of what used to work still works. This makes the case for switching over to standard technologies, now that Microsoft is pushing you to switch anyway.

Re:Repeating my comment on OSNews... (2, Insightful)

Anonymous Coward | more than 10 years ago | (#9446864)

Contrary to Microsoft's, UNIX and POSIX APIs have been very stable. There have been extensions, but the bulk of what used to work still works.

No, that's exactly the same as Microsoft's. Find me a deprecated *and removed* MS API call, I dare you.

Re:Repeating my comment on OSNews... (1)

110010001000 (697113) | more than 10 years ago | (#9446871)

I personally think the Win32 API has been very stable.

Re:Repeating my comment on OSNews... (4, Insightful)

mangu (126918) | more than 10 years ago | (#9446927)

All these stop just short of integrating well with the web and the client platform. Why?


Because HTTP stands for Hyper Text Transfer Protocol, and HTML stands for Hyper Text Markup Language. The web does a magnificent work in what it was intended to do. The web sucks at extensions. Some reasons:


1) No sessions. No good way to store state. Cookies, etc are ugly kludges.

2) Designed for unidirectional, or, at best, asymmetric data transfers. There isn't a really good way to upload data.

3) Privacy and encryption are an add-on, not built in.

4) No widgets other than those in the browser.


The solution for all these problems have been to create plug-ins, applets, javascript, flash, etc. Since these aren't part of the standard, they are all different and incompatible among them. There isn't any standard beyond http and html. Or, rather, there are too many standards, one for each vendor...

Re:Repeating my comment on OSNews... (4, Interesting)

RAMMS+EIN (578166) | more than 10 years ago | (#9447040)


Because HTTP stands for Hyper Text Transfer Protocol, and HTML stands for Hyper Text Markup Language. The web does a magnificent work in what it was intended to do. The web sucks at extensions. Some reasons:

1) No sessions. No good way to store state. Cookies, etc are ugly kludges.

2) Designed for unidirectional, or, at best, asymmetric data transfers. There isn't a really good way to upload data.

3) Privacy and encryption are an add-on, not built in.

4) No widgets other than those in the browser.


Yes, obviously, but then, _how come_ there are no standard protocols that fix this? Many people perceive the need. Users feel the difference between web apps and native apps (Joel is right, for existing apps, users don't care. Now try writing a usable word processor using HTTP and HTML...).

I once posted a message to some mailing list requesting support for sockets in JavaScript. With that, you could interact with the server _without_ reloading the page, have the server push events to you, rather than periodically poll for them, speak any protocol from a web app, etc. The reply I got was that it wasn't going to happen, citing security issues and bloat. Yeah, that's why Java applets do have socket support, and Java is of course a prime example of elegant, light-weight software. *cough* *cough*

As for lack of standardization; we have CORBA which is very standardized and very universal. If you want something lighter, there is RPC. ZeroInstall provides a nice way to "run" native software off the web. Java has gotten pretty usable. WHERE ARE THE GOOD WEB HOSTED APPS?!?

Re:Repeating my comment on OSNews... (-1, Troll)

alienw (585907) | more than 10 years ago | (#9446947)

Contrary to Microsoft's, UNIX and POSIX APIs have been very stable.

You know why? Because the UNIX API doesn't do that much. Try developing on Linux and, say, GNOME, and you'll find that it's much worse than anything Microsoft ever came up with as far as backwards compatibility goes. You would be lucky if a GNOME app for GNOME 2.0 even compiles for 2.6. It will most certainly not run if it's already compiled.

Re:Repeating my comment on OSNews... (2, Insightful)

RAMMS+EIN (578166) | more than 10 years ago | (#9447135)

Compilers, converters, text editors, filters? It can all be done with UNIX APIs from the 1970s.

Need network access? The BSD socket API gives it to you. Servers, clients, peer to peer? Not a problem.

So you want graphics? The X Window System has been around since 1985 and the protocol is still the same. Your old clients will still work with today's servers. Toolkits for making the programming easier have been around for a long time, too.

Anything you need to do can be done on UNIX (and POSIX) systems using APIs that have been stable since the 1980s, possibly earlier. win32 didn't even exist then.

Sure, if you want the latest technologies (Java, GNOME 2, Qt 4), you will have to put up with the fact that they are not backwards compatible. However, the old APIs are available, too, if you need them, and you can write any application using those.

Re:Repeating my comment on OSNews... (2, Insightful)

Zocalo (252965) | more than 10 years ago | (#9446967)

1. Web clients vs. rich user interfaces

Have a look around for screen shots of SAP running via a web interface. While it can be a little clunky in places, when properly implemented it can be every bit as rich as .NET/GTK/Qt based applications. It's doable, but the hardware requirements for the backend can be horrendous if you have a lot of users - in my case a pair of Sun E12Ks with 32 CPUs and a boatload of RAM and HDDs in each.

Re:Repeating my comment on OSNews... (0)

Anonymous Coward | more than 10 years ago | (#9447064)

Try Java Web Start. Example. [sourceforge.net]

Re:Repeating my comment on OSNews... (1)

Aphrika (756248) | more than 10 years ago | (#9447102)

"Why has nobody managed (or tried) to take the last step?"

Your answer lies in your question. People do take the last step, using the range of technologies that you've mentioned. While Flash is mainly used for eye candy, I've seen it used for some nice realtime graphing and Gantt charts, Java still makes its way onto web pages from time to time, especially in web applications. In part, the reason that all web page interfaces aren't much good is because people have the choice, and most settle for good old HTML, with its limited form elements and markup.

There will always be a limit to what the browser will be able to do though. Part of that comes from the page's stateless approach, which ironically is a browsers main advantage over a traditional client-server system. IMO, the browser needs a revisit and a serious overhaul, otherwise its duties will be replaced by a family of other applications such as RSS readers and application equivalents (I believe Macromedia recently released a framework for Flash aplications, but I forget what it was called).

Re:Repeating my comment on OSNews... (1, Insightful)

smallpaul (65919) | more than 10 years ago | (#9447125)

I have long wondered why web interfaces aren't much good. The technologies are there; Java applets, Flash, Python could do it, JavaScript could with a few extensions, XUL, heck, even C, compiled on the fly. All these stop just short of integrating well with the web and the client platform. Why? Why has nobody managed (or tried) to take the last step? Even .NET doesn't go there; the GUI interface is very much tied to Windows.

Web interfaces are not that good because the monopolistic owner of the most popular browser decided years ago that the Web was a competitor to their proprietary APIs. Therefore they've thrown no resources at advancing or evolving it. This sucks the wind out of the whole Web industry because nobody is going to serve data that requires an alternate browser.

Hard to be a Mac user? (5, Insightful)

Anonymous Coward | more than 10 years ago | (#9446859)

Remember, people buy computers for the applications that they run, and there's so much more great desktop software available for Windows than Mac that it's very hard to be a Mac user.


No it isn't, it's easy to be a Mac (OS X) user. No Viruses, No Trojans, a sytem that stays up pretty much indefinitely, and great, great applications that do everythinbg I need and much more besides that I probably don't really need, if I'm honest. This old argument about Mac having no apps is very old, very tired, and very tiresome. Please stop.

Re:Hard to be a Mac user? (0)

Anonymous Coward | more than 10 years ago | (#9447026)

Hear, hear.

I challenge Windows users to name one common (non-gaming) application that exists for Windows but doesn't have an equivalent on the Mac. I can't really imagine what it could be. We have Office, iPhoto, iTunes, and Safari, and between those 4 (Word processing, digital photos, MP3s, the web) 90% of computer time is taken care of.

Now, I'll admit that gaming on the Mac is shit, but hey, that's why I own a Gamecube.

Re:Hard to be a Mac user? (1)

Oligonicella (659917) | more than 10 years ago | (#9447038)

Like he said, *you* have everything *you* need, but the plethora of quite diverse and intensive applications that everyone *else* needs isn't there. Sorry, he's still right. My wife has a Mac, I don't.

Re:Hard to be a Mac user? (2, Insightful)

kensai (139597) | more than 10 years ago | (#9447079)

No Viruses
True thus far

No Trojans
Want to rethink that MacOS X Trojan [intego.com]

indefinite uptime
Not a valid metric

great applications
In the eyes of the beholder

Good idea (4, Insightful)

Mnemia (218659) | more than 10 years ago | (#9446869)

Honestly, I think breaking API compatibility is the only way for MS to actually fix the problems with Windows. A lot of the problem seems to be the large amount of old code and cruft that has been left in the name of backwards compatibility.

It's certainly a big risk to the Microsoft monopoly, but it's a necessary step for them. Now would be a good time for Linux to make a big move for the desktop.

Re:Good idea (4, Informative)

Carnildo (712617) | more than 10 years ago | (#9446990)

The problem is that Microsoft broke it once for .NET, a second time for Longhorn, and is making no guarentees they won't break it again.

Apple, on the other hand, only broke the API once, with the transition from Classic to Cocoa (the MacOSX API), and even then, they did their best to maintain compatibility, with Carbon.

Re:Good idea (1, Insightful)

cmowire (254489) | more than 10 years ago | (#9447002)

Not quite.

MS would do OK if they were to give away the stuff necessary to run Longhorn apps on older versions of Windows.

The problem is that when Longhorn is out, you will *still* need to wait for several years before you can actually write apps that use it.

MS *could* have provided Longhorn-API functionality for older versions of Windows, but that really ruins any incentive to move up to Longhorn, so their hands are tied.

*sigh* The problem is that Linux needs to figure out how to make a good desktop environment. Given how piss-poor people who *try* to create a good desktop environment do, I've not got much hope there.

Re:Good idea (0)

Anonymous Coward | more than 10 years ago | (#9447022)

Did you notice that they quietly bought Connectix, and with it Virtual PC, a few years ago?

I think the future is quite obvious.

Their new operating systems won't be backwards compatible, but will instead be able to run a backwards-compatible operating system inside a lightning-fast emulator for legacy applications.

The best of both worlds. We'll be using fancy 64-bit processors running an OS with a fancy, stable .NET-like API, while all our legacy applications will continue to run, on nice little isolated virtual processors.

I will be back very soon. (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#9446877)

Teabaggers. !FP.

Marc was wrong (0)

Anonymous Coward | more than 10 years ago | (#9446882)

So is Joel.

The browser is a terrible interface.

Anything that cannot store state is a security risk waiting to happen.

Re:Marc was wrong (2, Informative)

jon3k (691256) | more than 10 years ago | (#9447109)

I spent about three years writing web based, sql backended applications, so I like to tell myself I know a thing or two about it.

I love this argument about state tracking. Every single server side scripting language posesses some kind of session tracking functionality. Based on IP address as well as some other odds and ends (depending on implementation). No cookies, no mess, and totally invisible to the user.

Saying thats not a valid form of state tracking would be like me telling you that because your unix terminal doesn't lock itself as soon as your keys leave the keyboard, its just a security risk waiting to happen.

Increased Irrelevancy, however. (4, Insightful)

metatruk (315048) | more than 10 years ago | (#9446891)

Quoth the article:

Although there is some truth to the fact that Linux is a huge threat to Microsoft, predictions of the Redmond company's demise are, to say the least, premature. Microsoft has an incredible amount of cash money in the bank and is still incredibly profitable. It has a long way to fall. It could do everything wrong for a decade before it started to be in remote danger, and you never know... they could reinvent themselves as a shaved-ice company at the last minute. So don't be so quick to write them off.


MS may have a long way to fall, but they will become increasingly irrelevant like IBM has.

As far as I am concerned, they don't need to go out of business to have fallen. They just need to lose most of the influence and power they have gained through their illegal and unethical business practices.

Re:Increased Irrelevancy, however. (0)

Anonymous Coward | more than 10 years ago | (#9447112)

if IBM is irrelevant, why does it receive so much attention on Slashdot?

Re:Increased Irrelevancy, however. (2, Informative)

xanthan (83225) | more than 10 years ago | (#9447146)

IBM is far from irrelevant. Global Services is a $40B business unit with the ability to make and break technologies on a whim -- and they don't just pick/bias IBM built technologies either. They pick what's right for the job and the customer its going to.

The IBM technology arm continues to innovate a lot of core technologies. They aren't big and visible to the general public, but they do affect how the world spins. You aren't the world's 17th largest company and become "irrelevant."

Flamebait (1)

110010001000 (697113) | more than 10 years ago | (#9446892)

To me the entire article is flamebait. Starting with the title "How Microsoft Lost the API War", even though he doesn't explain why he thinks they may have. If anything, a lot of Microsofts strength comes from a stable unified API that can be used on the desktop, servers and mobile devices. .NET is just an updated extension of that.

This was not an unusual case (4, Interesting)

craXORjack (726120) | more than 10 years ago | (#9446893)

They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.
But a much more interesting example is when they checked to see if DR DOS was running and flashed a FUD-filled error message to the user. Mmmmm... FUD

Re:This was not an unusual case (5, Funny)

Anonymous Coward | more than 10 years ago | (#9446968)

Remember, "It's not done till Lotus won't run!"

3 stories in a row ? (1)

Garabito (720521) | more than 10 years ago | (#9446896)

3 stories about Microsoft or someone related to MS?

Come on editors, there has to be better material!

Re:3 stories in a row ? (0)

Anonymous Coward | more than 10 years ago | (#9447078)

It's 2 stories, you Insensitive Cl.... ah f*k it. too old. nope wait, instinct comes back. CLOD!

Re:3 stories in a row ? (0)

Anonymous Coward | more than 10 years ago | (#9447098)

ah, the trifecta...

Who is "joel", and why should I care what he says? (0)

Anonymous Coward | more than 10 years ago | (#9446901)

Title says it all.

Re:Who is "joel", and why should I care what he sa (0)

Anonymous Coward | more than 10 years ago | (#9447012)

Joel is an ex-microsoft programmer who left and then founded his own software company. Which is profitable. Thats more than 99.99% of people here on /. have ever done.

He also writes a blog which occasioanly makes good points because he still maintains contacts from all those years working at MS.

Re:Who is "joel", and why should I care what he sa (0)

Anonymous Coward | more than 10 years ago | (#9447054)

Joel is some guy who makes bug tracking software. Oh, he also preaches to the world about how to make good design decision in software development. Bwaahahhahahahahahahhhahahaha.

Re:Who is "joel", and why should I care what he sa (1)

jon3k (691256) | more than 10 years ago | (#9447143)

And Gandhi didn't have a job at all! What a sucker that guy was!

Oh, wait ...

Kids (3, Insightful)

Anonymous Coward | more than 10 years ago | (#9446911)

Since Linux is easier to download than Windows, and dev tools are more accessible to kids in Linux than in Windows, my guess is that in coming decades, free and open are going to be the norm, just because it's what people will grow up with (as far as development).

I wish they'd document some of the improvements (1)

Marxist Hacker 42 (638312) | more than 10 years ago | (#9446918)

I have a project sitting on my plate right now, an upgrade to an old Access database that needs to read a flat file stored in a zip. The original version uses pkunzip 2.0 (!) and is being upgraded for XP. But since they haven't documented Zipfldr.dll yet, I'm limited by department rules to using Winzip9 and the Command Line add-on instead...which requires additional licensing.

Re:I wish they'd document some of the improvements (1)

Ayende Rahien (309542) | more than 10 years ago | (#9446981)

Dude, what prevents you from taking any one of the dozens of Zip implementations out there?
There are several packages that are open source Zlib comes to mind, frex/

Re:I wish they'd document some of the improvements (1)

Marxist Hacker 42 (638312) | more than 10 years ago | (#9447049)

Working for government means I have to work within "ODOT Approved Software List". As far as ZIP is concerned, that limits me to either the built-in XP ZIP library, or WinZip. Anything OSS would have to go through a lengthy approval process that would exceed the number of hours I have left on my contract. Part of the trade off of working for a buracracy- but heck, it's more steady than private industry right now.

I don't agree (4, Interesting)

Ayende Rahien (309542) | more than 10 years ago | (#9446919)

Yes, there is a lot of investment in old Win32 code.
Yes, there isn't such a big incentive *right now* to write code for Avalon / XAML.
Yes, MSDN Magazine has the *wrong* attidue (notice the ratio of artciles about yet-unavailable technologies to availiable technologies in it recently?)
As a matter of fact, personally, I didn't bother with them because I've more pressing concerns at the moments.

But, the thing is:
By all accounts - Longhorn *will* keep the reknown MS' backward compatability.
A> There hbeen nothing on the contrary.
B> MS has a *really* good track record.

The so-called breaking changes (he mentions .NET 1.0 vs 1.1 and Avalon/XAML vs Win32) are mute, considerring that they *don't break backward compatability*.

The change in VB.NET is indeed a breaking change.
But, it's not the first time that VB update break existing code (as a matter of fact, I think that is normal for VB, although the changes are usually minimal)

VB.Net is a new language, VB6 has reached its end, you might want to compare it to the transition from C to C++, you've to break compatability (for the furious: byte *buffer = malloc(1024); isn't legal c++)
And if you're going to break compatability, why not do it in a way that is still largely the same, but gives you *so much more* freedom & flexibility.

The other choice would've been to exclude VB from .Net, and *that* is not something that MS could afford doing.

So, in short, Joel is talking about moving away from old technology (Win32) that he descibe as hard to use and error-prone to a better, OO, managed way of doing things.
While at the same time *retaining* backward compatability.

I don't get it.
Sure, a lot fo code is now not the newest & brightest, but you can say the same about COBOL.

About MS losing the desktop to Web app, that is bull.
Personally, I can't *stand* using webmail, the latency there is killing me.
Any sort of web app is usually a mess to write & maintain correctly - especially cross-platform(for example, Firefox 0.9 can't show *Slashdot* properly - I get all sorts of hovering errors when tables over-write one another. Strangely, IE show it perfectly well. And I usually use Firefox, for the reasons Joel mentioned).

Yes, MS made a big mistake with not updating IE, but I can see their point.
If they are going to sell Longhorn, it needs to be more than snappy UI & pretty pictures (especially for the business client).
It has to have *killer app* - IE 7 & WMP 10 are probably on top of the list at MS.
I'm certain that we will so much improved applications that require Longhorn (DirectX for Longhorn isn't that much of a long call - by the time that it would be out, 2000 would be an old system, and MS can justify not supporting it on Win2K. Games are the #1 killer app, after all.)

Joel Might Be Wrong (4, Interesting)

xp (146294) | more than 10 years ago | (#9446923)

Joel confuses binary compatibility with API compatibility.

Microsoft continues to support backward binary compatibility. My DOS applications still run on WinXP.

Also, Microsoft has always changed its APIs over time to keep up with the state of the art. This is why we have ATL, MFC, and tons of other libraries for the same underlying problems.

Conclusion: This is nothing new.

----
Notes on Stuff [blogspot.com]

Re:Joel Might Be Wrong (0)

Anonymous Coward | more than 10 years ago | (#9446998)

Also, Microsoft has always changed its APIs over time to keep up with the state of the art. This is why we have ATL, MFC, and tons of other libraries for the same underlying problems.

You mean with the same underlying problems.

Re:Joel Might Be Wrong (3, Informative)

kfg (145172) | more than 10 years ago | (#9447106)

Joel confuses binary compatibility with API compatibility.

Anybody who has tried to explain to someone why WINE is not an emulator has probably had to confront this confusion face to face.

I recently got lectured that WINE would always have emulation overhead by a guy who was sitting there writting Win32 binaries . . . on his Linux box.

He still didn't get it when I asked him if he weren't concered about the emulation overhead when he ran those Linux binaries under Windows.

Some people have troubles with the abstraction layer between the physical machine and the logical machine.

KFG

Re:Joel Might Be Wrong (0)

Anonymous Coward | more than 10 years ago | (#9447117)

You're missing the point - the problem is that Longhorn apps will not have backwards compatability (binary or otherwise), not about having older apps be compatible with running on Longhorn.

With MS's current plan, if you develop an application using Longhorn technologies such as Avalon, it will only run on Longhorn, you can't run it on older versions of Windows such as WinXP.

Visual C++ now free (4, Informative)

aking137 (266199) | more than 10 years ago | (#9446924)

Wow - I never knew before reading this article that Microsoft's Visual C++ Compiler is now free [microsoft.com] . (Free as in 'beer' of course.)

Re:Visual C++ now free (1, Informative)

Anonymous Coward | more than 10 years ago | (#9446978)

Wow - I never knew before reading this article that Microsoft's Visual C++ Compiler is now free.

Yeah, they released it a few months ago [slashdot.org] . It's got a few limitations - mostly you only get static libs to link to - but it's still great.

So whats new? (1, Troll)

cOdEgUru (181536) | more than 10 years ago | (#9446934)

I dont follow this guy's articles/rants much, but he is basically regurgitating everything everyone has been talking about and cramming down everyone else's throats for a long time.

(1) Microsoft Loves developers who code on MS technologies - Sure, thats why they reel them in with swags. They lost a ton to Java, and they alienated another bunch when they moved to .NET and didnt provide a straight forward migration to .NET from VB6.0 and other crap that they built. They expected that since all their developers loved them to death, it would have been easy to just port them from the antiquated VB6.0/5.0 to VB.NET. The industry/developers didnt move fast enough for them, which is where Microsoft suffered.

(2)Compatibility - This was bound to happen, one day. With the rest of the world/industry/developers willing to sacrifice backward compatibility for the sake for something new/better, MS also realized that in order for them to move forward and keep pace, they have to do the same. Sure, they will have to piss some people off, but heck, they assumed the advantages would far outweigh the negatives. Wrong! But I am glad that Microsoft decided to shake free from the outdated Windows API model and embrace the new, and thereby have the balls to sacrifice some backward compatibility. You cant keep everyone happy for the rest of their lives. Some tradeoffs need to happen. You cant survive otherwise.

So what is this guy talking about other than whats already blatantly obvious to the rest of the world?

Man that was great (1)

jwcorder (776512) | more than 10 years ago | (#9446936)

"(I know, I know, at this point the 2.3% of the world that uses Macintoshes are warming up their email programs to send me a scathing letter about how much they love their Macs. Once again, I'm speaking in large trends and generalizing, so don't waste your time. I know you love your Mac. I know it runs everything you need. I love you, you're a Pepper, but you're only 2.3% of the world, so this article isn't about you.)"

Greatest editorial I think I have read in about 5 years.

Re:Man that was great (0)

Anonymous Coward | more than 10 years ago | (#9447046)

That would be </i> that you were looking for.

I'm a Windows .NET developer who owns a Mac, as do at least 10% of my colleagues. Just 'cos we're Windows developers doesn't mean that we're fscking stupid.

um (0, Flamebait)

DRWHOISME (696739) | more than 10 years ago | (#9446942)

He says...

Microsoft's crown strategic jewel, the Windows API, is lost. The cornerstone of Microsoft's monopoly power and incredibly profitable Windows and Office franchises

Not exactly. How about the fact that that every computer maker makes Bill'$ O$ the standard.

If the GOV would do their job and stop this COLLUSION and force people to buy Bill'$ O$ at Compusa for $100 bucks then there would be REAL tangible change for the better.

Amazing..Special case code to run SimCity (1)

sashang (608223) | more than 10 years ago | (#9446955)

They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.
The Windows team added special case code to run allow SimCity to run! That's an incredible effort.

As a (former) die hard web developer (5, Insightful)

Omega1045 (584264) | more than 10 years ago | (#9446962)

I used to preach the "web is everything" argument from every soap box I could. I don't think HTTP and HTML will cut it for the types of interactive programs we will see in the future. Heck, in many cases they don't cut it now.

I can see technologies like SOAP enabling rich clients to interop across platforms (ok MS haters, SOAP is a mult-vendor thing so don't reply telling me some tinfoil hat story on how MS will patent SOAP and sue anyone who uses it without license). I am willing to bet some other protocols similar to SOAP, or perhaps riding on top of SOAP, will come along to allow richer communication across networks. HTML just isn't going to do it.

While I totally agree that open standards and open source make the best APIs, MS failed way before even that line. Take SMB for example. Their systems, by design or mistake, don't even follow their own standard! I am betting it is a little of both. Their APIs are this way as well. What is really hurts MS in this particular area is poor documentation and poor implimentation of their own APIs. Having worked with .NET for about 2.5 years now I can go into my office and find any number of contradictory statements about the .NET APIs, statements published my MS! I think this is hurting them quite a bit.

Re:As a (former) die hard web developer (1)

ari_j (90255) | more than 10 years ago | (#9447060)

"MS will patent SOAP and sue anyone who uses it without license" :P XML-RPC is a very open offshoot of early development on SOAP, and its simplicity means it's easier to implement, from what I've seen. Go try it out - there are extremely easy to use libraries available for C++, PHP, Ruby, and probably others.

Or, of course, you could use S-expressions to accomplish the same thing but with the breath-freshening power of Lisp.

Re:As a (former) die hard web developer (1, Informative)

Anonymous Coward | more than 10 years ago | (#9447120)

XML-RPC accomplishes the exact same thing as SOAP...and is quite similar...and has been around a lot longer.

And people say.... (5, Funny)

jwcorder (776512) | more than 10 years ago | (#9446965)

"The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.

And people say the evil giant doesn't try to fix it's software. They fixed SimCity DAMN IT!

Re:And people say.... (1)

RealAlaskan (576404) | more than 10 years ago | (#9447050)

>>the Windows developers, ... added special code that checked if SimCity was running, ... ran the memory allocator in a special mode ...

>And people say the evil giant doesn't try to fix it's software. They fixed SimCity ...

SimCity isn't the Evil Giant's software. Whatever they may do to other people's programs (break DR DOS, fix SimCity ...), this doesn't suggest that they fix their own software!

About this "Joel" guy (0)

Anonymous Coward | more than 10 years ago | (#9446973)

Situada en el Real del Windows 2000/XP Arrabal en el barrio judio, Joel daba paso al recinto islámico de la epoca.
Aunque no se puede datar su fecha de origen, se tienen noticias de la misma a partir del siglo, API se reconstruye sobre el siglo y esta influenciada por el estilo mudejar, Microsoft aspecto que destaca notablemente en la actual y bien conservada en Windows XP.

Translation (2, Funny)

XanC (644172) | more than 10 years ago | (#9447025)

Come on, Babelfish, enlighten us!

Situada en el Real del Windows 2000/XP Arrabal en el barrio judio, Joel daba paso al recinto islámico de la epoca. Aunque no se puede datar su fecha de origen, se tienen noticias de la misma a partir del siglo, API se reconstruye sobre el siglo y esta influenciada por el estilo mudejar, Microsoft aspecto que destaca notablemente en la actual y bien conservada en Windows XP.

Located in Real of Windows 2000/XP the Suburb in the district judio, Joel took step to the Islamic enclosure of epoca. Although its date cannot be dated from origin, have the news of the same one as of the century, API reconstructs on the century and this influenced of the sort to mudejar, Microsoft aspect that emphasizes remarkably in the present one and conserved well in Windows XP.

The Browser Is the Future of App Development (0)

Anonymous Coward | more than 10 years ago | (#9446994)

Just like it was the future of app development 10 years ago, right?

SourceCode != QualityDocumentation (1, Troll)

moronikos (595352) | more than 10 years ago | (#9447006)

Source code is not the same as quality documentation. The MSDN CDs and site provide great documentation for developers. It's much easier than sifting through the virtually non-existent API documentation when trying to develop apps for GTK or QT.

Re:SourceCode != QualityDocumentation (4, Informative)

leonscape (692944) | more than 10 years ago | (#9447045)

Non-existant API Docs for Qt are located at http://doc.trolltech.com/3.2/index.html
KDE's are at http://developer.kde.org/documentation/library/cvs -api/
Thats every function call to program in KDE and Qt all completeley cross-refrenced, with examples.

This is how Microsoft fixes bugs (1, Interesting)

vivek7006 (585218) | more than 10 years ago | (#9447024)

Quote from the article ...
I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.

ideological loss, but still winning in the market (2, Insightful)

MMHere (145618) | more than 10 years ago | (#9447029)

I'll believe it when I see it -- that is when MS's 90%+ monopoly market share declines and there are true other players.

Until then, MS can mess up all they want (or all you say they do), and still win in the market place. As long as everything runs Windows, everything else has to be compatible with a constantly moving target.

Moving the the target is also how MS keeps their deathgrip on the share percentages. It's part of their "competitive advantages" (read, "platform lockin").

I disagree .NET will fail due to Longhorn/Avalon (3, Insightful)

cjmnews (672731) | more than 10 years ago | (#9447030)

I think that Joel is wrong here.

I believe that the long wait for Longhorn/Avalon to be released will cause more people to pick up .NET as an alternative to the old API development.

Developers will see the benefits of the .NET infrastructure (memory management, standardized interfaces, develop in the language of your choice, etc.) over the standard VB/VC++/ASP and begin to use .NET more. They will take classes, and become trained in .NET.

When Longhorn/Avalon finally gets released, the adoption I expect will be slow. We just spent all this money becoming proficient with .NET. Why change to the new system now? Unless you need the new features, .NET should cover most needs of application and web developers.

I just can't see how .NET will go away so soon after it's introduction.

What about flash. (2, Interesting)

metalhed77 (250273) | more than 10 years ago | (#9447043)

Many of the problems with web UIs he describes can be solved by using flash. I'm actually considering using it for a web based since flash + actionscript being driven off server generated XML is convincingly better than XHTML + XSLT (transformed on the server).

Uhh... what? (2, Interesting)

Hatfieldje (147296) | more than 10 years ago | (#9447061)

From the article:
The new API is HTML, and the new winners in the application development marketplace will be the people who can make HTML sing.
You would think that after progrmaming for as long as he claims (13 years) he would understand tht HTML is not an API, but a Markup Language (HyperText even). And I wish people would stop trying to make HTML sing. I just want it to mark the text up. That's what it's for.

I also fail to see how he feels (apparently along with others) that the API is MS's cash cow. There have been people building libraries (like the ones his beloved VB use) to abstract the OS-API layer, like QT, or Java (which built its own VM, but still abstracted the OS out in most cases). IIRC the 2.6 kernel changed a lot of things in linux, even broke some apps, but did not spell the downfall of linux (granted, they did not change the entire API and are stil POSIX compliant, I think). Why then would a new API hurt MS? If Longhorn catches on (assuming it's ever released), then people will program for it, just like they do for XP/2000.
Now that I've stopped making sense even to myself, I end this rant.

Re:Uhh... what? (3, Insightful)

Anonymous Coward | more than 10 years ago | (#9447101)

How could you not understand that he meant that HTML and other web-based technologies have replaced teh API?

Interesting comments, but where were... (2, Funny)

Black Jack Hyde (2374) | more than 10 years ago | (#9447070)

Crow and Tom Servo [mst3k.com] ?

We can only hope... (3, Funny)

cmacb (547347) | more than 10 years ago | (#9447074)

From the article:

"... they could reinvent themselves as a shaved-ice company at the last minute. "

Win32 API will live forever (4, Insightful)

Orion Blastar (457579) | more than 10 years ago | (#9447093)

Already there are still people using DOS and Windows 3.X and refuse to upgrade. There will be people using 32 bit Windows for a long time as well.

Eventually the WINE development team will crack most of the undocumented Win32 API calls and make WINE better with each release. When that happens, Microsoft will have abandoned the Windows 32 bit platform for Longhorn. Then Linux + WINE will be very valuable for people with new machines who can only run Longhorn or Linux.

My only request is that WINE and other programs than run softare using the Win32 APIs, create a sandbox to prevent viruses and worms from spreading.

The bets are on as to how soon those Longhorn viruses and worms come out after Longhorn is released.

Half Wrong. (1)

DRWHOISME (696739) | more than 10 years ago | (#9447145)

He says...

Microsoft's crown strategic jewel, the Windows API, is lost. The cornerstone of Microsoft's monopoly power and incredibly profitable Windows and Office franchises

Not exactly. How about the fact that that every computer maker makes Bill'$ O$ the standard.

If the GOV would do their job and stop this COLLUSION and force people to buy Bill'$ O$ at Compusa for $100 bucks then there would be REAL tangible change for the better.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?