Stephen Smith's Blog

Musings on Machine Learning…

Should We Still Use the C Programming Language?

with one comment

Within Sage Accpac ERP, most of our Business Logic (our Views) are written with the “C” Programming Language. C was originally developed to write the original Unix kernel in. It was intended to be nearly as efficient as assembly programming but way more productive for programmers. C is still in wide use today. The Linux kernel and many open source projects are still developed in C. Many Microsoft products are still written and developed in C. Most video games are developed in C.  The original idea of C was to be a portable language where you can compile your programs for different platforms, like Linux, MacOS or Windows; and in fact we can compile our Views for either Windows or Linux.

We often get asked whether we will re-write this Business Logic in a more modern programming language like C# or Java. These are object oriented derivatives of C with many of the bad things in C removed (unlike C++ which keeps all the “bad” pointer stuff in). Part of the question is whether there is any Business case for doing so? Would C# or Java make a difference for end user customers? Is this a necessary step, no matter how expensive, to keep the product maintainable and capable of delivering the features and functionality required for tomorrow?

While contemplating how old C is, I ran across a news article celebrating COBOL’s 50th birthday and pointing out the 70-80% of business transactions in the UK are still processed by COBOL programs and that 32% of enterprises still employee active COBOL programmers. I guess this shows how persistent technology can be. How hard it can be to re-write. And how much mileage you can get from an older technology. The ROI on these original COBOL programs would turn out to be huge, given how long they have been in service.

For us C has been very powerful and we’ve gotten a lot of use out of it. But questions remain. Universities tend not to be teaching C programming anymore, so can our ISV partners as well as ourselves continue to find enough C programmers to meet our needs? Is our C code getting old? Is bit-rot setting in? Is it worth re-writing in a new technology for the benefit of re-factoring all the code during the re-write to make it more maintainable and efficient alone. There is also all the logistics of transitioning from the old technology to the new; managing things when half the system is in the new technology and half in the old technology. Currently there are thousands of Views and hundreds of thousands of lines of C code; transitioning this will be a major undertaking.

Written by smist08

April 11, 2009 at 5:11 pm

One Response

Subscribe to comments with RSS.

  1. Many of the COBOL code is in one of a kind large (huge?) business systems that don’t seem to evolve that much. In our paradigm, there is more of a Darwinian push to surviaval of the most adaptable.

    I had a propect tell me, yesterday, that she wanted a POS system that would link up with “social networking tools” like Facebook and such. From a businessperson’s view, that is quite reasonable. (She is probably 28 years old). All her cusotmers have facebook accounts. Why can’t they just add her store as one of their groups and voila, all one would want to konw about one’s customers is there to see.

    Can a Cobol program do that? Can a C program do that? What would it take to have that kind of seamless back and forth that our newest and future customers are asking for. I’m going to Insights on Monday to see if any of the POS systems out there have done any work on this. I can hear them now.

    “You want WHAT?” and after I explain it I will hear: “No, You Don’t”.

    Good luck in finding the right tool for the “next great thing”. I just suggest something that is “nimble” and adaptable so it won’t be extinct before too long.

    Free Polazzo

    May 8, 2009 at 1:38 am

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: