Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   The One-language-per-year Challenge (http://www.chiefdelphi.com/forums/showthread.php?t=117943)

E Dawg 23-07-2013 16:23

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.

Pault 23-07-2013 16:34

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?

apalrd 23-07-2013 16:38

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.

ttldomination 23-07-2013 16:46

Re: The One-language-per-year Challenge
 
"Jack of all trades; master of none." comes to mind almost immediately.

- Sunny G.

Ilovepineapples 23-07-2013 18:29

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.

BrendanB 23-07-2013 18:32

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.

ttldomination 23-07-2013 18:33

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by Ilovepineapples (Post 1284140)
My goal has always been to be the "Jack of all trades; master of none." as ttldomination stated.

Well, that saying can really be considered either good or bad.

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.

rsisk 23-07-2013 19:21

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by Pault (Post 1284102)
I'm going to avoid the temptation to write a really long post and just ask 1 thing.

Why?

I'll throw out a reason. Learning multiple languages helps you learn to think in terms of programming structures, or design patterns, ie., you become more meta and less syntax.

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.

Foster 23-07-2013 20:28

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.

Pault 23-07-2013 21:17

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by rsisk (Post 1284146)
I'll throw out a reason. Learning multiple languages helps you learn to think in terms of programming structures, or design patterns, ie., you become more meta and less syntax.

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.

I can definitely see the benefit of multiple languages. In fact, when I first saw this thread, I thought it was a challenge to learn a new language every year, but as an individual rather than as an entire team, and thought "wow, that's a really cool idea." And even having a team to try to learn some of the other languages during the off-season would be pretty cool, although I could think of better things to be spending code training time on. Coding your competition robot in a different language every year, though, is just counter-productive. One of the biggest problems I could see teams running into is having mentors who only know one of the languages well, then having to find new mentors every year because the old ones decide not to try to learn the new language.

faust1706 24-07-2013 00:22

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.

Roger 24-07-2013 07:13

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by Foster
I'm a big fan of Robo-Cobol and think that most teams should moving that way.

Hey! That's my line! :)

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.

Gdeaver 24-07-2013 08:23

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.

brennonbrimhall 24-07-2013 09:16

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.

techhelpbb 24-07-2013 11:38

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by Foster (Post 1284158)
I'm a big fan of Robo-Cobol and think that most teams should moving that way.

Robo-Cobol 74:

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.

E Dawg 24-07-2013 12:10

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by Gdeaver (Post 1284209)
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.

Exactly. If you do this challenge you SHOULD be preparing before build season starts. That way you are ready when the time comes. Also, it helps if the programming team starts working before the robot is done so that they don't have to do everything in 2 weeks or less.

Roger 24-07-2013 13:52

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by E Dawg
Also, it helps if the programming team starts working before the robot is done so that they don't have to do everything in 2 weeks or less.

We actually practice on the old robots in the fall, reprogramming them thru all the parts, simple stuff to more complex sensors/buttons/motors combinations.

During the first week of build, we all set a rough idea of what is needed on paper, with the electronics mentor doling out port numbers etc. The programmers usually got ahead of the prototype robot (or the multitude of pre-prototype mock-ups) with only tweaking of code (if we're lucky) or rewriting code (if the manufacturing group changed the design).

Quote:

Originally Posted by techhelpbb
Robo-Cobol 74:

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. FOURDIVISIONSNOSUPPORT
...

Yeah, that's what turned me off to COBOL, way back when, to my 13-year-old fingers, the typing, typing, typing of code, though I never actually did much coding. Though the card punch units the high school had made a pretty neat and satisfactory hole-punch sound. Robo-COBOL is, of course, much easier. ;)

rsisk 24-07-2013 14:21

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by techhelpbb (Post 1284259)
Robo-Cobol 74:

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.

COBOL taught me how to spell Environment correctly :)

Man that brings back memories

Andrew Schreiber 24-07-2013 14:25

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by rsisk (Post 1284301)
COBOL taught me how to spell Environment correctly :)

Man that brings back memories

Ok Gramps...



But seriously, I like the idea of teaching new technologies and skills. I do not like the idea of making this stuff harder than it already is.

Foster 24-07-2013 14:46

Re: The One-language-per-year Challenge
 
IBM did have 370's on a computer card Micro 370 which would fit on a robot today! On the other hand, getting a punch card reader that size will be a problem :rolleyes:

Thanks for the COBOL laugh, COBOL was my second language after Fortran. For awhile I worked at place that had Object Oriented COBOL, it was pretty cool.

Roger 24-07-2013 14:46

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by Andrew Schreiber
I do not like the idea of making this stuff harder than it already is.

So I guess APL is totally out of the question, huh?

Seriously, APL should be taught first, then when they are totally lost, tell them you'll give them something simpler, like C. I'm sure there's a Sheldon Cooper quote in there somewhere.

techhelpbb 24-07-2013 17:03

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by Roger (Post 1284308)
So I guess APL is totally out of the question, huh?

Seriously, APL should be taught first, then when they are totally lost, tell them you'll give them something simpler, like C. I'm sure there's a Sheldon Cooper quote in there somewhere.

I have found that nothing makes a programmer learn the value of a QWERTY keyboard faster than a wire-wrap tool:
http://www.homebrewcpu.com/Pictures/..._wrap_side.jpg

For those studying the electronics they'll never forget the real value of a netlist after that.

Extra points if you can wire-wrap a whole cRIO from CMOS chips.

No seriously, though, part of the pain of building these robots at all is that often times the core concepts and subtle core things you must do to get anything done is still sometimes a matter of imagination. Let alone twisting that into something unique and reliably functional.

One should not loose sight of what it was like to learn when first you had to build the computer. Disputes about the 'best' language for something tend to start to look like a luxury.

Foster 24-07-2013 18:13

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by techhelpbb (Post 1284339)
I have found that nothing makes a programmer learn the value of a QWERTY keyboard faster than a wire-wrap tool

Going to guess that less than 50 of us know what that is or have used one.

And CMOS? Really TTL isn't good enough for you?

Finally, one of my early jobs at the University was to help maintain the computer billing system that was written in APL. Clearly a write once read never language.

My programming language arc is Fortran, COBOL, MAD, ALGOL (and variants like ESPOL), APL, TECO (ask anyone, its a programming language wrapped in an editor), Assembler (oh PDP8 Assembler how I loved thee) , BASIC (and variants like Visual Basic), Pascal, C and (C++), Lisp, AWK, ICON, Forth, XLISP, TADS, Bob, Logo, Pilot, Smalltalk, TCL, Java, Javascript, Python, Ruby, Processing, Labview and Lua.

I'm working on English, hope to master that soon.

techhelpbb 24-07-2013 18:41

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by Foster (Post 1284348)
Going to guess that less than 50 of us know what that is or have used one.

I can help with that I still have and use them.

Quote:

And CMOS? Really TTL isn't good enough for you?
I value my 74181 collection. Harder to get these days.

Quote:

My programming language arc is Fortran, COBOL, MAD, ALGOL (and variants like ESPOL), APL, TECO (ask anyone, its a programming language wrapped in an editor), Assembler (oh PDP8 Assembler how I loved thee) , BASIC (and variants like Visual Basic), Pascal, C and (C++), Lisp, AWK, ICON, Forth, XLISP, TADS, Bob, Logo, Pilot, Smalltalk, TCL, Java, Javascript, Python, Ruby, Processing, Labview and Lua.
* PRESS PLAY ON TAPE *

No PHP, Perl, MegaBASIC, QuickBASIC, BASICA, GWBASIC, F#, Ada, DarkBASIC, GLBASIC, FreeBASIC, RCL, PureBASIC, Commodore BASIC, Delphi (Object Pascal), SED, PolyFORTH, pBASIC, SPIN and XCore C/C++?

Come on you're acoustic coupling it in at what like 300 baud?
:D

At some point it does start to get down to this....yes we can make it do that....but it might be wise to not ask how unless you are prepared to absorb way too much information.

E Dawg 25-07-2013 13:42

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by Foster (Post 1284348)
I'm working on English, hope to master that soon.

No one can master English. Not even computers understand normal
English, hence the fact that there are over 100 programming languages :ahh: .

connor.worley 25-07-2013 14:06

Re: The One-language-per-year Challenge
 
I have an alternative challenge... get really good at one language, aim to develop the best software in FRC using the knowledge of the language you've built up over the years, and leave as an expert in that language.

Foster 25-07-2013 20:54

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by E Dawg (Post 1284473)
No one can master English. Not even computers understand normal
English, hence the fact that there are over 100 programming languages :ahh: .

So two points: I know of, and work with English Masters. They take the random word strings I type, pass it through the noun/verb rules, add the correct other parts (is a participle really a thing?), add punctuation and it's good to go. The human brain is better than the computer programs of the day so it still rules. I've gotten documents back that look like a brace of chickens were slaughtered because of all the red pen marks, but I'm a better writer because of that. I'm not proud, important stuff I write gets adult English review. CD posts, not so much review.

"Over 100 programming languages" is a laugh. There are over 100 "mainstream languages", I'd guess there are over 5000 other languages out there. I've written two "little languages" that were designed as domain based languages". I'm not alone, so I'll take a bet that 5000 languages is the low water mark. Surf github, look for Java clones, Javascript clones, lisp (of all flavors) clones, etc. Domain based languages rock, some day there will be an amazing robot domain language we will all use.

Love these language conversations, but at the end of the day pick one that fits best and you can program best. I use AWK for "dig into files to rip data apart". I use R to rip that data apart into stats and reports. I use C to make robots dance and I use Lua as my new flirty programming friend.

And I use English to document the stuff I write, so others can follow it if I'm not there.

techhelpbb 25-07-2013 22:06

Re: The One-language-per-year Challenge
 
Quote:

Originally Posted by Foster (Post 1284548)
Domain based languages rock, some day there will be an amazing robot domain language we will all use.

Here's a blast from the past in relating to domain-specific languages:

http://en.wikipedia.org/wiki/Logo_%2...ng_language%29
http://en.wikipedia.org/wiki/Lego_Logo

I got a charming letter from Lego when I was younger suggesting that their lawyers would like to get to 'know me' because I sort of 'adjusted' the Lego control box for the Apple IIGS to have sensors like 'The Clapper'.

Doesn't it sound like a 'great' idea to have a Lego hydraulic (yes not pneumatic) system operating a pair of really sharp sissors also open and closed by Legos? I thought so....

If that sounds potentially....oh dangerous...at that particular competition a student arrived with a circular saw on a large Uncle Sam dressed mannequin on an FRC sized (this was long before FIRST) rolling platform. It wasn't anything to be concerned about the saw was only 6' off the floor with the guard open rolling on a robot plugged into the wall. I did not find it all a bit creepy the 'head' of Uncle Sam was basically circular saw.


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

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