[Tfug] Language choices

Robert Hunter hunter at tfug.org
Thu Nov 9 14:32:46 MST 2006


Hi, Tim.

Some of your statements make sense to me.  But unfortunately, they also
contain a fair amount of ill-defined concepts and meaningless gibberish. 
You have lifted ideas from various sources, such as the design philosophy
for Smalltalk, and Ruby, and presented these ideas along with your own
personal opinion of what constitutes an "ideal" programming language. Yet
you have given very little in terms of concrete examples and arguments to
support your position.  By concrete examples I mean things such as
showing a bit of  that code that solves a problem, or making a case
comparison of a specific aspect of two different languages.  First you
make claims like "I don't  know Java", and then you go on to make
negative assertions about Java.  Then you talk about things like Java
monitors completely out of context.  Don't misunderstand -- I am not
saying that you have nothing useful to say, but rather that the overall
impression of your statements is a mish-mash of incoherent and poorly
reasoned statements.

> First off, I think that a language that is based entirely on a very small
> number of powerful, general mechanisms is much easier to use than one
> with
> more grammar and keywords to learn.  Every special-purpose mechanism in a
> language is sort of like an apology for not having a better idea.  IOW:
> There shouldn't be special-case grammar in a language (IMHO).

What exactly are powerful, general mechanisms?  So far you have mostly
addressed the simplicity of language syntax.  But the design
considerations of programming languages are numerous, and syntax is only
one aspect.  Performance, memory management, ease-of-use/productivity,
the various programming paradigms ( imperative, functional, declarative,
distribute/parallel, object-oriented, aspect-oriented, etc., etc. ) ...
the list goes on.  I think that in the end you will find that there is no
"silver bullet" in programming languages.  If you aren't already familiar
with the meaning of "Turing completeness", then I think you would benefit
from doing so.  Also, look at Brainfuck for an example of minimalist
syntax in a programming language.

http://en.wikipedia.org/wiki/Turing_completeness
http://en.wikipedia.org/wiki/Brainfuck

>
> Smalltalk I like to discuss because it's based on only two or three very
> general mechanism. I like software designs that have only two or three
> unifying abstractions rather than designs that don't have ay unifying
> abstractions, where every function is a "special case".  MFC and he M$
> API
> are examples of the latter - pretty much everything you do is a special
> case
> you have to memorize.

You are comparing apples and oranges.  A programming language is an
entirely different beast than a system API.  While I agree with you that
the Win32 API is piece of crap, I see very little use in comparing it to
Smalltalk.

> On 11/8/06, Stephen Hooper <stephen.hooper at gmail.com> wrote:
>>
>> <snip>
>> Ok... and why aren't you free to write such a library in Java?
>
>
> I don't have a way to make one.  I don't have guaranteed destruction (a
> generalized mechanism) nor do I have closures to wrap arbitrary blocks of
> code in start/stop mechanisms.  It would not be the same if I have to use
> template method (a class with a run() method) or if I require the user to
> call start and stop methods around a block of code.

Say what?

> A rule for library design is that you always require the least possible
> of
> your users. Neither of these do that, but closures do.  The way that
> 'synchronized' works is very much like a closure, except that it is a
> special case and not something you can build.

Please explain how a monitor is in any way related to a closure?

http://en.wikipedia.org/wiki/Monitor_%28synchronization%29
http://en.wikipedia.org/wiki/Closure_%28computer_science%29


> Ah, yes!  I exactly want to increase the vocabulary to simplify grammar!
> My reason is twofold: it makes the grammar simpler and makes the language
> more powerful.  This works because programming is the act of adding
> vocabulary to a grammar.

You want to simplify the grammar to make the grammar simpler. That's a
bit circular isn't it?  And, once again, what makes a language more
"powerful"?  ( See above )

> Now lets see how well I've described it.

You can do better. ;-)

-- 
Rob




More information about the tfug mailing list