
Research Shows All Our Mainstream Programming Languages Are Counter-Intuitive [pdf] - fagnerbrack
http://alumni.cs.ucr.edu/~ratana/PaneRatanamahatanaMyers00.pdf
======
fagnerbrack
TL;DR-ish

Here are the things I personally learned from this:

1\. Event-Driven thinking is natural to the human brain, more than imperative.

2\. “unless” at the end of a sentence is not that bad. That’s mind-blowing
cause I don’t have a Ruby background and I always thought unless was the same
as “not not true”, but it isn’t. It depends(tm) how it’s being used.

3\. Loops are hard to understand over collections. Nothing new here I guess,
that’s why we abstract.

Please point out anything I missed or if I got something wrong.

------
soulblaze
I just wrote a C# interpreter in 800 lines, here
[https://github.com/soulblaze1/cs_interpreter](https://github.com/soulblaze1/cs_interpreter)

The purpose of it was initially to try ideas like rewinding code when the
program at runtime (with its data) was badly formed.

The main problem though with conceptualization (and you have to be a
philosopher to get to grips with the conceptual nature of reality) is that it
is never bound up in schema. Schema (like a page of code) is what you end up
being imprisoned by. The evidence of conceptual reality can be found in that
you need to hold the whole program in your head at once (it's a concept); the
more detail it has and the more complex the overarching overview is, the more
you are taking on to try to cater for different eventualities.

And it's these eventualities that your program schema (the how everything
interrelates and links up) focuses on, which are what imprisons you. Schema is
content as well as form.

If we take a cross-domain analog here, we can jump across to religion.
Conservative Muslims conceptualize the world and the reality around them based
on the god Allah and what he wants, and what he thinks is right for women and
so on. The Muslim readers of the Quran agree that they are reading the literal
word of god. This is a problem of poor conceptualization: poor thinkers cannot
escape the first overarching world narrative they are given. That's why they
have those conservative religious views. If they were rational, they would see
beyond it, and thus they would be incapable of holding irrational views in the
first place. Worldview is never "additive", it is conceptual.

You have to read about Ontological Mathematical Illuminism to go further in
what I am trying to convey here.

Programming suffers because, in communication and in thought, we use what
scientists call "brain language", rather than just the words we use. For every
sentence there are many dynamic, revolving conceptual formulations we are
doing -- that's why you can watch any political video, any economic theory
video or article, and over the same words you can come back later on, whether
years or minutes, and you will think differently because your overall
conception of reality has changed. You are conceptualizing reality differently
(this is the meaning and the constitution of bugfixing and all scientific,
psychological and rational problem-solving).

Programming is about what you want to do and form and achieve, which will
always be fastest in your head. It changes dramatically and significantly,
particularly as you move onto new content. This problem will never be solved,
because what we express conceptually in abstract -- such as the type of people
we would like to meet, which you will notice applies to an ideal partner,
friend, and their parents, but is never a concretized thing, and cannot refer
to only one individual person in particular, and yet it exists! -- remains
beyond words, schema and existing best practices' dogma. We use domain
knowledge but we all conceptualize differently.

One way to radically simplify programming is to simplify the schema so it's
much more "flat" and pre-packaged based on pre-known use-cases which can be
provided in advance, being able to assume most things. Meaning for example,
anyone who wants to make any website at all, could use a government-led
venture's components, and these would be maintained as a new national or
international standard with reasonable utility for all, and put into law for
major 3rd party sites to support the interoperation between (like payment
processors). That is one way to push a social principle (like Hitler did) by
promoting it in priority. The problem with this of course, is that the world
isn't about for example, everyone having such specific access to technology
like that. So, it's "unnatural" and an imcompossible, impractical idea to
suggest that everyone else do what you happen to want. So how do we square
different priorities of society, and find how to best optimize society?

I covered an overview of the world's problems here:
[https://medium.com/@abraxian/thinking-is-everything-a-
bright...](https://medium.com/@abraxian/thinking-is-everything-a-bright-
future-means-clear-thinking-2d16a0433954)

In terms of general programming, you are just not going to get away from the
problems of expression. Expressing thought is always going to be complex and
it's always going to force you to fold and unfold different points of
interdependency. Certain languages and constructs offer checks and balances
for this, but ultimately it's about your own understanding i.e.
conceptualization of what the program as a whole is doing -- you will never
escape this.

What kind of programming use-case are we talking about again? Because
industry, and standards and products/services, shift and change. If you want
to innovate, you have to be able to accurately conceptualize. And then,
programming in general seems to have the magic of providing forever-solutions
for everyone in the world. But programming is also autistic. It's not actually
solving the big broad issues of the world. All programming is actually a
small-world, autistic selfish version of interacting with society. It's
focusing forever on small problems, not big problems. The intuitive proof of
this is that programming in the main hobbyist sense, would be best pursued
when many more people can take it up -- when society's major problems can be
fixed, and this starts with much clearer accurate thinking and intuiting about
all of society and its systems. The real optimization, away from the small
world of the individual, is real true radical leveraging of human ingenuity --
true social revolution in the revaluing of key ideas, ideologies, ideations
and conceptualizations -- changing how we think; transcending the old human
models of conduct.

In terms of simplistic expressions for computer programs, the vast majority
indeed can be made simpler and pre-packaged. That all relies though on having
highly logical, intuitive individuals run the project -- the ultimate human
project being super-smart goverment. If you don't have a rational government,
you are bound into the irrational, predatory-capitalist, right-wing
selfishness megastructures within that society you live in. If you don't
interact with the political community you live under, you won't achieve
anything to begin with no matter how perfect your code is.

In the main, we are now seeing an escalation of the world's biggest problems
(putting the wrong people and the wrong political system in power) and one
purpose of this is it will wake up all the autistic individuals who aren't
rationally responding to it.

At the moment, there are several broad sectors of programming you could break
it up into - web, financial instruments, creativity, and the computer graphics
industry to name the popular ones. From there you have a lot of technically
innovative products such as they use in the movie computer graphics industry
for example. Depending on issues of interoperability and dependency, these
projects and their owners aren't willing to shift over to a new.. what? What
kind of programming language could justify people switching over? It would
have to be the ultimate programming language. But to think, we already have
our minds. We can already instantly reform our conceptions of things to
elucidate on things we know about, and to learn.

Unreal Engine 4 didn't use C sharp.. why? Concerns about speed. Every industry
has its own complex agenda to push. They have bugs they produce and will never
fix until their attention is brought to it via intrinsic motivation. All
companies and businesses have agendas. A super-smart government could only
lead in terms of the fidelity and sophistication and conciseness of newer
technology. For that, you need the absolute smartest programmers who have very
little trouble conceptualizing broad-phase concepts and workings of the things
they understand. The world must become led by experts, there is no other way.

