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

Re: Réf. : Officially off the rails now (was Re: what is the bestlanguage for go: Re: [computer-go]Scoreestimating)



What you  say about Perl  is actually not  ridiculous at all.   I have
programmed in  at least a  dozen languages, but  as soon as  I learned
perl, it was the language I  always reached for unless I really had to
have the performance.  It just made everything else look so hard.

But in my  mind Perl was just the first language  of a particular type
of language.   I'm talking about highly  flexible "scripting" language
that really  are a  lot more alike  than different and  includes perl,
python, ruby  and lua and maybe  others now that I  haven't yet looked
into.  (Pike comes to mind as another in the same genre which I intend
to take a nice hard look at.)

These  languages make  it almost  trivial  to do  certain things  very
quickly  and easily.   People  will  fight over  the  merits of  these
particular choices, but when push  comes to shove, they all share some
wonderful features and super ease of programming.   

My personal favorite is Ruby  which I think outshines these other very
similar languages.  But I don't fight  over this, I think they are all
great.  Python  and Ruby are quite  close in a  lot of ways and  I see
them as  quite a nice  improvement over Perl.   But they all  have the
same ease of use feel.

I keep looking for the ideal  language, but I don't think it will ever
exist.   I  am  hoping to  find  something  that  is super  easy  like
Ruby/perl/python but has the execution speed of the advanced assembler
I use (called C.)  That  language does not exist.  Ruby could actually
be the  only language  I would need  if performance didn't  matter (at
least for most things.)

Even though  I much prefer Ruby  over Python, I might  be convinced to
change my  mind based on some  technologies that are  supposed to make
Python fast.  I'm  thinking of "Psyco" and "Pyrex"  which are things I
indend to  look into.  But I  haven't evaluated them  yet.  I'm pretty
skeptical, but if the claims are  true, you should be able to "easily"
produce program that execute nearly as  quickly as C code.  If I could
consistantly get over half the speed  of C, I might be willing to take
the rest  of the performance hit for  being able to program  in such a
wonderfully easy language.


- Don






    hello,

   the choice of a programming language to program game of go is far from
   obvious.

   When I left school (many years ago), I was convinced that the best language
   was the language that you know best.
   My personal professional experience has changed my mind : since 2 years, I
   use perl for many of my every days tasks, it has appears to be fabulously
   more effective than any other languages I know (C, C++, Ada, ksh, python,
   scheme, caml, java).

   I do not advocate that perl is the ideal language : it is a lot better than
   any other language for my specific professional tasks (software integration,
   validation, data preparation, ...). 

   I do not know which language is better for programming go. There are many
   points to take into account :
   1 Speed of execution, resources consumption
   2 High level abstractions
   3 Speed of programming
   4 Ease of maintenance and improvements
   5 Possibility to share code with other programmers
   6 Readibility

   I have heard of some developers using meta programming. In this case, the
   meta program and the generated program may not use the same language.
   The meta program has only to take into account points : 2, 3, 4 and 6.
   The generated has to take into account the point 1 and may use shared code 5

   This suggest to use two different languages but this is not so obvious :
   perhaps the importance of the point 1 (performance) is overestimated and
   there may be some advantage to have the meta program and the generated
   program in the same language.


   Whatever the answer is, there is no better place than this mailing list to
   exchange ideas about this subject : what is the best language to program go
   ?

   best regards

       Jef

   -------Message original-------

   De : computer-go
   Date : 09/01/04 03:14:32
   A : computer-go
   Sujet : Officially off the rails now (was Re: what is the bestlanguage for
   go: Re: [computer-go]Scoreestimating)

   Enough my-language-is-better-than-your-language? Please?


   William Grosso

   At 12:48 PM 8/10/2004, Peter McKenzie wrote:

   >>Someone said this:
   >>
   >> >>I'm not sure why it wouldn't be OK for bigger programs (ie. a Go
   program)
   >> >>as long as you're prepared to live with dynamic typing and code up
   plenty
   >> >>of Unit tests.
   >>
   >>Whoever wrote this doesn't quite get it. Ruby and Python are better
   >
   >I said it and I think I get it just fine thankyou :-)
   >
   >>for for BIG projects and was designed for this. Much better than
   >>lower level languages than Java or C++ etc.
   >
   >Java and C++ have been proven on countless huge projects, I don't think you
   can say the same about Ruby or Python. Static typing comes into its own when
   you hava a very big codebase (multi million line) with many (say 20+)
   programmers working on it. In that situation it is often communication
   between programmers that becomes a bottleneck, and static typing definitely
   helps solve that problem in a way that dynamic typing can not.
   >
   >>
   >>The unit tests is not more necessary in ruby/python than these other
   >>languages, it's LESS needed, but it should be done. You will always
   >
   >I disagree. With dynamic typing the compiler catches fewer errors at
   compile time, therefore you need more unit tests to catch those things.
   >
   >>get better results in any language by testing as you go and making
   >>yourself go slow to be thorough.
   >>
   >>Ruby is strict about types which is the more important thing. It's
   >>not STATICALLY typed but it is strictly typed. You cannot add an
   >>integer and a string, for instance, like you can in perl.
   >
   >Ah, but you can write the source code to do it and you must rely on testing
   to detect it.
   >For example the following Ruby program runs just fine until you enter "b"
   at which time you get a *runtime* error:
   >
   >a = gets.chomp
   >if a == "b"
   > a += 100
   >end
   >
   >>
   >>Unless python has changed, it doesn't hide data very well. Ruby is
   >>way ahead unless python has fixed this, but Ruby always had it right.
   >>
   >>- Don
   >
   >cheers,
   >Peter
   >
   >
   >>
   >>
   >>
   >>
   >>
   >>
   >> I think this computer language discussion is probably stretching the
   >> patience of people whose main interest here is computer Go so I'll try to
   >> make this my last post on the topic :-)
   >>
   >> >>Regarding Mark's question about large scale development: I'm not sure
   how
   >> >>Ruby would fare there. It has pretty decent OO features (better than
   >> >>Python IMHO) which should help. My biggest Ruby program to date is only
   >> >>about 500 lines and it is certainly fine for anything of that size.
   >> >
   >> >I really go back to read the Ruby OO features, I did not found anything
   >> >that don't exist in python. Maybe you can give me good pointers on web.
   >>
   >> The things I didn't like about Python's OO were:
   >> - lack of private and protected instance variables
   >> - having to use an explicit 'self' parameter in all methods
   >>
   >> Note that I'm not saying Python is a bad language, just that I personally
   >> didn't like it much. I'm sure that lots of people do wonderful things
   with
   >> Python. I'm equally sure that a sizeable bunch of people will prefer Ruby

   >>
   >> cheers,
   >> Peter
   >>
   >> >
   >> >>I'm not sure why it wouldn't be OK for bigger programs (ie. a Go
   program)
   >> >>as long as you're prepared to live with dynamic typing and code up
   plenty
   >> >>of Unit tests. I'd still see it as potentially much more productive
   than
   >> >>C++ or Java. I agree that speed would be an issue - if you do a serious
   >> >>Go program in it I'm guessing you'd want to re-implement the critical
   >> >>parts in C once they've stablised.
   >> >
   >> >I'm sure that Python can manage such programs.
   >> >For that there is a similar paquages as in java,
   >> >but the import system is even more powerful than java one.
   >> >
   >> >Personnaly I know Python only since six month
   >> >and I already made a full working application (even if not finish)
   >> >which has 888 lignes wich is perfectly extensible and stable.
   >> >It includes: configuration, special ftp client, language source
   detection
   >> >C code processing, batch compilation (with system ("gcc ") calls)
   >> >
   >> >Biggest aplications full works.
   >> >mailman (mail list manager) 33 000 lignes of code.
   >> >Zope (web server and web development environemnt) 403 000 lignes of code

   >> >
   >> >And the point is to realize the same functionnality,
   >> >the code is *really* shorter than java or C++.
   >> >For exemple, in my project, with the help of introspection,
   >> >I parsed a file, transform it into a full working Python object,
   >> >add one simple unittest, all in one file of 79 lines.
   >> >As far as I remember how I worked in java, I would expect
   >> >that the same job in java would require at least three
   >> >classes (one file for each) 80 lines each.
   >> >That's why I rely believe that Python is three times more productive
   >> >than java (even including the learning stage)
   >> >
   >> >So I don't think that big project in Python is an issue
   >> >The integration with C is easy (but not tested personnally)
   >> >
   >> >So I think it meets better the requirements of go application
   >> >than C or java. Maybe Lisp is even better, but I know very
   >> >little about lisp, except that it is harder to learn.
   >> >
   >> >Xavier
   >> >
   >> >
   >> >_______________________________________________
   >> >computer-go mailing list
   >> >computer-go@xxxxxxxxxxxxxxxxx
   >> >http://www.computer-go.org/mailman/listinfo/computer-go/
   >>
   >> _________________________________________________________________
   >> There’s never been a better time to get Xtra JetStream @
   >> http://xtra.co.nz/jetstream
   >>
   >> _______________________________________________
   >> computer-go mailing list
   >> computer-go@xxxxxxxxxxxxxxxxx
   >> http://www.computer-go.org/mailman/listinfo/computer-go/
   >>
   >>_______________________________________________
   >>computer-go mailing list
   >>computer-go@xxxxxxxxxxxxxxxxx
   >>http://www.computer-go.org/mailman/listinfo/computer-go/
   >
   >_________________________________________________________________
   >Check out news, entertainment and more @ http://xtra.co.nz/broadband
   >
   >_______________________________________________
   >computer-go mailing list
   >computer-go@xxxxxxxxxxxxxxxxx
   >http://www.computer-go.org/mailman/listinfo/computer-go/

   _______________________________________________
   computer-go mailing list
   computer-go@xxxxxxxxxxxxxxxxx
   http://www.computer-go.org/mailman/listinfo/computer-go/


   _______________________________________________
   computer-go mailing list
   computer-go@xxxxxxxxxxxxxxxxx
   http://www.computer-go.org/mailman/listinfo/computer-go/

_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/