How Microsoft Dropped the Ball With Developers
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.'"
Read the article.
Short answer?
Windows!
"Flyin' in just a sweet place,
Never been known to fail..."
Good God how many re-run articles do we have to endure on Slashdot? This flamebait type of article is every 5 minutes.
Slashdot hates America, Religion and Microsoft. We get it already!
"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."
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.
Ad?
What is this "ad" of which you speak? Your words are strange to us, visitor.
"Flyin' in just a sweet place,
Never been known to fail..."
Having to deal with it everyday; now that's unpleasant.
Sig this!
Umm.. that sounds great.. wtf are you on about? I guess some people just prefer a moving target.
How we know is more important than what we know.
The culture of DOS programming was corrupted from the beginning and you can partly blame IBM for a crappy BIOS. Were it not for the crappy BIOS, programmers wouldn't have had to resort to writing directly to hardware to get an acceptable speed on the screen. And it just kept going on from there. And now when a developer wants more "something" from the OS than they can get naturally, they write VxDs to help gain an advantage.
The culture is all about writing code to get past deficiencies and shortcomings in DOS/Windows.
Windows programmers don't respect the rules... and if they do, they write what appears to be crappy software.
I make my own tools. I don't want for someone to make them for me.
Sounds like the cries of a 2nd year CS student at DeVry.
Comment removed based on user account deletion
and this has exactly what to do with MS? the coding habits of programmers has NOTHING to do with MS.
If you mod me down, I will become more powerful than you can imagine....
OS's come and go. You cannot be the top dog forever. You have to fail sometime. Maybe,just maybe, it's time for Microsoft. Does that make me a apple fan boy? NO. Does it mean that it's Mac OS's turn? Not nessicarily. People need to learn that. ---(this is my signature)
-- (this is a sig) My Computer Programming Forumhttp://www.programers.co.nr/
I'm sure his next article will be all about how his iPhone is the greatest phone ever made, and how AppleTV rocks, and how his Macbook Air is so thin he can fit it in an envelope. This hype and "grassroots" marketing shit, all promoted and paid for by Apple, gets boring VERY quickly.
I am 'this' close to jumping ship. I use Ubuntu on machines at home and find it fast and clean, even on older hardware.
.Net developer. I don't know that it is that much better on the other side of the fence frankly, at least as far of the coding environments go. But I KNOW for a fact that I prefer linux to Windows.
I have access to all MS software as our MSDN and Gold Certified Partner plan administrator. I have tried Vista on a couple machines. Even on a brand new Dell dual core laptop with 2 gigs of ram, it was sluggish and still could not use the full aero interface. Yet I installed Ubuntu on a 4 year old 600m with 512MB ram and got a full interface with snappy performance.
I don't need aero to develop code. The features I was most interested in all got cut from Vista... most notably the filesystem upgrades. Now add frequent updates to the framework that require $1200 software packages to use to the fullest extent. Then add the insane cost of a legit SQL Server license on which to deploy it. Plus as a domain admin, I find the administration to be a drag. And I still don't trust them for a second on security. It all adds up to a monumental drag.
I am a frustrated
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
Apparently the author never heard of vi and gcc on Linux...
Tired of being "punished" by the Slashdot $rtbl since 2002. I'm now over at http://soylentnews.org/ .
How Microsoft Dropped the Ball With... Developers Developers Developers *insert techno beat* Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers?
"He who can destroy a thing, controls a thing." --Paul Atreides, Dune
But Steve Ballmer made such a wonderfully eloquent speech about them he loves them.
I even found this video of it:
http://www.youtube.com/watch?v=KMU0tzLwhbE
i smell some bullshit here. the poster doesn't even touch on development. what a troll.
.Net is portable to *nix.
Microsoft has dropped the ball in a number of areas, particularly with regard to user-interface APIs which this article focuses mostly on, but in other ways it is far and away the easiest platform to develop for - mainly because of the quality of their development tools. Having done lots of development across Windows, Mac, and Linux with all kinds of editors, IDEs and debuggers, nothing comes close to Visual Studio in terms of functionality, quality, and just being solid. It's not perfect, but it's way better than anything else out there. For that reason alone Microsoft deserves some kudos from developers.
"how one developer migrated from Windows to OS X"
.NET
That pretty much says it all: "one developer"
The argument about old krufty code in Windows and the Win32 API has been around since.... the Win16 API! It didn't really seem to slow down Win32.
On the flip side is the argument that the need for backwards compatibility is holding back Windows - yet developers complain about the migration from XP to Vista?
All smells like we-will-find-anyway-to-condemn-Windows to me. Note: I do all of my development on LINUX, so I'm not a Windows booster. I think lots about Windows just stinks but there is an issue of credibility here.
If you want a clean new coherent API and you want to develop on Windows Microsoft has provided an option:
Using "Common Sense" is being either to arrogant or to ignorant to ask people who know more about something than you.
The False God of Backward Compatibility has Microsoft by the short hairs. Even new programming environments like .Net have Win32, Win16, and DOS lurking right around the corner. There's no fresh start anywhere in the Microsoft environment, everything reeks of DOS.
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.
Get off my lawn.
Developers!! Developers!! Developers!! Developers!! Developers!! Developers!!
(insert sweat stains here)
"Would you, could you, with a goat?" Dr Seuss
My standard requirement when doing Windows programming is that the API must have existed since Windows 95 and Windows NT 3.51. Once or twice I have used a particularly handy API that started with 95/NT4, but that's as "recent" as I've ever gone. A surprising number of my users are still on 95 (or its ugly sisters, 98 and ME). I find that it just isn't worth the effort to try to use some "new" API feature, even if compatability with old Windows flavors wasn't a concern.
He also seems to indicate that his company PAYS FOR ALL THE MSDN and TOOLS.
THATS what will kill M$, charging a GD bloody fortune for the compiler, docs, and tools. Its up to what now $3000 per year per seat.
And yeah, I purposely ignore the pirate copies and the 'educational institutional copies' because if you are a business, then you should pay. As a pro developer, I refuse to pay that kind of money to legally write windows apps.
They Live, We Sleep
Microsoft has real marketing and purchasing power.
Developers are not really needed if you just want
re package an acquisition and get it in a box year after year.
Microsofts real skill is to push an older product
they have total control over.
Or diminish the appeal of any emerging product.
Embrace and extend what you need, extinguish the rest.
Domestic spying is now "Benign Information Gathering"
When articles claim Microsoft dropped the ball I think it's more wishful thinking than anything, because Windows programmers are in their Enterprise glory days right now, no longer restricted to VB and half-assed object models. Not anymore. We now have full OO features and much much more, and Java is playing cathup feature-wise. It's nice for a change.
I don't care how messy Microsoft's underlying code is, as long as they've tested it and ensure it works enough for me to program against it. The Microsoft security updates help a lot too. They're very frequent which means there are a lot of security flaws but they take care of them quickly (I'm sure I will get numerous examples where they didn't take care of security quickly but if you're on Windows update you see them coming thought all the time).
The .NET library does work. It more or less has all the main pieces you need, but it's full of areas where you have to deal, directly or indirectly, with the obsolescent mediocrity of Win32.
Many years ago I read a book on developing VB COM components by a guy named Ted Pattison, who worked for the DevelopMentor training outfit at the time. I remember thinking, in other words, in order to develop these widgets in VB you have to be as knowledgeable and tenacious as a C++ COM developer... and then have to deal with rinky dink syntax and get (dis)respected like a VB developer! It was the worst of both worlds.
I guess that part hasn't changed much.
What exactly is this guy recommending? He trumpets Apple for overhauling their platform and releasing a rapid succession of new OSes in order to advance the platform, which retaining absolutely no backwards compatibility. Meanwhile, Microsoft releases new runtimes for it's existing platforms, not requiring the purchase of a new OS, meanwhile retaining nearly full legacy support. How many 10 year old applications can you run on a new Macintosh right now, without relying on third-party emulators? You can count them on no hands. However, you can run the majority of 10, 15 and 20 year old Windows applications on Windows Vista.
.NET is hobbled due to Win32 is just silly. He targets WinForms specifically, which, sure, is a wrapper around Win32. But to claim that you need to know Win32 to program WinForms is just ludicrous. It makes me think that he's never programmed for either platform. WinForms hides the details of Win32 a great deal, and it's very rare to ever have to rely on platform invoke calls. And if WinForms is such a problem, why not use Gtk#? Or WPF? .NET is not one monotonous entity, and there are several UI libraries.
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.
And compared to, well, Linux, it's a masterpiece. Linux tools (that c/c++ compiler) are, well, out of the 80s for sure. It's so backward it makes me feel like a, well, commie ruskie! Not that commie ruskies didn't do some good stuff (great ejection seat technology, for one), but I don't want to be made to feel like one.
Win32 API is not dshow and d3d and the other middleware crap with a god-awful black-box interface, the kind that might do well for those that can, well, memorize what to do but have no inkling of why they are doing it. Stick to the basics, and if you have decent tools, and a good head, and skill, and experience, well, it works.
Know one thing. Most programmers, aren't. I seem them all the time. I wouldn't trust them to run a lawn mower (but would let them cut mine, well, if they did it for free).
The problem is Microsoft's policy to keep compatibility with software made for DOS/Windows 3.11... In my opinion, they'll only be able (not that I think they'll do it properly) to really get rid of the old API and create a new one would be by abandoning binary compatibility, which they might do in the next version of Windows. Keeping 2 APIs (*cough* .NET, which also isn't a great deal) would also be redundant and would require lots of maintenance efforts, killing all old crap is the only way to go.
"I decided I could write something better than everything out there in two weeks. And I was right." - Linus Torvalds
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...
15 years ago, an essay or exposition written for a website would have been all on a single page that you scrolled through. Nowadays though, folks like you know that pumping adviews is FAR more important that ANY content or opinion that someone like you can offer. NOTHING says "Boy, I must really know what I'm talking about" like having to load a new page every couple of paragraphs.
Perhaps Peter Bright should jump back into the useless fuck circle-jerk with kdawson, Steve Gibson, Jack Thompson and Roland Piquepaille and leave those of us who want CONTENT alone.
on how many "developers developers developers" jokes are gonna pop up here? I say at least 10...
Windows has the most apps and coders. Therefore Windows also has the most crap apps and crap coders.
Get it?
Geez.
how one developer migrated from Windows to OS X
In other news, the number of OS X developers increased by 33.33% since 2007. Is 2008 the Year of OS X Development? More at 11!
You just got troll'd!
I'm not exactly what you'd call a hardcore developer (I make games, not Applications), nor am I in any way familiar with developing on Mac OS X, but this article definitely seemed pretty inconsistent.
.Net framework. Nothing new there, but it's main complaint is that it's meant to be a shiny, new API, but it's roots are still buried deep within the old API's of Win32.
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.
+1 IDisagreeSoHeMustBeATrollOrAnAstroturferOrAShill
Are you mad? The compiler itself is free with the platform (.NET Framework in its bin folder has programs called CSC and VBC. Run them sometime). The documentation is free to access. Visual Studio itself can be bought and paid for at anywhere between $500 and $1000 depending on the edition you want.
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".
For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
He only made two valid points: Windows is hindered by design decisions made 20+ years ago, and many of the APIs are inconsistent. The rest of his complains basically boil down to lazy developers, a problem not specific to any platform. Yawn.
I want to second this concept. Back in 1998, when I started a company of my own, I insisted that my partners and I purchase a $500 MSDN license so we could do current development on Microsoft platforms.
In 2004, when I joined a company that was well funded by venture capitalists, they required that I cost-justify the $2000 MSDN license cost. I argued that we were developing consumer applications and we needed the license.
In 2007, I can no longer justify $3500ish for MSDN. It just doesn't work anymore. They offer reduced versions of MSDN, each of which eliminates all the reasons why a person would subscribe to MSDN. They offer only 10 application installs for your $3500. They offer only a few OS installs. After you've installed a few, they stop letting you install more development copies and insist that you call them for more authorization. It just doesn't work anymore, and I'm sad because I really liked being able to develop code without artificial roadblocks in my path.
The ability to simply run your Java code under 32 and/or 64 bit versions of the VM without recompiling and without the silly 32/64 prefixes/suffixes attached to the API is simply priceless. Good job Sun.
No concept of what .NET really is, misleading users.
.NET/WPF is easy, transparent and has clear and easy paths for migration. (Let alone OS X is still a hybrid 64bit OS, using 32bit code throughout the OS, unlike Vista x64)
No mention or acknowledgement of WPF/WCF or the new APIs that are and 'set' to replace Win32/Win64
Completely misleads users about API concepts and features of OS X compared to Windows, for example XAML/XPS concepts compared to Display Postscript is a massive difference in display technologies that are part of the new Windows API sets, that Carbon or Cocoa cannot provide to developers. (Go to Channel 10 and watch videos on why XAML/XPS was created and how it trumps every aspect of other display/print technologies. - Let alone how it is an integrated aspect of the video API system in Vista, making programming freaky simple for advanced features and new UI platforms like 3D.)
The author then jumps into UI consistency with dialog wording, and doesn't mention OS Xs lack of keyboard support, consistency of delete/backspace or 100 other things more important than dialog wording which is also NOT PART of Win32 inherently.
Author doesn't realize Microsoft and IBM wrote most of the GUI and UI guidelines that OS X even uses today.
Office 2007 is a new direction in GUI paradigms, and is WELL accepted in the business world. Not something to make fun of when OS X is still using old MENU (textual word lists) concepts. Menus were a hack to make features available in a GUI context, but are a draw back to non-graphical UIs. Vista and Office 2007 moving away from word lists (MENUS) is the right direction, too bad Apple isn't innovating on UI and just keeps throwing the same UI slop at users and telling them it is good. (And don't even mention multi-touch UI, go watch the freaking TED conferences Apple ripped the ideas off from several years ago, let alone the MS multi-touch work that also preceded the TED conference. MS Research has and is doing more with UI than any other think tank in the world.)
Author also totally ignores Adobe not providing any 64bit support for OS X because Apple dropped the ball on Carbon x64bit support that has been promised forever from Apple. In contrast 64bit development on Windows in both Win32/Win64 and
So for 'real developers' like Adobe (OS X) is a failure, and has failed paths. Which means if you want a 64bit version of Adobe products, you will have to move to Windows for the peformance and benefits. Oh, how brilliant Apple and OS X is...
This brings up the horrid Carbon/Cocoa platforms and migration paths, and even then not even touching on the development tool constrast between the two platforms.
I challenge Mr. Bright to a real debate on the topics covered, maybe he can try to justify some of his misleading and outrageous claims.
The compiler, docs and tools are free. No, not the-business-buys-MSDN-free, completely 100% download it right now free. The completely functional optimizing commandline compilers for C++, C# and VB are freely downloadable. The IDE with most designer support and full debugger support is freely downloadable. The entire documentation set is available online, for free. You can use these free tools to write applications and then sell them.
http://www.microsoft.com/express/
Why is it that you think that MS tools cost $3000/seat/year? If you want the most expensive of all possible developer packages, then sure, it will cost some cash. But unless you're running a large enterprise and want to use MS's brand of application lifecycle management and source control, you DO NOT NEED to pay that.
And you've never, ever had to pay a cent to Microsoft to legally develop or deploy a commercial application on Windows. Stop spreading FUD you dumb fucking retard.
Huh? I can write beautiful, modern, OO code with Vim, GCC, and Qt.
"Apparently the author never heard of vi and gcc on Linux..."
Perhaps, but it's hard to improve on perfection.
*ducks*
I know a lot of vb guys were pissed over that. .net but others quit microsoft as an environment.
Some got over it and went on to
And i know some who are mad that microsoft charges them $1,000 for software but charges their competitors in china and india under $100. So they are looking for environments that cost the same in both locations.
She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
So Microsoft has jumped the shark, then... The question is "when was that"...
P has a fair question. I mean, I was a great programmer 15 years ago...
Has anything really changed?
Back before my current gig, I was a software developer for companies that hired me to do their work and for several packages I wrote for my own profit. This story comes from the programs I developed for my own profit.
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.
Necessity is the plea for every infringement of human freedom. It is the argument of tyrants; it is the creed of slaves.
You seem to forget there are express versions of Visual Studio that let you do most everything except enterprise level data access.
This is just so full of bullshit. First off, only 64-bit versions of Windows will refuse to load unsigned drivers.
Second of all the driver needs to be signed by the developer of the driver, not Microsoft.
Third of all, the DDK (now called the WDK) can be downloaded using the directions on this page (no pooch screwing necessary!)
Fourth of all, that Guttman diatribe has been refuted at least 5 times, yet it still comes up. For the love of all that's holy, stop trotting it out already. Find something actually researched and up to date!
For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
Developers x 7, Mushroom?
vi and gcc are tools more than techniques. I guess he's talking about design patterns and languages.
Article title should have read:
How Microsoft Dropped the Ball with Developers developers developers developers developers developers developers developers developers developers developers developers developers developers! Yes!
"Yo shawty, drop that Ballmer now!"
Ick, sorry, too much GTA...
sig sig sig siggy sig
If you are developing open source applications with Qt, then you can use the open source release. If you are writing a commercial application, then you have to purchase a license.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
it's kinda like LDAP, there's probably a windoze user around here that's used it.
Under the influence of Post-Cyberpunk Gonzo Journalism
One of the nice things from this article was actually this nice screenshot of a selection of current versions of MS software running on Vista. The thing to notice is that not a single one of those applications has a GUI the same as any of the others. There are different toolkits, completely different look and feel, some have menus, some don't; it's a horrible, horrible mess. And yet despite that, we still get people complaining about GNOME vs. KDE and the clash of different toolkits and how that's what is holding Linux back. You can run GNOME and KDE apps side by side and, while they'll have differences, they'll sit together far more elegantly than the mishmash that is Windows. I think I'll have bookmark that screenshot so I can bring it up the next time a Windows fanboy starts decrying the excessive number of GUI toolkits on Linux.
Craft Beer Programming T-shirts
Check out The Old New Thing. Raymond Chen's posts are a delight to read, if you've ever had to do something with win32 in the past. He's like the Überjanitor of Hell :)
I'm not big on the M$ love. I'm a mac/linux proponent. However, I think that M$'s current problem with a really horrible API (I'm saying this having programmed for win32, GTK, QT, WX, and Cocoa) isn't an easy to solve problem.
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.
You purposefully quoted the author out of context, deleting precisely the text surrounding it that makes sense of it. Before the sentences you quoted the article says:
Which means that we're about to read about how the terrible API design and general bad experience has bitten Microsoft itself. Then comes the sentences you quoted:
And after that:
Since you obviously missed the point, I'm explaining it to you:
Making bad decisions has bitten Microsoft too because if for example they were setting the API design straight, a lot of programs written using bad practices allowed by the badly designed API and that people depend on for every day work would break . Therefore they can't fix their mistakes. They are trapped in the same hole they dug.
That reminds me the OpenBSD experience some years ago, when they enforced heap protection mechanisms and many bad coded programs crashed. But OpenBSD can afford it, and actually benefited the rest of the open source users.
The best way to predict the future is to invent it
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.
Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
Because programmers are, you know, just leaving the Windows platform in droves! Because it's annoying to develop on!
(sarcasm off)
Windows has always been annoying to develop on; when you've got the lions share of the market, and the customers want "windows," that where most programmers are, annoying or not.
So maybe they "dropped the ball," I say they never had the ball to drop, and they don't give a crap because if you want to make money, you work on Windows.
Now... how is this different than last year, or the year before, or ten years ago?
Stupid sexy Flanders.
And I can build a road with just 1 shovel!
Who needs a steenking bulldozer?
That you can say that and be proud of it should cause your geek card to spontaneously catch on fire. I was an embedded systems engineer, and I tended to use a different development environment for each project; so I know nasty bug-ridden incomplete environments. That you can stick with an ugly environment like that is mind-boggling.
They ARE out to get you simply because They are in it for themselves and they don't care about you.
This idea that backwards compatability in Windows or any other OS has hurt its performance is likely ludicrous. Backwards compatability need not affect performance at all, especially of code using new APIs. Usually if there is an older API retained for backwards compatability, the code is often not entered unless some program actually uses that older API. Many OSs implement a backwards compatability with no impact on performance of newer APIs. It can be engineered so it does not effect performance and in fact it is the most logical way to do it.
Backwards compatability also can be important for useability, given that many users have older applications they need to run. One reason Windows has remained dominate is that users dont have to worry about whether a program will run, if it is for an older version of Windows. The inertia of the applications base of older versions is leveraged for newer versions.
Backwards compatability is overall a benefit, rather than a problem and improves useability of an OS.
I would almost think that this author is trying to sabatoge microsoft by eliminating its backwards compatability, something that would damage the OS and further alienate users even further and reduce Microsofts market share.
Your theories might be nice for hobbyists, but serious big businesses buy professional commercial tools. Back when I was a developer on Windows the MSDN license my company had was over $5,000 per seat per year. That sounds like a bargain to you when you only need 1 or 2 things out of it per year (besides the locally installable documentation, which should be free anyway)? Big business mostly buys Visual Studio.NET for its developers, which comes in various expensive flavors to get the even the most basic features. Then there's training for the constantly changing APIs, which easily costs businesses > $1000 per person per year.
Expensive commercial options are often not the best choice. But big business typically assumes the best choice for Windows development is Microsoft tools, which logically should be the case.
Developers: We can use your help.
The article is honestly so full of offensive stereotypes, meaningless generalizations, elitist self-centeredness, and unjustified conclusions that only a tried and true Windows hater could find anything in it to agree with at all. The CLR is reasonably sound, performance is reasonably good, C# is adequate... opinions that plenty of us high-level "conscientious" developers disagree with. Windows forms is heavily based on Win32? Wtf? Has he written any Windows forms applications? Oh... he means the underlying mechanics of the operating system shell continue to make themselves felt in the details of how threads are managed. The big thing that makes Windows a miserable platform is figuring out which thread to send an update to? Here's a clue, the point-oh-two percent of developers who ever have to give a flying fark about that will figure out how to make it work, just like they do on any platform. And he's bothered by OpenFile, even though he knows enough to use CreateFile? Here's another clue: when you have a hundred-plus million desktops using your stuff every day backward compatibility matters, and MS does a better job of it than anyone. Cliff notes: half-baked irrelevant rant.
"When you use undocumented API calls you're in the wrong".
... well, if you can. There are a few API calls documented which will allow you to write a few cute Windows programs but they will invariably be unable to compete with programs developed by MS. Why? Because you have no access to API calls. API functions that make your programs faster, or easier to use, or simply allow you to do something at all. Especially graphics and network code was notorious for being impossible to implement sensibly without resorting to functions that were available only when you dug through disassembled DLLs and guessed what was expected from you.
So far, so right. In theory.
In practice, though, let's look back into the world of Windows at its beginning. We're in the middle of the 90s, Win95 is fresh out the door and you're supposed to write for it... erh
So programmers faced the choice: Either write programs that cannot compete with programs written by MS (or companies that somehow got a hold of that information), or use calls where a few parameters are described as "set to NULL" or "unknown function".
MS has a history of releasing information about formats or calling parameters at trickling speed, at best. Anyone who ever wanted to get a hold on, say, the Office container format can vouch for that. It's not really a lot better for API documentation. Usually, you get it for a lot of money, if you are deemed "worthy" first of all.
Programmers don't let a company do that to them, though. They start figuring things out, reverse libraries and even existing program code to get the information they need. Of course, this results in the occasional mistake.
Jump into the present. The companies that created software back then don't exist anymore, blown up in the dot.com bubble. Their software, though, still exists. And companies now rely on this software. So MS has to maintain those "buggy" APIs, else companies running buggy software will refuse to upgrade.
Who is to blame? Basically, whoever decided that it's a smart idea to withhold the API documentation.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
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
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.
Users... the only thing keeping 1st level support from being the bottom feeders.
Apparently the author never heard of emacs and gcc on Linux... fixed it for you
IranAir Flight 655 never forget!
I programmed more or less exclusively for Windows platform in C/C++/JS etc. for more than 10 years, starting from early Win 3.1 days (and made a killing doing that.) Ditched it like 5 years ago for cross-platform toolkits and cannot be happier since then. .NET.
One of the most bothersome thing about Win platform is that every 3-5 years MSFT announced next best-thing-since-sliced-bred API and let the previous 'best' incarnation rot. Which forces everyone caught in this to spend a lot of time learning new ways to do old tricks. Take for example DDE-OLE-COM-ActiveX-.NET thingy.
I personally just found that this is insane drag on my productivity, since time spent on learning 'new' API is time not spent on solving domain problems, which is really bring food on the table.
Recall this when MSFT will start smearing
15 years ago, object oriented programming was still catching on, and the Pentium was brand-new. Computers were slow, people had about as much RAM as modern CPUs have cache. The Windows operating systems of the time were just starting to support 32-bit features. Pre-emptive multitasking was still 2 years away.
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.
Except that combination is not a shovel. I wouldn't use GCC/Vim, instead preferring an IDE like qdevelop, but Qt is the most productive way to do anything truly cross platform these days. Java lacks integration and requires a VM, .NET is not very cross platform and requires a VM as well, and scripting languages lack integration, performance, and features for large scale development.
Qt with C++ (or Java/Python/Ruby) is really the only choice left. For that I gladly pay the license fee for my proprietary development. I can't be bothered to use tools that I have to fight with.
The point he was making is that Microsoft is leaving the crap in, generation after generation, in order to placate the lousy programmers. Microsoft is, in effect, supporting those so-called "unsupported features", and indirectly encouraging their use.
Does it make you happy you're so strange?
You could call the BIOS interrupt function.
You could call the MSDOS Interrupt function.
You could detect the hardware and write directly to the hardware address.
Both the BIOS and DOS mechanisms were slow and broken and did not follow the conventions of any programming language. For example terminating strings with the $ symbol, FFS.
All commercial programs (and most hobbiest ones) wrote directly to hardware for speed.
DOS was not really an OS at all. It did very rudimentary memory management. About the only thing you'd really use DOS for was disk access and application launching, otherwise DOS applications were basically "bare metal" applications that managed just about everything (screen, keyboard, serial ports, mouse,...) internally.
Engineering is the art of compromise.
You just hit the nail on the head. The one major thing that shits me about MS development is the artificial roadblocks. If I need to chuck another dev box together for a new app we're building, the absolute last thing I want to worry about is making sure all the various licensing options for all the various bits of software are in order. I just want to install and go. What's so wrong with that? Can't I work out the money stuff later?
Perhaps the answer to the problem of teenagers dropping bricks from motorway and railway bridges is to sue Tetris.
" They don't give a crap because if you want to make money, you work on Windows"
I learned to live without money instead. It was less painfull.
Need Mercedes parts ?
You are not really saying OS/X is a better platform than windows, are you?
Copyright infringement is "piracy" in the same way DRM is "consumer rape"
Every mans' island needs an ocean; choose your ocean carefully.
This stuff with Microsoft won't alter my development platform choices:
"Sir, what platforms do you want your program to run on? There are three popular choices available: (1) Gnome, (2) KDE, (3) curses"
-- In the beginning was the WORD, and the WORD was UNSIGNED, and the main(){} was without form and void...
There is no way I believe this. I have set up a 1.5GB Gateway dual-core AMD-Mobile that was on sale for $700 on Thanksgiving 2006 and it runs Aero with no problems AT ALL.
I don't need aero to develop code. The features I was most interested in all got cut from Vista... most notably the filesystem upgrades.So you don't need Aero but whine about how slow your laptop was with it? Weird. And I wonder if you can tell me off the top of your head more than three things that you were looking forward to with WinFS that can't be done with NTFS. Fact is NTFS is a damn good file system that has never given me problems or lacked any features that I need, and I demand a lot more than your average user out there. You may be able to list off a bunch of features that some filesystem on Linux has that NTFS doesn't, but when is the last time you were working with NTFS and REALLY needed to do something that it couldn't?
Regarding the insane cost of SQL Server...what is the problem with paying for great software that you are going to use to make money?
No mention or acknowledgement of WPF/WCF or the new APIs that are and 'set' to replace Win32/Win64 OK, how may Microsoft applications use WPF/WCF ? Completely misleads users about API concepts and features of OS X compared to Windows, for example XAML/XPS concepts compared to Display Postscript is a massive difference Mac OS X's low level graphics APIs are called Quartz and OpenGL. Quartz is effectively Display PDF. Display Postscript sadly died in Apple's hands. in display technologies that are part of the new Windows API sets, that Carbon or Cocoa cannot provide to developers. (Go to Channel 10 and watch videos on why XAML/XPS was created and how it trumps every aspect of other display/print technologies. - Let alone how it is an integrated aspect of the video API system in Vista, making programming freaky simple for advanced features and new UI platforms like 3D.) Take a look at Core Image, Core Animation, and Quartz Composer, and even venerable Quicktime to see where MS got the ideas they imitated badly. Then look into Interface Builder nib files which have provided more than XAML capabilities (on the desk top) since October 1988. It took MS 20 years to copy that one.
The author then jumps into UI consistency with dialog wording, and doesn't mention OS Xs lack of keyboard support, consistency of delete/backspace or 100 other things more important than dialog wording which is also NOT PART of Win32 inherently. Author doesn't realize Microsoft and IBM wrote most of the GUI and UI guidelines that OS X even uses today. Did you notice that Windows 95 GUI was a rip-off of the NeXTstep GUI but copied poorly. You have your history wrong.
I'll ignore the rest of the nonsense. Suffice it to say that OS X runs 32 bit and 64 bit applications side by side. How does that work in 4 bit Windows?
Check out the free versions of Microsoft's development tools sometime, called Visual Studio Express editions. AFAIK, they can be used by enterprise developers for free as well, check out the license. I guess, it's because they're supposed to be "appetizers" for "the real things". But they work quite well, if you don't demand too much.
.NET development include Eclipse, and others.
The Windows SDK is also a free download, containing the full OS documentation, build environments and samples.
IMNSHO, that's just a non-issue to claim that development for Windows would be expensive.
Besides, there are other good, free development tools for Windows, like Watcom C/C++ (which is BTW the only compiler natively supporting DOS, Win 3.1, Win32, OS/2, and NLM development, with Linux support planned LTIC).
Free IDEs for
>In 2007, I can no longer justify $3500ish for MSDN.
I couldn't agree more. I subscribed to the International level of MSDN (got all the foreign flavors of Windows for I18N/L10N testing) from about 1996 to about 2001. The last release OS I got through MSDN was Windows 2000. I haven't missed it since. I still have the July 2001 documentation installed on my computer, which is fine for my needs. I rarely use an API that hasn't existed since 95/NT3.51.
I've been using Microsoft Technologies for 9 years now. When C# was first released, I was really impressed. The structure of the namespace was very intuitive and C# seemed pretty slick. Seemed is the key word here. Sure, you can develop very sophisticated large-scale applications utilizing the .NET framework, but combining with the various other technologies such as ASP.NET makes it very tedious indeed.
.NET Framework itself. The only solution? A lot of computing power costing a considerable amount of more money than a nice clean Open Source Software Solution (e.g. Perl).
.NET Framework. People do it all the time, but I agree with the author... it is not fun at all. Anyone who has dealt with an ASP.NET Stack Trace will attest to this horror story. Not to mention the various other weird bugs that plague the framework... leaving only the MS Team to get back to you in regards or bang your head against the wall trying to find a work-around.
.NET Framework.
If you are coming from a Perl background, you will die in horror as you see your resources being absolutely demolished not only by the OS but by the
I have developed for various organizations, and I must say that yes, it is possible developing enterprise applications utilizing the
Not to mention the MSDN website feels like sifting through a dump looking for a precious gift accidentally thrown out, or going dumpster diving.
Please note that I am not a Perl programmer and was anti-FOSS until I started programming for the
Most LDAP implementations are a poor, poor imitator of either AD or NDS. In fact most LDAP is only a step better than NIS+.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
Why use VI when stdin works just as well?
.Net supporting so many languages is really great.
.Net, the power is really all in the libraries - which are really all written with .Net in mind, and are uncomfortable to use in other languages and not written to take advantage of language features.
.Net to actually support all the features of the languages it claimed to fully embrace. C++ used to be a subset (not sure if that's still true though I don't think it is). Functional languages like Ruby could be done, but were cumbersome and so along came DLR as an extension to make functional programming more practical with the .Net runtime backend. But taht's still a work in progress to - today on Windows you'd be better off using JRuby (Ruby running in a Java VM) than IronRuby!
.Net is really still much more for .Net than anything else, and the platform encourages users who might stray to other languages to come back to .Net.
However, the thing is that in something like
Now on top of that, it took a long time for
So in the end...
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Sorry, it wasn't a troll actually. I distracted myself on a rant.
I do write Asp.Net and Windows Forms applications against SQL. My company consults for many of the states and the federal government. We are a Windows shop, but many of the Windows devs ARE frustrated with Windows and the pain in makes development and maintenance in general.
I have not done any Java or C in 10 years... it's been all Microsoft platform development. But they ARE making it a royal pain to do things. It starts at the Windows platform and it pollutes the development experience. Because of that combined with what I perceive to be a solid and fully functional environment in linux (I've tried it various times over the years... used to love BeOS) I am finally considering changing platforms entirely.
Sorry if they get off track, but to me they are intertwined due to the nature of my job, which is both software development and systems architecture and deployment.
Man, have I ever run into this a few times. I do tech support for a nameless company and recently I've actually had customers directed to me a few times to 'reinstall OS files' that are keeping things from working.
Lo and behold after a few minutes of research, I find out that they are looking for WinXP files... on Windows Vista and 'that's why you need to 'fix' the files' even though, yes, your USB port were actually there and functional. Sorry, go back to the Printer manufacturer tech that tried to pawn you off on me.
So, yeah, it really sounds like people aren't actually writing for Windows NT, XP and Vista, they are just sorta-kinda writing for Windows and hoping no one checks their code for compatibility.
No! It's a *SIG*. Keep the Special Interest Groups away! (Con joke!)
Point. The only way to get locally installable documentation is in fact either to buy Visual Studio, or get an MSDN Library subscription (which for the price I actually would expect printed documentation).
From your $5000 price tag, it sounds like you're using Visual Studio Team System. Now, strictly speaking, I can't imagine why you'd do that. Actually, to be honest I think Team System sucks because the only feature over Professional edition is SourceSafe, which SUCKS. HARD. (Though it appears they recently removed Office from Professional Edition. Balls).
To be perfectly honest, even large corporates only ever need VS Professional (with MSDN Professional, if they feel like it) - that'll set you back $1,200. Not exactly great, but better than $5,000. If you really must have MSDN Premium, then it's $2,500. However if you're considering Team System, don't waste the cash. Use some other SCM solution (Surround, CVS, SVN, ClearCase even!)
And just a note, renewals are cheaper than original buy. And no renewal is above $3,500.
For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
While it's a royal pain, you can call Microsoft to activate and they will let you do so. The whole ten minute process really makes me want a work experience kid, though.
OK, how may Microsoft applications use WPF/WCF ?
.NET 3.0 applicaitons here, and you are off track.
Several... Should we start with things like Silverlight, or go into the whole WDDM model of Vista that uses XAML from the composer to printing? You are trying to confuse
Mac OS X's low level graphics APIs are called Quartz and OpenGL. Quartz is effectively Display PDF. Display Postscript sadly died in Apple's hands.
Ok, OpenGL is not Apple's any more than it is Microsoft's.
Display PDF is equivalent to GDI+ from Windows 2000, go look it up. Additionally, Apple's implementation of Display PDF even lacks the full specification, which is sadly dated anyway.
In terms of Alpha, transparency, layering, etc, Display PDF ends up rendering to a bitmap on complex drawings instead of being able to natively draw them using the language of Display PDF.
Go to Channel10, and watch the video of WHY XAML/XPS was developed, how it was created to specifically overcome the limitations and conceptual drawing limitations of Display PDF and Full PDF. (This is why Printing Press companies are starting to use XPS, because it can reproduce images at higher quality without having to full rasterize the image as many do now. i.e. A lot of PDF printing is rasterized and is nothing but a container for the bitmap because PDF cannot do the advanced drawing.)
Take a look at Core Image, Core Animation, and Quartz Composer, and even venerable Quicktime to see where MS got the ideas they imitated badly. Then look into Interface Builder nib files which have provided more than XAML capabilities (on the desk top) since October 1988. It took MS 20 years to copy that one.
First Apple's 'Core' crap is nothing like the new API features or architectual changes in Vista. Core is more about using SSE from the CPU and offers very little new features.
You also need to get out of 'fanboi' mode and check your timelines here a bit. You are trying to compare XML document structures with XAML that uses a XML structure. However, how XAML is stored is irrelevant, it is how it processes graphics, allows for advanced drawing capabilities, internal binding, animation properties, and 3D drawing - in addition to providing a new UI paradigm of control contexts. (Again you really don't know what you are talking about here.)
When you can take a text editor and write 10 lines of XML and create a 3D scene with a movie and UI controls on OS X get back to me, until then, Microsoft has set the stage for the next generation of development, especially when it comes to graphic designers becoming part of the design process.
Did you notice that Windows 95 GUI was a rip-off of the NeXTstep GUI but copied poorly. You have your history wrong.
Actually it wasn't, although many GUIs from this time frame shared a lot of ideas. Win95 was a small subset of Microsoft's development of the OS/2 Object based UI that goes back to 1987/1988.
But when I was talking about IBM and Microsoft writing UI guidelines, I was specifically talking about UI specifications and standardized UI guidelines that defined an era of UI for OSes. Go back and look at the UI guideline papers from OS/2 written by IBM and Microsoft in the 80s, and how even Windows stuck to a version of Common UI guidelines. Additionally, as Apple struggled to implement keyboard support, they took from these Common UI guildelines as well.
You are either too young to know this stuff or just too much of a Mac OMG person to even consider Apple didn't invent everything.
I'll ignore the rest of the nonsense. Suffice it to say that OS X runs 32 bit and 64 bit applications side by side. How does that work in 4 bit Windows?
Perfectly, in fact running Vista x64 on this 2005 laptop, and all my 32bit applications run fine, especially my games that get a punch up in performance because Vista has real x64 bit support and REAL 64bit Video drivers, unlike OS X.
Do you really think Vista x64 bit can't run 32bit applications? Are you that out of touch? Holy crap...
I know they changed MSDN recently, so you might check back. I got the Visual Studio Professional bundled with MSDN Professional for $1200. If you want the Premium, then that's $2k but there is a lot of stuff there I just didn't really need that 180 day trial doesn't do just fine (read Expressions, Groove, etc).
I can only say the featured article appears half-baked to me, and it's comical how Apple users always bring up GUI design issues, as if that was the most important thing in the world.
.NET flaws, when in fact the flaws are much bigger, and the short examples only give the impression that he has looked at them briefly at best. No mention of the GetFileSizeEx() function, for instance. The old GetFileSize() API was for NT 4 and Windows 95 and previous OSes (note how the older OSes have already been dropped from the platform compatibility list). GetFileSizeEx() API was new for Windows 2000, which is already over 8 years old.
.NET and Win32 in that article are true. The .NET framework has (or rather, had, because we're talking .NET Framework 3.5 now) some very weak concepts. Also, the documentation team is far behind with the documentation; there's a lot to be left desired in that area. The Win32 API is much better documented still. If you develop your own controls, you might run into problems with .NET, because native timers and carets are not directly supported, for instance (Win32 API calls are required for that).
;-)
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, 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.
There were more details of poor programming practices in the summary than there are in most other articles. Inconsistent interfaces are not such a big deal but memory management that does not work, bugs and broken APIs are a big deal. Ars provides good stuff like that.
No calls now, I'm
One doesn't need to know anything about the discussed subject to know the article is not objective.
Broad sweeping statements without any justification/explanation/examples.
Every time I see that video I want to press the "Report a Problem" button next to it.
...by the crapware "enterprise" software industry that has succeeded mostly in just taking money from companies and giving them products that badly replicate where Lotus was 20 years ago. By itself, that would just be those companies' problems, but in the end other users and developers get held hostage by that same crapware because new versions of Windows have to keep supporting it.
All's true that is mistrusted
Backwards compatibility is okay if you do it right.
The problem is that Microsoft didn't do it right.
Read the VB horror stories. There is no backward compatibility. It's a myth.
Every Windows version is incompatible with the one before it. Every time there is a Windows version upgrade, you have to upgrade your applications, and usually your hardware, too. If by chance something works across an upgrade, it's only because the developers worked furiously behind the scenes to make it so, or it's some kind of crazy miracle.
Most users have no idea what kind of crazy shit developers go through to make their code look good on Windows. It's a shocking waste.
I agree, $3500 is insane for MSDN (I cap its value at $2,000), and I think the Premium Uber MSDN with Team System costs like $11,000. And the Express editions of Studio just don't cut it for a lot of people; no source control or unit testing, etc. Still, there's a middle ground:
Microsoft Certified Partners are entitled to a certain number of MSDN subscriptions and/or Visual Studio copies, depending on their partner level. Even as just a Registered Partner (anyone can get this simply by signing up for free), there's something called an Action Pack, I think, that includes enough licenses to get a small business running - server OS, SQL Server, etc. The Action Pack costs either $200 or $400, and I'm too lazy to verify that but here's the link if you're still interested:
http://partner.microsoft.com/
Getting Certified Partner status isn't a big hurdle; get some customer references and prove certain technologies are within your scope and you're well on your way.
*sniff*
I can imagine the huge fight someone at Microsoft must have put up to get them to make the default installation directory, "Program Files".
"Over my dead body! We can't do that, it's madness, it will break all the existing apps that don't allow spaces in the file path!"
"Yes, exactly! That's why we need to do it! In the future we won't have to dance around all their shitty code!"
If you want to make money you work in Windows?? LOL! Hate to tell you this pal but I've been a web developer since I was at Amazon in 95 and I have never once stepped foot onto a Microsoft platform. And I have 3-4 times the output and twice the pay. :)
This is my sig. There are many like it but this one is mine.
It seems to me that there's a more prominent move towards cross-platform compatibility. From Microsoft's perspective, this is a dropped-ball, because it lowers the barrier to shifting platform.
The point to Team System, such as it is, is that all of the other tools that you need to do development on a medium to large project are part of the same suite and designed for interoperability above all else. Not just source control, but also automated builds, defect tracking, feature tracking, automated testing, database versioning, etc.
You definitely can find a better free tool for almost all those things than Team System's version of them; for example, NUnit for your unit testing vs. Team System's unit testing. I seriously can't say enough good things about how nice it is to have all those things integrated. It's easy to pull up a bug and see which build it broke in and which build it was fixed in. Being able to do code reviews from within your IDE with all the power and functionality that gives you vs. doing them with a tool like Crucible (which, yes, in pretty much every way but smooth integration with Visual Studio is superior) is just so much better.
Granted, it's not cheap, and I wouldn't seriously recommend it to more than a small fraction of my clients. For most shops it makes more sense to put together the Frankenstein monster of a dozen different tools that don't play nice with the IDE or each other but are individually stronger tools, even if it means that, hey, developer A spends a third of his time being the poor man's Subversion admin. If you've got a sizeable enough shop of developers who work in Visual Studio, though, it really does pay for itself in saved time. I wish I worked in a shop like that more than occasionally.
"a smart idea to withhold the API documentation."
Microsoft doesn't withhold documentation. They just don't bother writing it in the first place.
When they are forced to provide documentation, they have to sit down and write it!
Their specifications look like they were written by 10000 people in one hour because they just don't see the worth of spending any time on documentation.
Way back in my Windows 3.1 development days, I found Windows bugs that I was only able to work around after consulting with a Microsoft developer that my boss knew from his stint at Microsoft. I learned a bunch of stuff about Windows 3.1 that was not documented anywhere.
I used Qt for a number of years for a former employer, but for UI work, I switched to FOX toolkit (www.fox-toolkit.org). In my opinion, the messaging system is **much** cleaner and more straightforward than Qt, and no more trouble dealing with moc. Might not feel quite as polished, but has a strong base of engineering and scientific users.
In reverse order,
Apologies for the poor link, I will make sure to lash my fact checkers harshly.
I am delighted to see the DDK/WDK available gain. I'd known it'd become availabe again, but I have not inspected the new all important terms of service / eula. Wish me luck signing up for a WDK!
The most important issue, regarding drivers: my understanding is that developers need a certified key from microsoft to sign their own drivers. For example, Microsoft decided Atsiv was not authorized software and terminated the Atsiv developer key. To the best of my limited understanding, this has made it no longer possible to install the driver. Whether its Microsoft that signs the driver or Microsoft that signs the key that the developer uses to sign the driver makes only a modicrum of difference, my imperfect understanding is that MS now holds the key to what we can and cannot develop and install on system.
And my mistake on not clearly citing that my post was in regards to Vista 64.
Visual Studio 2008 beats the crap out of Eclipse, when dealing with C++. If you disagree, please clarify, because maybe I'm just missing something with Eclipse... but on my computer it feels slower than VS and doesn't feel as nice as VS for C++ programming.
(I have a free copy of VS so no real incentive to use Eclipse. But even back when all I had was the gimped express editions, I had difficulty finding a reason to use Eclipse).
program .NET. He probably doesn't know how to program OS/X any better, but he feels better. And, for Mac fanboys, it's all about the feelings.
The author, I think, really seems to be lashing out at a bunch of random stuff, and being absolutely and totally wrong in many cases.
.NET), and subsequently generated a small cottage industry of clones? Many of varying quality, and often hard to integrate into the general Windows framework (mainly due to undocumented calls).
However, there was one shining gem at the end of the article. He goes on to talk about the lack of UI controls that are exported from "standard" Windows apps like Office to developers.
I think this is a general problem Microsoft has always had-- how many times have they introduced a new menubar or widget, not released this to any development environment (be it C++, VB, or
This is where Apple seems to really come through-- rather than hide their new innovations (such as CoreGraphics, CoreData, etc), they immediately share them so that people who develop Mac applications have a much bigger common base of tools to work with. Why hide away the stuff that makes better [insert your system of choice here] programs?
In a way, Apple may actually be aiming for the simple, journeyman programmer that the author describes. They're more likely to use what's at hand-- you can make your iTunes clone without having to purchase nary a widget or toolkit!
One of the problems with windows is that you have something that is both static and something that moves. For example the .Net framework moved, but you still need to know the win32 API. This is something of the point of the article: Do one or the other and since the older stuff sucks, actually implement the new stuff properly.
meh
When you say NDS do you mean novell directory server or netscape directory server? What do you mean by LDAP implementations? Do you mean LDAP APIs, LDAP servers, bindings for domain credential management?
... In my view this is the single biggest mistake preventing wide spread adoption of Linux in the areas I care about.
LDAP API implementations (RFC 1823) predate AD.
Anyway if MS really cares about the preceptions of their APIs being dense and difficult to work with they would break their mad insistance on hungarian notation. More than anything else that is what pisses me off the most about the windows API.
Having said that at least windows has an extensivly documented API that continues to work across a wide range of windows versions spanning close to two decades.
The linux answer is always the same "recompile"
most AD implementations are
Network (y/n)
email (y/n)
drive access (y/n)
the next biggest feature is software that makes single signon workable.
anyways it was just a joke
Under the influence of Post-Cyberpunk Gonzo Journalism
To make it more amusing those third party APIs slog through the win32 API hell so you don't have to.
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?
That said, taking on a maintenance task too herculean for anybody else is why Microsoft still makes the big bucks. Its also why Wine is a failure.
That's what Microsoft claims. It's taken what, 10 years just to get .Net 1.0 for Linux? Fuck that. This time-frame alone suggests it's not portable. Hell - ANYTHING can be ported in the span of 10 years. The relevant question is "To what reasonable degree is it portable"? I think "not" is a valid answer here.
how is babby formed?
If you can develop on older versions of linux with no problems why do you need the latest and greatest from microsoft? that simply does not make any sense.
Programmers were forced to take advantage of undocumented API calls in order to compete with the applications MS produced which used those. Also, a lot of API calls were not documented well enough such that the behavior was not questioned by the programmer and so the broken behavior was relied upon to make the application work.
Twinstiq, game news
1. Dog food. Is Office 2007 written in .NET?
2. You choose an easy target with OSX. Jobs freely admits to ignoring the business market, your issues do not matter to them.
3. You talk about 'UI consistency', and then you talk about how Office, and Only Office, has this new GUI. What about the rest of Windows? Does it have this new GUI? Where is the consistency?
4. How come Microsoft, with all their high-powerd thinking, can't retire an 8-year old operating system? Why is the market forcing them to continue to sell XP?
Indeed. After looking at the options in MSDN, the only really practical one (price wise) was the VS.Net (~$1000).
My problem with this is that particular subscription should be given away for free. Do something concrete to encourage development on windows.
meh
> Yes, even HAVING undocumented API's is bad as well. Like I said, I was not excusing the mess that is Win32, I was just sayin'...
NO! He did NOT say they use undocumented APIs! He said that the *official* APIs have undocumented gotchas and quirks. That's NOT the same thing at all!
For example, I seem to recall that Vista has some undocumented extras for any application named setup.exe. Now imagine that, but in the API, perhaps if CreateProcess() was doing weird stuff to your application's memory just because you passed certain, specific values that happened to be the same as a crazy legacy application. That's exactly the sort of stuff that can cause problems at the worst possible time.
"How Microsoft Threw The Chair at Developers"
Rather than developing in the abomination that is Objective-C and OSX with the tools provided (I've done it, I'd rather slit my own throat), I'm fairly sure ideology aside most "developers" would prefer Visual Studio + .NET.
.NET is a great feature filled platform (and there are very few bugs for a platform that size).
If you've used VS2008 + C# 3.0, you'll know it's a dream compared to whats available on other platforms right now in terms of quickly and easy building software. Sure, it's not the be all and end all (there are things GCC and C++ are better for, like performance and low level code), but C# 3.0 is a fantastic language and
Are you friggin kidding me? Of all the stuff that Microsoft makes a mess of he picks on .Net? Has he never used the date libraries in Java or tried to hook up an event handler? I recently tried to administer a SharePoint server and completely understand why people hate Microsoft, but .Net is one the Microsoft products that is atypical in that it does everything correctly. It's open source and open standard. This guy is an idiot. Move along.
"Your theories might be nice for hobbyists, but serious big businesses buy professional commercial tools"
Yeah and they REALLY ENJOY doing that.
Need Mercedes parts ?
You are right, this guy has been drinking way too much of the kool-aid.
The article mentions developers changing little in 15 years, and sadly this is a huge problem (on any platform). It's unclear that developers would have smartened up, even *if* Microsoft gave them a well-needed kick in the butt to enter the 21st century.
Consider the Mac. Programmers using the Carbon API have been crying for many weeks about the idea of having to learn something new (Cocoa). Rather than see it as an important jump for their professional development, or an opportunity to clean up their code bases, a lot of these developers are sitting still and turning blue (if public mailing lists are any measure).
I wish I knew more developers interested in keeping things moving. Many are conservative, and this *kills* projects in the long term.
Part of it may be from incredibly short-sighted managers, relying on buzzwords like "customer focus" to plan exclusively around new features from "users". Then of course there's no time left for developers: no time frame set aside to gut a couple of modules so that things remain manageable, and probably not enough time to write tests! In that situation, maybe most programmers would develop a fear of change.
But that time has passed. These inexperienced programmers have to be cut down by their peers and just told to grow up, in my opinion. If you are a software professional, you have to have the attitude of building the best application you can. And this requires change.
"Microsoft killed my company, I hold a personal grudge. I don't use Microsoft products and neither should you."-JWZ
I think you're the troll. You are probably one of those mindless ms fanboi's who lives in your small ms world surrounded by ms fanboi's cuddling up to your Ball-mer doll every night.
.NET 3.0 for 2+ years, and although it's adequate, it's nothing to write home about, badly documented, slow, and over-engineered. And the windows 'environment' sucks totally - it falls far short of a 'development environment', and an ide - no matter how good it is - isn't enough. What a slow, buggy, annoying and limiting desktop experience. It's a total joke. Without cygwin and virtuawin making it the slightest bit bearable i'd never get any work done, i'd be too busy finding stupid little apps to help me do work that just come with linux.
I've been using
I'd much rather any linux any day.
We get to hear musing on the state of operating system APIs from a University student without any experience as an actual developer? CmdrTaco must have been drinking.
It actually sounds like the author spent too much time doing DOS and Win32 programming and hasn't woken up to the, actualy refreshing, .NET paradigm.
Sure dude whatever.
.net was portable, just the CLR. And, for the record, the first reference implementation of the CLR -- Rotor -- was cross platform to BSD. Mono came along of its own volition and works independently of MS, and MS has never made any claims on their behalf. Mono has had very good 2.0 compliance for going on three now. Library support is excellent but not perfect, which makes sense given that the .Net library is a massive all encompassing + the kitchen sink beast and there will always be pieces no one has ported. That wont prevent 99.99% of apps from working.
First off, Microsoft never claimed
Rather than FUD'ing around, I suggest downloading the Moma tool and which will check whether an application is compatible with Mono.
Mono supported the DLR by day five after release or something. C# 3.0 support is on the way, and, to my understanding, most of the pending work is still in LINQ re-implementation world. Given that it was released November 19, 2007 and that it requires implementing a huge AST, I wouldnt complain.
At its base, the CLR is a wonderful VM to implement and write to. The libraries built on CLR are give or take. For the most part, I prefer the non MS ones anyways.
From their perspective... their perspective is they can put out crap because more users, and therefore more developers, use Windows.
I haven't had to program anything but some simple scripts in Windows for about five years, but we're the exceptions to the rule.
Stupid sexy Flanders.
What we're seeing, of course, is the migration of GUIs to browsers. The browser interface isn't very powerful, but it works well enough for most enterprise apps. After all, in most enterprise applications, the real work is being done in the back end, near the database.
The last time I wrote a real GUI application, it was for QNX, where we needed a control panel for a real time system. Anything that looks like a business app I do with a browser in the front. It just isn't worth the effort to deal with the Windows API any more unless you're building something really elaborate.
In the game community, the trend is towards using Flash for the 2D portions of the GUI. This separates the graphical design from the implementation, and there are good authoring tools for Flash. If you need a "pretty" GUI, and have the artistic talent on tap, that's the way to go.
Novell Directory Service, aka eDirectory. Yes I know that the LDAP API predates AD, heck it predates NDS which in 1993 was one of the first implementations of LDAPv2. I meant the whole package, from the multimaster replication to the object model and hierarchy. Sure because of the way LDAP works you could cram an AD or NDS implementation into another LDAP server, but that doesn't change the fact that they are both really good implementations of LDAP with well thought out schema's and a lot of stuff that goes beyond simple LDAP. They also have their drawbacks like the idea of using a binary blob to encode the terminal server attributes in AD.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
I just checked on the Atsiv issue there. Microsoft did not revoke the Atsiv certificate, they bludgeoned Verisign into doing so. Microsoft also maintains a revocation list of "blacklisted" SPCs in the kernel itself, which only applies to Kernel Mode drivers. Ordinary drivers don't seem to have a revocation method.
They also added Atsiv to Windows Defender as a malware utility, so it up and removed it from client PCs.
In no case do you actually need Microsoft to do anything - you sign your own driver with your own certificate which you bought independently from any of these companies.
For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
As one of the few Windows sysadmins (and happily so), to see so many /.ers defending Microsoft on .NET.
:)
And here I thought I was going to have to dig out other posts, but it's been done for me.
Kudos to the posters then... less biased than I give credit for
The price is always right if someone else is paying.
If I'd ever pick up on MacOS X programming, it would be for that reason. The libraries are really comprehensive. I hate XCode, but perhaps I can get other tools like Eclipse or something that could make this whole thing worthwhile. (And I'd need a more recent Mac, I only have a used old PowerPC box, which runs OpenBSD now; very stably so, btw)
However, Apple is major cash-cow business, they know how to sell new computers
I'd have been more impressed if his argument, when distilled down, wasn't "Apple has Passion and Apple fanboys have Passion. And Passion Is Good. And therefore any company that doesn't kowtow to people with Passion must by definition, suck."
There comes a time when an OS maker has to make crucial changes to the platform with long-term advantages that disappoint a considerable number of developers in the interim. Apple has shown that it has the guts to pull this on its devs, and frankly, the devs who are bringing the most to the platform had a better chance of seeing this coming.
Carbon was a rickety bridge from a doomed platform to momentary safety, and that bridge is just now starting to crumble. Stragglers (such as Adobe, with its huge, teetering code base) were inevitable. But Apple cannot afford stragglers anymore. It could back when OS X came out, in fact it had to. But not anymore.
And you know what? It's been a few Moore cycles since Carbon came out. An average Carbon-based app could probably benefit from a rewrite. Including Adobe's products, which it's hinted at doing for quite a while.
As someone who had to learn C++/CLI and writes code to allow legacy code to interop with C# at work, I have this to say.
.NET:
If you are going to learn a new platform for a "modern" app or OS, then let it be one that allows you to target more than one platform. Seriously. Lets take a look at
- Everything in the library is new.
- You can only officially target one platform. (Mono not withstanding)
- You have to learn a new language to use it effectively.
Now look at Qt:
- New library
- Build onto same C++ compiler you've always used
- No messy COM, COM wrappers needed for introspection
- You can target any platform with a modern C++ compiler (VS6 and higher on win32, gcc on all platforms)
- Ground up C++, clean consistent API.
- Active development with binary compatibility within major releases.
- Python, ECMA scripting, (some C# support too!)
- Java version
- Meta-object compiler adds introspection. (no need to deal with COM)
- ActiveX interop in the commercial version (You can use Qt widgets in Winforms and vice-versa)
I don't know as much about GNOME, but it shares a lot with Qt, so should not be excluded.
About the only thing you miss out on is the automatic garbage collector. Qt emulates this to some degree by allowing every QObject to have a parent. Then the only thing missing is the ability to defragment memory in the heap. I've only heard about this being caused by lots of small memory allocations, but Qt block allocates so this isn't a problem. Also, many types are implicitly shared, meaning they are more like handles to the objects, meaning that 1) they can cross thread boundaries 2) they are references until they are modified.
All in all I see you only lose out on the memory defrag. But you don't need to learn C++/CLI or C#. (My opinion of C# is that if you're going to go that far, you might as well take the goals of the language to completion, in which case you end up with Python, oh yeah, there is a Python wrapper for Qt too)
Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
Ahm, this is obviously the same kid that wrote the first part, I'd say he probably never got beyond what they've taught him in college (not much I suppose) - he claims developers are still writing directly to win32 api.
.NET.
.NET is insufficient. It is the best strongly typed framework, its C# is java 2.0, you can even fuse machine code(x86) into the same binary with C++\CLI and get flexibility and raw power of C++ to do just anything.
.net languages like linq - or APIs like WPF, which is IMO just the most powerful gui creation library (and by that I mean this - this and this), but unfortuantely only available on windows.
Dunno, but he must be living really, really deep in the cave as developers have been using higher level, object oriented libraries for like a decade and more. I have no idea why this rubbish even gets on the front page (ok I know, it bashes Windows and we like to do that, right comrades?)
Now win32 is exactly the same rubbish as posix, they are both basically just C style functions.. there is no object-oriented design because it was designed long ago, when processor cycles mattered more than today and if they really wanted to waste those cycles they could easily wrote whole damn OS in python. Efficiency, it matters. Now stupid developer (or library writer) will use win32, but a smart developer will rather choose libraries like wxWidgets, MFC or even Java or
And it's just plain lunacy to say
He also seems to be very quiet about some of the new stuff in
So yeah, I'd say the author has completely no idea what he's talking about..
What one person might consider fun, another looks at as drudgery. My Dad has fun sitting down with a stack of economics textbooks every summer vacation and starts reading. He usually got 4 or 5 of them done by the end of his vacation.
Younger friends swear piercings are fun. I have about as much enthusiasm about getting my tongue pierced as I do sitting down and reading a pile of econ textbooks on my vacation... and has just about the same chance of happening.
I too have "been there, done that" on a lot of platforms.
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.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Here's a tip. You don't really need an MSDN license to do good Windows development anymore. The .NET SDK provides everything that you need to develop and build great .NET applications and it is free (as in beer).
What's that you say? No VS.NET with the .NET SDK? That's true. Your favorite text editor can do the job with the writing and NAnt can do the job with building it. True, you won't get your precious statement completion that you get in VS.NET unless you use the OSS IDE SharpDevelop.
VS.NET can be more of a crutch than a tool since there is no first class, built in support for modern IoC/DI style MVC frameworks such as Unity or Spring.
So maybe they "dropped the ball," I say they never had the ball to drop, and they don't give a crap because if you want to make money, you work on Windows.
If you knew the demographics of the two systems you might think twice before saying that.
It's not like a cash register is ever going to buy anything I write, and it's not like a lot of actual PC users will ever do anything but pirate it.
There are a lot of Mac developers making a good living. And why not, when even though you have a smaller market you have less competition and users more willing to pay you.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
The completely functional optimizing commandline compilers for C++, C# and VB are freely downloadable. The IDE with most designer support and full debugger support is freely downloadable.
Um. No. Visual Studio Express does not let you debug threads, or attach the debugger to a processes, or develop services, or do conditional breakpoints, or refactor (other than renaming and extracting methods), or use MFC or ATL, or develop 64-bit apps, or edit resources.
i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
Just buy Visual Studio Standard for $300 or whatever, it has virtually everything you might need unless you're doing hardware dev.
If you want the warez, look into Action Pack - $300/year for 10 OS/App installs
See, this is BS. A huge amount of my work in the last two years was compensating for stuff written for Windows 95 or even Windows 98 that doesn't work on XP, much less Vista. Sometimes even when the API technically supports it, on a *practical* level things become useless because too much about the OS or UI has changed.
Old software mysteriously crashes because the video driver won't mesh. Or documents will generate but look fucked up because all the fonts have changed. Or maybe it can't talk to USB and only supports parallel ports. Or contemporary printers won't understand it. Or it can't function in a modern TCP environment. Progress breaks old software and no amount of Microsoft trying to keep around legacy API baggage will ever fix that.
How much stuff written 12 years ago have you actually used in a production environment on modern machines with a modern copy of Windows?
The backwards compatibility is not necessary, anyway, because most people who really need old software can and do run it on old hardware and old OS's, as well. They don't upgrade to new hardware and run old software, because they know from experience their stuff will break despite microsoft's efforts.
I stole this sig from someone cleverer than me.
Most of the flashy Microsoft tools are there to correct the horrible APIs they have. For example. it's nearly impossible to write MFC code without the Class Wizard. But with Qt all you need is a text editor and compiler. Your *choice* of text editor and compiler. Even Visual Studio.
Don't blame me, I didn't vote for either of them!
My favourite quote from TFA:
"At the final level, you have the conscientious developers. These are people who care about what they're doing. They might be writing business apps somewhere (although they probably hate it, unless they are on a team of like-minded individuals) but, probably more likely, they're writing programs in their own time."
In other words, "good programmers are unemployed".
An interesting thesis to say the least.
in addition to providing a new UI paradigm of control contexts
Too rich, Dilbert.
You yammer on about things that are hardly in production use at all. Ten lines of XAML to have your WDDM spin a 3D teakettle! Well color me impressed, except that nothing has come of it actually.
Yes I watched the channel 10 videos - when they came out years ago! I predicted little impact would come of it, and here we are.
The main thing that impressed me, was that they used Emacs to write the XAML. Smart fellows. Gave me some hope for Microsoft - at the time.
I was doing my own custom XML control languages long ago. They can be fun but they are only shortcuts, and I don't think you even ever responded to the whole NIB comment someone else posted that is quite a bit beyond what you are thinking of with XAML control in terms of real-world UI building, despite what magical forces you might have at your command in the innards of XAML to render wondrous things. It's hilarious that people talk about Mac users only using the system for eye candy and here you go on a rant about how easily you can create and control 3D objects in XAML. I'm sure that was of great help in building the system that lets you toggle between windows using the 3D overlapping windows for example... Too bad that functionally it comes in a distant second to the usable reality of Expose on the poor old OS X DisplayPDF subsystem, which incidentally looks to be getting usable scaling UI's before Vista ever really makes much use of the concept.
How do I do a Ribbon with XAML by the way? What's that, you can do a 3D Stay-Puft Marshmallow man in a line of code but can't put up the only innovating UI construct man has had since the dawn of time according to yourself? Oh gee, perhaps you need to re-read the article.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Yup. A decade ago I would not have even thought of using anything other then C++ to write a game in, but now I'm doing it in Python. Sure there may be some parts that will have to get pushed down into C++ for performance reasons, but it likely won't be any rendering code since all of the heavy lifting is done on the GPU these days. I can also put off pushing an functionality down into C++ until the game is reasonably complete and profiling can pinpoint exactly where the bottlenecks are the absolutely must be opened up.
Software Inventor
While the article has many good points, I have to point out the "developer taxonomy" section sounds incredibly conceited. Lots of assumptions about the dedication, abilities and professional pride of the business and what he calls "journeyman developers". It really seems like he looked in the mirror and decided that any developer other than him is intellectually, professionally his inferior. It took a bit of effort to get past the and finish the rest of the article and get to the great points in it.... ah, the arrogance of youth... the author must be very young...
I am just going to reply generically to your comments rather than quoting anything specific - basically, I just had to say that I have done some C#, a ton of Java, and also some Windows and X11 programming in the past and am now doing a lot of Objective C work. I've heavily used Scheme and a few other languages as well, so I have some basis for comparison.
.Net" - I do not think that must be the case, and Objective C is proof of that. Message passing is a different enough approach that even with a common C syntax base you can accomplish quite a range of things in Objective-C using different techniques, so even though it may not look like it has generics you can achieve the same kinds of things easily.
Objective C is as much a full-featured and generic language as Java and C# are. I agree with your point about the extent of the libraries for Java and C#, but I don't know if you are really aware of the extent of the Foundation and other classes at hand with Objective-C on the mac. Threading, collections, etc. etc. etc. it's all there.
As for "any language being as rich ending up like Java or
And even before GC was added, it still had a better memory management system than C ever had.
Coming from Java, Objective C is not a downward step at all and I've not felt constrained by the library classes offered. Also you kind of glossed over the whole NIB thing but that really is a super-advanced way to build GUI systems compared to any other IDE today, because you are basically freezing live classes in place instead of gluing together dead ones you seek to animate. On top of that it aids the designer all the time in any attempt to follow GUI guidelines, in the same way a desktop publishing application helps a graphic designer assemble a visually pleasing document.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Such a long winded article that can be summed up as "It doesn't work the way I want it to, therefore it is crap". This "developer" is so arrogant, that he deserves to write code elsewhere - good riddance. My god! How stupid can businesses be - they're writing code that works for them! What? A platform that can be used by non-developers to do their jobs?!!! What garbage! Software shouldn't do these, this is blasphemy. Software should be pretty! What a load of crap. Software, platform, code, etc, are tools to get the job done. Sure you can make it fluffy and pretty too.
Both Apple and Microsoft underwent quite parallel evolutions. Microsoft and Apple started off with cumbersome, buggy, non-OO toolboxes that evolved into Win32 and Carbon. Both Microsoft and Apple had to start over and come up with OO solutions, .NET and Cocoa respectively. Both of them are derivatives of other people's earlier designs, namely Java and NeXTStep/Smalltalk, respectively.
.NET. .NET is a reasonable, modern platform, with runtime safety, a correct type system, and libraries and APIs designed in this century. Cocoa and Objective-C are designs from the 1980's and include C as a subset. They don't have runtime safety, reflection doesn't work reliably, they retain pointer types, and memory management isn't fully automatic either, and those are only some of its problems. And much as I loathe Visual Studio, XCode drives me up the wall even more. The notion that Macintosh is some kick-ass developer platform is... well, how does that saying about repeating a lie often enough go?
.NET looks a whole lot better to me.
So, which is better? Fortunately, I don't have to make a choice. But if I did, I'd prefer
Apple has been moving in the right direction with Objective-C 2.0, but they still have ways to go if they want to modernize their platform. I think they should just move to Smalltalk as the primary programming language and IDE and bury Objective-C as the "C/Smalltalk interface language". If they do, their platform might actually become interesting to me. Until then, if I have to program a commercial platform and have a choice,
Yes, saying you still use 15 year old techniques is retarded.
15 years ago, I was programming with Turbo Vision/TASM/TP7/TC++. We did clipper, and DBASE IV. Direct hardware access, still mostly in dos (lots were using dos extenders), with computers ranging from 386's to early P1's. Back then (1993), very few people even heard about the internet...
Now, we're doing WPF apps whose interface was made part in a 3D CAD program, part in illustrator, which is talking to server middleware with a n-tier architecture (with a RDBMS back end), over web services, using WCF. Lots of networked systems are involved. We're also doing web apps, and apps for mobile devices. We're often using things like LINQ and OR/M's, code generation tools and what not... And we're moving to parallel processing for a lot of things. Oh, and there is not one win32 API call in sight in our code base.
It's radically different than it used to be. If anything, it's changing TOO FAST, it's very hard to keep up with it all.
Well, I seem to remember (no flames here, please) that you could not install MSDN on an emulated machine. (but again I cold be wrong, I am just recalling it as it made me a strong impression at the time)
Look around you at a technical conference sometime, to see that what "One Developer" posts about, others may be doing as well without blogging about it.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Ok, but C# 3.0 does offer some really good functionality, like LINQ. It's a very nice language, and within a year F# (a functional language) will become a fully supported language alongside VB.NET and C#. And this year ASP.NET will finally have an 'official' MVC framework, and there will be the Entity Framework release.
.NET framework, languages and general direction of tools. I don't see such a complete package anywhere else.
I too am frustrated, the cost mostly, but I really like the
It just doesn't work anymore, and I'm sad because I really liked being able to develop code without artificial roadblocks in my path.
And they are in the business of selling products.
Its not just a cash grab.
When word got out that you could buy an MSDN subscription and kit out your whole office with Office, Servers, and Windows workstations for chump change, the system got badly abused.
As a Java, C#, C++, O'Caml, Erlang, F# developer... the article a complete rant!
.NET, but oh! They have!
.NET is not Java, it's a platform for many languages.. and one of these is low-level, another is functional, another is scripted, another is an OS command-line. And it all integrates together nicely.
There is no need for microsoft to re-invent the wheel for fast low-level programming.
They should simply make that C++ code open to
It's C++/CLI. Managed pointers + raw memory!
So don't rant! get your facts and do your research.
I just thought of a particular anti-smoking spot and how it might apply to Microsoft:
The prairie. A herd of sad-looking Steve Ballmers run across the plains until they finally come to an abandoned campsite where several notebooks lie on the ground. In the background plays "Where Have All the Cowboys Gone" by Paula Cole.
Fade to black. Text appears: "The future kills." Another line: "Let's just pretend it's 1995 again, okay?" And in small font at the bottom of the screen: "This ad was sponsored by Microsoft."
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
MSDN is a pretty good documentation base, in fact it's one of the best there is out there. I doubt very much they'd have what's widely known to be awesome documentation for large parts of their technologies and then just simply not apply them to others.
.NET are also improving well. The Zune was a flop but the Xbox 360 whilst having it's fault is a definite improvement over the last iteration - certainly they still have a significant lead on 3rd place at the moment even if they're not able to keep up with the Wii.
Do you have any evidence of your claims?
As it stands Microsoft have made pretty good improvements in a lot of areas this last few years, whilst Vista was indeed a failure, Office 2007 was the most major step forward in Office application productivity and usability in well over a decade. Visual Studio is still moving forward, getting better and better with each iteration which is impressive when it's already arguably the best development environment out there. Similarly languages and libraries like C# and
To suggest Microsoft lacks direction is rather misguided, clearly many departments at MS do have clearly defined direction and goals and are both following and achieving these goals. You can of course debate if the overall company has direction, but their various product lines are only loosely coupled so an overall direction other than convergence which is on most tech. companies minds isn't really feasible. Certainly to say all departments at Microsoft lack direction though is clearly outright false.
Please don't use "commercial" as a synonym for "non-free.". It is certainly a shame Trolltech itself misuses the term commercial on their website to indicate proprietary software.
Perfect is the enemy of done.
You aren't real familiar with developing Windows software, are you?
Many undocumented API calls are there precisely to give Microsoft an enormous advantage over their competitors. Microsoft uses them for their software but would rather everyone else be unable to implement a number of features.
If you want to compete with Microsoft and with other software written for Windows, using undocumented API calls is pretty much a necessity.
at the end of the day, if your crap code made you millions who cares, the guy who is coding slowly
and documenting everything in fine detail is still working on his alpha build while ms posts they v2 release.
Sure its half assed, buggy, cheaply implemented, but the public wants this shit fast.
You are there to make the business money, else you might as well work for education institutions or writing 8 year out of date lectures.
Sure design is important, but you dont need to go too deep and design for a 15 year life span. Most marriages dont last that long and
who plans their relationships like a designer ?
Liberty freedom are no1, not dicks in suits.
I personally find that food and shelter costs money and as a writer of desktop applications that means I like to target a platform that has some users. And that's where the debate ends for me.
Anyone who writes commercial desktop apps and decides which platform to use for any other reason than that is plain crazy.
P has a fair question. I mean, I was a great programmer 15 years ago... Has anything really changed?
College-Pages.com - Online Colleges, Degrees, and Programs
Who cares what .NET calls? The discussion is about the API's - usable and elegant, or ugly and inconsistent.
The reason we need binary-level processor compatibility - is actually closed-source software.
Its yet another way we are being harmed by it.
If Opensource was prevalent and closed-source rare or never used, then we could have better processors and more competition without worrying about that kind of compatibility.
8 of 13 people found this answer helpful. Did you?
After being mored in the ugly world of superb performance & endless possibilities of C++, Win32, occasionally MFC, OLE/COM and other Three Letter Abominations, I have finally seen the light.
C# is beautiful.
"Blah blah blah." - [citation needed]
Right, but since last fall they're making you pass numerous assessment tests every 2 years to gain or retain your partner status.
It's also interesting to note that they refer to the registration process of getting a Windows Live-ID as being "profiled"...
It's not GNOME, it's KDE.
What's in a sig?
Quote from the Arstechnica article: "Microsoft's opportunities] have been systematically squandered through a combination of ineptitude, mismanagement, and slavish adherence to backwards compatibility. The disillusionment I feel is incredible."
Quote from the comment above about possibilities for the future: "That's the theory anyway. Whether MS manage to pull it off is another question."
Why would things be different in the future? Microsoft's record is 22 years of adversarial, below standard, anti-standards behavior. How much money would Microsoft have made if it didn't have ignorant customers and incompatible file formats?
Comment removed based on user account deletion
Actually, I haven't used Display Postscript on Mac OS X -- it doesn't exist. I have used it in my (extremely limited) experience with NeXT -- but that's another story.
I personally find that food and shelter costs money and as a writer of desktop applications that means I like to target a platform that has some users.
Even desktop Linux has "some users". Mac OS has *lots* of users. Not as many as Windows, but thanks to people like you there's less competition FOR those users. So you keep writing for the clumsy Windows APIs and fight it out with the other long-suffering Windows developers. That leaves more money on the table for the folks who actually care about their customers.
> Rather than FUD'ing around, I suggest downloading the Moma tool and which will check whether an application is compatible with Mono.
.Net 1.0 but not .Net 2.0 or later.
Nice theory, in practice my applications check fine against Moma but they use up 100% CPU and the GUI is unusable because half the GUI elements are "outside" the window.
Using Gtk# to fix the GUI issue is not an option either, because it only exists for mono and
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.
Actually the Task bar is at the bottom because Apple threatened to sue otherwise - A task bar at the top would have looked to Mac like.
And this also
Martin
Guys, I'm a grid developer (mostly Linux and Solaris) and I know this is so out of touch.
Developers/Companies are pulling out the Java/Linux monkey works at an alarming rate and replacing it with ASP/ADO/.NET. Companies that I would have never thought would go MS are going MS- Goldman, Lehman, Dow Jones. Penetration is huge in FiSrv, Healthcare, and manufacturing (big suprise there). ASP.NET, WCF & Workflow are big movers. Right now there is a boom in SHAREPOINT/PORTAL dev as well.
The biggest reasons seem to be rapid development and end-to-end integration. MS seems to have hit it right with WPF/WCF/WWF.
I found this be true even more in the EU...
I call troll on this post as the OP obviously hasn't used WPF, VB.NET, C#.NET, etc. Yes, coding against Win32 APIs has always been bad (MFC didn't help much), but Microsoft have definitely picked the ball up again with .NET. It's a joy to use from a developer point of view. As I switch between .NET and C++/Win32/COM projects, I feel well qualified to judge. Perhaps the OP should broaden his experience away from Win32, unless he wants to debate legacy support, which is where this thread is going to end up.
Pre-emptive multitasking was still 2 years away.
Unless you ran Linux (Slackware).
Qt also has copyright license compatibility problems. If you're not selling copies of your program to recoup the expense of a license to use Qt in proprietary software, your entire program has to be under a GPL compatible license. Unfortunately, a lot of icon sets and the like are under a Creative Commons license such as CC-BY, which imposes conditions that are incompatible with both versions 2 and 3 of the GNU GPL.
I really should leave this one alone, but I just can't. This article is so unbelievably biased, it is truly amazing that a site like ars allows a series like these to exist. The person who's written this series has obviously no real programming knowledge on any platform.
.NET lightyears ahead of the competition right now. Writing these little misinformed articles is not going to change that.
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'.
Even on PowerPC.
Are you sure you've tried the old game recently?
"The proof of the pudding IS IN THE EATING." ?
http://www.worldwidewords.org/qa/qa-pro1.htm
how many solutions require weird code ? etc... very few, unless youre writing drivers or OS utils , most .net or cygwin, or vbasic, or even perl.
things are as per usual, and could be done ion
Win32 aint hard, its easy, even to make a game.... read the docs , do the code, if it all fails, read the docs again, and do higher
level work arounds, not low level hacks, or try to work out some simple solutions, KISS.
Google is your saviour, if it doubt, just ask it.
Liberty freedom are no1, not dicks in suits.
I've developed on Irix, Solaris, SunOS (yeah), AmigaOS w/Intuition, C64 (yeah), QNX (me personal favorite), and Windows. .NET 2.0 and Windows Forms in particular is about the easiest way to make a GUI I've seen. The form designer actually round trips (design to code, code to design view). There is no comparison between MFC and Win32 and the .NET 2.0 framework.
.Net framework provides a fairly complete and easy to use API. Things just work. And it runs across all the windows versions and takes care of 64-bit issues.
The
The author of the article has no clue.
And if you are a die hard C++ dev like me, you can continue to use C++ in the form of C++/CLI and mix managed and unmanaged code.
VMWare.
I do dev on both Windows and Mac, across multiple versions of each. The early versions of what I have to deal with can easily trash a system. On Windows, I have one box, problems happen, I click "revert", done. Win 2K, XP, Vista are all a click away.
On the other hand, I have a pile of Macs, (ppc/intel/10.4/10.5). I'd like more (ones without dev tools, more patch variations, more installed app variations), but it's not feasible without more Macs and more bootable drives. Being able to run OS X in a VM without any hacks that change the environment would be a huge help.
That's why I use butterflies.
Certainly, Qt for instance would be a good choice indeed.
Yeah and following your reasoning, will never be different...
So just follow the masses, make money, don't ask questions, suffer in silence.
It is not like we can do anything about it right?
Hope you never live in a dictatorship.
Hurrah!
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.
- I live the greatest adventure anyone could possibly desire. - Tosk the Hunted
Unlike on the Mac where the "About this Macintosh" is the top most item on the left most tool bar--which I use about once per quarter. At least under Vista, I might have to reboot my machine once every couple of weeks.... I guess you could use the About this mac to check if someone stole the memory out of your computer... or accidently upgraded the processor while you weren't looking. (Assuming, they you have one of those rare macs that the processor is upgradable.)
The Express editions of Visual Studio are quite usable. SharpDevelop is also very good. As another poster points out, you could get away with developing with a text editor because the compiler is in the framework, and the required tools are in the (free) SDK.
The "Pro" editions of VS give you the following three things
* The ability to have project groups consisting of mixed project languages
* Additional code templates
* The ability to run plugins
Of those three, the third is the most useful, but none of them are essential. You can write code that does anything the
Of course, your MSDN license does cover the ability to develop against virtually any product that MS makes. If that's your bag, that's very useful.
And I completely agree about version control. I wouldn't touch TFS with a bargepole, despite any of the good things I've heard about it, firstly because it's a closed-source product and I don't want my source history locked up in a database which I can't read the source for, secondly because I still have the emotional scars from having to administer a VSS repository. For the first reason, I also do not recommend any other proprietary VCS. I recommend SVN, although I'm rapidly becoming very fond of Bazaar.
Heard of Silverlight? .NET technology, you can target, different browsers, platforms desktop/mobile.
A recommendation I would make to the author of this article is - stick to commenting on what you're an expert on.
Having vague understandings about a major technology (with thousands of experts out there) simply doesn't cut it if you're going publicly dismiss it.
But practically every move that Microsoft has done since then has been a mistake. Some of them sounded like good ideas, but they've still turned out crap. The point the article makes about the Vista GUI just illustrates it. The UI is a total freaking mess because it is a reflection of the chaos going on within Microsoft and within the OS.
I remember when there was such a thing as a Windows GUI guidelines manual and people followed it. Because it made sense and it made things easier for developer and user. And if you didn't follow it people complained, and rightly so. Now every idiot with a copy of Photoshop thinks they can design a new UI for every application, and it's up to the user to learn their new "skin". And more worryingly, many of these idiots work within Microsoft.
Ditto with Cocoa. You can write an app using cat and compile it with make files and bash scripts if you want to.
``It happened because of you - users, who wanted to run your current (old) applications on new platform.''
And run them at native speed, too. There's no reason why a 64-bit processor running at 3.0GHz shouldN'T run elderly 8 and 16 bit applications via a SoftPC style instruction-by-instruction emulation, and do so orders of magnitude faster than the original 12MHz (or whatever). But no-one ever grasped the nettle in Microsoft to say ``the performance gap between today's processors and the old ones which need all that glue is such that emulation still gives several orders of magnitude''.
ian
The latest versions of XCode are more user-friendly than previous versions, but feature-wise, Visual Studio has XCode beat by a mile. On the other hand, I find the XCode has the major bases covered quite well, so I don't miss most of the omissions very much.
I recently (a year ago) switched to c#/wpf from java when I switch jobs. I have developed enterprise java applications (both swing and web front ends) since the start of java. As a language and api i find myself liking java far more. I'm sure part of this is familiarity, but mostly java's api is organized better.
Eclipse is hands down the best IDE i have used, VS sucks for base features-- we do use resharper which makes it way better.
Now here is where Microsoft rules: UI developent. WPF is so much easier to work with than anything java has to offer. Designing UIs and maintaining them with java is a royal pain. Microsoft makes it quick and easy. Sure, it may not be perfect, but it gets the job done.
why write any software?
Without the 2nd Amendment, the others are just suggestions.
What's wrong with recompile? Four little characters typed on a command line m*a*k*e. It's just not that hard.
That said, you haven't been paying much attention to the underlying APIs in Linux. For example, ld.so has supported symbol versioning for some time now. Programs compiled after that was implemented request to be linked with a particular version of the symbols they use at runtime. That means the function calls can be re-done as needed with shims to handle things for the old version.
Notably, the whole symbol versioning system went in so smoothly that many applications developers aren't even aware of it.
Java, Perl, Python applications and are not software?? News to IBM, Sun and all the others who do call them software. You seem to be the only retard in the room to disagree with them.
This is my sig. There are many like it but this one is mine.
Yes, you are right. Thank you.
At first I went there, clicked on both of the links claiming to be downloads and neither were. But then I read the instructions, which pretty much means you have to sign up on their connect site. No big deal.
Regarding your assertion that I can sign my own driver, so far everything I've seen says that only works in test mode. I'm certainly going to try, of course. But from what I've read on the MSDN documentation, the signature needs to be from microsoft or via a certificate I would be issued from a trusted CA (or a cert of some sort mass-deployed by an IT dept, which isn't the case for general windows PCs). Honestly, the $250 (x # of OS versions) for WHQL is probably cheaper than anything from Verisign.
The really sad thing is I only need this for an INF file that simple tells windows to load its own USBSER.SYS driver when I plug my device in. The whole idea behind USB device classes is the USB device follows a standardized protocol to allow the operating system to load a generic class driver, rather than need a specific driver. Microsoft does it with HID (keyboard, mouse, joystick, etc) and Mass Storage classes, but not for CDC (Communication Class). Their USBSER.SYS has been included since Windows 98, but on every version an INF is required to get it actually loaded. Sadly, even just a single text-only INF with no binary driver at all still requires a signature to load without a nasty warning, and to load at all on 64 bit Vista.
Mac OS X and Linux mange to load their CDC class drivers just fine when a CDC class device is plugged in.
PJRC: Electronic Projects, 8051 Microcontroller Tools
I was speaking from a functional perspective. Perhaps, I should have said GTK, where Qt and GTK are the toolkits that implement their respective desktop environments.
Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
...how about making the reply buttons here on /. smaller?...
Or ObjectiveC and NeXTStep.
Now... how is this different than last year, or the year before, or ten years ago?
Where were the development shops full of programmers all running Eclipse on Linux ten years ago?
Java is the single most widely used language to develop applications today (check any job search site and check free/open-source projects: Java rules the day).
And you know what... Linux is perfectly fine to develop Java apps. So is OS X as long as you don't want to mess with the latest Java version (which software development shops usually don't do).
In my view that has changed.
How Microsoft Dropped the Ballmer with "Developers, Developers, Developers, Developers!"
I've never encountered a Windows app whose UI confused me at all. They're easy. You explore a bit, you figure it out.
I was generally persuaded by this article; it started off strong and had some specific, pointed criticisms to make from the perspective of someone who cares about programming and dealing with a consistent environment.
Then the last page degenerated into fussy UI-wank. Look folks -- look-and-feel is nice, and MS absolutely should've done more to enable consistency. But I don't use software for the pretty eye candy (certain gaming titles aside -- which, surprise!, have no expectation of consistency with the rest of the OS).
About the only place I do care is that the default Swing look-and-feel is just plain hideous. But whatever; I can cope with that even so.
Freedom isn't free; its price is the well-being of others.
The big one that I remember is spare file support, which I think was for SQL Server.
Afraid not, friend.. The fact that MS is constantly changing its development environment is one of its primary flaws in comparison to *nix environments.
And honestly, I kind of enjoyed programming on MS products 15 years ago.. DOS was nice because I could access the hardware directly. Windows has always been, and will always be, a pain in the ass to program for.
Although I will say that Visual Studio is a nice IDE. Too bad they feel the need to change the languages all the time and drop support for older versions. I don't see a real advantage of VS2008 over VS6 if you're programming in C++.
Microsoft also never claimed the sky is blue asshole
You got me on that, I forgot that with the introduction of Express editions that you could now download the whole documentation. That means another of the original points is refuted.
Note also that the "other poster" who mentioned that you could use alternative IDEs because the compilers are in the framework is me, so I do know that.
And yes, I think we all remember "SourceSafe Database Corruption Day" - every week or so you'd need to restore it from the previous day because the damn thing corrupted again.
For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
No, the certificate doesn't need to be from Microsoft - but you're right that self signing only works in test mode (you even have to set Windows into a special mode for it to work!).
You can sign with your own certificate issued by one of the CAs who are members of "Microsoft's special CA club" (there's an MSDN page for it, see my other post in this thread for a link to it). Minimum cost of that from what I see is about $300. Also, to get WHQL to sign it, you first need to execute an agreement which requires - surprise! - a Verisign code signing certificate to complete.
For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
"Developers began dropping their balls with Microsoft!!"
In Corporate America, Ballmers drop YOU!!
Hackers have long memories. It works both ways.
there are happy campers and there are unhappy ones...it seems that this guy who wrote an article is one of the unhappy campers!
Some rules were meant to bent, others broken.
Open source promotes Competition.
Closed source promotes Collusion.
That little anectode is from the Mac OS 9 or prehaps Mac OS 8 times. And of course it all about visuals - that it looks to similar.
And if you drag the start bar to the top you will see that layout etc pp. make more sense.
Martin
You can purchase a F1P-00118 Visual Studio Professional W/MSDN PREMIUM 2-year SA for $1800 ( softwaremoreUSA.com). So it is cheaper than you say. 2008 is a great year: Windows Server 2008, Visual Studio 2008, SQL Server 2008 (the 1st in the next 3-year cycle)
You should try Windows Server 2008. It is a big more of a memory hog (due to caching) than Windows Server 2003R2, but it is very nice. Try it and see if it does better for you (it did for me). Check out http://blogs.msdn.com/vijaysk/archive/2008/02/11/using-windows-server-2008-as-a-super-desktop-os.aspx
I wrote about the 'Microsoft problem' in 1999:
> http://www.linuxtoday.com/news_story.php3?ltsn=1999-08-04-012-10-NW-SM
I spent years (in the 1990s) programming
to the Windows API. I eventually concluded
that the APIs are not understood by anyone,
not even anyone at Microsoft, much less
completely specified.
I would venture to say that for any given
component in the MS API hierarchy, there is
no one, not even the original programmer, who
can provide a complete description of the
semantics and API of that compenent.
Many of these comments, and certainly the article itself, sound like a bunch of "glass house" programmers all whining about how the user shall do it this way and this way only .
lolll...or like those people who always end up on the condominium owner's association because they know exactly what they like and so you will adhere to their desires, and to hell with your children's hope for a sandbox to play in.
Furthermore, I note how quick the people I refer to are to stereotype (yes, I know: "Pot calling the kettle black") others, unsubtly reserving what they view as the most brilliant and capable stereotype for themselves.
My criteria for software is simple:
And I don't care how those four items are accomplished.
After reading the "my way or the highway" comments from the OS X (including the article's author) and Windows camps, Linux increases it lead in my eyes as the last refuge of the developer who values "faster and better" over "cookie cutter".
The speedy adoption of the PC out there in userland in the '80s and '90s owes much to that "my way or the highway" attitude that pervaded the "glass house" and stifled creativity, speedy solutions, and innovation...but it would seem that the approach is struggling to return.
lollll...I've always wondered if all of those "glass house" people, in their bitterness over losing their kingdoms, turned to writing virii, worms, and trojans aimed at Windows just so that they could bring such a situation about.
The King is dead - long live the King!
Orwell: "In a Time of Universal Deceit, telling the Truth is a Revolutionary Act"
Fanboi-izm aside, to all those performance junkies who bitch about Java being slow...
Eclipse vs. SQL Management Studio 2005.
You can't tell me interpreted environments don't suck, whether branded Microsoft or Sun.
I know cat was a joke, but compiling with makefiles is *normal*. You don't have to be able to write the makefile, but any programmer worthy of the name had better be able to type "make" (or nmake) at a command line. (At least for C/C++). You don't have to be in love with the command line, but you do need to be able to use the basic tools of the trade. Otherwise you're like a professional NASCAR driver who can't drive a stick.
I know some "programmers" who are literally unable to write a Hello World program without a fully stocked Visual Studio. It is very sad.
Don't blame me, I didn't vote for either of them!
Cat wasn't a joke. You can do it. Sometimes it's handy. Embedded systems sometimes run a telnet server and compiler but for some reason don't have an editor.
I meant you can WRITE make files, and use them to manage your project. That's also handy sometimes. XCode is a decent IDE that will manage your project and compiles with the click of a button. But underneath, it's a GUI front end for gcc. If you prefer make files then you're free to use them.
Apparently, this guy hasn't heard of Carbon (aka clib and BSD) where a lot of OS X stuff still gets programmed.
I recall reading on some forum that someone ran Windows on Windows on Windows. I think he did it with some trick in Windows 3.0 because of its ability to run in separate modes, like real mode and enhanced mode or something like that. And it was on a pretty old machine too, like a 386 with not much RAM.