Problems of Symbol Congestion in Computer Languages

X

Xah Lee

might be interesting.

〈Problems of Symbol Congestion in Computer Languages (ASCII Jam;
Unicode; Fortress)〉
http://xahlee.org/comp/comp_lang_unicode.html

--------------------------------------------------
Problems of Symbol Congestion in Computer Languages (ASCII Jam;
Unicode; Fortress)

Xah Lee, 2011-02-05, 2011-02-15

Vast majority of computer languages use ASCII as its character set.
This means, it jams multitude of operators into about 20 symbols.
Often, a symbol has multiple meanings depending on contex. Also, a
sequence of chars are used as a single symbol as a workaround for lack
of symbols. Even for languages that use Unicode as its char set (e.g.
Java, XML), often still use the ~20 ASCII symbols for all its
operators. The only exceptions i know of are Mathematica, Fortress,
APL. This page gives some examples of problems created by symbol
congestion.

-------------------------------
Symbol Congestion Workarounds

--------------------
Multiple Meanings of a Symbol

Here are some common examples of a symbol that has multiple meanings
depending on context:

In Java, [ ] is a delimiter for array, also a delimiter for getting a
element of array, also as part of the syntax for declaring a array
type.

In Java and many other langs, ( ) is used for expression grouping,
also as delimiter for arguments of a function call, also as delimiters
for parameters of a function's declaration.

In Perl and many other langs, : is used as a separator in a ternary
expression e.g. (test ? "yes" : "no"), also as a namespace separator
(e.g. use Data::Dumper;).

In URL, / is used as path separators, but also as indicator of
protocol. e.g. http://example.org/comp/unicode.html

In Python and many others, < is used for “less than†boolean operator,
but also as a alignment flag in its “format†method, also as a
delimiter of named group in regex, and also as part of char in other
operators that are made of 2 chars, e.g.: << <= <<= <>.

--------------------
Examples of Multip-Char Operators

Here are some common examples of operators that are made of multiple
characters: || && == <= != ** =+ =* := ++ -- :: // /* (* …

-------------------------------
Fortress & Unicode

The language designer Guy Steele recently gave a very interesting
talk. See: Guy Steele on Parallel Programing. In it, he showed code
snippets of his language Fortress, which freely uses Unicode as
operators.

For example, list delimiters are not the typical curly bracket {1,2,3}
or square bracket [1,2,3], but the unicode angle bracket ⟨1,2,3⟩.
(See: Matching Brackets in Unicode.) It also uses the circle plus ⊕ as
operator. (See: Math Symbols in Unicode.)

-------------------------------
Problems of Symbol Congestion

I really appreciate such use of unicode. The tradition of sticking to
the 95 chars in ASCII of 1960s is extremely limiting. It creates
complex problems manifested in:

* String Escape mechanism (C's backslash \n, \/, …, widely
adopted.)
* Complex delimiters for strings. (Python's triple quotes and
perl's variable delimiters q() q[] q{} m//, and heredoc. (See: Strings
in Perl and Python â—‡ Heredoc mechanism in PHP and Perl.)
* Crazy leaning toothpicks syndrome, especially bad in emacs
regex.
* Complexities in character representation (See: Emacs's Key
Notations Explained (/r, ^M, C-m, RET, <return>, M-, meta) â—‡ HTML
entities problems. See: HTML Entities, Ampersand, Unicode, Semantics.)
* URL Percent Encoding problems and complexities: Javascript
Encode URL, Escape String

All these problems occur because we are jamming so many meanings into
about 20 symbols in ASCII.

See also:

* Computer Language Design: Strings Syntax
* HTML6: Your JSON and SXML Simplified

Most of today's languages do not support unicode in function or
variable names, so you can forget about using unicode in variable
names (e.g. α=3) or function names (e.g. “lambda†as “λ†or “functionâ€
as “ƒâ€), or defining your own operators (e.g. “⊕â€).

However, there are a few languages i know that do support unicode in
function or variable names. Some of these allow you to define your own
operators. However, they may not allow unicode for the operator
symbol. See: Unicode Support in Ruby, Perl, Python, javascript, Java,
Emacs Lisp, Mathematica.

