Programming Languages (OOP)
Programming Languages (OOP)
Many programs are computer simulations of the real world or a conceptual world.
Writing such programs is easier if there is a correspondence between objects in the
world and components of the program. Simula originated in the Norwegian
Computing Centre in 1962. Kristen Nygaard proposed a language for simulation to
be developed by himself and Ole-Johan Dahl (1978). Key insights were developed in
1965 following experience with Simula I:
Deleting the procedure definitions and final statement from an Algol block
gives a pure data record.
Deleting the final statement from an Algol block, leaving procedure
definitions and data declarations, gives an abstract data object.
Adding coroutine constructs to Algol blocks provides quasi-parallel
programming capabilities.
Adding a prefix mechanism to Algol blocks provides an abstraction
mechanism (the class
hierarchy).
begin
procedure Deposit (real amount)
balance := balance + amount;
procedure Withdraw (real amount)
balance := balance - amount;
end;
The class above shows a simple Simula-style class, with modernized syntax. Before
we use this class, we must declare a reference to it and then instantiate it on the
heap:
ref (Account) myAccount;
MyAccount := new Account(1000);
Note that the class is syntactically more like a procedure than a data object: it has
an (optional) formal parameter and it must be called with an actual parameter. It
differs from an ordinary Algol procedure in that its AR remains on the heap after the
invocation.
To inherit from Account we write something like:
Account class ChequeAccount (real amount);
::::
This explains the term prefixing" | the declaration of the child class is prefixed by
the name of its parent. Inheritance and subclasses introduced a new programming
methodology, although this did not become evident for several years.
Simula provides:
Simula itself had an uneven history. It was used more in Europe than in North
America, but it never achieved the recognition that it deserved. This was partly
because there were few Simula compilers and the good compilers were expensive.
On the other hand, the legacy that Simula left is considerable: a new paradigm of
programming.
SMALLTALK
Smalltalk roots reach back to the early seventies when many ideas were first
explored in the context of the Dynabook project at the Xerox Palo Alto
Research Center.
Developed by Alan Klay on October 1972.
The first Smalltalk system contained 1000 lines of code which computed 3 +
4.
The next version of Smalltalk was called Smalltalk 72, which was
implemented in assembly code.
Newer versions now have the capability to provide better graphics and
information retrieved.
1 + 2 : BINARY CASE
EXAMPLES OF USAGE
Airline and Travel - Some airlines web-based user interface is written in Smalltalk
Manufacturing and Engineering - ControlWORKS is written in VisualWorks Smalltalk.
Government - Recovering delinquent taxes using Smalltalk in Cincoms Object
Studio
MODERN USAGE
Pocket Smalltalk
C++
C++ was developed at Bell Labs by Bjarne Stroustrup (1994). The task assigned to
Stroustrup was to develop a new systems PL that would replace C. C++ is the result
of two major design decisions:
First, Stroustrup decided that the new language would be adopted only if it
was compatible with C;
C++:
is almost a superset of C (that is, there are only a few C constructs that are
not accepted by a C++ compiler);
is a hybrid language (i.e., a language that supports both imperative and OO
programming), not a pure" OO language;
emphasizes the stack rather than the heap, although both stack and heap
allocation is provided;
provides multiple inheritance, genericity (in the form of \templates"), and
exception handling;
does not provide garbage collection.
Eiffel
What is Eiffel?
Eiffel is an ISO-standardized, object-oriented programming language designed
by Bertrand Meyer (an object-orientation proponent and author of Object-Oriented
Software Construction) and Eiffel Software. The design of the language is closely
connected with the Eiffel programming method. Both are based on a set of
principles, including design by contract, command query separation, the uniformaccess principle, the single-choice principle, the open-closed principle, and optionoperand separation. Many concepts initially introduced by Eiffel later found their
way into Java, C#, and other languages. New language design ideas, particularly
through the Ecma/ISO standardization process, continue to be incorporated into the
Eiffel language.
History of Eiffel
The Eiffel programming language was created by Bertrand Meyer and developed by
his company, Interactive Software Engineering (ISE) of Goleta, CA in 1985. Eiffel has
evolved continually since its conception on September 14, 1985 and its first
introduction in 1986. Eiffel is named after Gustave Eiffel, the engineer who designed
the Eiffel Tower. The developers of Eiffel like to compare themselves to the well-built
structure of the Eiffel Tower. The Eiffel Tower was completed on time and within
budget, which should happen if you use Eiffel for your software projects.
Eiffel Milestones
1985: Bertrand Meyer and Jean Marc Nerson begin development of Eiffel
1986: 1st Eiffel compiler presented (April), 1st Customer Deliveries (December)
1995: NICE presents Eiffel Library Kernel Standard (ELKS), which sets
standards for basic Eiffel classes.
1997: NICE and the Eiffel Consortium organize Eiffel Struggle `97. Prizes
awarded for Eiffel applications and Eiffel libraries.
Areas of Application
Eiffel is used in many application areas, such:
Teaching Purposes
Rapid Prototyping
Financial Applications
Telecommunication Systems
Statically Typed - ensure that errors are caught at compile time, rather than
run time.
Java
Origin
1991 java was developed by James Gosling, Mike Sheridan, and Patrick
Naughton also known as Green Team in Sun Microsystem (Oracle
Corporation).
History
Oak was the initial name of java, was later changed to Green and finally
renamed as java.
1994 James Gosling realized that his language would be ideal for
developing a web browser.
Features
Simple easy to write; concise and cohesive set of features; east to learn
and use.
Advantages
Disadvantages
PERL
Practical Extraction and Reporting Language, in short Perl, is a very wellknown scripting language with an extremely versatile syntax and a rich collection of
features. This language combines the power of UNIX shell scripting and flexibility of
Lisp to provide a relatively more powerful development environment. Originally the
only documentation for Perl was a single (increasingly lengthy) man page. In
1991, Programming Perl, known to many Perl programmers as the "Camel Book"
because of its cover, was published and became the de facto reference for the
language.
- Also it includes feature like object-oriented programming which gives an edge over
other language.
- Perl is a family of high-level, general-purpose, interpreted, dynamic programming
languages.
- The languages in this family include Perl 5 and Perl 6.
- Perl is a stable, cross platform programming language.
- Perl is Open Source software, licensed under its Artistic License, or the GNU
General Public License (GPL).
- Perl is widely known as the duct-tape of the Internet.
- Perl is an interpreted language, which means that your code can be run as is,
without a compilation stage that creates a non-portable executable program.
HISTORY
Perl was originally developed by Larry Wall in 1987 as a general-purpose UNIX
scripting language to make report processing easier. Since then, it has undergone
many changes and revisions.
Version 1.0 released to the comp.sources.misc newsgroup on December 18,
1987. The language expanded rapidly over the next few years.
Perl 2, released in 1988, featured a better regular expression engine.
Perl 3, released in 1989, added support for binary data streams.
At the same time, the Perl version number was bumped to 4 not to mark a major
change in the language but to identify the version that was well documented by the
book. Perl 4 went through a series of maintenance releases, culminating in Perl
4.036 in 1993. At that point, Wall abandoned Perl 4 to begin work on Perl 5.
Initial design of Perl 5 continued into 1994. The perl5-porters mailing list was
established in May 1994 to coordinate work on porting Perl 5 to different platforms.
It remains the primary forum for development, maintenance, and porting of Perl 5
According to Larry Wall, Perl has two slogans. The first is "There's more than one
way to do it", commonly known as TMTOWTDI. The second slogan is "Easy things
should be easy and hard things should be possible".
Perl was originally named "Pearl". Wall wanted to give the language a short name
with positive connotations; he claims that he considered (and rejected) every threeand four-letter word in the dictionary. He also considered naming it after his wife
Gloria. Wall discovered the existing PEARL programming language before Perl's
official release and changed the spelling of the name.
The name is occasionally expanded as Practical Extraction and Report Language,
but this is a backronym. Other expansions have been suggested as equally
canonical, including Wall's own humorous Pathologically Eclectic Rubbish
Lister. Indeed, Wall claims that the name was intended to inspire many different
expansions.
LANGUAGE FEATURES:
- Easy learning
- Powerful text manipulation features
- Cross-platform availability
- Open source platform- so independent from commercial interference and has
active online communities.
- Simple syntax and it makes it quick to learn.
- Cross-platform language- it is very easy to write a Perl program on one platform
and run it across different platforms with little or no modification.
- Versatility- Programmer can learn the language and adapt their own coding style.
- Regular expression engine- which is capable of almost any type of textual
transformation
- Perl has a very comprehensive library of modules- which provides a very support
for XML, Graphical user interfaces and embedded Perl scripting.
- Powerful and flexible object-oriented programming syntax at the same time very
simple.
Advantages of Using PERL
1) Perl runs on all platforms and is far more portable than C.
2) Perl and a huge collection of Perl Modules are free software (either GNU General
Public License or Artistic License).
3) Perl is very much efficient in TEXT and STRING manipulation i.e. REG_EXP.
4) It is a language that combines the best features from many other languages and
PYTHON
Python is an interpreted, object-oriented, high-level programming language with
dynamic semantics. Its high-level built in data structures, combined with dynamic
typing and dynamic binding, make it very attractive for Rapid Application
Development, as well as for use as a scripting or glue language to connect existing
components together. Python's simple, easy to learn syntax emphasizes readability
and therefore reduces the cost of program maintenance. Python supports modules
and packages, which encourages program modularity and code reuse. The Python
interpreter and the extensive standard library are available in source or binary form
without charge for all major platforms, and can be freely distributed.
Often, programmers fall in love with Python because of the increased productivity it
provides. Since there is no compilation step, the edit-test-debug cycle is incredibly
fast. Debugging Python programs is easy: a bug or bad input will never cause a
segmentation fault. Instead, when the interpreter discovers an error, it raises an
exception. When the program doesn't catch the exception, the interpreter prints a
stack trace. A source level debugger allows inspection of local and global variables,
evaluation of arbitrary expressions, setting breakpoints, stepping through the code
a line at a time, and so on. The debugger is written in Python itself, testifying to
Python's introspective power. On the other hand, often the quickest way to debug a
program is to add a few print statements to the source: the fast edit-test-debug
cycle makes this simple approach very effective.
Language Features:
Simple - Python is a simple and minimalistic language. Reading a good Python
program feels almost like reading English (but very strict English!). This pseudocode nature of Python is one of its greatest strengths. It allows you to concentrate
on the solution to the problem rather than the syntax i.e. the language itself.
Easy to Learn - As you will see, Python is extremely easy to get started with.
Python has an extraordinarily simple syntax as already mentioned.
Free and Open Source - Python is an example of a FLOSS (Free/Libre and Open
Source Software). In simple terms, you can freely distribute copies of this software,
read the software's source code, make changes to it, use pieces of it in new free
programs, and that you know you can do these things. FLOSS is based on the
concept of a community which shares knowledge. This is one of the reasons why
Python is so good - it has been created and improved by a community who just want
to see a better Python.
High-level Language - When you write programs in Python, you never need to
bother about low-level details such as managing the memory used by your
program.
Portable - Due to its open-source nature, Python has been ported (i.e. changed to
make it work on) to many many platforms. All your Python programs will work on
any of these platforms without requiring any changes at all. However, you must be
careful enough to avoid any system-dependent features.
You can use Python on Linux, Windows, Macintosh, Solaris, OS/2, Amiga, AROS,
AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks,
PlayStation, Sharp Zaurus, Windows CE and PocketPC !
Interpreted - This requires a little explanation.
A program written in a compiled language like C or C++ is translated from the
source language i.e. C/C++ into a language spoken by your computer (binary code
i.e. 0s and 1s) using a compiler with various flags and options. When you run the
program, the linker/loader software just stores the binary code in the computer's
memory and starts executing from the first instruction in the program.
When you use an interpreted language like Python, there is no separate compilation
and execution steps. You just run the program from the source code. Internally,
Python converts the source code into an intermediate form called bytecodes and
then translates this into the native language of your specific computer and then
runs it. All this makes using Python so much easier. You just run your programs - you
never have to worry about linking and loading with libraries, etc. They are also more
portable this way because you can just copy your Python program into another
system of any kind and it just works!
Object Oriented - Python supports procedure-oriented programming as well as
object-oriented programming. In procedure-oriented languages, the program is built
around procedures or functions which are nothing but reusable pieces of programs.
In object-oriented languages, the program is built around objects which combine
data and functionality. Python has a very powerful but simple way of doing objectoriented programming, especially, when compared to languages like C++ or Java.
Extensible - If you need a critical piece of code to run very fast, you can achieve
this by writing that piece of code in C, and then combine that with your Python
program.
Embeddable - You can embed Python within your C/C++ program to give scripting
capabilities for your program's users.
Extensive Libraries - The Python Standard Library is huge indeed. It can help you
do various things involving regular expressions, documentation generation, unit
testing, threading, databases, web browsers, CGI, ftp, email, XML, XML-RPC, HTML,
WAV files, cryptography, GUI(graphical user interfaces) using Tk, and also other
system-dependent stuff. Remember, all this is always available wherever Python is
installed. This is called the "batteries included" philosophy of Python.
Besides the standard library, there are various other high-quality libraries such as
the Python Imaging Library which is an amazingly simple image manipulation
library.
RUBY
Ruby is a dynamic, reflective, object-oriented, general-purpose programming
language. It was designed and developed in the mid-1990s by Yukihiro "Matz"
Matsumoto in Japan.
According to its authors, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada,
and Lisp. It supports multiple programming paradigms, including functional, objectoriented, and imperative. It also has a dynamic type system and automatic memory
management.
Early concept
Ruby was conceived on February 24, 1993. In a 1999 post to the ruby-talk mailing
list, Ruby author Yukihiro Matsumoto describes some of his early ideas about the
language:[13]
I was talking with my colleague about the possibility of an object-oriented
scripting language. I knew Perl (Perl4, not Perl5), but I didn't like it really, because it
had the smell of a toy language (it still has). The object-oriented language seemed
very promising. I knew Python then. But I didn't like it, because I didn't think it was a
true object-oriented language OO features appeared to be add-on to the
language. As a language maniac and OO fan for 15 years, I really wanted a genuine
object-oriented, easy-to-use scripting language. I looked for but couldn't find one.
So I decided to make it. - Matsumoto
Matsumoto describes the design of Ruby as being like a simple Lisp language at its
core, with an object system like that of Smalltalk, blocks inspired by higher-order
functions, and practical utility like that of Perl
The name "Ruby" originated during an online chat session between Matsumoto and
Keiju Ishitsuka on February 24, 1993, before any code had been written for the
language.[15]Initially two names were proposed: "Coral" and "Ruby". Matsumoto
chose the latter in a later e-mail to Ishitsuka Matsumoto later noted a factor in
choosing the name "Ruby" it was the birthstone of one of his colleagues
FIRST Publication
The first public release of Ruby 0.95 was announced on Japanese
domestic newsgroups on December 21, 1995 Subsequently three more versions of
Ruby were released in two days The release coincided with the launch of
the Japanese-language ruby-list mailing list, which was the first mailing list for the
new language.
Already present at this stage of development were many of the features familiar in
later releases of Ruby, including object-oriented design, classes with
inheritance, mixins,iterators, closures, exception handling and garbage collection
Early Releases
Following the release of Ruby 0.95 in 1995, several stable versions of Ruby were
released in the following years:
In 1997, the first article about Ruby was published on the Web. In the same
year, Matsumoto was hired by netlab.jp to work on Ruby as a full-time
developer.
In 1999, the first English language mailing list ruby-talk began, which
signaled a growing interest in the language outside Japan. In this same year,
Matsumoto and Keiju Ishitsuka wrote the first book on Ruby, The Object-
By 2000, Ruby was more popular than Python in Japan. [23] In September 2000,
the first English language book Programming Ruby was printed, which was
later freely released to the public, further widening the adoption of Ruby
amongst English speakers. In early 2002, the English-language rubytalk mailing list was receiving more messages than the Japaneselanguage ruby-list, demonstrating Ruby's increasing popularity in the Englishspeaking world.
Ruby 1.8 - initially released in August 2003, was stable for a long time, and
was retired June 2013.[24] Although deprecated, there is still code based on it.
Ruby 1.8 is only partially compatible with Ruby 1.9. Ruby 1.8 has been the
subject of several industry standards. The language specifications for Ruby
were developed by the Open Standards Promotion Center of the InformationTechnology Promotion Agency (a Japanese government agency) for
submission to the Japanese Industrial Standards Committee (JISC) and then to
the International Organization for Standardization (ISO). It was accepted as a
Japanese Industrial Standard (JIS X 3017) in 2011 and an international
standard (ISO/IEC 30170) in 2012
Around 2005, interest in the Ruby language surged in tandem with Ruby on
Rails, a web application framework written in Ruby. Rails is frequently
credited with increasing awareness of Ruby.
Ruby 1.9 was released in December 2007. Effective with Ruby 1.9.3, released
October 31, 2011, Ruby switched from being dual-licensed under the Ruby
License and the GPL to being dual-licensed under the Ruby License and the
two-clause BSD license. Adoption of 1.9 was slowed by changes from 1.8 that
required many popular third partygems to be rewritten.
Ruby 1.9 introduces many significant changes over the 1.8 series. Examples:
block local variables (variables that are local to the block in which they
are declared)
Ruby 1.9 has been obsolete since February 23, 2015, and it will no longer
receive bug and security fixes. Users are advised to upgrade to a more recent
version.
Ruby 2.1 - Ruby 2.1.0 was released on Christmas Day in 2013. The release
includes speed-ups, bugfixes, and library updates. Starting with 2.1.0, Ruby's
versioning policy is more like semantic versioning. Although similar, Ruby's
versioning policy is not compatible with semantic versioning. Semantic
versioning also provides additional labels for pre-release and build metadata
are available as extensions to the MAJOR.MINOR.PATCH format, not available
at Ruby.
Ruby 2.2 - was released on Christmas Day in 2014.[36] The release includes
speed-ups, bugfixes, and library updates and removes some deprecated APIs.
Most notably, Ruby 2.2.0 introduces changes to memory handling - an
incremental garbage collector, support for garbage collection of symbols and
the option to compile directly against jemalloc. It also contains experimental
support for using vfork(2) with system() and spawn(), and added support for
the Unicode 7.0 specification.
Features that were made obsolete or removed include callcc, the DL library,
Digest::HMAC, lib/rational.rb, lib/complex.rb, GServer, Logger as well as
various C API functions.
FEATURES
Succinct and flexible syntax that minimizes syntactic noise and serves as a
foundation for domain-specific languages
Default arguments
Four levels of variable scope (global, class, instance, and local) denoted
by sigils or the lack thereof
Garbage collection
First-class continuations
Strict boolean coercion rules (everything is true except false and nil)
Exception handling
Operator overloading
Built-in support for rational numbers, complex numbers and arbitraryprecision arithmetic
Initial support for Unicode and multiple character encodings (no ICU support
Semantics
According to the Ruby FAQ, the syntax is similar to Perl and the semantics are
similar to Smalltalk but it differs greatly from Python.
Syntax
The syntax of Ruby is broadly similar to that of Perl and Python. Class and
method definitions are signaled by keywords. In contrast to Perl, variables are
not obligatorily prefixed with a sigil. When used, the sigil changes the
semantics of scope of the variable. One difference from C and Perl is that
keywords are typically used to define logical code blocks, without braces, in
other words a pair of { and }. For practical purposes there is no distinction
between expressions and statements.[51] Line breaks are significant and taken
as the end of a statement; a semicolon may be equivalently used. Unlike
Python, indentation is not significant.
One of the differences of Ruby compared to Python and Perl is that Ruby
keeps all of its instance variables completely private to the class and only
exposes them through accessor methods (attr_writer, attr_reader, etc.).
Unlike the "getter" and "setter" methods of other languages like C++ or Java,
accessor methods in Ruby can be created with a single line of code
Python's property descriptors are similar, but come with a tradeoff in the
development process. If one begins in Python by using a publicly exposed
instance variable, and later changes the implementation to use a private
instance variable exposed through a property descriptor, code internal to the
class may need to be adjusted to use the private variable rather than the
public property. Rubys design forces all instance variables to be private, but
also provides a simple way to declare set and get methods. This is in keeping
with the idea that in Ruby, one never directly accesses the internal members
of a class from outside the class; rather, one passes a message to the class
and receives a response.
The sigils $ and @ do not indicate variable data type as in Perl, but rather
function as scope resolution operators.
Floating point literals must have digits on both sides of the decimal point:
neither .5 nor 2. are valid floating point literals, but 0.5 and 2.0 are.
(In Ruby, integer literals are objects that can have methods apply to them, so
requiring a digit after a decimal point helps to clarify whether 1.e5 should be
parsed analogously to 1.to_f or as the exponential-format floating
literal 1.0e5. The reason for requiring a digit before the decimal point is less
clear; it might relate either to method invocation again, or perhaps to
the .. and ... operators, for example in the fragment 0.1...3.)
Versions prior to 1.9 use plain integers to represent single characters, much
like C. This may cause surprises when slicing strings: "abc"[0] yields 97
(the ASCII code of the first character in the string); to
obtain "a" use "abc"[0,1] (a substring of length 1) or "abc"[0].chr.
The notation statement until expression does not run the statement if the
expression is already true. (The behavior is like Perl, but unlike other
languages' equivalent statements, e.g. do { statement } while (!
(expression)); in C/C++/...). This is because statement until expression is
actually syntactic sugar over until expression; statement; end, the equivalent
of which in C/C++ is while (!(expression)) { statement; }, just as statement if
expression is equivalent to if (expression) { statement; }. However, the
notation begin statement end until expression in Ruby will in fact run the
statement once even if the expression is already true, acting similar to
the do-while of other languages. (Matsumoto has expressed a desire to
remove the special behavior of begin statement end until expression,[52] but it
still exists as of Ruby 2.0.)
A list of so-called gotchas may be found in Hal Fulton's book The Ruby Way,
2nd ed (ISBN 0-672-32884-4), Section 1.5. A similar list in the 1st edition
pertained to an older version of Ruby (version 1.6), some problems of which
have been fixed in the meantime. For example, retry now works
with while, until, and for, as well as with iterators.
PHP
embedded SQLite
iterators
PHP 6 has been in development since October of 2006. The most significant
change will be native support for Unicode. Unpopular, deprecated features such as
Characteristic
The PHP language revolves around the central theme of practicality. PHP is about
providing the programmer with the necessary tools to get the job done in a quick
and efficient fashion. Five important characteristics make PHPs practical nature
possible:
Familiarity
Simplicity
Efficiency
Security
Flexibility
Its Free
Familiarity
Programmers from many backgrounds will find themselves already accustomed to
the PHP language. Many of the languages constructs are borrowed from C and Perl,
and in many cases PHP code is almost indistinguishable from that found in the
typical C or Pascal program.
Simplicity
A PHP script can consist of 10,000 lines or one line: whatever you need to get the
job done. There is no need to include libraries, special compilation directives, or
anything of the sort. The PHP engine simply begins executing the code after the first
escape sequence (). If the code is syntactically correct, it will be executed exactly as
it is displayed.
Efficiency
Free
PHPs embracing of this open source strategy result in great performance gains for
users, and the code is available free of charge. Additionally, an extremely receptive
user community numbering in the thousands acts as customer support, providing
answers to even the most arcane questions in popular online discussion groups.
Advantages of PHP
database frequently, this will largely reduce the development time of web
apps.
Can be run on many platforms, including Windows, Linux and Mac, its easy
for users to find hosting service providers.
Disadvantages of PHP
Security : Since it is open sourced, so all people can see the source code, if
there are bugs in the source code, it can be used by people to explore the
weakness of PHP
Not suitable for large applications: Hard to maintain since it is not very
modular.
Weak type: Implicit conversion may surprise unwary programmers and lead
to unexpected bugs. For example, the strings 1000 and 1e3 compare
equal because they are implicitly cast to floating point numbers.
C#
Pronounced see-sharp. A hybrid of C and C++, it is a Microsoft
programming language developed to complete with Suns Java language. C#
is an object-oriented programming language used with XML-based Web
services on the .NET platform and designed for improving productivity in the
development of Web applications.
History of C#
During the development of the .NET Framework, the class libraries
were originally written using a managed code compiler system called Simple
Managed C (SMC). In January 1999, Anders Hejlsberg formed a team to build
a new language at the time called Cool, which stood for C-like Object
Oriented Language. Microsoft had considered keeping the name of the
language, but chose not to do so for trademark reasons. By the time the
.NET project was publicly announced at the July 2000 Professional
Developers Conference, the language had been renamed C#, and the class
libraries and ASP.NET runtime had been ported to C#.
C#s principal designer and lead architect at Microsoft is Anders
Hejlsberg, who was previously involved with the design of Turbo Pascal,
Embarcadero Delphi (formerly CodeGear Delphi, Inspire Delphi and
Borland Delphi), and Visual J++. In interviews and technical papers he has
stated that flaws in most major programming languages. (e.g. C++, Java,
Variables are assigned using an equals sign, but compared using two
consecutive equals signs.
Square brackets are used with arrays, both to declare them and to get
a value and a given index in one of them.
Distinguishing Features
Some notable features of C# that distinguish it from C, C++, and Java
where noted, are:
C# borrows concepts from Java and C++, adopting only the good bits
from those languages and eliminating overly confusing and error prone
features, which are the major sources of bug in a code.
C# is a terse language.
C# programs are managed code, to say, they are coded and executed
in a controlled environment leaving little room for anamolies called
bugs to creep in.
Reference types
Value types
Both type categories are extensible with user-defined types.
Disadvantages: