New programming language next year?

OK, now nobody flip out… but well, I’ve heard we’re getting a new Controller next year. Got announced at a meeting last week. And they won’t comment on whether or not it uses PBASIC. Perhaps Java? Who knows, but I say they should leave it as is. We’re used to PBASIC! We can adapt either way though. Has anyone else heard about this?

It was announced at the Team Forums that there would indeed be a new robot controller, and it would use a new programming language.

The FIRST representatives also indicated that teams would be made aware of this language in the fall in order to prepare for it.

Of course, as with everything in FIRST, this could all change.

I just pray it is C++ :smiley:

That’s what it should be anyway :rolleyes:

Thanks to Dave Flowerday for clearing up the issue of the new language being a rumor. FIRST has good minds behind it though, and I trust them to make a good choice. I suppose the biggest question will be whether or not it’s similar to PBASIC or more object oriented. Any opinions? P.S. if anyone wants some old PBASIC code from this year, then drop me a line at [email protected]. I worked on autonomous and came up with some pretty nifty stuff. Good bit of code for potentiometer matching with incorporated motor ramping.

Object oriented is good. It’s nice and happy and easy to use :p. Well, at least after two years of C++ and two weeks of Java (Applets).

They never acctually verifed gettinga new controller, they said somthing about IFI possible creating a new robot controller for next year, they never said it was 100%

If they do, C++ would be a likely choice.

All I heard from the FIRST representative was that IFI has been upgrading the control system, and should be releasing information about the changes within the next month or two. Nothing was said about a new language.

All we can do, at this point, is wait.

/me reloads IFI’s website looking for any sign of news.

*Originally posted by “Big Mike” *
**They never acctually verifed gettinga new controller, they said somthing about IFI possible creating a new robot controller for next year, they never said it was 100% **

Well, I suppose it depends on which forum you went to. I believe the quote from the Illinois forum was “There will be a new robot controller next year.”

Personally, my guess is that it won’t use PBASIC, simply because we’re already using the fastest BASIC Stamp. C++ isn’t very realistic for a low-cost embedded microcontroller. Too much overhead, and too much code space required. C might happen, but honestly I think that would be just too complicated for a good percentage of teams to deal with (teams that don’t have software types as mentors, and don’t have any students who already know it). I can only hope they don’t use Java (I’ve never used a Java program that didn’t feel slow and bloated, and I imagine a microcontroller based implementation wouldn’t be much better).

I would expect so see something like the BasicX chip: for one thing, it’s pin-compatible with the current controller, meaning IFI could probably drop it in to their current control system with no other hardware changes. It uses a dialect of BASIC, which is nice for inexperienced teams. It has 400 bytes of RAM and executes 65,000 instructions/second versus the BS2SX’s 10,000.

Anyway, this is all speculation on my part. I believe we really will see a new user CPU next year, but like I said before, it’s all up in the air until you hear the official announcement.

Just based on a previous conversation with a FIRST staff member, I don’t think IFI will settle for “only” a 6.5x increase in speed.

I agree that C++ is not a likely choice. In my mind, it will either be C (the most popular microcontroller language) or java (the current most popular teaching language). Considering that AP CS is switching from C++ to Java this year only makes me think that they are less likely to use C++.

I know that a few years ago Eric from FIRST was interested in allowing either C or Java programming to be used for programming the robot controller. However, at the time, he was adamant that any change of language would be an “in addition to” PBasic and not a replacement.

My bet would be that we’ll switch to Java as there is a JStamp out there that’s almost pin compatible and runs Java.

Matt

I hope it’s C. I know that language decent.

Java is C++ for the internet in my opinion. They are both OOP.

if i can do regular math (with none of the crazy MAX/MIN/adding 2000 to each equation) i’ll be happy.

if i can store more variables easier, i’ll be even happier.

if it runs at a respectable speed, i’ll be very happy.

the problem is, if FIRST wants more autonomy, we need better controllers. it looks like it’s going that way.

one other interesting point that was brought to my attention today…

We presented our robot at a local fair-type day (main street is closed, vendors set up shop, everyone has a good time). many people, when corrected about the FIRST/BB issue ;), asked about the controller. When I explained how we were forced to use the IFI one, many people said, “oh, that’s dumb, you can’t do anything with it.” which brings me to my point, that being, with this new controller, will we have more options on the EE/SE side, similar to what the MEs have already?

C++ is more likely then Java. Even though Java is coming around for embedded applications C and C++ are more common. Of course if I have my choice it would be C# but that’s unlikely. I think it will still be some sort of BASIC though. BASIC rocks.

PYTHON!!!
(I can"t code much more than a “Hello World,” but I like python and the nerds I deal with dig it too.)
Anyone know how python compares to these others as a potential language for small robot controllers [in general, not just for FIRST next year]?

::Runs back into shop and hides from angry programmers::

*Originally posted by pauluffel *
**PYTHON!!!
(I can"t code much more than a “Hello World,” but I like python and the nerds I deal with dig it too.)
Anyone know how python compares to these others as a potential language for small robot controllers [in general, not just for FIRST next year]?

::Runs back into shop and hides from angry programmers:: **

Python is more on the DOS side-of-programming. Delphi would be more possible out of the two I think (Delphi is a superset to Python like C++ is to C).

*Originally posted by Raven_Writer *
**Python is more on the DOS side-of-programming. Delphi would be more possible out of the two I think (Delphi is a superset to Python like C++ is to C). **

No, it’s not. Delphi is based on Pascal (basically it’s Object Pascal). Python is a completely separate language. They may have some similarities but they’re separate languages.

Matt

*Originally posted by Raven_Writer *
**Python is more on the DOS side-of-programming. **
If by ‘DOS side-of-programming’ you mean text-based programming, then yes. Python works on Macintosh, Unix, Windows, and more.

A lot of great thoughts on this topic.

I agree with the idea that C would totally freak out the vast majority of FIRST teams. That doesn’t mean it wouldn’t be a good choice, just that it is going to mean a lot of teams will run with the default code just for fear of the dark…

What I REALLY want is what I probably will not get: A multitasking kernel and a means of having access to real time interrupts.

Why?

Because the lower 75% of teams were killed by the autonomous programming this year. Why was that? Because of 2 things (in my opinion):

#1, Programming of ANY kind was hard due to the nature of the multiple things that have to be controlled on a typical robot.

#2 A serious autonomous mode all but required a co-processor on the custom circuit board.

The programmers have the best and the worst job in all of FIRST. It is the best because when a program does its job, the coder can stand up and take well deserved bows. It is the worst because of the 6 weeks and 3 days FIRST teams have to complete their robot, building & wiring & mechanical debugging the robot usually takes 6 weeks, 2 days and 23 hours – leaving about 1 hour to complete the task of writing bug free robot code.

A multitasking kernel will VASTLY simplify the coding time required to make a robot work (wheels task, arm task, gripper task, switch debounce task, joystick filter task, etc. easy and independent).

Access to real time interrupts would make a competitive autonomous mode within reach of the lower 75% of teams. By the time most of these teams realized they needed a more complex custom circuit board than they had planned, there was no time left to actually implement it. Giving teams access to real time interrupts (in a way that would not frighten them off), would allow for a competitive autonomous mode without a co-processor on the custom circuit board. This will allow more teams to have competitive autonomous programs.

Multitasking is going to chew up RAM so gobs more RAM is probably a side requirement of getting what I want.

For what its worth, I have evaluated BasicX as a result of some of the folks on this forum saying it was a worthy replacement for STAMP2. I think not. While it has a number of great improvements over PBASIC, it has its own set of issues. Mostly they come down to not having enough RAM to allow for mere mortals to use multitasking without crashing the system by overrunning the stack. 400 bytes seems nice until you actual try to do something – like put a print.debug statement somewhere in your code.

My current favorite is Basic-Tiger. Many, many pluses to using this chip. The only minuses are is that it is a German company (translated manual – yuck) and (not unrelatedly) the chips are a bit pricey.

Like I said, I doubt I will get what I want, but that does not keep me from asking…

Joe J.

I used Python last summer on my internship . I was a Systems Engineer for the team so I didn’t do a whole lot of coding, but the one problem I found with the language is the limitations on bit level manipulation. One of my projects was to work on some CRC Coding and it was some of the ugliest code I have ever developed. I believe that code is still in use because there is no easy way to do the bit manipulation that happens in the encoding process using Python. I really like having these bit manipulation functions when programming robots because it simplifies life a lot. Python is a great language, very portable, but not for what we are doing with a micro-controller.

Steve