Which language is next?
A reader recently asked what programming language will next take the control world by storm. The question is important, because a lot of system integrators and application developers are looking for the “right” answer. Unfortunately, there is no single right answer. Different problems require different languages.
A reader recently asked what programming language will next take the control world by storm. The question is important, because a lot of system integrators and application developers are looking for the “right” answer. Unfortunately, there is no single right answer. Different problems require different languages. Fortunately, asking—and answering—a couple of questions can help pick the “right” language. These questions involve the target users, application type, expected size of the user base, and long term support strategy.
First, ask if the target users are shop floor or general. Shop floor systems are predominately Microsoft based, while general use applications often run on Unix or Linux. Microsoft-targeted systems should use a language well integrated into the Microsoft environment, such as VB.Net and C#. Unix and Linux systems have a broader choice of options and often use open source languages.
If the application is heavily communication and database oriented, then a strongly type-checked object-oriented language such as C++, C#, or Java are good solutions. If the application is real-time or near-real-time, then a language such as C++ is good because of its ability to control execution cycles and enforce strong type checking.
Expected size of the user base and long term support strategy also help determine the best programming language. Small user bases typically have a dozen installations with a couple of dozen users at each installation. In these cases, a VB-like (Visual Basic) language is a very good choice. It minimizes the development effort and allows a reasonable testing environment, but still provides a professional interface. Because the user base is small, the support effort must also be small and VB-like languages are easy to maintain.
Large user bases will have hundreds of installations and potentially hundreds of users per implementation. The cost to fix and upgrade the installations due to an error can be large. A large user base application requires a professional development and test environment and a strongly type checked language such as C# or Java.
Many custom integrator applications are targeted for shop floor users. They typically have a dozen installations, offer a Web-based interface, contain some database and communication elements, and are not normally real-time.
Successful applications have been written in almost every conceivable language, including Smalltalk, Lisp, FORTRAN and APL. However, a successful control application should use a language that will survive as long as the control system and have support from a well established company.
Dennis Brandl, firstname.lastname@example.org , is president of BR&L Consulting, located in Cary, NC, a firm which is focused on manufacturing IT.