Xah
 
R

rantingrick

Vast majority of computer languages use ASCII as its character set.
This means, it jams multitude of operators into about 20 symbols.
Often, a symbol has multiple meanings depending on contex.

I think in theory the idea of using Unicode chars is good, however in
reality the implementation would be a nightmare! A wise man once
said: "The road to hell is paved in good intentions". ;-)

If we consider all the boundaries that exist between current
(programming) languages (syntax, IDE's, paradigms, etc) then we will
realize that adding *more* symbols does not help, no, it actually
hinders! And Since Unicode is just a hodgepodge encoding of many
regional (natural) languages --of which we have too many already in
this world!-- proliferating Unicode symbols in source code only serves
to further complicate our lives with even *more* multiplicity!

Those of us on the *inside* know that Unicode is nothing more than an
poor attempt to monkey patch multiplicity. And that statement barely
scratches the surface of an underlying disease that plagues all of
human civilization. The root case is selfishness, which *then*
propagates up and manifests itself as multiplicity in our everyday
lives. It starts as the simple selfish notion of "me" against "other"
and then extrapolates exponentially into the collective of "we"
against "others".

This type of grouping --or selfish typecasting if you will-- is
impeding the furtherer evolution of homo sapiens. Actually we are
moving at a snails pace when we could be moving at the speed of light!
We *should* be evolving as a genetic algorithm but instead we are the
ignorant slaves of our own collective selfishness reduced to naive and
completely random implementations of bozosort!

Now don't misunderstand all of this as meaning "multiplicity is bad",
because i am not suggesting any such thing! On the contrary,
multiplicity is VERY important in emerging problem domains. Before
such a domain is understood by the collective unconscience we need
options (multiplicity!) from which to choose from. However, once a
"collective understanding" is reached we must reign in the
multiplicity or it will become yet another millstone around our
evolutionary necks, slowing our evolution.

But multiplicity is just the very beginning of a downward spiral of
devolution. Once you allow multiplicity to become the sport of
Entropy, it may be too late for recovery! Entropy leads to shock
(logical disorder) which then leads to stagnation (no logical order at
all!). At this point we loose all forward momentum in our evolution.
And why? Because of nothing more than self gratifying SELFISHNESS.

Anyone with half a brain understands the metric system is far superior
(on many levels) then any of the other units of measurement. However
again we have failed to reign in the multiplicity and so entropy has
run a muck, and we are like a deer "caught-in-the-headlights" of the
shock of our self induced devolution and simultaneously entirely
incapable of seeing the speeding mass that is about to plow over us
with a tremendous kinetic energy -- evolutionary stagnation!

Sadly this disease of selfishness infects many aspects of the human
species to the very detriment of our collective evolution. Maybe one
day we will see the light of logic and choose to unite in a collective
evolution. Even after thousands of years we are but infants on the
evolutionary scale because we continue to feed the primal urges of
selfishness.
 
C

Cthun

On 17/02/2011 9:11 PM, rantingrick wrote:
..> Vast majority of computer languages use ASCII as its character set.
..> This means, it jams multitude of operators into about 20 symbols.
..> Often, a symbol has multiple meanings depending on contex.
..
.. I think in theory the idea of using Unicode chars is good, however in
.. reality the implementation would be a nightmare! A wise man once
.. said: "The road to hell is paved in good intentions". ;-)
..
.. If we consider all the boundaries that exist between current
.. (programming) languages (syntax, IDE's, paradigms, etc) then we will
.. realize that adding *more* symbols does not help, no, it actually
.. hinders! And Since Unicode is just a hodgepodge encoding of many
.. regional (natural) languages --of which we have too many already in
.. this world!

What does your aversion to cultural diversity have to do with Lisp,
rantingrick? Gee, I do hope you're not a racist, rantingrick.

.. -- proliferating Unicode symbols in source code only serves
.. to further complicate our lives with even *more* multiplicity!
..
.. Those of us on the *inside* know that Unicode is nothing more than an
.. poor attempt to monkey patch multiplicity. And that statement barely
.. scratches the surface of an underlying disease that plagues all of
.. human civilization. The root case is selfishness, which *then*
.. propagates up and manifests itself as multiplicity in our everyday
.. lives. It starts as the simple selfish notion of "me" against "other"
.. and then extrapolates exponentially into the collective of "we"
.. against "others".
..
.. This type of grouping --or selfish typecasting if you will-- is
.. impeding the furtherer evolution of homo sapiens. Actually we are
.. moving at a snails pace when we could be moving at the speed of light!
.. We *should* be evolving as a genetic algorithm but instead we are the
.. ignorant slaves of our own collective selfishness reduced to naive and
.. completely random implementations of bozosort!

What does that have to do with Lisp, rantingrick?

.. Now don't misunderstand all of this as meaning "multiplicity is bad",
.. because i am not suggesting any such thing! On the contrary,
.. multiplicity is VERY important in emerging problem domains. Before
.. such a domain is understood by the collective unconscience we need
.. options (multiplicity!) from which to choose from. However, once a
.. "collective understanding" is reached we must reign in the
.. multiplicity or it will become yet another millstone around our
.. evolutionary necks, slowing our evolution.

Classic illogic. Evolution depends upon diversity as grist for the mill
of selection, rantingrick. A genetically homogeneous population cannot
undergo allele frequency shifts, rantingrock.

.. But multiplicity is just the very beginning of a downward spiral of
.. devolution. Once you allow multiplicity to become the sport of
.. Entropy, it may be too late for recovery! Entropy leads to shock
.. (logical disorder) which then leads to stagnation (no logical order at
.. all!). At this point we loose all forward momentum in our evolution.
.. And why? Because of nothing more than self gratifying SELFISHNESS.
..
.. Anyone with half a brain understands the metric system is far superior
.. (on many levels) then any of the other units of measurement. However
.. again we have failed to reign in the multiplicity and so entropy has
.. run a muck, and we are like a deer "caught-in-the-headlights" of the
.. shock of our self induced devolution and simultaneously entirely
.. incapable of seeing the speeding mass that is about to plow over us
.. with a tremendous kinetic energy -- evolutionary stagnation!
..
.. Sadly this disease of selfishness infects many aspects of the human
.. species to the very detriment of our collective evolution. Maybe one
.. day we will see the light of logic and choose to unite in a collective
.. evolution. Even after thousands of years we are but infants on the
.. evolutionary scale because we continue to feed the primal urges of
.. selfishness.

What does any of that have to do with Lisp, rantingrick?

And you omitted the #1 most serious objection to Xah's proposal,
rantingrick, which is that to implement it would require unrealistic
things such as replacing every 101-key keyboard with 10001-key keyboards
and training everyone to use them. Xah would have us all replace our
workstations with machines that resemble pipe organs, rantingrick, or
perhaps the cockpits of the three surviving Space Shuttles. No doubt
they'd be enormously expensive, as well as much more difficult to learn
to use, rantingrick.
 
C

Chris Jones

Some entity, AKA Cthun <[email protected]>,
[..]
And you omitted the #1 most serious objection to Xah's proposal,
rantingrick, which is that to implement it would require unrealistic
things such as replacing every 101-key keyboard with 10001-key
keyboards and training everyone to use them. Xah would have us all
replace our workstations with machines that resemble pipe organs,
rantingrick, or perhaps the cockpits of the three surviving Space
Shuttles. No doubt they'd be enormously expensive, as well as much
more difficult to learn to use, rantingrick.
At least it should try to mimick a space-cadet keyboard, shouldn't it?

Implementation details, and not very accurate at that.. the APL keyboard
has not additional keys and yet it has the potential to add up to 100
additional symbols to the US-ASCII keyboard, half of which are produced
via a single modifier.. same as upper-case letters. So unless more than
50+20 = 70 symbols are needed the keyboard conversion would cost about..
what.. $2.00 in stickers and maybe ten minutes to place them.

Maybe the problem lies elsewhere..?

cj
 
R

rantingrick

What does your aversion to cultural diversity have to do with Lisp,
rantingrick? Gee, I do hope you're not a racist, rantingrick.

Why must language be constantly "connected-at-the-hip" to cultural
diversity? People have this irrational fear that if we create a single
universal language then *somehow* freedom have been violated.

You *do* understand that language is just a means of communication,
correct? And i would say a very inefficient means. However, until
telekinesis becomes common-place the only way us humans have to
communicate is through a fancy set of grunts and groans. Since that is
the current state of our communication thus far, would it not be
beneficial that at least we share a common world wide mapping of this
noise making?

<sarcasm> Hey, wait, i have an idea... maybe some of us should drive
on the right side of the road and some on the left. This way we can be
unique (psst: SELFISH) from one geographic location on the earth to
another geographic location on the earth. Surely this multiplicity
would not cause any problems? Because, heck, selfishness is so much
more important than anyones personal safety anyway </sarcasm>

Do you see how this morphs into a foolish consistency?
. Now don't misunderstand all of this as meaning "multiplicity is bad",
. because i am not suggesting any such thing! On the contrary,
. multiplicity is VERY important in emerging problem domains. Before
. such a domain is understood by the collective unconscience we need
. options (multiplicity!) from which to choose from. However, once a
. "collective understanding" is reached we must reign in the
. multiplicity or it will become yet another millstone around our
. evolutionary necks, slowing our evolution.

Classic illogic. Evolution depends upon diversity as grist for the mill
of selection, rantingrick. A genetically homogeneous population cannot
undergo allele frequency shifts, rantingrock.

Oh, maybe you missed this paragraph:

. Now don't misunderstand all of this as meaning "multiplicity is
bad",
. because i am not suggesting any such thing! On the contrary,
. multiplicity is VERY important in emerging problem domains. Before
. such a domain is understood by the collective unconscience we need
. options (multiplicity!) from which to choose from. However, once a
. "collective understanding" is reached we must reign in the
. multiplicity or it will become yet another millstone around our
. evolutionary necks, slowing our evolution.

Or maybe this one:

.. I think in theory the idea of using Unicode chars is good, however
in
.. reality the implementation would be a nightmare! A wise man once
.. said: "The road to hell is paved in good intentions". ;-)

