日志文章


2015-07-26

A comment for The 2015 Top Ten Programming Languages - IEEE Spectrum

http://spectrum.ieee.org/computing/software/the-2015-top-ten-programming-languages

This is going to be a critical comment. First, we could start off with the old debate about what constitutes a programing language and I would take that side that some of these don't qualify because they, like BASIC, cannot be compiled down to machine code. However, that argument has been pretty well exhausted and it doesn't accomplish much but I hope that people get the point.

I find it very unfortunate that C and its derivatives are still the 2nd most popular compiled program languages (Gnu has written a compiler front end for Java so it can now be compiled). The problem with C is that it is too low level. This means that development is more expensive because programmers must write more code. This is to me somewhat ironic because I first learned to program for an IBM PC in Intel syntax Assembler. I then learned Standard C and it became rather obvious that for some operations that the Assembly language was a higher level language than Standard C. What is clearly needed is a language that allows symbolic code to be written for more operations rather than to continue to use a language that was designed for a mini-computer that is now a museum piece.

There have been many attempts to write such languages. I think that I have my own outline of one somewhere in my collection of floppy disks. It might be better or worse than the others. But, the point is that nobody has taken these ideas and used them to synthesize a new higher level language that was advantageous enough to replace C and its derivatives. Looking at what is currently available, the modern version of FORTRAN appears to be the best choice. Unfortunately, it has become a rather large language and a complete Gnu compiler is not available for it and it is probable that the Gnu compiler will still not give consistent results for numeric analysis problems.

The other problem with C and its derivatives is that their applications' interaction with the OS leaves the system open to hacker's exploits while an OS that does more of the work is not. Specifically, when the OS supplies an IO buffer, only the OS knows where it is and the OS can keep track of what is happening to it -- hardware can be developed to do this and already has been.


类别: 无分类 |  评论(1) |  浏览(940) |  收藏
一共有 1 条评论
Admin 2015年07月26日20时42分 20:42 评论:
Not all programming is targeted towards conventional PCs. Any programming language is a tool and as such the choice of which one to use is (or should be) driven by the task at hand. Your issues with C are exactly the reasons I tend to prefer it. As a firmware engineer I need the low level access to hardware that it grants and often my projects have no OS to interact with. If one is programming for a PC, code size and memory usage are not particularly significant factors but if you are writing code for a device with 8K of code space and 1K of ram those things become critical. A good C compiler can produce an executable that rivals the best assembly programmers in size and speed.
I also disagree that Basic is not a compiled language. Even back in the days of QBasic there was an option to produce a compiled executable. I haven\'t used VB since MSVS6 but that could also produce a compile exe.
eejay56 >JRT256  4 days ago