Can there be a KISS-C++ rather than a KISS-C?

8 replies [Last post]
intelburn
intelburn's picture
Title: MiniBot
Joined: 07/02/2009
Posts:
BotPoints: 43
User offline. Last seen 4 years 33 weeks ago.

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

We kick bot
JLCC

catron
catron's picture
Title: ZoomBot
Joined: 06/02/2009
Posts:
BotPoints: 98
User offline. Last seen 5 years 42 weeks ago.

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."

Jeremy Rand
Jeremy Rand's picture
Title: Botball Youth Advisory Council
Joined: 04/03/2009
Posts:
BotPoints: 1168
User offline. Last seen 2 years 30 weeks ago.

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, Team SNARC (2012-2013), Norman Advanced (2010-2011), Norman HS (2008-2009), Norman North (2005-2007), Whittier MS (2003-2004)
2012-2013 VP of Tech, 2011 President, Botball YAC (2009-2013)
Mentor, Alcott and Whittier MS

PiPeep
PiPeep's picture
Title: RocketBot
Joined: 07/19/2009
Posts:
BotPoints: 170
User offline. Last seen 3 years 40 weeks ago.

intelburn: I agree 100%, almost anything is better than C.

Jeremy Rand
Jeremy Rand's picture
Title: Botball Youth Advisory Council
Joined: 04/03/2009
Posts:
BotPoints: 1168
User offline. Last seen 2 years 30 weeks ago.

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, Team SNARC (2012-2013), Norman Advanced (2010-2011), Norman HS (2008-2009), Norman North (2005-2007), Whittier MS (2003-2004)
2012-2013 VP of Tech, 2011 President, Botball YAC (2009-2013)
Mentor, Alcott and Whittier MS

intelburn
intelburn's picture
Title: MiniBot
Joined: 07/02/2009
Posts:
BotPoints: 43
User offline. Last seen 4 years 33 weeks ago.

At one point I tried to #include<cpp> the botball libs into XCode and failed:(

We kick bot
JLCC

kiprlcox
kiprlcox's picture
Title: KIPR Staff
Joined: 03/26/2009
Posts:
BotPoints: 30
User offline. Last seen 6 years 3 weeks ago.

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.

Jeremy Rand
Jeremy Rand's picture
Title: Botball Youth Advisory Council
Joined: 04/03/2009
Posts:
BotPoints: 1168
User offline. Last seen 2 years 30 weeks ago.

Thanks for the clarification Logan!

-Jeremy Rand
Senior Programmer, Team SNARC (2012-2013), Norman Advanced (2010-2011), Norman HS (2008-2009), Norman North (2005-2007), Whittier MS (2003-2004)
2012-2013 VP of Tech, 2011 President, Botball YAC (2009-2013)
Mentor, Alcott and Whittier MS

Jeremy Rand
Jeremy Rand's picture
Title: Botball Youth Advisory Council
Joined: 04/03/2009
Posts:
BotPoints: 1168
User offline. Last seen 2 years 30 weeks ago.

Just in case anyone stumbles on this thread, the current versions of KISS-IDE from KIPR support C++ out of the box; hacks are no longer necessary.

You can download it at: http://kipr.org/products/kisside

-Jeremy Rand
Senior Programmer, Team SNARC (2012-2013), Norman Advanced (2010-2011), Norman HS (2008-2009), Norman North (2005-2007), Whittier MS (2003-2004)
2012-2013 VP of Tech, 2011 President, Botball YAC (2009-2013)
Mentor, Alcott and Whittier MS