Or this one:

.. If we consider all the boundaries that exist between current
.. (programming) languages (syntax, IDE's, paradigms, etc) then we
will
.. realize that adding *more* symbols does not help, no, it actually
.. hinders! And Since Unicode is just a hodgepodge encoding of many
.. regional (natural) languages --of which we have too many already in
.. this world!
What does any of that have to do with Lisp, rantingrick?

The topic is *ahem*... "Problems of Symbol Congestion in Computer
Languages"... of which i think is not only a lisp issue but an issue
of any language. (see my comments about selfishness for insight)
And you omitted the #1 most serious objection to Xah's proposal,
rantingrick, which is that to implement it would require unrealistic
things such as replacing every 101-key keyboard with 10001-key keyboards
and training everyone to use them. Xah would have us all replace our
workstations with machines that resemble pipe organs, rantingrick, or
perhaps the cockpits of the three surviving Space Shuttles. No doubt
they'd be enormously expensive, as well as much more difficult to learn
to use, rantingrick.

Yes, if you'll read my entire post then you'll clearly see that i
disagree with Mr Lee on using Unicode chars in source code. My
intention was to educate him on the pitfalls of multiplicity.
 
L

Littlefield, Tyler

My intention was to educate him on the pitfalls of multiplicity.
O. that's what you call that long-winded nonsense? Education? You must
live in America. Can I hazard a guess that your universal language might
be english? Has it not ever occured to you that people take pride in
their language? It is part of their culture. And yet you rant on about
selfishness?
 
C

Cthun

Why must language be constantly "connected-at-the-hip" to cultural
diversity?

Language is a part of culture, rantingrick.
People have this irrational fear that if we create a single
universal language then *somehow* freedom have been violated.

No, it is that if we stop using the others, or forcibly wipe them out,
that something irreplaceable will have been lost, rantingrick.
You *do* understand that language is just a means of communication,
correct?

Classic unsubstantiated and erroneous claim. A language is also a
cultural artifact, rantingrick. If we lose, say, the French language, we
lose one of several almost-interchangeable means of communication,
rantingrick. But we also lose something as unique and irreplaceable as
the original canvas of the Mona Lisa, rantingrick.
And i would say a very inefficient means. However, until
telekinesis becomes common-place the only way us humans have to
communicate is through a fancy set of grunts and groans. Since that is
the current state of our communication thus far, would it not be
beneficial that at least we share a common world wide mapping of this
noise making?

What does your question have to do with Lisp, rantingrick?
<sarcasm> Hey, wait, i have an idea... maybe some of us should drive
on the right side of the road and some on the left. This way we can be
unique (psst: SELFISH) from one geographic location on the earth to
another geographic location on the earth.

Classic illogic. Comparing, say, the loss of the French language to
standardizing on this is like comparing the loss of the Mona Lisa to
zeroing one single bit in a computer somewhere, rantingrick.
Surely this multiplicity
would not cause any problems? Because, heck, selfishness is so much
more important than anyones personal safety anyway</sarcasm>

Non sequitur.
Do you see how this morphs into a foolish consistency?

What does your classic erroneous presupposition have to do with Lisp,
rantingrick?
Oh, maybe you missed this paragraph

What does your classic erroneous presupposition have to do with Lisp,
rantingrick?
. Now don't misunderstand all of this as meaning "multiplicity is
bad",
. because i am not suggesting any such thing! On the contrary,
. multiplicity is VERY important in emerging problem domains. Before
. such a domain is understood by the collective unconscience we need
. options (multiplicity!) from which to choose from. However, once a
. "collective understanding" is reached we must reign in the
. multiplicity or it will become yet another millstone around our
. evolutionary necks, slowing our evolution.

Classic erroneous presupposition that evolution is supposed to reach a
certain point and then stop and stagnate on a single universal standard,
rantingrick.
Or maybe this one:

. I think in theory the idea of using Unicode chars is good, however
in
. reality the implementation would be a nightmare! A wise man once
. said: "The road to hell is paved in good intentions". ;-)

Classic unsubstantiated and erroneous claim. I read that one, rantingrick.
Or this one:

. If we consider all the boundaries that exist between current
. (programming) languages (syntax, IDE's, paradigms, etc) then we
will
. realize that adding *more* symbols does not help, no, it actually
. hinders! And Since Unicode is just a hodgepodge encoding of many
. regional (natural) languages --of which we have too many already in
. this world!

Classic unsubstantiated and erroneous claim. I read that one, too,
rantingrick.
The topic is *ahem*... "Problems of Symbol Congestion in Computer
Languages"... of which i think is not only a lisp issue but an issue
of any language.

Classic illogic. The topic of the *thread* is *computer* languages, yet
you attacked non-computer languages in the majority of your rant,
rantingrick. Furthermore, the topic of the *newsgroup* is the *Lisp
subset* of computer languages.
(see my comments about selfishness for insight)

What does that have to do with Lisp, rantingrick?
Yes, if you'll read my entire post then you'll clearly see that i
disagree with Mr Lee on using Unicode chars in source code.

Classic erroneous presuppositions that I did not read your entire post
and that I thought you weren't disagreeing with Mr. Lee, rantingrick.
My intention was to educate him on the pitfalls of multiplicity.

Classic illogic, since "multiplicity" (also known as "diversity") does
not in and of itself have pitfalls, rantingrick.

On the other hand, monoculture has numerous well-known pitfalls,
rantingrick.
 
A

alex23

rantingrick said:
Why must language be constantly "connected-at-the-hip" to cultural
diversity? People have this irrational fear that if we create a single
universal language then *somehow* freedom have been violated.

Because monocultures _die_ and no amount of fascist-like rick-ranting
about a One True Way will ever change that.
 
R

rantingrick

Because monocultures _die_

You lack vision.

What is evolution?

Evolution is the pursuit of perfection at the expense of anything and
everything! But what evolution lacks is self awareness. Evolution is
really a bumbling idiot. Intelligent agents should not emulate
classical evolution, no, we should mold it and shape it ourselves!
Darwinian evolution is an archaic and slow process which takes eons to
bring about even the smallest changes. However evolution guided by
"intelligent agents" is exponential.

Do you think the earth is anything special? Do you think some talking
monkeys is anything special? Do you think tens of thousands of years
are anything but the blink of an eye? All of what you see and know is
but teeny tiny baby steps in the short life of evolution. The system
has not even made it from the couch to the coffee table yet without
loosing balance and falling on it proverbial buttocks! And you are
concerned with something as small as human cultures and language
diversity! Open your eyes man!

NEWSFLASH: Humans are NOT the prize of the Universe. We are merely a
bump along the way. Stop self aggrandizing for a moment so you can see
reality. That does not mean we cannot contribute great things! But we
are here for a very short time on a galactic scale. Stop being selfish
and realize what you are, who you are, and where you should be going.
Next time you pass an ant hill look down at one the ants and imagine
that the ant is you... then you will *get* it.
 
R

rantingrick

When the sun expands into a red giant and destroys the remaining life
left on this pathetic rock and the entire puny human species have been
transcended by the *next* evolution of intelligent agents (hopefully
before going extinct!) do you really think any advanced lifeforms are
going to look back and give a flying fig about the selfishness of the
human species?

"Well they did not give much to evolution, but hey, they had TV's,
Elvis, microwave pizza, and muti-culturalism, woo-hoo!"

*Your* thought process are an evolutionary dead end my friend! All of
what you see and know is nothing in the greater scheme of things. What
do you think, some future anthropologist is going to dig up human
bones like we do with dinosaur bones? Are you insane? Where will you
dig when the earth is non-existent? Where will you start your research
of human civilization when every piece of matter that proved our
existence has been reformed into energy?

All we have at the end of this gigantic game is that which we can
contribute to the *next step* of evolution. The best we can hope for
is to successfully pass the "baton of knowledge" to the next runner.
Nothing we create is going to survive time... NOTHING! Not any
structure, not any system of government, not any selfish human sub-
culture, not any piece of art, not even the entire human culture,
nothing!

Only one *thing* is immortal, Evolution. And the only way for us to be
immortal is by offering a substantial building block to that system.
Assimilation is the way of the Universe, like it or not.
 
J

John Nagle

Some entity, AKA Cthun<[email protected]>,
wrote this mindboggling stuff:
(selectively-snipped-or-not-p)



At least it should try to mimick a space-cadet keyboard, shouldn't it?

I've used both the "MIT Space Cadet" keyboard on a Symbolics LISP
machine, and the Stanford SAIL keyboard. There's
something to be said for having more mathematical symbols.

Some programs use a bigger character set. MathCAD,
for example, has a broader range of mathematical symbols on
the input side than ASCII offers. They're not decorative;
MathCAD has different "=" symbols for assignment, algebraic
equivalence, identity, and comparison.

I've previously mentioned that Python suffers in a few places
from unwanted overloading. Using "+" for concatenation of
strings, then extending that to vectors, resulted in undesirable
semantics. "+" on arrays from "numpy", and on built-in vectors
behave quite differently. A dedicated concatenation operator
would have avoided that mess.

C++ has worse problems, because it uses < and > as both
brackets and operators. This does horrible things to the syntax.

However, adding a large number of new operators or new
bracket types is probably undesirable.

John Nagle
 
W

Westley Martínez

That was a very insightful point-of-view. Perhaps you should write a
book or blog, as I'd be very interested in reading more about what you
have to say.
 
W

Westley Martínez

Some entity, AKA Cthun <[email protected]>,
[..]
And you omitted the #1 most serious objection to Xah's proposal,
rantingrick, which is that to implement it would require unrealistic
things such as replacing every 101-key keyboard with 10001-key
keyboards and training everyone to use them. Xah would have us all
replace our workstations with machines that resemble pipe organs,
rantingrick, or perhaps the cockpits of the three surviving Space
Shuttles. No doubt they'd be enormously expensive, as well as much
more difficult to learn to use, rantingrick.
At least it should try to mimick a space-cadet keyboard, shouldn't it?

Implementation details, and not very accurate at that.. the APL keyboard
has not additional keys and yet it has the potential to add up to 100
additional symbols to the US-ASCII keyboard, half of which are produced
via a single modifier.. same as upper-case letters. So unless more than
50+20 = 70 symbols are needed the keyboard conversion would cost about..
what.. $2.00 in stickers and maybe ten minutes to place them.

Maybe the problem lies elsewhere..?

cj
$2.00 * thousands of programmers -> thousands of dollars + thousands of
lost training time; not to mention code conversion.
 
C

Chris Jones

Some entity, AKA Cthun <[email protected]>,
[..]

And you omitted the #1 most serious objection to Xah's proposal,
rantingrick, which is that to implement it would require unrealistic
things such as replacing every 101-key keyboard with 10001-key
keyboards and training everyone to use them. Xah would have us all
replace our workstations with machines that resemble pipe organs,
rantingrick, or perhaps the cockpits of the three surviving Space
Shuttles. No doubt they'd be enormously expensive, as well as much
more difficult to learn to use, rantingrick.
At least it should try to mimick a space-cadet keyboard, shouldn't it?

Implementation details, and not very accurate at that.. the APL keyboard
has not additional keys and yet it has the potential to add up to 100
additional symbols to the US-ASCII keyboard, half of which are produced
via a single modifier.. same as upper-case letters. So unless more than
50+20 = 70 symbols are needed the keyboard conversion would cost about..
what.. $2.00 in stickers and maybe ten minutes to place them.

Maybe the problem lies elsewhere..?

cj
$2.00 * thousands of programmers -> thousands of dollars + thousands
of lost training time; not to mention code conversion.

Yeah.. yeah.. one coffee break missed.. get real..

:)

