Go to Post It will mean far more than you can imagine...and really, you can't lose. - David Kelso [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

 
Closed Thread
 
Thread Tools Rating: Thread Rating: 18 votes, 5.00 average. Display Modes
  #1   Spotlight this post!  
Unread 15-11-2014, 14:38
Harshizzle's Avatar
Harshizzle Harshizzle is offline
Registered User
AKA: Harshal Singh
FRC #4828 (RoboEagles)
Team Role: Alumni
 
Join Date: Aug 2014
Rookie Year: 2012
Location: Cary, NC
Posts: 33
Harshizzle is on a distinguished road
2015 Programming Languages?

With the shift to the new control system, we were wondering what programming language teams were going to use. In the past we have programmed in JAVA, as the student body had experience in that. We were wondering if the introduction of the new control system would mean Labview would be the most supported language, and whether that would warrant a switch. We are leaning towards Python at the moment. How did your team choose the language, and why?
  #2   Spotlight this post!  
Unread 15-11-2014, 15:38
Monochron's Avatar
Monochron Monochron is offline
Engineering Mentor
AKA: Brian O'Sullivan
FRC #4561 (TerrorBytes)
Team Role: Engineer
 
Join Date: Feb 2007
Rookie Year: 2002
Location: Research Triangle Park, NC
Posts: 890
Monochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond repute
Re: 2015 Programming Languages?

I wouldn't imagine the new control system would prompt teams to switch, unless something comes out indicating an issue with one of the main three languages.

Our team did Python the first two years and are now switching to Java mainly for ease of use and the ability to compile in a nice IDE. Disclaimer, I didn't actually work on programming this past year, I'm just relaying what I remember hearing from them. So take this with a grain of salt.

We ran into a lot of annoying syntax errors that would have been caught instantly by Eclipse and would have prevented us from loading obviously bad code onto the robot. We also had issues with the routing tables at competition. I'm not sure of the exact issue, just that our programmers firmly believed that debugging the issue would have been straight forward in one of the main three languages, but in Python it was challenging. Also, the community for using Python in FRC is much smaller than the big three and it can much more difficult to get help on weird issues. That isn't a huge limiting factor though, because the MPI interface for Python is very similar to the C++.
Again, this isn't first hand knowledge, but I recommend you look into other teams' experiences before committing to the switch.
  #3   Spotlight this post!  
Unread 15-11-2014, 15:54
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,043
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: 2015 Programming Languages?

Quote:
Originally Posted by Monochron View Post
I wouldn't imagine the new control system would prompt teams to switch, unless something comes out indicating an issue with one of the main three languages.
I would expect that support for the 'big three' languages would remain the same as it has been.

Quote:
Our team did Python the first two years and are now switching to Java mainly for ease of use and the ability to compile in a nice IDE. Disclaimer, I didn't actually work on programming this past year, I'm just relaying what I remember hearing from them. So take this with a grain of salt.

We ran into a lot of annoying syntax errors that would have been caught instantly by Eclipse and would have prevented us from loading obviously bad code onto the robot.
This is one of the problems with using python -- since it's dynamically typed, you have to actually test/run your code to find the syntax errors, as opposed to depending on a compiler. To help with this, one thing we introduced in the middle of the season was a robot simulator that allowed you to run your code on your laptop, which my students found quite useful for quick iterative development. Python development for 2015 is pretty active, so hopefully the community will grow more this year.
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff
  #4   Spotlight this post!  
Unread 15-11-2014, 17:42
nstephenh nstephenh is offline
Registered User
FRC #0900
 
Join Date: Oct 2013
Location: North Carolina
Posts: 20
nstephenh is on a distinguished road
Re: 2015 Programming Languages?

Hello, I am a programmer for Team 900. We are one of the beta Teams for the 2015 control system. My team uses Labview, and we have found that the language works the best. Most of the errors on the beta forums seem to be about C and Java. We have found that labview is powerful, has the most community support, and is extremly easy to teach to new students, although from your post it seems that many of your students have a background in Java. Our team used Java during my freshman year, and we had many difficulties. Labview is easier to debug and spot errors, expecially because you don't have to worry as much about syntax. Java is also not particularly optimized for the realtime enviornment of the RoboRIO. If you can, I would highly suggest switching to labview. C has less problems than Java, and can be useful for some lower-level stuff, but still has the same problem of being difficult to teach to new students. I wouldn't recommend programming in anything other than the above three languages, because after that support from both the community and from FRC is extremly low.

If you have any questions about the new hardware, feel free to contact us at the email programmers@team900.org. We are right next door to you in Durham, NC, and gave a presentation about the hardware at THOR. We will also be giving a presentation at Chapel Hill High School in December.

Edit: Something that I have overheard other teams saying multiple times is that they don't want to use a "Kiddy" graphical language, equating labview to something like scratch. Labview is a powerful industry tool designed for control systems, and that is what a robot is: a control system. One of our mentors works for Cree (LED Light Bulbs) and labview is used in their systems.

Last edited by nstephenh : 15-11-2014 at 17:46.
  #5   Spotlight this post!  
Unread 15-11-2014, 19:12
Monochron's Avatar
Monochron Monochron is offline
Engineering Mentor
AKA: Brian O'Sullivan
FRC #4561 (TerrorBytes)
Team Role: Engineer
 
Join Date: Feb 2007
Rookie Year: 2002
Location: Research Triangle Park, NC
Posts: 890
Monochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond reputeMonochron has a reputation beyond repute
Re: 2015 Programming Languages?

