[linux-elitists] Opera beta for linux available

Mr.Bad mr.bad@pigdog.org
Sun Oct 8 13:28:51 PDT 2000


>>>>> "DS" == Deirdre Saoirse <deirdre@deirdre.net> writes:

    >> Hogwash. Proof: you have a job.

    DS> I meant any arbitrary thing. For example, I can't express the
    DS> difference between thought and reality accurately in
    DS> programming. Except perhaps with Prolog. :)

You can't express it with natural language, either. The best you can
do is attach labels, which, like, how hard is that?

        (use-modules (oop goops)) ; goops rocks!

        (define-class <noun> ()
          (realness #:init-keyword #:realness))

        (define evan (make <noun> #:realness 'concrete))
        (define fishiness (make <noun> #:realness 'abstract))
        (define this-chair (make <noun> #:realness 'concrete))
        (define concept-of-chair (make <noun> #:realness 'abstract))

The fact that I can insert any arbitrary English sentence into
a program in practically any modern programming language makes the
point moot. If I wanted to tell you that, I could just send you a
program like this:

        : tell-deirdre-point-is-moot 
            ." The fact that I can insert any arbitrary English
            sentence into a program in practically any modern
            programming language makes the point moot." cr
        ;

        tell-deirdre-point-is-moot 
        bye

Badda-bing badda-boom. It's quite doable to extend most languages to
interpret, say, UTF-8 so you can handle almost any human language. 
Tell me that ain't communication.
 
    DS> Prolog is a language that's really good for fuzzy logic. Lisp
    DS> however is much better at binary tree AI.

See, but you can do both with both. And if you worked on it, you could
make either one work as well as the other.

As far as I see it, the two camps boil down to these extremes:

1) Use the best tool available for the job at hand. Adapt your
   programming language, development and runtime environment,
   operating system, etc. to work with this "best tool."

Benefits:
        * Get the super-bestest value for e.g. development time,
          runtime performance, etc. etc.

Drawbacks:
        * Need to spend time learning new language, OS, or whatever.
        * In a newly-learned language, you'll have poorer designs and
          more defects.
        * Even if you and your team learn the new language,
          maintainers and other readers may not have time/energy to.
        * Contribute to great complexity of development world.

2) Use a small, common toolset of 1-2 programming languages.
   If the job you have can't be done with the toolset you have, or
   can't be done well, extend or improve your toolset, and share your
   improvements with the world.

Benefits:
        * Don't waste time learning new languages.
        * More eyes on the same tool/functionality in the language
          means better code.
        * Easy to get maintainers.
        * Easier entry to development world for non-programmers.

Drawbacks:
        * Don't necessarily get best-of-breed for a given task.
        * Spend more time developing tools (although, in the
          aggregate, should probably spend less time).
        * With wrong choice of languages, could have stultifying
          effect on new concepts in programming (e.g., hard to do OOP
          in FORTRAN).

Anyways, I think it makes sense. I'm with Eugene: I'm going to stop
being a programming language slut, and settle down to Scheme and
Forth.

~Mr. Bad

-- 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 /\____/\   Mr. Bad <mr.bad@pigdog.org>
 \      /   Pigdog Journal | http://pigdog.org/ | *Stay*Real*Bad*
 |  (X \x)   
 (    ((**) "If it's not bad, don't do it.
  \  <vvv>   If it's not crazy, don't say it."
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




More information about the linux-elitists mailing list