Go to Post To offer an opinion is fine, to demand that others adhere to your opinion is laughable. - JVN [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
View Poll Results: Does your team use Java or C++ for programming your robot?
Java 35 51.47%
C++ 33 48.53%
Voters: 68. You may not vote on this poll

Closed Thread
 
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 01-06-2010, 21:34
LavaEagle LavaEagle is offline
Registered User
FRC #2660
 
Join Date: Oct 2009
Location: WA
Posts: 22
LavaEagle is an unknown quantity at this point
Re: Java VS C++ || The Final Decision

LabVIEW is an irrelevant language here!
  #2   Spotlight this post!  
Unread 01-06-2010, 21:36
davidthefat davidthefat is offline
Alumni
AKA: David Yoon
FRC #0589 (Falkons)
Team Role: Alumni
 
Join Date: Jan 2011
Rookie Year: 2010
Location: California
Posts: 792
davidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud of
Re: Java VS C++ || The Final Decision

C++ I find Java to be a language that is similar to C++ but with traning wheels
__________________
Do not say what can or cannot be done, but, instead, say what must be done for the task at hand must be accomplished.
  #3   Spotlight this post!  
Unread 01-06-2010, 22:10
apalrd's Avatar
apalrd apalrd is offline
More Torque!
AKA: Andrew Palardy (Most people call me Palardy)
VRC #3333
Team Role: College Student
 
Join Date: Mar 2009
Rookie Year: 2009
Location: Auburn Hills, MI
Posts: 1,347
apalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond repute
Re: Java VS C++ || The Final Decision

If I had to choose between C++ and Java, I would choose C++ for robot programming:

1. The gigantic advantage Java has over C++ is that it can make pretty GUI's. However, that is completely useless in cRio programming as there is no GUI interface.

2. This year, Java was on its first year and C++ was on its second, however the old control system has been using C since 2004. C/C++ is much more proven and tested in FRC robotics as of now then Java.

3. I already know C++. I don't already know Java. I also know and like LabVIEW.
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor

"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
  #4   Spotlight this post!  
Unread 01-06-2010, 22:44
LavaEagle LavaEagle is offline
Registered User
FRC #2660
 
Join Date: Oct 2009
Location: WA
Posts: 22
LavaEagle is an unknown quantity at this point
Re: Java VS C++ || The Final Decision

Quote:
Originally Posted by apalrd View Post
If I had to choose between C++ and Java, I would choose C++ for robot programming....
You sir make a very good point.
  #5   Spotlight this post!  
Unread 02-06-2010, 00:06
timothyb89 timothyb89 is offline
code monkey
FRC #1977 (Loveland High Robotics)
Team Role: Alumni
 
Join Date: Oct 2008
Rookie Year: 2009
Location: Loveland, Colorado
Posts: 45
timothyb89 will become famous soon enough
Re: Java VS C++ || The Final Decision

Quote:
Originally Posted by apalrd View Post
If I had to choose between C++ and Java, I would choose C++ for robot programming:

1. The gigantic advantage Java has over C++ is that it can make pretty GUI's. However, that is completely useless in cRio programming as there is no GUI interface.

2. This year, Java was on its first year and C++ was on its second, however the old control system has been using C since 2004. C/C++ is much more proven and tested in FRC robotics as of now then Java.

3. I already know C++. I don't already know Java. I also know and like LabVIEW.
1. Trust me when I say that Java is *much* more capable than that. Desktop Java, as in version 1.6 with standard libraries is considerably more capable than vanilla C++. Even with the limited version you get on the cRIO (Java 1.3 with J2ME libraries) you can still do plenty. I have plenty of examples if you'd like .

2. With a new and different environment (the cRIO) you can hardly call it 'proven'. The (completely) new C libraries only have a year's head start on their Java equivalent, and having used both, I can say that both work very well.

3. A valid point, but I'd certainly recommend you give it a try- in most cases the syntax is identical or even simpler than a C/++ equivalent so the learning curve is actually quite small.

Quote:
Originally Posted by Alan Anderson
So is the provided FRC dashboard application.
That doesn't make it good. Trust me when I say that's one of the most inefficient programs I've seen in a long time. I honestly feel bad for the processor on our XO laptop while it (the dashboard) is running- the CPU usage shoots up to 100% rendering something that should barely take any CPU at all.

My opinion on LabVIEW: It may make coding convenient or easy, but that doesn't make it better than other tools.
__________________
FRC-DB: A detailed, web-based scouting database for FRC teams with lots of interesting statistics.

Last edited by timothyb89 : 02-06-2010 at 01:58. Reason: C++ -> vanilla C++
  #6   Spotlight this post!  
Unread 01-06-2010, 22:00
kgzak's Avatar
kgzak kgzak is offline
Registered User
AKA: Kris
FRC #4392 (Decievers) FRC #2075 (Enigma)
Team Role: College Student
 
Join Date: Dec 2008
Rookie Year: 2008
Location: Grand Rapids, Michigan
Posts: 418
kgzak is a splendid one to beholdkgzak is a splendid one to beholdkgzak is a splendid one to beholdkgzak is a splendid one to beholdkgzak is a splendid one to beholdkgzak is a splendid one to beholdkgzak is a splendid one to behold
Re: Java VS C++ || The Final Decision

Quote:
Originally Posted by LavaEagle View Post
LabVIEW is an irrelevant language here!
How is it irrelevant? It is a programing language with the same, if not more potential than the other programing languages. Our team uses LabView.
  #7   Spotlight this post!  
Unread 01-06-2010, 23:11
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,113
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: Java VS C++ || The Final Decision

Quote:
Originally Posted by LavaEagle View Post
LabVIEW is an irrelevant language here!
The makers of the cRIO would probably disagree about that. The FPGA (the part that does all the "real work") is programmed using LabVIEW. So is the provided FRC dashboard application.

For what it's worth, Team 45 uses neither C++ nor Java.
  #8   Spotlight this post!  
Unread 01-06-2010, 23:23
LavaEagle LavaEagle is offline
Registered User
FRC #2660
 
Join Date: Oct 2009
Location: WA
Posts: 22
LavaEagle is an unknown quantity at this point
Re: Java VS C++ || The Final Decision

Quote:
Originally Posted by Alan Anderson View Post
The makers of the cRIO would probably disagree about that. The FPGA (the part that does all the "real work") is programmed using LabVIEW. So is the provided FRC dashboard application.

For what it's worth, Team 45 uses neither C++ nor Java.

I apologize for disregarding LabVIEW. Wasn't my focus.
  #9   Spotlight this post!  
Unread 02-06-2010, 00:15
biojae's Avatar
biojae biojae is offline
Likes Omni drives :)
AKA: Justin Stocking
FTC #5011 (BOT SQUAD) && FTC#72(Garage bots)&& FRC#0399 (Eagle Robotics)
Team Role: College Student
 
Join Date: Oct 2008
Rookie Year: 2008
Location: Lancaster
Posts: 276
biojae is a jewel in the roughbiojae is a jewel in the roughbiojae is a jewel in the rough
Re: Java VS C++ || The Final Decision

As much as I like C++, Netbeans was an easier IDE to use.
Some of the things that made it easier were:
- Integrated Netconsole, Serial comms without a long cord, (connecting to the remote server never worked for us)
- Automatic reboot on download, when not using the debug mode, this saved lots of time
- Automatic file uploader, uploads the correct program file without going to a configuration page even when changing projects

Though, it seemed that there was a memory leak somewhere which would limit us in how many times we could upload / minutes open before we would have to restart netbeans.

And library support was a little lacking this year.
Only the vision libraries that were needed to get the vision tracking were ported.
To access any other parts of the NIvision libraries, JNA (Java Native Access) was required, (Writing a method in C++, compiling it in windriver, and then uploading it)

CAN support for the closed loop modes (current, position, speed) for java was the last language implemented, with a gap between Labview and C++.

But, even without all of the libraries, Java was perfectly capable language for programming the cRIO, and FRC robots.
__________________
FTC Team 72 - No site
FRC Team 399 - http://www.team399.org
2010 Rockwell Collins Innovation in Control Award - (Use of the CAN bus, among other reasons) Phoenix, Arizona!
  #10   Spotlight this post!  
Unread 02-06-2010, 00:42
AustinSchuh AustinSchuh is offline
Registered User
FRC #0971 (Spartan Robotics) #254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Feb 2005
Rookie Year: 1999
Location: Los Altos, CA
Posts: 803
AustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond repute
Re: Java VS C++ || The Final Decision

My biggest complaint with Java on the cRIO is that they ported a non-realtime version of Java, instead of a realtime version.
  #11   Spotlight this post!  
Unread 02-06-2010, 01:18
Robototes2412's Avatar
Robototes2412 Robototes2412 is offline
1 * 4 != 14
FRC #2412 (Robototes)
Team Role: Programmer
 
Join Date: Jan 2010
Rookie Year: 2007
Location: Bellevue
Posts: 312
Robototes2412 is on a distinguished road
Re: Java VS C++ || The Final Decision

I would be overjoyed to use C++ for robot programming,
IF THEY TOOK THE TIME TO MAKE IT COMPILABLE FROM LINUX, FOR THE LOVE OF CHRIST ITS GCC

edit:

Wow, i was angry.

could someone please <code> a makeFile from the C++ stuff? I think I can get C++ working on linux if i have a makefile.

Last edited by Robototes2412 : 02-06-2010 at 01:23.
  #12   Spotlight this post!  
Unread 02-06-2010, 01:52
Kitmor's Avatar
Kitmor Kitmor is offline
Registered User
AKA: Kit Morton
FRC #0847 (PHRED)
Team Role: Leadership
 
Join Date: Jan 2008
Rookie Year: 2008
Location: Philomath
Posts: 24
Kitmor will become famous soon enoughKitmor will become famous soon enough
Re: Java VS C++ || The Final Decision

I believe that both C++ and Java are equally capable languages for the type of robot programming that we are doing in FRC. So what it comes down to is a matter of personal preference.

