From: | Johann 'Myrkraverk' Oskarsson <johann@2ndquadrant.com> |
Newsgroups: | comp.compilers |
Date: | Wed, 06 Jun 2012 17:38:17 +0000 |
Organization: | A noiseless patient Spider |
References: | 12-03-012 12-03-014 |
Keywords: | design |
Posted-Date: | 06 Jun 2012 17:32:04 EDT |
>>Personally, I'd say there's been precious little new in programming
>>languages since Simula gave us OOP in the late 1960s.
The ASCII character set has been a limiting factor for programming
language design for decades. Here I'm talking about the interface that
faces the programmer, not "language features" that enable buzzword
compliant programming.
Another limiting factor, not readily apparent to North Americans: the
English language. Most, if not all, programming languages applied world
wide are based on English, with keywords in English.
Different vocabulary and different (natural language) grammar rules make
some things hard to express and sometimes impossible. English is one of
the most (if not *the* most) verbose languages I know. It needs a lot
of "small words in between" to make sentences comprehensible while in
other languages it's often enough to change a vowel.
If people are going to *research* programming languages, they should
also be researching the human factor, not brand new buzzword compliant
features.
Some questions I might want to see answered by a language researcher
are:
What happens when you're no longer restricted by the ASCII character
set? Expand that to: What happens when you're no longer restricted by
Unicode and can invent your own notation and symbols at will?
What happens when you get to define your own keyboard layout? Put the
new symbols anywhere you want.
What happens if you borrow word alterations from other natural
languages to your keywords? Does it makes anything more obvious?
Harder to read? Did you manage to invent something "new" like the ? :
operator from C that enables common patterns to be expressed more
compactly?
Also, explore literate programming. Some applications, such as
scientific papers on algorithms are meant for human to human
communication and only incidentally for computers to run too. When that
is built in a language from the ground up and not crafted on afterwards
with tools like noweb you just might find something to surprise you.
And while you're at it, develop an interface with automatic indentation,
code completion and if possible, refactoring. Try to make that
interface independent to the compiler. Does it help this tool if you
add metadata to your object files beyond the regular debugging symbols?
--
Johann Oskarsson http://www.2ndquadrant.com/ |[]
PostgreSQL Development, 24x7 Support, Training and Services --+--
|
Blog: http://my.opera.com/myrkraverk/blog/
[If you think English is wordy, you must not know any French, Spanish,
or Italian, all of which are far wordier. For people who like larger
character sets, you know where to find APL if you want it. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.