ASC Go to Ashmead Software & Consulting Inc. home page
specialities button software button industries button about_asci button
Databases Languages Operating Systems

Languages


Just because a screwdriver can be used as a cleaning tool, pointer, weapon, or paintbrush does not mean it is the ideal choice for any of these applications.


General comments

As with databases, so with languages: no one choice satisfies all requirements. Appropriate considerations include

  • reliability
  • ease of development
  • level of abstraction
  • precision of control
  • performance

As a general rule, ASC prefers to work at the highest level of abstraction which still gets the job done. The higher the level of abstraction, the more work each line of code does. And the less code you have to write, the less time it takes to write it.

Therefore we usually prefer SQL to C, when both are applicable, as one SQL statement can translate to tens or hundreds of lines of C. And from the point of view of a developer on the client side, one stored procedure call can map to tens or hundreds of lines of SQL, making PL/SQL or SPL or whatever still more efficient than SQL. (Of course, a corresponding developer on the server side still had to write & debug the stored procedure.)

Of course, nothing is free. Higher levels of abstraction do not come without their price. With higher levels of abstraction you can gain ease of development, but you can lose:

  • fine-grained control
  • performance
  • reliability; if there are too many levels of abstraction too poorly understood, bugs can easily hide out in the lower levels

SQL and related languages

ASC has extensive experience with SQL, and has acquired significant expertise both in how to coax specific results out of SQL and in how to optimize its performance.

The performance optimization of SQL has been the subject of several texts and is a large area in its own right.

Key are:
  • A clean database design
  • Firm command of relevant index structures
  • Ability to read the query plans of the SQL optimizers
  • A relaxed & flexible attitude

ASC is also expert in the associated stored procedure languages, i.e. Oracle's PL/SQL, SQL Server's Transact-SQL, Informix's SPL, and in the construction, debugging, and tuning of stored procedures built using them.

C and C++

ASC has written a large variety of applications in C and C++, including tools to:

  • access databases (usually using ESQL/C)
  • run statistical analyses
  • diagnose and patch filesystems
  • create customized videos
  • control printers, modems, graphic cards
  • control television channel switchers
  • control typesetters, satellite transmission systems, and so on

ASC has written C on all major platforms using a wide range of compilers, from Microsoft's VC++ to the Free Software Foundation's gcc.

ASC has run a C software development class for experienced programmers new to C. The class notes were written up as A C Workshop: For Beginning Programmers, purchased by Bell Atlantic.

There was some thinking a few years back that C++ would replace C. This has not, however, happened. While there are advantages to working at the higher levels of abstraction that C++ affords, there are disadvantages as well. For instance, the greater internal complexity of C++ creates more hiding places for bugs. And for many simple operations, C++ is simply overkill.

Perl

ASC has written a large number of practical utilities in Perl:

  • web & CGI
  • operational systems
  • database access
  • and so on

Perl is in some ways our favorite language: it is a large, friendly octopus, eager to reach out in some new direction.

Fortran

ASC has considerable experience with Fortran, primarily for scientific and numerical work, including applications such as

  • computing particle trajectories within magnetic fields
  • computing equations of state for neutron stars

Other languages

ASC has also worked with other languages, i.e. Java, Lisp, Prolog, and so on.

Custom languages

In a surprising number of cases, a client problem may be most gracefully and expeditiously handled by writing a small language in which the problem may be easily and simply described.

We have employed this technique on a number of occasions, always with good results. We are looking for fresh opportunities.


Home Principals About this site Email us

Ashmead Software & Consulting, Inc. specializes in the design, enhancement, and administration of relational  databases with particular emphasis on reliability, performance, and ease-of-maintenance.