Re: Head scratching in language X superior to language Y



On Wed, 27 Feb 2008 12:38:51 -0600, thomas.mertes@xxxxxx wrote
(in article
<cae970f1-1f2f-457b-b8fa-666a1f3b7bab@xxxxxxxxxxxxxxxxxxxxxxxxxxx>):

On 27 Feb., 14:59, Randy Howard <randyhow...@xxxxxxxxxxxxxxxxx> wrote:

Putting a new language together /is/ inventing new things. Just as
your own language has done. Sure, it may borrow ideas from elsewhere,
but it combines them into something different.

Thank you for mentioning my language.

No problem, although I merely alluded to it. :-)

Designed by committee is usually not a good idea.

It all depends upon the committee.

In most commitees politics play a role...

Sadly this is correct, but it is not always problematic, although I
agree it often is. Either way, if you have an industry standard
language specification, you can bet there is at least one committee
under the covers or it wouldn't exist. A lot of good things happen in
these committees, for example, more sets of eyes attempting to remove
unwarranted platform assumptions that would hinder portability.

or they are promoted by a company:
Java --> Sun

Well, Gosling is usually recognized as the implementor. Why didn't you
say that C was promoted by AT&T?

C was promoted by AT&T, but compared to the hype generated for
Java and C# this promotion was small.

It was also different times. The mere existence of a portable,
compiled language was more than enough hype at the time. Also, the
pool of programmers was a tiny fraction of what it is today, although
the percentage of good ones was arguably much higher. As a result, the
need for hype to sell to a tiny market didn't really exist. Today, you
see mass competition for developer mindshare, for example wanting
people to merely mention your product in a Usenet post. ;-)

C# -> Microsoft

And a host of other .Net languages as well, yes.

So there is a vendor lock in for several languages.
Does an open source VB exist which runs unmodified
code?

I don't know. If it does, it's probably within Mono, but I can't say
for sure. Personally, I'd just as soon no VB exist at all, but that's
just me.

Programming languages designed by a committee usually
have a bad reputation.

Can you name a language that was designed by a committee? Ada maybe,
I'm not sure about its ancestry. Others? There aren't very many I
suspect. There are a lot of languages that started out non-standard,
but became maintained and/or extended by standard bodies later due to
popularity or a perceived need for standardization for portability
reasons.

I was referring to situation where a standard exists and it takes
many years until an implementation shows up. Ada and C99 are
such cases.

I am not that familiar with the evoluton of Ada, so I won't comment on
that either way. As far as C99 goes, the reason for the slow (almost
nonexistent) adoption of it is that many people believe some
significant mistakes were made. For example, not following their own
mantra of codifying existing practice in many cases. The other issue
is, imnsho, due to C89 being plenty good for most uses of C already.
They could have made a few minor changes and additions, but instead
they made some rather sweeping changes, ones that conflicted with the
existing extensions used in contemporary compilers. As a result, much
resistance, and in some cases outright refusal to adopt the changes
ensued. Despite this, nothing bad seems to have happened. Most people
still write code in one of three major flavors, Microsoft's visual C++
default behavior on .c files, Strict C89, or "whatever the hell gcc
does by default".

For clearness of design I prefer things (not only programming
languages) that are designed by one person or a small
group. Languages designed by companies always have the
danger of a vendor lock in.

If there is a published specification for the language, you are free to
implement the language elsewhere. Without it, it's difficult to even
program in it on a single platform.

A published specification is important. OTOH it is hard to create a
good specification as long as no prototype implementation exists.

True enough. Which is why languages are usually developed first, and
standardized later (once enough people decide the language is
worthwhile and start calling for a formal standard).

Therefore I am very sceptical towards people which promote programming
languages which are created to drive people to one operating system
(specially when these languages are promoted by a quasi
monopolist).

A wise policy, but if a project is aimed at a single platform, and that
language is the best tool for the job, it would be silly not to use it
for "religious" reasons.

That is an argument I often hear from people who always decide for
the OS and the development environment of the quasi monopolist.

It appears that you're making an assumption about my motives. For the
record, I am not a fan of either the OS or any of its pushed languages
that you seem to be alluding to, presumably Microsoft and friends.

I can separate my personal opinions however from the practicalities of
writing code that is by design not portable, but tailored to a
particular environment. Not all projects need to be, or even should be
written in a portable language, and in such cases, arguments about
portability are moot.

There are always several best tools for a job.

This doesn't hold logically. At least, not for any definition of
"best" that I am aware of that doesn't also mean "equivalent".

What about Java and Eclipse or some other portable language (note
that I did not mention Seed7 :-) ).

Note: Yes you did. :P

If it turns out that Java is the best language for a project, then use
it.

Although such things like Mono exist I doubt that programs written at
the home operating system of this language are portable to other operating
systems.

Likely true, although I haven't spent any time testing the theory.
It's probably also the case that porting C# on win32 to Mono (even with
porting issues) is simpler than rewriting it in something else from
scratch.

When you choose a more portable language beforehand you don't
have this problem. A usual porting issue is: You need a windows dll
under unix/linux/bsd. There are people rewriting them (project wine)
but
it takes time. I speak of portability when no code change is
necessary.

I find that whole effort somewhat suspect. The last thing I want is to
be running windows binaries on a linux system. Use of a virtualization
technology is both safer and simpler to achieve.


--
Randy Howard (2reply remove FOOBAR)
"The power of accurate observation is called cynicism by those
who have not got it." - George Bernard Shaw





.



Relevant Pages

  • Re: Two Questions about "strlen", "strcat" and "strcpy"
    ... >> No. zero terminated strings is the whole problem in the first place. ... > OR length prefixed strings the language would retain compatibility ... is not easily duplicated with the old standard then it will foster interest. ... The C standards committee is dead. ...
    (comp.lang.c)
  • Re: Learning Lisp in Linux?
    ... The Scheme fools started it and paraded it around as this Great Thing About Scheme, a measure of their obsession with The Wrong Thing when it came to language design. ... what was in the language standard and no more was in, ... Damn few libraries are actually written to be ... Their portability becomes my portability. ...
    (comp.lang.lisp)
  • Re: Language standard: the least common denominator vs. utility
    ... Probably a better way of doing this would be to introduce namespaces ... The credibility of the ANSI standard is at an all time low. ... taking advice from Microsoft on how to secure the language from Buffer ... C committee anymore. ...
    (comp.lang.c)
  • Re: On the development of C
    ... With the development of the c++ language, ... The first standard went beyond standardization of existing practice, ... the committee, Mr Gwyn answered: ... The "C strings" are represented by a sequences of characters in memory ...
    (comp.lang.c)
  • Progress on C++0x
    ... committee decision to really aim for a new standard this decade, ... The current status list for progress pm core language feature can be ... C++ standard will support garbage collection! ... THe only major feature adopted into the working paper at this meeting ...
    (borland.public.delphi.non-technical)