To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 25148
25147  |  25149
Subject: 
Re: Mindstorms NXT programming languages
Newsgroups: 
lugnet.robotics
Date: 
Thu, 12 Jan 2006 21:40:38 GMT
Original-From: 
Juergen Stuber <juergen@ANTISPAMjstuber.net>
Viewed: 
2006 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 (...) (18 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
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR