This is a series of blogs where I collect some interesting programming concepts, new things I learn
As LabVIEWers we’re familiar with few programming paradigms like object-oriented (OOP). Have you heard of functional programming?
Imperative Programming changes the state of the program. OOP is an imperative programming
Declarative Programming: doesn’t change the state of the program. Functional is a declarative programming
Wikipedia has more details on the programming paradigm
2 main principles of Functional Programming
- Don’t mutate. Don’t change the state of the program, whatever data comes into the function make a new copy of the function and return the new data without modifying the original data.
- Keep the function purely independent ie., even if you want to play with the global variables, then pass that global variable as arguments to that function .. this keeps the function purely independent and the results from the fund will be repeatable at all time. This is good for testing too.
In general we do the mix & match of both in a all kind of the programming language, at least in the application layers though not in the library layers. I imagine libraries would be clean only when it’s functional in nature.
I think the reason for most modern browsers consuming lot of memory is that these paradigms followed in the modern websites, which keeps generating the new copy of the existing data. Is that so? What’s your opinion?
Ajay is a professional developer and architect of NI-LabVIEW applications with extreme interest in getting the hardware connected to LabVIEW and automating the stuff. Recently he is also putting his hands in NI-TestStand to get very dirty on it. He is also a good mentor for the various interns in his career. He is ready to help the people in techie roles.