A brilliant article over at the Dobb’s Journal asks a great question about computer programming languages. The article titled, “Theory Versus Practice: The Great Divide in Programming Languages” goes into the difference between programming languages designed to run computers and computers designed for the best programming languages. The article, is short and concise and the author builds his case very well. Continue reading
Buffer overflows should be a solved problem in C and C++ given how widely they are used for critical software. You can get tools for these languages that help, but for the uninitiated, that is an unknown option. Similarly, C# has a design that greatly minimizes the buffer overlow issue. The speed of C and C++ with the design of C# would be intriguing.
Three programming languages whose name is a single letter can cause confusion. You have C, C++, and C#. They seem similar but basically are incompatible with each other. You can write just about anything in C and it was the first language of the 3 to exist. C++ allows you to do many things you can do with C but has additional definitions that C will not recognize. Most C code can be applied to C++ but the reverse is not true. C# is in a similar shape. There is much more to C# that neither C or C++ would recognize. C# can do C-style pointers in a special mode of the language that is never used in practice. About 90% of C++ and its standard library is unrecognizable in C#.
A nearly common syntax is to cut down the time to transition from one to the other. Beyond that, the similarities are purely superficial. C programs can be faster and more comprehensive at a systems level than C++ or C# programs. C++ programs can have greater depth of design definition since it is multi-paradigm. You can create a software program in less time with C# with less error than either C or C++ at a occasional cost of speed.