What are the advantages/disadvantages of uLisp vs C/C++?


A visitor to my electronics blog, Technoblogy, recently asked this question, and I thought it would make a useful topic for discussion on this forum.

To make the question more targeted I’m going to assume we mean:

What are the advantages/disadvantages of uLisp vs C/C++ for developing applications on microcontroller boards for embedded applications?

Here’s my initial list of pros and cons:

Advantages of uLisp

  • Easier to prototype ideas. For example, you can use functional programming to solve problems that are harder to express using imperative programming.

  • Higher-level constructs mean that you can often achieve the same result with a shorter, simpler program.

  • String and list handling makes some types of problem easier to solve.

  • No need to recompile between changes to the program, making development quicker. For example, you can type a digitalwrite command in the Serial Monitor and see an LED flash immediately.

Disadvantages of uLisp

  • Slower, because it’s an interpreter, so applications requiring microsecond timing aren’t practical.

  • There’s a memory overhead due to the uLisp interpreter.


By the way, this is another post relevant to this question: