Speed

Speed is Relative . 

Drakopoulos Anastasios
anasdrak@gmail.com

Summary. This article describes a problematic on the tools used to compare the software delivered by different programming languages.

Introduction.

Every physicist knows that speed is relative. It depends on the observer's speed. Except for light which is the same for everybody. And that's a mystery. One could claim that the situation is different with computers and especially with benchmarking. But let's think a little bit more about it.

The problem.

When a software solution is developed, it goes through some definitive stages. Analysis , design, implementation and after the implementation support follows. This is a simplified procedure but close enough to the reality. For our discussion is enough to suppose that Software-A and Software-B , both solve the same problem on a computer. We are ready to benchmark in order to find the fastest of them. While benchmarking we find that Software-A is faster than Software-B. So the winner is Software-A.

Time is Relative.

In fact, time is relative too. Time depends on the observer's velocity. A benchmark counts the time the software needs to run on a computer in order to solve a problem. Considering everything else equal, the same analysis time, the same design time, the same implementation time, benchmarking is a tool of great importance. But customers think a little bit different.

Customer's Definition of Time.

A customer counts the time beginning from its decision to order a software solution up to the time that he will have its problem solved. In this case, the real case, customer's benchmark time includes the time consumed by analysis , design and implementation.
Customer's_Time = Analysis_Time + Design_Time + Implementation_Time + Execution_Time

Think Different.

Returning to our initial problem, Software-A is the fastest one if we accept the same analysis, design and implementation time for both Software-A and Software-B. Let's consider the case where Software-A needs more time for analysis, design and implementation compared to Software-B. In this case Software-B will be delivered to the customer much more earlier than Software-A. And the winner is … Software-B. Speed is relative as well as time. It depends on who's counting , computers or customers ?

Conclusion.

Comparing two languages by a simple benchmark of the programs produced it is not a sign of wisdom. Software is produced in order to deliver solutions to real problems as fast as possible. Programming languages should be easy and flexible  enough to help programmers deliver solutions on time. Sometimes, execution time is not a critical factor for a piece of software and delivery time emerges as the most important requirement of the software in question. War games prove both types of cases.

References.
1.”The Need for Speed ” , Alexander Burger, p.135, “PicoLisp by Example: Alexander Burger, Thorsten Jolitz ”