{"id":117,"date":"2016-02-19T22:14:50","date_gmt":"2016-02-19T22:14:50","guid":{"rendered":"http:\/\/blog.boachsoft.com\/?p=117"},"modified":"2016-02-19T22:14:50","modified_gmt":"2016-02-19T22:14:50","slug":"overheard-in-computer-software","status":"publish","type":"post","link":"http:\/\/blog.boachsoft.com\/?p=117","title":{"rendered":"Overhead in Computer Software"},"content":{"rendered":"<figure id=\"attachment_124\" aria-describedby=\"caption-attachment-124\" style=\"width: 163px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/moore-law-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-124\" src=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/moore-law-1.jpg\" alt=\"Microprocessors and Moore's law\" width=\"163\" height=\"163\" \/><\/a><figcaption id=\"caption-attachment-124\" class=\"wp-caption-text\">Microprocessors and Moore&#8217;s law<\/figcaption><\/figure>\n<p>The time it takes to complete tasks is very important. The advantages are apparent; we <strong>save time and capital<\/strong> and we can often gain an edge over our competitors.<\/p>\n<p>Computers and software are so useful for many reasons and the advantage stated above is one of the cardinal reasons. When we talk of speed so many things come to mind.\u00a0 Some may think of light, which travels at 300,000 km per second. For them it is the fastest element in our galaxy.<\/p>\n<figure id=\"attachment_129\" aria-describedby=\"caption-attachment-129\" style=\"width: 128px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/assembly-language-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-129\" src=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/assembly-language-1.jpg\" alt=\"Assembly language key to software performance\" width=\"128\" height=\"57\" \/><\/a><figcaption id=\"caption-attachment-129\" class=\"wp-caption-text\">Assembly language key to software performance<\/figcaption><\/figure>\n<p>At this time the world\u2019s fastest man is Usain Bolt who completed 100 meters in 9.58 seconds; of course not by car but on foot just like how the ancient Greeks did during their olympic games. The fastest woman ever is still Florence Griffith-Joyner populary known as \u201cflo jo\u201d. <!--more--><\/p>\n<figure id=\"attachment_125\" aria-describedby=\"caption-attachment-125\" style=\"width: 220px\" class=\"wp-caption alignright\"><a href=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/typing-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-125\" src=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/typing-1.jpg\" alt=\"Data-entry speed crucial\" width=\"220\" height=\"146\" \/><\/a><figcaption id=\"caption-attachment-125\" class=\"wp-caption-text\">Data-entry speed crucial<\/figcaption><\/figure>\n<p>In computers, we often need to enter data so typing speed does count. Barbara Blackburn still holds the record for the English language; she typed at <strong>212<\/strong> words per minute. That is phenomenal considering the fact that the average person types at only <strong>36<\/strong> words per minute.<\/p>\n<figure id=\"attachment_121\" aria-describedby=\"caption-attachment-121\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/flojo-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-121\" src=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/flojo-300x225.jpg\" alt=\"Flo jo - World female 100m tracks record holder \" width=\"300\" height=\"225\" \/><\/a><figcaption id=\"caption-attachment-121\" class=\"wp-caption-text\">Flo jo &#8211; World female 100m tracks record holder<\/figcaption><\/figure>\n<p>Speed has many synonyms. In physics we talk of velocity. In economics we also talk of the velocity of money supply as popularly defined by the American economist Irvin Fischer.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_123\" aria-describedby=\"caption-attachment-123\" style=\"width: 220px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/light-speed-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-123\" src=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/light-speed-1.jpg\" alt=\"Applications running at the speed of light\" width=\"220\" height=\"146\" \/><\/a><figcaption id=\"caption-attachment-123\" class=\"wp-caption-text\">Applications running at the speed of light<\/figcaption><\/figure>\n<p>In software development when we talk of overhead we are talking of the loss in performance. So we are either talking about the speed of software or the size of the software. For many years computer programmers or software developers had to choose between the two because memory was expensive and small and processers were not that fast. Today cell phones have greater processing power and more memory than personal computers that existed as far back as 20 years ago and those computers came with a price tag of over $2,000 estado unidensi. In learning history adverts are so useful.\u00a0 A 1995 PC advert talked about conserving cash and splurging power\u00a0for only\u00a0$1,999.\u00a0 The PC looked rather bulky compared to contemporary ones. Today China\u2019s Tianhe-2 is the world\u2019s fastest super computer boasting a speed of 33.86 petaflops (a petaflop is one quadrillion floating point calculations per second).To the novice in computers overhead might seem completely new and rather esoteric. I want you to know that it isn\u2019t anything difficult and you can understand it easily. <\/p>\n<p>Today is performance or overhead still an issue?<\/p>\n<p>Some have argued that the only thing that does really matter is whether the software answers these questions.<\/p>\n<ol>\n<li>Does your software do what it\u2019s required to do?<\/li>\n<li>Does your software help users do their job quicker and easier?<\/li>\n<\/ol>\n<p><strong>Some say that real programmers develop software in assembly language, C and C++. <\/strong>\u00a0I want you to know that as the Founder and Sole Proprietor of <a href=\"http:\/\/www.boachsoft.com\/\">Boachsoft<\/a> I know what they are talking about and I totally agree with them. Back in 1996 it was reported that Bill Gates had an argument with the software developers at Microsoft over their choice of C++ over assembly language. The issue at stake was performance. Bill Gates talked of the overhead; the performance loss in using anything but assembly language. The developers talked about the advantages of c++, abstraction and so on.<\/p>\n<p>Today we consider C++ far better than the other programming languages out there when it comes to performance and overhead.<\/p>\n<p>Many say that computer programs out there do what they are required to do within a reasonable amount of time. They argue that most computer programs lie idle for so long whilst waiting for user input or command. So there is no need for anybody to talk about performance. Java, javascript, php, .net and other interpreted languages are all\u00a0they need.\u00a0 They also mention Moore\u2019s law which states that approximately\u00a0 every two years processing power doubles to buttress their point. They don\u2019t miss any opportunity to talk about the programmer productivity\u00a0 garnered from using such programming languages coupled with increased profits. Profits and increased productivity are also important but looks like\u00a0 performance is being swept under the carpet. Overhead in performance can also lead to reduced profits.<\/p>\n<p>While this may be true, in many instances there are computer programs for which performance is desirable. Today just about half of the apps out there run on tablets and cell phones. To cope with the much needed performance processor manufacturers have been increasing processing power. This shortens battery lifespan. Therefore one benefit that has been stated in better engineered software with little overhead is longer battery life span. I am sure you get irritated when you charge your phone or tablet only for it to run out in no time. Especially when you are in town and you have no way of charging your phone. Better developed software would lead to less power consumption by processors.<\/p>\n<p>There are many other programs or applications that would benefit from an increase in processing power today.\u00a0 A good category\u00a0is graphics intensive software like games, videos and 3D rendering software including 3D printers and flight or engineering simulation.\u00a0 Another set are applications for basic scientific computations such as applied non-linear programming.\u00a0 Multimedia is another area. Have you tried running so many processor intensive applications on a laptop? You soon discover the latency.\u00a0 The operating system might even crash. The blue screen.<\/p>\n<p>Servers would\u00a0benefit a lot from an increase in performance. With\u00a0over a million connections per\u00a0second, server applications that serve requests in microseconds\u00a0would lead to an increase in performance greatly. So would\u00a0enterprise level databases.<\/p>\n<p>So what really determines the performance of computer applications? The determinants can be broadly divided into two. The hardware part and then the software part. Over the years as stated earlier we have seen a great leap in processing power, input \u2013 output \u00a0and network connectivity and I am sure this would continue.<\/p>\n<figure id=\"attachment_91\" aria-describedby=\"caption-attachment-91\" style=\"width: 184px\" class=\"wp-caption alignright\"><a href=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/ceo-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-91\" src=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/ceo-1.jpg\" alt=\"Boachsoft Founder and CEO Yaw Boakye-Yiadom\" width=\"184\" height=\"274\" \/><\/a><figcaption id=\"caption-attachment-91\" class=\"wp-caption-text\">Boachsoft Founder and CEO Yaw Boakye-Yiadom<\/figcaption><\/figure>\n<p>Assuming that there is an overhead of let say a factor of 100\u00a0in the operating system, an overhead of let say\u00a0 a factor of 100 in the interpreter or runtime, an overhead of a factor of\u00a0100 in the\u00a0 end user software\u00a0 and an overheard of a factor\u00a0of\u00a0100 in the database then what would be the total overhead in a loop that executes let say a\u00a0 million times. The total overhead:Today I would be dealing with performance and overhead in software development.<\/p>\n<p><strong>Total Overhead = 100 * 100 * 100 * 100 * 1,000,000<\/strong><\/p>\n<p><strong>That comes to an overhead of a factor of\u00a0 100 trillion or\u00a0 10^14.<\/strong><\/p>\n<p>The ramifications are indeed far reaching. Needless to say that performance and overhead still need to be taken into consideration when developing software.<\/p>\n<p>Are compilers today taking advantage of modern processor instructions? Should we leave the development of assemblers or compilers to microprocessor manufacturers? I call for a debate on this issue.\u00a0 So assembly language isn\u2019t dead yet.\u00a0 Assembly language ought to be given the emphasis it was once given. There are many areas where the use of assembly language in development would lead to less overhead and greater optimization.\u00a0 Operating system developers need to reduce the overhead, so must the developers of compilers, interpreters and runtimes.\u00a0 Optimization ought to be given a greater priority in these areas because they have a\u00a0far reaching impact on the performance of end user applications.<\/p>\n<p>The argument for the use of runtimes and compilers is for cross-platform compatibility. Simply put there are so many different microprocessors and they all have their instruction sets so runtimes allow applications to run across many platforms.\u00a0This is true and the use of runtimes solves the problem to a certain extent. We ought to aim more at international standardization in microprocessor instruction set. This may be difficult taking into consideration business practices and patents.\u00a0Processors\u00a0able to understand and process\u00a0a common instruction set would reduce the need for cross-platform runtimes.\u00a0Software engineers would then be able to optimize\u00a0code at the processor level. I must admit though that we are far off from such a standard.<\/p>\n<p>So in summary,\u00a0I would say\u00a0speed still matters. The use of assembly language and better coding skills would lead to reduced overhead and an improvement in performance. \u00a0Hopefully, in the next few years coupled with processor or hardware improvement, we should see an improvement in computer programming and software engineering. This should lead to faster and efficient software and less power consumption\u00a0and also\u00a0longer battery life.<\/p>\n<p>We would have shorter response times, better throughput for a piece of work, low utilization of computing resources, faster data compression and decompression which would lead to faster network connectivity. All this means increased productivity, more profits and lastly better governance.<\/p>\n<p>&nbsp;<\/p>\n<p>About the author:<\/p>\n<p>Yaw Boakye-Yiadom is the founder and sole proprietor of <a href=\"http:\/\/www.boachsoft.com\/\">Boachsoft<\/a>\u2013 a global software company committed to\u00a0 excellence.<\/p>\n<figure id=\"attachment_91\" aria-describedby=\"caption-attachment-91\" style=\"width: 184px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/ceo-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-91\" src=\"http:\/\/blog.boachsoft.com\/wp-content\/uploads\/2016\/07\/ceo-1.jpg\" alt=\"Boachsoft Founder and CEO Yaw Boakye-Yiadom\" width=\"184\" height=\"274\" \/><\/a><figcaption id=\"caption-attachment-91\" class=\"wp-caption-text\">Boachsoft Founder and CEO Yaw Boakye-Yiadom<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Boachsoft also makes an excellent <a href=\"http:\/\/www.landlordsoft.com\/\">Landlord software<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The time it takes to complete tasks is very important. The advantages are apparent; we save time and capital and we can often gain an edge over our competitors. Computers and software&#8230;<\/p>\n","protected":false},"author":1,"featured_media":124,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[23,94,95,118,142,188,189,196,207],"_links":{"self":[{"href":"http:\/\/blog.boachsoft.com\/index.php?rest_route=\/wp\/v2\/posts\/117"}],"collection":[{"href":"http:\/\/blog.boachsoft.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.boachsoft.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.boachsoft.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.boachsoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=117"}],"version-history":[{"count":0,"href":"http:\/\/blog.boachsoft.com\/index.php?rest_route=\/wp\/v2\/posts\/117\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/blog.boachsoft.com\/index.php?rest_route=\/"}],"wp:attachment":[{"href":"http:\/\/blog.boachsoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.boachsoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=117"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.boachsoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}