Friday, June 10, 2011

Why Java Came Into Exisistance ?

Before Knowing that, we have to know the facts about  generations of programming languages.

First-generation programming languages:
A first-generation programming language is a machine-level programming language.
Originally, no translator was used to compile or assemble the first-generation language. The first-generation programming instructions were entered through the front panel switches of the computer system.
The main benefit of programming in a first-generation programming language is that the code a user writes can run very fast and efficiently, since it is directly executed by the CPU. However, machine language is a lot more difficult to learn than higher generational programming languages, and it is far more difficult to edit if errors occur. In addition, if instructions need to be added into memory at some location, then all the instructions after the insertion point need to be moved down to make room in memory to accommodate the new instructions. Doing so on a front panel with switches can be very difficult. Furthermore, portability is significantly reduced - in order to transfer code to a different computer it needs to be completely rewritten since the machine language for one computer could be significantly different from another computer. Architectural considerations make portability difficult too. For example, the number of registers on one CPU architecture could differ from those of another.

The distinguishing properties of these first generation programming languages are that:
  • The code can be read and written by a programmer. To run on a computer it must be converted into a machine readable form, a process called assembly.
  • The language is specific to a particular target machine or family of machines, directly reflecting their characteristics like instruction sets, registers, storage access models, etc., requiring and enabling the programmer to manage their use.
  • Some assembler languages provide a macro-facility enabling the development of complex patterns of machine instructions, but these are not considered to change the basic nature of the language.
First-generation languages are sometimes used in kernels and device drivers, but more often find use in extremely intensive processing such as games, video editing, and graphic manipulation/rendering.

Reason for Avoiding :


1. Programs had to be written using binary codes unique to each computer.
2. Programmers had to have a detailed knowledge of the internal operations of the specific type of CPU they

    were using. 
3. Programming was difficult and error-prone.
4. Programs are not portable to other computers.



Second-generation programming languages:
A second generation (programming) language (2GL) is a grouping of programming languages associated with assembly languages. Unlike the first generation languages, programs can be written symbolically, using English words (also known as mnemonics), in a way that a human can understand and are subsequently converted into machine language by an assembler.

Reason for Avoiding :
1. Assembler languages are unique to specific types of computers.
2. Programs are not portable to other computers.


Third-generation programming languages:
A third generation (programming) language (3GL) is a grouping of programming languages that introduced significant enhancements to second generation languages, primarily intended to make the programming language more programmer-friendly.

