175 karma · joined December 10, 2014
People would like to hunt and gather, but people will start farming eventually
There is an easy counter: https://www.nature.com/articles/nature.2015.18248
The other two still holds for me though. But Big Five is not any better IMHO, it can be a trait for psychological health, but definitely not for personality.
There are pragmatic reasons as well. For me, people spend a lot to be happy like buying luxurious stuff or go to the movies/good restaurant. Saving people makes me happy. I am willing to pay for my own happiness.
The only way for me to make it consistent is that it is a relative self-reflective view that "I am also part of the culture and this is destined to happen".
What this refactoring essentially do is to segment code in natural language blocks. For people who process things in natural language concept blocks this makes it easier to get the general idea of how the function works at a glance and diving in the implementation of the inner functions later.
This will of course introduce the overhead that you have mentioned that will increase the time for you to process the detailed flow of code. But as far as I can see it is only an overhead and by spending some time (or smart IDE or a pencil) there will not be a fundamental problem.
For people that are good at reading raw code without the help of concept-based segmentation, they may not experience the benefit but only the overhead.
As you said, there are a lot of object systems that are different, and the difference matters. Having inheritance or not matters. I was just making examples to show that things are different.
We all know that C++ concepts != go/typescript interfaces != Java/c# interfaces != Haskell type classes (c# concepts) != rust/scala traits.
Try to explain that using "CS literature", maybe a lot of language designs don't have a word yet made for that. Yep there are Subtyping, Bounded quantification, Ad hoc polymorphism, Row polymorphism, but still not enough to tell all of them from each other.
But to anyone in the community, people all know that they are all not Classes and what make them special is important. It is quite clear, but why don't you get that?
The concepts CS literature are quite trivial and people can spend a few weekends to learn, or maybe another few for type rule syntax or a few others for basic category theory to understand them in a more intuitive way. But the real problem of making a good language for some applications is still there and much more complex and difficult. And maybe current literature are not enough for that.
The elites will never dictate the words, the people will pick up whatever they want to express their knowledge anyway, as we know of what happened in history.
user_name + ": " + attr1 + "| " + attr2 + "\n"
is more difficult to parse by eyeball for me then
concat(user_name, ": ", attr1, "| ", attr2, "\n")
def begin(\*args):
return args[-1]
begin(
func := lambda x, y: begin(
z := int(input()),
x + y + z
),
func(1, 2)
)| but using different syntax when doing different things can make a lot of sense.
For C users yes, if we step back a little bit, for English users yes, but for people with other language background it may not hold. Every pieces of added syntax will utilise some human priors that may be specific to someone. But some really minimal systems can be grasped by every background, albeit taking a very long time.
Classes binds data and functions together, and object systems supports inheritance. These are some of the things that some people don't really like, but you may not care. People sometimes care about syntax as well, writing "Class" is also part of the experience of using the language.
We have different words in the language for a purpose, that's my opinion.
Conversation is mean to have a deliver and receive end, both side can have problems. "you miss the point" kind of push all the responsibility to the listener. But why you have such a strong confidence about your expression?