Hacker News new | past | comments | ask | show | jobs | submit login
Windows 10 IoT Core for Raspberry Pi 2 (windows.com)
234 points by vyrotek on Aug 11, 2015 | hide | past | favorite | 166 comments



When they released this a couple of months ago I was pretty excited to try it out. I think the barrier to installation is a bit high. First install Windows 10, then custom install of VS, install IoT Templates, then about 30 more steps before you get the image to flash on your SD. How about a link to the image I can blast on the SD and kick the tires without a couple hours of downloading and installing prerequisites?


Very funny considering the uneasiness people have towards "putting Linux on a computer". For the Raspberry Pi, the reality is completely reversed as NOOBS is the absolute easiest, most convenient way to put any OS on any computer ever.

I really don't understand people who want this, with closed source software the learning stops at some point, you can't learn everything about your Windows-Pi even though it was created for learning! Even the example code (read I2C temp sensor, display using webserver) they give on the home page starts with: "// Copyright (c) Microsoft. All rights reserved.". Why would you want this? Can there really be people that are willing and able to build their own IOT but do not want to learn about Linux?


>Why would you want this? Can there really be people that are willing and able to build their own IOT but do not want to learn about Linux?

Knowing about Linux doesn't mean assuming it's the best tool for the job at hand.

I've used Linux, I've installed Linux, I've fixed a couple of broken Linux installs etc. I've compiled software on Linux. I've imaged an SD card for a Pi from Windows pre-Noobs. I've installed Rasbian using NOOBS.

I've also played with Arduinos, although mainly using other peoples' libraries for time and network comms etc.

I have not, however, written any serious software for Linux and I am not a Linux developer. I mostly use VS on Windows to develop software that will end up on Windows computers to be used by Windows users.

I have the required physical equipment, software and skillset to make a solution that meets the end requirements using 10 Core on a Pi 2. I don't have that for Rasbian. I've no doubt Lady Ada has a tutorial somewhere to teach me enough to get it working, but why would I invest my time in that?

I'd be better off using the skills I already have to accomplish this task. Then learning something completely different that will allow me to accomplish an end result I can't presently achieve.


However, with the example... you can just use node under linux on the rPI, and get a decent experience. I have no idea what binary module support for node (bignum, sqlite, and others come to mind) under Win10Core that might be common for something like this are... In general if you don't have build environment support for node, there is always an edge/corner case binary module you need. It's better in windows, but I'm not sure if Win10Core has a compiler on the device target. (And Python 2.7 for that matter)


Or, you know, compile to mono and thus keep 100% control over your lower stack.


Having worked in both Linux and Windows shops, yes, there are people that would readily use Windows on a π, because that's what they know best. Could they use Linux? Yeah, probably, they're smart people. However, that's a bunch of extra steps when you really just want to get things working and hack around on some code.

At some point they might get curious and try Linux on it as well, but I'm all for whatever makes it easier for someone to get into trying something new without a lot of burden. For some people that means using Windows so they can use the platform and tooling they're most familiar with (Visual Studio and .net).

Yes, there's mono and such, but even that still brings its own complexity when you actually consider what else it takes to get set up and going for someone that's never used Linux before (or outside of some courses in college).

It's like wanting to build furniture, but then told you should plant a tree, wait for that tree to grow, chop it down, cut it up for wood, then you can start building some furniture. Most people would give up long before actually making any furniture in that case.


You're correct about Mono being complex. It was easier to install than IoT core though. Including installing the OS first. Having a package manager like apt is a revelation coming from a Windows and Mac world.

I previously tried Mono on the Pi and it had lots of bugs related to the processor architecture. Problems with the hard float support stopped things like Datetime from working properly.

This was a while ago so I imagine it's been fixed in a recent build. It shouldn't be a problem on the newer architecture of the Pi 2 either.

I think it's better to bite the bullet and just learn Linux and Python. You can then add those skills to your CV along with Windows and C#.


I also suspect, without having tried Win10 IoT, that the interface is more polished, and building apps are simpler. You don't have the same freedom, but as long as the developers can do what they like, it's more than enough.


> Can there really be people that are willing and able to build their own IOT but do not want to learn about Linux?

Absolutely, and especially in corporate environments. I'm not saying Windows 10 IoT is any better (I think it's very unlikely to be, but I also haven't evaluated it), but I can say for certain that I wish I had a single, identical python library for any IoT platform that handled interfaces as simply as:

    with pin_1 as p1:
        p1.output(1)
        time.sleep(2)
        p1.output(0)
Now, there are some libraries that approach that level of simplicity once you have your system configuration set up, but that doesn't lend itself to agile development. I want something that works like that out-of-box -- flash it, load code, press go button -- which simply doesn't exist. And, after spending a lot of time writing my own hardware IO library using direct memory access in Python, I don't think there's an OS out there that's capable of doing it (yet). I've spent just way too much time accommodating unfortunate abstractions taken at the linux kernel level (that I understand for historical reasons, but disagree with for future ones). An operating system for IoT done right is, in my opinion, a very lightweight exokernel with some really smart abstractions that just gets out of your way. Then you need a clever (and native) secure networking system, and you're in very good shape.


I'm not sure if you've dealt with Arduino in Processing, but it is exactly as you describe.

  void loop()  
  {
    digitalWrite(ledPin, HIGH);   // sets the LED on
    delay(1000);                  // waits for a second
    digitalWrite(ledPin, LOW);    // sets the LED off
    delay(1000);                  // waits for a second
  }


