Selecting a powerful programming language for a project

I have an ill-defined project, whose precise definition will need help from powerful concepts provided by strange and/or powerful programming languages such as Haskell, LISP/Scheme, O’Caml, or Prolog.
To be fluent with such a language, I need to invest some time learning and mastering it. Only then will I be able to determine whether it is really useful for my project.

So my Wish of the Day for today is for a selection guide, which lists a series of questions about the project and then makes a reasoned recommendation for one of the powerful languages for that project. For example, if one of those languages is indeed beautifully abstract but is poor in having runtime libraries and does not provide for linking to alien libraries (imported from mundane languages such as C, Perl or Python), then the language is ruled out for a project, which needs extensive support for manipulating XML files, playing with sockets and doing direct file I/O.

Author: Omer Zak

I am deaf since birth. I played with big computers which eat punched cards and spew out printouts since age 12. Ever since they became available, I work and play with desktop size computers which eat keyboard keypresses and spew out display pixels. Among other things, I developed software which helped the deaf in Israel use the telephone network, by means of home computers equipped with modems. Several years later, I developed Hebrew localizations for some cellular phones, which helped the deaf in Israel utilize the cellular phone networks. I am interested in entrepreneurship, Science Fiction and making the world more accessible to people with disabilities.

2 thoughts on “Selecting a powerful programming language for a project”

  1. Pattern matching, with the following complications:

    1. General rules apply only most of the time, not all the time – there are special cases.
    2. Whether a pattern matches at one place depends upon the context (i.e. whether another pattern matches at another place).
    3. The system involves also human feedback – when mismatch occurs at one place, the human user adds a new rule which caters to this special case and other similar special cases.

    Think, for example, of retrieving a body of text and splitting it into sentences (taking into account complications due to quotes and text in parentheses (including nested quotes and nested parenthetical text (as in this example))).

    (http://livejournal.com/users/tddpirate)

Comments are closed.