Project #2 Computer Programming Languages

Introduction. Since the sale of the first commercial computer, UNIVAC I, in 1951, the programming languages available for software development have gone through many generations of change, just as hardware has. Programmers in the early 1950s had only assembly language available. While allowing full access to hardware, assembly language is tedious, highly detailed, and offers no portability to other systems. In the late 1950s, IBM sponsored the language FORTRAN to assist scientific efforts, while the US Navy produced the COBOL language to unify their considerable record keeping operations. Both had compilers for many different platforms, giving some portability. In the 1960s, C evolved from Bell Labs, offering high portability as well as both higher level and lower level capability. It also complemented the increasingly popular UNIX operating system, much of which is written in C.

Despite these improvements, however, programmers did not show a substantial increase in productivity. Studies in the 1960s found commercial COBOL programmers averaging only 7 lines per day of tested, runnable code. Ten years later, the figure was not much higher, despite tools such as debuggers, text editors and better compilers.

The goal of this project is to develop a model based on data you collect which will reveal current language tendencies and trends. It will involve Markov Chains (see Kolman ) and is of interest to computer science and MIS majors.

Software Information For each of the languages listed below, briefly discuss the capabilities of it with regard to

            portability                     objects

           graphical interfaces         functions

The languages we begin considering are

           COBOL          Fortran

           C                    C++

           Visual Basic     JAVA.

If you feel another language should be considered, please do so! This is your model!

Data Collection Your group should interview at least 30 computer science students and/or professionals. From each, find out what language they now program in and what language they see themselves moving to next. In the latter case, find out what features are most attractive.

Additionally, using the Help Wanted section from the Sunday Boston Globe, or a comparable publication, survey at least 30 software jobs and develop a distribution showing the mix of jobs currently available with regard to the language required of the job.

Modeling You should now be able to set up two mathematical structures, a distribution matrix describing the current state of programming languages, and a transition matrix. Keep in mind that each column must have nonegative entries adding up to one, and the distribution vector should also have this property. Clearly identify in your report which states correspond to which languages.

In the world of computer software development, 5 years is an eternity. Use your model to predict the distribution of languages among programmers 5 years from now. Compare this to the steady state distribution for your transition matrix.

Recommendation Based upon your work, what suggestions would you make to a person entering the software development job market if they wish their career to get off to a solid start?

References

Yourdon,Edward The Rise and Resurection of the American Programmer. 1996. Upper Saddle River NJ:Prentice Hall.

December, John. Presenting Java: An Introduction to Java and Hot Java. 1995 Indianapolis IN : SAMS Net Publishing.

Grady, Robert. Practical Software Metrics for Project Management and Process Improvement. 1993. Englewood Cliffs, NJ: Prentice Hall.