Do functional languages cope well with complexity? -


I'm curious to compare "traditional" languages ​​such as functional languages ​​like C # and Java for large programs (normally ) Do the flow of the program become more difficult to follow faster than the use of a non-functional language?

Thanks

Is the flow of the program fast Is there any non-functional language used?

"Program flow" is probably a misconception, to control a large functional program, control flow can become baro because high-order functions occur, but these are generally easier to understand Because there is rarely a shared state of worry, so you can think of logic and result. Of course, my experience is that I find it easier to follow aggressively functional programs than an aggressive object-oriented program where parts of the execution of several classes are disturbed. And I find it easier to follow the program written with high-order tasks than dynamic transmissions. I also see that my students, who are the representatives of the entire programmers, have to face difficulties with both legacy and dynamic dispatch.

Do other issues or things consider writing a large software project using a functional language?

Important thing is a good module system here is some comment.

  • The most powerful module system designed by Matthew Flat and Mathias Felsen, unfortunately, there is a steady type of deficiency in this very powerful system, which provides me a great help for programming is.

  • The next most powerful system is standard ML module system, Unfortunately standard ML, while very expressive, also allows many suspicious constructs, hence the actual mess for an amateur To do this it is easy. Apart from this, many programmers find it difficult to use standard ML modules effectively.

    Objective Camel module system is very similar, but there are some differences which reduce the worst outcome of standard ML. Languages ​​are really very similar, but the CML styles and idioms are likely to be very low that initial people will write crazy programs.

  • The least powerful / expressive module system is the functional language Haskell module system. There is a serious flaw in this system that there is no clear interface , so most of the cognitive benefits of having a module have been lost; Another sad result is that the Haskell module system provides users with a serial name space , While the use of this name's place ( makes importable, , if you are in the insider) is often deprecated, and many Haskell programmers write code Ase that everything was in a large, flat namespace.

  • , I probably take standard mL, and I use the module system to be very strict I will establish a programming convention. (I.e., clear signatures everywhere, : & gt; , and anytime, never used any of the open .) Standard ML core language for me The simplicity of comparison is more than that of Okamel) and the more functional nature of the standard ML Basis library (compared to the facade) is more valuable than the best aspects of the Okmell module system.

    I've only done a huge job in the Haskell program, and when I got very happy (and continued to do) in Haskell, I did not really have to sign an obvious sign.

    Do the functional language cope well with complexity?

    Make me understand the complexity of the ML module and module type (both standard ML and objective CML), to understand the complexity, and to keep the exact firewall between different parts of large programs valuable Makes tools. I have had good experiences with Haskell


    Last Note: These are not really new issues, Reducing system in modules with different interfaces checked by the compiler, Ada, C ++, CLU has been an issue in Modula-3, and I am sure that the main advantage of standard ML or Camel in many other languages ​​is that you are being examined with a clear signature and modular type (C ++ community turnkey Has been struggling with templates and concepts). I suspect that these issues are timeless and are going to be important for any major system, even then the language of implementation.


Comments

Popular posts from this blog

sql - dynamically varied number of conditions in the 'where' statement using LINQ -

asp.net mvc - Dynamically Generated Ajax.BeginForm -

Debug on symbian -