Microsoft's .NET Arduino?
Ed T
Posts: 50
http://netmf.com/gadgeteer/
"Microsoft .NET Gadgeteer is an open-source toolkit for building small electronic devices using the .NET Micro Framework and Visual Studio/Visual C# Express.
Build all manner of electronic gadgets quickly and easily with .NET Gadgeteer."
"Microsoft .NET Gadgeteer is an open-source toolkit for building small electronic devices using the .NET Micro Framework and Visual Studio/Visual C# Express.
Build all manner of electronic gadgets quickly and easily with .NET Gadgeteer."
Comments
How many projects will be using an ARM with a boatload of RAM when a simple Prop, PIC, AVR, etc. would have done very nicely.
C.W.
Totally agree about the bloat though.
"Bloat" is all releative. Who cares what somebody builds their widget with if it does the job?
Depends on the situation, if a "Maker" uses something like this, no big deal, if the next generation of engineers depends on using something like this to build a coffee maker we are in deep trouble.
C.W.
What?? You don't want your Dual-Core, 2GB coffee maker to turn the pot blue blue 1/2 way through a cycle before the heater element burns out?? Heretic!!!!
GHI was a little silly in creating a namespace with their name in it -- bound to get trampled on if more players jump on the bandwagon. Sometimes that happens with open source, sometimes not. I'd assume the Mono guys are already revamping the libraries to make them vendor-agnostic.
This isn't great news for anyone fighting for mindshare in the mcu market, but its success is far from a given. MS didn't do a very good job promoting their robotics studio(what? they have a robotics studio product?), and this too may fall through the cracks.
I'd be curious to know how soon a Kinect library will be available for this thing. Now THAT is a killer app.
-- Gordon
Now let's not jump to any conclusions until after we taste the coffee.
IMO, GordonMcComb is correct. A lot of embedded programming still exists at a very low level of abstraction away from the hardware. Whether C# or Java or comething similar is the ideal abstraction level, who know?
The goal shouldn't be to find the smallest assembly-only mcu that exists, or the mcu that can run Google's data farm. It should be to find the optimum mix of hw & sw that let's you complete your goals. Being able to leverage your sw skill is a big plus, regardless of language.
That said don't underestimate mister softy. They aren't a pc house anymore. Ever see their acquisitions like WindRiver which a major embedded software house for compilers and RTOS's?
And C# looks nice. It's the way C should be. MS should give it to WindRiver and let them make a real embedded compiler for it.
Not trying to cheerlead for them, but let's remember a couple of points:
1. The GHI hardware is just one of many reference designs. It would be like saying the so-and-so Propeller board is (fill in the blanks) when there's only one to pick from. The idea of open source designs is that others can enter the fray.
2. Embedded doesn't always mean battery operated, Mr. Forbin, just embedded. I'd assume a sleep/idle mode is somewhere to be found (I'm pretty sure the ARM7 architecture is interrupt-based), but it's fair to say an ARM7 processor will pull more juice than a BS2.
3. Netduino also runs on an ARM7 and it's just $35. The difference is just a minimalist design aimed at hackerspace over industrial designers looking for a fast start. GHI's looks more like a development platform than something you'd use in a finished product--though you *could* if you wanted, and the end price was high enough to justify the cost of the modules.
4. I remember VS6 quite well. You'd be amazed (as is Microsoft) how many people still use that for app development, despite it being a decade out of date. C# (and VB.net) commands a legion of *millions* of coders, when you count all the inhouse apps people write, like the kind I do. Being able to leverage familiarity of a language to master a new platform has enormous potential and importance.
-- Gordon
The good thing about this kit is that it can do all sorts of things in software very easily.
The bad thing is the price - $120 for the main board, and $250 for a starter kit. At those prices I'd be inclined to buy a netbook instead.
The propeller can do many of the things this .net kit can do, and many of the things are cheaper too, eg the flexibility with displays. But the prop doesn't have a GUI like C# and maybe that is what is needed. I've got some of one coded (many of the buttons/fonts/text boxes) in standard C. I'd better get back to coding...!
However it's target audience isn't the same as Parallax's where the most of the people here very experienced across multiple platforms and languages.
Microsoft didn't buy WindRiver... Intel did.
Bill
Well, I'm one of those people. VS6 still integrates well with Windows (even 7, the way I use it) and it's compatible with the tens of thousands of lines of production code I wrote much of which can't be translated into .NET at all. For example, I had an entire framework which I used for some large apps which depended intimately on the ability to return a redimmed array of typed variables as the result of a function, something that was left out of .NET presumably because the framework doesn't support it. Those apps can't be ported to .NET at all; it would be senseless to even try.
The lesson I took from Microsoft's unprecedented kick in the balls to half the world's programmers is that they cannot be trusted. After what they did to the VS6 community I would switch to Brainf**k before I would ever write a single line of .NET code, or for that matter whatever they are thinking about ramming down the .NET community's throat when they decide it will be profitable to stab them in the back too. It's coming. .NET was an attempt to steal Java's thunder, and now they are eyeing up Flash, and Silverlight has pretty much flopped. There were some very upset developers after the recent Windows 8 preview seemed to completely ignore .NET in favor of some vague new net-based thingie.
There is no reason Microsoft had to completely repudiate VS6; they could have continued to support it or at least sell it without doing updates while rolling out their newer betterer product. But that wouldn't have driven all thosed forced .NET migrations, costing $BILLIONS of wasted dollars as perfectly functional applications had to be rewritten simply because you couldn't get a new legal version of the development system any more.
Since the scope of what I do hasn't changed much since 1988 but computers have, I am planning our next migration to be away from PC's completely to Propeller based systems which support a PC-style user interface through ethernet and a web browser when necessary. That will mean building all my own tools but I've done that several times in my life already, and at least if I build my own tools I don't have to worry about their future availability.
(Oh, and that's DOCTOR Forbin, Mr. Robot Bonanza :-)
Yeah, Win8 is changing things, but consider its main intention is to run on tablets. A compact .NET framework can work there, but it's not really logical to try to apply the entire .NET framework to be used in a tablet, which has far more limited RAM, CPU, and other hardware. Standard .NET is for the typical desktop.
It's not MS's doing that tablets are becoming more popular. It's what people now want, their current OS doesn't intimately support it, and now they have to make changes.
As a marketer in my own small biz, I understand MS's need to tout the features of their new technology. They can't very well be expected to say things like "VS6 is perfectly good and you should stick with it, but we have something else you might be interested in." In software land they want to sell new and upgraded seats. Everyone sticking with VS6 doesn't earn them much money.
Re "redimmed array of typed variables": I think I understand what you were doing, and I had this type of thing in my VB6 apps. In general, I found workarounds -- sometimes improved -- to old methods. I have no idea if it would work in your situation, but I've used collections of one type or another quite extensively for this type of problem. What's more is that collections can be streamed very easily as I/O, making it possible to create file storage of data with just a few lines of code.
-- Gordon
In the 1.1 Framework you had to build your own collections and delegates, easy to do but a pain in the butt. 2.0 came with Generics, very handy. 3.5+ has LINQ.
It is true that in many businesses screwing over your customers can be a very profitable strategy. I happen to work for a scale company. Trust is such an important part of our business that it's enforced by the government; I have a license in my wallet that I have to have in order to open up a legal for trade scale and work on it. This is necessary because, as I like to tell people, humans have been using scales for about 5,000 years and trying to cheat them for about 4,999. Considering what I do, it would be very easy to make a cheating scale nobody could detect, and I've been asked to on several occasions over the years by people who were shocked, shocked I tell you to learn that their cool scheme was not only morally bankrupt, but jailtime inducing illegal.
When you offer a service such as a software development platform which becomes the basis for a lot of other peoples' work, you take on a certain responsibility. Yes there will eventually be obsolescence and new products, but in htis case Microsoft didn't just force a bunch of customers into a profitable upgrade round, they broke billions of lines of existing code when it was not necessary. I frankly don't give a rodent's posterior whether they did or didn't make money on the move. They violated my trust in a way that would get me jailed if I were cheeky enough to try it in my own industry, because people have been using scales just a little longer than we have been using computers and our leaders have known the importance of that for a long time. They are a little less clueful about computers though.
By any sensible metric Microsoft cost various companies that had trusted them hundreds or even thousands of times as much money as Microsoft stood to make from their migration to a new and unfamiliar platform that in most of those cases was not at that time at all necessary. .NET wasn't an upgrade or a new feature, it was a completely incompatible system that had new strengths and weaknesses and was fundamentally unusable for many things the old system had been made to streamline. My problem isn't that they offered a new product or aggressively marketed it, it's that they made the old one upon which hundreds of thousands of people were dependent completely unavailable in order to force them to migrate whether it made any sense or not and no matter how much it might cost them.
For all I know Microsoft may have finally put in those functions that were lacking, but I really don't care because I will never, ever trust them to be the foundation of that much of my work ever again. They essentially tried to steal -- and effectively did in some ways -- ten years of my work. They will not get the chance to do that again.
One good thing is that my very conservative approach to design (I don't use plugins at all, code everything to the API, don't use the registry or stupid things like ODBC that tend to get replaced every few years, which means as long as the runtime is already on the system my stuff runs without being installed just like a DOS app) means that what I have written is still compatible with Windows 7 despite Microsoft's efforts to break it. By the time they manage to screw the OS up enough that it no longer works with my codebase I probably won't need Windows at all any more, and will be able to treat it as a commodity platform for the browser when my customers do.
As much as I like the Fez Spider h/w, there is every possibility that Micro$oft will pull the plug on C# and .Net when they see another money making opportunity come along and thereby screwing more people over. It was a bad decision for GHI to bet the farm on M$.
It's one company that should have had been broken up years ago and it's parts sold to the highest bidder.
Again, no flame wars. I'm sure you've already considered these options, and still choose the Propeller. I'm just curious to know what tipped the scale towards the Propeller... pun completely unintentional.
Most of what I do s really about I/O, and linking phyically collected data with user input data. I don't need an OS to do that at all, and wih the Propeller if I need a video display I can throw a cog at it and walla, video. PS/2 keyboard? Toss cog, one resistor, there it is. I am pretty sure ARM can't generate VGA in software with just a few resistors. That flexibility is incredibly valuable when you're not sure what the next job will be.