Saturday, May 29, 2010

Complexity V Speed

If anyone happens to read this, I'm interested in your general opinions about software complexity versus software speed. Over time, development APIs have become increasingly layered, and even increasingly abstracted programming languages have been implemented to use and to be dependent on such APIs. For example, take the rather low level but blazingly fast application created in C with Xlib, as opposed to a C# application using .NET and WPF. The former application, though coded through an excruciating process, launches almost instantaneously, as the user perceives, interacts instantaneously in the same manner, and only consumes a negligible amount of system resources. The latter application exhibits the opposite behavior--coded almost instantaneously, but taxing system resources and making the user wait often. I've always looked for a middle ground. What do you use as a solution to avoid both the coding horror of a low level API and the poor performance of a heavily abstracted API?