[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)



Old habits die hard. :-)

If I were starting again I would use Java. I don't think memory allocation
in Java is slower than in C++, but if you avoid memory-allocation
alltogether, then C++ is hardly faster than Java. In that case you can
almost literally convert a C++ program into Java. Which is what I did with
Goliath and which is why it's performing pretty well.

In a new program I don't see how I would be able to avoid memory allocation.
Array-based data-structures may be faster, but I don't think they're always
flexible enough. In that case I'd much rather prefer a language like Java
over C++. Using FlyWeight patterns for your data-structures can keep
memory-allocation to a bare minimum in those areas where speed matters.

Even in Java a lot of things are cumbersome and get repetitive. So I can see
that more productive languages are possible. Maybe Ruby is such a language,
but the performance hit it will probably involve makes me shy away from
spending time to learn it. It takes a fair amount of time to become
comfortable with a new language and there's also quite a psychological
barrier for most programmers (including myself) to switch programming
language. And don't forget the existing code-base.

Anyway I'm not expecting miracles from any programming language. Go is a
specialised subject for which all the primitives will have to be defined
from scratch. It's as David wrote, you need to be able to define the
necessary abstractions and building blocks. I don't see how any existing
programming language would do that better than any other standard OO
language.

This explains why everyone tends to stick to the language they know best.

    Mark Boon

P.S. Oh and I don't buy the Perl advocacy. Any programming language that
looks like randomly typed characters can't be suitable for big projects. ;-)



-----Original Message-----
From: computer-go-bounces@xxxxxxxxxxxxxxxxx
[mailto:computer-go-bounces@xxxxxxxxxxxxxxxxx]On Behalf Of David Fotland
Sent: Thursday, September 02, 2004 4:04
To: 'computer-go'
Subject: RE: Réf. : Officially off the rails now (was Re: what is the
bestlanguage for go: Re: [computer-go]Scoreestimating)



>
>
> 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 ?

If I was starting again I would use C++.  The core functions need the speed
of
C or C++, and I find that I write much more reliable code in C++, and I can
create fast abstractions that are much easier to understand than pure C
code.

For speed, I would avoid doing any memory allocation or freeing in the high
speed
code, so languages like Java or Lisp are too slow.

I like python, but I'm not experienced enough with it to write code quickly.

I find it too hard to read perl code that was written long ago, but perhaps
that
is just because I'm less familiar with perl than the experts.

David

>
> 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
> >> >>C++ 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/


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