Understanding the purpose of programming!

June 2, 2010 at 3:46 pm (C, Computer Science, Opensource, Programming, Python, Technology)

After my year or two of trying to move forward in my new found passion to code I have come to understand some of the deep issues facing programmers and the future of programming in general.

I watched I video of a talk given by a programmer from the game maker EA, in which the gentleman was talking about performance and such issues as the multi-core future. The talk was A Game Developers Perspective on Parallelism. I was somewhat taken back by the conclusions that he came to when having to optimize code for maximum speed and efficiency. As I try to learn to hone my skills and understanding on my own I jump back and forth from where my interests lie be it low-level (perspectively speaking) C or higher level Python. Basically his conclusions spoke volumes for what we tend to see as efficient code. When we try to think through our looping and execution schemes in coding to get the most out of the code the code tends to do just the opposite. I know coders are discouraged from magic in their code for understanding purposes and such but as much as this lends to understood code (for the human) it doesn’t lend itself to ultimate precision in performance (which I’m sure most programmers already know understand to an extent). We have to find the sweet spot though because as much as processing power use to be cheap in terms of cost that reality has only all but caught up with us and will probably start to edge us out of the lead soon.

We do not think in terms of the mechanics of precision when it comes to giving the machine the most performant way of executing a program I think we will ultimately need to move at programming at a higher level for our purposes but for the machine’s ultimate efficiency we need to find a way to let our machines generate the low level code that it will ultimately find efficient. I know it is easier said then done but we already have interpreters and compilers that are generating code to run at a lower level or from interpreted to complied etc.

The most expressive languages for humans to me are the functional languages ie Lisp Scheme etc. If we can figure out a way for humans to communicate at their level with highly readable code and algorithms then let an interpreter of sorts spit out performant optimized at times spaghetti C code I think that is where that sweet spot will ultimately be met.

I know that we want to be real men and code close to the metal and I seem to be most interested in that level in my learning but it seems not to be our best way to bridge the human/machine gap.

Please understand I’m learning so be nice when you judge my expressing of some of my understanding.

As always just my two cents worth.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: