The biggest shift I've noticed in Microsoft in recent years is its support and push for open source, cross platform components and projects. It seems that there may be a paradigm shift towards selling tools and an integrated platform while providing more choice and making inroads into the open source comminities.
This is exciting for me because I absolutely love .net and friends, but I'm also a Linux engineer and lean heavily toward open source and cross platform technologies. In recent years I have noted that with the existence of mono and mono develop(xamarin) C#/F# is right on the verge of being an excellent choice for open source tools and projects. I've been lamenting the fact that Microsoft's early platform lock in approach has prevented .net from being a serious java alternative(or the alternative it deserves to be). Its nature stiffling the open source ecosysytem .
The outlook has been getting rosier over the past 2 years though. Now we have OWIN, ASP.NET vNext, MVC6, entity framework 7, F#, and a strange officially unofficial interest in mono. Projects on github! These are welcome steps in an attempt to boost relevancy IMHO.
I don't think it's a huge shift as much as it is getting back to its roots. MS got its start by being the company that supported the PC as an open platform. Anyone could build a PC, any individual, any OEM, and put DOS or Windows on it. And anyone could write an app to run on DOS or Windows. For the time it was a remarkably free wheeling and open system, especially compared to what other companies like Apple was doing. And let us not forget that it was the success and growth of the open PC which made it possible for linux to come along and put itself on the same hardware. MS has certainly been guilty of various unfair business practices from time to time, and from trying to use its power to gain unfair advantage in the market, but for the most part I think that behavior tends to be the exception over Microsoft's history. Most of the time they are trying to pull customers and developers to them by offering a good platform and at some times even facilitating their own competition. In that regard, embracing open source is very much in keeping with that spirit, updated to reflect the new norms for what openness means today.
Sure, you could choose your hardware as long as you were running Windows. This is a new, different type of choice that MS is backing. ASP.NET(and MVC) vNext is goingt to be tested against mono. And mono represents code running on non-Windows platforms. I certainly view this as a shift; how large a shift is rather subjective.
Their greatest mistake(s) were the removal of visual basic 6 line of products and windows 10. Visual basic 6 is my first programming language and is probably still my favourite. The problem with lua and python and most other "beginner friendly" languages is that it is hard to do anything useful when u are just starting other than printing hello world to terminal. My intro to vb6 was creating a simple calculator, it was amazing knowing that i could create an application simply by dragging and dropping some elements and writing some code. I never had to worry about things like gtk bindings and makefiles etc. The earlier version of visual studio started up in less then a second and I never experienced any lag. The killer feature was probably the combination of both an just-in-time interpretator and a full-blown compiler. I could simply click play and the app would run, if i need an exe, it would also export one. This feature put most modern "repl-based languages" and "test-driven development" to shame. A lot of people complain that vb 6 is not object-orientated enough, but remember, C is not object-orientated either, and it still tops the tiobe programming list. Windows is sorely in need of an Rapid application development framework. Although vb6 still installs on windows 7, a lot of its features are broken. I really miss having an IDE that doesnt get in your way, starts up quickly, and allows you to get things done fast. The argument that vb6 encourages bad programming practices etc. is not really that valid when the user is not an professional programmer. After all, would you rather teach your kids to code by teaching him about build tools and commandlines and gui bindings or would you simply give them an environment where they can create whatever they want in a fuss-free way? Now, lets just hope that microsoft isnt stupid enough to nerf asp.net web forms.......
It is still fairly early in the morning for me on a Saturday, so please excuse me if I missed that your comment was sarcasm. I still have an MCSD in VB6 and programmed millions of lines of code in it but honestly I haven't used it in about a decade and would never consider using it again.
ASP.NET WinForms are just as obsolete in my book. I programmed dozens of applications using it but I would never consider using it today for modern web development.
I still use Microsoft development tools. C# and ASP.NET MVC are great, modern technologies that allow me to make stable and scalable web applications very rapidly. The modern versions of Visual Studio fulfill all the things you said you liked about VB6 and are otherwise incomparably superior.
Same here, used VB6 in the past and pushed it to its limits, then .NET came along and ate its lunch, far superior in all ways, including speed of development.
I've personally watched an essentially-non-programmer take VB.NET, drag-n-drop, write some event handlers, and have a functioning little app. So while VB6's IDE is faster than the ".NET" Visual Studios, most of your other complaints are really not valid.
Yeah the complaint is ridiculous and this coming from someone who learnt on VB 6. VB 6's IDE cost $500+ at the time and even getting the education edition was a huge PITA (it was HEAVILY pirated by students).
VB.net and C# (and F#) are free [legal] downloads from the internet and both just as capable as VB6 was back in the day (the things Visual Studio Pro and above add aren't really relevant to beginners, except the testing framework perhaps).
Plus back in the day I found VB 6 quite limiting. For 101 level stuff it is plenty fine, but once you want to go beyond simple applications (e.g. games) you're left almost fighting the language and libraries itself.
With C# in particular, while it is certainly slower than Go/C/C++/D/etc, that's really the only major limitation. You can definitely access much more of Windows' API infrastructure, it supports unsafe code, the .Net framework is more comprehensive, and the language features are extremely modern (F# more so). There really is no limits except execution speed.
Honestly kids today are extremely lucky. I would have killed to be learning on C# back in my day. Fuck VB 6.
As a counterpoint, since doing anything advanced in VB6 (game-making-wise - that's what I learned it for) required low-level calls to GDI, OpenGL, or DirectX libraries, I feel I obtained a better picture of how the OS operates at that level than if I had started on C#. C#'s nicer, for sure, but if you're just doing it to learn how computers work anyway...
I was a huge fan of Delphi 5 at the time, and hoped it would win over VB6 (I guess it's a Coke/Pepsi thing). Now I'm in the same boat as you, because it seems both Delphi and its competitor, VB, have lost. I'm not even sure if there are any winners.
I wish someone would build a robust OS & GUI toolkit and ship it with developer tools...
Well, I'm a Qt fanboy, but I think a Linux distro + Qt5 + KDE5 will probably be quite close to what you want. Take a look at Qt Quick and especially QML, which is being used for developing KDE 5.
QML is basically a Javascript-based declarative language for building user interfaces in which you can use full Javascript to augment them. It has its own IDE (Qt Creator) with a visual designer and it's pretty easy to learn, and Javascript is not a hard language at all for newbies. You can even use C++ to extend your applications. KDE 5 is not ready yet, but Qt5 is mature and improving with every release.
I would recommend that combination to a young aspiring programmer without a doubt.
This, a million times. I'm a bit further down the abstraction chain but I am thoroughly glad I sit there all day writing C/C++ for Windows native (win32) GUI applications.
I know once I've tested it on one machine it's going to work fine on all the other ones. It's the most stable API and platform I've ever seen. Code we wrote for Windows NT4 works fine on Windows 8.1 and behaves exactly the same.
Compare that to our poor web guy who spends at least 50% of his time trying to get everything working on a selection of browsers going from IE6 to the latest Chrome while necking red bull, using the F word a lot, smoking and going bright purple.
I completely agree with you guys. The tone deafness in this thread with regards to why VB6 appealed to beginners is striking.
No, beginners don't want to layout things in CSS, a declarative XML language, or any other 'text' way. They want to drag and drop components with the sort of ease of use that Visual Studio or Interface Builder offer. And they want a language coupled with that which features the simplicity of Python.
I too did some of my first serious programming in a VB like language in the 90s (RealBasic for Mac). I now develop beginner training materials in web development as a side gig and while we have fun - it's definitely not as satisfying as laying out a form in VB and having a real GUI in a matter of minutes that "Just Works."
Which makes you wonder, could you bolt a language like Python onto an interface builder a la Xcode IB, Visual Studio Forms designer, etc?
I agree with you, I think the bigger picture here is how well the IDE, GUI, and code hang together as a complete unit; focusing on any in isolation (e.g. "VB sucks, use Python") misses the point.
I agree, but if your coworkers is anything like mine and you asked him if there is a fundamental problem with web development as a platform choice for internal apps, I expect he would suddenly forget all the pain he goes through on a regular basis. I've watched my company burn about a million dollars unnecessarily in the last two years because of choosing a 100% web interface for an entirely internal project (of dubious value in the first place).
The zealotry in this field is getting close to unsustainable in my opinion. Companies thought the proliferation of ms access apps was bad, wait until they try to do something with the proliferation of overarchitected web apps based on a wide assortment of fashionable at the time but now unpopular languages and frameworks that hardly anyone has experience on and is most certainly not interested in working on.
The frameworks are the problem. There is no such thing as a "JavaScript guy" really, everything is about the framework, every app is some dev's first in that framework before it drops out of fashion, and knowing framework X doesn't give you any leg up onto framework Y. Experience counts for nothing.
In the old days, you could learn C or SQL and for every hour of learning get a hundred or a thousand hours of real use, and you have at least a fighting chance of picking up some other guys code, or vice versa.
I couldn't agree more. I really don't think very many people in management understand how the programming world has changed and what is happening at a code level in their companies and how big of a maintenance problem they are going to have on their hands.
I used to work at Microsoft (SQL Server). It goes without saying, but getting here is an intentional, conscious thing Microsoft spends billions of dollars to achieve.
Working in SF in earlier-stage companies, I've never seen anything even close to the rigor with which Microsoft approached testing. Definitely consider working there if you want to learn from some of the best QA/QE/verification engineers in the industry.
Sadly many of the recent layoffs from MS have been in their QA and SDET/test engineering teams. The days of a strong testing discipline might be over for the company.
Perhaps automated systems have become much better since Joel wrote this, but something from the talk I really liked -
"The old testers at Microsoft checked lots of things: they checked if fonts were consistent and legible, they checked that the location of controls on dialog boxes was reasonable and neatly aligned, they checked whether the screen flickered when you did things, they looked at how the UI flowed, they considered how easy the software was to use, how consistent the wording was, they worried about performance, they checked the spelling and grammar of all the error messages, and they spent a lot of time making sure that the user interface was consistent from one part of the product to another, because a consistent user interface is easier to use than an inconsistent one."
A common complaint, but I don't think it's true: Web applications are _much_ more flexible as far as screen size and device types are concerned and they are multi-user, networked by default. If you would want to achieve both of these with a VB-like approach, it would be just as complex.
I think the most important issues with the web that are not already being addressed (and winning) are a statically typed Javascript replacement and a way to locally isolate the effect of CSS in large applications with many modules (web components don't solve this correctly).
You're focusing on what's good about the Web and not addressing what's good about VB (that's what this thread is about): a stable API platform, and easy WYSIWIG GUI design. The Web (or at least the tools for it) largely lacks those two things.
> But the web is hard to write and hard to extend/maintain.
The web is distributed and distributed is hard. The problem is that it is also what people want. We haven't regressed from VB6 -- we've advanced, but the demands of the market may have gotten more complicated faster than the popular tools have advanced in their ability to simplify them.
Exactly. If Microsoft had written Outlook in VBA as a plugin for Word, they'd have been laughed out of the room. But that's exactly what Google did with Gmail...
Weird to see people complaining about the web all the time. The fact that it can do things ranging from typesetting to form applications, to marketing sites, to full blown games is pretty amazing. If you feel that you would like to make a SaaS providing a SQL backed drag and drop form editor, you can do this on the web. The fact that nothing like VB exists any more is a reflection of the fact that the market simply does not find these things useful.
I concur, the combination of css + js + html is an nightmare especially if you are are trying to design a simple database-backed website for your startup. Webforms might have been hard to maintain for some, but at least it worked well. There was no need to figure out all the background stuff if you are not a professional developer. If I need a fancier website based on mvc, I would have hired a fullstack django developer instead.
Yup, and if you are trying to do the full stack, you had better toss in some node.js or Ruby on Rails, plus SQL. Web development is really hard for non-developers to grok.
I keep thinking back to an Access application that I threw together in a couple of days, back in the 90s for managing a team of about 40 technicians. It was being used for task tracking, and had some wiki-like features as well. When I started that project I knew nothing about Access or VB, and yet in two days I had a bunch of forms and tables that allowed managers to get a quick feel for what their staff were up to. The thing ran over the LAN, and could handle 10 simultaneous connections without any dramas. If I were to try the same thing in the web world, I might lose myself in getting just one table view working correctly for a week. Getting an http server configured and up and running, and talking to a db server would be at least two days. And there would be many potential roadblocks just waiting to trip me up along the way.
These days, rather than dealing with that mess, many companies just go for an off-the-shelf hosted solution that sort of fits their needs, such as Basecamp, or Jira, or Igloo. The existence of these products is a sign that we've gone off in the wrong direction somewhere - the sorts of products they make are very similar to that online apps you could make with Access 20 years ago.
> These days, rather than dealing with that mess, many companies just go for an off-the-shelf hosted solution that sort of fits their needs, such as Basecamp, or Jira, or Igloo. The existence of these products is a sign that we've gone off in the wrong direction somewhere
No, its a sign that the web has enabled easier application delivery with greater reach at lower cost; Access is still around, after all, and most businesses have it right at hand, so if the alternatives were worse, they'd still be using it.
Unless they are getting advice from developers. Do you know any developers who would say "why don't you just use Access, it will take a week" when the alternative is a fun new 3 month web based project where they get to choose and try out the latest languages and frameworks? I certainly don't.
You're idealizing Access for reasons unknown. If there actually was demand for such a tool, one would exist and would be making a ton of money. The fact that people use off the shelf SaaS is an indication of the fact that off the shelf SaaS is what they want. My suspicion is that Access is too hard for most business people, yet not powerful enough for actual developers to make something unique with.
Salesforce has made a huge business out of business apps in the same category as whatever would have been cobbled together in the basement with Access by some 'IT guy' 20 years ago. The fact that this is the case is a reflection of the fact that people prefer the hosted, turnkey, polished experience that web-based SaaS provides over some half-baked internal app.
Well, you might accept that I'm "idealizing" Access because, you know, I had a decent experience with it 20 years ago, as described in my first comment. No need to go searching for mysterious ulterior motives when they're explained in the post!
For what it's worth, I do remember significant flaws in Access. For one thing, it was an absolute pain when we wanted to modify the database - we had to get everyone to log off, and then upgrade all of the clients at once. This is one of those problems that the web solves elegantly. Also, Access had major issues with concurrent users. Performance fell off a cliff, and from memory, certain operations were unsafe (I think you could set up a SQLServer which would address the concurrency problems, but we never bothered).
But these days we have better options available to us - app stores fix the updating problem, without introducing the css + html + javascript mess. We have decent, free web servers, and web application frameworks such as Django and Rails that make writing the server side code that drives the RESTful APIs used by the client relatively easy. But what we don't have is:
a) an easy way to create a server (this needs to be as easy as sharing an Excel spreadsheet)
b) a coherent development environment from client to server code. Something that allowed you to write apps purely in Javascript (no css or html) with a GUI editor, and which also let you write the server code in node.js would be a close match to what I'm thinking of. Bonus points if most of the node.js code is derived from the client-side code, so that the novice programmer doesn't need to be aware that a server even exists, it just works.
The problem is, that's the kind of application that's really hard to write. It's big, an IDE in fact, and really Microsoft is the only game in town for making that sort of stuff. But they won't write Android / iOS / Mac clients, so it doesn't happen.
I'm finding these comments really fun to read, speaking as someone who spent years building and marketing exactly the product you describe. My feeling is that the other poster is right - there isn't much of a market there. Recall that even Microsoft didn't make (much) money off of Access - it just got used because it came pre-installed with Office. I'd love to be wrong about this.
> My suspicion is that Access is too hard for most business people, yet not powerful enough for actual developers to make something unique with.
At our company, we have an Access "thing" (it's not even an application, really) for generating listings of the phone numbers and birthdays of all the employees.
Recently, for no apparent reason, it stopped working. I consider myself moderately competent at getting up to speed with new development tools and reading myself into other people's code if I have to, but Access somehow is completely incomprehensible to me.
Maybe I was just missing something fundamental, but I found Access hugely frustrating and not intuitive at all. The general idea behind it seems actually kind of good, but the Microsoft chose to implement it is not exactly optimal. Also, as usual for MS, the complete lack of a manual made me want to strangle somebody. So, yeah, I totally agree with your statement. :)
The web has its own equivalent of the gtk bindings issue. For a new programmer, gluing together a load of different languages and libraries is a nightmare. For experienced programmers too.
> I think that's the web. The development that used to happen in VB6 & Delphi simply has migrated there, desktop apps from that segment are dead.
A lot of the internal desktop LOB application development that used to happen in VB or Delphi still is done on the desktop, but happens in Excel with VBScript. That trend was very much visible when VB (pre-VB.NET) was still current.
AFAICT, what displaced plain VB for much of its commercially-significant use wasn't VB.NET, or anything web-based, but -- and this was happening when VB was still current -- Excel (with VBScript), which was and is in many ways superior to VB as a visual rapid-application-development platform because you could do more without context-shifting out of the visual paradigm.
Of course, VB programmers may look down on Excel the same way lots of other programmers looked down on VB.
The irony is that the present day version of delphi is the best it has ever been, and competitive feature wise with other platforms, but because it has a non-trivial price tag everyone pretends it's defunct. The reality is that the only programming languages which remain are either open source, or the default solution for a mass market OS, and all of them are free. You can't build an entry level dev solution like classic vb or Delphi and sell it to hobbyists these days, so unless some open source developers make it happen for free, it won't happen.
There is Free Pascal[0] and their Lazarus IDE[1], which are free, open source, cross-platform and largely Delphi-compatible – but they still don't seem to be taking the world by storm.
Have a look at Lazarus (http://www.lazarus.freepascal.org/), which is basically Delphi 7 in a cross-platform open source version. It's not as stable as I'd like it to be, and some components are still missing, but it works well enough to be a more than viable alternative to '98 VB 6.
If you do things properly, PHP is maintainable... C is maintainable...
The problem is "properly" is surrounded by a lot of people who slap stuff together, reinvent the wheel (NIH syndrome) or just plain don't know how to program.
I shudder when I look at old VB code... and thank God that I have VS2013, resharper and C#.
I think the issue people have is "it's never as good as it used to be". You remember the good, forget the bad and glorify what used to be the pinnacle of technology. Windows 75. XP. Blackberry. Palm. OH WHY CAN'T THEY HAVE JUST LET US STAY WITH PERFECTION!!!
Sorry... Let me get off your lawn before that becomes an issue as well. :)
I have an i7, 16 GB RAM machine (with a 7,200 RPM HDD though), and when I had Resharper running Visual Studio 2013 would take 10+ seconds longer to load and lag horribly every time I opened a large class.
I tried all of their repair tips, but ultimately I think it it is just that laggy and slow by its nature and drags Visual Studio down with it.
I just couldn't justify the $149/year (effectively, due to the way upgrades work) cost. Plus Visual Studio 14 CTP adds many of Resharpers features natively and without any lag at all.
> I think the issue people have is "it's never as good as it used to be"
Part of it is probably that the computing world has become more complicated: A significant share of developers have left Windows, and clients want to play around on their iPads and Samsung tablets. It was much easier to be a "perfect" dev environment when absolutely everyone was running Windows.
VB6 supported classes, [standard] modules, and forms if I remember correctly. So while on paper it would possible to do things properly I'd say that was more the exception than the rule.
The main problem with VB6 was the modules. Modules were "any code here is thrown into the global scope" areas. Worse still they would execute with the caller's context, so you could mix in things like form logic (which would break if the form wasn't the caller).
This sounds great to newbies: "Ohh nice I'll just write a bunch of helper procedures/functions, throw them into a module and use them all over!"
However as projects grew so would the global scope of the application. You then have module function A which calls procedure B, and so on. So when it comes time to refactor some of this global craft into nice streamline classes it is pure hell as the application was never written with that in mind.
MVP in VB6 is largely a myth. I've never seen a legit VB6 application written in that style, and I've only seen it in context of articles talking about how things SHOULD be done. You want something like MVP? Then pick up a framework which enforces it or it won't happen.
Check out Oracle Application Express (APEX) - very quick for standing up applications, and provided free (as part of the DB) by a company that won't go away any time soon.
Note that Lazarus (http://www.lazarus.freepascal.org/) (Delphi clone, based on Free Pascal) works today and is somewhat like that. And it's Open Source and cross-platform (works on Windows, Linux, MacOSX).
But maybe it's still not simple enough. Also, Object Pascal is probably harder to learn than VB6, esp for a beginner.
I also started mostly with VB6 and still somewhat miss it... Nowadays I mostly use C++ and Python on Linux or MacOSX and have tried many many other languages in the meanwhile. But I still miss VB6 somehow.
Young programmers today tend to start with the Javascript family. There have probably never been languages with the same visual tools built in, rapidness of feedback and ease of sharing with friends.
My dad wasn't much of a programmer, he was a businessman. he had an old copy of vb6 that worked perfectly well and that was my first exposure to programming. Because of that, most other languages with their non-existent gui frameworks and messy IDEs seemed inferior in comparison as getting anything useful done on them was a pain. The jit interpretation allowed me to test my code without having to wait for compilation, at the same time, I can also export it as an compiled executable. Compiled vb is much faster than languages such as Python and Ruby that supposedly allow you to code fast. The current generation of .Net languages take ages to compile making test-driven development a huge pain sometimes.
I used to share similar feelings when VB.Net was first introduced. I couldn't believe there was no VB 7 and Visual Studio .Net was the official replacement. Having worked with .Net, winforms, MVC, webforms etc for over 10 years now, there is absolutely no comparison between the latest versions of Visual Studio and the archaic tools from VB 6 days. Yes, VB 6 starts faster, but that's pretty much where the pros end these days.
I hear ya about VB6, I think that making it incompatible with VB.Net was a mistake. But ASP.NET webforms? Ugh. I maintain a slightly older website using webforms, and it feels like I'm in the web development dark ages. Its a literal ghetto of tech that is used no where else.
Dunno. There's certainly a large appeal in being able to drag-n-drop controls out, double click a button and write "someControl.BackgroundColor = Red" and having it all just work.
I agree it isn't a great way to develop for the web, as in embracing web tech, but it's a very convenient way to make forms. Even having your controls keep state (the terrible viewstate) is quite convenient.
Have you ever been to corporate america? ASP.NET webforms is used heavily everywhere including but definitely not limited to marketing agencies, the financial sector (investment and banking down on through collection agencies), healthcare, call centers, etc etc etc.
If you approach a lot of those places and show them something like AngularJS they'll be like "where are all of the high-level tags and rich components that I can just drag and drop"? And then you'll realize that you're not actually in the ghetto.
There's a reason that webforms didn't die when Microsoft introduced MVC, but instead they started bringing MVC features into webforms because so many people use it.
Yes I work for a stereotypical .Net shop. Just because it's ubiquitous in the Enterprise doesn't mean it's not crap. I generally love MSFTs dev tools, but web forms are still a ghetto compared to MVC.
Sure, but it's crap that gets those Enterprises from A to B.
What I want to know is, what better crap is there that offers the ease of use that webforms does? If there's nothing better then this is the best crap we have.
It's kind of like how gas-guzzling, environment-ruining automobiles in general are crappy, but what practical alternatives exist that actually cover all of the use cases?
From my own perspective, I don't want to limit my career choices to the MSFT (enterprise) ghetto. At least with ASP.NET MVC you're at least using a paradigm that's common outside the enterprise-verse, and translates into being able to learn and pick up other stuff. As for web forms, unless you want to be limited to a niche, they don't seem that great for career advancement.
Programmers seem to as a matter of principle be vehemently opposed to the notion of cost / benefit being at least as important as "technical correctness" or whatever you want to call it. If its cheap, sustainable, and satisfies user requirements, that should be enough, should it not?
I see it as the same reason chefs don't like cutting carrots with table knives. It's a lot cheaper than a nice knife, and the carrots get all mushed up in the stew either way. But a nice knife is just a joy to use, and when you cut carrots all day, you want something that is a joy to use.
I don't disagree with a chef having a good knife to cut carrots, I disagree with a chef needing a new knife for every batch of carrots he cuts, especially when lesser chefs will have to come and tend to these carrots with special cuts (and you must understand these special cuts) 2, 3, 5 years down the road.
My knife isn't perfect, but I'll keep just it and no other life long if I have to. I don't need a new one for each batch of carrots.
But when collaborating on a curry, I don't want to use the same knife as the guy who cut the tomatoes wants to use. That knife looks blunt and rusty to me.
My first programming experience was in VB6. A local college had a week-long camp for middle-school kids to learn various things. A few of my friends and I took the programming unit as one of our two choices, and they taught VB6 (this was probably about 1999). We came back home with source code and executables, but missing the VB6 runtime and disappointed that we couldn't continue working on our programs. We even made screensavers! Anyways, one of my friends' uncles gave that friend a copy of VB6 that he pirated from the company he worked at. We made some other programs, but I haven't looked at them for a long time. Recently I found back the source code, but was disappointed to find that it could not be opened in VB.NET. Furthermore, it's stored mostly in binary files, so I can't even read much of the code.
It's probably for the best though - the code we wrote is almost certainly quite ugly and hacky, and I could certainly write the same programs much better today.
When i talk to people who want to start programming, especially young high school kids i often hear that they want to stay flexible. Flexible both in the platform/stack they are working with and flexible in what they can do with the language and toolset.
You may have stumbled upon a strategic product category: VB6 like development tools compiling to iOS Android and web, backed by Office, Azure and other Microsoft software and services. Has the potential to get businessesand developers back onto the Microsoft platforms.
> The holy grail for Microsoft would be getting developers to write new software for Windows again, putting Windows back at the center of a new virtuous circle.
And yet there is no currently properly supported way to write desktop applications for Windows! MFC = obsolete, WinForms = maintenance mode, WPF = Dead on arrival, WinRT = Metro only.
For all the people saying "web is where it's at", there are some things that are simply still best done on desktop. And native development in iOS and Android is still going strong.
AFAIK WPF isn't dead, its popular with line of business apps. But yeah, disappointing there's been only minor improvements to it in the last 4 years, during which they've been focusing their efforts on WinRT.
Oh I mean I use it almost every day and it has many good points, but the complete lack of interest from MS is obvious. I mean, even renaming a window doesn't work properly in Visual Studio. Most of it hasn't even been updated to use generics. It still uses DX9. But there's no better option.
Plain Win32 hasn't gone anywhere and with few days of work you can get an MFC-like framework up and running. Not the beginners task, but not a rocket science either. But the UI framework availability is not a cause of people writing less for Windows now than they did before. Far from it.
The problem was the high-level mesaging from Microsoft. They weren't about desktop anymore, apparently, but that's exactly where I make money being a Windows software developer. They were now mobile. They were Metro-shmetro. They wanted to leave behind everyhting that helped me make living by writing Windows apps and move on to conquer new domains. They neglected me and my interests. But I can say that I like how things are changing now. They put Start button back. They appear to be opening Windows Store to non-Metro apps. Good, excellent, they are on the right track... that's assuming they don't screw the hell out of Windows 10 with their Asimov telemtry bullshit, but it's an altogether different issue. At least they are paying a bit more attention to what people actually want instead of what Microsoft thinks they should be wanting.
The problem was the high-level mesaging from Microsoft. They weren't about desktop anymore, apparently
But that is just an impression, an interpretation, and probably a false one, no? I and lots of people I work with never treated it as such but rather like 'we also do touch&mobile now, next to the good old desktop'. That is what Windows 8/8.1 is for us and our customers: in essence Windows 7 + Metro. And it didn't affect the way we write our desktop software in any way. Except in practice that we have to press Win+D after login, not exactly a major overhaul.
On a sidenote: to us the fuzz over the start button is just a media-driven thing coming from people stuck in the point-and-click age of XP and earlier. Anyone doing serious computer work should be using keyboard shortcuts anyway. And hence wouldn't have any problems adapting to the lack of a point-and-click button when the 'Win key + start typing what you're looking for' does exacty te same, and has been doing that for quite some time.
How on earth is MFC obsolete? Old yes, but it works fine. If you want a standard Windows application in C++ it's what you use. C# is more common for new projects though, and replaces Visual Basic as the line-of-business app builder of choice.
I've concluded that Windows Forms is the least bad of the official Microsoft GUI frameworks.
MFC is OK if you can accept its crufty old flavor of C++. But it wouldn't allow for much sharing of code between Windows desktop apps and modern (Metro) apps, whereas a .NET-based solution would let you share non-GUI code easily.
WPF was developed for a relatively short period of time, starting in the early 2000s, and then basically abandoned. Windows Forms may not be much older than WPF, and both are apparently now in maintenance mode, but Windows Forms has the advantage of being based on the Windows API and common controls, which have been developed since Windows 1.0 in 1985. WPF was all new technology; it used the older Windows APIs only as much as it had to. So Windows Forms is based on the tried and true foundation for Windows GUIs.
This is a bit fuzzy, but it seems to me that WPF reflects the rich-client excesses of its time. In the early to mid 2000s, Microsoft and Sun (with Java/Swing) were trying very hard to be better than web apps. For Microsoft with WPF, this meant building the whole framework on a very advanced graphics subsystem, the then-cutting-edge Direct3D 9. I dare say they didn't care much about running well on older or less capable hardware; they just wanted to take full advantage of what the latest hardware could offer. By contrast, the Windows GDI and USER subsystems were designed to run on primitive raster graphics hardware, so Windows Forms apps benefit from the relatively low system requirements.
Now I'd like to present a case study in how the excesses of WPF resulted in a less than satisfactory user experience for a niche application where WPF's advanced graphics capabilities were almost certainly unnecessary. My brother is a Christian minister. About three years ago at Christmas time, while he was still a seminary student, he told me about how his then-current laptop wasn't serving him well any more. Among other things, he mentioned that the Logos Bible study software he used wasn't running efficiently, and that for reasons unknown to him, Logos was unusually demanding when it comes to graphics hardware. This seemed anomalous at the time; a program like Logos is little more than a text viewer and editor. I didn't dig into that at the time, though; I just bought him a new laptop.
You can guess where this is going. Tonight, during my wandering about the Web, I happened to find out that starting with version 4, Logos was based on WPF. I made the connection with the conversation from three years ago, and confirmed that the excessive demands on graphics hardware were really an issue. See, for example, this forum thread from 2009:
I feel bad for the users who had to take time out from their real work to post on a forum like this about technical minutiae like video card specs. At least one user justifiably questioned why a text-based research program like Logos would require a cutting-edge video card. We who develop end-user-facing software should take this as a lesson in how not to make our users happy, by prioritizing developer convenience and/or gratuitous use of cutting-edge technology over delivering a good user experience on the hardware that users actually have.
There's not much in the newer wave of technology from Microsoft I find useful. In addition to your point, WPF (XAML) is without a doubt a better HTML, and yet can at times be as brittle as HTML. Workflow Foundation is conceptually good, but it's a beast - I'm constantly thinking it's a workflow-flavoured instance of dependency injection. WCF is better, but then I don't use it for more than what I used to do with server-activated objects in Remoting. LINQ is what makes C# and Visual Basic.Net functional, and it's cool for that - but LINQ a big no-no for perf-sensitive code paths. Too much plumbing. MFC is veeeery familiar, but not as fast (dev time) as .Net, so I stick with WinForms. Which does a reasonable job of OO for UI.
(I think) it's not hard to understand where microsoft went wrong. Ballmer just doesn't seem to get where the industry is going. As evidence, this quote from the article:
Indeed, Ballmer seemed to have no intention of leaving when he announced a
massive reorganization of the entire company in July 2013. Behind the scenes
he had also begun negotiating an acquisition that was meant to transform
Microsoft. He had become convinced that the company had to make hardware
too. The reason why goes back to his chart. The two companies which have
seen the greatest increases in the share of profits they take are Apple and
Samsung, particularly Apple, whose share of the technology industry’s
profits leapt from 7 percent in 2008 to 21 percent in 2013. To Ballmer, the
message was clear, and so, in December 2012, he began talking to the Finnish
smartphone-maker, Nokia, whose C.E.O., Stephen Elop, had worked at
Microsoft. There was a defensive reason for the deal as well as an offensive
one. Nokia was pretty much the only company left that was making Windows
phones. If Nokia went under, what would happen to Microsoft’s phone business?
Apple and Samsung's phone businesses are entirely different. Apple is selling ios to the high and middle end market. Samsung is getting devoured from the bottom, because there is very little difference between android oems, whereas Apple doesn't need (or want!) the bottom. It's pretty amazing that someone like Ballmer wouldn't see that coming, given that Xiaomi and the other chinese competitors are running a classic competitive playbook on Samsung.
Stratechery has written about this at length, though I don't recall if it was clearly discussed in a single article or my mental synthesis from a collection. Either way, differentiated companies -- apple -- require completely different strategies than nondifferentiated -- samsung.
That might be one of the mistakes, but it isn't the start of the problem. Tangibly, it's either United States v. Microsoft Corporation or Longhorn / Vista.
Intangibly, it's the attitude that permeated the company that said "we are right because we are Microsoft." There were few people you could talk to who'd think you had anything to offer someone who worked at Microsoft. You still see this today around products like Bing, IE, Xbox and Azure (I know the last 2 are popular, but the xbox has been a loss leader (and what it's leading too isn't clear yet) and Azure, like everyone else, is being crushed by Amazon (it really is, they spend a ton more money and get a fraction of the market (that's Bing-style success!))
I remember a story from the only time I was on their campus. An employee (I remember his name) was telling me how they wanted to make IIS great, so they hired an expert Apache consultant to learn more about apache. I'm listening, thinking "wow, this is great, they're really interested in bettering themselves." He then proudly went on to tell me how the Apache expert had an amusingly outdated understanding of IIS and by the end of the gig they'd convinced him of how great IIS was. They'd literally rather pay people to tell them how great they are, then admit they might have something to learn.
This perfectly encapsulated my time as a .NET developer. Lucky this was at the start of an MVP conference, so I took the hint, skipped most of the conference and visited Seattle (oh, but I did attend 1 talk where the speaker said Visual Studio would add a color picker and people applauded him).
This rings true. I had some relations with Microsoft last year and it's incredible how inward-looking they are. They spend most of the time telling you how great everything Microsoft-like is or will be, and don't seem to be well aware of the outside world.
They know there are things like iPhones and Android devices, but they appear truly baffled that anyone would want one. They think it's some kind of conspiratory rebellion, that the world uses those out of spite for Microsoft.
Yeah, the coldest summer I ever spent in Seattle was hauling an iPad around meetings at Redmond. One L69 had this very pointed way of staring at the tablet, then at the big red clock, then back again. Keep in mind, I was part of a team coming in as a prospective customer. Just very weird.
I still have hopes for Nadella -- maybe just because I'm an old Sun warhorse -- but it's going to require a big rethink of MSFT, which right now is basically just a cash pile in search of a market. Changing the burn rate is just playing at the margins (layoffs are not a strategy), and if there's a big plan underlying the Mojang acquisition it's incomprehensible to me on both strategic and financial levels. Likewise, mass-producing Perceptive Pixel displays, while undoubtedly cool, is both fiendishly difficult (PP was basically a garage manufactory, so this is a software company figuring out how to scale up a product that has never been mass-produced) and not something that can push market dominance. Buying Nokia kept MSFT in the mobile space at a very high price, but really only purchased time and space, not a turnkey strategy.
Having said all that, it seems to me that there are two companies on the auction block right now that could give Redmond the germ of a strategy. Both Xamarin and Unity would fit very comfortably in what is arguably MSFT's wheelhouse -- software development tools -- while giving the company a way to seamlessly increase their mobile app ecosystem.
> the coldest summer I ever spent in Seattle was hauling an iPad around meetings at Redmond
> [from the article] “[Ballmer's] view was that anyone in the company who used the iPhone was a traitor,” says this person. “His dad worked for Ford, and that meant you had Ford in your garage.”
This attitude drives me nuts. The best thing Ford and GM could have done in 1985 would have been to buy Civics and Corollas for 10% of their employees so they could see for themselves what was so good about them. But no, instead they had this adolescent "be true to your school" thing going on.
The same clearly applies to Microsoft. I hope Nadella gets that business is not a repeat of high school.
Beautifully put. Used to work there and the inner navel gazing was painful. People assumed loyalty meant blindly ignoring competing products under the guise of "dogfooding". They would dismiss competitive products almost in disbelief that people would use them (without ever have tried!).
With most companies, the center of gravity is obviously on the customer side. The customer, and the market, is ultimately the boss. With the customer lies the product/market fit, the fickle and life-giving revenue stream, the demand that drives features and product and ultimately existential corporate strategy.
But when you achieve the dominance and size and cash hoard of Microsoft, that center of gravity shifts -- the company becomes so powerful and massive that it generates its own gravity. There is the luxury of a cushion so large that it recedes to infinity, distorting strategy to the point where the necessity of its convergence with the customer may no longer be explicitly contemplated. The wooing of the customer is supplanted by an eternal dance of indoctrinated partners in the ecosystem ballroom. The objective financial success of the arrangement trumpets it to become ever more like itself, unfettered and unfed by the market forces and demand that anneal smaller and more nimble competitors.
And so, numbly disconnected from the healthy signals of the natural customer-centric gravitational pull, this dominant entity finally reaches the ballistic apex of its trajectory, unpowered by the thrust of customer focus, and begins its gradual descent. Maybe the law of large numbers, with respect to enterprise growth, is really more of an inward-looking organizational behavior problem than one of stock market psychology.
Just curious, do you work for Microsoft? Last I heard, Azure was doing pretty well, considering Office 365, TFS and a host of other internal services are hosted on it. They seem to be the most formidable competition to AWS right now (and I believe that, I tried all GCE, AWS and Azure over the weekend and while AWS was the best, Azure was a close second while GCE was just slow and buggy).
No, I don't. Also, my view of Azure pretty much comes from experience with it long ago and a year-old Gartner analysis [1]. I can easily accept that Azure is very different than it used to be. I can also easily accept that it's doing better against AWS than anyone else.
But I'd need hard numbers to refute that Gartner analysis. Spending 50% more than your competitor and having a market share less than 1/5 (probably a lot more, since the 1/5 is 15 providers combined), is something I struggle to call "success". I'd be less harsh if this didn't fit a pattern. And I know spending more and having less is the price that challengers face, but again, not being an incumbent (and failing to mount a real challenge) is a pattern we've seen before.
IIS has a fundamentally technically superior architecture to Apache, thanks to Windows having a technically superior architecture for doing high performance multi-threaded asynchronous I/O (overlapped I/O and I/O completion ports).
Either way, differentiated companies -- apple -- require completely different strategies than nondifferentiated -- samsung.
How is Apple differentiated? To a user that wants a smartphone to send emails, visit websites, play fantasy football, take pictures, etc, Apple is every bit in competition with Xiaomi as Samsung is.
To many, many users, smartphones are effectively a commodity now.
Which is why Apple devices feature some of the best screens, the best cameras, the best processors. Any illusions that Apple isn't fighting the competitive fight, and hard, is just contrived nonsense. They are fighting damn hard to make a compelling case for their devices, and doing a good job at it.
whereas Apple doesn't need (or want!) the bottom
Apple still makes and sells the iPhone 4S, a three year old device. You can get this in the $200-ish range. Further most of Apple's pricing has been contingent upon the scam that are cell phone contracts, where right now you can get the iPhone 5, for instance, for "$0". That is, by most definitions, the "low end".
Apple stopped selling it on their website. I heard they've stopped producing it and what you see in stores now is the remaining stock - what's your source that they're still making it?
Furthermore, the virgin mobile link you gave is for no contract - but locked phone. While it's not comparable to $200-with-a-2-year-contract, it is also not comparable to an unlocked phone.
Most competitive makes don't sell their devices on their website at all. That really doesn't demonstrate anything.
Not only does Apple still manufacture the 4S, they recently restarted production of the iPhone 4 (sans S) for the developing world. I would cite this, but you can find references everywhere and with ease, so that hardly seems necessary.
> Most competitive makes don't sell their devices on their website at all. That really doesn't demonstrate anything.
And yet, Apple does, so it's a hint. They've been selling 4S on their website up until a month ago.
> I would cite this, but you can find references everywhere and with ease, so that hardly seems necessary.
It took you longer to write this than it would have to google a reference and post it. But then you would have noticed that (a) it is all rumors, and (b) it is from February - 8 months is a long long time in manufacturing.
Markets have segments. Apple decided to sell their 4S through other channels in the US (they still sell it on their site in Brazil, which I guess by your logic proves that they still manufacture it. That is a country of 200 million), likely to continue this absurd and so easily disproven myth, repeated in here, that they only chase the high end.
But then you would have noticed that (a) it is all rumors, and (b) it is from February - 8 months is a long long time in manufacturing.
It actually isn't hard at all, nor are they rumor sites. I'll give you a hint -- Apple moved all iPhone 4s and 4 production to a manufacturer called Pegatron. And before you implore me to provide the research for you, how about you demonstrate a single credible source that Apple ever stopped manufacturing it?
No, wikipedia isn't credible. Can you find a source that says the 2007 first generation iPhone is no longer in production? By your logic, it is still in production.
It's possible that you are a party to non public knowledge. All power to you. But the public knowledge I was able to find does not support your assertion.
> Apple still makes and sells the iPhone 4S, a three year old device. You can get this in the $200-ish range. Further most of Apple's pricing has been contingent upon the scam that are cell phone contracts, where right now you can get the iPhone 5, for instance, for "$0". That is, by most definitions, the "low end".
No, the consumers on the real low end of the cell phone market can't afford or can't get approved to have a contract. Most phone makers chase this market in some way, Apple doesn't.
Most phone makers chase this market in some way, Apple doesn't.
Except that they still make and sell the iPhone 4s. That is absolutely and undeniably chasing the "very low end" market (it's $199 no contract, which is pretty bottom tier).
Now I suppose we can just keep arguing this down, but historically Samsung was "Chasing the low end" because their devices were $0 on a contract (ergo, in the $600 range. The iPhone 5s is currently $0 on a contract). Now that floor keeps falling, Apple is selling a $200 device, and we're still going to argue that they super don't care about the low end, and they're some sort of exclusive device despite burger flipping teenagers buying it?
Don't forget marketing. I don't think anyone plays the marketing game better than Apple. They are essentially marketing themselves as different and the fact that it works is nothing short of miraculous in the face of actuality!
Samsung spends significantly more on marketing their mobile devices than Apple does. Not just a little more, a lot more [1]. Not just advertising, but deals with carriers to pay bonuses to retail staff for selling the devices. Microsoft doesn't spend quite as much promoting Windows Phone and the Surface, but it's still a lot more than Apple [2].
Marketing, at best, gets customers in the door. It doesn't generate brand loyalty or repeat customers, and marketing alone certainly doesn't sustain a company or product line for years (or decades!) on end. The "Apple is all marketing" trope is usually invoked in discussions that are more about tribalism than analysis, by otherwise-rational people making a conscious decision to not accept the fact that there are other rational people in the world who see value in things that they don't.
I'm sure there's no shortage of people who will read this and immediately have a knee-jerk reaction along the lines of, "yeah, OK, maybe Apple spends way less on marketing than those other companies, but that just proves that they have magically effective marketing, because there's no other possible explanation for their success!" If there is a litmus test for rationality, they just failed it. A more plausible explanation is that success in business is a combination of a lot of different things- every company/tech/device/platform has a unique fingerprint of pros and cons that help it or hurt it in different market segments, and there is no perfect combination of any of those things. It's the ability to say, "I don't see value in this, but I can see how other people who care about different things might like it". This is an incredibly valuable ability to have, and people should be actively cultivating it if they want to make a positive difference in the industry.
Samsung spends significantly more on marketing their mobile devices than Apple does.
Samsung is estimated to have spent, in total, $364 million in 2013 in the US. Apple is estimated to have spent $350 million. Is that really "significantly more", especially given that Samsung's total mobile device market is wider than Apple's (e.g. feature phones and so on).
Indeed, thinking in terms of purely smartphones -- I see at least four Apple ads for every one Samsung ad I see. Maybe it's just my market (Toronto area), but there is absolutely no question that Apple's conventional ad spend, and their partnerships with carriers (that pollutes the numbers a bit), absolutely dwarfs Samsung's.
But of course Apple succeeds because they achieve excellence in all areas. As I mentioned elsewhere, they sure as hell are trying to compete, and anyone that argues that they live on some other plane, free of competition, is deluded.
The "bonuses to retail staff" thing, as an aside, seems to be some invention that appeared to justify Android sales, which clearly had to be caused by nefarious interference than consumer choice.
The number I gave was Samsung and Apple US spend for promotions on mobile. The Asymco link you gave is for Samsung Electronics, which is the whole that makes televisions, cameras, printers, semiconductors, and so on. That number is a garbage comparison, but somehow, and conveniently, it is the one that is always referenced when pushing the "Samsung advertises so much more" angle.
>I put the A-team resources on Longhorn, not on phones or browsers.
Hilarious. It wasn't the lack of an A-team resource on browsers, it was the lack of any team. Microsoft just left browsers there and did nothing.
Microsoft's other big sin is counting on its hardware partners. They could have preempted the iPod, for instance, but they just hoped Creative and others would deliver a great experience, while they sat back and wrote the software and cashed in on licenses. Same for tablets. Tablet PCs were great in the 00s, and I loved using them. Except, they were clunky and had little mass appeal. Once again, MS just counted on its partners and never gave a thought to the full experience.
Also, the fact that Windows still is touch/pen unfriendly outside of Metro just shows they Don't Get It. Instead of working on some tech to make Windows work well across all its apps, they ditch everything and hope Metro will work. It's hard to imagine that anyone could be so myopic.
> Microsoft just left browsers there and did nothing.
Yes, but wasn't that intentional? Once IE4, then 6, had conquered the world, the point was to keep people from leaving Windows for the Web, and so IE dev was stopped dead.
Actually I still argue that tabs are a Bad Thing. Developers have taken a thing that SHOULD be handled by the window manager, and written their own way of doing it -- every application slightly differently, naturally.
It's not as big a deal on Windows where the look+feel of various applications was always inconsistent as hell -- remember when Trillian was the most popular IM client, it seemed like in those days virtually every application handled windowing differently, it was terrible.
But it's a bigger issue on OS X and in Linux. Since both have functionality to cycle through windows of a given application, tabs become less important. Of course, we still end up with visual clutter, so even luddites like myself use tabs now and again. But this should really be implemented as an OS feature, not on a per-application basis.
Google, of course, vehemently disagrees, since they implement their own terrible look-and-feel everywhere. (see: crappy windowing inside of GMail, crappy windowing behavior of Hangouts, etc).
If you really want the window manager to handle your browser windows then just open new windows instead of opening tabs. All of your window manager's fancy window switching features, etc. will work.
I think the problem isn't that tabbed browsing exists, but that window managers are not good enough to handle user experience as well as tabbed browsing does.
Apple has started to embrace tabs within the system, most notably by integrating them into Finder windows in Mavericks. I agree that they should make it a standard type of application and have a standard tab UI that is used in as many apps as possible.
MS has been trying with pen/touch for ages. They had a "Windows for Pen Computing" way back in the 3.1 days. It's not that they have not been trying. The WIMP desktop and app model just doesn't work well with touch. Apple wisely forked the interface because no one has been able to do a single interface that's any good.
MSR had a neat little thing that allowed some sort of "snap to UI element" functionality. That way, targeting a 16x16px thing like "close tab" wouldn't be so difficult.
Or they could have some sort of gesture that lets me go into a high accuracy mode. Or really, anything at all to make it easy to deal with. But nope, your finger becomes the new cursor and that's that.
Win8 does implement fuzzy touch targeting (looking at the geometry of your entire finger contact region instead of a single point, and picking a best-match UI element) on the desktop. Office 2013 (desktop) also invested in a bunch of touch improvements. It hasn't been enough. (plus, they already tried this approach with touch on win7 and it didn't seem to be working - which, among other reasons, was why they changed tack for win8 in the first place.)
A good touch UI is not a good pointer-based UI and vice versa.
A touch UI needs large hit zones, benefits from natural drag/scroll, has only one kind of click but can have multiple touchpoints.
A pointer UI can use very compact and precise interaction areas (text selection is a great example), right- and option-clicks and has very old conventions for drag and scroll.
Saying that Windows is touch unfriendly is missing the point of it being very pointer friendly.
Apple is slowly bringing the two paradigms closer, and people complain at each step.
More oft repeated history apart from the later part of the article which discusses the present and the future direction.
"The holy grail for Microsoft would be getting developers to write new software for Windows again ", this necessarily isn't true. The developer go where users and money are. And users not necessarily go to devices which have lot of apps. This might sound like a chicken and egg problem, but look at amazon, if developers are writing software for its devices, Amazon is bootstrapping its devices with software. I take out the other devices, the desktop and servers, might not have as much impact as it may sound.
Second, Xbox, Bing, may sound looser, but they may be interesting in the next round of battle. The smart phone battle is more or less is over and it is not going to make much difference, but the future of the smart device fields will be another story, if only MS can concentrate on the future in coherent way.
There is a Macintosh in the background of the picture "JUST KIDS Gates and former C.E.O. Steve Ballmer at Microsoft’s offices in Bellevue, 1985."
Not unexpected given the date and the relationship between Apple and Microsoft at the time, but interesting that it shares the desk (albeit off in a corner) with the IBM-PC.
I can tell they brainwashed you well in Cupertino. ;) They probably left out the part where Jobs borrowed the ideas for the Mac from Xerox I suspect too.
More accurately, there is probably a Mac here because they were building Office for it.
Nah. All the cool kids in the 80's wanted the Amiga. The Mac was a toy. The story of Jobs' visit to Xerox Parc is well documented. They paid a million dollars for the visits.
People tend to forget there were many players out there back in the day. Amoga was so far ahead in 'multimedia' infront of Pc and Mac that it's not even comparable until 486 era. Not to mention SGI and Sun machines. Pretending that Mac was some kind of single origin of everything or Pc being a toure de force is just wrong.
As Microsoft surpassed Apple and of course Amiga to become the absolute necessity of practicality that they are today, I don't think they cared as much about what the "cool kids" wanted.
I think it's apparent and I am thankful that Microsoft didn't copy Apple's UI and instead went with a much more practical and utilitarian approach than Apple. This along with Microsoft's business model obviously works better for the mass market and has stood the test of time whereas Apple has capitulated many times both on their UI principles and on their business model.
That's great that Apple is making money. How does that affect your life?
I'm just so glad that I don't see Apple computers when I walk into 90% of the offices around the world where their business model simply couldn't survive.
Realistically... the biggest reason for irrelevance is Microsoft's concept that an operating system should be a prime source of revenue. An OS is the garden you want people to come to so you have prime real estate to sell your wares. Charging admission works great if you're the only garden in town... and not so much if you're not. Microsoft is putting itself into this position by forcing the market to move into the other, more easily accessible gardens. It has very little to do with UX/UI or anything like that. Most consumers actually don't want to learn how to do anything new if they can ever help it.
I'm constantly amazed that all these "experts" haven't figured out what happened to the 800 pound gorilla. Quite simply put, other gardens that people could live with and easier to access suddenly showed up. The vendors making and selling their wares went to the place people were at or wanted to go to. Its simple economics and you can point directly to the people who decided that WGA was a good idea for killing MS. Piracy itself is what made windows dominant to begin with.
> Around three-quarters of Microsoft’s profits come from the two fabulously successful products on which the company was built: the Windows operating system, which essentially makes personal computers run, and Office, the suite of applications that includes Word, Excel, and PowerPoint.
All of which are on quite shaky grounds with competition eating at them. MS know they can't keep these cash cows forever.
Bethany McLean is the best in business writing. The Smartest Guys in the Room was fantastic.
As for Microsoft: the adage goes that success has many fathers. Failure has even more. It would have been nothing short of amazing if Microsoft was as dominant now as it was in the early days of PCs.
A long but intense article. I read just to test my attention span. The result weren't good, but I managed to finish the article in a single sitting, albeit with a couple of YouTube video watches in between.
One thing I hold bitterly against Microsoft is their abuse of monopoly. During the time they were kings of technology, there was little progress in Browser market, OS market, both PCs and phones. But I believe Microsoft has learnt their lesson, and under Nadella, the company is going to take the community along with it.
Hey, I just started as Director of Engineering at VanityFair, and I can definitely agree with you our site is in much need of a UX overhaul. We are working to address the points you made plus may more issues that affect the site.
There is something to be said for getting to HTML paragraphs and lists, and then stopping.
None of this "Everybody has a 2048 pixel wide monitor to view my 4 huge columns in" (I used divs instead of tables, so it's OK that it takes 2 K pixels to render, right? Right?)
Yes, it is "drunk or high or Alex Jones"-level idiocy. It is, in fact, fractally stupid: Believing it requires you believe multiple other things, each of which is just as dumb as the whole. For example, it requires you to believe the following things are evil: GMOs in general, vaccines, and wanting to reduce the world's population.
I'm not high or stupid. Eugenics has earned a very poor reputation, but its advocacy is still going strong under other names. Bill Gates and his family have a long history of promoting it, unfortunately.
Microsoft seems to be a crumbling empire. They seem not even able to maintain their websites. Here is a message I got today from Microsoft Azure: "NO ACTION REQUIRED: We want to notify you of an upcoming maintenance operation to your Virtual Machines in West Europe, starting at 23:00 Saturday, October 18th UTC. Single instance virtual machine deployments that are not in availability sets will reboot once during this maintenance operation. We expect the update to finish within six to eight hours of the start time. Please note that Cloud Services using Web or Worker roles aren't impacted by this maintenance operation. This link contains additional information: http://aka.ms/vax58". The link they give leads to a 404 error.
It's not the first time they send broken links. I've also received some in marketing emails from them. And it's not the only issue with Microsoft, but it's illustrative for how they are unable to manage the complexity of their stuff.
This is exciting for me because I absolutely love .net and friends, but I'm also a Linux engineer and lean heavily toward open source and cross platform technologies. In recent years I have noted that with the existence of mono and mono develop(xamarin) C#/F# is right on the verge of being an excellent choice for open source tools and projects. I've been lamenting the fact that Microsoft's early platform lock in approach has prevented .net from being a serious java alternative(or the alternative it deserves to be). Its nature stiffling the open source ecosysytem .
The outlook has been getting rosier over the past 2 years though. Now we have OWIN, ASP.NET vNext, MVC6, entity framework 7, F#, and a strange officially unofficial interest in mono. Projects on github! These are welcome steps in an attempt to boost relevancy IMHO.