首页 >> 电子商务大学 >> 网站建设班 >> NET区
 
INPRISE/BORLAND副总裁评论C#



 Do We Need Another Programming Language?
 
Abstract:Microsoft recently introduced a new language called C#. More languages have appeared in recent years. Do we really need another programming language?

Wednesday, August 9, 2000
Scotts Valley, CA

On June 26, 2000 Microsoft introduced the language reference for a new programming language, C# (pronounced "See Sharp"). The chief designer of C# is none other than our dear friend Anders Hejlsberg, Distinguished Engineer in the Developer Division at Microsoft.  C# combines features from C, C++, Visual Basic, Delphi, Java, and adds a few extra green crystals. You might be asking yourself, "Does the world need another programming language?"

Im reminded of a television commercial about Prunes.  The commercial asked the question, are three enough?  are six too many?  You might ask the same question about programming languages.  How many do we need?  Do we have enough languages?  Should developers create new languages? Should programmers add new language extensions to existing languages? My answers to all of the questions are: not sure, not sure, lots, no, yes, and yes.

Programming languages (and the compilers, debuggers, and other tools) help developers build the software that takes advantage of business opportunities and solve real problems.  Years ago a new programming language, PL/I (Programming Language One), from IBM combined the best features of FORTRAN, COBOL, ALGOL 60, LISP, assembly language, and current programming language research.  PL/I was supposed to be the perfect language for both business and scientific programming.  It was sometimes called the "kitchen sink" of languages, it had everything.  Yet, we have seen many new programming languages appear during the short history of our computer industry.

New programming languages, and extensions to existing programming languages keep our craft, our industry, and our imaginations alive.  Imagine if we were still programming everything in assembly language (I know, some of you still do).  Imagine if we were still using Fortran for systems programming.  What if we were building web applications and web pages with COBOL and COBOLscript?  Would the developers world be a better place?  Would we be more productive?  Would we be able to go home at 5pm every night?  What would we do without types, strings, structures, objects, packages, loops, runtime libraries, garbage collection, pointers, functions, parameters, dynamic arrays, recursion, exceptions, inheritance, interfaces, templates, and the rest?

As a language junkie, I have watched the arrival of a new programming language with the enthusiasm of a child tasting their first bowl of ice cream.  I have stayed up late at night reading through the language specification and programmers reference manuals.  I have read all of the magazine articles,  books, and newsgroups for information about new languages.  I have waited, with anticipation, for tools and industry infrastructure to support the new language. By now you must know that I am really crazy.  But I cant help myself.  I love being a programmer.  Having lots of programming languages in my bag of tricks is just one part of being a good programmer.

I met Microsofts announcement of C# with excitement.  I also enjoyed the C# announcement on a personal level because Anders was a big part of the language. Anders will always be a member of the extended Borland family. C# has many influences from Anders work at Borland on Turbo Pascal and Delphi.  My congratulations go out to Anders and his team.  I look forward to reading more information about C# in the future.

Authors Note: This article does not reflect any
forward looking plans or statements about Borland products,
future support for any languages, platforms, etc.

My List Of Popular Programming Languages

Many popular programming languages have appeared over the years.  Of course the word "popular" is a very subjective term.  What defines the popularity of a programming language? Is this like a beauty contest, a popularity contest? I wont try to come up with a criteria for selection to this list.  Ive based my choices on 30+ years of computing experience, anecdotal evidence of language use, language listings on the internet, in magazines and books, and feedback from my peers.  You can also add your comments to the thread associated with this article.  Ive listed each language with its year of introduction and notable features.

My popular programming language list is not a complete listing of languages - compiled, interpreted, scripted, or otherwise. I will leave complete and updated language lists to others on the internet. I have provided some links to other sources of langugage histories and lists. I will consider updating this article at a moments notice based on feedback, clearer thinking, and continued reflection. With new languages being created all the time, this article represents a moment in time.

