In the article on “How Polymorphism Works: Part 1” we learned how to create virtual functions. The method which we chose has at one significant problem with it: it requires a lot […]
How Polymorphism Works: Part 1
Polymorphism: the core of object oriented programming. Most modern languages have some concept of interfaces, virtual functions, and classes. Though each language differs in details, and may have specialized concepts, the core […]
No new language will stop your program from crashing
New languages try to improve the lives of programmers by simplifying some aspect of programming. Many make bold claims about eliminating certain types of errors, yet in the end none of them […]
The Ideal Lanuage has a way to format strings
Ultimately any program must communicate with the outside world. Be it showing the user data or sending a text based protocol, the need to format character data is ever present. All languages […]
Why Garbage Collection is not Necessary and actually Harmful
In the world of new languages it seems like garbage collection is standard feature. A way for the runtime to locate unused bits of memory and release them. It has become so […]
What is an atomic operation?
We all know that operations in a computer happen one after the other. Having multiple CPUs and instruction reordering tends to obfuscate the issue. Technically things still proceed in an orderly fashion, […]
The ideal language must be automatically typed
A bane of programming is repeating code and dealing with a myriad of types. The natural response to type overload is to limit the number of types. This runs counter to the […]
The Ideal Language cannot leak resources
The ideal programming language should not leak resources. Resources include not just memory, but also files, network connections, device locks, sound buffers, and anything needing to be acquired and released. Even an […]
CPU Memory – Why do I need a mutex?
Multi-threaded programming calls for semaphores, synchronized blocks, mutexes, or whatever your language happens to call them. Most of us basically understand why we need them: to prevent multiple-threads from accessing the same […]
The Cost – A Function Call
In the grand scheme of execution costs function calls come very close to the bottom of the list. They don’t cost very much at all — at least not in most compiled […]
The Cost – Instantiation and the hidden enemy “new”
Whether C++, Java or any other language, we are all familiar with instantiating an object. In those aforementioned languages the operator new happens to do just that. Obviously CPUs don’t have any […]
The Cost – Programming Performance and Efficiency
As high level languages become more abstract, and offer more convenience features, it is easy to lose track of what the computer is actually doing. While this may be a great boon […]
The Evil and Joy of Overloading
Is overloading a bad thing? Despite a wide variety of new languages supporting some form of it I continue to find articles that say overloading is bad. Worse, I find many articles […]
Rules for Framework Development
Each time I start a new project I find myself looking at the latest batch of frameworks. Lately those are web frameworks, such as CakePHP, RubyOnRails, perhaps JQuery, or any other of […]