How Microsoft Dropped the Ball With Developers 814
cremou writes "As part of an Ars Technica series on how one developer migrated from Windows to OS X (and why), this second article concentrates on how Microsoft bungled the transition from XP to Vista. The author looks at some unfortunate decisions Microsoft made that have made Windows an unpleasant development platform. 'So Windows is just a disaster to write programs for. It's miserable. It's quite nice if you want to use the same techniques you learned 15 years ago and not bother to change how you do, well, anything, but for anyone else it's all pain... And it's not just third parties who suffer. It causes trouble for Microsoft, too. The code isn't just inconsistent and ugly on the outside; it's that way on the inside, too. There's a lot of software for Windows, a lot of business-critical software, that's not maintained any more. And that software is usually buggy. It passes bad parameters to API calls, uses memory that it has released, assumes that files live in particular hard-coded locations, all sorts of things that it shouldn't do.'"
Re-runs (Score:0, Insightful)
Slashdot hates America, Religion and Microsoft. We get it already!
With those arguements, any platform can suck (Score:5, Insightful)
Those are basically programming errors, not problems with the API. Don't get me wrong, I find Win32 to be a pain in the ass sometimes, but this article just reeks of flamebait.
Cult of Backward Compatibility (Score:5, Insightful)
Which would have been find if DOS (Win16, Win32, etc..) were a multi-platform, extensible OS to begin with -- but it wasn't. It was a quick hack that lives on and on.
I'm a developer that works primarily in Windows, with 15 years of heavy-hitting Unix programming experience behind me.
Re:With those arguements, any platform can suck (Score:5, Insightful)
The problem is that many major legacy applications depend on undocumented behavior because they make sloppy use of the Windows API (e.g. by assuming that a particular function will not segfault when passed a bad argument). For those to keep working, newer revisions of the API implementation must have the same undocumented behavior, which causes a maintenance nightmare.
Re:With those arguements, any platform can suck (Score:5, Insightful)
I think you missed the point. For the sake of backwards compatibility, Microsoft supports applications which do all these things, and drags all the associated crap into future versions of Windows so they still run.
For that matter, so do hardware developers: back when I was writing drivers for Windows I had to deliberately put bugs in our code to support applications which only worked because of bugs in the Microsoft versions of the drivers and would crash if we didn't replicate those bugs ourselves. We also spent weeks working around abuse of the API by a certain big computer company that can't program PCs worth a damn (or even, apparently, read API documentation).
Re:Long Answer? (Score:2, Insightful)
MS should follow Apple? (Score:2, Insightful)
And to claim that
He complains that the Win32 API for finding a file size requires you to deal with two 32-bit values, stating that on Win64 that it should return a 64-bit value instead. Well, if he wasn't such an idiot, he could use the newer version of that same API which does return a 64-bit value, on Win32 and Win64.
All this dumb shit seems to do is claim that the platform should be constantly broken, because that would be the most convenient for him. If you think that the developer experience on Windows is bad then I posit that you've never programmed before, for any platform, ever. Either that or you are a fucking retard who has failed so badly as trying to hack together code that you're only possible saving grace is to write an inflammatory article and try to eek a living out of click ads.
It's actually kind of funny watching retards like this rant. They have no clue what they're talking about yet they are so sure that the problem must be something other than themselves. Fuckwits like this make it much easier for me to find work cleaning up after their garbage, and make a small fortune doing so.
Inconsistencies (Score:2, Insightful)
For those of you who CBA to RTFA, FYI here's a small summary of it:
It starts off saying there's basically 3 kinds of developers, 2 kinds that don't care what the code does as long as it works and 1 kind that cares deeply about "doing it right". It then says that this kind of developer doesn't matter because it's all hobbyists anyway. It says the first 2 kinds just want to get the job done and don't particularly want to or care to learn anything new to do it.
Next, the article has a complete bitchfest about the
Then it bitches a bit about said Win32 API, but it's main point is that you don't learn anything new, it's just the same thing you've been doing "for the last 15 years", as the summary points out.
Then, curiously, it states that this suits the first two kinds of developer just fine and this is where I get a bit confused. It's trying to bitch about the framework, it's trying to point out how it's flawed, but all it's really done is point out that it works just fine for the only developers that (in the article's own words) "matter".
This leads me to the conclusion that the author really was just trying to start a flame war but instead of coming up with a reasonable argument (Of which, on the Windows platform, there are many - just like any other), he sort of just throws in a few keywords, rambles on without re-reading what he's wrote and then finishes it off by bitching about some of the quirks of the platform, quirks that are only there because people REFUSE to do anything different than what they've been doing for the last 15 years.
In other words, he's blaming Microsoft for catering to lazy, underpaid developers.
Does that make them the bad guys? Not if you've got a multi-million $$$ business to run and want to keep costs to a minimum so you can give yourself a big raise at the end of the year.
Re:As a dev who makes his living writing for .Net. (Score:1, Insightful)
MSDN is just an added bonus because it gives access to every development oriented Microsoft product in existence, including Operating Systems, Servers, and Office. That sort of stuff for that price ($1000 or so I believe) is pretty good really.
I should probably also add that you can also write Windows apps for free using compilers like GCC and cygwin or similar, and IDEs like Eclipse - if you don't want to use Microsoft tools. It isn't necessary and never has been to use Visual Studio to make Windows apps.
Or to sum up the parent poster... "troll troll troll, troll troll troll troll".
Re:But give them credit where credit is due... (Score:2, Insightful)
Are you using the same Visual Studio I am? Because the one I use may have some decent functionality that you'd expect from an IDE, despite being crippled by a lousy interface (with some exceptions, they do some things very nicely). But when you're used to using Eclipse, Visual Studio feels like a cheap, buggy toy. I use both at my day job. I would never use Visual Studio unless paid to do so. Eclipse I use for fun on my hobby projects.
Yes, there are much worse IDE's than Visual Studio, but that doesn't mean its good.
Windows programming (Score:5, Insightful)
Because the software I wrote was also licensed for source code if the user wanted it, I picked Visual Basic as the platform to use. I wanted to use Visual C, but you could more easly find programmers that could get by in Visual Basic than VC. I should have picked VC rather than VB for a lot of reasons, the main one being that if you had experience in VC, you were at least likely not to be a total idiot. Not so with VB. I found that VB programmers were idiots at the approximate rate of 7:10, while VC programmers were likely to be idiots at an estimated 1:10 ratio... which isn't to say that all VB programmers were idiots, only that they were cheaper labor, and therefore less likely to have a solid background in programming logic.
That said, we'll focus only on my own development problems, just so we are dealing with only one (possible) idiot... me. I started out with VB 2.x. The upgrade to 3.x went fine, with very few problems. When 4.0 came out, I found I had to rewrite about 20% of my code. Sure, there were conversion programs, but they didn't quite fit in with exactly what I wanted the program to do. It'd get it about 90% right, but then I'd have to slog through the rest of the automated code to correct that last 10%. It was faster to discard that code and re-write it.
Then 5.x came out. Only about 50% of my code still worked. And again, the automated process to "ease" transisition left something to be desired. When Visual Studio 6.0 came out, it was a nightmare. only 20% of the code ported. At that point, I sent the 5.x code out to all the people that bought the program (with source or not), and told them that the code was now moribund, I would not be maintaining it, and that I was releaseing the source code to the public domain (5 floppies included). As I recall, that was about 1998-1999 or so.
As late as March 2008, I've been contacted about the code. Of course, it's morphed far past anything I'd written, and I could only help with the general business case logic involved, not the actual code. But having to deal once again with Microsoft development tools, one would have to offer me far, far more money than it would be worth. No, I'm done with Microsoft "development" games. I'm done with school yard bullies trying to take my lunch money. I'm done, PERIOD, with closed source, whenever I have a choice.
Re:With those arguements, any platform can suck (Score:5, Insightful)
Linux, in comparison, provides a fair amount of backwards compatibility, but doesn't have to overly worry because most software comes in source form and can be fixed when a kernel or library change breaks it. Windows doesn't have that option.
Re:DOS/Windows programming culture (Score:2, Insightful)
Re:But give them credit where credit is due... (Score:4, Insightful)
The appalling GUI inconsistency (Score:5, Insightful)
not sure they have a choice (Score:5, Insightful)
They could pull an Apple, and completely redo their windowing system. Apple benefited from using NeXT's system, which was well thought out, uses a language well suited to windowing systems (objective-c), and could be altered based on previous user experience.
However, in doing so they would lose all compatibility they current have. Keeping compatibility, even if it creates a developer's nightmare, is in the end what keeps them on top of the market.
That is not to say it's not impossible for them to do so. Apple did provide a virtual machine to run old OS9 software with the first releases of OS X. However, since both Mac and Linux machines also have the same options (currently running Parallels on my machine), it would still take the clear advantage M$ has in the market away.
It's not clear whether their bad API spells the eventual doom of the company. The more pragmatic developers will still value making products that more people can use over writing nice looking code. Additionally, wrapper libraries, such as WxWidgets or Qt can help hide much of the ugliness.
What part of "Undocumented" is hard to understand? (Score:5, Insightful)
So, you problem is that programmers make use of undocumented API calls. While "undocumented" does not always equal "unsupported", using them is just plain stupid. Whether it is Windows, Linux, MS-DOS, DR-DOS, OSux using the system in an undocumented/unsupported way is well, U N S U P P O R T E D. Don't blame the OS or the those that coded it, blame those that wrote against the API in an unsupported way.
RTFA turns out to be a effort in slogging through another of the author's attempts to explain why anyone on Windows is just benighted. He blames HIS short comings on the OS.
Re:how much MS bashing can you fit in? (Score:1, Insightful)
Re:Cult of Backward Compatibility (Score:5, Insightful)
Code written for Windows 95/NT (back in 1996) still works today on the Windows platform. 12 years later.
Try that with System 7 code on OS X.
Yes, this is part of why writing business-logic code sucks. You seldom get to just re-write anything to be really, truly good instead of something perennially built-upon and increasingly hacked-together. No one will pay for a change that doesn't deliver "business value". (And no, greater stability/performance is almost never enough, as that argument usually demands an associated headcount reduction) But at least the app still works and can continue to deliver. And since some will doubt, yes, I do maintain/enhance such code.
The market speaks - this sort of backwards compatibility is a conscious choice by MS, and it does sell their OS. Not concidentially, it also sells mainframes and *UX systems. And I'm convinced it's one of the big reasons Apple isn't bigger in the corporate world. Steve's demands for newer/better/faster totally supplanting the old are well known, and rightly feared.
Re:Long Answer? (Score:3, Insightful)
I think the giveaway is when he says a screen shot is worth a thousand words, then his screen shot is of vista with the taskbar at the top, Im not saying nobody has the taskbar at the top but its just one of many signs that hes a fan of apple.
Im no programmer but the article seams short on facts & details and high on ms bashing & skimming.
Is the article right or is it just well presented trolling?
Re:So Microsoft has jumped the shark, then (Score:2, Insightful)
When they tried to force a product down the consumers throat that there was no perceived need for, which could be replaced by products that were not IP locked.
For you younguns IBM's was called Microchannel.
Re:Long Answer? (Score:5, Insightful)
Re:Glory days are here (Score:3, Insightful)
Author has narrow vision (Score:2, Insightful)
Actually they could host it within citrix or similiar and rollout to the desktops. They are not locked into windows on the desktop.
"They're too demanding anyway. They're the ones who care about their tools and get upset when an API is badly designed. They're the ones who notice the inconsistencies and omissions and gripe about them."
Or maybe they accept that there is no such thing as the perfect piece of software. Maybe they understand that the software in question a lot of the time is there to support business and sometimes business requirements out weigh technical 'perfection'. I accept it as a fact of life... like taxes blogging about it won't change a thing.
"For example, there's a function called OpenFile. OpenFile was a Win16 function. It opens files, obviously enough. In Win32 it was deprecated--kept in, to allow 16-bit apps to be ported to Win32 more easily, but deprecated all the same."
And as a good developer you won't use it. Maybe a bad developer will but a bad developer will write bad code regardless of how many things you put in place to stop them. A developer should be able to use his discretion as to using this or not, taking into account his particular circumstances. Maybe it should be used for a quick dirty port while version '2.0' is under development. 'Get it in, get it running, minimise the business impact and we'll address these issues next major release' is something that commonly gets thrown around in enterprise by management... you know they guys that are paying for your services.
But if you use the same API in 64-bit Windows, it still gives you the pair of numbers, rather than just a nice simple 64-bit number. While this made some kind of sense on 32-bit Windows, it makes no sense at all on 64-bit Windows, since 64-bit Windows can, by definition, use 64-bit numbers.
This and other points in the article are such small non issues and are just gripes. Would it be nice to get 1x64 number? Yes. Does it make no sense? No. Looking deeper at things like reducing time to port 32bit to 64bit and associated costs in developer time/money it makes sense. I can happily live with it.
In 32-bit Windows, it was called system32. In 64-bit Windows it's called, er, system32 again. Because although there's an API call that programs can make to find out the name of the folder, there are enough programs that don't bother using it and just blindly assume that it's called system32.
Again... you can't stop bad programmers (a lot being 3rd parties) from making dumb mistakes... but you can try and reduce the impact. You can bet there are those purists just like the article author inside MS that hate this as well. But in the interest of having this work a decision was made, and i suspect not for MS's benefit. Again just live with it.
For example, dialog boxes in Windows have traditionally been poorly designed, because their buttons are given generic labels like "Yes" and "No," or "OK" and "Cancel,"
Microsoft have been going on about this for ages since 2001 actually. http://msdn.microsoft.com/en-us/library/ms997506.aspx [microsoft.com]
If you take the ranting and raving out of the article it has very little of value. If Mac or *nix had greater market share then we would see more bad software and API's in those environments as well. As it is some of the open source code I have seen is terrible. There is no way to prevent these issues economically, good programmers just accept them, code around them and move forward.
Re:use the same techniques you learned 15 years ag (Score:3, Insightful)
When it comes to using the extra power of modern hardware, it is easy to say "I want it to make everything 10 times faster". On the other hand, you could use that power to run a python interpreter, and make things 10 times easier for the programmer. Both are perfectly good uses of the more advanced hardware. But the latter is where you'll see the really innovative apps showing up. That's what Microsoft is missing out on when their platform still doesn't let you ignore the nitty-gritty details that you couldn't afford to ignore 15 years ago.
Re:With those arguements, any platform can suck (Score:5, Insightful)
While this has short term benefits, the long term imposes a hefty penalty, the same penalty MS (and some of its developers) is paying now.
Re:Long Answer? (Score:5, Insightful)
Re:As a dev who makes his living writing for .Net. (Score:4, Insightful)
Re:MS should follow Apple? (Score:4, Insightful)
This is a false statement. Or at best misleading. Yes, Apple did finally ditch OS 9 after many years of offering backwards compatibility. Their succession of OSes, or OS X as some of us call it, are all backward compatible. Unless I'm mistaking your definition of backward compatible.
Apple's decision to make a break with their old OS was a good one, and I'm sure just about anyone would agree with that. I liken it to when the camera manufacturer Canon abandoned their old twist-lock lens mounts in favor of the electro-mechanical mount. That allowed them to develop the best autofocus lenses on the market and to finally overtake Nikon in a big way, whom they'd been playing second fiddle to since forever.
Re:With those arguements, any platform can suck (Score:5, Insightful)
I thought we discussed this when Apple did it? Undocumented APIs are there for the use of operating system developers and other people who feel the need to tickle the operating system at a low enough level to fool it into doing things that it was never intended to do for you. This is your prerogative; it's possible to sniff through the structure of the binaries to find new functions, and it's possible to debug functions to see what they're calling, so no one can really stop you anyway.
At the same time, being upset when they stop functioning correctly is the mark of a whiny idiot, because let's face it, they're undocumented. If you want that functionality exposed, by all means, cry to the OS vendor. Or, you know, you could support open source and/or free software and work with an environment in which you have all the source code and can at least make relatively responsible use of the undocumented functions, and if you are feeling froggy, even submit patches which express this functionality consistently with a documented API.
Seriously though, undocumented functions are par for the course. If the functions are never intended to be used by anything other than the operating system, and the functionality is expressed through the OS in some fashion (use of undocumented APIs in Win32 has often been done to work around a bug) then there's really no problem. The portions of the OS that need to be changed when the libraries change can be changed in such a situation (and hopefully will fail tests if someone doesn't think to do it beforehand.)
Re:Author is misleading at best.... (Score:3, Insightful)
Quite right. The last thing I want in my word processor is words.
Half-baked article (Score:2, Insightful)
I tried Apple's XCode IDE last year, and I was put off by it's total lack of good UI design. XCode's editor cannot be customized, has a hair-line thin text cursor that is barely visible and a weird keyboard layout that originated somewhere in the 80ies (on MacOS and Amiga systems), that is totally uncomfortable to use nowadays. No mention of this in the article.
Also, the article mentions minor aspects of perceived Win32 and
Also, as has already been mentioned here, the article omits WPF [microsoft.com], which is a fairly important development by Microsoft. It enables programmers to create 3D applications in XML! I tried it a number of times and it seems pretty good to me.
But the core statements about
I've been developing mostly for Windows in the past 13 years, with the occasional UN*X and OS/2 thrown in, and I still find that all of them lack some of the flexibility and power of an AmigaOS, which I used and programmed on from 1986 to 2001. THAT would be the ideal development platform, because it allows unrestricted programming; sadly, Commodore folded in 1994, and not much good happened since then. GUI and development guidelines were followed by Amiga programmers voluntarily, out of interoperability concerns. All major (and many minor) applications had an ARexx scripting interface, for instance. GUI guidelines were often followed also, because the guideline manual (or chapter, in the older RKMs) was thin and easy to read. BTW, the Tool Info feature of the Workbench is still unmatched today. A user could easily configure their applications to their desires, or even configure the entire user experience to their liking, booting up Commodities (which were similar to Windows Services, except they supported user interfaces) as needed, that even sometimes changed how individual controls behaved. Tools like MagicMenu changed the entire menu system for all applications, and so on. Virtual memory and memory protection could be added by the user, and so on. There's much that needs to be said about the Amiga platform, that made it ideal for developers. For instance, the non-copying message system that was easily used to communicate between threads, making multithreaded applications easy, and that also served as an IPC mechanism.
I can tell you: On all so-called "modern platforms", everything is much, much more complicated than it needs to be. OS implementors only have to look at the things that have already existed, instead of reinventing the triangle-shaped wheel over and over.
Re:Long Answer? (Score:3, Insightful)
"Regular updates to the OS keep developers on the upgrade treadmill; they work to make their applications fit in with the latest and greatest release, leveraging whatever new bells and whistles it provides, further improving the software ecosystem."
As we see from the Windows and Mac OS (pre-X) ecosystems, this is completely false. Developers are loathe to change custom-written code that they know works in order to implement some kind of link to the OS; and in many cases they'll let old versions of their program stop working when a new version comes out and replaces it.
Microsoft knew what they were getting into with Vista's backwards incompatibilities, and oh lordie how people complained. Consumers (and, it seems, developers, who should know better) often blame Microsoft when their new product breaks backwards compatibility, even if it's the program's fault for doing it the wrong way. For the most part, Windows developers are pragmatic, which is why they're working on Windows (the biggest install base), so whatever works is more or less good enough.
I will delight at what happens if Linux ever manages to get majority market share and it starts getting some of the less-skilled pragmatic developers.
Re:Long Answer? (Score:5, Insightful)
Re:Author is misleading at best.... (Score:1, Insightful)
This brings up the horrid Carbon/Cocoa
Apple and Microsoft are antitheses of each other in this regard. Apple has forced developers to move forward, kicking and screaming, over and over again, while maintaining a reasonable degree of backwards compatibility each step of the way, while Microsoft has to remain compatible to a million different quirks.
In the case of Apple, this includes two architecture changes, Moto 48xxx -> PPC -> x86, and a complete overhaul of their original API set, that became carbon, and the platform for the future based on objective C (and java at the beginning, but developers have spoken on that, and nobody sans Azureus wants it) that is cocoa.
I personally find it amazing that on a Intel Mac today you can (1) run programs that were originally coded for Mac System 7 running on Moto 48xxx with a moderate degree of work, and (2) run carbonized programs that were originally coded for OX X PPC on intel through emulation without any recode, and very little performance hit.
With regards to your claims about Adobe, I suggest you put your foot down, and next time do your homework.
Thank you Madonna. LoL
These claims are fully supported, you must be a blind ignorant fool not to see this.
Please do enlighten us, what is this device that I am typing on right now called??? OH yeah, a keyboard, DOH!!!
You sir, are a warthog faced buffoon.
Re:But give them credit where credit is due... (Score:3, Insightful)
Re:With those arguements, any platform can suck (Score:4, Insightful)
Re:Long Answer? (Score:5, Insightful)
Code first, design later. For example, I note with interest the amount of pain involved in trying to provide server protocol documentation for the EU. Some of the foot dragging is deliberate but some of it is that they don't have quality internal documentation.
There is a severe lack of direction and leadership at Microsoft. They are just not forward planning. As a result they are tearing themselves to pieces, doing the same work again and again.
Re:What part of "Undocumented" is hard to understa (Score:5, Insightful)
I think that's why Microsoft is afraid of breaking the old APIs. Once you have to go through the pain of porting to a new API why not just go cross platform?
Re:Long Answer? (Score:5, Insightful)
The problem is they know a lot of people aren't happy with Windows but it runs all their programs. Once the scrap that backwards compatibility and build something solid, despite the fact it may be their best OS ever, it's on a level playing field with the rest which means people have to find an alternative to their old programs and they might just pick something that isn't Windows and MS isn't having that.
Re:Long Answer? (Score:5, Insightful)
Re:Long Answer? (Score:3, Insightful)
Re:Long Answer? (Score:3, Insightful)
Your link is all the more profound when one realizes that 90% of the posts on this thread are from defensive windows programmers. So, my question is, whence the hostility, man? When mac users/programmers say "Our platform is great!", windows users/programmers don't say "Ours is too!", but rather insist on "No, you suck!". Its always the same story. Just thought I'd point it out. Here is what I say: "Get a friggin' life! If your OS is so great, then there is no reason to say how every one else sucks because they think theirs is too." Or do you have some deeper issues with your OS that we don't know about and this is the source of your hostility? Perhaps if you talk it through you will be happier. Or maybe you could switch to a good OS. Just a suggestion. No need to get defensive about it.
Re:Long Answer? (Score:3, Insightful)
1. They aren't attracting the kind of people they once were, and many of the very good people have left. This exacerbates their other problems.
2. They are still trying to develop the same way they used to (cowboy), but are now finding that it does not scale well for the size of projects.
3. There seems to be a lack of long term direction, planning and vision. And by long term I mean as short as 3 years from now. This might be a result of 1.
Re:But give them credit where credit is due... (Score:2, Insightful)
Re:Long Answer? (Score:5, Insightful)
I am in that third group of developers this article was supposedly written for. I absolutely abhor poorly written code, cheap workarounds, etc. And I make a living off
The term you look for is "enabler" (Score:4, Insightful)
The term you are looking for is "enabler" - Microsoft is an Enabler for other applications to engage in bad practices, for users to engage in bad security.
As you say it makes a lot of people happy now, but look what else it has given us - lots of decrepit systems, and hundreds of thousands of zombies that make our lives miserable in other ways.
Sometimes even a business can't just be about making people happy, it has to be about moving the market as a whole to dry land when they see the flood coming.
Just like the Spiderman quote tells us.
Re:Long Answer? (Score:3, Insightful)
All his support for C could apply to
Certainly, because it's so trivial to call out to C from
I can't speak to the criticisms of the actual API itself. But that would seem to be more a criticism of
Although, glancing over at some of these, like the passing of two ints for the size of a file -- even on 32-bit Windows, that's kind of stupid. 64-bit integers may not have been fast, but they were certainly possible.
Re:With those arguements, any platform can suck (Score:3, Insightful)
I understand the need at some places to keep running the old software, I've seen spectrophotometers that had to be connected to an OS/2 program, just because the software was only written for OS/2, but those cases you should either use virtualization, or treasure your old hardware.
Re:Long Answer? (Score:3, Insightful)
And this is different from OS X... how? Apple has no intention of abandoning Carbon, its old, hairy Win32 equivalent. And Cocoa itself is just a slightly cleaned up NeXTStep. So, it's not like Apple has these magical, shiny, new APIs either.
Re:Long Answer? (Score:3, Insightful)
No, he is saying that the argument is confused because it mixes up Win32 and
If you want to compare Windows and OS X as modern platforms, you need to compare the modern APIs, that is,
Re:Glory days are here (Score:2, Insightful)
It's no different. But do you really need it to be different or you are just a blind OOP fanatic ?
Describe the sin function. Why the hell should it need an instanced class ? Takes a number, spit a number everytime with the same logic. No different than the - operator.
I find the static class choice makes much more sense than instanced objects. OOP is a tool and a solution.. not THE solution everytime.
Re:Long Answer? (Score:3, Insightful)
It was same thing with processor architectures amd (x64) vs intel (IA-64). Intel's IA-64 (Iteron) is FAR superior architecture (256 GPR, register rename, register splitting, multiplexed operations, etc...) with no 8, 16 and 32-bit register functions for backwards compatibility. (Usage of emulator or additional 32bit core can be used to overcome this)
While x64 was just extension over IA-32 and current processors (Intel or amd x64) still have 8 and 16bit support functions (add ax, bx).
It happened because of you - users, who wanted to run your current (old) applications on new platform. Everyone loses, because we're using inferior architecture that supports 30year old applications. (yes, x64 is backwards compatible with 8088 processor which is asinine)
Re:Long Answer? (Score:5, Insightful)
Having to drop into Win32 to call some legacy thing that no-one should really be doing but which you have to do for backwards compatibility, that I could sort of understand. But having to drop into Win32 to call new features that have only just been added? Anyone saying "stop using Win32, just use
Re:how much MS bashing can you fit in? (Score:2, Insightful)
We had a script kiddy here who made a horrid tangled mess, hard pathing everything, including to a directory called "Not_Used_Anymore". He didn't know better.
The horrors of hard pathing are alive and well.
Hard pathing is just coding in a path into your source like any other constant. Sometimes it makes sense to do it (small personal batch script for instance) and some will always do it where they shouldn't (in something compiled or large).
I don't see it (Score:4, Insightful)
According to the article there are three types of developers: (I) the ones who bang Excel macros and Access databases together with VB (not very many), (II) in-house developers for large companies who program in whatever language is in demand (the vast majority), and (III) craftsmen-programmers who look for clean orthogonal programming tools and also program in their spare time (a few).
The article goes on to argue that Microsoft catered very well for categories (I) and (II), and not at all for category (III.)
Since I believe that the programmers who make stand-alone third-party applications mostly belong to category (II) I absolutely don't see how or why Microsoft supposedly "dropped the ball" for any developers except category (III). The article points to the messy API's of Win32 and the shadows that projects unto the .NET framework. Ok, fair enough, but who cares?
Not the end-users and not the managers. And they're the ones who determine where the money, and hence the bulk of the development effort goes. That means that what end-users actually see and care about, their _applications_ will continue to be in plentiful supply for MS-Windows.
Sorry, but the author will have to do a lot better to convince me that Microsoft shot itself in the foot as regards development effort. It's not the smartest thing that Microsoft could have done to alienate the craftsmen-programmers but I don't see how that puts a dent in their business.
Re:Long Answer? (Score:1, Insightful)
First off, you're obviously an MS basher (MS languages vs good languages? oh you mean C++?) Not sure what word you think MS went back on.
Past that..did you actually just suggest that MS scrap backward compatibility? Are you serious? Yes, the linux zealots would love that - they might actually have a chance at a desktop...because of the user revolt. I mean, you are suggesting that a company PISS OFF a good portion of it's base users. ROFL - so that's what linux needs to be on a level playing field? Weak, man, weak. That's a new approach...let's see...eliminate your base so we have a fair chance at the desktop. Please. Obviously you don't run a business.
One of the main reasons Windows is the way it is, is BECAUSE of the backward compatilibity requirement. If Linux actually HAD some desktop penetration, it too would have to cater to the businesses and people running 15 year old software that they can't seem to get rid of. But, alas, that's not much of a problem, is it?
Personally, I use whatever works - and it's alot easier to make money in the windows world. Say what you want, but if I'm going to write desktop software, I'll pick the desktop with the most users.
Your reply should be modded 'pandering'.
EK
Re:Long Answer? (Score:3, Insightful)
I think we could easily make that a litmus test for writing an article comparing the
If you can't figure out how to do basic form thread synchronization to allow worker threads to safely update your form's controls without claiming there's a flaw in the foundation class library, you are not qualified to write an article about
I won't even start on his biased slamming of enterprise systems development. It's clear that his knowledge of software engineering is limited to applications and he should just keep all other software engineering topics out of his mouth.
I'm sure Cocoa is an awesome enough development platform without needing this dumb ass to promote it through FUD and lies. I'd like to see him actually back up his claimed flaws in
Re:Long Answer? (Score:5, Insightful)
Well, there is a good reason why it's not valid: because it makes .NET developers give a damn about HWNDs, message pumps, and the interactions between the two.
Off the top of my head we have, for example:
Win32isms are abundant.
Let's just recap the argument, shall we?
1) Claim: Win32 is clunky and horrible
2) Response: Write in .NET
3) Claim: .NET can't do everything Win32 can do, forcing me to use Win32
4) Response: "your arguments [...] make no sense to me"
Look, if the argument is going to be "Don't use Win32, use .NET" then .NET has to do all the things that Win32 can do. So which is it?
Either I should be using .NET--in which case MS's failure to add new Win32 features to .NET is a problem--or I should be using Win32--in which case "use .NET" is not a suitable response to cited flaws with Win32. You can't have it both ways, so which is it to be?
Incredible... (Score:3, Insightful)
Moreover the way he drops in his little falsehoods borders on intent. Each and every paragraph contains one or more blatant falsehoods. Going through all of them would take way to much time.
Apparantly this Peter Bright's tried to build some winforms stuff (and failed) and he's tried to open a file (and failed somehow). These are his two major arguments against the platform.
Let's try to introduce some facts. First of all the winforms library is indeed not multithreaded. This goes for most windowing libraries. Swing is an example that springs to mind but there are many more. Making it totally thread safe would introduce a lot of overhead, making everything much slower than it needs to be. If you need to use additional threads, there are well documented ways to do this. Maybe Pater should try it... Second of all the winforms library is a very very small part of the total api. Just saying there's lot of little other things, without going into any detail is a cheap way of making a bad point. No API is perfect but I would say given the alternatives out there it's easily one of the cleanest and well thought out api's I've used in the last 6 years. Furthermore, it the author could get his head out of his nether regions he might look in to WPF, WCF, C# 3.0 etc etc. All technologies that put
This person comes across as a total beginner. You know the type, probably programmed some stuff in c++ and now thinks he's a guru on everything. In reality he's an armchair programmer, writing knee yerk articles because he coulnd't get his file to open. A lot of programmers (myself included) go through a phase like this, most move on and start seeing the bigger picture. I guess some don't and just write articles about it.
I know the average slashdotter probably won't care about an anti-microsoft hit-piece but if you're confident about using linux or mac-osx (both of which I think are perfect alternatives btw) ask yourself, why would you need lies and falsehood's to attack the 'competition'.
I live here. (Score:3, Insightful)
Make it buggy and as difficult as possible. That just gives me more work. I can always find a way to make my code work. Even if I have to write some assembly, or a port redirector. Call me a hacker - I don't care, that's a badge of honor.
If it were easy, anybody could do it. Keep it up Microsoft! You will keep me working and making a good wage for years to come. I like doing crossword puzzles too, and making things work on various Windows/Browsers/whatevers is just another puzzle people actually pay me to solve. It is all very cool. Just depends how you look at it.
Re:Long Answer? (Score:3, Insightful)