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.