APIs, Libraries, and Code
Let’s say you want to display a JPEG-compressed image, calculate Pearson’s correlation coefficient, parse an XML file, or create a key-value store. You can often choose between using the functionality of the application’s platform (Java EE or .NET), calling one of several available external libraries, or writing the code on your own. It isn’t an easy choice because you have many factors to consider. Specifically, you must take into account the task’s complexity, as well as the licensing, quality, and support of competing alternatives. See how you can narrow down your choice by eliminating alternatives at the earliest possible decision point.
Continue reading "APIs, Libraries, and Code"
Changes in the Way we View Computing
The Association for Computing Machinery
recently released the
2012 version of the ACM Computing Classification System (CCS).
This is the work of 120 volunteers and marks significant changes over
the previous version, which was released in 1998.
To create it the volunteers mined ACM Digital Library search terms and used
the services of a specialist company that creates ontologies.
To see what has changed in the past 14 years in the way we view computing,
Wordle to create word clouds from the 1998 and the 2012 versions.
Here are the two views of our discipline's Zeitgeist
and my take of their differences.
Continue reading "Changes in the Way we View Computing"
Programming Languages vs. Fat Fingers
A substitution of a comma with a period in project Mercury's working Fortran code compromised the accuracy of the results, rendering them unsuitable for longer orbital missions.
How probable are such events and how does a programming language's design affect their likelihood and severity?
In a paper I recently presented at the
4th Annual International Workshop on Evaluation and Usability of Programming Languages and Tools
I showed results obtained by randomly perturbing similar programs written in
diverse languages to see whether the compiler or run-time system
would detect those changes as errors,
or whether these would end-up generating incorrect output.
Continue reading "Programming Languages vs. Fat Fingers"