Subject:
|
Re: Mindstorms NXT programming languages
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Thu, 12 Jan 2006 21:40:38 GMT
|
Original-From:
|
Juergen Stuber <juergen@jstuber.!nomorespam!net>
|
Viewed:
|
2234 times
|
| |
| |
Hi William
William Grant <tanarrifujitsu@optusnet.com.au> writes:
> Juergen Stuber wrote:
> > William Grant <tanarrifujitsu@optusnet.com.au> writes:
> >
> > > It is unlikely that Java would be an option, as implementing a Java VM
> > > would create massive overhead.
> >
> >
> > I'm pretty sure the official language also uses a VM like
> > on RCX and Spybots, so there you have your "massive overhead".
>
> The bytecode interpreter on the RCX/Spybot is somewhat simpler than
> Java, I am pretty sure.
not much actually for the subset that Lejos implements.
The most complex part of Lejos is the scheduler
(multiple threads, waiting on monitors).
W.r.t. speed we are faster, but the standard firmware
has a more uniform timing.
> Lejos is a small Java VM, yes. As you say, whether a proper(ish) one is
> feasible depends on what access we have to the flash memory (64kb isn't
> very much to work in...).
No, Sun quotes 160K non-volatile and 192K total memory for CLDC
( http://java.sun.com/products/cldc/overview.html ).
> > C is not ideal for human programmers :-)
>
> What is wrong with C?
It is too low-level, it is basically a machine-independent
assembly language. You have to do too much yourself
(memory management, ...) and it is too easy to shoot yourself
in the foot.
Pointers can give you bugs which are very hard to debug,
and buffer overflows are also typical of C.
That is not to say that it doesn't have its uses
like low level systems programming and bulk data processing,
but if you can solve your problem on a higher level that's better.
> Java requires a hefty VM to run, it's slow, you have less
> control over everything,
That is true.
> and is quite inferior to C.
And that is false, because it also has it's advantages,
which outweigh the disadvantages more often than not in todays world.
> > I'm sure there will be plenty of languages to play with on the NXT.
>
> With any luck LEGO will make it easy for a number to work, otherwise a
> lot of the reverse-engineerers will get onto it quickly. If the primary
> processor is an ARM7 as everything says it is, it should be trivial to
> compile C, C++ and other languages supported by GCC, as that is one of
> the supported architectures. Hopefully, LEGO will have realised that
> people want more flexibility, so they will have eliminated most of the
> reverse engineering work required. We can only hope.
I think with the external people like John Barnes involved
in development that will be ok.
My greatest worry is that they still don't get it w.r.t. licensing.
The license of their SDKs to date allows only noncommercial use,
which is not sufficient to qualify as open source.
If that is the case then reengineering will still be needed
for legal reasons.
Jürgen
--
Jürgen Stuber <juergen@jstuber.net>
http://www.jstuber.net/
gnupg key fingerprint = 2767 CA3C 5680 58BA 9A91 23D9 BED6 9A7A AF9E 68B4
|
|
Message is in Reply To:
| | Re: Mindstorms NXT programming languages
|
| (...) The bytecode interpreter on the RCX/Spybot is somewhat simpler than Java, I am pretty sure. (...) Lejos is a small Java VM, yes. As you say, whether a proper(ish) one is feasible depends on what access we have to the flash memory (64kb isn't (...) (19 years ago, 8-Jan-06, to lugnet.robotics)
|
18 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|