cj
 
C

Chris Jones

On 2/17/2011 6:55 PM, Cor Gest wrote:
[..]
At least it should try to mimick a space-cadet keyboard, shouldn't
it?
I've used both the "MIT Space Cadet" keyboard on a Symbolics LISP
machine, and the Stanford SAIL keyboard. There's something to be
said for having more mathematical symbols.

Really..? Wow..! I only every saw pictures of the beast and I was never
really convinced it was for real.. :)
Some programs use a bigger character set. MathCAD, for example,
has a broader range of mathematical symbols on the input side than
ASCII offers. They're not decorative; MathCAD has different "="
symbols for assignment, algebraic equivalence, identity, and
comparison.

Out of curiosity, I played a bit of APL lately, and I was amazed at how
quickly you get to learn the extra symbols and their location on the
keyboard. Had intergrating the basic concepts of the language been that
easy, I would have been comfortably coding within a couple of hours.
I was also rather enchanted by the fact that the coding closely matched
my intentions. No overloading in this respect. Not that I'm an APL
advocate, but who knows what programming languages will look like in the
not-so-distant future.
I've previously mentioned that Python suffers in a few places
from unwanted overloading. Using "+" for concatenation of
strings, then extending that to vectors, resulted in undesirable
semantics. "+" on arrays from "numpy", and on built-in vectors
behave quite differently. A dedicated concatenation operator
would have avoided that mess.

