C++ Support

24 views
Skip to first unread message

Austin Bart

unread,
Jun 18, 2014, 7:41:29 PM6/18/14
to corgis-data...@googlegroups.com
Presently, the RealTimeWeb architecture (the technology powering High Velocity data and distributed High Volume) supports generation of Racket, Python, and Java code. For better or worse, a number of institutions still use C++ for introductory courses, and several professors have personally requested C++ support. Unfortunately, supporting this language is not as clear cut as the others, because there are fewer language-level features to simplify web access and parsing.

One of the big goals of the CORGIS project is to make it as trivial as possible to use Big Data. The Racket and Python libraries are each a single file, which require no external modules or local installation - just download the .py or .rkt file and get started. The Java libraries are packaged into a single JAR file, which can then be added to the students class path (not as trivial as we'd like, but that's a different conversation). There is no such solution for C++: you are expected to either distribute a large code base, or compile for the target platform (which then raises the terrors of platform dependence).

The options as I see them:
1) Fail to support C++
Obviously, this option is least viable, but currently where we are.

2) Support C++ through a multi-file library
By leveraging the right libraries (e.g., libcurl, libjson), it's reasonable to create the necessary C++ code. However, by utilizing those libraries we make it considerably more difficult for students to get started with our libraries - they suddenly have to worry about unzipping files. Still, that may simply be a penalty for using C++.

3) Write a script to concatenate the entire library into a single C++ file
Although monstrous from a Software Engineering perspective, this approach is already used in Python and Racket libraries requiring OAuth. This is a case where proper design must take a back-seat to the user experience, but it is not something that I take lightly.

I am very interested in hearing community feedback on these options; I am even more interested in better options.

wend...@umn.edu

unread,
Mar 8, 2015, 9:59:47 PM3/8/15
to corgis-data...@googlegroups.com
I'm not sure I have better options, but the simplest form for the students would be my vote. C++ support is something I would be very interested in. The intro to programming for scientists and engineers course at the University of Minnesota uses C++, and I think that this would go a long way to being helpful in grounding the students into real-world application at a bigger scope than the trivial examples we show them.

Austin Bart

unread,
Mar 14, 2015, 2:11:59 AM3/14/15
to corgis-data...@googlegroups.com
Thanks for the feedback! I've been meaning to tackle this down the road, but I keep holding out hope that someone else will do the dirty work of getting it started. In particular, an external colleague has expressed interest in this feature to the point of potentially having students work on it himself. Currently, there's no roadmaps, but it does look like the "easiest" way to go would be the 3rd option, managed through careful build scripts. I look forward to future conversations on the subject when the raw developer time can be found.

~Cory
Reply all
Reply to author
Forward
0 new messages