Discussion on:

Message 3 of 5
0 Votes
+ -
Interest of functional languages
All functional languages have the interest that they can naturally be parallelized (this is not true of imperative languages like Basic, even VB#)

Pure functional languages include the good old-fashioned Lisp (even if people hate its parentheses), or the excellent Eiffel.

Those languages (based on the very strong theory of lambda calculus) are also excellent candidates as scripting languages, mixing the interest of compilers (for performance) and interpreters, plus native support for reflexion and conservation of the semantics of all "values" (i.e. they are strongly typed), and the versatile reuse of existing algorithms for many kind of "data" or execution contexts, allowing true generalisation (and true object-oriented type inference and complete polymorphism, without the cost implied by arbitrary choices of execution scheduling models hardwired in the written source code).

These languages have a natural system for eliminating dead-end code (that is not needed), they allow much more optimizations when performance is seeked.

They also simplify a lot the parallel or multithreaded programming (less mutex or critical sections needed as well, which means better performance as well, and where they occur, the synchronization is part of the job of the runtime which can create more fine-grained mutexes or critical sections only at the smallest machine level to interface the software with the various hardwares executing it).

Let's forget imperative languages. F# will fail, but Python, Java will continue winning. Or even Javascript which is not really imperative and has now a functional definition with natural reflexion capabilities, except that it still lacks a system for asserting postconditions/invariants, but it has at least a strong system for preconditions) : all the impressive progresses of performance made in Javascript today are related to its functional definition, and many more progresses are still possible in Javascript engines.

Those programmers, that Microsoft wants to interest to F#, are Python programmers, and Javascript programmers but I doubt it is sufficent to convince them : the economic model of Microsoft does not like languages that cannot be precompiled, because Microsoft sells compilers and optimizers, and does not want to invest more in runtime execution machines featuring compiler and reflexion capabilities directly when it is used as if it was an interpreter. By selling compilers and development platforms, Microsoft promotes its own API, its own OS, its own view about how to develop and deploy any application, and sells its inline application distribution system (e.g. the online Windows 8 application store)...
Posted by PhilippeV
27th Nov