With the Thanksgiving break finally upon me I now realize that I need to be a better behaved blogger. The nice thing about having the blog on my website is that I’m pretty committed to keeping it going despite my occasional/frequent droughts.

It’s been busy for me at school and elsewhere. I’ve started regaining my social life in the midst of my more intense studying aspects in the hopes of finally becoming the well-rounded individual. Also, I’ve finally returned to the developer stage with some interesting projects.

I’ve pretty much abandoned my trivial web projects in favor of a few more serious research and other projects in Python and C++. This is the third time I’ve been programming in C++ and the first real exposure to Python. It’s been fun dealing with interface/facade ideas in these languages instead of using the familiar Java concepts. It’s also interesting to try plugging in these tools into some fun new libraries.

I must say that I don’t despise C++ as I used to. It’s really not much different from Java except for the exaggerated power you feel from managing your own memory.  When I switched over the first time I can still remember how uncomfortable I felt with the lack of the amazing Java library and documentation, but you can overcome that.  The code can obviously be much more elegant at times as the magical pointer garbage can be pretty interesting. The biggest concern is that your code doesn’t start looking like something written by Escher.

Python is fun and different, but I’m not sure that I’m used to it yet. When working with C++ and Python at the same time you start to realize how uncomfortable that void of high level management is. I really have no idea how long it’s going to take me to get really comfortable with the language. You know what I’m talking about; there’s that point where you feel like you’re working on a code assembly line and the code colors and connecting shapes are all in arm’s reach.

The current situation with Python is a lot like that episode of Futurama where Bender is floating through space. A small species of people form on his body and evolve into a fully civilized species and he plays god for a little while. Then he screws up and causes a nuclear war, killing off his little world.  He then meets up with a god-like galaxy and they start talking and figuring stuff out. I think I just encountered god after playing around and blowing up my own mini-universe. Soon I should a good approach for creating life, but right now the options are just blowing my mind.

I’ll keep you up to date and I hope to have some descriptions of my tools and projects soon. Until then, I guess I hope that you’re staying healthy and looking forward to a happy Thanksgiving.

Posted on November 21st, 2008 | filed under personal, programming, software | Trackback |

6 Comments

  1. Some Idiot:

    Hmm, I thought you didn’t like Futurama. Also, if you want to create life in a computer, look into neural networks and genetic algorithms. It’s pretty interesting. (Also useful for things other than artificial life.)

  2. Some Idiot:

    Also, C++ really is a poorly designed language, but not because of missing libraries or pointers. (Not that Java is especially well designed.)

  3. rwb:

    Thanks for always disagreeing with me, Walt. I think it keeps our relationship strong. I fear a day when you will agree with me on a topic.

    I don’t think C++ is poorly designed. It’s pretty straight forward and mildly accessible to the young coder. I do like Java more, but the amount doesn’t outweigh the VM footprint. Someday I’ll look at Lisp and Haskell and you can say “I told you so” when I like them.

  4. Some Idiot:

    C++ is poorly designed because the grammar is too complicated. It’s context-dependent, and is practically un-parseable. That’s why there are so many incompatibilities between compilers. It also makes it almost impossible to write tools that work with your code. Oh, and don’t forget about link errors.

    Also, what do you mean “doesn’t outweigh the VM footprint”? Are you saying that it’s better to use a crappier language than to have a little overhead at runtime? What are you writing, missile guidance systems? I doubt whatever you’re writing is so dependent on speed or a small memory footprint that you need to use C++. Also, the JVM is becoming amazingly fast, and for all practical purposes is as fast as C++. Of course there are cases when C++ is faster and cases when Java is faster, but in general, Java is as fast as compiled C++ code. http://www.javaworld.com/javaworld/jw-02-1998/jw-02-jperf.html

    Anyway, I don’t actually like Java either, but the JVM is amazing. The good thing about virtual machines is language interoperability. Different people can use different languages on the same project, working with the same libraries etc. Also, as for making speed improvements, since the JVM uses a just-in-time compiler, it has all kinds of runtime information it can use to optimize the compiled code. You can get way more information at runtime than you can at compile time.

  5. rwb:

    The code is going to be used on embedded devices so it does need to be pretty tight. Java isn’t an option, but I realize that’s a special case.

    This is what I get when I say a language isn’t so terrible. :D

  6. Some Idiot:

    Haha, this is what you get no matter what you say.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>