What programming Language To Use??

Hey guy i have a question
what program language should we use this year.
our programer is very good in C Language but he is the only one who know how to use it so what your opinion should we use LabView this year or C++.

So, to be clear, is there only one programmer? If that’s the case, and he knows C very well, then it’s logical to use C++ instead of something else that he’s not as good with.

In the end, there really aren’t that many differences between the functionality of each language, so it’s best to use whatever the programmer(s) are comfortable using.

If anyone on your team has played with Lego Mindstorm then LabView is not very hard to use or to learn. But basically whatever langue you use, make sure your programmers learn it before kickoff.
Oh also if your programmer/s have only programmed in text based programming languages then LabView is not a good choice. Because while there are a lot of similarities between the two styles programming in a picture based programming language requires thinking about the programming differently. LabView programming ends up being very similar to making a tiered cake while text based programming is more like writing an instruction manual.

This is one of the more popular questions asked on Chief Delphi. Try using the search function for looking at threads in the last three years that discuss the pros and cons of Labview, Java, C++, Python, Lua and my favorite Robot COBOL. (Ok, so there isn’t a robot COBOL).

But in prior years people have written about the issues around Mentors that know/don’t know the languages, mentors that are new to robot programming, and the same set about students.

Take a look at them and then come back and ask your specific questions.

Thanks!

Although my answer is biased (We use LV), I would say use whatever the majority of your programming team is familiar with. If it is just him, have someone younger shadow him - so that when he is gone your programming team isn’t. One of the worst things that could happen IMO is that he leaves the team and not a single person can utilize and read the past code - especially if you want to modify something for off-season or use the code as a base later on. Labview allows us to focus on programming concepts and getting the ideas down - we aren’t forced to deal with debugging syntax errors (and as someone who programs in C++ regularly, I can tell you that you will spend a lot of time doing just that.)

Your ONE programmer knows C.

If this ONE programmer is the only ONE who will program this year, then C++ is the way to go.

If you are planning on having more programmers, especially those who haven’t programmed much before, then LABView is an easy language to learn, so I hear.

OR, if your current ONE programmer is capable and willing, they could teach others how to program C++, however it is tough to find a good teacher in most students when it comes to programming C++.

Notice the ONE word I put in all caps? My little bit of advice to you: If you can, have more than ONE programmer. It’s an important job that requires lots of work and skill, and for some strange reason robots won’t run without it. :stuck_out_tongue:

we know we need more than one programmer we have one and more three that need to learn we wanted to know what program is easier to learn

With the templates provided, you will find that you can program a robot easily in any of the 3 languages supported. I have found that debugging is easier in Labview. You should also look to the teams nearby. It is important for FRC teams to help each other, so ask!

ok thank you

Because the language you choose is [usually] the first language your programmers will learn in, I would recommend against LabView, but if you can’t get a mentor or student who knows a different language, then LV is the way to go until you train students in a different language.

Why? The conclusion doesn’t follow logically from the premise. It seems you’ve left a step or two out of your argument.

**

The programming paradigms imposed by the first language a programmer learns solidifies a certain mindset in how that programmer approaches programming problems. Speaking as a computer scientist, I found learning a functional programming language (SML) a completely bizarre experience (pretty much all values, data structures are immutable, there is no iteration, all functions and data structures are recursively defined, functions are 1st class values and then you have continuations, currying, closures, lazy evaluation etc). Basically, SML turned my view of programming upside down and I had to unlearn a lot of the different strategies and concepts I had picked up using C, C++, and Java to effectively use this new tool. I would say the difference between Labview (data flow programming) the C (procedural), or Java C++ (Object oriented programming) or SML, LISP (functional) is quite a bit greater then the differences then these languages have between themselves (especially concerning C like languages). OOP languages are used much more often in both academic and industry environments then Labview. The opinion I hold now as a software engineer is that it would have been a mistake if I had started my venture into the programming world with Labview.

To address the original poster, I vote for Scala :p.

Isn’t the converse also true ? Had you learned SML first, you would have had the same issue when learning C, C++, Java ? So if you’re going to have to learn both, does the order matter ?

**

@ ahollenbac: Is this what you had in mind Andrew?

Or did you have something else in mind?

I’m still much more comfortable with Java (OOP) so I would say yes it does matter. Also, being skilled in using Java holds a lot more weight then an obscure language such as SML. Not being comfortable with C, C++, or Java will make scoring an internship at a software company much harder. In the current job climate, graduating from a CS or Software Engineering program without any industry experience is not going to make finding a job easy. As an interviewer, a candidate without any industry experience would make me uneasy. I’d say that being comfortable with an OOP language is much more of a necessity then a functional language although learning a functional language does help expand on a lot of CS concepts.

Folks,

Bear in mind here that the object of FIRST is not to produce software engineers; it is to inspire kids to get interested in STEM careers. If we can get them hooked with Labview or Java, that’s all to the good. I think the key here is not to let the kids founder. The team needs to pick a programming tool that is well supported and that a mentor can help them with. FIRST does a great job producing tools in all 3 supported languages. Every team should have a mentor (either close or on-line) that can help them succeed.

[/quote]

And you’ve spend the same amount of time learning/using SML as you did Java?

**

FIRST is also an excellent opportunity to give high school students a head start in the stem fields. If a student is thinking about doing programming for a living and going into a CS or similar program when he/she graduates, then giving them an opportunity to start learning a standard programming language such as C++ or Java will enable them to hit the ground running when college comes around much more so then having them learn Labview.

No. But If I had spent my early years at college working with SML over a language such as Java, it would have made getting an internship really hard.

If that had been stipulated at the outset the dialog would have been a bit different I think.

**