Tuesday, December 29, 2009

About C / C++ / C#: Last Newsletter of 2009

About.com    C / C++ / C#
In the Spotlight | More Topics |
  from David Bolton
It's sometimes easy to forget the pace of progress that impacts our lives. Ten years ago C# didn't exist, seven years ago no Facebook, five years ago there was no Google Maps and the iPhone is only three years old. That was quite a decade for innovation. I just wonder what the next ten years will bring. One thing for sure, people will still be learning C/C++ and C# as well as all the other useful technologies. Anyway don't forget Challenge 30's deadline is next weekend. I'm away until then, have a great week and a Happy New Year! I will still be posting while I'm away...

 
In the Spotlight
Optimizing C++ - an E-Book by Agner Fog
Continuing yesterday's theme on improving C++, here is a 155 page PDF E-Book by Agner Fog of the Copenhagen University College of Engineering on Optimizing software in C++. It's intended to do one thing and that's help speed up your code if it's 32 or 64 bit running on a standard PC platform, irrespective of the OS, be it Windows, Mac or Linux. The author also provides an open source library of fast assembly language routines which are replacements for standard library functions or add extra functionality such as rounding. The download link is on page 13 of the pdf. Although the E-Book is aimed at experienced developers, because of his occasional use of template classes I reckon anyone would benefit from reading it as it's chock full of optimization tips, I know I did and I highly recommend it.



 
           More Topics
An Alternative STL - EASTL
Electronic Arts as a publisher of many games recognized that the STL isn't ideal for their needs so they developed an alternative- EASTL. Though the code for that isn't available, Paul Pedriana of EA has written a very comprehensive document about their version of the STL and why they did it and it's excellent. He justifies this so: "Most significantly, game software requires large amounts of memory but has a limited amount to work with. Gaming software is also faced with other limitations such as weaker processor caches, weaker CPUs, and non-default memory alignment requirements." Changes were done to give higher performance with greater control of allocators, added validation of all containers and allocators made it easier to debug, tagged memory allocations plus lots more, much too much to cover in a quick overview like this. If you code in C++ this is fascinating reading, and don't miss out the appendices. Significant is the fact that they don't use exceptions (same as Google) unless really necessary. Plus there are some improvements which they recommend to STL, eg adding push_back(void) to containers to add an extra (empty) element, ie increase the capacity. A final note on this, they say this about C++. "C++ isn't taught much any more in college. It's hard enough finding people who know C++, and harder finding people who understand templates of the kind you find in STL.". Now there's a big hint to learn C++ if you want to create games!

 
Git, Mercurial or ...
A mate of mine who I've been helping with C# visited last weekend and I suggested to him that we use a distributed VCS so he and I could maintain the code base. Though I've showed him Subversion, it really needs something that he has to use so distributed is better that way. Over a 15 year period, we have developed a program for managing dog shows (in the UK- Kennel Club standards) that started in Turbo Pascal then moved to Delphi and is now C#. I've not done much with any distributed version control system, being a Subversion fan so was keen to try out both Git and Mercurial. Git I found very powerful but it needs to be used from the command line really as the GUI tools provided are distinctly minimal. Mercurial though works with TortoiseHG, similar to Tortoise that I know and love with Subversion. It adds extra commands into Windows Explorer so you just right click on files. I have used command line tools for version control for years and it's easy to make mistakes, miss files etc. On occasions I was checking in 60 odd files and tracking and committing that could easily take 15-30 minutes! Moving to Subversion was an enormous increase in productivity as you could see which files had been changed and folders of files could be selected and checked in en masse in one go. However I've just discovered Git Extensions which provide a Tortoise like experience (in Windows) and also an plugin for Visual Studio. It's a tough choice! And there's also Bazaar (thanks to Pedro for the tip), so it's not settled yet.

 
 
Sponsored Links
 
Feeling Under the Weather?
Evaluating Your Cold Symptoms
How to tell when a runny nose is just a cold, and when it might be turning into something more serious and require a visit to the doctor. More>

C / C++ / C# Ads
Advertisement
 
 
Visit Related About GuideSites:
Search About   

 
Sign up for more free newsletters on favorite topics.

You are receiving this newsletter because you subscribed to the About C / C++ / C# newsletter as jarloszy2.profile@BLOGGER.COM. If you wish to change or remove your email address, please visit:
http://www.about.com/nl/usgs.htm?nl=cplus&e=jarloszy2.profile@BLOGGER.COM

About respects your privacy. Our Privacy Policy.

Our Contact Information.
249 West 17th Street
New York, NY, 10011

© 2008 About, Inc.

No comments: