Blogged by Ujihisa. Standard methods of programming and thoughts including Clojure, Vim, LLVM, Haskell, Ruby and Mathematics written by a Japanese programmer. github/ujihisa

Friday, October 2, 2009

Programming Language as Human Interface

5 Reasons Why People Use This Language

There are a lot of programming languages both in the real world and in the academic experimental world. Everybody knows the common function which Professor Turing defined among the languages. Although almost all programming languages which are used as a production can be ultimately written in a single language, we tend to use specific languages for some reasons.

  1. Our project has used this language.
  2. Our project needs a specific library written in this language.
  3. We're excel at this language.
  4. A specific functionality of this language is absolutely effective on our project.
  5. The syntax of this language is good.

This order means the order of impact. Yes, unfortunately the syntax matters the least.

Note that only (3) and (5) are independent on a specific project, and (3) can be said a consequence of (5). Therefore it is deducted that (5) is worth studying.

Human Computer Interaction

According to wikipedia, human computer interaction, also known as the study of human interface, is defined as the study of interaction between people and computers. In other words, human computer interaction is the combination of computer science, behavioral sciences, design and several other fields of study. The goal of HCI (Human Computer Interaction) is to improve the interactions between users and computers by making computers more usable and receptive to the user's needs.

I think that the biggest challenge of this field is how to evaluate the goodness of a given hypothesis. We cannot deductively prove the new theory certainly makes a system more usable easily. We cannot numerically measure how the new theory certainly improved the usability easily.

Programming Language as Human Computer Interaction

Remember the conclusion of the reason why we use a specific programming language, which is previously described: "because the syntax of this language is good." Here we have to consider how to evaluate the goodness of the language. It is difficult for language designers and users to objectively explain how good their language syntax is. This circumstance is highly similar to the issue of HCI.

For example, some people agree the following example: Ruby is better than Java because of the simple "Hello, world!" sample obviously.

# Ruby
puts 'Hello, world!'

/* Java */
class HelloWorld {
  public static void main(String argv) {
    System.out.println("Hello, world!");

It is easy for me to disagree the opinion. I don't think I have to declare the reasons here because you can presume easily.

So, how can we evaluate the goodness of language syntax without any controversial counterargument? What points of view are desirable for the purpose? This issue is worth studying.


Programming language has aspects of the study of human computer interaction. I showed only the importance of syntax as one of aspects, but there are some other features include being able to complete by editors and type system for human aid. It turns out that it is good to improve it with the similar ways of previously used in HCI studies.

Other Miscellaneous Comments

According to ACM, HCI is defined as "a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them." In short, HCI is for implementation of interactive computing system. Whereas my view on this entry is for implementation of implementation of interactive computing system. It can be said as higher order HCI.

1 comment:

  1. I was also prototyping that too. My prototype has extensive autocomplete feature and semi-graphical command line.

    It will be awesome if a graphic software has it. (GIMP already have it)