Re: Spell Checking for Non European Languages, and for Conlangs
From: | Christophe Grandsire <christophe.grandsire@...> |
Date: | Wednesday, March 31, 2004, 19:56 |
En réponse à Nokta Kanto :
> > As for C++.... I agree with you... god knows why so many programmers
> >use it. *shrugs* There might be a good reason I'm missing, being a poor
> >hobby programmer rather than a professional.
>
>C++ is popular because it builds on C, which was very popular because it
>was a clean, simple language that was speed-competitive with assembly. Most
>of the languages that programmers prefer over C run through an interpreter,
>which makes them unsuitable for many purposes. A lot of people, especially
>for multi-person projects, like the way C++ encourages structuring
>programs.
Eh... I've never seen so many statements that are so contrary to real life
experience written in one paragraph :)) . C being "clean" and "simple"?
It's hardly simpler than Assembly, and its syntax gives a bad feeling of
kludginess. As for C++ encouraging structuring programs... since anything
written in C will compile correctly in C++, my experience is that it
encourages a hybrid approach which ends up destroying any structure in your
programs (not that I ever programmed in C++, but I read enough of those
programs to see a trend :)) ).
________________________________________________________________________
En réponse à Mark J. Reed :
>It also removes any ability to sanity-check. With keyword block
>boundaries, it's possible to write plugins for your favorite editor that
>automatically verify that the indentation and keywords agree. When the
>indentation *is* the structure, there's nothing to check against. It
>also removes the ability to use indentation to make particular lines of
>code stand out, a very useful device for temporary debugging statements.
>etc.
I completely agree. When I first learned Python (under the influence of
Boudewijn Rempt :)) ), I thought it was a great idea. But I soon saw the
limitations of the indentation system, and the OO in Python looked too much
like an afterthought to "feel" right for me (not that I think that OO is
*the* way to go, but if you're going to be OO, I'd rather have it all the
way rather than half-hearted. That's why Java disappointed me eventually -
that, and its longwindedness - and why I feel Ruby is the language *right
for me* :)) ).
>Python is an okay language, but its advocates tend to have this idea
>that it's the end-all be-all and that other languages - especially Perl
>- are Wrong. From what I've read, in this matter they are taking their
> cue from the language's inventor, Guido van Rossum, who is a little
>too convinced that his way is The One True Way. This attitude stands in
>stark contrast to that of, for example, Larry Wall (who created Perl),
>John Ousterhout (who created TCL), or Yukihiro Matsumoto (who created
>Ruby).
Indeed. Mats goes even very far in his relativism: he created Ruby to fit
him, and nobody else. He loves that Ruby is gaining acceptance over the
borders of Japan, but if it didn't he would still work on it (his attitude
is very reminiscent of the one of Linus Torvalds towards Linux :) ).
> Ruby is, incidentally my current favorite language of the type;
>it's completely object-oriented (in the way that Python advocates often
>claim Python is, but it's really not).
Indeed. I love that literals are objects too. Although it's mostly useless,
I get a kick at writing -1.abs ;)))) .
> It shamelessly borrows many of
>the shortcut features that make it possible to write quick one-liners to
>get a one-off job done in Perl, but recasts them such that they don't
>break the O-O design.
Yep. I've heard critics say that Ruby is not completely OO because it has a
functional puts for standard output (as well as a functional printf()).
They would have rather seen things like stdout.puts and stdout.printf. What
they don't get is that those "functions" are just methods of the Object
class (they are *not* primitives. Ruby has only very few of those :) ), and
shortcuts for, you guessed it, stdout.puts and stdout.printf ;))) . About
printf(), I love the way Ruby shamelessly plugs in the syntax of other
languages, so that people who are learning the language don't feel too much
in foreign territory :) .
> It has a generalized iteration model that is just
>gorgeous in its elegance (a feature borrowed from Smalltalk).
Yep, n.times do ... end is a great way to program loops (and array.each
conquerred me ;)) ), and closures make code so much more intuitive to write
:) . Well, as you may guess, I'm in love ;)))) . Ruby is the first (and so
far only) language which seems to adapt itself to my way of thinking,
rather than obliging me to adapt my way of thinking to itself. And at the
same time, it is extremely readable :)) . I have yet to program anything of
substance in Ruby, but I know already that I found *the* language fit for
me :)) .
>I think it's well worth a look for Python programmers.
Indeed. Although for some people it will probably not impress them (but
Ruby is modest, and doesn't mind when it's not liked ;)) ), I think many
will be charmed by it.
>I'm also professional programmer. Most of the work I get paid for is in
>Java, but I also do a significant amount of work at the "glue level" in
>Perl and shell script. When I program a tool for my personal use, or
>just something for fun, I use Ruby, except in environments that mandate
>one language or another (e.g. gdesklets have to be written in Python).
>All the dynamic stuff on my website, including the "render this text in
>Okaikiar's writing system" page, is written in Ruby.
Although I'm an engineer of formation, with little programming education (I
did have classes of Pascal, C and Matlab, but that's about it. The rest is
self-learned, whether it be Java, Perl, Python or Ruby ;) . I dabbled with
Scheme to try and understand the underlying structure but gave up as my
brains refused to accept it ;)) ), in my last job I'm becoming the
company's main programmer. For that, I had to recycle myself into a Fortran
(95) programmer. After 3 weeks of self-formation I was able to begin
working on large scale programs (I attribute the speed of learning to the
fact that Fortran in free form doesn't have a very original syntax ;) ),
and since we bought Winteracter, I'm now making GUIs directly in Fortran
(great, since Fortran doesn't have any good way to communicate with other
languages and APIs). Now, don't get me wrong: I will never advise Fortran
as first choice to someone who wants to learn a new programming language.
After 6 months, I still have difficulties with many of its syntax choices,
and I hate how instead of making the compiler more intelligent the Fortran
designers decided to force the programmer to use a syntax that will
optimize compilation, but is not very programmer-friendly :(( . And the
fact that Fortran's scoping rules are very archaic doesn't help, for my
brains more used to a OO approach to scoping ;) . But I have to admit that
in the particular niche where I work in (heavy computation for flow
simulation), Fortran is king. Its array syntax is the best around for flow
simulations, and it is particularly good at optimising such calculations.
Some people are trying to develop similar tools for other languages (like
Blitz++ for C++), but they are nowhere near the power of Fortran's arrays,
and their syntax is clumsy at best.
Now, I'm waiting for Fortran 200X which will feature true OO and easy
bindings with C (which will open the whole C library available nowadays for
use in Fortran). But knowing the habit Fortran designers have to be
extremely late in their versioning (after all Fortran 95 was finally
implemented in 2000 ;)) ), I doubt it will appear before 2010 ;))) .
___________________________________________________________________________
En réponse à Henrik Theiling :
>Be ensured that I will have a lock at it before I try Python. I
>disagree about the fall-backs of layout rules, but I see you have
>strong arguments for Ruby, so I will definitely give it a try.
Please do! Ruby has a lot to offer, although it's a young language (current
version 1.8.1 IIRC) with not a lot of libraries available yet. But the
situation is changing quickly :) .
http://www.ruby-lang.org/en/ is the best place to start I think :) .
>As to the rendering of text: I used Metafont for Fukhian script --
>unbeatable in quality and expressivenesss --,
I agree. I still have to work on that METAFONTtutorial :((( . It's coming
along, but slowly, due to the work pressure I'm under currently.
__________________________________________________________________________
En réponse à Philippe Caquant :
>I specialized in Pick Systems, which I found very
>practical (1), although there are lots of lacks in it.
>Now it turned to be old (1968), so I have to requalify
>on something else, and I'm very puzzled. In former
>times I also used Cobol and PL/I (all for business
>applications, of course, not for linguistics). I never
>had to use C++.
Lucky you :))) . Luckily, me neither (the simple idea scares me to death!
;))) ).
>So I'm trying to find advices on the very many new
>languages appearing everywhere, most of them as
>freeware. I bought a book about Perl, looks powerful
>but nearly unreadable. I really wondered about Perl
>philosophy: what can be the use of saving a few
>keyboard hits if you lose 100x more time trying to
>decipher program sources ? It's very irrational to me.
Perl is definitely programmer-oriented, and was originally meant for quick
one-liners that the programmer writes once and forgets he ever wrote them.
It shows in the syntax, and the way other things have been built upon it
(like Object Orientation. Now, if you want a course on how Object
Orientation works behind the scenes, there's nothing better than Perl. It
asks more to the programmer than C++ itself does! But if you just want to
program in OO and get things working, I'd advise against Perl, at least
until Perl 6 appears :) ).
>Anyway, I hadn't yet finished reading the book when I
>was warned that Perl was declining and that by now I
>should learn PHP, or Python, or whatever. Some tell me
>of MySQL, others of Zope or Java and many more exotic
>and more or less confidential things.
I think Java and Python look good on a CV. But as said before everyone
should take a look at Ruby. Its elegance is just something that cannot be
missed ;))) .
>I wonder. Really mastering any language needs at least
>a few months practice. So this is not a neglectible
>investment, in time as in money. And if the language
>gets outfashioned after 2 or 3 years, you have to
>start (nearly) everything from zero again. What about
>productivity ?
Mark gave very good answers to that.
>As for Ruby, this is the first time I hear that
>name...
Hehe, Ruby is still quite unknown outside of Japan (its creator is
Japanese). But there, if we're to believe the rumours, it's already more
commonly used than Perl (I personally don't know if they are believable.
But I do believe that Ruby has a place as equal with Perl and Python, and
actually with heavyweights like Java, C++ and beurk.NET - I had the
occasion to see the platform at work, so believe me, the "beurk" is a very
unbiased comment :) . I just can't understand why so many people seem to
think it's the best thing since sliced bread - too ;)) ).
Christophe Grandsire.
http://rainbow.conlang.free.fr
You need a straight mind to invent a twisted conlang.
Reply