|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||||
|
|||||
|
**FIRST EMAIL**/Java and Orbit Balls
Greetings Teams:
In the 2010 season, FRC teams will have the option of programming their robot in Java. The addition of Java as a programming language option is the culmination of work by Worcester Polytechnic Institute (WPI) and researchers from the Sun SPOT project at Sun Microsystems Laboratories. To learn more as you wait for the 2010 season to begin visit [ http://www.sunspotworld.com/frc/Welcome.html ]http://www.sunspotworld.com/frc/Welcome.html and [ http://first.wpi.edu/FRC/frc-programming.html ]http://first.wpi.edu/FRC/frc-programming.html.$@# We’ll be updating both locations as details are finalized. If you are planning to hold an off season event or host a demonstration of your robot over the summer, you might want some extra game pieces. Used orbit balls (the ones that survived championship) are available for purchase starting today here [ http://logoloc.com/first/ ]http://logoloc.com/first/ Quantities are limited. If you are borrowing a FIRST field for your off season event, please remember that game pieces are not included in the loan. Go Teams! |
|
#2
|
|||||
|
|||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
How much better is JAVA going to be than Lab view?
Is it easier to use? |
|
#3
|
|||
|
|||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Quote:
For FRC robotics, I prefer LabVIEW. For my neural-networks research, Java was the clear choice. |
|
#4
|
||||
|
||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Yuck, java. The lack of pointers is a major turn-away for me.
However, for those high schools that offer AP computer science, the fact that the robot can now be programmed in java sorta bridges the learning gap a bit. |
|
#5
|
|||||
|
|||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
What is it that you want to do with pointers that Java's pass by reference system can't do exactly?
|
|
#6
|
|||||
|
|||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Pointer arithmetic. It can be useful if used properly. However, I wouldn't encourage students new to C++ to use pointer arithmetic on the robot, unless of course, you want them to experience the frustration of the dreaded "Seg Fault".
|
|
#7
|
|||||
|
|||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Quote:
![]() |
|
#8
|
||||
|
||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Quote:
Code:
char *ptr = malloc(SIZE); |
|
#9
|
|||||
|
|||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Quote:
(sorry for the pun). The point of pointer arithmetic is to compute the address of an element (the array data structure is optional). If you can get that address by simply adding to a pointer (stored in a register) that is more efficient than computing that address by loading a symbol and adding the result of a multiplication (indexing an array using a variable).[/SIDE RANT] I actually used a bit of pointer arithmetic this year to make a simple circular buffer for Camera Report Structures. Of course I could make a circular buffer class in Java too. Again, I am not recommending pointer arithmetic or saying it's vital, I am just saying it can be useful, simple and intuitive. My real concern with Java is not the pointer stuff but rather the runtime performance. Java uses just in time (JIT) compilation and garbage collection which should add additional (non deterministic) load to the programs run (of course I need to read more about how theses features are implemented). That being said, I think additional language options are a good thing and all of my programing students are taught Java (not C) in high school for the AP exam. Last edited by The Lucas : 05-15-2009 at 06:01 PM. |
|
#10
|
|||||
|
|||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Quote:
|
|
#11
|
|||
|
|||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
But, at least in C, the size of the structure is a known quantity at compile time, so I would imagine that most of the time that multiplication can be eliminated by the compiler. And then on top of that, sometimes the multiplication will be by a power of 2, so the compiler will use a cheap shift operation.
|
|
#12
|
||||
|
||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Quote:
See, here is a small piece of code I just wrote. Code:
1 #include <stdlib.h>
2
3 int main()
4 {
5 int *array = malloc(10 * sizeof(int));
6 int *ptr;
7 int i;
8
9 for(i = 0; i < 10; i++)
10 ptr = array + i;
11
12 return 0;
13 }
Code:
0000000000000000 <main>: 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp 4: 48 83 ec 20 sub $0x20,%rsp 8: bf 28 00 00 00 mov $0x28,%edi d: e8 00 00 00 00 callq 12 <main+0x12> 12: 48 89 45 f8 mov %rax,0xfffffffffffffff8(%rbp) 16: c7 45 ec 00 00 00 00 movl $0x0,0xffffffffffffffec(%rbp) 1d: 83 7d ec 09 cmpl $0x9,0xffffffffffffffec(%rbp) 21: 7f 19 jg 3c <main+0x3c> 23: 8b 45 ec mov 0xffffffffffffffec(%rbp),%eax 26: 48 98 cltq 28: 48 c1 e0 02 shl $0x2,%rax 2c: 48 03 45 f8 add 0xfffffffffffffff8(%rbp),%rax 30: 48 89 45 f0 mov %rax,0xfffffffffffffff0(%rbp) 34: 48 8d 45 ec lea 0xffffffffffffffec(%rbp),%rax 38: ff 00 incl (%rax) 3a: eb e1 jmp 1d <main+0x1d> 3c: b8 00 00 00 00 mov $0x0,%eax 41: c9 leaveq 42: c3 retq Code:
1 #include <stdlib.h>
2
3 int main()
4 {
5 int *array = malloc(10 * sizeof(int));
6 int *ptr;
7 int i;
8
9 for(i = 0; i < 10; i++)
10 ptr = &array[i];
11
12 return 0;
13 }
Code:
0000000000000000 <main>: 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp 4: 48 83 ec 20 sub $0x20,%rsp 8: bf 28 00 00 00 mov $0x28,%edi d: e8 00 00 00 00 callq 12 <main+0x12> 12: 48 89 45 f8 mov %rax,0xfffffffffffffff8(%rbp) 16: c7 45 ec 00 00 00 00 movl $0x0,0xffffffffffffffec(%rbp) 1d: 83 7d ec 09 cmpl $0x9,0xffffffffffffffec(%rbp) 21: 7f 19 jg 3c <main+0x3c> 23: 8b 45 ec mov 0xffffffffffffffec(%rbp),%eax 26: 48 98 cltq 28: 48 c1 e0 02 shl $0x2,%rax 2c: 48 03 45 f8 add 0xfffffffffffffff8(%rbp),%rax 30: 48 89 45 f0 mov %rax,0xfffffffffffffff0(%rbp) 34: 48 8d 45 ec lea 0xffffffffffffffec(%rbp),%rax 38: ff 00 incl (%rax) 3a: eb e1 jmp 1d <main+0x1d> 3c: b8 00 00 00 00 mov $0x0,%eax 41: c9 leaveq 42: c3 retq Absolutely no difference whatsoever. Last edited by Chris27 : 05-15-2009 at 11:17 PM. Reason: fixed code typo |
|
#13
|
|||||
|
|||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Quote:
|
|
#14
|
|||||
|
|||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Quote:
Quote:
Quote:
Code:
1 #include <stdlib.h>
2
3 int main()
4 {
5 int *array = malloc(10 * sizeof(int));
6 int *ptr = array;
7 int i;
8
9 for(i = 0; i < 10; i++)
10 ptr++;
11
12 return 0;
13 }
Plus explicit pointers make functions like swap (commonly used in bubblesort simple) simpler using C pass by reference. Again not vital, just something that gets abstracted away in a higher level language. |
|
#15
|
|||||
|
|||||
|
Re: **FIRST EMAIL**/Java and Orbit Balls
Quote:
Quote:
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| **FIRST EMAIL**/Java and Orbit Balls *****Orbit Ball Discussion**** | Pjohn1959 | FIRST E-Mail Blast Archive | 44 | 05-18-2009 08:19 PM |
| "Java, Sun SPOT and the FIRST Robotics Competition" | pogenwurst | Programming | 54 | 05-02-2009 11:37 PM |
| Amazing Circuit Build and Simulation Java Applet | Chris_Elston | Electrical | 2 | 06-26-2008 07:36 PM |
| Eclipse Plugin, Linux, and a Java Loader | shtylman | Programming | 5 | 01-17-2008 02:44 PM |
| Learn C, C++, and Java with new board game. | Elgin Clock | Programming | 8 | 11-04-2005 01:28 PM |