Quote:
Originally Posted by nstephenh View Post
Hello, I am a programmer for Team 900. We are one of the beta Teams for the 2015 control system. My team uses Labview, and we have found that the language works the best. Most of the errors on the beta forums seem to be about C and Java.
I haven't been following the beta forums very closely, but are the issues actually with how the Java or C executable run on the RoboRio? Or are they more related to learning or adapting to new things in the language or MPI? I would assume it was the later.


Quote:
If you can, I would highly suggest switching to labview. C has less problems than Java, and can be useful for some lower-level stuff, but still has the same problem of being difficult to teach to new students.
Some would call this difficulty a positive. A lot of teams prioritize education over ease of teaching and we chose to use a written language in order to provide our students with the skills to adapt to various other written languages. Labview is great for robotics applications, but we have been scared away from it a bit, haha.
  #6   Spotlight this post!  
Unread 16-11-2014, 10:05
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,748
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: 2015 Programming Languages?

All three languages will be fully supported. The beta forums shouldn't really cause concern. They highlight just how many details have to be managed in order for a language to run on a controller. Java is undergoing the largest amount of change, but it will get there.

As for picking a language, all three languages have something unique to offer. What is most important is that your team learns how to use whatever language you choose to best measure and control the mechanisms on your robot. WPILib was written for all three languages in order to give them common ground. The language syntax and some structure will differ, but hopefully this allows teams to experiment, help each other, and learn something about each of the languages.

Greg McKaskle
  #7   Spotlight this post!  
Unread 17-11-2014, 14:50
yash101 yash101 is offline
Curiosity | I have too much of it!
AKA: null
no team
 
Join Date: Oct 2012
Rookie Year: 2012
Location: devnull
Posts: 1,191
yash101 is an unknown quantity at this point
Re: 2015 Programming Languages?

It's really nice that we're switching to Linux now! The Linux-specific C++ libraries are extremely powerful, and come bundled with a ton of really cool features.
The library, DLib will also work on Linux, as there are some dependencies that should be available such as PTHread.

Other than that, does anyone know wherher C++0x/11/14 will be supported? I would love to use some of the features such as auto, std::thread and std::async!
  #8   Spotlight this post!  
Unread 18-11-2014, 01:39
Kevin Selavko's Avatar
Kevin Selavko Kevin Selavko is offline
Registered User
AKA: Voltonless
FRC #3260 (SHARP)
Team Role: Electrical
 
Join Date: Jan 2012
Rookie Year: 2008
Location: Beaver PA USA
Posts: 155
Kevin Selavko is on a distinguished road
Re: 2015 Programming Languages?

Java has been great so far, just a few hiccups here and there, but nothing that would prevent you from using it, and almost all the problems should be ironed out before you have to use it.

I don't remember where I read it, but I think that C++ is able to run slightly faster than java or labview.

I think that you guys should stick with java personally, because you know it and you will only have to deal with minor changes instead of learning a whole new syntax plus changes during the season.
__________________
Team SHARP
Pittsburgh Regional Champions 2014
Vex Pittsburgh Excellence Award 2014
Vex Pittsburgh Champions 2014
Vex Maryland Champions 2014
Pittsburgh Regional Finalists 2013
Buckeye Regional Finalists 2013
  #9   Spotlight this post!  
Unread 18-11-2014, 13:56
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: 800
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: 2015 Programming Languages?

Quote:
Originally Posted by yash101 View Post
It's really nice that we're switching to Linux now! The Linux-specific C++ libraries are extremely powerful, and come bundled with a ton of really cool features.
The library, DLib will also work on Linux, as there are some dependencies that should be available such as PTHread.

Other than that, does anyone know wherher C++0x/11/14 will be supported? I would love to use some of the features such as auto, std::thread and std::async!
$ arm-frc-linux-gnueabi-gcc-4.9 -v
Using built-in specs.
COLLECT_GCC=arm-frc-linux-gnueabi-gcc-4.9
COLLECT_LTO_WRAPPER=/usr/lib/x86_64-linux-gnu/gcc/arm-frc-linux-gnueabi/4.9.1/lto-wrapper
Target: arm-frc-linux-gnueabi
Configured with: /run/shm/pkg/toolchain-builder/deb/gcc-4.9.1/configure --build=x86_64-linux-gnu --prefix=/usr --includedir='/usr/include' --mandir='/usr/share/man' --infodir='/usr/share/info' --sysconfdir=/etc --localstatedir=/var --libdir='/usr/lib/x86_64-linux-gnu' --libexecdir='/usr/lib/x86_64-linux-gnu' --disable-maintainer-mode --disable-dependency-tracking --enable-threads=posix --target=arm-frc-linux-gnueabi --with-arch=armv7-a --with-cpu=cortex-a9 --with-float=softfp --with-fpu=vfp --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}' --enable-languages=c,c++ --enable-shared --enable-lto --disable-nls --with-pkgversion='GCC for FRC' --with-cloog --disable-multilib --disable-multiarch --prefix=/usr --with-sysroot=/usr/arm-frc-linux-gnueabi --enable-poison-system-directories --enable-plugin --with-system-zlib --disable-libmudflap --with-build-sysroot=/usr/arm-frc-linux-gnueabi --program-suffix=-4.9 --program-prefix=arm-frc-linux-gnueabi-
Thread model: posix
gcc version 4.9.1 (GCC for FRC)
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


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

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