.Net On Lego Mindstorm
troop23 writes "A blog posting by Benjamin J. J. Voigt says this "The University of Potsdam has a project to develop a .NET VM for the Lego Mindstorms system. Lego Mindstorms just got a higher priority on my shopping list!" While the thought of using .Net to program Lego Mindstorms may not be palatable, having a mainstream dev environment sure is." Perhaps Mono would work just as well.
Last I heard they had to axe some of their newer lines of products...they doing okay? I'd hate for my children to grow up in a world without Lego one day...
I don't get it. Why would they go with .NET rather than just writing a C/C++ compiler for it? We're talking about a low-speed embedded device here, a situation where the use of a VM is less than ideal.
Is it just because they want to make the front page of slashdot, or is there a real reason?
Disconnect and self-destruct, one bullet at a time.
Bah. My LEGO Mindstorms robot + Vision Command camera beats everything when I use Perl and PHP to allow people to drive it around my room from across the world. A link to this robot's interface would mean doom to my connection so I'm keeping it under covers ;)
Both have a very similar stack, and both do all their operations on the stack in the same way.
Some of the first java chips were modified Forth chips (from patriot scientific). Others (the one from icompression) were very simple stack-based designs as well.
What advantage do you think Forth has over a VM? Both do well on stack-based architectures.
C works well on non-stack-based architectures with lots of registers (mips, arm, sparc, etc).
Both work about equally well (or you could sya, neither work well) on register-starved x86 based architectures.
Assembler is a different concept altogether. Note that when I was writing the high-level java bytecodes for a chip which ran Java bytecodes natively, I was using assembler _and_ a java VM at the same time.
Unfortunately, this probably won't change anything. I did want to program in higher-level (or lower, whichever way you look at it) languages, but they didn't allow "external" programming languages. (from http://www.firstlegoleague.org/default.aspx?pid=1
That doesn't mean that people won't use it though
-Anonymous Coward
It's programmed 100% in C, is Bluetootha? enabled, etc.
Seems to me .NET is a good idea, so good in fact it's ripped off by Mono. A solid intelligable foundation library of objects, inter language, cross platform compatability. C# is a very enjoyable language to work in for some of us (personal preference). There's always the /.'ers with monkeys on their backs that insist its one huge elaborate Microsoft bait and switch to lock everyone into the Microsoft Evil Empire, but it seems to me theres a ton of positives as well, ECMA standardization, dozens of .NET capable languages now, and the MONO project is a great thing (that is a direct result, like it or not, of .NET being born). So whats with all this "oh nos, its Microsoft, so I shall not dirty my hands of complimenting it! Must bash in every post ever!".
You ever use Java? Many more libraries and they are more feature filled and flexible, also its faster. C# is not technically cross platform, it only is because the OSS world is making it so. That'd be like saying a Win32 executable is cross platform compatible because of Wine.
Regards,
Steve
You are right about that. Consider Java where a similar thing is happening with J2ME. True, the complete API is much larger, but the main bytecode compiler is much smaller. For Javacard, there is a stripped down java.lang package, and a few specialized crypto and communcation libraries. We're talking KB's here. Garbage collection, class loading , everything is stripped except the byte code and the Java language itself.
The main benefits? Class support, byte[] support without the possibility of buffer overflows, exception support etc. etc. All you need to get things working, nothing you don't need. VM's are are just great for such things. The only big problem with it is if you need really tight timing. You need to go to C or assembly level code for that. So you need to encapsulate some heavy IO ops.
Styx-on-a-brick is really cool and fits directly into the Unix way of doing things:And then you can easily connect it an Inferno Grid: http://www.vitanuova.com/solutions/grid/demogrid.
Why use a bad Java clone(that is what
uriel
P.S.: And yes, for those still living under a rock, Both Inferno and Plan 9 are Open Source. Inferno: http://www.vitanuova.com/inferno/net_download4T.h
P.P.S.: For those that don't know what Inferno is and to bypass SlashDot filters here is some text from Dennis M. Ritchie himself: Limbo is a programming language intended for applications running distributed systems on small computers. It supports modular programming, strong type checking at compile- and run-time, interprocess communication over typed channels, automatic garbage collection, and simple abstract data types.
And here is an extract from an interview with Ken God Thompson, creator of Unix and co-inventor of C:
Computer: How does your work on Plan 9 and Inferno derive from your earlier work on Unix? What are some of the new ideas arising out of this work that could and should apply to distributed operating systems in general?
Thompson: [...] In Plan 9 and Inferno, the key ideas are the protocol for communicating between components and the simplification and extension of particular concepts. In Plan 9, the key abstraction is the file system any thing you can read and write and select by names in a hierarchy and the protocol exports that abstraction to remote channels to enable distribution. Inferno works similarly, but it has a layer of language interaction above it through the Limbo language interface which is [somewhat] like Java, but cleaner.
"When in doubt, use brute force." Ken Thompson
Maybe you're not talking about the same thing that .NET detractors dislike. It might not be the .NET itself, but rather the unwillingness to throw any additional support towards the already-unmanageable 800 pound gorilla. Maybe it isn't the OSS software people really like, but rather the freedom that they have to deal with what they don't like.
Lesson for Slashdot readers in filtering the subtle troll:
Either you really don't understand the people you're talking about, or you're just an astroturfer. Discrediting your post only requires a little good discussion. The suggestion "flame away" that you are inviting people to flame you in response doesn't mean that every response is a flame. Just because you get flames does not mean your opinion holds water. It only means you have failed to reach an audience capable of responding with meaningful criticism. Inviting flames is tantamount to a request for people to pollute any discussion or criticism that may follow. You post your crap in bad faith that it can stand up to open discussion. You are a troll.
--- Nothing clever here: move along now...
Double-plus good Bill.
Stick Men
A Java environment for the Mindstorms has existed for quite some time. Appropriate or not, some people seem to find it useful.
Mod down posts with a "Free Mac Mini/iPod" sig, they're spam!
While mindstorm is cool, but i'm kind of disappointed to see how underpowered the motors are. If only they'd have some kind of "adult" mindstorm sets where you can build you own remote controlled helicopter out of legos.. wow, that'd be so darned cool.
Of course I doubt usual lego blocks would do though, too heavy to fly, but there's the idea. I'm sure many parents still have a secret longing for the toys they played in their childhood.
Guys never grow out of their toys! =)
Online backup with Mozy, sounds like Ozzie, but more!