I personally have a dislike for all interpreted languages, it just seems like a clumsy to me. I have spent about the same amount of time working with C++ as I have with Java, and I personally find Java a more frustrating language to program in. I understand that part of the goal of Java was to force an object oriented design of the programmer, and while I like this concept, I dislike how restrictive it makes the Java language.

I have had teachers that raved about Java, saying it's the best thing since sliced bread, and while I respect my teachers.... I have to respectively disagree. Java is possibly a good learning tool, but for making clean, efficient programs, it's just not the thing for the job.
-Kit

P.S.
I would also have to disagree about the strong point of Java being it's GUI abilities. If you take and C++ compiler and add on a nice graphics library like QT, Java is no match. The language is just all around clumsy.
__________________
"Stand back we don't know what it is going to do"

  #13   Spotlight this post!  
Unread 02-06-2010, 07:59
mwtidd's Avatar
mwtidd mwtidd is offline
Registered User
AKA: mike
FRC #0319 (Big Bad Bob)
Team Role: Mentor
 
Join Date: Feb 2005
Rookie Year: 2003
Location: Boston, MA
Posts: 714
mwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond reputemwtidd has a reputation beyond repute
Re: Java VS C++ || The Final Decision

Quote:
Originally Posted by Kitmor View Post
I believe that both C++ and Java are equally capable languages for the type of robot programming that we are doing in FRC. So what it comes down to is a matter of personal preference.

I personally have a dislike for all interpreted languages, it just seems like a clumsy to me. I have spent about the same amount of time working with C++ as I have with Java, and I personally find Java a more frustrating language to program in. I understand that part of the goal of Java was to force an object oriented design of the programmer, and while I like this concept, I dislike how restrictive it makes the Java language.

I have had teachers that raved about Java, saying it's the best thing since sliced bread, and while I respect my teachers.... I have to respectively disagree. Java is possibly a good learning tool, but for making clean, efficient programs, it's just not the thing for the job.
-Kit

P.S.
I would also have to disagree about the strong point of Java being it's GUI abilities. If you take and C++ compiler and add on a nice graphics library like QT, Java is no match. The language is just all around clumsy.
I have found that its "restiveness" is actually one of its strengths, especially with regards to FIRST. C and C++ take longer to debug, and as has been discussed in other threads, the biggest restriction to programmers is the time they get with the robot, so being able to debug quickly is critical.

Java is certainly a pig of a language, but I also like using it for backends to an GUI. I use Flex (which is also a pig) but ports nicely now with Java since flash builder 4 and blazeds. I really like OO, especially from an architecture standpoint and flex brings OO development to web and desktop dev. So even though it is a pig, it is easier to debug and I find it easier to build with.

Then again from my experiences, people who love c and c++ hate flex.

(lets not get started on steve jobs.... )
__________________
"Never let your schooling interfere with your education" -Mark Twain
  #14   Spotlight this post!  
Unread 02-06-2010, 08:23
Greg McKaskle Greg McKaskle is offline
Registered User
FRC #2468 (Team NI & Appreciate)
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Austin, TX
Posts: 4,751
Greg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond repute
Re: Java VS C++ || The Final Decision

I don't really want to get involved in these food-fights about languages, but since LV came up, let me just clarify that the CPU usage of the dashboard is not something that you can blame on LV. Blame me instead. I made a mistake and the LV UI was dealing with overlapping controls the best way it could, doing offscreen drawing and extra redraws. That is what used the excess CPU.

Greg McKaskle
  #15   Spotlight this post!  
Unread 03-06-2010, 16:48
mjcoss mjcoss is offline
Registered User
FRC #0303
 
Join Date: Jan 2009
Location: Bridgewater,NJ
Posts: 70
mjcoss is a jewel in the roughmjcoss is a jewel in the roughmjcoss is a jewel in the roughmjcoss is a jewel in the rough
Re: Java VS C++ || The Final Decision

I have the team program the robot is all three languages. We then use the software that a) has the lead programmer at the event, and b) works the best. Each language has it's place. I personally believe that Java is not appropriate for embedded systems. Labview is great for debugging, and we use Labview as a diagnostic tool. Labview is easy for many people to grasp, and they can get up and running quickly. Java is what is taught in a lot of high schools in the AP classes. So at the end of the day, you use what the students, and mentor feel comfortable with.

One major issue is that each language provisions the CRIO slightly differently, which leads to different behavior on the part of sensors, and even something as simple as communication with the driver station.

And as far as using Linux to program the bot, it is doable, but it's not simply setting up a makefile. You need to use the VxWorks compiler, and create a kernel module. Not sure that it's worth the work.
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Dean Kamen wrestles with decision: should he quit the Segway? Leon Machado IV FIRST In the News... 4 13-01-2009 16:07
Worst Decision of the Week! JJMax7 General Forum 44 08-03-2006 00:49
The decision of indecision on FIRST's part. cdawzrd General Forum 14 18-01-2005 21:41
pic: The First Big Decision CD47-Bot Extra Discussion 3 10-05-2004 17:57
pic: The final...final match CD47-Bot Extra Discussion 4 17-04-2003 16:24


All times are GMT -5. The time now is 03:31.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi