What You?ve Missed With C++: 2011 So Far
[July 13, 2011] The past few months have been a jam-packed with a few developments in terms of C++. Not only did C++0x get the almost unanimous nod of the industry to be good enough to be called C++11 but there's also a few stories that have come out that need some attention too. There was the Google findings which show that C++ is by far the best performing programming language (if you have enough programmers that know the language well enough to wield it proficiently) and C++ AMP which aims to bring massively parallel C++ programming closer to the mainstream by Microsoft. Also, last May BoostCon 2011 was held with a pretty good lineup of talks that Boost users would be most appreciative of. It seems like 2011 is the year that C++ dusts off its boots and starts marching on again to the top of the programming language hill. Or is it?
Computer Software Engineers Expected to Increase 32%, With a Caveat
[July 1, 2011] The US Department of Labor's recent publication of the Occupation Outlook Handbook, 2010-11 Edition, outlines the changing work environment we live in. The great news for programmers is that their share of employment is expected to increase by 32% between 2008-2018. Yet, those who get the higher paying jobs will need a few features in their bag.
Another Decade of C++: New C++0x Standard and Google Benchmarking
[June 13, 2011] "The world is built on C++," says Herb Sutter. For the nearly 30 years since its release it has been the "atom" of the computing world. Numerous applications rely on it: Google Chrome, various Adobe programs, nearly all Windows OS's and software, Firefox, Thunderbird, MySQL, and more. A recent benchmarking test by Google is just one example of the firm basis the new C++0x standard to build on.
iOS Demand May Put Objective-C in the Spotlight
[May 20, 2011] One of the most popular trends among programmers is the iOS platform. The onset of Apple's fleet of mobile devices combined with their high demand has created a huge demand for Objective-C programmers. The "underdog" status of Objective-C compared to other C variants may change.
cpp-netlib 0.9.0 Released!
[April 28, 2011] After the one-week beta period for the 0.9.0 release, I'm happy to announce that the official 0.9.0 release is now available for general availability at the Github project downloads page. This 0.9.0 release is the first version of the library to be submitted for review to the Boost C++ Library project. Most changes that happened from the beta to the official release involve adding debugging information to critical parts of the server and client implementations as well as documentation and Boost.Build system updates.
cpp-netlib 0.9-beta Out Now!
[April 14, 2011] After months and months of delays, finally the 0.9-beta version of The C++ Network Library project is out now. The beta period will take a full week before an official release is made available for general availability. The 0.9 release will be the version that gets submitted for review to the Boost C++ Library project.
C++0x will be C++ 2011
[March 31, 2011] As you might already have heard from other places and read from other sources, the ISO C++ committee has now finally voted to publish the current Final Draft International Standard (FDIS) for the language referred to affectionately as C++0x.
Free/Delete Not Returning Memory To OS?
[March 17, 2011] As I do keep tabs on what's going on with C++ around the web, I chanced upon this short and succinct article about ?free' and ?delete' not returning memory to the OS from Thought Garage which starts with:
Broken C++: Old Compilers
[March 3, 2011] Up until recently I've only had to deal with standard-compliant C++. I've pretty much enjoyed writing C++ code that abides by an accepted and well-defined standard. This means I have been for the most part using most of the standard features of the Standard Template Library. That changed most recently when I had to deal older versions of compilers which did not support standard C++, and thus I felt the pain that most others have had to deal with a while back.
Green Computing with C++
[February 17, 2011] Have you heard of green computing? It's basically the concept of lowering the energy requirements of computers in order to reduce the carbon footprint of datacenter operations and desktop/mobile applications. The idea is that since computers already suck out a lot of juice from the power grid around the world, at least we should be able to reduce the amount of heat that the computers generate to save on the costs of cooling the machines in data centers.
How To Wield C++ In An Effective Manner
[February 3, 2011] There is a largely unspoken understanding between/among C++ developers that goes a little something like this: "any sufficiently complex problem can be solved by working with the appropriate abstractions". This is not a hard/fast rule but it's something that the senior C++ guys understand and internalize from an engineering perspective...
Why Generic C Programming Has Not Taken Off
[January 21, 2011] I thought about the subject a little more and tried to look into myself and what was stopping me from learning generic programming earlier in my C++ programming experience. One recent interview I had still sold C++ as an Object Oriented Programming language, which was surprising to me because it was only half-true. I knew better than trying to correct the interviewer, but that's a different thing. After a little introspection, here are a few reasons why I think GP has had a hard time getting into the mainstream.
Writing a C Makefile
[December 30, 2010] There are a few things that you as a programmer can do to simplify your coding experience. You can use an integrated development environment (IDE). There are several free IDEs out there that do a surprisingly good job consolidating all the aspects of coding and simplifying them to the point of brain-numbing monotony. That's not the way I like to code. I prefer to do my coding in vim, plain and simple. So when it comes to managing a large programming project, I need a way to make sure that all of my files are up to date when I compile. I accomplish this through the use of a Makefile.
Aculab Simplifies C Programming
[December 16, 2010] When Aculab introduced its AMS Server a few months ago, it intuitively knew that the ability to create telephony-based applications in less time-and for less money-would be a concept that would be readily embraced by various developer communities.?
Writing a Quality Function Driver
[December 2, 2010] After my last article on writing stubs, I figured I would follow up with how to write function drivers. Where stubs are miniature functions used to test your main code, a driver is a miniature main code to test your functions. Knowing how to write an effective driver is a key tool in producing valuable functions.
Writing a Quality Stub Method
[November 18, 2010] When writing a program of any size, it is always a good idea to write incrementally. What I mean is that you want to write one piece of code and test it till you work out all the bugs. Then once it works the way it's supposed to, you add more code to it and test that section. Continuing in this fashion will eventually get you a complete program with minimum bugs in it.
Definition of Preprocessor Commands
[November 4, 2010] Everyone uses preprocessor commands in C and C++. There is no way to get around it. Take for example the most basic of all programs, the introduction to programming, the "Hello World" program. Unless you start with
#include, you're not going to get very far.
Manipulating Data on the Bit Level
[October 21, 2010] There are few occasions in programming C and C++ where you will ever need to reach down and manipulate bits of data to make your program work. That is the point of abstraction after all, using high level language to handle all the low level stuff. There will come a time where you will find bit manipulation to be useful, and here are the basics of doing just that.
Exploring Operator Precedence in C
[October 7, 2010] Every programming language follows general guidelines when it comes to operator precedence, but every so often there are disparities that can create unexpected results, especially in logical statements. These are the rules that C follows, according to Practical C Programming, by Steve Oualline.
Creating Random Generated Number With rand()
[September 23, 2010] Whenever I am writing a program that requires random number generation, I turn to the tried and true
rand(). But how random is it really? I decided to find out.
Intro to C, an Interpretive Language
[September 9, 2010] Yes, you read that right. In Google Code there is a project called picoC. PicoC is described as a "very small C interpreter" and is available under the New BSD License. It is very small in fact, only around 4000 lines of code (written in C).
Overriding Operators in C++
[August 26, 2010] When creating custom classes, as is often the case in object-oriented programming, there are two different ways to handle interactions between your class and other objects. You can write methods to handle comparisons or you can override operators with the same code. Doesn't seem to be much of an advantage either way you go.
Perl in C Part 2
[August 12, 2010] In order to evaluate the output of a perl interpreter within C code, there are two functions which can be used. These are
eval_pv. Inside your main function, you must manually declare what would normally be defined in your arguments.
Perl in C Part 1
[July 29, 2010] Perl, which is an extremely flexible and fluid language, in itself written in C, and as such it is easy to incorporate it into your own programs. This is not always necessary for most programs, as it is easy to call a Perl program in its own process by using
popen. For persistent programs, this can be a major time-saver as Perl will only be loaded into memory once.
Let’s Get Virtual, Virtual…
[July 15, 2010] Even though I have used virtual functions in the past, I never really understood them. They always seemed just beyond the realm of what I believed I could do with a strict typing language like C++. Of course, I had just a vague grasp on polymorphism at the time.