C Language
C is a general-purpose, high-level language that was originally
developed by Dennis M. Ritchie to develop the UNIX operating system at
Bell Labs. C was originally first implemented on the DEC PDP-11
computer in 1972.
In 1978, Brian Kernighan and Dennis Ritchie
produced the first publicly available description of C, now known as
the K&R standard.
The UNIX operating system, the C
compiler, and essentially all UNIX applications programs have been
written in C. The C has now become a widely used professional language
for various reasons.
- Easy to learn
- Structured language
- It produces efficient programs.
- It can handle low-level activities.
- It can be compiled on a variety of computer platforms.
Facts about C
- C was invented to write an operating system called UNIX.
- C is a successor of B language which was introduced around 1970
- The language was formalized in 1988 by the American National Standard Institute (ANSI).
- The UNIX OS was totally written in C by 1973.
- Today C is the most widely used and popular System Programming Language.
- Most of the state-of-the-art softwares have been implemented using C.
- Today's most popular Linux OS and RBDMS MySQL have been written in C.
Why to use C?
C was initially used for system development work, in particular the
programs that make-up the operating system. C was adopted as a system
development language because it produces code that runs nearly as fast
as code written in assembly language. Some examples of the use of C
might be:
- Operating Systems
- Language Compilers
- Assemblers
- Text Editors
- Print Spoolers
- Network Drivers
- Modern Programs
- Databases
- Language Interpreters
- Utilities
C Programs
A C program can vary from 3 lines to millions of lines and it should be written into one or more text files with extension ".c"; for example, hello.c. You can use "vi", "vim" or any other text editor to write your C program into a file.
2. C++ Language
C++ (pronounced see plus plus) was developed by Bjarne Stroustrup at
Bell Labs as an extension to C, starting in 1979. C++ was ratified in
1998 by the ISO committee, and again in 2003 (called C++03). A new
version of the standard, known as C++11 has been made available.
The underlying design philosophy of C and C++ can be summed up as
“trust the programmer” — which is both wonderful, because the compiler
will not stand in your way if you try to do something unorthodox that
makes sense, but also dangerous, because the compiler will not stand in
your way if you try to do something that could produce unexpected
results. That is one of the primary reasons why knowing how NOT to code
C/C++ is important — because there are quite a few pitfalls that new
programmers are likely to fall into if caught unaware.
C++ adds
many new features to the C language, and is perhaps best thought of as
a superset of C, though this is not strictly true as C99 introduced a
few features that do not exist in C++. C++’s claim to fame results
primarily from the fact that it is an object-oriented language.
C++ Features
- C++ is C. C++ supports (almost) all the features of C. Like C, C++ allows programmers to manage the memory directly, so as to develop efficient programs.
- C++ is OO. C++ enhances the procedural-oriented C language with the object-oriented extension. The OO extension facilitates design, reuse and maintenance for complex software.
- Template C++. C++ introduces generic programming, via the so-called template. You can apply the same algorithm to different data types.
- STL. C++ provides a huge set of reusable standard libraries, in particular, the Standard Template Library (STL).
C++ Strength and Pitfall
C++ is a powerful language for high-performance applications,
including writing operating systems and their subsystems, games and
animation. C++ is also a complex and difficult programming language,
which is really not meant for dummies. For example, to effectively use
the C++ Standard Template Library (STL), you need to understand these
difficult concepts: pointers, references, operator overloading and
template, on top of the object-oriented programming concepts such as
classes and objects, inheritance and polymorphism; and the traditional
constructs such as decision and loop. C++ is performance centric. The
C++ compiler does not issue warning/error message for many obvious
programming mistakes, undefined and unspecified behaviors, such as array
index out of range, using an uninitialized variable, etc, due to the
focus on performance and efficiency rather than the ease of use - it
assumes that those who choose to program in C++ are not dummies.
3. Java
Java is a computer programming language that is concurrent,
class-based, object-oriented, and specifically designed to have as few
implementation dependencies as possible. It is intended to let
application developers "write once, run anywhere" (WORA), meaning that
code that runs on one platform does not need to be recompiled to run on
another. Java applications are typically compiled to bytecode (class
file) that can run on any Java virtual machine (JVM) regardless of
computer architecture. Java is, as of 2014, one of the most popular
programming languages in use, particularly for client-server web
applications, with a reported 9 million developers. Java was originally
developed by James Gosling at Sun Microsystems (which has since merged
into Oracle Corporation) and released in 1995 as a core component of
Sun Microsystems' Java platform. The language derives much of its
syntax from C and C++, but it has fewer low-level facilities than either
of them.
Java is a computer programming language. It enables
programmers to write computer instructions using English based
commands, instead of having to write in numeric codes. It’s known as a
“high-level” language because it can be read and written easily by
humans. Like English, Java has a set of rules that determine how the
instructions are written. These rules are known as its “syntax”. Once a
program has been written, the high-level instructions are translated
into numeric codes that computers can understand and execute.
Why Choose Java?
Java was designed with a few key principles in mind:
- Easy to Use: The fundamentals of Java came from a programming language called c++. Although c++ is a powerful language, it was felt to be too complex in its syntax, and inadequate for all of Java's requirements. Java built on, and improved the ideas of c++, to provide a programming language that was powerful and simple to use.
- Reliability: Java needed to reduce the likelihood of fatal errors from programmer mistakes. With this in mind, object-oriented programming was introduced. Once data and its manipulation were packaged together in one place, it increased Java’s robustness.
- Secure: As Java was originally targeting mobile devices that would be exchanging data over networks, it was built to include a high level of security. Java is probably the most secure programming language to date.
- Platform Independent: Programs needed to work regardless of the machine they were being executed on. Java was written to be a portable language that doesn't care about the operating system or the hardware of the computer.
This is a must learn language for every programmer.
4. C#
C# is an elegant and type-safe object-oriented language that enables
developers to build a variety of secure and robust applications that
run on the .NET Framework. You can use C# to create Windows client
applications, XML Web services, distributed components, client-server
applications, database applications, and much, much more. Visual C#
provides an advanced code editor, convenient user interface designers,
integrated debugger, and many other tools to make it easier to develop
applications based on the C# language and the .NET Framework.
C# syntax is highly expressive, yet it is also simple and easy to learn.
The curly-brace syntax of C# will be instantly recognizable to anyone
familiar with C, C++ or Java. Developers who know any of these
languages are typically able to begin to work productively in C# within
a very short time. C# syntax simplifies many of the complexities of
C++ and provides powerful features such as nullable value types,
enumerations, delegates, lambda expressions and direct memory access,
which are not found in Java. C# supports generic methods and types,
which provide increased type safety and performance, and iterators,
which enable implementers of collection classes to define custom
iteration behaviors that are simple to use by client code.
Language-Integrated Query (LINQ) expressions make the strongly-typed
query a first-class language construct.
As an object-oriented
language, C# supports the concepts of encapsulation, inheritance, and
polymorphism. All variables and methods, including the Main method, the
application's entry point, are encapsulated within class definitions. A
class may inherit directly from one parent class, but it may implement
any number of interfaces. Methods that override virtual methods in a
parent class require the override keyword as a way to avoid accidental
redefinition. In C#, a struct is like a lightweight class; it is a
stack-allocated type that can implement interfaces but does not support
inheritance.
In addition to these basic object-oriented principles,
C# makes it easy to develop software components through several
innovative language constructs, including the following:
- Encapsulated method signatures called delegates, which enable type-safe event notifications.
- Properties, which serve as accessors for private member variables.
- Attributes, which provide declarative metadata about types at run time.
- Inline XML documentation comments.
- Language-Integrated Query (LINQ) which provides built-in query capabilities across a variety of data sources.
If you have to interact with other Windows software such as COM
objects or native Win32 DLLs, you can do this in C# through a process
called "Interop." Interop enables C# programs to do almost anything
that a native C++ application can do. C# even supports pointers and the
concept of "unsafe" code for those cases in which direct memory access
is absolutely critical.
The C# build process is simple
compared to C and C++ and more flexible than in Java. There are no
separate header files, and no requirement that methods and types be
declared in a particular order. A C# source file may define any number
of classes, structs, interfaces, and events.
The job market for C# programmers is also good and you can find a lucrative job being a C# programmer.
5. Objective C
Objective-C is a general-purpose, object-oriented programming
language that adds Smalltalk-style messaging to the C programming
language. It is the main programming language used by Apple for the OS X
and iOS operating systems, and their respective application programming
interfaces (APIs), Cocoa and Cocoa Touch.
The programming
language Objective-C was originally developed in the early 1980s. It
was selected as the main language used by NeXT for its NeXTSTEP
operating system, from which OS X and iOS are derived. Generic
Objective-C programs that do not use the Cocoa or Cocoa Touch libraries,
or using parts that may be ported or reimplemented for other systems
can also be compiled for any system supported by GCC or Clang.
Objective-C source code program files usually have .m filename
extensions, while Objective-C header files have .h extensions, the same
as for C header files. Objective-C++ files are denoted with a .mm file
extension.
Sound knowledge of Objective-C would be helpful in
landing you a job in companies that develop Apple based software
applications. In addition to that, freelance industry also has huge
demand for Objective-C coders across the globe.
6. PHP
PHP (Hypertext Preprocessor) is one of the most widely used
languages used to develop dynamic websites. PHP was developed in 1995
and is a server-side scripting language which means that PHP code is
processed on the server and end result is sent to the user of the
website in the form of plain HTML.
PHP is an open-source
language which means that there are thousands of already built modules
that can be modified to achieve the desired functionality. Also, PHP is
easy to learn; you simply have to embed the code inside HTML. And if
there was anything left, there are hundreds of PHP platforms available
such as Joomla, WordPress, and Drupal that allow you to develop
websites even more conveniently. PHP is one language that every
programmer should learn if he or she plans to pursue a web developer’s
career. PHP is also an integral part of the famous LAMP (Linux Apache
MySQL and PHP) platform that Facebook, Yahoo, and other famous websites
use. PHP has a huge job market, though not much highly paid when
compared to ASP.NET developers; PHP developers easily find decent jobs.
7. JavaScript
JavaScript was originally developed by Brendan Eich, while working for Netscape Communications Corporation.
JavaScript (JS) is a dynamic computer programming language. It is most
commonly used as part of web browsers, whose implementations allow
client-side scripts to interact with the user, control the browser,
communicate asynchronously, and alter the document content that is
displayed. It is also being used in server-side network programming
(with Node.js), game development and the creation of desktop and mobile
applications.
JavaScript is a prototype-based scripting language
with dynamic typing and has first-class functions. Its syntax was
influenced by C. JavaScript copies many names and naming conventions
from Java, but the two languages are otherwise unrelated and have very
different semantics. The key design principles within JavaScript are
taken from the Self and Scheme programming languages. It is a
multi-paradigm language, supporting object-oriented, imperative, and
functional programming styles.
The application of JavaScript
in use outside of web pages—for example, in PDF documents,
site-specific browsers, and desktop widgets—is also significant. Newer
and faster JavaScript VMs and platforms built upon them (notably
Node.js) have also increased the popularity of JavaScript for
server-side web applications. On the client side, JavaScript was
traditionally implemented as an interpreted language but just-in-time
compilation is now performed by recent (post-2012) browsers.
JavaScript was formalized in the ECMAScript language standard and is
primarily used as part of a web browser (client-side JavaScript). This
enables programmatic access to objects within a host environment.
JavaScript alone will not help you land a job but if you are looking
to pursue a career in web development, JavaScript is a must learn
language along with some advanced server side scripting language.
8. Python
Python is an interpreted, general-purpose high-level programming
language whose design philosophy emphasizes code readability. Python
aims to combine "remarkable power with very clear syntax", and its
standard library is large and comprehensive. Its use of indentation for
block delimiters is unusual among popular programming languages.
Python supports multiple programming paradigms, primarily but not
limited to object oriented, imperative and, to a lesser extent,
functional programming styles. It features a fully dynamic type system
and automatic memory management, similar to that of Scheme, Ruby, Perl,
and Tcl. Like other dynamic languages, Python is often used as a
scripting language, but is also used in a wide range of non-scripting
contexts.
The reference implementation of Python (CPython) is
free and open source software and has a community-based development
model, as do all or nearly all of its alternative implementations.
CPython is managed by the non-profit Python Software Foundation.
Python interpreters are available for many operating systems, and
Python programs can be compiled into stand-alone executable code for
those systems, using tools included with the interpreter installation
package.
Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.
Some of Python's notable features:
- Uses an elegant syntax, making the programs you write easier to read.
- Is an easy-to-use language that makes it simple to get your program working. This makes Python ideal for prototype development and other ad-hoc programming tasks, without compromising maintainability.
- Comes with a large standard library that supports many common programming tasks such as connecting to web servers, searching text with regular expressions, reading and modifying files.
- Python's interactive mode makes it easy to test short snippets of code. There's also a bundled development environment called IDLE.
- Is easily extended by adding new modules implemented in a compiled language such as C or C++.
- Can also be embedded into an application to provide a programmable interface.
- Runs on many different computers and operating systems: Windows, MacOS, many brands of Unix, OS/2, ...
- Is free software in two senses. It doesn't cost anything to download or use Python, or to include it in your application. Python can also be freely modified and re-distributed, because while the language is copyrighted it's available under an open source license.
Some programming-language features of Python are:
- A variety of basic data types are available: numbers (floating point, complex, and unlimited-length long integers), strings (both ASCII and Unicode), lists, and dictionaries.
- Python supports object-oriented programming with classes and multiple inheritance.
- Code can be grouped into modules and packages.
- The language supports raising and catching exceptions, resulting in cleaner error handling.
- Data types are strongly and dynamically typed. Mixing incompatible types (e.g. attempting to add a string and a number) causes an exception to be raised, so errors are caught sooner.
- Python contains advanced programming features such as generators and list comprehensions.
- Python's automatic memory management frees you from having to manually allocate and free memory in your code.
Like, PHP, Python also has associated web frameworks which make it
more convenient to develop web based applications in python. Django is
one such platform which powers the sites aforementioned. Good jobs are
available in the market.
9. SQL
SQL (Structured Query Language) is a special-purpose programming
language designed for managing data held in a relational database
management system (RDBMS).
Originally based upon relational
algebra and tuple relational calculus, SQL consists of a data
definition language and a data manipulation language. The scope of SQL
includes data insert, query, update and delete, schema creation and
modification, and data access control. Although SQL is often described
as, and to a great extent is, a declarative language (4GL), it also
includes procedural elements.
SQL was one of the first
commercial languages for Edgar F. Codd's relational model. "A
Relational Model of Data for Large Shared Data Banks." Despite not
entirely adhering to the relational model as described by Codd, it
became the most widely used database language.
The Structured
Query Language (SQL) is the set of instructions used to interact with a
relational database. In fact, SQL is the only language that most
databases actually understand. Whenever you interact with such a
database, the software translates your commands (whether they are mouse
clicks or form entries) into SQL statement that the database knows how
to interpret. SQL has three major components: the Data Manipulation
Language (DML), the Data Definition Language (DDL), and the Data
Control Language (DCL).
Like JavaScript, SQL alone is not that
beneficial in terms of job placement; however, good command of SQL can
help you stand out of crowd. Therefore, it is highly recommended that
you learn it.
10. Ruby
Ruby is a dynamic, reflective, general purpose object-oriented
programming language that combines syntax inspired by Perl with
Smalltalk-like features. Ruby originated in Japan during the mid-1990s
and was first developed and designed by Yukihiro "Matz" Matsumoto. It
was influenced primarily by Perl, Smalltalk, Eiffel, and Lisp.
Ruby supports multiple programming paradigms, including functional,
object oriented, imperative and reflective. It also has a dynamic type
system and automatic memory management; it is therefore similar in
varying respects to Python, Perl, Lisp, Dylan, Pike, and CLU. Ruby also
has got a good job market and ruby developers are being paid decently.
Which Language to choose from the above?
Only you can answer this question. Following are some of the factors
that you should take into account while selecting a particular language
for development.
- What the requirements of the application you want to develop are; web-based, desktop or mobile application?
- What your personal interests are; commercial or open source technologies?
- What the job market of the language is.
- Learning curve for a particular language.
Good attempt
ReplyDelete