Happy anniversary NETMF 4.3

It can never “die”, because it’s open source, and GHI has a copy of the code. If Microsoft today shut down the NETMF codeplex site and completely washed their hands of it, nothing would change for us. GHI’s releases would continue, and we would hardly notice.

In fact, if I’m looking in the right place, there hasn’t been a single commit to the NETMF repository since December of 2012, the commit that created 4.3 RTM. There’s no evidence that Microsoft HASN’T abandoned NETMF…

If Microsoft dropped MF I think we would see a very favorable change. GHI would take it over, and would not have to wait for MS to make fixes.

1 Like

I think It can be done without waiting for MS to drop it. The platform needs more players for sure. Competition would increase quality and attractiveness of the platform.

2 Likes

I love Visual Studio but until there’s a web or multi-platform version, NETMF will always lag behind.

My bet is that this new bread of Javascript based MCUs are going to take off and perhaps pass up Arduino one day. Getting the Gadgeteer standard ported over to work with the Javascript MCUs quickly would turn out well for someone. Instant code + modules is a prototypers dream.

BTW, did you see the MS research project (name?) that allows C# to be compiled to native code? If that becomes a standard feature what are the odds that we’ll get the same on the NETMF side? That would be cool.

So, to answer your question. Nobody really knows. I don’t think MS knows that too. People involved are doing it, while they can afford it, and everybody hopes that it will grow into something big.

@ Architect - I could see NETMF gaining traction through devices. There are lots of devices I own that I wish had NETMF inside. My wifi router, 3D printer, digital camera, universal remote, etc. It seems like these devices might be a good way of reaching .NET developers who aren’t currently doing embedded development.

I thought the NETMF based quadrocopter might have this effect. …But after that cool product was made nobody put it up for sale?!? Why not?

GHI could do both, just like they do now. They would continue to port the “base” code to their products, and they would add premium features that they can charge extra for. If they took over the “base” code they would certainly have an interest in maintaining it and fixing bugs as quickly as possible. This way their premium customer base stays happy.

There is a web version now. The thought of running an IDE in a web browser makes me puke. Bleh. Web browsers are the WORST examples of software in the world. We’ve had this discussion here recently BTW.

Could be. I’m not convinced on the “module” concept (you often end up wasting lots of pins, or not having enough in any given socket), but could be. The module concept is orthogonal to the language used to program the MCU, though. If someone comes up with a JS engine that’s performant and easy to work with, then it could take off.

As for Javascript the language, it’s not horrible, but it’s not great, either, in my opinion. Better than Python, but sometimes I long for Lua.

Problem is, it’s hard to beat the Arduino juggernaut, and one of the reasons for that is that it’s programmed in Wiring, which is actually C/C++. That means that because it’s Wiring, it’s easy for simple things, but because it’s C/C++, it’s highly performant.

C# in the desktop framework and compact frameworks is ALWAYS compiled to native code. Always. By default, it’s JITted, but if you want, you can pre-generate the native images with ngen. It’s been that way from version 1.0.

As for NETMF, the reasons we’ve been given that JIT doesn’t work is because there’s not enough RAM to store the generated images, and so you end up re-jitting methods over and over again, so there’s no performance gain. There was also work done on an AOT (ahead-of-time, i.e. ngen) compiler, but the reason given that AOT didn’t work out is because the native code was significantly larger, and there wasn’t enough flash to store it all.

Out of curiosity, why would you care if your universal remote ran NETMF? Further, you could implement that today, if you wanted. All the building blocks are there. It’s not even an especially hard project.

Yes, Microsoft needs to better understand how NETMF is used in such applications - this is understandably difficult for an organization used to get such feedback through other channels, e.g. sales reps.

In the same vein, they need to understand the valuable competencies of professionals who know the microcontroller field. Please see this thread for that:
https://www.ghielectronics.com/community/forum/topic?id=14278&page=1#msg145176

2 Likes

Where? I’ve seen the VS Online product but it appears to just be a renamed TFS cloud product. I couldn’t find an actual only IDE anywhere. I agree that programming in a web browser isn’t ideal would at least give non-Windows users an option. The likelihood of MS building a Mac or Linux version of VS is about 0%.

Javascript better than Python? Really? We’ll have to disagree there. Personally, I think Javascript is a pretty terrible language but its so ubiquitous now that I think it makes a lot of sense for this application. Have you seen this one?

http://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers

Maybe that’s all there is. I was under the understanding that there was an actual IDE, but maybe I misread or misunderstood. I didn’t look into it much, because I wouldn’t even consider using something like that under any circumstances.

Sorry, let me be more clear: Python syntax is horrible. Whitespace-significant languages are awful, in my opinion. Python the language is certainly better designed than Javascript the language, but I have a very hard time getting past the syntax.

The most interesting thing about that board is the support for native compilation on a method-by-method basis. You can even use native code to handle interrupts, provided you don’t do heap allocations. That’s huge! It makes possible most or all of the things that NETMF just can’t do without building it into the framework in C or using something like RLP.

Supporting native code in NETMF is the killer feature, in my opinion.

Would be nice to have this on the boards:
http://cosmos.codeplex.com/
But it only supports Intel x86/x64 so far, and is not complete yet.

I’d just like all the electronics I own to run NETMF, just in case I ever want to repurpose them, etc. …Really I’d be happy with them running another open-source platform, but I’d prefer NETMF.

And yes, I could make one myself, if I had the time. I have zero free time.