WALLACE LAGES
  • About
  • Projects
  • Ilusis
  • Research

Programming Languages II

10/24/2012

2 Comments

 

After some time doing only graphics and other high level stuff I went back to embedded programming. The first environment I got has only one type of variable: signed integer 16 bits. No floating point support. After a some months the "cool" feeling turned into "anger" than into "hate" and then to "suffering". The program did work with all the fixed point tricks but the sensation that a hidden bug will grab my leg at any moment remains.

Computer languages are currently the most powerful way to interact with computers, however,  they are extremely complex. There are some variation among them, but even those languages considered to be high level, are still too complex to the uninitiated. They are really developed with very few people in mind: those who learned how to think like computers. Imagine if everybody could instruct the computer to do whatever it wants, not only what was pre-programmed for them ? We would need a radical change of what it means to program.

Recently I found a interesting discussion by Bret Victor about how our current programming model is flawed:

  • Programming is a way of thinking, not a rote skill. Learning about "for" loops is not learning to program, any more than learning about pencils is learning to draw.
  • People understand what they can see. If a programmer cannot see what a program is doing, she can't understand it.
Thus, the goals of a programming system should be:
  • to support and encourage powerful ways of thinking
  • to enable programmers to see and understand the execution of their programs

He goes on several points that shows unbelievable problems with programming, that we simply got accustomed with.  It is important to note that programming encompass not only the language, but also  the development environment. In Bret's words:

A programming system has two parts. The programming "environment" is the part that's installed on the computer. The programming "language" is the part that's installed in the programmer's head.


Perhaps in the future we will be able to create user interfaces for programming that will be so natural that people will not even notice that they are programming at all. Advances on natural languages an artificial intelligence will certainly take its part. The OS will evolve into a programming environment so powerful that will amplify everyone capacity to think and to dream.

For those interested, I highly recommend reading: Learnable Programming
2 Comments

    Wallace Lages

    Assistant professor and entrepreneur.

    Tweets by @wallacelages

    RSS Feed

    Archives

    May 2015
    November 2014
    October 2014
    September 2014
    August 2014
    December 2013
    November 2012
    October 2012
    August 2012
    April 2012
    January 2012
    November 2011

    RSS Feed

    Categories

    All
    Art
    Entrepreneurship
    HCI
    Innovation
    Science
    Technology

  • About
  • Projects
  • Ilusis
  • Research