OOP discussion with some history (quotes by Alan Kay who was

Posted by agent_008_nl on 29-Oct-2016 00:33

All Replies

Posted by scott_auge on 29-Oct-2016 08:59

Another chance for argument.  Yay.  Not.

Posted by agent_008_nl on 29-Oct-2016 12:44

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.

Posted by marian.edu on 31-Oct-2016 14:58

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 :)

Did had a session at EMEA PUG Challenge this year that probably many took as a rant agains OOP and frameworks and up to a point that is not totally untrue, moving from shared variables to static properties just doesn’t make it right in my eyes and ABL OOP is often bloated with state information to a point where is very hard to find any method that will constantly return the same result given a set of input data.

Have to admit didn’t get the time to check-out a pure functional language till now but 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?

Marian Edu

Acorn IT 
+40 740 036 212

Posted by scott_auge on 31-Oct-2016 16:57

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.

Posted by marian.edu on 01-Nov-2016 02:26

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 :)

My interest, probably unlike Stefan’s, is not in theoretical part of Lambda Calculus nor statistical computing, just found that little rope of functional programming be one that worth following as much as possible - https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming

Marian Edu

Acorn IT 
+40 740 036 212

Posted by agent_008_nl on 01-Nov-2016 03:52

> 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.

Posted by James Palmer on 01-Nov-2016 04:15

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.

Posted by agent_008_nl on 01-Nov-2016 04:50


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.  

Posted by agent_008_nl on 01-Nov-2016 05:45

Here is an example of the use of recursion in elixir, and how f.e. map and reduce simplify recursion: elixir-lang.org/.../recursion.html. You can find some of these functions in javascript also (map, filter, reduce, fold):



Posted by agent_008_nl on 01-Nov-2016 06:54

> 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.

Posted by agent_008_nl on 11-Nov-2016 22:47


Here is a free course OCaml, not by the least: www.fun-mooc.fr/.../about .

On the elixir forum there seems to be a shift of interest in elm (functional language for the browser) to bucklescript that is a compiler which compiles OCaml into JavaScript  www.techatbloomberg.com/.../.

Posted by agent_008_nl on 13-Nov-2016 07:21

There are besides databases even filesystems (google filesystem f.e.) that work with immutable data:


Really, immutability changes everything.

Now how's that Scotty? :-)

This thread is closed