English words are used to denote variables, programming structures and commands, and Structured Programming is supported by most 3GLs. Commonly known 3GLs are FORTRAN, BASIC, Pascal and the C-family (C, C+, C++, C#, Objective-C) of languages.


Also known as a 3rd generation language, or a high-level programming language.


Moving away from the cryptic commands of Assembly Language and one step below Fourth Generation Languages, programmers in 3GLs are favored by using aggregate data types, variable names and the ability to define sections of code as subroutines. The program in 3GL is called the Source Program or Source Code and it subsequently converted by a specialized program, the Compiler, to Object Code, understandable by the specific computer and CPU.

Since the introduction of the Compiler in 1952, hundreds of 3GLs have been developed, specifically providing benefits for programmers of applications serving various business and scientific domains. In 1957, IBM created FORTRAN (FORmula TRANslator) to facilitate computerized mathematically-intensive scientific research. COBOL (COmmon Business Oriented Language) was instrumental in spurring a surge of programs serving the business arena, with its enhanced ability to provide record keeping and data management services. Most of the general purpose programming languages used today such as C, C++, C# and Java are 3GLs.
Advantages:
1. Easier to learn and understand than an assembler language as instructions (statements) that resemble human

    language or the standard notation of mathematics.
2. Have less-rigid rules, forms, and syntaxes, so the potential for error is reduced.
3. Are machine-independent programs therefore programs written in a high-level language do not have to be

    reprogrammed when a new computer is installed.
4. Programmers do not have to learn a new language for each computer they program.

Disadvantages:

1. Less efficient than assembler language programs and require a greater amount of computer time for

    translation into machine instructions.   


While comparing to the advantages limitations can be neglected.


Before going deep into JAVA we have to know why Java become most popular than other 3GLs


C :
Advantages: 

    1. C is a building block for many other currently known languages. Take a look at Python for
        example a fully Object-Oriented High-Level programming language. It is written in C
        (perhaps C++ too). That tells you if you ever want to know what is going on under the hood
        in other languages; understanding C and how it works is essential.

    2. C is a compiled language versus an interpreted language. Explained simply, this means that
        the code is compacted into executable instruction (in the case of windows anyway) rather
        than being "translated" on the fly at run time. This feature also lends heavily to the speed of
        C programs.

    3. A lot of libraries are written in C.
    4. The main advantages of C language is that there is not much vocabulary to learn, and that
        the programmer can arrange for the program is very fast. C programming language is very
        easier to learn. C programming language is still a practical and compact language. It 
        comprises a good semantic. Syntax is of C is clear also. C language is very near to assembly
        programming i.e. the hard use of pointers for example is a very powerful mechanism.
 
    5. C has features that allow the programmer to organize programs in a clear, easy, logical way.
        For example, C allows meaningful names for variables without any loss of efficiency, yet it
        gives a complete freedom of programming style, including flexible ways of making
        decisions, and a set of flexible commands for performing tasks repetitively (for, while, do).

Disadvantages:
  
     1. C does not have OOPS feature that's why C++ is developed. If you know any other modern
         programming language then you already know its disadvantages. 

     2. There is no runtime checking in C language.

     3. There is no strict type checking (for ex: we can pass an integer value for the floating
         data type).

     4. C doesn't have the concept of namespace.

     5. C doesn't have the concept of constructors and destructors

     

Wednesday, May 18, 2011

James Gosling


Born May 19, 1955 (1955-05-19) (age 55)
near Calgary, Alberta, Canada
Residence San Francisco Bay Area, California, United States
Nationality Canada


Occupation Computer Scientist
Employer Google
Known for Java programming language
Awards Officer of the Order of Canada

Education and career

In 1977, Gosling received a B.Sc in Computer Science from the University of Calgary. In 1983, he earned a Ph.D in Computer Science from Carnegie Mellon University, and his doctoral thesis was titled "The Algebraic Manipulation of Constraints". His thesis advisor was Raj Reddy. While working towards his doctorate, he wrote a version of emacs (gosmacs), and before joining Sun Microsystems he built a multi-processor version of Unix. while at Carnegie Mellon University, as well as several compilers and mail systems.
Between 1984 and 2010, Gosling was with Sun Microsystems. He is known as the father of the Java programming language.
On April 2, 2010, Gosling left Sun Microsystems which had recently been acquired by the Oracle Corporation. Regarding why he left, Gosling wrote on his blog that "Just about anything I could say that would be accurate and honest would do more harm than good." He has since taken a very critical stance towards Oracle in interviews.
On March 28, 2011, James Gosling announced on his blog that he had been hired by Google.
Gosling is listed as an advisor at the Scala company Typesafe, launched in May 2011


































Don Jackson, Faye Baxter, Patrick Naughton, Chris Warth, James Gosling



Tuesday, May 17, 2011

Since 1995, Java has changed our world . . . and our expectations..
Today, with technology such a part of our daily lives, we take it for granted that we can be connected and access applications and content anywhere, anytime. Because of Java, we expect digital devices to be smarter, more functional, and way more entertaining.
In the early 90s, extending the power of network computing to the activities of everyday life was a radical vision. In 1991, a small group of Sun engineers called the "Green Team" believed that the next wave in computing was the union of digital consumer devices and computers. Led by James Gosling, the team worked around the clock and created the programming language that would revolutionize our world – Java.
The Green Team demonstrated their new language with an interactive, handheld home-entertainment controller that was originally targeted at the digital cable television industry. Unfortunately, the concept was much too advanced for the them at the time. But it was just right for the Internet, which was just starting to take off. In 1995, the team announced that the Netscape Navigator Internet browser would incorporate Java technology.
Today, Java not only permeates the Internet, but also is the invisible force behind many of the applications and devices that power our day-to-day lives. From mobile phones to handheld devices, games and navigation systems to e-business solutions, Java is everywhere!

Origin

Java logo.svg
Paradigm Object-oriented, structured, imperative
Appeared in 1995
Designed by Sun Microsystems (now owned by Oracle Corporation)
Developer James Gosling & Sun Microsystems
Stable release Java Standard Edition 6 (1.6.0_25) (April 21, 2011; 26 days ago (2011-04-21))
Typing discipline Static, strong, safe, nominative, manifest
Major implementations OpenJDK, HotSpot, many others
Dialects Generic Java, Pizza
Influenced by Ada 83, C++, C#, Delphi Object Pascal, Eiffel, Generic Java, Mesa,  Modula-3, Objective-C, UCSD Pascal, Smalltalk
Influenced Ada 2005, BeanShell, C#, Clojure, D, ECMAScript, Groovy, J#, JavaScript, PHP, Python, Scala
OS Cross-platform (multi-platform)
License GNU General Public License / Java Community Process
Usual file extensions .java, .class, .jar



Java is a programming language originally developed by James Gosling at Sun Microsystems (which is now a subsidiary of 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 has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture. Java is a general-purpose, concurrent, class-based, object-oriented language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere". Java is currently one of the most popular programming languages in use, and is widely used from application software to web applications.
The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1995. As of May 2007, in compliance with the specifications of the Java Community Process, Sun relicensed most of its Java technologies under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java, GNU Classpath, and Dalvik.