Why I Love (actually Hate) C

This is a visual demonstration as to why I hate programming in C (and C++) :


[ 89%] Built target gsclient
[ 90%] Built target gsclient-static
[ 91%] Built target glibNetTest
Scanning dependencies of target geTest
[ 91%] Building CXX object 
   In function ‘tree* leaf_fn_call(db_tree_state*, 
                              const db_full_path*, rt_db_internal*, void*)’:
   error: ‘list’ is not a member of ‘std’
   error: expected primary-expression before ‘>’ token
   error: ‘dataList’ was not declared in this scope
   error: ‘list’ is not a member of ‘std’
   error: expected primary-expression before ‘>’ token
   error: expected primary-expression before ‘)’ token
   error: expected `;' before ‘myPointer’
make[2]: *** [tests/func/GE/CMakeFiles/geTest.dir/GeometryEngineTest.o] Error 1
make[1]: *** [tests/func/GE/CMakeFiles/geTest.dir/all] Error 2
make: *** [all] Error 2


19 lines of console vomit for one, simple little fix. From this:


#include <bu.h>
#include <raytrace.h>


to this:


#include <bu.h>
#include <raytrace.h>
#include <list>


Fixed. I hate C ……and C++



The path to MyGame.

Well, hrm, i figure I will further this Blogging ‘habit’ I am trying to establish with a post on my current hobby: Java Programming.


I have always been interested in Computer Programming, well at least since I was 10. Issue was that I didn’t fully understand what programming was and that, at that age, I didn’t really have the access to the internet that I have now. I started dabbing into programming with our family’s Commodore VIC-20 with a form of Basic. 10 GOSUB 50. Yeah, thats the good stuff!

After that, my interest became rather stagnant until I was well into the Navy and in charge of my Electrical Division on the boat. It was then that I stumbled across a Visual Basic implementation inside of Microsoft Access. That lead to me becoming severely frustrated with VBA (Visual Basic for Applications) as I just wasn’t grasping the Object Oriented Programming concept… at all. At the time, I was aware of C/C++ but that seemed a level of expertise/skill way out of my grasp, so I rarely gave it a thought outside of “wouldn’t it be cool if I could learn C/C++!?”

After the Navy, I went to work for the Army Research Labs where I was assaulted by so many new areas of computing that my head was spinning. My incessant habit of identifying inefficient processes (that affect me and how I work) and then finding solutions to work better/faster came into play full time at ARL. This led me to learn scripting languages called Tcl/TK and incrTcl. I still kept dabbing around with Microsoft Access, but this time, the Object Oriented Programing concept hit home.

“OMG, Duh! …Wow, this opens a whole new door… ”

Now, I don’t remember exactly how I stumbled across it, but my research led me to Java: Basically cross platform, very well organized and, most importantly, free. Sounded as good a starting point as any, so I started playing with it. As it turns out, I would later end up loving it!

Now, I will admit that I am not a ‘hardcore old-schooler’ that programs via notepad, emacs or vi. I am a ‘new-schooler’ and although I CAN program with just a text editor, I prefer using an IDE. Itelli-text and built in JavaDoc are simply the best time saving features ever created for programming. As for the IDEs themselves, well I tried a few but ended up voting Eclipse as my hands down favorite.

After hundreds of little “hello world” programs that helped me learn the ropes of all the different aspects of programming (not just Java specific), I was actually ready to attempt a project that would deliver a USEFUL product! It came about during the course of working on some geometry for my job at ARL. We had recieved Geometry from a vendor in the Unigraphics NX4 format and were having serious trouble converting it to BRL-CAD format using the existing data converters. It had gotten to the point where I had no other option left than to manually copy tessellated object data vertex by vertex, face by face, from one CAD system to the other. NOT fun when each object has 25,000 vertices and 12,500 faces…. and there are 3,000 objects.

In steps Java. I noticed that UGS NX4 can export VRML and VRML is text format. BRL-CAD also has an ASCII file format that it can handle natively, so…. a text to text converter can’t be THAT hard…. right? Seeing as it was my last option, I went for it. Took about 2 weeks of R&D to finalize my VRML2ASCII converter, but when it was done…. whooooo boy did it work. I was able to reduce the time it took to convert a whole truck full of geometry from 2 months down to 1 day. Yesssssssss, score one for my productivity and end of year evaluation 😉

It was during the R&D portion of the VRML2ASCII converter that I stumbled across Java Monkey Engine or jME for short. I tore into it with some eagerness and although it didn’t fill my VRML File Reader wicket, it was definitely worth bookmarking for later reading. Its a good thing I did also. Once I had the time to take a serious look at it, I was very impressed!

openGLjME is built on top of LWJGL which is really nothing but a java implementation of the openGL API aimed at the amateur Java game programmer with an eye on performance. The tutorials are great and the forum support is amazing! I feel that I have found the platform in which to start developing games with. Java can never out perform C++ or C#, but neither of those two can claim the organization and cross-platform-ability that Java can. To each their own, but for me, Java will be the place where I develop MyGame.