[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What would your ideal language be like...

On Saturday, Feb 22, 2003, at 11:38 US/Pacific, Sundar Narasimhan wrote:
 > - I think of needing to deal w/ "files" as an instance of a much
 > broader issue with I/O in general. For example, keyboards/mice
 > (event driven programming/threads), monitors-screens (gui), other
 > users/computers (network i/o support) are all instances of I/O
 > as well. So, why do languages relegate these to libraries?

I don't mind that they are in libraries.  But I agree with
Kevin's point that if they are not mentioned in the available
writings about the language, then that language community
does not appear to be particularly concerned about solving
real world problems.

Unix appealed to me in the 1970's because its simple view of
I/O managed to take some of these diverse I/O devices, and
treat them with a common file-like abstraction.  Unix appealed
less in the 1980's because these abstractions, faced with the
desires for more interactivity, broke down and had to be made
much more complex.

 > - Strings are interesting as well in that the conventional wisdom
 > is that strings are perhaps a structured type made up of
 > "characters", and surely if you have "characters" and "arrays/
 > sequences of such characters", or an OO system that allows
 > you to define your own objects .. you shouldn't need a separate
 > type such as String, right?

Arguing on the other side are concerns about efficiency,
internationalization, and community.

 > So where is the boundary
 > between base types that a language provides out of the box and
 > those that a programmer/library is supposed to provide?

I am less concerned with that boundary than with this one:
the boundary between base types and libraries that a language
mandates should be provided out of the box, and those that a
programmer must either build for themselves, or find a 3rd
party version of.  And the possible (likely, in my experience)
incompatibilities among those 3rd party libraries.

 > So what is a "good set of built-in domains"?

For my tastes, a look at the libraries that come with Python
or Java give a decent idea, though Python's lack of a common,
standard GUI library is a big point against it.

 > Is there a consensus of opinion or even
 > approaches toward determining such a list?

Nope, just a marketplace out there.  It's a social issue.

 > (Personally speaking, I'd say that the evidence seems to be
 > that languages that retain a lot of degrees-of-freedom at the
 > built-in domain level -- I'm thinking of languages such as
 > Lisp, Smalltalk etc. have not been very successful -- is this
 > evidence that extensibility doesn't play well in the mass
 > market because it sets the bar for writing useful programs
 > too high?)

I don't think so.  I think that it is evidence that extensibility
leads language implementors to implement libraries in too many
different ways.  Despite its clunkiness and a difficult
transition from AWT, IMHO one of the big reasons for Java's
success was Swing.  One dominant GUI library.

Often, in language discussions, I will see a question like
"Does this language have <whatever> support?" and it will be
answered with "Yes, version A does it this way, version B
does it that way, and version C ..."  For me, that answer
translates to "NO.  Three different implementations of this
language can support <whatever>, but if you want to do it
portably, you have a lot of work to do."  In some of these
languages, it is the very extensibility that leads to this
losing situation.

No time to finish this now, sorry.
    Loose ends:   1- Perspective (what kinds of programs?)
                  2- Language User Communities

  -- Doug L.