And the worst part of it is that you get so used to it that you take
such matters for granted. Thanks for the eye-opener.
C++ has worse problems, because it uses < and > as both brackets
and operators. This does horrible things to the syntax.

... from a quite different perspective it may be worth noting that
practically all programming languages (not to mention the attached
documentation) are based on the English language. And interestingly
enough, most any software of note appears to have come out of cultures
where English is either the native language, or where the native
language is either relatively close to English.. Northern Europe
mostly.. and not to some small extent, countries where English is
well-established as a universal second language, such as India. Always
struck me as odd that a country like Japan for instance, with all its
achievements in the industrial realm, never came up with one single
major piece of software.

cj
 
S

Steven D'Aprano

I've used both the "MIT Space Cadet" keyboard on a Symbolics LISP
machine, and the Stanford SAIL keyboard. There's something to be said
for having more mathematical symbols.

Agreed. I'd like Python to support proper mathematical symbols like ∞ for
float('inf'), ≠ for not-equal, ≤ for greater-than-or-equal, and ≥ for
less-than-or-equal.

They would have to be optional, because most editors still make it
difficult to enter such characters, and many fonts are lacking in glyphs,
but still, now that Python supports non-ASCII encodings in source files,
it could be done.
Some programs use a bigger character set. MathCAD,
for example, has a broader range of mathematical symbols on the input
side than ASCII offers. They're not decorative; MathCAD has different
"=" symbols for assignment, algebraic equivalence, identity, and
comparison.

I've previously mentioned that Python suffers in a few places
from unwanted overloading. Using "+" for concatenation of strings, then
extending that to vectors, resulted in undesirable semantics. "+" on
arrays from "numpy", and on built-in vectors behave quite differently.
A dedicated concatenation operator would have avoided that mess.

I don't quite agree that the mess is as large as you make out, but yes,
more operators would be useful.
 
S

Steven D'Aprano

Always
struck me as odd that a country like Japan for instance, with all its
achievements in the industrial realm, never came up with one single
major piece of software.

I think you are badly misinformed.

The most widespread operating system in the world is not Windows. It's
something you've probably never heard of, from Japan, called TRON.

http://www.linuxinsider.com/story/31855.html
http://web-japan.org/trends/science/sci030522.html

Japan had an ambitious, but sadly failed, "Fifth Generation Computing"
project:

http://en.wikipedia.org/wiki/Fifth_generation_computer
http://vanemden.wordpress.com/2010/08/21/who-killed-prolog/

They did good work, but unfortunately were ahead of their time and the
project ended in failure.

Japan virtually *owns* the video game market. Yes, yes, Americans publish
a few high-profile first-person shooters. For every one of them, there's
about a thousand Japanese games that never leave the country.

There's no shortages of programming languages which have come out of
Japan:

