Thesis Statement: For creating general purpose applications, C# is the most logical choice of languages as it was built from the ground up to take advantage of the .NET Framework, the Object Oriented Model, and was designed for usability.
I.The .Net Framework is a feature-filled library that is included on all Windows Based Machines.
A..Net makes it easy to not have to maintain multiple different libraries.
B..Net Framework is so useful that other Languages are adding it in.
II.Object Oriented Programming is a clear-cut winner in most programming scenarios.
A.Other Programming Paradigms have failed to catch mainstream acceptance because of the usability presented in the Object Oriented Approach.
B.Object Oriented Programming is easily understandable.
III.C# is a very robust language that has built in safeguards against crashing computers.
A.Other languages, like C++ and Java, offer a lot of power that isn't directly available in C#.
B.That C# Language was designed to make it easy to program in.
A case for C#
There are dozens, if not hundreds, of various different programming languages on the planet. Java, C++, Objective C, C#, and Python are a few of the most popular programming languages available today. Each has their own benefits and detriments when it comes to the learning and programming process, with specific areas of strength and areas of weakness. For creating general purpose applications, C# is the most logical choice of languages as it was built from the ground up to take advantage of the .NET Framework, the Object Oriented Model, and was designed for usability.
The .NET Framework is a feature-filled library that is included on all current Windows based computers. The other side of the feature-filled library coin is the JRE (Java Runtime Environment) which can be installed on Windows, OSX, Linux, and other operating system platforms. The debate over which of these two platforms, (Java or C#) to use can be a pretty lengthy debate in and of itself.
During a recent interview, Teletech Holdings Inc. programmer William Taylor stated that one of the largest draws of Java comes from its cross platform capabilities. He goes on to state that when he wanted to write an application, he wanted to make it as easily accessible to as many people as possible.(Taylor)
According to William Wong, writer at Electronic Design, Microsoft keeps a tight control on the .NET Framework’s development.(Wong) Unlike the J2EE (Java 2 Enterprise Edition) which is controlled by a community called The Java Community Process, .NET’s features are designed and implemented in standards that make it easy to maintain code. This allows for features, such as XML (Extensible Markup Language), to be quickly and effectively implemented into the language. According to Wong, Java Developers are still waiting for the 1.4 Update that will bring XML support to the J2EE. (Wong)If they want to use XML, they have to build their own library for it, or import someone else’s.
Another example of the usefulness found in the .NET framework can be found in one of Microsoft’s competitors: Borland. Darryl Taft, a writer for Eweek Magazine discussed how Borland was increasing its ties to Microsoft and the .NET platform. (Taft) As the producer of the Pascal programming language, which is a direct competitor to C#, Borland found it Necessary to strengthen its ties to the .NET Framework by announcing, “[Borland’s] application lifecycle management support for the Microsoft .Net environment.” (Taft)
Object Oriented Programming is nothing new in programming terms. In his Interview, Mr. Taylor expanded on his favorite feature of Object Oriented Programming: The re-usability of the code between methods. (Taylor). This is one of the key concepts of the Object Oriented approach: Methods, or Objects, can be re-used multiple times with different results. (Taylor).
M2PressWire recently published an article detailing the new F# language that is designed based on Functional Programming. In the article, the Author of the book Programming F# is quoted as saying, “There are legions of C# and VB.NET developers who are happy with their language” (M2PressWire) The author was detailing the difference between functional programming and Object Oriented programming, and goes on to state that the market for F# (and functional programming) would be relegated to those who find it difficult to work within the Object Oriented Model. (M2PressWire)
Another programming approach is called Semantic Modeling. According to Uday S. Murthy and Casper E. Wiggins, Jr., authors for the Journal of Information systems, Semantic Modeling was used in the early 80’s and designed to naturally and directly incorporate more of the application domain into the database structures. (Murthy and Wiggins, Jr 100) They later detail that the Semantic Model didn’t capture any behavioral aspects, and that the then current database models didn’t actually work for representing that information fully. (Murthy and Wiggins, Jr 101)
The Object Model was founded based on the hardware and software fields coming together to develop a system that was going to work the best way it was possible. (Murthy and Wiggins, Jr 101) This paved the way for languages such as C++ and Objective C to come into being. (Murthy and Wiggins, Jr 101) In their article, Object-Oriented Modeling Approaches for Designing Accounting Information Systems, Murthy and Wiggins state that the term object-oriented refers to a specific idea of “analysis, design, programming, or database management approaches that exhibit the basic characteristics of the object data model.” (Murthy and Wiggins, Jr 101) This was at the dawn of the Object Oriented approach, but it quickly took off.
Walter Isaacson, author of the biography about Steve Jobs, documented in the book that Steve Jobs was well aware of the benefits of an Object Oriented model. (Isaacson) While working on the NeXT operating system, Steve Jobs regularly touted the power of the Object Oriented approach that was involved in his operating system. (Isaacson) Bill Gates, then-CEO of Microsoft Inc., said that he recognized the power, but it was nothing new at the time. (Isaacson) The Object Oriented Model had been around for years, and the NeXT operating system was just pushing it out a little early. It would be years before the Macintosh Operating System took advantage of that framework. (Isaacson)
Features of the Object Oriented approach are well suited for complex information systems. Murthy and Wiggins explain that “the object-oriented approach supports both complex data types and user-defined data types. Complex data types refer to still and moving images, sound, complex graphs, etc., which are all needed for multimedia information systems.” (Murthy and Wiggins, Jr 103) They go on to use an example of how a user could create a data type known as “lbs.”, and use it to do all sorts of measuring and math on objects programmatically which were not supported by conventional record-oriented approaches. (Murthy and Wiggins, Jr 103)
As a writer for Angelaki: Journal of Theoretical Humanities, writer Aden Evens states that programming is “an irreducible bureaucratic chore." (Brooks concludes that much of the labor of programming cannot be readily eliminated.)” (qtd. by Evens 89) Brooks was speaking at the beginning of the personal computer era, in 1986. A lot of changes have been made in programming since then.
For Example: C# has been in development since 1998, a full 12 years after Brooks wrote his book. The Chief Designer of the language, Anders Hejlsberg, told Eweek that C++ developers complained a lot about the complexity built into the language. He says, “It gives you an enormous amount of power, but you only need that power 2 percent of the time. It really is a burden the other 98 percent of the time.” (Eweek 29)
Even though there have been a lot of changes made in programming over the past 20 years, it is important to remember that the Object Oriented model has been around since the earlier part of the 1960 decade. (Evens, 2006, p. 96) This helped pioneer a number of the forms and functions found within most current Object Oriented Languages, and despite what detractors might state, it is a model of programming that has clearly lasted.
The Object Oriented model lead Anders to devise a language that had the system performing most of the cleanup work for the programmer. This helped lower the number of bugs in the software, which allowed for increased productivity, which in turn helped increase the popularity of the C# programming language. Anders was asked about the relationship between C# and Java, specifically the similarities. He responded by saying, “Programming languages evolve much slower than hardware does; they move at a glacial pace, and we all build on the shoulders of giants here. Java owes a tremendous heritage to C and C++, and Java has, in turn, given inspiration to us.” (Eweek 29)
All of this information should provide a better understanding of what exactly C# is. As a language, C# is built around three guiding principles: The .NET Framework, Object Oriented Programming, and Usability. By focusing on the Microsoft .NET Framework, a programmer is able to write robust programs that work on a number of different Windows-based operating systems. By following the Object Oriented model, C# is able to further enhance the methodology used in programming, making the programming quick and easy to understand. Finally, by taking away some of the complexity found in languages like C++, C# programmers are able to write programs faster and more efficiently. These factors, being core principles behind the language, make C# one of, if not the, most logical choice in programming languages.
"J2EE Vs. .Net: Dilemma Or Nondebate?." Infoworld 24.8 (2002): 47. MAS Ultra - School Edition. Web. 14 Apr. 2012.
"Microsoft Sharpens Vision Around C#." Eweek 18.32 (2001): 29. Academic Search Elite. Web. 14 Apr. 2012.
"Programming F#--New From O'reilly; A Comprehensive Guide For Writing Simple Code To Solve Complex Problems." M2presswire (2009): Newspaper Source. Web. 14 Apr. 2012.
Evens, Aden. "Object-Oriented Ontology, Or Programming's Creative Fold." Angelaki: Journal Of Theoretical Humanities 11.1 (2006): 89-97. E-Journals. Web. 28 Apr. 2012.
Isaacson, Walter. Steve Jobs. New York: Simon & Schuster, 2011.
Murthy, Uday S., and Casper E. Wiggins Jr. "Object-Oriented Modeling Approaches For Designing Accounting Information Systems." Journal Of Information Systems 7.2 (1993): 97-111. Academic Search Elite. Web. 28 Apr. 2012.
Taft, Darryl K. "Borland Boosts Microsoft Development." Eweek 23.25 (2006): 23. Academic Search Elite. Web. 14 Apr. 2012.
Taylor, William. Personal interview. 20 Apr. 2012.
Wong, William. "Are You Getting Caught In The .Net Or Addicted To That Cup Of Java?." Electronic Design 50.10 (2002): 26. Academic Search Elite. Web. 14 Apr. 2012.