You know what's funny is you can't even flash Raspbian on an SD Card on Windows without a third party application [1]. If Microsoft is going to be all gung-ho about open source and about the Pi, maybe they should ship "dd" with their command prompt...and bash / coreutils while they're at it. Until they do that, development on Windows is going to be a pain outside of the Visual Studio walled garden, and barely anyone is going to want to develop on Windows when 99% of the tutorials and documentation online is written for a bash prompt. And I'm not talking about just Pi development - developing anything on Windows is a huge pain without a Bash prompt and proper coreutils support.
> And I'm not talking about just Pi development - developing anything on Windows is a huge pain without a Bash prompt and proper coreutils support.
You haven't used Windows in a very very long time I take it? Powershell is likely a better shell than Bash and Microsoft freely provides compilers for C/C++/.Net and you can trivially get compilers for most other major languages on the platform.
All I am reading from your complaints is that you're scared of learning something new.
The (old) C# compiler, as the VB compiler, was actually part of the .NET framework starting with .NET 2. Since .NET comes pre-installed on Windows, you also have a compiler. However, the new C# 6 compiler is no longer included in the framework, I think. When you install .NET 4.6 it even adds a notice to the old compiler's greeting message:
This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240.
I highly doubt that powershell is better than bash, unless you're perhaps only counting bash and its builtins and disregarding the whole environment of binaries around it.
I've spent quite a bit of time recently with PowerShell and I have to say that at best, I'm underwhelmed. I can see the potential with PS but there are too many things that are just left out by default.
The documentation seems incomplete and very clunky to actually use; it's hard to find what command you want and some docs are just plain wrong. Even using third party docs is frustrating. Honestly, it reminds me of the PHP docs, and not in a good way. Job control seems to be very clunky. I can't seem to push things into the background reliably in a PS1 script. Some things seem to work OK but others just background and disappear. Another problem I've had is appending to files; you can output log information to a file (ie. ls > ls.log) but you can't append to a log file (ie. ls >> ls.log). There may be a way to do it, but it probably involves writing a command and loading it somewhere.
That's the most annoying thing I find when living in the Windows world; there doesn't seem to be a good representation of $HOME. Where do I keep my SSH keys? When I create PS1 scriptlets how do I ensure they are loaded in a new PS1 shell? I'm sure there are answers to this but, as I said before, the docs are not the best. Maybe Microsoft should author a BASH --> PS1 translation guide. :)
I am perfectly fine downloading an external application to write an image the sd card just like I am perfectly fine in using "apt-get install" for any application that doesn't come bundled with Ubuntu/Raspbian. If 99.9% of your users aren't going to use a feature why bother bundling it? If there was no effective way of doing this on Windows then I can understand the reasoning behind your statement. However, that is not the case so am sorry but this comes off as pissy person trying hard to find a reason.
If you're more comfortable with Windows development than Linux development, it's a way to get things running more easily. (Although I expect that for many HN readers it's the other way around.)
I was wondering the same thing. Without a display or most other "Windows" type things, how do you work with a Pi running Windows? I'm guessing you have to be comfortable with the shell, which takes you one step out of Windows.
Plus, Microsoft seems to be big on cross compiling .NET code on Linux. Wouldn't it make more sense to load Linux on the Pi, develop in V.S., and cross compile it for Linux? Couldn't the V.S. team include a "Build to Linux" button that compiles the code and pushes it to an SSH target? That seems much better than dealing with embedded Windows.
The idea is to use the Pi as a device to which IoT-focused applications can be deployed after being developed on a Windows PC. For Windows-focused developers, it can be a gateway to building on an unfamiliar platform without abandoning the comfortable dev environment that they're already proficient with.
I would expect that Windows 10 could run proprietary stuff like Netflix DRM which would make it a good choice as a media station since Raspbian etc. can't run Netflix, but who knows.
I'm not entirely up to speed on the situation of UEFI secure boot for ARM; didn't Microsoft mandate that it can't be disabled for such devices to boot Windows? Is that the case here?
These are categorized as experimental devices and Windows 10 is free to use on those devices for development and testing.
The UEFI secure boot requirements only apply if you want to distribute a commercial product and want to slap a "Designed for Windows 10" sticker on it - or negotiate a special distribution license with Microsoft (i.e. do not expect Windows 10 to be "free" if you want to use it in a commercially distributes product).
Has anyone taken a close look at what's actually running? I suppose it could be a version of the Windows Kernel since they have it running on ARM for Phone and RT but I frankly wouldn't be all that surprised if they were running Linux with .NET Core on top.
I've loaded up Windows 10 IoT for RPI 2 previously. It is a Windows kernel, but otherwise massively cut down. It limits the system to a single running "foreground" application at a time, plus some system services.
If you wished to dedicate the device to a single purpose, it's fine, but don't expect a robust shell environment like you would see on a bare bones linux box. It certainly won't support a user using it as a desktop environment. Think of it more as embedded Windows offering, great for being a single app server, robotics platform or kiosk.
Which just makes me wonder what the point of it is. I guess if you really love Windows and want to build an embedded system this would be the way to go. I'm betting that most people that build embedded systems are not Windows developers and I'm not sure that this IoT offering changes anything.
I'm starting to wonder the same thing. I've been looking for a project to try it out on but every time I think I find one, I realize that it's something I can't do with Windows 10 IoT because it lacks a key feature (e.g. printing) and the time it would save on other aspects would be wasted trying to work around it's inadequacies in other respects.
"Windows 10 IoT Core is a version of Windows 10 that is optimized for smaller devices with or without a display, and that runs on the Raspberry Pi 2 and 3, Arrow DragonBoard 410c & MinnowBoard MAX. Windows 10 IoT Core utilizes the rich, extensible Universal Windows Platform (UWP) API for building great solutions."
I'm really interested in this as I have a project that would be perfect for it, but I don't see any licensing information available. Anyone know anything about that?
> There is a SKU ‘Windows 10 IoT Core’ available at no royalty cost for all our device makers that enables automatic OS updates via Windows Update when connected to the internet.
> In addition, we also have an OEM exclusive SKU ‘Windows 10 IoT Core Pro’ which provides an ability to defer and control updates. This SKU can be licensed via distributors. Except for the servicing model difference, the features are the same between these two SKUs of Windows 10 IoT Core.
So it's free for most everyone who would be browsing Hacker News.
I work for Microsoft on IoT Core, so it's exciting to see some exposure! :)
So this is a development license, not a "ship a product" license. Which is fair, but it's less universal than what your post could be interpreted to mean.
Here's an excerpt from the commercial terms of use for the non-Pro SKU:
> Subject to the requirements in Section 3 and restrictions in Section 4 and the other terms and conditions of this Agreement, Microsoft hereby grants to you a royalty-free, worldwide, non-exclusive, personal, non-transferable, non-assignable, limited license to install a Runtime Image into an Embedded System and distribute your Embedded System to End-Users.
It is the eternal quest for hearts and minds. Developers. Developers. Developers. Microsoft have always been aggressive about getting their stack in schools here. Hook them young. To be fair other companies try and do the same. It is good to see Microsoft on the Pi. Diversity is important. It is better that they get behind the Pi than them going off and promoting a more closed alternative that would only boot a signed Microsoft image.
As more and more things become connected and automated, why would they not want to extend their platform to those devices?
The architecture of the Pi is common enough that is probably serves as a proof-of-concept for commercial vendors who want to build programmable products that would be well-supported by operating systems and device drivers (by piggy-backing on the work done for the Pi).
There's actually a very good reason. Windows XP has been officially unsupported by Microsoft for about two years now unless you are willing to pay them a quarter million dollars a year. Often the computers spec'd for those systems have pitiful amounts of CPU power and memory (i.e. much less than necessary to run Windows 10), and the cost of a re-spec for PCs in certain critical systems is basically the cost of developing a new platform (not to mention that some of them can't fit a microATX-sized PC or have low power requirements) makes it potentially cost-effective to use SBCs, especially a popular one which someone like Newark/Element14 can customize for you and potentially support.
Cousin: "Ugggggg my laptop is garbage since I put on Windows 10 and it's so slooooooow, can you fix it? I can't even play Minecraft!!!!"
Me: "Umm, I haven't actually used Windows in about 5 or 6 years and have no idea what's wrong - I also don't feel like spending my limited time visiting family messing around with your laptop. Here's a USB drive with Ubuntu, give it a shot"
Cousin (next day): "DUDE that's amazing it's so fast! I had to figure out UEFI stuff but I installed Ubuntu and Minecraft is faster than it's ever been before! I have a great dual boot setup going!"
Anyway, I don't feel too bad about it.
Incidentally, UEFI is one of the many reasons MS puts me off.
Not only this. Raspberry pi serves as a good jump in point for embedded development, and there are a good billion more cores to be sold in that area in the next few years.
[1] https://www.raspberrypi.org/documentation/installation/insta...