Year Language Features
1957 FORTRAN "IBM Mathematical FORmula TRANslating System" by John Backus, et al, IBM logical if, do loop, data types included logical, integer, real, double-precision.
1958 LISP "LISt Processing language" by John McCarthy, MIT List structure for symbolic expressions and other information, small set of operations expressed as functions (car, cdr, cons), conditional expressions, dynamic scoping, lambda expressions for naming functions, symbolic expressions instead of numeric expressions, recursion, LISP programs stored as LISP data, garbage collection.
1960 COBOL "COmmon Business Oriented Language" by the CODASYL Committee. separate data and code sections, structured types (arrays and records), long variable names. numeric and string data types, strong typing.
1960 ALGOL "ALGORithmic Language" (original specification in 1958), ALGOL 68 (1968) First language with a formal grammar (BNF). Data types, compound statements, identifiers of any length, multi-dimensional arrays, block structured allocation and visibility, parameter passing: call-by-value, call-by-name, recursive procedures, stack-dynamic arrays, symbol tables, stack evaluation of arithmetic, garbage collection.  No I/O (I/O was left to the implementor).
1964 BASIC "Beginners All-purpose Symbolic Instruction Code" by John G. Kemeny and Thomas E. Kurtz, Dartmouth College Included language features from ALGOL and FORTRAN.  Interpreted language, no distinction between integers and floating point, dynamic string storage, IF..THEN, and GOSUB statements. Used line numbers for all statements.
1965 SIMULA by Kristen Nygaard and Ole-Johan Dahl, Norwegian Computing Centre First object-oriented language. Based on Algol.  Added classes, reference variables (pointers to objects), pass by reference, char, text, I/O, and coroutines.
1967 PL/I by IBM concurrent tasks, run-time exceptions, recursive procedures, pointers as a data type, array slices.  programming language for systems and applications programming.
1971 Pascal by Niklaus Wirth, ETH case statement, type safety, enumeration type.
1972 Smalltalk by Alan Kay et al, Xerox Parc pure object-oriented, message passing metaphor, dynamic typing, reflection, integral graphics environment, large library.
1972 C by Dennis M. Ritchie, AT&T Bell Labs Terse, low-level and permissive.  macro pre-processor.  Library routines provide for input, output, and operating system calls.
1976 SQL "Structured Query Language" by IBM basic language constructs for defining and manipulating tables of data. 
1979 Ada by Jean Ichbiahs team at CII Honeywell [note: US Department of Defense received 15 language proposals.  Four finalists were chosen: Cii-Honeywell Bull, Intermetrics, SofTech, and SRI International] Pascal descendant language.  Added packages, exception handling, generics (templates), tasks, hardware access, strong typing, data abstraction, sub types and derived types, operator overloading, if-then-elsif-endif, case-is-when-endcase, loop-exit-endloop, goto.  Parameters can be in, out and inout.
1983 C++ by Bjarne Stroustrup, AT&T Bell Labs (now called AT&T Labs) A superset of C.  Added type checking (prototypes), function overloading, operator overloading, references, classes, inheritance, polymorphism, templates, exception handling, runtime type information, streams for I/O.
1985 Object Pascal by Apple Computer and Nicklaus Wirth Added objects to Pascal.
1987 PERL, by Larry Wall interpreted language, strong text matching functions, procedural and object oriented, abstract database interface(DBI), open sourced.
1991 Visual Basic by Microsoft added properties and events to Basic.
1993 Delphi by Borland added PME (properties, methods, events), exceptions, etc to Object Pascal
1995 Java, by Sun Microsystems Small-instruction set, object-oriented, interpreted language, runs on top of a virtual machine, garbage collection, interfaces.
1995 Javascript by Netscape Scripting language for client and server side HTML. Similar to C syntax.  Variables are case sensitive, variables can change type, rich object library.

A Few Other Notable Languages

There are many other notable languages.  These languages are covered on numerous web sites.  Besides the languages listed above, it is worth noting a few of the thousands of programming languages that have been created over the years that were notable in their own way.  I could have listed a few more here as well.  I may make further additions in the future.

PlanKalKuel (1945) by Konrad Zuse - first programming language - one data type-bool (1 bit).  Objects are built up from arrays of bits.

Short Code (1949) by John W. Mauchly - first programming language used on an electronic device.

APL "A Programming Language" (1962) by Kenneth E. Iverson. The APL language includes a set of symbols (letters, numbers, punctuation, algebra, and special shapes), a very simple set of rules, and a large function library. Data can be either numeric or text.

SNOBOL (1964) by David J. Farber, Ralph E. Griswold, and F.P. Polensky - Bell Labs. Featured string manipulation, used for pattern matching.

Logo (1967) by Wallace Feurzeig, Daniel Bobrow, et al Bolt, Beranek, & Newman and Seymour Papert, MIT  . A dialect of LISP featuring interactivity, modularity, extensibility, flexibility of data types. Logo is best known for its "turtle graphics."

Prolog "Programming in Logic" (1971) by Alain Colmerauer, Robert Kowalski, and Phillipe Roussel. Designed for natural language processing applications. Control structure was depth-first search with backtracking.

Modula-2 (1978), Modula-3, Oberon (1988) - Niklaus Wirth, ETH - continues the refinement of Pascal. Modula added the "module" to encapsulate functions, procedures, and data structures.  Modula also included single processor (sequential) concurrency and hardware access.  Oberon added inheritence, extensible record types, multi-dimensional open arrays, garbage collection.  Oberon eliminated variant records, enumeration types, subranges, lower array indicies, and for loops.

CommonLisp (1981) by DARPA (Defense Advanced Research Projects Agency) and a group of companies and educational institutions - lexically scoped (default), can be dynamically scoped, data structures, closures, multiple values, types using declare and a variety of numerical types.

Eiffel (1985) by Bertrand Meyer and ISE - Language includes design by contract, assertions, and statically typed/dynamically bound objects.

Python (1991) by Guido van Rossum. Interpreted object-oriented language. The language includes modules, exceptions, dynamic typing, very high level dynamic data types, and classes.

Over 2000 Programming Languages and Counting

There are too many languages to write about in this article. The list of known programming languages is over 2000 and growing.  There are many sources of programming language information on the Internet.  Below youll find a few of these links.

  • Open Directory - Computers Programming Languages
  • Review of Existing Languages
  • The WWW Virtual Library Computing, Programming Languages
  • The Retrocomputing Museum
  • Language list
  • Weird Programming Languages
  • Programming Languages, Past Present and Future by J.A.N Lee
  • Object-Oriented Programming Regaining the Excitement by Andrew P. Black
  • The Language List - Version 2.4, January 23, 1995
  • Be Well, Stay Challenged, and Have Fun!

     

     

    David Intersimone "David I"

    davidi@borland.com

     




    1
     
    电子商务大学版权与免责声明:

     
    凡本网注明“来源:35DX”的所有作品,版权均属于电子商务大学,未经本网授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:电子商务大学”。违反上述声明者,本网将追究其相关法律责任。
    凡本网注明“来源:XXX(非电子商务大学)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,同时,本站转载并无任何商业目的。
    如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
    联系方式:电子商务大学 webMaster@35dx.com