(never mind the title of the article)
Another chance for argument. Yay. Not.
Rational, non-cynical arguments that are challenging and to the point I will (try to) react on. I don't see reactions of you in this category. I can understand you value being able to make a living with what you do, but find your reactions on challenging articles very poor.
"Proponents of OOP are arguing against reality itself, and they continue to do so, year after year, with an inflexibility that must have either non-rational or cynically financial sources. I’ve come to believe that OOP is now a “Zombie Idea”. I am borrowing the phrase from the economist Paul Krugman:
Zombie ideas — a phrase I originally saw in the context of myths about Canadian health care — are policy ideas that keep being killed by evidence, but nonetheless shamble relentlessly forward, essentially because they suit a political agenda." (see link)
That's my reply to all Scott Auge's here.
That’s an interesting read Stefan, way to long and a bit hard to follow given the ‘chat’ format but found it also to be funny (wizzdle) and does brings a couple of valid points about OOP and how that evolved… 4GL, like PHP, got that bolted on only recently and, while it still lacks few things any ’true OOP language’ has, everyone got into the bandwagon and seems to think OOP (ABL) is somehow inherently better than the ‘legacy' 4GL while I find it to be equally easy to write bad code in any of them :)
The mere fact that a database holds state - and the whole purpose of the ABL is to change state - and a complete lacking of understanding of Lamda Calculus on part of the article's writer, makes his argument sketchy applying functional programming to the ABL. But what do I know, I'm just a computational mathematician who has actually read a Lamba Calculus book. I don't see where this conversation can go anywhere.
Save the functional programming for R.
Well Scott, thanks for the info… guess I should have thought a database imply holding state, so that must explain the lack of determinism in almost every single function/procedure/method we find in ABL :)
> given your experience with 4GL would you say some of the principles of functional programming can be achieved in that realm , maybe even using the twisted object oriented paradigm?
First questions would be what is a pure function, second why would you mind using them and the third how. Some googling can help you to find answers, I just found this one: csharpdeveloper.wordpress.com/.../. Concerning OOP: sidburn.github.io/.../immutability-and-pure-functions.
This takes me back to my university days! We learned Standard ML (en.wikipedia.org/.../Standard_ML) as the first language we were exposed to.
I don't remember any of it though, save how powerful recursion can be in terms of writing complex code in a few statements.
Not every database works with mutable records. www.bioinf.uni-leipzig.de/.../hal8_submission_17.pdf and www.infoq.com/.../datomic-functional-database. Programming is about handling state, in functional programming this is done in a way that has pro's and cons. The pro's outweight the con's in a lot of use-cases I find. The ideas can be used in abl, to a limited extent, because support in the language is missing. In languages like java, C#, C++ support was added during recent years, not without reason. I am not advocating the introduction of this support in abl because I suspect it wil not return investment. I might be wrong, but an important sellingpoint for functional programming is that immutability makes concurrency less difficult (retrofitting concurrency in the abl seems to be a problem). Concurrency is one of the things that can make a difference in your application. www.drdobbs.com/.../240166688.
> My interest, probably unlike Stefan’s, is not in theoretical part of Lambda Calculus nor statistical computing
I'm not concerned with what you name here. I'm concerned with practice. Elixir/phoenix provide a development stack that can be used instead of the abl, for the same sort of applications. And more. No need of node.js for real-time things for example, real-time is enabled with phoenix channels, and in a much better way (it uses the erlang green threads: http://joearms.github.io/2013/04/02/Red-and-Green-Callbacks.html )
. Fault-tolance rates are incredible http://stackoverflow.com/questions/8426897/erlangs-99-9999999-nine-nines-reliability , that's very nice in practice. Further: github.com/.../why_elixir. Want to see hot-code swapping of a drone in flight (code used was in erlang, but elixir has this possibility also: it is built on the erlang VM)? www.youtube.com/watch
The link you provided is a good one.
Here is a free course OCaml, not by the least: www.fun-mooc.fr/.../about .
There are besides databases even filesystems (google filesystem f.e.) that work with immutable data:
Really, immutability changes everything.
Now how's that Scotty? :-)