“A catalog maintained by Bill Kinnersley of the University of Kansas lists about 2,500 programming languages. Another survey, compiled by Diarmuid Piggott, puts the total even higher, at more than 8,500. And keep in mind that whereas human languages have had millennia to evolve and diversify, all the computer languages have sprung up in just 50 years. Even by the more-conservative standards of the Kinnersley count, that means we’ve been inventing one language a week, on average, ever since Fortran.
“In the world of enterprise programming, the mainstream is broad and deep. Code is written predominantly in one of a few major languages. For some shops, this means Java; for others, it’s C# or PHP. Sometimes, enterprise coders will dabble in C++ or another common language used for high-performance tasks such as game programming, all of which turn around and speak SQL to the database.
Well it looks like the Google A.I. Challenge is finally complete and the final results are now posted! This post is a follow up to my previous post announcing the contest, Google A.I. Challenge (shwuzzle.com).
There are many things that we do in our code that makes it harder to understand, read, modify, etc. This article describes many of the common mistakes made by many undergraduate students and new programmers. Most of the code used as examples in the article is written in C, but the mistakes described can apply to just about any common programming language.
Here is a paper I recently came across which was posted on lambda-the-ultimate.org. The paper is titled: Automatic Staged Compilation (2005). It’s a dissertation written by Matthai Philipose of the University of Washington. It seems like an interesting concept. I wonder if we’ll see any real implementations in the near future? Here is an except from the paper:
“In this article I want to show how structure emerges out of iteration. Specifically, I want to create a very simple model of Darwinian evolution and demonstrate with simulations and mathematical proof that patterns emerge naturally ….. when stable patterns emerge in some iterated system, it’s possible to build new systems on top of the old ones. Moreover, these new systems can be seen as independent of the old ones ….. Artificial Life is the use of computer simulations to understand biological-like behavior. Conway’s Game of Life is one of the best known.”
Now here is a really informative video regarding pointers. Pointers can be extremely confusing for new Computer Science students. I haven’t had a chance yet to watch the video in its entirety, but so far it seems like a good watch. Here is a copy of the summary text describing the video:
I recently came across a set of really useful assembly tutorial videos. They seem to be primarily ‘hacker’ oriented, but I thought that there was quite a good bit of content related to assembly programming. The videos include topics on Windows assembly programming, general assembly programming, as well as some hacking-related and exploit-related videos.
How do you define a ‘real’ programmer? Most people look for the typical attributes: ability, experience, dedication, etc. I recently came across this article which contains an in depth discussion on what defines a ‘real’ programmer and what we should really be looking for. In short, a programmer is a person who is able to look at all possible solutions and pick the best one for the situation at hand. In addition, a ‘real’ programmer will never stop learning. Throughout your programming ‘career’ you should continue to learn new ideas, methods, languages, etc. However, you will never know every possible solution to a problem, this is impossible. However, a ‘real’ programmer shouldn’t be looked down upon for using something such as Google to look for an answer. This shows that a programmer is capable of learning and adapting to complete a complex task. It can be a good thing if a programmer can quickly find out how to do something without bothering other programmers. For a more in depth discussion on this topic check out the full article: Will the really real programmers please stand up? (stevenbenner.com)
Wouldn’t it be nice if there was some sort of mathematical method of manipulating computer code similar to how one does Algebra? In most cases this would be really impractical but interesting nonetheless, especially if it could be mapped into an actual computer language.