Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Originally posted by Mapraputa Is:
[...] but I agree that it would sound better in your variant.
Well, my experience seems to be radically different from yours
Not really. I was talking about my experience in American college. My education in Russia was very different, and one thing I like about it (there is exactly one thing I like about it, no more ) is that they started from Assembler - at least some base to build knowledge on. Perhaps not the best, but at least something. Here in USA they learn products! They do not learn set theory - Ok, but they do not even properly learn SQL - they learn Oracle! They do not learn REST - Ok, they learn some HTML and then they move to FrontPage! This is very practical approach, I agree, and perhaps it helps students to find a job, or I would rather say, it used to help students to find a job, and that they do not see the forest for the trees - who cares...
BTW, I doubt that many of the current experienced OO advocates are influenced by the educational system in the way you describe - many of them are in software development for decades and I would be surprised if OOP was a main focus of their early education...
Experienced - no, but I got an impression that an average software developer isn't too experienced. I can be very wrong here, because I do not have any valid statistics.
Well... Everything is possible if we add "the small word "might", but it would be nice to see some reasons behind such addition...
This is an interesting question: how well programming language abstractions fit a human mind? I read a lot about "expressive power" and other math-related stuff, but nothing about whether it is "natural" for programmers to think in these abstractions or not.
Possibly.
What should we do about it?
Certainly - if distribution were connected to quality at all, Smalltalk would already have taken over the world...
This is another important question! Frankly, I do not know what we should do, I am trying to spread links about alternative POVs all around the Ranch, start discussions, review weird books etc. The marketing machine is doing its job anyway, but there is always some hope...
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Originally posted by Mapraputa Is:
[...] I passionately believe in a value of "objective" metrics, so when Ilja said "When emotional votes don't motivate you to try something which might make your life easier, it's your problem, not mine" I was almost mad.
I do not know what kind of miracle it was, when later I was suddenly able to see things from his POV.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Originally posted by Mapraputa Is:
This "topmind's" idea looks like a good explanation of my incompatibility with OOP:
"LISP came closer to the right idea by treating code like data instead of data like code, which is what OO does wrong."
This is my deep believe that data is more fundamental and far more important element of reality than code. When OOP marries these two it undeservedly equalizes them in rights.
With a data model we have a clear and relatively straightforward model of reality. "Entities", relations between them, "no entity without identity"...
OOP's class structure is a mixture of entities from domain and OPP's own artifacts (aka patterns), which are nothing but implementation details. Why to mix these two
completely different fields?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Mapraputa Is:
Now how to reuse already built abstractions? I doubt that there is a radical difference between SQL and OOP languages. Essentially, the process is the same: modularization - increase granularity level 2) including a module 3) possibly overriding it with one you need - this mechanism works even for DTD. If the current version of SQL doesn't provide such a mechanism, it' very sad, but this is because the current version of SQL doesn't provide them, not because it is impossible.
And it look to me that SQL statements are easier to override, because they do not have "private variables", they do not have inner state, they are stateless.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Mapraputa Is:
But you probably mean other things, like easy of maintenance, extensibility etc. Do you really believe they cannot be measured?
What is your educational background, by the way? Computer science? Something else?
I am trying to figure out why this idea about "absence of metrics", "code smells" (brrrr...) etc. looks so appealing to you
Well, perhaps you are *still* mad...
Well. Not at you.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Originally posted by Frank Carver:
Lisp, on the other hand, by explicitly treating code as data, has a different effect. A Lisp program can easily become dependent not only on the structure of the data, but on the structure of the program itself - the antithesis of decoupling!
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Originally posted by Mapraputa Is:
[QB]2.4.3 Data-Directed Programming and Additivity
"What we need is a means for modularizing the system design even further. This is provided by the programming technique known as data-directed programming. To understand how data-directed programming works, begin with the observation that whenever we deal with a set of generic operations that are common to a set of different types we are, in effect, dealing with a two-dimensional table that contains the possible operations on one axis and the possible types on the other axis.
Data-directed programming is the technique of designing programs to work with such a table directly. Previously, we implemented the mechanism that interfaces the complex-arithmetic code with the two representation packages as a set of procedures that each perform an explicit dispatch on type. Here we will implement the interface as a single procedure that looks up the combination of the operation name and argument type in the table to find the correct procedure to apply, and then applies it to the contents of the argument. If we do this, then to add a new representation package to the system we need not change any existing procedures; we need only add new entries to the table."
Table-oriented programming!
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Mapraputa Is:
"placing an isolating layer of code around the data" does contribute to "OOP treats data like code".
I was amazed how all what I naively believed to be inherently OOP's features - Abstract Data Types, message passing, method dispatch can be much clearer and easily achieved in Lisp - with a half of page of code! And without any superfluous concepts: classes, objects, abstract classes etc. - only lists!
If you have time, read this book: Structure and Interpretation of Computer Programs
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Mapraputa Is:
Symmetrically, I understand if Ilja isn't particularly excited about the Relational Model and I wouldn't call it "religious fidelity to OOP" or something. What made me use this word is when he said few times that one needs to "experience" OOP to be able to understand it.
The second moment when I had this impression was in another thread, when someone said "My eyes have been open" - again, I would not use such expressions.
The opposite, when some concept apparently exhibits too much of explanatory power, then I feel guarded, chances are it's not a science.
Analogies: as always, it depends. They *can* be useful; after all, how can we learn something new if not through comparison to what we already know?
Now, to contradict myself... Religious analogy: in my application it isn't even an analogy, I suspect what people feel about OOP and so-called "religious feelings" are the same, or at least they have a common root. This can be a wrong statement, of course, but it isn't an analogy.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Which is one of the reasons that Lisp is so popular in the AI world.Originally posted by Frank Carver:
Not quite. In Lisp (and several other languages and language groups) programs have direct access to the code (even the code which is running at the moment). Most programming dogma rejected self-modifying code a long time ago, yet it is often held up as one of the key features of Lisp.
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Politics n. Poly "many" + ticks "blood sucking insects". Tiny ad:
Gift giving made easy with the permaculture playing cards
https://coderanch.com/t/777758/Gift-giving-easy-permaculture-playing
|