Saturday, August 02, 2008

Fav5

My pick of the week's top 5 items of interest:
  1. In The 'Anti-Java' Professor and the Jobless Programmers, CS professor Robert Dewar complains of the Java-centric mentality that many American CS graduates have today. Here are two questions Dewar might ask a recent graduate in an interview in order to separate the wheat from the chaff:
    1) You begin to suspect that a problem you are having is due to the compiler generating incorrect code. How would you track this down? How would you prepare a bug report for the compiler vendor? How would you work around the problem?

    2) You begin to suspect that a problem you are having is due to a hardware problem, where the processor is not conforming to its specification. How would you track this down? How would you prepare a bug report for the chip manufacturer, and how would you work around the problem?

  2. In Google Still Not Indexing Hidden Web URLs, Kat Hagedorn and Joshua Santelli follow-up on a paper I published two years ago. Apparently Google is still not doing a good job indexing the OAI-PMH corpus; only 44% of the URLs tested were indexed by Google.

  3. Carnegie Mellon has just introduced a new masters degree: Master of
    Tangible Interaction Design
    . The one year degree combines computer science and architecture.

  4. The Google Blog has a series of posts discussing how Google ranks their results. The discussion is understandable for non-techies and delves into the psychology of web search.

  5. Just for fun: Super Mario Bros. in 20 lines of JavaScript.

4 comments:

  1. I figured that I would comment on the Mario game since I have extensive Javascript experience. I would say that the 20 lines of code is a bit of an exaggeration. The source code can be found at: http://www.nihilogic.dk/labs/20_lines_javascript/july08_super_mario/20linesofmario.js . Since you can create dynamic classes or maps in the language, you can basically create an infinite amount of 'definition' information via 1 line of code. With complex Javascript problems this is fairly common and lines 1 and 6 in my view shouldn't be counted as 1 line per say. Also, counting a for loop as 1 line because you stuck tons of code in the 3rd arguement slot seems a little iffy to me. I am not saying that this is an unimpressive program, I am just saying that it may be 20 lines in a technical definition, but not from a logical view (as in what my eyes tell me). This does however show off some of the more fun sides of the language and why it can be a great server side language.

    ReplyDelete
  2. (1) is interesting reading: "...they added the sentence ‘This job will not involve any use of Java, or any Web-based application programming’..."

    ReplyDelete
  3. Dewar has railed against Java in many forms before. As a Java programmer I can say that building very complex applications is both possible and appropriate with the language. Java isn't the be all and end all of languages, but it shouldn't be discounted. You have to pick the right tool for the right job. If I was writing fail-safe missile programming in a limited space environment, of course I would be using Assembly or something more primitive. If I am building an app that is deployable over many different environments, does not have such hardware restrictions, and needs a good long term design structure, I will probably choose Java, C#, or any number of high level languages. Assembly language would not be necessary for 99% of those applications.

    As far as curriculum goes, I would stress an environment that teaches concepts more than a single language. I know that I came out of college knowing how to be an OOP programmer, but I was not tied to C++, Java, or C# only. Language junkies (people who swear by 1 language only) can be found anywhere, people who understand good design principles, how to meet business needs, and have problem solving techniques are always useful.

    ReplyDelete
  4. Regarding SMB- I guess they were very lax in the line counting dept. ;-) Back when I was a teenager, Nibble magazine used to sponsor a contest to see who could write the coolest program in one or two lines of BASIC. Each line could only be 256 characters max. Let's see them do SMB in two lines of BASIC! ;-)

    Regarding Java- it's always the fall-guy... you have to start somewhere in CS 1 and 2. Harding tries to turn out graduates who (as I can tell from Jordan's comment) know there are many languages to pick from depending on the problem at hand.

    ReplyDelete