The end to all language wars and the great unity API to come!

Chris Angelico rosuav at gmail.com
Mon Jul 4 19:19:24 CEST 2011


On Tue, Jul 5, 2011 at 2:35 AM, rantingrick <rantingrick at gmail.com> wrote:
> I believe (unlike most people) that nature is striving for perfection
> NOT for diversity. Diversity is just a byproduct of feeble attempts to
> GUESS the correct answer. Here is a thought exercise for the advanced
> reader...Which is more efficient; Numerous groups working to create
> languages that satisfy their selfish needs OR one group of all the
> bright minds working to destroy multiplicity and bring about the one
> true language that meets the needs of productivity?

You assume that there is one right answer. I'm not sure whether this
is provably wrong or just utterly unfounded, but I see no reason to
believe that it is so.

> In order to achieve perfection we must propagate unity within the
> system and we must destroy multiplicity with a vengeance. We must
> unite to defeat multiplicity and in doing so we create innovation.
> That is the job of intelligent agents, to BRING ORDER TO THE NATURAL
> CHAOS OF THIS UNIVERSE!

You join a long line of Lawful Evil villains who have made that
statement. Look at such as Darth Vader, is that your goal? Bringing
order to the universe even if it means choking it to death? Yes,
humans will tend to bring orderliness to what used to be chaotic. But
this cannot be the ultimate goal; order is but a means to an end. What
end? What IS the end of programming? Is it not productivity?

> What do you think will be the eventual outcome of the human existence
> Alex? Since you have no imagination i will tell you, a singular
> intelligence. However an intelligence that is the product of many
> "intelligent agents". A unity intelligence if you will. Just think of
> it as a botnet alex, i am sure you have plenty of experience in this
> area!

Thanks. Mind if I borrow your crystal ball for a moment? Seems to be a
good one, since you can see *with certainty* the eventual outcome of
all humans. I can't help thinking, though, that you're aligning
yourself with villains again - in this case the Borg.

> Do you think that if we combine all the worthwhile attributes of the
> high level languages that somehow everyone is just going to accept
> that forever? No, of course not. HOWEVER instead of splitting off into
> sects (and damaging our hive mind capabilities) we need to focus our
> efforts on one goal... CREATING THE BEST LANGUAGE WE CAN AT ANY ONE
> TIME IN HISTORY... and we will all learn TOGETHER not APART. Diversity
> only propagates multiplicity and slows our evolution Alex. It is
> selflessness on a grand scale.

Once again, you assume that there is one ultimate language, just
waiting to be discovered/developed. One language which will be perfect
in every way, for every purpose.

> Why can they not explore within the hive mind? Why must they hide
> their explorations from the greater group. SELFISHNESS

If they explore anything that the whole hive isn't doing, they're
making that disagreement again. Suppose we had that one language that
I described earlier - the "clean slate representation" (CSR, but
that's just syntactic sugar - if you'll pardon the awful pun) one
where the only thing you have is "define operator". We then, as a
single unified collective hive mind unity, develop a Standard Library
for this language. Putting "#include std" or "import std" or whatever
at the top of your code gives you a fairly normal set of things you
can do. Well and good; we all use the same language. As soon as anyone
explores anything within that language that hasn't yet been done, he
has created a new dialect - a new language, if you will. It's right
back with what you are ripping on, except that we now call it the same
language.

> We should have nailed down syntax and semantics long ago alex! This
> should have been step one. No instead we have groupA, groupB, and
> groupC still fighting about what is best for their selfish needs
> without concerning themselves wit the big picture. It's not what is
> best for ME, NO, it's what is best for US.

Actually no. It's still about what's best for ME. I can't think of
what would be best for you - you're the best one to think about that.
Open source actually encourages and allows selfishness in ways that
are far too awkward else; groupA can code to groupA's needs, then
groupB adds code to that to make it do what groupB needs, and offers
their enhancements back to the world, meaning that groupC need only
code what groupC needs.

>  * What syntax is most widely intuitive?
>  * What semantics are the best for productivity?
>  * etc...

These are subjective questions. I happen to be able to work very well
with a bracey language, but other people can't. To me, Pike was
incredibly intuitive, because it has so many similarities to languages
I already know. To someone who knows only lisp, that would not be the
case. Incidentally, your questions cross-multiply too: What semantics
are more intuitive, and what syntax is best for productivity? Four
good questions.

> Yes, and i agree. But instead of learning in small groups we need to
> learn together.

Do you mean literally? Huge classrooms good, individual/small-group
learning bad? That's provably empirically wrong. But if not that, then
what?

> Of course we are going to make mistakes along the way.
> Heck we may even have to re write the whole spec a time or two.

Yep, and code will be written for older versions of the spec. The way
you're talking, it'd likely be a LOT more than Py2 vs Py3, with lots
of installations and lots of programmers preferring to stick to the
old language. Or are you planning to somehow force everyone to upgrade
to the latest?

> But i
> would argue that the chances of making mistakes decrease as the number
> of agents increase. I dunno, have you ever heard of a little thing
> called Open Source Software. Where people from all over the world
> maintain a piece of software. AMAZING HUH? Just imagine if we combined
> all the best people from all the current languages. There is your
> diversity Alex, however sadly, you have no imagination to see it.

I'd say all the best people for Language X are already there. And all
the best people for Language Y are already _there_. There's a lot of
people who would be good in multiple communities, and guess what?
They're already IN multiple communities. These things have a way of
sorting themselves out.

There cannot be one perfect language for everything, unless that
language is so flexible that it is nothing. I retract my earlier
statement that the "universal language" is C; no, it goes back
further. The universal language is a text editor where you write your
source code. You then run it through the universal compiler called
"make", which figures out what to do with your source. You then run it
on the universal hardware... oh. Well, make can figure out the
hardware too, so we'll pretend it's universal. Is this one language?

At work, I have SciTE holding several files in separate tabs - they
might be C++, Python, Lua, Javascript, Pike, the Makefile, and a plain
text file where I keep my notes. SciTE edits all of them (although
it's less intelligent with the languages it doesn't know). In any of
them, I can hit F7 to compile the current file and deploy it to my
test-box. Does that mean they're all one language?

Different languages have different purposes. As I found out recently,
trying to use Python in a situation where you need to sandbox
user-supplied code is a bad idea; I ended up with a p0wned test-box
and a lot of egg on my face, and it's only because the Python
community is intelligent adults that we didn't have some rather nasty
consequences. (That box failed the test, but it was an incredibly
successful test. We learned the painful truth that we needed to hear.)

Has anyone ever used a very-high-level language (like Python or Ruby
or Lua) to write, say, a video driver? There is a place for the
languages that take most of the work away from the programmer, and a
place for languages that basically give you the hardware and say "have
fun". There will never be a universal language that does both jobs
perfectly. *returns the crystal ball*

Chris Angelico



More information about the Python-list mailing list