http://hopl.murdoch.edu.au/findlanguages.prx?id=jp&which=ByCountry
http://no-sword.jp/blog/2006/12/programming-without-ascii.html

The one you're most likely to have used or at least know of is Ruby.
 
G

Giacomo Boffi

Chris Jones said:
[...] most any software of note appears to have come out of cultures
where English is either the native language, or where the native
language is either relatively close to English...

i do acknowledge your "most", but how do you spell "Moon" in Portuguese?
 
G

Giacomo Boffi

Steven D'Aprano said:
I don't quite agree that the mess is as large as you make out, but yes,
more operators would be useful.

am i wrong, or "|" is still available?
 
I

Ian

Always
struck me as odd that a country like Japan for instance, with all its
achievements in the industrial realm, never came up with one single
major piece of software.
I think there are two reasons for this.

1) Written Japanese is so hard that the effective illiteracy rate in
Japan is astonishingly high.

Both UK and Japan claim 99% literacy rate, but UK has 10-20% who find
reading so hard they
don't read. In Japan by some estimates the proportion is about half.
Figures from memory.

Result - too many users struggle to read instructions and titles on
screen. Help texts? Forgetaboutit.

2) Culture. In the West, a designer will decide the architecture of a
major system, and it is a basis
for debate and progress. If he gets it wrong, it is not a personal
disgrace or career limiting. If it is
nearly right, then that is a major success. In Japan, the architecture
has to be a debated and agreed.
This takes ages, costs lots, and ultimately fails. The failure is
because architecture is always a trade off -
there is no perfect answer.

I was involved in one software project where a major Japanese company
had done the the feasibility
study. It was much much too expensive. The UK company I worked for was
able, not only to win the bid,
but complete the job profitably for less than the Japanese giant had
charged for the feasibility study.
We ignored their study - we did not have time to read through the
documentation which took
10 foot of shelf space to house.

Ian
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,808
Messages
2,569,684
Members
45,445
Latest member
JoshuaCale

Latest Threads

Top