Previous | Next --- Slide 16 of 69
Back to Lecture Thumbnails

Where do functional languages go in this picture? I would think it would fit on the side with C/C++ (between high performance and completeness). Although C/C++ can probably produce better performance (as suggested in slide 5), it is easier to write concurrent code with a functional language.


Would hardware description languages be considered domain-specific? I suppose they could be, even given such a large domain. Hardware description is almost a different programming paradigm all together.


Also of note is that for many languages, APIs exist to try to reduce the part of the triangle that it's weak in. For example OpenMP tries to increase productivity of parallel code for C/C++ via simple constructs like parallel for's.


This kind of property of only able to take two over three reminds me of CAP theory in the context of distributed computer system. What is normally the way to prove this theoretically?


@bjay You raise an interesting point. At one end of the spectrum, HDLs can be used to improve the performance of a DSL, at another end, it can itself be used to implement the DSL in hardware. However, the productivity of using a HDL is pretty low.


@williamx I think it depends on the functional language used. Languages with rich type systems like ML/Haskell would likely be close to c/c++, but some dynamic functional languages such as Lisp might fit better with the scripting languages.


@williamx I believe functional languages would lean more to C/C++ side. Most common functional languages (such as SML/Haskell/OCaml) are extremely powerful and you can develop nearly anything with them but the learning curves for functional languages are extremely high.