Hacker News new | past | comments | ask | show | jobs | submit login
Microsoft Pulling Free Development Tools for Windows 8 Desktop Apps (engadget.com)
88 points by mrclownpants on May 25, 2012 | hide | past | web | favorite | 78 comments

Just another step towards a closed, locked down world where every app is vetted, approved and ultimately constrained to not compete with the business interests of the two largest tech companies in the world.

I know, people will say, this hardly makes a difference, right? But all the steps hardly make a difference. OSX Mountain Lion defaulting to only allow apps signed with a certificate from Apple? Why, the user can just disable that ... not including Flash or Java? Sure, just install them! It all hardly makes a difference. But all these steps put together - they make a difference!

Slowly and surely we're being led like lambs to the slaughter to a world where everything we say or do with our technology will be under the control of giant tech companies that ultimately care only about their own profit. This is just one more little step to ensure that developers preferentially make apps for Microsoft's walled garden rather than free apps that run anywhere and might compete with their interests.

Edit: correction about Mac App store vs signed apps

I'd hate to say it but this is where we are going and this includes the web as well. The web is becoming less open and freedoms that once existed are disappearing. China, Iran, SOPA, PIPA, etc. are evidence of this.

The future isn't all that dark but it certainly seems like the "wild west" days of computing are coming to an end.

I think most would agree that this trend is there - the debate is how much it matters, how long it will last, and what, if anything, we should do about it.

One point however: in Mountain Lion, the default is to allow any signed app to be run. One alternative setting is to only allow App Store apps. The other, likely more popular, alternative setting is to allow any app.

I do think it matters a lot. If the Windows and Mac platforms are only accessible through App Stores then we, developers, will have to pay whatever royalty or percentage those companies see fit to charge. We may also lose the ability to publish software at all to those platforms if they so decide without much notice and maybe even without recourse.

Although we could pass the expense of the App Store or absorb the cost, I guess most software companies would go bankrupt if Microsoft or Apple cancelled their accounts.

Thanks - updated my post to reflect this.

I used Linux on the desktop/laptop for a long time, then switched to Mac. Looks like I might have to contemplate a switch back in the next few years.

It would be hard, but if they do actually push a totally locked down iOS-style platform it'll be the end.

Although I think HTML5 is actually a pretty lousy software stack for application development, I'm becoming more and more sympathetic to the arguments that the evolution of the web is absolutely essential for the survival of free & open computing.

It was bad enough that their mobile platforms are so locked down, but with Apple and Microsoft now turning the screws ever tighter on their previously open desktop platforms and development tools the future is looking grim. Remember, once a freedom is relinquished it can be very difficult to get it back.

As much as I dislike trying to build complex apps on the web stack I'm starting to feel an almost moral obligation as a hacker to throw my weight behind the web, for whatever it's worth.

> Remember, once a freedom is relinquished it can be very difficult to get it back.

No, it's not. I'm a huge, huge MS fanboi. I've used WP7 since it launched, I've been using Windows full time for quite a few years now and love it, I'm a huge .NET fan, etc. But about two weeks ago, I switched back to using Linux full-time. I only plan on using Windows in VMs for running software I'm reversing; everything else will be done natively under Linux.

Windows 8 on ARM being so locked down was the last straw. I'm done playing their game, even if it means a slight drop in productivity in the short term.

You have that option because some people have done the hard work of building Linux into a viable alternative. If we collectively do the easy thing and submit to these new controls those alternatives may cease to exist. I think these new walled garden platforms are a real threat to the open web.

But I applaud your willingness to put principle before convenience. I've been working almost exclusively on iOS apps for the last year and I really enjoy the platform but it bothers my conscience.

About your productivity levels, don't worry about it because in the end you'll end up being much more productive.

The one thing you must do is to embrace the Unix way of doing things. Learn the basic command-line tools and use them daily. Learn to use Emacs, because the same shortcuts are available in the shell.

This book is great btw: Unix Power Tools (http://amzn.to/Klexhf)

Another thing you have to realize is that Unix was built for polyglots. Many Windows developers usually stay within the walls of .NET, but on Unix that's a mistake. Learn Java, learn a good scripting language (I recommend Ruby because it is great for scripting, has a thriving community and can also run on top of the JVM), learn C along with the POSIX APIs.

Eclipse or IntelliJ IDEA are good substitutes for Visual Studio, however I work with Emacs, because in dynamic languages the APIs and workflow are optimized for non-IDE usage and an IDE just stays in my way. I still use an IDE for Java, but that's only because in Java I can't drop to a REPL.

Also, Linux is great for your desktop, but only if you have hardware that's compatible with it. So be careful when picking hardware and do some reading first, otherwise it will ruin your mood. OS X is also an option btw, but I wouldn't make long-term commitments to this platform because Apple is even worse than Microsoft in some regards.

I've been using Linux since 1999, ran it full time for many years. However, my productivity is still diminished, primarily due to the lack of decent reversing tools. IDA 6 is ok on Linux, but that's about where it ends. Eventually I'll build my tools up again, but it's a long climb.

Agreed. It's unfortunate. I'm not an open source or freedom zealot but good gawd the open web is what gave birth to all the awesomeness we have. Take away "open" and we'll end up with a bunch of software on all of our mobile phones that's the equivalent of IE6 in 2012.

No, Unix gave us that awesomeness. including giving us the open web.

> the evolution of the web is absolutely essential for the survival of free & open computing.

I don't understand the connection. How many of the web services we use are open source? A native program I buy may be closed source, but it runs on my computer and storage and is updated on my terms. I can even legally crack it if that's what it takes to keep it running (as far as I understand German laws). If I use an open-source OS and an open-source web browser to access a standards-based HTML5 web service, what interesting freedom do I have?

Now, Metro may offer a better deal by encouraging local HTML5 apps. But I still think the Open Web is something that underdog browsers should care about, neither users nor developers.

Openess has many layers - this is about Microsoft dictating to developers what they can and cannot do on their platform.

On the web everybody is welcome. If you don't like any of Google's services, you can create your own clone, and people can use it by just entering an URL in a browser.

Now imagine for a second how 2012 would look like if Microsoft banned Firefox because it "duplicates existing functionality" or other such invented guideline for the good of their app store ... because that's the direction Microsoft and Apple are taking us. And btw, just so you know, Firefox or Chrome cannot run on top of Metro.

If I use an open-source OS and an open-source web browser to access a standards-based HTML5 web service, what interesting freedom do I have?

You have the freedom to use a site built by anyone, anywhere in the world, for any purpose, using any tools or process they like. If you limit yourself to these new appstores you can't run anything that wasn't approved by the gatekeeper.

And if you think Microsoft or Apple abuse their authority now just wait until they have nothing to fear.

In my view, locked down desktops and web apps are just two different ways of taking away freedoms.

The difference is that web apps give you something in return. They allow you to run software without having to buy and support all the required hardware.

A desktop restricted to running apps from an App Store takes away freedoms without providing anything of any additional value for competent users.

I think the really critical difference is that Apple and Microsoft can't tell me what "apps" I may or may not run on the web but they do demand this privilege on their mobile devices and seem to be making moves towards insisting on it on the desktop too.

"the web" is just a platform. For some applications it makes sense, for other not so much.

I spend maybe 8 to 12 hours a day in front of some very classic laptops or desktop PCs, and I'm happy with low-latency desktop programs. I don't anticipate this to change.

Maybe the industry sells more mobile devices these days, and that makes it easy to for people to go "all mobile" or "all html5", but a good amount of being actually productive still happens on the old school desktop.

But both Apple and Microsoft appear to be making moves to lock down the desktop too. In many cases I prefer native apps too but I don't like Apple or MS telling me what I can and can't install on my computer.

Well said. However, we can go to back the open platforms, like Android.

Honest question: how open is Android? I mean, when you consider Play. Can you write/submit an end-user programming app like Scratch? I know we can always dev-unlock the device and install anything we want, but what about the kid with an Android tablet who wants to start hacking?

I'm worried about this move to walled gardens on all the platforms. The desktop is one of the last bastions of openness, but its not really evolving. Could we have cake (openness) and eat it to (app store where devs can make money, at least easily distribute their possibly creation-oriented apps)?

Android is not as open as I would like, but most devices still let you tick one checkbox in the preferences and then install whatever you like. The tools are open and free and work on Mac/Win/Linux.

I think people wildly overestimate how much money the typical app can make in any of the app stores but I do think it's important that we find ways to make it easier to monetize web apps.

> Can you write/submit an end-user programming app like Scratch?

Yes, you can. e.g AIDE : https://play.google.com/store/apps/details?id=com.aide.ui

Android isn't google play. You can install any apk files you want onto your android device. No hacking or rooting or jail breaking required.

at least you can write an app and install it on your device without JB. That is already a huge advantage over iOS. Android is changing rapidly and we don't know what the future will be, however, we all know where iOS/MacOSX/windows will be heading. For me, it is no brainer -- i have to jump off their boats ASAP.

Won't the first thing the kid with an Android tablet who wants to start hacking do would be to learn how any application can be installed in the device?

I'm coming to hold this view as well. A much as I dislike web development in general, I plan to do more work there to hedge against this. I like for my software to run anywhere I need it and a web browser seems to be the only place it'll run without vendor interference, but I wonder when they may start attacking browsers?

Will the web be the most "open" platform in the long run though?

What happens if services like amazon AWS put smaller hosts out of business and services like facebook become so ubiquitous that they are considered the "gateway" to the web and most web services are built on top of these APIs?

I've been thinking about this for a while - if they (or we?) break this internet we have, can we make a new one, hidden from those who would break it? Would it require new infrastructure or could it be hidden inside the 'normal' net?


Do you have more information about how this could work?

This doesn't really seem like news to me. I've never met anybody doing real development in the .NET world who didn't have a paid copy of VS.NET.

With BizSpark or similar, you're looking at something like $400 total to get as many copies of VS.NET as you need for your entire team. And all the other dev tools everybody needs. And Windows licenses for all their boxes. And Office. And everything else Microsoft makes.

So even assuming a team size of one, it's still closer to free than it is to a day's worth of your bill rate. Considering how much better the paid version of VS.NET is than the "Express" version, it's not even something worth thinking about.

Given that, the fact that the Free version does this or doesn't do that has pretty much zero bearing on the life of a guy writing software on the Microsoft stack.

> This doesn't really seem like news to me. I've never met anybody doing real development in the .NET world who didn't have a paid copy of VS.NET.

For C/C++ hobbyists and Open Source developers, MSVC used to be the compiler of choice on Windows. The Ruby community has embraced mingw more and more, and I think everyone else will (and should) do the same. Breaks my heart because MSVC has good C++11 support.

I don't think any professional will care about this. In fact, it's probably good news for them (us). Any barrier to entry means slightly less competition.

Why is your heart breaking? The new version still supports c++, right?

Just because it's a hobby doesn't mean you can't pay a little money for things. I have lots of hobbies that are way more expensive than computer programming.

One surfboard costs more than you'll pay for a full VS.NET license. Over the 4 years this next version will keep you going, I'll go through thousands of dollars worth of rock shoes. A gamer will go through thousands of dollars worth of games. A mountain biker will replace his $1500 bike in that timeframe, and a snowboarder will rack up thousands of dollars in lift tickets and baggy trousers.

All these things have in common that: A. They're enjoyable, and: B. They cost money. Programming computers is no different. If you want to do it, and there's a good new tool out that costs money, why would you not buy it?

> Why is your heart breaking?

I used the free MSVC2003 compiler during high school, when $600 was half a year's worth of pocket money, and when mingw didn't even link a basic UNICODE program properly. I eventually saved up enough money to buy the "full" MSVC2003 Standard for ~€130, what later became Express. I never made a single penny off it. I bet many people who got into programming through hobby gamedev lived a similar life.

After making the switch to OS X during university, I often used the (now free) MSVC Express for playing around with Open Source on Windows. Or to compile a copy of my game for Windows friends. Tiny stuff that's not worth three-digit sums. If I can't toy around and be happy on Windows, then I'll forever stay in Apple wonderland.

Both scenarios will be too expensive to imagine now. If anything, people will use mingw instead. And that's what breaks my heart - I really wish people could use the awesome MSVC2011 compiler instead, with all the new C++ features we have been looking forward to for years. MSVC2010 is still good enough, but for how long?

Seems mingw's C++11 support is getting there too - though I couldn't find a definitive list. That solves some of my heartache at least.

They would probably be willing to pay a little money. $600 is not a little money for normal people. Pointing out that it's not a lot of money for rich people seems a little beside the point. I don't think anybody's all that worried about the wealthy.

I never said anything about rich/poor people. In fact, the hobbies I mention are all "poor people" hobbies that I and lots of my friends indulged in back in our <$40k/year days.

Also, take a quick glance upwards and notice that it's $400 for VS.NET + Everything Microsoft Makes. So if you would have otherwise spend $189 to have Office bundled in with your computer, you can think of the IDE costing ~$200.

Or four video games (as in, one per year). If programming is something you value doing, that's not a lot. Poor or otherwise.

I don't actually care that much about compilers - as others have mentioned, there are several options out there. I also am not particularly concerned about updated C++ feature support - the reality is that there are still a ton of really terrible windows developers out there who aren't familiar with the windows application model, security models, best practices, and have no idea how servicing works.

When people start complaining about not having functors, or some other language feature, I tend to get a little irritated, because this is not the big problem with software development on Windows.

If someone doesn't want to use VS2008 Express, I will note that there is always WDK, which last I checked shipped with cl.exe, and will almost certainly continue to do so.

As I said, I don't think existing professionals will care about this. But people are not born as professionals. Many end up that way because they entered an ecosystem for fun. The functor playground I grew up on has a "suits only" sign now.

>> I don't think any professional will care about this. In fact, it's probably good news for them (us). Any barrier to entry means slightly less competition.

I think it's unfortunate that the professionals would see this as a good thing. New developers to the MS Stack can bring a fresh perspective with newer, more unique approaches to solving problems. That leads to a healthier ecosystem.

     still closer to free than it is to a day's
     worth of your bill rate
That's a really fucked up definition of "free", which gets repeated often by Windows developers, but it isn't anything more than a delusion. And btw, remember that not all of us live on Silicon Valley's fat salaries ;-)

I got a 2 year volume license for Windows 7, plus 2 years' MSDN (various Visual Studios, plus old OSs, plus useless junk), for £1,000. This is very definitely not closer to free than my daily rate - since I don't have the Silicon Valley-style salary that I'd like to have either! - but compared to other business costs I have incurred, I think it relatively reasonable.

I paid £160 for a single copy of Windows 7 Ultimate, for example - 1 licence for 1 PC! And my accountant costs me more per year. (etc.)

Some of us are also budding students who like experimenting with different things and price is most likely a barrier to entry (it sure it for me).

Students can get VS and other MS software for free through various programs such as MSDNAA

Some of us (neither students nor fat salary receiving end) are struggling to make ends meet and try their hand at app development as a way out of struggle.

If you're a small, newly founded, company you can get a free copy of Visual Studio Ultimate, together with all the documentation and training material you need, by signing up for BizSpark

According to the article you can continue to try your hand at app development for Windows 8 and Windows Phone 7 using the free "Express" version of Visual Studio.

The software distributed through MSDNAA is (1) always a little outdated and (2) only for non-commercial development.

What would be news is if Microsoft is moving from growing their platform to milking it for cash. I think you can see some of that in many of their decisions.

But there's another, more plausible, explanation for this particular move. They want people to create Metro apps and making it cheaper to do that creates an incentive.

Why was I downvoted for linking to previous comment threads about this same story?

Possibly because you hadn't said what the links were, and the downvoters were lazy.

Do we have to pay the Windows Store registration fee to deploy a Metro app? Or is there still way to send out an .exe to our friends and colleagues?

Even if we get free development tools it would sucks if we can't share our work for free.

The whole direction Microsoft is taking with Windows 8 and Visual Studio 11 seems kinda disturbing.

+ Freelancer devs will be 'encouraged' to develop for Win 8, an argument can be made this will positively impact Win 8 sells, albeit it will be a difficult argument

- Open source development on Windows will take a hit

- Freelancers will either stick with older and less effective tools, or will choose to abandon Desktop

- Users will tend to get less new software for their Windows 7

+/- Will not affect big corporations, e.g. gamemakers, who use the professional version

- This will provide no additional motivation to bulk of the users (e.g. corporate, gamers) to switch to Windows 8

- This will further 'encourage' piracy of VS11

Actually, for freelancers it is more accessible and less risk to use illegal copies than for companies. Mostly, freelancers are producing sources for the concrete client, they aren't selling/shipping the binaries directly, so no one cares whether they used Notepad++ or Visual Studio.

Freelancer devs will spend the money on the full version of the tools instead of just using the free version. You have to be a pretty small potatoes freelancer to not be able to afford visual studio in some incarnation. See also: graphic artists and photoshop.

It's not always about beeing able to afford something or not. I don't _want_ to support a business model that makes it harder for beginners. So yeah, when I have no choice due to project reasons I'll be forced to buy one obviously, but I don't like it and I will try even harder to get away from working on projects where I'm forced to do this in the future.

I am a freelancer and I will stick to VC++ Express 2010. It means that everyone who ever touches the codebase for whatever reason can just download stuff and hit compile. Ordering something as cheap as US$500 can still be a hassle in a big company.

Also, I only got into MSVC because of open-source/hobbyist dev in the first place.

I think they should instead focus on making Metro appealing to develop on, rather than making it the only free option.

At least they still allow other compilers and any programming language.

I wish Ubuntu would step up their development resources game, so that it becomes less painful to do anything there.

It's only Visual Studio 11 Express Edition which is limited to Metro. VS 2010 EE will still be available for developing Windows 8 desktop applications.

How will this affect applications like Matlab 2012 64bit, which require a compiler (such as in the Win 7 SDK) to be installed to use certain features such as SIMULINK?


Will there even be a compiler they could licence from MS and bundle?

VS Express 2010 will continue to be available.

Previous discussion here: http://news.ycombinator.com/item?id=4020222

They could add support for GCC (MinGW) and ship it.

It's long past time since Visual Studio was the only game in town. Back when it was between VS6 and Borland C++ Builder, I was initially attracted by Builder's drag-and-drop UI construction - it seemed very odd at the time that "Visual" studio didn't offer that functionality. But Borland's descent into bug-ridden stagnation and my discovery of wxWidgets pushed me into the VC++ world for upwards of a decade.

But now with Eclipse reaching maturity (it's the main IDE at the banking multinational where I recently worked), I'm finding less and less justification to stick with Visual Studio when my MSDN subscription expires. Another very promising tool is Qt Creator: http://qt.nokia.com/products/developer-tools

This has less of the UI quirkiness of Eclipse, and the built-in documentation is great. Qt is now using Clang for code validation, but can be set to use Gcc or the Microsoft compiler. So given that I'm using Qt anyway for cross-platform UI, this may be the way forward.

The more accessible the grass route tools the greater the chance of adoption. Adoption for Win8 / RT maybe acceptable with the new Express options but frankly I don't see C# developers of the future applying for licences for IDEs to compile their software. They'll just adopt a different more (immediately) accessible platform. Companies will struggle to recruit for server hosted line of business applications. The ecosystem will suffocate. Managers and engineers will consider different platforms as part of their due diligence, as a result I predict less Windows licences will be sold.

Microsoft is really, really doing well in their push to get users and developers to move to Linux. I can see no other reason for this move.

Walled garden platforms are taking over partly because all operating systems are fundamentally broken with regard to privilege isolation, security, and application installability/uninstallability.

The fact is that for the average non-techie user, allowing unsigned/untested apps results in a system full of malware and crappy software that destroys it. That's because the OS is not isolated from apps, and apps are not isolated from each other.

The popularity of virtualization is also due in large part to this. Why can't you just rent accounts on large Linux servers? Why is KVM, OpenVZ/Parallels Virtuozzo, etc. necessary? Because everything requires root and everything pollutes the OS space.

Broken, broken, broken.

The way Macs package .app directories full of all files related to an application is a huge step in the right direction. The next step is to utterly forbid "installers" and make everything work this way, and to add stronger privilege isolation and organized APIs for apps to talk to each other. These should probably be based around peer-to-peer networking so that an app can locate and talk to another app regardless of what box it's on.

That would be significantly less broken.

Then allow apps to have their own addresses. We probably have to wait for IPv6 for this, but not necessarily. Then an app can bind, run services, etc. without requiring root.

Finally, banish the entire concept of root/administrator except for OS developers and OS maintenance. The vast, vast majority of users (even power users) should never need to even know these exist.

The bottom line is that the entire concept of "installing" something "on" the OS needs to be killed. Installers are ugly nasty hacks. Package management (ala rpm, deb, etc.) is also an ugly hack. Signed apps in walled gardens is an even nastier and downright evil hack to get around the brokenness of these ugly hacks.

> The next step is to utterly forbid "installers" and make everything work this way, and to add stronger privilege isolation and organized APIs for apps to talk to each other.

I agree and disagree with you. I would be awesome if I could restrict apps and forbid installers. I'd also like to be able to run arbitrary apps as forbidden to use the internet and make them think they are reading/writing to /some/path/ but they are really reading/writing to /app/sandbox/some/path. I'd love the option.

But then there are problems with that as well. Want to make an app plugin? Nope. Want to share libraries? Nope. Want to talk to an app? Hope it's got a canonical port number.

So I don't think enforcing boundaries is the way to go. I'd love to see other opinions and whether or not there are any alternatives, though.

I think there are creative solutions to this. Like I said: there would need to be a well-designed inter-app API.

Plugins for instance could be handled like firmware updates to a device. Send the image to the app via the API. "Here is your plugin..." Or some apps could have their own plugin stores, ala the Chrome store. There are different ways of handling this.

Apart from IDE and related tools (which is a pretty big reason, to be sure), is there a good reason to use Microsoft's C/C++ compiler over MinGW ?

Not great news for XNA hobbyists like myself.

Oh well, I guess I'll just move to Java to create some games. It worked for Notch :)

Java is great for hobbyists. Checkout: http://jmonkeyengine.com/

Also, checkout MonoGame: http://monogame.codeplex.com/

It's developers, developers, developers. Until it isn't.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact