I suggest that in a future year KIPr release a KISS-C++ rather than a KISS-C for a few reasons:
1) since C++ is a superset of C, and that means C++ has all the syntax and resources C has
2) on the IRC the topic of OOP (object oriented programming) comes up a lot and most the hacks (no offense Rand) so it would make us higher level programmers happy
3) since all the higher level programmers are happy KISS would be more well used
4) I would like to teach the younger kids on the team (James Lee Team 1) OOP on a standard development platform (Win/Mac/Lin).
5) to give Rand and his team of hackers and crackers something to do over the summer
CBCJVM allows you to use Java, a modern OOP language, in eclipse, a modern IDE. I hope your desires are met at this year's GCER.
Thanks,
Braden McDorman
"When you do things right, people won't know you've done anything at all."
Hey Intelburn,
I am in fact programming one of our bots in C++ this year. The Norman/Nease CBC Mod Installer v1.2 which was released recently should support C++, but you'll need the command line. A GUI-based setup should be released at GCER (I'm using an early beta of it now during Botball development... it's pretty buggy at the moment but it's improving quickly).
And as Braden says, if you want a high-level object-oriented language, you can use CBCJVM with Java. Personally I prefer a mid-level language such as C++. But that's the fun thing about hacks... you have choices regarding whose hacks you use! :-)
If you try C++ using the 1.2 Mods, let me know if you run into any issues... I'd like them to be usable for teams this season, so I will make an effort to address bug reports.
As for KIPR officially supporting C++, I think their concern is that teams will ask more questions about C++ programming than they would about C, because C++ is a significantly more complex language. And answering more tech support questions is not something that they have the resources for. (I'm not certain that this is the reasoning though; Logan may wish to correct me here.)
-Jeremy Rand
Senior Programmer, Norman Advanced Robotics (2010-2011), Norman High (2008-2009), Norman North (2005-2007), Whittier Middle School (2003-2004)
2011 President, Botball Youth Advisory Council (2009-2011)
intelburn: I agree 100%, almost anything is better than C.
CBCJVM|CBCJVM-GCER-Paper|CBCDownloader|IRC
Now a 2010/2011 YAC member!
PiPeep, I agree that almost anything is better than C for skilled programmers like you, me, and Intelburn, but C is significantly simpler than C++ and Java, which can make C more usable for newbie programmers. And skilled programmers are usually happy to make their own tools, as you, Matt, Braden, and I have proven (maybe Intelburn also; I'm not familiar with what Intelburn's done).
KIPR's resources are very limited, and I don't think they have the capability to help newbie programmers with C++. (But Logan may have a different take on it.)
-Jeremy Rand
Senior Programmer, Norman Advanced Robotics (2010-2011), Norman High (2008-2009), Norman North (2005-2007), Whittier Middle School (2003-2004)
2011 President, Botball Youth Advisory Council (2009-2011)
At one point I tried to
#include<cpp> the botball libs into XCode and failed:(We kick bot
JLCC
Jeremy's comments on this are pretty much on track, but I want to expand and clarify a bit.
Given that we've got limited resources with which to develop tools and provide training and support, we think it makes sense for us to focus on one programming language for Botball and for that language to be C for a variety of reasons. Here's a brief summary:
First, C is a widely popular programming language, especially in robotics and systems programming. Choosing C for Botball lets us build on a lot of existing infrastructure.
C is a simple programming language that can support a variety of programming paradigms. It rests on a fairly small conceptual framework that adds minimal overhead to the robotics concepts that we teach in the Botball workshops.
C is an easily extensible language in both semantics (through libraries) and syntax (through pre-processor commands). This means that whatever scientific or engineering field one might go into, C will be a useful programming language. Several special purpose engineering languages (e.g., Matlab or LabView) use C or a subset of C when they need to do procedural programming.
Finally, C is the foundation, both syntactically and in terms of implementation, of many other programming languages. Focusing KIPR's resources on C allows us to provide a foundation for both learning and implementing those languages.
For programmers who have a strong preference for working in another language, we hope that our work on KISS-C and the CBC provides them with a platform on which to base projects of their own. The Botball rules specifically allow this and we hope to do more to encourage it in the future.
Logan
---
Logan Cox
KIPR IT Coordinator
lcox@kipr.org
405.579.4609
Man plans, god laughs.
Thanks for the clarification Logan!
-Jeremy Rand
Senior Programmer, Norman Advanced Robotics (2010-2011), Norman High (2008-2009), Norman North (2005-2007), Whittier Middle School (2003-2004)
2011 President, Botball Youth Advisory Council (2009-2011)