View Full Version : What are you programming in?
cjlane1138
08-01-2012, 22:25
I just wanted to know what everyone is actually programming in so we can get a good idea on which language is more used..
davidthefat
08-01-2012, 22:26
Java.
WizenedEE
08-01-2012, 22:27
C++
cjlane1138
08-01-2012, 22:28
C++
davidthefat
08-01-2012, 22:29
For "Other", there is Python, and LUA. Not sure if they are still being updated.
cjlane1138
08-01-2012, 22:39
LabVIEW all the way.....
Why does everyone like LabView??
We use C++ and it works great, what's the difference???
davidthefat
08-01-2012, 22:41
Why does everyone like LabView??
We use C++ and it works great, what's the difference???
Labview is graphical and C++ is text based. Java is also popular because most of the kids learn Java in school because the AP test is in Java.
linuxboy
08-01-2012, 22:42
LabView is a graphical programming language, C++ is text based. LabView tends to be easier for people with less experience to pick up. That said I'm using Java. Java and C++ are quite similar, however C++ is lower level, and a bit more difficult for new programmers.
Having programmed in a multitude of languages (including LabVIEW, C, Matlab, Simulink, and Perl) I could use either C++ or LabVIEW to accomplish the task with about the same amount of effort on my end. I've always thought that C++ and Java are the same for what we are doing (all of the higher-level features of Java don't help us), so it's personal preference between the two.
That said, LabVIEW provides a much nicer debugging interface, and the real-time front panel is just awesome. It's super easy to change stuff and look at graphs and data without doing anything in code.
C++ and Java are both textual, C++ is procedural or object oriented, Java is object oriented. LabVIEW is a data-flow language, so it represents code as the flow of data and operations happening to the data, which is quite easy to understand.
DjMaddius
09-01-2012, 09:26
We are doing a build in 2 languages.
Python and LabVIEW. I have much experience with Python over the years and it looks like it could be interesting. Having a different point of view on programming issues will help get past them quicker. Doing two languages will help us code quicker and better.
3p1c w1n
09-01-2012, 10:28
LabVIEW
We simply use LabVIEW due to the ease of use, abundance of debugging tools, and the quick speed of development.
Being able to probe and trace values while the code is running really gives the students the ability to understand what their code is doing.
Java. Simple and Object Oriented. Plus since most of our programmers have never programmed Java is a great starting point.
Java.. although I don't really enjoy any of the languages available in FRC..
I would go for python.. but the support is not optimal.. and building projects under windows seems rather terrifying.
Team 3705
09-01-2012, 21:48
I want to use Python.. but C++ would be the way to go...
MagiChau
09-01-2012, 21:54
Java, although the Python looks pretty good with the entirety of the WPI library being ported. We may swap to it next year.
CardcaptorRLH85
09-01-2012, 21:58
Our team is using C++ this season and we've been using it since it became an option. However, looking at the poll results this one may not be so helpful in determining a 'most used' language.
I finally convinced my team to do java! This year we're doing java, I'm so excited as a 3rd year computer science student.
Team 3705
09-01-2012, 22:02
I dont think you can go really wrong with Java, or C++.
I dont like LabView...
JewishDan18
10-01-2012, 00:23
Our school teaches a Java class and does AP Computer Science (which is in Java), so we program in Java. It's a shame so many students don't take the Java class until Junior year, but teaching basic Java makes for a good pre-season activity.
Java! We like to think of ourselves as pretty experienced programmers so using a visual interface like LabVIEW is frustrating; Java and other written languages give you much more command over your actions, and I think, in a simpler way.
That said, I don't use C++ or like it, not because it's bad, I just have a personal vendetta against it :P
Alan Anderson
10-01-2012, 09:27
...using a visual interface like LabVIEW...
Please don't fall into the trap of thinking that LabVIEW is merely a "visual interface" to some underlying C-like language. It's an actual graphical language, but more fundamentally it's a dataflow language. That's a completely different style of programming from a procedural language like C++ or Java.
Proprietary programming language that requires an IDE...
Can't really get on board with that.
plnyyanks
10-01-2012, 15:15
Having programmed in a multitude of languages (including LabVIEW, C, Matlab, Simulink, and Perl) I could use either C++ or LabVIEW to accomplish the task with about the same amount of effort on my end. I've always thought that C++ and Java are the same for what we are doing (all of the higher-level features of Java don't help us), so it's personal preference between the two.
That said, LabVIEW provides a much nicer debugging interface, and the real-time front panel is just awesome. It's super easy to change stuff and look at graphs and data without doing anything in code.
Yes. Great distinction. I'm the same way: I could program C++/Java/LV all with about the same effort, but I'd choose LabVIEW for this application easily. This is exactly what it's designed for: realtime control and data acquisition/analysis. Plus, it's easy for rapid prototyping, yet you can do some really cool, powerful stuff with it as well (and the NI guys have great support!). I took a little while to warm up to LV, but I've really grown to like it.
tl;dr: We use LV. I like LV. It's both simple to use and really powerful, depending on how much you know.
Zuelu562
10-01-2012, 15:18
C++, always have always will ;)
staplemonx
10-01-2012, 15:25
We are using java. it is light weight. After the download fiasco with lab view last year we want our code to be as clean as possible.
We willl be doing Python again! Granted it does help to help to have the developer as my main Programming mentor.
And it should be fairly up to date. I know Peter was spending a lot of the time during the beta test correcting a ton of bugs he found in the provided C++ code when porting/wrapping it for python
I'd consider myself a fairly experienced programmer, so I'd love to use something like Java.
...But my team uses LabView, and I'm going to be too old to be a team member next year, so I guess it's better to just use LabView :/
plnyyanks
10-01-2012, 16:58
...But my team uses LabView, and I'm going to be too old to be a team member next year, so I guess it's better to just use LabView :/
Don't feel bad about having to use LabVIEW - it's not a punishment. It's a great way to program a robot. Yes, it had a bit of a learning curve, and yes, it's different from more "traditional" text based programming languages, but give it a little time and attention, and you'll find it can do great things. If you love LabVIEW, then LabVIEW will love you back. :)
cjlane1138
10-01-2012, 23:54
We use C++ because it gives you more control, plus its a great language!
Redstone
11-01-2012, 01:55
This is my first year in robotics but i have taken several programming classes before. We are using java because it is the language we feel most comfortable with.
We use JAVA, our team knows it best, our AP class teaches it. And for the most part all 3 do the same job.
However the vision tracking in JAVA is leaving more to be desired.
We use C++ because it gives you more control..
While I agree that C/C++ are great languages, I disagree with you on this point.
Just because the LV way of doing something might be different dosen't mean it's impossible or even very hard to do.
Having worked with both C and LabVIEW, there are many things which are much harder in LabVIEW if you try to program it like C (in a procedural or object-oriented way).
There are some things which are still harder in LabVIEW. However, there are some things in LabVIEW which are harder in C++. It's all a tradeoff. Both languages are fully capable of handling what we are throwing at them.
theprgramerdude
11-01-2012, 14:36
We're in the midst of porting everything from C++ to Java, because for control, it provides much, much better high level support and utility features.
If you're using the WPILib, C++ really doesn't provide any advantages worth noting.
Paul62626
11-01-2012, 14:38
Team 1986 uses Labview.
MAldridge
11-01-2012, 16:14
LabView for the World!
the debug interface is so nicely integrated with the cRIO that we would never think not using it. Additionally our software/electronics mentor is an NI person so its great :D
come-at-me-bro
11-01-2012, 17:04
Our team is programming in C++! I'm surprised the majority of people are programming in Java. Then again in most schools there is a few classes for Java.
Our team is programming in C++! I'm surprised the majority of people are programming in Java. Then again in most schools there is a few classes for Java.
I wish we had a Java class, or any programming class....... We lost the only one we had (Visual Basic) last year...... It is horrible......
theprgramerdude
13-01-2012, 13:55
Our team is programming in C++! I'm surprised the majority of people are programming in Java. Then again in most schools there is a few classes for Java.
Why are you surprised?
Michael Hill
13-01-2012, 17:47
I wish Fortran 90/95 were allowed....Such a beautiful language. ;-)
theprgramerdude
13-01-2012, 20:01
I wish Fortran 90/95 were allowed....Such a beautiful language. ;-)
OH GOD, whyyyy... No functions???? How would anything get done.
My team is using java. JAVA gives you the ability to rewrite the core code and therefore change it as necessary.
Chexposito
13-01-2012, 20:13
C++ all the way, love it. I'm taking my first college programming class in it. I however will probably learn labview due to the number of mentors that i hear talking about using it in the engineering workplace (there is no class at my school, but they are having training on it and free certification test).
Chexposito
13-01-2012, 20:15
JAVA gives you the ability to rewrite the core code and therefore change it as necessary.
C/C++ does this as well and is classified as a lower code language than java (closer to actual machine code)
We also use java because that is what so many of the students at our school are trained in AP Computer Science.
C/C++ does this as well and is classified as a lower code language than java (closer to actual machine code)
Chexposito
13-01-2012, 20:19
While I agree that C/C++ are great languages, I disagree with you on this point.
Just because the LV way of doing something might be different dosen't mean it's impossible or even very hard to do.
Having worked with both C and LabVIEW, there are many things which are much harder in LabVIEW if you try to program it like C (in a procedural or object-oriented way).
There are some things which are still harder in LabVIEW. However, there are some things in LabVIEW which are harder in C++. It's all a tradeoff. Both languages are fully capable of handling what we are throwing at them.
i agree with this, this is why (to my understanding) why my team moved back to c++ after a year of labview (in lunacy). mainly from what i've seen the visual processing from the camera is way easier. but since our current mentor did visual tracking back in rack and roll, we already have code to work off of.
It seems that most of the code examples are provided in Labview before any of the other languages.
i agree with this, this is why (to my understanding) why my team moved back to c++ after a year of labview (in lunacy). mainly from what i've seen the visual processing from the camera is way easier. but since our current mentor did visual tracking back in rack and roll, we already have code to work off of.
Chexposito
13-01-2012, 20:23
It seems that most of the code examples are provided in Labview before any of the other languages.
this is probably due to NI's involvement in labview (which they made), and their support/sponsorship of FIRST
cjlane1138
18-01-2012, 23:34
While I agree that C/C++ are great languages, I disagree with you on this point.
Just because the LV way of doing something might be different dosen't mean it's impossible or even very hard to do.
Having worked with both C and LabVIEW, there are many things which are much harder in LabVIEW if you try to program it like C (in a procedural or object-oriented way).
There are some things which are still harder in LabVIEW. However, there are some things in LabVIEW which are harder in C++. It's all a tradeoff. Both languages are fully capable of handling what we are throwing at them.
I have never even looked at LV. I know Java and C++ and the main reason I am programming the robot in C++ is b/c I know the WPI Libraries in C++ the best. And I will admit some things may be harder in C++, but we don't wanna make our job to easy now do we? haha.
NeatTeam
19-01-2012, 08:40
wow! I was completely convinced almost all teams use LabVIEW. (we do)
cjlane1138
20-01-2012, 12:45
Looks like everyone uses Java
Java, though I guess we could try C++ one year, most of us are familiar with it.
mikegrundvig
22-01-2012, 13:22
We use C++ because one of the students a few years ago liked it and so we became a C++ team and have been ever since. The problem is that while the students believe they know C++, they are at best only passingly familiar with even the most basic aspects of it - mostly just cut and paste from the cookbook and examples. Even the smallest error in compiling can become a huge chore to debug.
This year's competition requires a far more sophisticated programming solution than anything our team has ever done. I believe that their assumption that they know the language well enough for this years competition is rapidly becoming our biggest hurdle. I have serious concerns about the ability of the team to code the full project. I wouldn't be surprised if we end up with a robot capable of far more mechanically than they are able to code.
C++ is amazingly powerful but the problem is that for accessing the WPI library it just adds a lot of hurdles and minimal benefits in this project. In my opinion, I feel C++ is significantly more of a pain than simple Java classes for what we are doing. For instance, the use of header files, compiler directives, macros, etc. are all common in C++ and can be avoided or don't exist in a language like Java. This increase in complexity isn't giving us more power on this project as we don't need it, it's just sapping time since none of the students really know the language.
I don't want to get into a C++ vs. Java argument at all. It's just that Java is simpler as it was designed specifically to reduce many of the complexities of C++ and baring a compelling need for the power of C++, I think we should have gone with it. Even LabView would likely have been a solid choice for what we are doing on the cRIO.
-Mike
Tbh both Java and c++ are bloated languages that's really not ideal in a high-school robot competition.
Tbh both Java and c++ are bloated languages that's really not ideal in a high-school robot competition.
Why?
C/C++ is/are one of the most common programming languages in existence today, and I would call C one of the most fundamental languages of computer programming.
What language would you suggest?
-It has to be able to be compiled or it's interpreter/VM must be able to be compiled for VxWorks
-The resulting code including the interpreter/VM must be very memory-small
-It has to be an easily accessible language (IDE's and tools for it must be free or donated, etc.)
Why?
C/C++ is/are one of the most common programming languages in existence today, and I would call C one of the most fundamental languages of computer programming.
What language would you suggest?
-It has to be able to be compiled or it's interpreter/VM must be able to be compiled for VxWorks
-The resulting code including the interpreter/VM must be very memory-small
-It has to be an easily accessible language (IDE's and tools for it must be free or donated, etc.)
Python
It has been done .
Very accessible (no need to compile, even. So you don't even need an ide ).
IMO the entire software chain of the competition should be oss. But I guess those sponsors wont like that.
mikegrundvig
22-01-2012, 22:48
IMO the entire software chain of the competition should be oss. But I guess those sponsors wont like that.This would be my preference as well. I'd like to see it on the hardware side too. I recognize that this isn't going to change so I don't make a stink about it but I was surprised to see how dependent the competition is on licensed products that expire right after the competition is over.
-Mike
This would be my preference as well. I'd like to see it on the hardware side too. I recognize that this isn't going to change so I don't make a stink about it but I was surprised to see how dependent the competition is on licensed products that expire right after the competition is over.
-Mike
Yup, completely agree... You can always start your competing open source arduino robot competitions with just a post to their forums :P (and then a link on reddit).
Won't be high school level.. but.. :P
zaphodp.jensen
22-01-2012, 23:28
We simply use LabVIEW due to the ease of use, abundance of debugging tools, and the quick speed of development.
Being able to probe and trace values while the code is running really gives the students the ability to understand what their code is doing.
Exactly. Being an advanced programmer, it is easy for me and the rookies to understand it, and easy for the other programmers to learn.
Also, the fact that we have an NI certified mentor helps there to. :D
theprgramerdude
22-01-2012, 23:54
Tbh both Java and c++ are bloated languages that's really not ideal in a high-school robot competition.
What's bloated about them? They're very simple and powerful languages, especially with the library support given (although I'm unhappy about Java ME).
linuxboy
23-01-2012, 01:26
IMO the entire software chain of the competition should be oss. But I guess those sponsors wont like that.
I agree, although, one thing that I think it teaches well, is the ability to deal with closed source restricted platforms, and licensing issues. From my summer job, I've found out how important it is to understand proper licensing, so I think some of it is good practice. That said, I would love to see the entire control system open sourced.
What's bloated about them? They're very simple and powerful languages, especially with the library support given (although I'm unhappy about Java ME).
C++ is hardly a simple language... try dealing with template code... then crazy preprocessor macros.. then its messed up class system. I agree it has its uses (for writing amazingly complex projects that would benefit from having OOP support but still need fast speed)
Java... well. This language seems to spark a flame war every single time its name is mentioned in certain IRC chatrooms.. so I'll leave it there..
I agree, although, one thing that I think it teaches well, is the ability to deal with closed source restricted platforms, and licensing issues. From my summer job, I've found out how important it is to understand proper licensing, so I think some of it is good practice. That said, I would love to see the entire control system open sourced.
This is why we even need to teach open source MORE. A lot of software out there should NOT be closed source. (example: pacemaker) We need to teach "the next generation of scientists and engineers" to do open source, to contribute to the society, rather than closing, patenting, and privatizing their findings. The best way to do that is by examples.
I've found C (not C++) to be one of the most basic yet powerful languages ever. There are also C compilers for basically every modern platform. You can't really say it's less bloated than something like Python, which is itself written in C and interpreted.
Greg McKaskle
23-01-2012, 08:15
Perhaps the discussion about open source should move to its own thread. I'll be happy to contribute my thoughts there, but this is a poll thread.
Greg McKaskle
Perhaps the discussion about open source should move to its own thread. I'll be happy to contribute my thoughts there, but this is a poll thread.
Greg McKaskle
Agreed
Lalaland1125
23-01-2012, 08:56
I would argue that C++/Java are also better languages than LabVIEW because knowledge learned during FRC season(we are supposed to be learning things you know) will actually be practical for outside applications. And so many other languages are very similar to C++/Java(such as C#, Python(in a sense), etc).
While LabVIEW might be easier for certain things I would much rather learn more about stuff we are going to have to learn about anyways for real life.
(I also think C++ and Java are both elegant in their own ways, but that's just opinion)
LISP. It is a fundamental law of the universe that all robots are programmed in LISP.
LISP. It is a fundamental law of the universe that all robots are programmed in LISP.
Lol agreed.
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.