On Tuesday, 5 January 2016 at 23:14:27 UTC, thedeemon wrote:
On Tuesday, 5 January 2016 at 16:10:21 UTC, Jason Jeffory wrote:
Is it possible that one could develop or modify an existing
programming language that can adapt in such a way to provide
maximum unity between programmers?
What are the properties of the perfect language? To be able to
create it we have to know them.
Here are a few "laws" that I think it would have to have:
1. Grammar independence...
2. Platform independence...
Languages differences are far from just grammatic or platforms.
You seem to completely ignore semantics, and it's very
different. But most important, people are different and their
needs in different projects are different, so they need
different things from the language.
Alex wants to control memory allocation to the last bit and do
it manually.
Bob doesn't care about memory and wants a GC to clean things
up, don't make him think about all those free(), delete,
reference counts or whatever.
Charlie thinks in terms of for loops and bytes.
Dan thinks in terms of applicative functors and natural
transormations in 2-categories for the left Kan extensions of
his free monads. (yes, it's still programming)
Ellie wants dynamic typing.
Frank wants strong static types everywhere.
Gordon wants all his data to be immutable and all functions
referentially transparent.
Howard likes mutating data in-place. Allow him, and Gordon will
lose his ability to reason about the code.
Good luck making all these guys write in one language and
understand each other.
Talking about evolution. Did you ever see evolution leading to
consolidation into one specie? It works just the opposite:
different habitats are filled with millions of different
species. Survival of the fittest for each place == right tool
for each job.
Um, there is only one form of life, and that is life itself. You
are confusing variations as distinct entities.
One could have a solid(mathematical and logically provable(maybe
a turing machine on steroids)) that is provable to provide all
programmatic needs(in the computational sense). The grammar is
irrelevent. If Alex wants pascal style he uses it... if Joe wants
C++, he uses that. It doesn't change the language, only the form.
That was my point about the languages in my original post.
Semantics is the WHOLE POINT! It's not being ignored!! But until
people coordinate there efforts on the real problem a ton of
effort is wasted.
Just because Alex and Bob disagree on specifies means nothing for
the language itself. The language is suppose to be a living
breathing thing.
Take it like this: What if every human being spoke the exact same
language? No dialects, no semantical ambiguities, no illogical
arguments?
Would the world be a much more efficient place? Better? I don't
know. Maybe all the variations is important(it is in an
evolutionary sense), but many problems stem from people not being
able to communicate effectively. A lot of time is wasted arguing
about stuff or about misunderstandings... even if people don't
recognize it. Wars have been started over such things. It's
important enough to bring everyone together under a common
umbrella for humanities sake. Less wasted time, less pollution,
less anger, less unhappiness.
Computers are being an integral part of humanity... But as long
as we all speak different languages we will never be as one.
Computers are part of the story. They are evolving from us,
through us... And our mentality and approach to them will
determine how fast and how well this happens. But currently there
is so much bickering and wasted time over asinine(meaningless)
things. e.g., Using {} or BEGIN END is fucking absolutely
irrelevant, yet how many humans have wasted their time and others
fighting over such ignorant things? It's like saying one color is
better than another, or left is better than right, ford or chevy,
etc. It's meaningless.... except that in which ignorant people
make meaningful and spread it like a cancer that effects everyone
in untold ways.
How many programmers have wasted their life fixing bugs? Is it
worth it? I don't believe so(It may be necessary, but that's a
different question).
Imagine this:
1. A programming language that is syntax independent(essentially
an IL like basis... we already are starting towards that end)...
but imagine it being developed much further than it is now.
2. A programming language that everyone can extend to solve
problems. Not in a haphazard way, mind you, in a control and
focused way. If the language cannot do X, then it is extended to
do X. This way Alex can get what he wants. It can't be illogical
because the language is designed to be logical.
3. The only programming language in existence(because it solves
everyone's problems).
---Imagine what kind of power humans will have. Every minute
programming is a minute, not 1 second of programming and 59
debugging. The untold increase in efficiency would be astounding.
(One could argue in the same way about humanity how it treats
people, and all that. It is really an issue of unity and the
question is, Do you think that there is a theoretical unifying
programming language)