|
You might have heard of the programming language called Java through reading about it in the New York Times. It has received more media attention than probably any other programming language ever. Most of this attention is unfortunately hype, but nevertheless, Java is a good programming language, and has many pedagogical advantages over other languages. Sun was the company that introduced Java, and understandably it wanted to control its design and evolution. Unfortunately, Microsoft also wanted a piece of the action, and in particular wanted to change Java in certain ways that suited its needs. This situation became a legal nightmare, and eventually Microsoft decided that instead of trying to influence Java, it would simply design its own language, which is called C# (pronounced "C sharp"). This is the language that we will be using in CS-112. It is better than Java in certain ways, but is so similar in most ways that once you have learned how to program in C#, it will be trivial to transfer your knowledge to Java. You may have also heard of other programming languages, such as BASIC, C, C++, Ada, Lisp, COBOL, FORTRAN, Haskell, ML, and others. Although all of these languages are billed as "general purpose," some are better at certain things than others, and thus one's application often dictates one's choice of a language. For example, in the Computer Science Department at Yale, FORTRAN is taught in CS-130 (for scientific computing), C in CS-323 (systems programming), Lisp in CS-470 (artificial intelligence), Haskell and ML in CS-429 (functional programming), etc. Using this line of reasoning, Java and C# are usually billed as being good at programming the World Wide Web (WWW), i.e. the Internet. But it so happens that Java and C# are good general-purpose programming languages suitable for much more than just the Internet. They use many recent innovations in programming language design, yet are also simple enough to use in a course such as CS-112. Furthermore, once you know one programming language, it is much easier to learn another. Java and C# have many attractive characteristics, including:
|