|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
The One-language-per-year Challenge
I hereby issue a challenge to the programming departments of each team: use a different language each year.
The Rules: -Use a different language each year. -The 4 languages to use are C++, Java, LabView and Python. Feel free, however to add others to the mix. -There must be at least a 4 year interval before a language is reused. In other words, no programmer should ever use the same language twice. |
|
#2
|
||||
|
||||
|
Re: The One-language-per-year Challenge
I'm going to avoid the temptation to write a really long post and just ask 1 thing.
Why? |
|
#3
|
|||||
|
|||||
|
Re: The One-language-per-year Challenge
Python is not a real, supported FRC language.
There are 3 choices if you want any help at all. I too question why. |
|
#4
|
||||
|
||||
|
Re: The One-language-per-year Challenge
"Jack of all trades; master of none." comes to mind almost immediately.
- Sunny G. |
|
#5
|
||||
|
||||
|
Re: The One-language-per-year Challenge
I like the idea of the challenge but I think it would be kind of hard to implement. The teams I have experience with have never really had a "dedicated" programming team, generally they do electrical and pneumatics as well.
On the other hand I have been looking into using python to program our robot, even though it is not 'officially' supported. My goal has always been to be the "Jack of all trades; master of none." as ttldomination stated. |
|
#6
|
|||
|
|||
|
Re: The One-language-per-year Challenge
We've used 3 different languages in the past 3 years. Hey, it happens when your team is founded with freshman, they grow up and learn new stuff!
I think we've found our preferred language by now, Java. |
|
#7
|
||||
|
||||
|
Re: The One-language-per-year Challenge
Quote:
In competition, especially FIRST, I think it is widely accepted that it's better for you to do one thing really really well as opposed to do a lot of things at a mediocre level. - Sunny G. |
|
#8
|
||||
|
||||
|
Re: The One-language-per-year Challenge
Quote:
That said, I would probably use a base language year over year and have off season challenges to re-implement in a new language. Then switch if your team decides it wants to. |
|
#9
|
|||
|
|||
|
Re: The One-language-per-year Challenge
I'm a big fan of Robo-Cobol and think that most teams should moving that way.
I can see taking an existing robot and trying to program it in some other language as a possibility. So it's a teaching moment. On the other hand to program a robot during a season because it's a different language seems like a bad idea. |
|
#10
|
||||
|
||||
|
Re: The One-language-per-year Challenge
Quote:
|
|
#11
|
||||
|
||||
|
Re: The One-language-per-year Challenge
Our team has always programmed in labview. In 2012 we implemented vision for the first time. In 2012 & 2013 we used C for vision, this summer me and another student are forcing ourselves to write every vision project in C++. By next summer I hope to be using python for some projects. Our scouting program was written in C# this year. The reason we write in so many languages is because our mentors that help with programming just happen to know different languages.
While we don't switch programs every year, we offer a wide variety, so if you don't find labview amusing, you can try another. I personally don't care what language a teammate programs in as long as they enjoy it and it works. I believe this is a safer alternative than switching languages every year. It still provides the diversity, but the veteran experience is still there. |
|
#12
|
|||
|
|||
|
Re: The One-language-per-year Challenge
Quote:
It's true that learning other languages is useful, like when the mother cat and her kittens were suddenly confronted by a dog. Mother cat barks furiously and the dog runs away. "See?" the mother cat says to her kittens. "Now you see why is important to learn a foreign language!" I agree with rsisk, that learning multiple languages helps teach programming structure and method. LISP and FORTH, for example, have a very logical format. (APL too, for that matter.) Maybe not as readable, but it makes sense. Robo-COBOL, on the other hand, is very readable, but oh-my! The typing! The typing! Our team used LabVIEW ever since it was introduced. The school district's FLL and FTC teams are already using LabVIEW, and we're starting to see those kids coming up to FRC already knowing how to do the basics. We (the mentors) would prefer sticking to the one language "just in case". What if your lead programmer can't make it to a competition? Can your relief pitcher pick up the language real quick? I don't mind exploring/learning other languages off-season, but let's keep everyone focused on one language -- whatever it is -- during build season. |
|
#13
|
|||
|
|||
|
Re: The One-language-per-year Challenge
The build season is 6 weeks. The programming team is lucky if they get a vetted mechanically robot at the end of week 4. More like the last week or the last week end . Not a time for the programming team to be dealing with a new language. I want our programming team to be up to speed and ready to run hard when the robot is finally ready for them. If we change a language it would have to start in the summer and continue through the fall to be ready for the season. We have students that have multiple years of lab view experience and can run with a project. I would hate to throw all that experience away. We have used some arduino boards and some programmers have been exposed to c and c++ with them. I prefer a master of one.
|
|
#14
|
|||
|
|||
|
Re: The One-language-per-year Challenge
At FRC, you really only need to learn one language. Consider the pit area for a team. They have lots of tools to work with – but no two tools are designed for precisely the same purpose. A Philips screwdriver will not replace an allen key or some extruded aluminum (MacGyvering aside). Us programmers only have four tools/languages to work with (yes, Python is a perfectly viable option, don't dismiss it), but these tools are all intended to do the same thing. That's why FIRST remains primarily a mechanical competition, not really a programming one, and why teams will stick with a language.
In short, I think it makes sense to select a single language that suits your team for robot-related tasks, but also broaden your palate with non-robot languages – 254 just released an amazing Ruby-based CAD program, for example, that relied on some not-trivial SQL. Or 245, who released a scouting app written primarily in Javascript, designed to calculate OPR, CCWM, etc. There are two branches of FRC programming – the Robot, and some utilities for your team. |
|
#15
|
||||
|
||||
|
Re: The One-language-per-year Challenge
Quote:
000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. FOURDIVISIONSNOSUPPORT ... Seems to me that this is sort of an opt-in venture. Sounds like fun but I am not sure most teams would want to chance that they switch to an unfamiliar language on what will most certainly be a new platform they will not probably have weeks into a 6 week build. Definitely worth learning to do outside of the build season however. Gonna be hard to get the IBM mainframe on the robot in the weight limit. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|