Arduino is awesomely easy in this regard, but lacks a proper operating system, and the individual pins have fewer modes than systems on a chip. That is, in a way, exactly my point: the operating systems we have are so bad at portable systems that going without one can actually make development easier. That's a big problem.


I think this is a 'right tool for the job' problem. Frequently you don't need an operating system to do basic tasks. I don't see this as a problem at all for simple things to a point.

Even something that seems as complex as as reading a sensor and writing data out to a CF card doesn't require an OS if the basic library support is there.


Like this?

  from time import sleep
  import RPi.GPIO as GPIO
  GPIO.setmode(GPIO.BCM)
  GPIO.setup(2, GPIO.OUT)
  while 1:
       GPIO.output(2, False)
       sleep(2)
       GPIO.output(2, True)
Perhaps I'm not understanding what you want exactly, you seem to know what you're doing.


The problem is in pinmuxing. If you want to change the pins from their default modes, you're in for a world of pain. Systems on a chips (SoCs, basically run everything portable these days) are optimized to the point where different die pins can have different modes (GPIO, LCD framing, USB framing, might all be available, one at a time, on the same pin). Switching between them requires mucking about in the kernel and reconfiguring hardware and is, at least in my experience, incredibly painful.

Also, the sysfs mappings that the easy bindings tend to be written from are very, very slow (like ~3+ orders of magnitude slower than they should be: http://hackaday.com/2013/12/07/speeding-up-beaglebone-black-...).


If you use BabelJS (ES6) you can write async methods that are very close to that with Node + johnny-five.

https://github.com/rwaldron/johnny-five


How does Arduino (which I've never used) compare to your desired Python library?


I read the headline, considered it for a few moments, and the only response I could come up with was "No."

Why would I put an OS on a computationally constrained device that is essentially guaranteed to spend a portion of the CPU time doing things I likely don't want done, for someone else (Microsoft in this case)?


I've spent a decade and a half developing software for and deploying software to Linux, but never had to look at the code. Funnily enough, that's the same number of times I've had to look at the code for Windows and OSX, which I've been using for a comparable amount of time.


I'm not talking about "developing for" I'm talking about "learning about." I have learned a lot about hardware using Gentoo, compiling my own kernel. If I wanted to I could look at the source code. I also never did, like you, I'm just saying there may be youngsters out there who would.


I tried the technical preview of IoT core and was underwhelmed. The mouse didn't even work! It jumped around erratically making it unusable.

My experience with Linux on the Pi is that it just works out of the box. Simple things that you need to install a driver for on Windows are plug and play on Linux [0].

I installed the desktop Windows 10 preview just to flash the SD card. Although I read in the Mag Pi [1] that there is a Python script [2] to convert the image to a normal format.

I'm a big fan of C# and I'm a professional .NET developer. It's my go to stack. Yet, I believe that the best way to use a Raspberry Pi is with Python on Linux.

[0] https://unop.uk/dev/raspberry-pi-electricity-monitor

[1] https://www.raspberrypi.org/magpi/issues/34/

[2] https://github.com/t0x0/random


Someone badly just needs to make a bit for bit image. Or is that illegal? In anycase, as long as I keep it offline I'd at least be willing to try it out, without a win 10 machine it's my only option.


I've written up the process here: https://unop.uk/dev/windows-10-iot-core-public-release-for-r...

I'd host the file but I imagine it will go out of date pretty quickly as MS change the original.


It's not meant to be a desktop. It meant to be be an embedded system with no mouse or keyboard and maybe a touchscreen.


I completely get that but when the app you pushed to it requires interaction with a button then a mouse is more than just a nice to have.


While the tool to flash the SD that Microsoft built requires Windows 10, it doesn't require anything else besides a Pi: http://ms-iot.github.io/content/en-US/win10/SetupRPI.htm

Granted, if you go through the developer site, it points you towards installing what you need to develop software for it. shrug


You can use this python script to convert the image to standard raw format: https://github.com/t0x0/random

Then flash it with your normal tool such as dd or Win32DiskImager.


Thanks! Made a quick script with this to unpack the other stuff (I couldn't mount the ISO for some reason) however 7z seems to handle the ISO and the MSI file both just fine.

In case you're interested: https://github.com/lawl/Win10IOTRaspberryUnpacker


Looks good, thanks. I'm on Windows but it should be pretty easy to port to batch or PowerShell. I've used 7z command line before for automation.

The script makes an 8GB file by default but it should be possible to change that. Add a parameter for the size of the card or even auto-detect it.

I've documented the process and written up my thoughts on IoT core here: https://unop.uk/dev/windows-10-iot-core-public-release-for-r...


>A PC running Windows 10 (Prepared in the previous step)

That requirement itself is a big step:

http://ms-iot.github.io/content/en-US/win10/SetupPCRPI.htm


Especially considering my 8.1 -> 10 upgrade has failed spectacularly several times. I'm not going and buying 10 at retail to try this shit out.


For what it's worth, I found on two of my systems that had issues with the upgrade, if I followed the upgrade/activation with a clean install of Windows 10 (giving up the option to return to the previous version of Windows) the installation worked great. I had different but equally show-stopping bugs on my Windows 7 workstation and my wife's Windows 7 laptop until I did that.

On my wife's laptop I had even tried a fresh install of Windows 7 followed immediately by the upgrade and hit the same bugs as before (no "Modern" apps would load including Settings, and Explorer.exe was constantly crashing). A clean install of 10 fixed those issues and now it runs great.


Right on topic...


Quickly made an unpacker script in bash, couldn't test it yet, but it looks like it works. You'll need 7zip and a working installation of python,

https://github.com/lawl/Win10IOTRaspberryUnpacker



It was in the repo I got the ffu2img script from, forgot to remove it, see https://github.com/t0x0/random

Fixed now, thanks.


There are dozens of other tools available to do the same thing, and yet they had to go build their own?


Microsoft: Not Invented Here


Business as usual for Microsoft.

There must be something about their business model I'm not getting. Going to microsoft.com with the intent of buying Windows to install it on a naked PC or in a VM on OSX, I have yet to identify an option that allows me to: 1) buy a license, 2) download an ISO image.

The closest solution I've seen is to download some exe file that presupposes that I have Windows installed somewhere so I can....do god knows what to get an install going.

I know what I came to the site for. Instead the site spends all its energy on selling me on the idea of Windows and then fails to sell me the product.

Consistently.

For years.

Why? Do they not want my business? Is it really so horrible to sell their product to someone who wants to run their OS under VMWare?

This is neither hyperbole nor gratuitous negativism, but Microsoft is perhaps the worst company to buy a product from online. Microsoft fixing this is the litmus test for when they might, and I would like to emphasize might, be able to stop sucking.


I suffered this with a 2nd hand Windows 7 computer my mother was using that kept complaining about being counterfeit.

Windows is only £80 or so and there was a big button on the nag screens that took me to the Windows site to buy a licence. Great - credit card in hand I clicked on through and was instantly greeted with buy Windows 8.1 screens.

The problem is, I absolutely did not want under any circumstances to install 8.1. I just wanted a legit licence to the already installed 7, which the computer was quite happily running and required no learning/explaining of metro to my mother.

For nearly 1 hour I tried to find a way to buy that Windows 7 licence key and found absolutely no way to do it.


> I suffered this with a 2nd hand Windows 7 computer my mother was using that kept complaining about being counterfeit.

That has been known to happen [1] (it's never happened to me personally). I suspect it has something to do with buggy AV or anti-malware software.

> For nearly 1 hour I tried to find a way to buy that Windows 7 licence key and found absolutely no way to do it.

You don't have a Best Buy type store near you?

[1] http://www.infoworld.com/article/2859267/operating-systems/w...


"Why? Do they not want my business? Is it really so horrible to sell their product to someone who wants to run their OS under VMWare?"

Not really, they want the business of IT departments of medium/large companies, running full Windows stacks (Windows Enterprise, Office, Windows Server, MS Sql Server, Exchange), which buy licenses by the dozen (at least) through their purchasing department.

It's how they make(a lot of) money.


> The closest solution I've seen is to download some exe file that presupposes that I have Windows installed somewhere so I can...

My guess they did that because it's probably just like BartPE or other PE products - it copies files from the underlying OS.

> Is it really so horrible to sell their product to someone who wants to run their OS under VMWare?

There is nothing stopping you from running Windows in a VM - millions of people do it all over the world.


The is a link in the top right hand corner to the Microsoft Store, where you can buy Windows. When I bought Win7, I could download an ISO.


Yeah I was excited to try it out but I can't spend a whole day on getting things working at the moment, just too damn busy. I was hoping I would get an iso I can dd onto an SD card pop it in the RPi and it boot up and give me an IP address to connect and deploy an app to in a few clicks. You know like how I can do with Linux.

Still it is a step in the right direction for Microsoft. I am happy to see them doing such things. Competition in the IoT space is a good thing for all.


Maybe some selfless individual can slog through it all, and then use dd to make an image and post it somewhere (which I am sure violates thousands of pages of EULAs, but would be much more in keeping with how Raspbian etc. are distributed).



Most excellent.


Agreed. There is absolutely no excuse for having all that crap to go through.


> There is absolutely no excuse for having all that crap to go through.

I agree, too -- and this phrase has been on the minds of people while installing Microsoft products for decades now. It's in their DNA somehow, it seems.


I asked the very same question and got downvoted for it.


Do not discuss your own downvotes.

Do not interrupt the actual discussion to meta-discuss the scoring system.


There's a heading that reads:

> Developers, Developers, Developers

I've always cracked up whenever I see Ballmer's developers video, so I was pretty happy that Microsoft's IoT team has a sense of humor and was able to get that approved (if they had to)

reference if you haven't seen the original Ballmer video: https://www.youtube.com/watch?v=Vhh_GeBPOhs


Yes! This made me so happy when I got to that section :)


the guy is hilarious at the stage: https://youtu.be/I14b-C67EXY?t=12s


Is the Internet of Things now a Raspberry Pi 2?! A quad-core 900MHz CPU with a whopping 1GiB of RAM and a dedicated GPU?

So, for how long can you run a RPi 2 from a CR2032 cell or an AAA battery? A minute or two on full bore? Because that's the kind of energy budget people are generally talking about when they mean internet of things.

The RPi2 is a fully-featured media center, not a door lock or light switch or power sensor.

I guess the problem for Microsoft with the whole IoT thing is simply that they will never have Windows there, the devices you actually use for IoT measure their RAM in KiB. And, frankly, operating systems are very far down the on list of things we need to make IoT a reality.


The AirHockey Demo seems like a complete rip-off of a Spanish maker's product, which he has been promoting: https://github.com/JJulio/AHRobot

Maybe I'm wrong, but I think some credit is due


A robotic hockey table doesn't seem very IoT to me.

I'm a little confused as to what Windows brings to the table for embedded devices at this point, especially screenless ones.


Tools.


I can't tell if you're making a joke or not.


Not. MS makes really, really killer tools.


Not really, they make okay tools that are extensible enough. Visual Studio is a great example of this. You basically need ReSharper and a hundred other addons to get anything serious done.

Just try using VS for C++ development, even the primitive Qt Creator tops it.


I used VS for C++ development professionally, and thought it was really great. Still do, in fact. I still haven't ever used anything that has a smooth and tightly-integrated edit-build-run-debug cycle. MS' documentation is (and always has been) top-notch, and hopping from code to doc and back again is easy enough to be fun. The platform sucks, of course, but if I could run MSVC++ on Linux, I'd do it in a heartbeat.


I do too, but I also use Qt Creator and Eclipse for writing C++ on RTOSes and I really don't think VS is anything special.

I will agree with you about the documentation, with few exceptions MS documentation is some of the best written. But this is far from something that should prevent a platform swap.

The piss poor code editing tools in VC++ irk me more than anything, I have to say that I feel like it's the worst of these platforms. Resharper for C++ is coming though, so maybe that'll change my mind.


I'll disagree there. After spending hours trying to make sense of the Win32 API documentation in msdn. Often failing to make sense of it, finding the answer in Raymond Chen blog a long with a few lines pointing out that the msdn documentation doesn't cover some important cases/caveats.


Most all Win32 stuff works just fine. It is documented better than _any_ one Linux module/layer. There is no comparison. But these days I don't even need to bother with Win32, .NET handles 99.9% of what I need to do. Then again I am not a driver developer.


Eh, some of it is a huge pain.

I wanted to write a simple tool to mute a game when I tabbed out of it.

No access to per-app volume controls from .NET without the use of some random paid libraries. So I went with C++. Access via C++ involved incredibly complicated COM APIs, which were very poorly documented (the whole COM system itself was confusing but these APIs in particular involved a ridiculous level of nesting) and no good clear examples were available.

Easily more confusing than the simple calls into the DBus interface for pulseaudio to achieve the same thing on an Ubuntu desktop system.


Don't forget all of the undocumented API's which you are not to use unless you're a really big vendor then you get special documentation and/or special API's built just for you.


* this is far from something that should prevent a platform swap*

When I started Android development, the quality of documentation was so far below what I was used to from Microsoft that it hurt. If not for StackOverflow I would probably have given up and switched to Microsoft's mobile platform.

Besides that, I'm not impressed by IntelliJ. Not even a little bit. I am however, vastly impressed by Visual Studio and all the IDE's that are based on it.


The Android docs and Java docs are actually quite good though IMO. Is there somewhere in particular you felt they were lacking?

You want to see some poorly documented stuff, check out BouncyCastle's "lightweight API" or OpenSceneGraph. Great libraries, but figuring them out is a serious investment.


Honestly I don't remember anymore because if I search for help on anything, I now actively avoid the android site and just take the StackOverflow links instead.

Maybe Android docs aren't so bad in comparison to most documentation. However, in comparison to Microsoft's they are severely lacking. And this is coming from someone who used to bitch at all the errors he found in the Microsoft docs!


I like both IntelliJ and Visual Studio. Why do you like the latter better?


I'm left wondering what's the latest Visual Studio version you are familiar with. 2013 and 2015 are becoming pretty good - out of the box.

I'm using visual studio nearly daily for C++, nothing wrong with it (except it lacked vim binding for which - there is an extension.)


The lack of basic C++ development features like "go to implementation", "add to header", automatic updating of prototypes or even the most basic refactoring tools like moving definitions, extracting functions, if I'm remembering correctly it didn't even have rename... yeah it drove me away pretty easily.


VS 2013 and 2015 have added at least most of these features and if you really want some of that more fancy stuff, as said above, there is Resharper


I imagine you never used VC++ debugger...


I have quite regularly, but I'm just as comfortable in that of Eclipse, Qt Creator, gdb, or even binary debuggers like IDA's or OllyDbg for reverse engineering. I don't see it as a major advantage over any other platform. It's a simple GUI debugger, nothing fancy.

Am I missing something?


- Parallel watches of multiple threads variables

- Visualization of threads and their stacks contents

- Customizable breakpoints in many different ways (conditions, hit count, only on special thread)

- Visualization of tasks (PPL)

- Its STL visualizers are much nicer to use and customize than any of the alternatives

- Selective control of threads execution behavior

- Re-execution of code blocks

- Ability to perform code navigation across .obj and .dll files without access to source code (only on Architect version)

Yeah sure, gdb can have some of this stuff, it even allows for some kind of C/C++ REPL, but I won't be debugging parallel code with it.


I suppose it depends on what you're used to and what features you actually need.

When debugging I'm most often able to solve things with a few breakpoints, a stack dump and little else. The situations where that's insufficient for me are few and far between. When I'm debugging some code using old threading paradigms I more often than not just break out helgrind on it, which often reveals threading problems instantly. It's unavailable on Windows though.


You lost me at Eclipse being decent...


You got that right!

The Eclipse comment got me to stop here…signup, and write.

I have been a Wintel developer for 25 years. I make a modest 6-figure income writing C#/MSSQL apps (after years of (Clipper, C, C++ and Delphi) that run large businesses. I mainly write multi-threaded server apps (most from the ground up, not WCF/SOAP) but I do still venture into the GUI work and even WPF/MVVM these days. I prefer MSSQL over Oracle any day, no comparison for 99% of what is needed out there. I love Hyper-V and VMWare (even when the Linux-lineage rears its head). My server in the basement is loaded with 140TB of very redundant storage. So, not the overage scrip kiddie who picked up this computer stuff last year.

I completely gave up on Linux and any OpenSource development tools a few years ago, my personality and mind (of lack of) just couldn’t deal with it. It is completely frustrating to deal with almost-no-docs, partial thoughts of most users, buzzwords, short-hand, almost no attention to detail, and often from guys living in mom's basement, that have no need to generate output and earn a paycheck.

I know that sounds harsh, but it is based on my experience with software development. I tried to cope with the Linux ecosystem for 10 years, it had to stop.

It does, (or did) take days to install the completely unfocused IDE Eclipse and the Android SDK (Java itself to a lesser degree). People (I will call them “enthusiasts”) with lots of time, and little experience writing maintainable software, might enjoy the challenge - but I called it hell – I could give endless examples of zero-docs or absolutely wrong examples, docs and walk-throughs. Almost every doc I ever found on setting up Linux-ish (servers) or Android dev environments, etc. was completely full of errors, and the user community seemed to love their walk through their fields of mines. And I believe that is because the authors/users can get away it - production and earning is not key, playing and killing time seems to be the focus. This is fine I guess, but not for me. I must provide value to my customers/employers and write software that is maintainable. MS and VS allow me to do this with relative ease. MS has its faults, and I can list bugs in Windows that may never be fixed.

Look at the Storage Spaces mess. Look at awesome ZFS (I mean that) – and only 1 PhD required to implement and properly maintain it under Linux, with storage beyond a minimal size. Look at the nightmare of Linux, storage controllers, trying to figure out what drive has what serial #, and is attached to what port, CLI and Gerp Hell. I bet FreeNAS still forces someone into spending a day to get all the apps required to pipe and redirect and Grep 20 apps, just right (oops the doc was wrong again) to find the one bad drive and drive serial#. MS with all its faults, smiles at this kind of mess. They usually improve on this, although I can’t say Storage Spaces is an example of this.

It is my strong opinion (but I haven’t had the pleasure in doing) that all one needs to do to support my point, is take a group of average to above-average users/people and give them the mission of getting a dev environment setup to take some input from a user, open a socket and send that data somewhere. All Linux attempts will fail (with hostile screaming involved), most MS VS C# attempts will succeed (with minimal cursing). It really is that simple to demonstrate. One can play around with horrible docs and horrible tools or one can express their thoughts and solutions and earn a paycheck (if you're into that kind of thing). And for real comedy, ask those same test subject to setup an SMB server, in Linux and in Windows. I think you get my point, if you are not the 1 in 1000 Linux users that knows how to do that.

Nothing makes me happier than Win10 IoT Core on Raspberry. I like Arduino, I use it when I have/need to, Netduino was OK but hit its limits, but I now, in 2015, I have a rock-solid IDE and C# at my fingertips, and Raspberry and Minnowboard, my higher-level projects will now be a breeze to implement. I am sure I will experience some pain but MS always gets it together for the developers. We are all of course doing different things for different reasons. I like to build home automation solutions for myself and friends (not commercially). So my Win10 IoT Core vs. Linux views come from that limited slant.

I am not wanting to argue, that happens everywhere, I simply wanted to share my point of view as I remember my Eclipse Android SDK nightmares of a few years ago. We can completely disagree on some or all of this and still enjoy the comments on this thread. I smile and laughed at some of the comments here. Fun stuff. Good luck.


Hello fellow Clipper developer :)

With a copy of Clipper and Brief[0] I used to conquer the world.

0: https://en.wikipedia.org/wiki/Brief_(text_editor)


Back on those days I was using Q with its Wordstar key-bindings and Clipper 5 with its OO extensions, after some learning with Summer 87.


Before Clipper I also wrote a ton of code in dBase II and used WordStar (in text editor mode). This was on a couple of different NEC CP/M machines (an APC [0] with 8" floppies and it's sibling the PC-8800 [1] which had 8" and 5.25" floppies - no hard disks!). This was circa 1985/6. Then my boss bought Clipper Autumn 86 after we tried a few other dBase compilers (Quicksilver and I think dbXL). We also bought B-Linker after Nantucket/CA's supplied link ran out of steam for us.

I was a demon with the Clipper TBrowse object :) Happy days.

0: http://imgur.com/NjCBsYs

1: http://imgur.com/NcCTnUS


On a really, really shitty platform without a package manager and a decent CLI.


I've done barely any MS development to speak of. However, I have done extensive development using CLI-based tools and I've used excellent IDEs like Jetbrains'. The power a good, integrated tool gives you over less integrated environments is tremendous. I rarely need the CLI anymore for development, so maybe with good enough tooling it doesn't matter.

Now, I hear MS' tools compare favorably with Jetbrains'. If that's true, that sounds like a pretty decent platform to me.


um, really shitty platform i nwhat regard? Also, VS has had a package manager for a while and Powershell is more than capable


I don't understand the people who compare PowerShell to a CLI on Unix/Linux. They're worlds apart and not even comparable. PowerShell is like a little set of APIs you can use to get at data - nothing outside of that, play within the rules - but those APIs are pretty good when they do exist.

Unix/Linux CLI is a core set of tools that get you at literally everything you could want and give you unbounded power and flexibility.

Worlds apart.


"PowerShell is like a little set of APIs you can use to get at data - nothing outside of that, play within the rules "

Bullshit. It's engineering rule that all Microsoft products have all the admin capabilities exposed via powershell.

Most admin gui's are now simply a call to a powershell command.

You can pipe, and redirect input/output just like unix shells.


Microsoft fanboy here (and OP of this sub-thread). PowerShell is a great example of how the two camps never meet in the middle. The syntax is mind-numbingly stupid. Also it's a scripting language not a shell -- but if they called it PowerScript people would just make fun of it for being bad Python. The syntax is hideous.

And let's not talk about the shell itself which -- dear lord.

Meanwhile Unix folk will never realize how much time they waste with broken scripts that have three sets of nested escaped quotes just so they can get text from one place to another -- even though "plain text is everything" hasn't really solved problems in a robust fashion since the 80s. Add in six different variations on regular expressions, a couple Python 2 vs 3 wars, endless battles of how to handle service startup, and the the fact that basic tools like sed and grep are stuck in some BSD never-never land on the Mac and you've got yourself a real mess.

So when you're writing a script to move users, mailboxes and databases around? Maybe that PowerShell ain't so verbose after all. Better to type a little more now than deal with the pissed-off VP with an umlaut in his name later.


I really wish I could show about 70% of the Windows knuckleheads a few Linux tools. And I really wish about half of Hacker News would spend twenty minutes with Visual Studio and Azure. Both sides have no idea what is possible. And, no. No joke.


I use both. The friction is way lower on the Linux side of things. Sure you can knock up a 50 line powershell script to thing X but if you do it in 97 lines of python it takes less time because you didn't have to download a later version of management tooling which then required a reboot followed by half an hour arguing with script signing followed by an hour of trying to scan through KB articles to work out why your PS script didn't run in task scheduler only to find it was an obscure compatibility flag followed by it failing after two days because a CIFS share suddenly went offline...

And today visual studio 2013 crashed on me a relatively low 11 times...

Oh and I had to fix a script that tried to deploy sql server instances and pretty much entirely fucked up my workstation.

This is every day when your product gets large.


Visual Studio should not be crashing. Also bash scripts are famous for fucking up server instances, too. And crond, while simple, is equally deadly. Everyone's had a weird ass permissions problem there that took three nights of logs to figure out. This is general life in the trenches regardless of platform. Also, I'm certainly not a PowerShell fan but you have to admit it does bring structure to the madness.


I think the number of people who have used both is quite large. The people who know the ups and downs of both systems just don't post that the other system has bad tools, so they're not in the conversation.


I use Visual studio to write c# apps for my day job(love it). My Linux development had been polar opposites of spending days getting a embedded arm toolchain to compile and using vim to make a .c file an typing gcc main.c -o HelloWorld. There is also the whole make file strangeness. Where would you point me to make me like linux development more?


I'd recommend Yocto to build a system and toolchain for your target, but it's insanely painful to do anything beyond building a precooked recipe for a known embedded target.

Installing an ARM toolchain is simple now. Don't build one unless you really need to (or you install Yocto).

    apt-get install gcc-arm-linux-gnueabi


There's a page on my website called 'A short guide to building a gcc cross-compiler (while still remaining nominally insane)'. It's hopelessly out-of-date now, but it's still one of the most popular pages I've got.

Back when I wrote it, in the gcc 4.3.3 days, I don't even think gcc had a release manager --- we're talking clean, out-of-the-box build failures here.

It's gotten a bit better since then, but getting hold of a gcc cross-compiler is still painfully, pointlessly hard.


It's gotten a bit better since then, but getting hold of a gcc cross-compiler is still painfully, pointlessly hard

For ARM it takes 90 seconds in Debian/Ubuntu. I posted the command right above.

And the larger chipmakers will provide or point you to relevant toolsets or include them with their IDEs. Even the large independent IDE makers wrap their stuff around gcc now.


ARM is popular enough that there's a precompiled cross-compiler in Debian --- you get lucky there. It's even reasonably recent.

But there isn't a MIPS toolchain. Or an m68k toolchain. Or a sparc toolchain. Or an alpha toolchain. Or an SH toolchain. There is a Hitachi H8 toolchain, but it's based on 3.4.6. There's an MSP430 toolchain, but you don't want to use it, as it's achingly old and can brick some modern MSP430 devices. etc.

Typically, when working on an embedded device, the very first thing you do is spend far too many frustrating hours trying to beat gcc into shape, and that shouldn't be necessary. The fact that the packages for all these things aren't built and pushed to Debian automatically every time a gcc release is done indicates that something is very wrong somewhere...


Use python or go instead.


I see it as a problem with people not being open to a shift in how to get things done. You even see it within Windows development, like the crowd who argue you can't get anything done without ReSharper. People get used to doing something one way, and any other way is seen as inferior.


Show me the Linux tools.


This will get buried here and is worthy of a separate thread. But... what are the "gateway drugs" for a Windows-centric dev? A Linux-centrix dev?

For me it was Postgres to show what open source was really capable of (a more current example would be LLVM), and Python and SWIG as examples of things that simply don't exist inside the Microsoft ecosystem but which solve so, so many problems. And even on weeks where I'm sitting in Visual Studio all day, I still couldn't live without Cygwin, wonky as it may be. Also: your fears about licensing and quality and some of the other FUD I see in threads like this are largely bullshit.

On the other side, any Mac or Linux dev who prefers Eclipse or Xcode to Visual Studio really needs to have his or her head examined. There's a culture shock, yes. Now give it a few days and deal with it. C# is superior to Java -- much smarter language architects and bigger, better teams, better tech, better docs. F# type providers will make your head explode in a positive way. Azure kicks ass on AWS, sorry. And the sheer depth and volume of everything Microsoft does really can't be understood until you dig in. This is a company that spends $10 billion every year on R&D. And they're the most developer-focused company on earth by far. Also, they're actually not stupid, though you may have to take that on faith to start. There is also PLENTY of open source code. Also plenty of "pay $149 for something with support instead of beating your head against a bunch of snarky bastards on a mailing list for a week" options too for those moments when you have more money than time. Also: all your fears about lock-in and secret API and some of the other FUD I see here are largely bullshit, too.


Show the Linux tools. I'm genuinely interested.


Check out netmf


Microsoft just came out with an Android Emulator this year too. It's faster than any other emulator that I've seen and it's really well integrated with Visual Studio.

If you've never really used Microsofts tools before and all that you've heard about Microsoft has originated from the crowd that hangs out at HN, you can be forgiven for not knowing that they make very fine quality tools.


I've managed a 25-year career out of staying away from anything Microsoft in the embedded arena. WinCE, WinCE Auto, Windows Embedded, Windows XP Embedded, Windows XP Embedded Cool Ranch Flavor, Windows Mobile, Windows Phone, Windows Phone 8, Windows whatever-the-hell-it-is-today. And that philosophy has saved me a lot of pain over the years.

The tools might be great, but I don't ship tools. I ship applications that need good solid runtime libraries.

Win10 might be a fresh start and that's all well-and-good. But I'll believe it when I see it. Slapping on a buzzword like "IoT" won't change things. I develop lots of IoT stuff and I see no reason to go near Win10.


I've managed a 25-year career out of using the right tool for the job. I focus on Windows, but I use Linux, OS X, etc. when it makes sense.

The flavors of Windows that you mention are part of a longer term story, and are really just two operating systems: Windows CE and Windows NT. Windows CE was important for targeting the small devices of the 90's era in which it was developed. Now we can run NT on the 'small' devices that we have today. I think that's pretty cool. Now we have Linux and NT (and FreeBSD, etc.) and we have more choices.

EDIT: Phrasing


Now we can run NT on the 'small' devices that we have today.

Funny how things change. A Raspberry Pi isn't a "small" embedded device. It's a small desktop device. It just happens to get embedded in a lot of stuff now.

I still can't/won't run WinNT on the 72MHz Cortex-M3 (w/64KiB SRAM) that's the core of my customer's current product.


Good point. CE and NT are definitely not for embedded devices, in the conventional sense of the word. They're also not real-time (as you know), but then neither is Linux. Embedded really is a whole other world. It's a fun space to play near, though, with more conventional systems and tools.


How can you claim it's saved you a lot of pain if you have never done it.


Indeed, their developer tools are some of the best, though the do tend to try locking you in their environment.


Bear in mind it seems to only emulate x86 targets -and the standard Android emulator seems pretty quick when it's not having to pretend to be an ARM chip...

http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/i...

https://www.visualstudio.com/en-us/features/msft-android-emu...


But VS isn't used for writing Android apps. The vast majority of those are written in Java, which VS isn't used for.


you can in VS 2015


You cannot write Android apps in Java in VS 2015, which is the vast majority of apps. You can do some NDK stuff in C/C++.


VS 2015 has Tools for Apache Cordova. That's what integrates with the emulator. You can build apps with Ionic and other PhoneGap/Cordova frameworks.

Of course, one can also use Xamarin. I doubt they'll try to compete with the tools for Java.


Next on the list of bad IoT ideas, we port Flash to the Raspberry Pi.


Or even worse, use Flash for a car instrument cluster. Oh wait, that's already been done: https://www.adobe.com/inspire-archive/june2010/articles/arti...

(used by a lot of Ford cars)


In fact there is already a Pepper plugin for Flash that works on RPi2; you can get it from an ARMv7 version of ChromeOS.


Does it come with the same privacy issues as its older sister?


It requires you to install Windows 10 on your Desktop so... yes.


For anyone wondering what IoT stands for, it's "Internet of Things."


Sincerely I prefer to run ubuntu. Last week I installed Ubuntu Server 14.04 in my Pi 2 and it works like a charm. Totally recommended...

https://wiki.ubuntu.com/ARM/RaspberryPi

Ubuntu Snappy Core (also marketed for IoT)... mmm not so much great. IMO still few community and howtos for building your snappy apps (even Raspbian is better)


I just don't get why they would put up a barrier to entry by requiring Windows 10 - at least I can't think of any technical rationale.


probably for the same reason that Apple requires you to own a mac to build an iPhone app


Except that OS X and iOS are both Apple environments for Apple hardware, while the Pi is an independent hardware product.

So no - there is no good reason for making Win 10 essential, beyond corporate dementia.

Seriously. Why on Earth does MS seem to think there's going to be a stampede to install an OS that doesn't do anything outstandingly special, has a high cost of entry (in time and effort, if you don't want Win 10) and is already competing with a good few established contenders?


> Except that OS X and iOS are both Apple environments for Apple hardware, while the Pi is an independent hardware product.

Windows 10 IoT Core doesn't have a shell. It's only worth putting on the Pi if you have a Windows 10 app developed for it.


>Why on Earth does MS seem to think there's going to be a stampede to install an OS that doesn't do anything outstandingly special

Well if I can get flash and silverlight to work, that would make my raspberry pi Media Center complete. When you work with raspberry pi you will realize how limited it is. Even most popular programs that work with Ubuntu does not work with it. I still can't even a decent browser on it, and by decent I mean something that only uses up < 80% CPU.


That's not the same at all. This is literally just putting an image on an SD card.


An image that is only useful if you have a Windows 10 app to run in it. It lacks a Windows shell.


Well, you can always patch the check out and find out what happens.


License? Seems hard to find online. Not looking for anything unusual for the existing raspi community, just what do I have to do to make a project on it then distribute a bootable sdcard image to users around the world for free. I'm guessing its a total non-starter but if I were surprised by it being BSD/GPL that would be interesting.

The hardware compatibility part of the release notes look like a bad linux install from 1995, which is pretty funny.


I'm in the middle of writing my first C# app, targeting the Intel IoT Gateway (all with MonoDevelop on Ubuntu.) How things come full circle...


I've got an Intel Galilleo that Microsoft sent me which I was hoping to use to play with the embedded windows platform, but it was so locked down, all you could do was write arduino sketches, now they release their Windows for IoT and it only works on Raspberry Pi 2?

I've got beaglebones and RPis that I'd love to give Windows 10 a play on, but they've shot themselves in the foot by supporting such a small part of the hardware market.

I've been a microsoft fan for a long time, I have a Windows 10 laptop, Windows Phone, and want to at least give them a try for IoT (though I have no problem with my linux installs), but I think they've lost me on this one.

Who thought they could come into a market which is well served by the linux community, offer very little if anything compared to what is already available, make it difficult to install, have it work on a small subset of hardware, and make it a success.

I don't understand Microsoft's strategy here at all!


I'm curious as to the mention of a "Web Control" and how long we have to wait until we can use DirectX for graphics, seeing as I've been trying to use Pis for digital signage[1] for a while with varying results (we've since started using cheap Android boxes with great results, but I wish I had more choices).

[1]: https://github.com/sapo/digital-signage-client


I had to recently roll my own signage solution and have built something I think is pretty compelling using Yocto[1]. I'm using CuBox-i devices running Linux and Midori (which is based on WebKit). I don't know if it does accelerated rendering but the boxes are much more powerful than Pis (and are a lot less dev-kit-y than Pis). If nothing else, hopefully a pointer to Yocto will be useful to you - it's pretty great.

[1] https://github.com/luciddg/kiosk-yocto


Thanks, I'll look into it. Right now the Android boxes we're using cost €50 (less if you buy in bulk) and do both accelerated rendering and HLS video, but I'm always looking out for more options.


What Android digital signage client are you using?


This one: https://github.com/sapo/android-signage-client

(of course we rolled our own :))


Seeing that they just added Wi-Fi and Bluetooth support I find ironic that Windows has the disadvantage on drivers and Linux has the upper hand.


Sorry, silly question: can one use this Win10 R-pi as a "real computer"? (more to the point: I want to run labview programs on this r-pi, because of its small size/cost -- give/receive triggers various home automation equipment etc., I'm wondering if that'll be possible with this)


You can install LabView on it, just not if the OS is Windows 10 IoT.

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/LabVIEW-for-Ra...


Sorry, I must be missing something. I see no mention of a successful Labview install on an R-pi, no matter the operating system. Maybe I missed a thread? I'm okay with any operating system of course, I just want my Labview program to run on it.


Probably not since there is no GUI and regular Windows command line tools won't run out of the box.


It has a gui. It supports headed and headless modes.

you're right tho, most tools from win32 won't work.


Headed-mode runs a single XAML app in fullscreen, and there is no taskbar or start menu or anything.


I'm guessing it can also only run the new universal windows apps. The classical desktop apps are only available on x86 - which the Pi is not.


No, this will not work as a regular desktop Windows. It's more of an embedded Windows install.


Why would anyone want to put such closed-source bloatware licenceware with no future on anything?

It's a trap!


Does this run win32 applications?


No, but it will run apps that use a subset of the API for universal apps (ie. the app must be able to handle some parts of the API missing) https://msdn.microsoft.com/library/windows/apps/dn726767.asp...


Sad that they showed a node example. What about asp.net on .net core?


Yeah! Or COBOL! PHP! INTERCAL!


ASP.NET is not oldschool - it has MVC (with best templating language - Razor), real time with SignalR. Stop living in Visual Basic and Web Forms age...


Supporting a proprietary platform on Raspberry Pi kind of defeats the point of the openness on which Raspberry Pi was built, no?


The Raspberry Pi may be openwashed, but it's not really that open.

edit: oh no, I've run afoul of the Broadcom shills. Oh well.


True assessment or not, it's not a compelling reason in itself to encourage less free use(r)s of it.


Beg pardon? The parent post was whining that running Windows wasn't in the open spirit of the project. The project was never open in a meaningful way, so it doesn't seem like a problem at all to do so.

I'm not encouraging any particular software package, simply correcting a misconception.


Unfortunately, there are a few parts of RPi that are closed, like the GPU, if I recall correctly, but I do agree with you that it sort of goes against the philosophy of tinkering that openness brings.


There is a reasonable Gallium / Mesa driver for the GPU on the way; for simple OpenGL / OpenCL workloads it works reasonably well. It is being actively worked on so it is still improving.

https://wiki.freedesktop.org/dri/VC4/


The GPU is only partially closed. Unfortunately, the part of the GPU that's closed and requires a binary blob is the bit that boots the Pi, so you have to use closed-source code in order to do anything with the Pi at all - even stuff that doesn't use the GPU.


I don't see how you can practically have an open platform and then close it off to proprietary things.


The commenter isn't saying it should be blocked, they're saying it's against the spirit of openness.


They were talking about "Supporting a proprietary platform", and I assumed they meant the hardware supporting Windows. If the hardware supporting Windows is somehow bad, that implies removing that support would be better.

Maybe I'm wrong and they mean a person or organization, in which case I'm not sure who they mean. Windows does not appear on the official Raspberry Pi website front page or blog.


thats awesome!


I'd love to try this out.

But I have zero interest in migrating any of my perfectly fine Windows 7 systems to Windows 10. Other than a shiny "FREE!" sticker, I have yet to see a compelling case for me to upgrade.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

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

Search: