Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Programing languages.

Author: kaqs.1662@bumpymail.com

Date: 12:00:57 08/15/05

Go up one level in this thread


On August 15, 2005 at 14:19:21, Juan Pablo Naar C. wrote:

>Hi,
>
>I'm completely new to programming and I want to learn a language to program a
>chess engine, it will be a long work. I'm planning to learn C++ first, its
>basics but my brother keeps telling me that C++ is old and is not used anymore,
>that Visual Basic.NET is easier and shorter to program. What do you guys think?


Your brother is wrong.  C & C++ are probably the most heavily used programming
languages in the world.  And for raw performance, they are pretty much king.
(Partially because they are so close to what the cpu can do, and partially
because they are so heavily used that compiler writers put so much effort into
making the compiler generate super efficient code.)

The .net stuff is not a "good thing."  In spite of Microsoft's push, it is *not*
catching on.  Stick with the real stuff.

The .Net stuff is also slower than regular native executables.  (And, to be
honest, many people object to having to install the .net stuff onto their
system, just to run a simple program.  Yes, I'm one of them.  It looks like
Microsoft is going to shove .Net down our throats whether we want it or not.)


Since you are completely new to programming, stay with C.  Then later you can
learn C++ if you want to.  C++ has some advantages over C, but it also has
disadvantages, especially for beginners.

Things like VB (.net or otherwise) can help with the GUI stuff, but there are a
few gui's already floating around that you can graft into your program.  Or you
can do a simple command line interface that hooks into the various WinBoard &
UCI front ends.

Or even stay with a simple command line interface.  A standard 'console'
application.  You'd be surprised how many modern chess engines still can do a
simple text inteface.  Some will print out a little text board representation,
others wont.

Once you get past the GUI, VB etc. isn't really going to be any advantage over
some other language.  You'll still have to do the same kind of programming.


Since you are new to programming, another language you could consider is Pascal.
 Such as FreePascal.org  Pascal isn't really all that common anymore, but it's
pretty easy to learn, provides strong type checking (to help keep you out of
trouble.)  It was originally designed to be easily learned.  And the extended
versions of Pascal actually make the language useful.  And FP has an IDE called
Lazarus, which admittedly I've never used.


However, having said all of that....

Since you are indeed a beginner, it might actually be to your advantage to use a
language that has a nice IDE (Integrated Development Environment)  It might not
be the best choice for a chess program, but it might help you lean programming.
Then later, you can switch to a more powerful and versitile language.

So go with whatever looks like it'd be the easiest to learn.  Not just the
compiler and the IDE, but the books (free or commercial) that look like they
would teach you the best.  Once you've grasps the concepts of programming, then
you can switch.  You'll be in a better position to make an informed choice,
rather than simply listening to what others suggest.

(As Robert Hyatt has pointed out a few times, later in life, you tend to program
in the style of whatever language you learned first... Those of us old enough to
have used 8 bit micro's with build in BASIC in ROM do tend to still occasionally
program as if we were still using line number BASIC...  Bad habits can be hard
to break! So I'd suggest doing a language that is widely used and has a
future...  Not just something 'fashionable'.)



Microsoft does have their (currently free) Visual Express Beta for C++, and VB.
(They also have a few other free compilers (command line and for WinCE), but
those wouldn't be suitable for you.)  With the proper extras, they can generate
native applications.

You can also do MingW gnu C compilers and use one of the various IDE's to help
development.  (There are lots of free & opensource IDEs.  Not the most advanced,
but they work.)





This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.