New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Java (Sun) - Wikipedia, the free encyclopedia

Java (Sun)

From Wikipedia, the free encyclopedia

Java Sun Logo

Java refers to a number of computer software products and specifications from Sun Microsystems (the Java™ technology) that together provide a system for developing and deploying cross-platform applications. Java is used in a wide variety of computing platforms spanning from embedded devices and cell phones on the low end to enterprise servers and super computers on the high end. Java is fairly ubiquitous in cell phones, Web servers and enterprise applications, and somewhat less common in desktop applications, though users may have come across Java applets when browsing the Web.

For years, Sun Microsystems referred to Java as the "Java technology" but has used the word "Java" as an adjective about "technology." In practice, many programmers have used the word "Java" to mean the programming language, while the execution platform was called the "JRE" (Java Runtime Environment) and the compiler-system was called the "JDK" (Java Development Kit), rather than a "Java compiler" as such. The word "Java" has often been used as an adjective, but the formal term "Java technology" should be noted (see history below).

Contents

[edit] Major products and technologies

[edit] Programming language

Writing in the Java programming language is the official way to produce code that will be deployed as Java bytecode (though there are compilers available for other languages such as Python and Ruby). Java syntax borrows heavily from C and C++ but it eliminates certain low-level constructs such as pointers and has a very simple memory model where every object is allocated on the heap and all variables of object types are references.

Java has non-object primitive types but every other data type is an object. The Java class libraries provide wrapper objects for the primitive types, and since Java SE 5.0 the Java compiler automatically inserts conversions between a wrapper type and its corresponding primitive. Memory management is handled through integrated automatic garbage collection performed by the JVM.

The current version, Mustang Java SE 6.0, is bundled with a database manager, facilitates the use of scripting languages (currently JavaScript using Mozilla's Rhino engine) with the JVM, has Visual Basic language support, and has native UI enhancements to support the look and feel of Windows Vista.

As Sun Microsystems has announced its intention to license Java under a modified GPL within coming months, with features like MLP — Multi Language and Platform support — the future of Java seems bright.

Netbeans, an open-source IDE and platform sponsored by Sun Microsystems, which support development of both desktop and enterprise applications in Java. In future, its expected that Java, Netbeans, and glassfish application-server will integrate together to a complete development stack, like Microsoft DotNet.

Eclipse, the open-source platform with JDT supporting Java development funded mainly by IBM, has paved the way of easy application development using Java as a platform, in competition with other integrated development environments.

[edit] Platform

Main article: Java platform

The Java platform consists of a Java virtual machine and implementations of the standard libraries. In order to allow for different types of system there are now three versions. Sun refers to their implementation of the Java platform as the Java Runtime Environment (JRE).

  • Java ME (Micro Edition): Specifies several different sets of libraries (known as profiles) for devices which are sufficiently limited that supplying the full set of Java libraries would take up unacceptably large amounts of storage.
  • Java SE (Standard Edition): For general purpose use on desktop PCs, servers and similar devices.
  • Java EE (Enterprise Edition): Java SE plus various APIs useful for multi-tier client-server enterprise applications.

[edit] Java Development Kit

Main article: Java Development Kit

The Java Development Kit (JDK) is a Sun product aimed at Java developers. Since the introduction of Java, it has been by far the most widely used Java SDK. It contains a Java compiler and a number of other important development tools as well as a full copy of the Java Runtime Environment.

[edit] History

[edit] Early history

Duke, Java's mascot
Duke, Java's mascot

The Java platform and language began as an internal project at Sun Microsystems in December of 1990, providing an alternative to the C++/C programming languages, with the new Green Operating System (OS) and a related language internally called Oak in 1992, later renamed to Java in 1994, since Oak was already trademarked.

Back in 1990, Engineer Patrick Naughton had become increasingly frustrated with the state of Sun's C++ and C APIs (application programming interfaces) and tools. While considering moving to NeXT, Naughton was offered a chance to work on new technology and thus the Stealth Project was started.

The Stealth Project was soon renamed to the Green Project with James Gosling and Mike Sheridan joining Naughton. Together with other engineers, they began work in a small office on Sand Hill Road in Menlo Park, California. They were attempting to develop a new technology for programming next generation smart appliances, which Sun expected to be a major new opportunity.

The team originally considered using C++, but it was rejected for several reasons. Because they were developing an embedded system with limited resources, they decided that C++ demanded too large a footprint and that its complexity led to developer errors. The language's lack of garbage collection meant that programmers had to manually manage system memory, a challenging and error-prone task. The team was also troubled by the language's lack of portable facilities for security, distributed programming, and threading. Finally, they wanted a platform that could be easily ported to all types of devices.

Bill Joy had envisioned a new language combining the best of Mesa and C. In a paper called Further, he proposed to Sun that its engineers should produce an object-oriented environment based on C++. Initially, Gosling attempted to modify and extend C++ (which he referred to as "C++ ++ --") but soon abandoned that in favor of creating an entirely new language, which he called Oak, after the tree that stood just outside his office.

The team worked long hours and by the summer of 1992, they were able to demonstrate portions of the new platform including the Green OS, the Oak language, the libraries, and the hardware. Their first attempt, demonstrated on September 3, 1992, focused on building a PDA device named Star7[2] which had a graphical interface and a smart agent called "Duke" to assist the user. In November of that year, the Green Project was spun off to become FirstPerson, Inc, a wholly owned subsidiary of Sun Microsystems, and the team relocated to Palo Alto, California. The FirstPerson team was interested in building highly interactive devices, and when Time Warner issued an RFP for a set-top box, FirstPerson changed their target and responded with a proposal for a set-top box platform. However, the cable industry felt that their platform gave too much control to the user and FirstPerson lost their bid to SGI. An additional deal with The 3DO Company for a set-top box also failed to materialize. Unable to generate interest within the TV industry, the company was rolled back into Sun.

[edit] Java meets the Internet

In June and July of 1994, after three days of brainstorming with John Gage, James Gosling, Bill Joy, Patrick Naughton, Wayne Rosing, and Eric Schmidt, the team re-targeted the platform for the Web. They felt that with the advent of the Mosaic browser, the Internet was on its way to evolving into the same highly interactive medium that they had envisioned for cable TV. As a prototype, Naughton wrote a small web browser, WebRunner, later renamed HotJava.

That year, the language was renamed Java after a trademark search revealed that the name "Oak" was used by a manufacturer of video adaptor cards (Oak Technology). The name Java was coined at a local coffee shop frequented by some of the members. It is not clear whether the name is an acronym or not; although some accounts claim that it stands for the names of James Gosling, Arthur Van Hoff, and Andy Bechtolsheim, or Just Another Vague Acronym, it is generally accepted that "Java" does not stand for anything. Lending credence to the idea that Java owes its name to the products sold at the coffee shop is the fact that the first 4 bytes (the so-called "Magic number") of any class file are, in hexadecimal, 0xCAFEBABE.

In October of 1994, HotJava and the Java platform were demonstrated for some of the Sun executives. Java 1.0a was made available for download in 1994, but the first public release of Java and the HotJava web browser was on May 23, 1995, at the SunWorld conference. The announcement was made by John Gage, the Director of Science for Sun Microsystems. His announcement was accompanied by a surprise announcement by Marc Andreessen, Executive Vice President of Netscape, that Netscape would be including Java support in its browsers. On January 9, 1996, the JavaSoft group was formed by Sun Microsystems in order to develop the technology.[3] A few weeks later the first version of Java was released.

[edit] Criticisms

? This article or section may contain original research or unattributed claims.
Please help Wikipedia by adding references. See the talk page for details.

Many users have pointed out that while Java improves cross platform communication, the end user sacrifices security, the primary issue being a necessary usage of a user's IP address to allow Java to function[citation needed].

[edit] Recent history

[edit] Desktop use

On the desktop, stand-alone Java applications remain relatively rare for several reasons.[4]

  • Java applications often use more memory than native applications because of the overhead for the Java runtime.
  • Graphical user interfaces for Java applications tend not to follow the platform-specific Human Interface Guidelines the user is accustomed to. Font smoothing is disabled by default, which makes text look low quality.
  • The free tools provided in the Java Development Kit are not powerful enough to easily build useful applications, although a variety of other powerful free and commercial tools are available.
  • There are several versions of the Java Runtime Environment. A user must have installed the version required by an application (or any newer version) before installation.
  • Free software operating systems are unable to provide a Sun Java runtime environment because Sun has not released one under a free software license.

Standalone applications have fallen out of favor as computing has switched to a Web-based model. New programming techniques have produced powerful Web applications. However, there are some Java applications in fairly widespread use, including the NetBeans and Eclipse integrated development environments, and file sharing clients such as LimeWire and Azureus. Java is also used in the MATLAB mathematics program for rendering the user interface and for part of the calculation functionality. Java Swing and SWT desktop applications are being developed as an alternative to Microsoft .NET technology.

[edit] Mobile devices

Java applications have become popular in mobile devices, where it competes with Symbian, BREW, and the .NET Compact Framework.

With Symbian, any developer can write and publish applications without paying a royalty. Symbian smartphones are the market leader with around 85% of the smartphone market.

BREW applications have access to routines which can add a charge to the telephone bill of the user. This power necessitates a strict approvals procedure managed by Qualcomm, which collects royalties for each BREW license given and controls which applications can be launched. Many CDMA vendors have opted for BREW, encouraged by their control over users' content by means of a walled garden technique, which some carriers believe will increase their profits. The main exception to this is the American CDMA carrier Sprint Nextel Corporation.

Like Symbian, developers can publish Java programs without paying a royalty. The penetration for Java is significantly higher than for Symbian, as it works on a wider range of phones, particularly popular cheaper models. This has allowed third-parties to create free applications like Opera Mini. Most GSM wireless carriers around the world use Java.

As Java runs in a sandbox, it is safe to allow independent developers to release their own software. The diversity of Java for mobile phones has led to a need for Java standards specifically for mobile phones so programs can run on phones from different suppliers - MIDP. The first standard was MIDP 1, which assumed a small screen size, no access to audio, and a 32kB program limit. The more recent MIDP 2 allows access to audio, and up to 64kB for the program size. With handset designs improving more rapidly than the standards, some manufacturers relax some limitations in the standards, for example, maximum program size.

Windows smartphones and PDAs provide a built-in .NET Compact Framework that can execute mobile .NET applications within a managed environment. .NET CF is in direct competition with Java ME, and is at an advantage within the Windows mobile market where a Java runtime environment is typically not provided by device manufacturers.

[edit] Java runtime availability

According to Sun, the Java Runtime Environment is found on over 700 million PCs.[1] Microsoft has not bundled a Java Runtime Environment (JRE) with its operating systems since Sun Microsystems sued Microsoft for adding Windows-specific classes to the bundled Java runtime environment, and for making the new classes available through Visual J++. A Java runtime environment is bundled with Apple's Mac OS X, and many Linux distributions include the partially compatible free software package GNU Classpath.[2]

Because of incompatibilities between different versions of the JRE, rather than rely on pre-installed JREs, many applications install their own JREs in order to function predictably. While newer Sun Java runtime environments are often backward-compatible with Java programs that were produced using a previous version of Java, numerous compatibility issues exist that can prevent older Java programs from functioning correctly, or at all, on newer Java runtime environments.[5] Java runtime environments are also specifically not forward-compatible, meaning that a Java program can rarely run on a runtime environment that is older than the development kit that was used to create the program.

[edit] Version history

Main article: Java version history
Java Web Start, first introduced for J2SE 1.3, allows provisioning applications over the Web by clicking a desktop icon or a link on a website.
Java Web Start, first introduced for J2SE 1.3, allows provisioning applications over the Web by clicking a desktop icon or a link on a website.

The Java language has undergone several changes since JDK (Java Development Kit) 1.0 as well as numerous additions of classes and packages to the standard library. Since J2SE 1.4, the evolution of the Java Language has been governed by the Java Community Process (JCP), which uses Java Specification Requests (JSRs) to propose and specify additions and changes to the Java platform. The language is specified by the Java Language Specification (JLS); changes to the JLS are managed under JSR 901.

  • Java SE 6 (December 11, 2006) — Codename Mustang. As of this version, Sun replaced the name "J2SE" with Java SE and dropped the ".0" from the version number.[7]. Major changes included in this version:
    • Scripting language support.
    • Support for pluggable annotations (JSR 269).
    • Lots of GUI improvements.
  • Java SE 7 — Codename Dolphin. This is in the early planning stages. The Dolphin Project started up in August 2006, with release estimated in 2008. New builds including enhancements and bug fixes are released approximately weekly.[8]

In addition to the language changes, much more dramatic changes have been made to the Java class library over the years, which has grown from a few hundred classes in JDK 1.0 to over three thousand in J2SE 5.0. Entire new APIs, such as Swing and Java2D, have been introduced, and many of the original JDK 1.0 classes and methods have been deprecated.

[edit] Licensing

The sources for Sun's implementations of Java (which are effectively the de-facto reference implementations) are available, but the license terms severely restrict what can be done with it without signing (and generally paying for) a contract with Sun. As such these terms do not satisfy the requirements of either the Open Source Initiative or the Free Software Foundation to be considered as open source or free software, and Sun Java is therefore a proprietary platform.[9]

While several third-party projects (e.g. GNU Classpath and Apache Harmony) have created free software partial Java implementations, the sheer size of the Sun libraries combined with the use of clean room techniques have meant that their implementations of the Java libraries (the compiler and vm are comparatively small and well defined) are incomplete and not fully compatible. These implementations also tend to be a long way behind Sun's in terms of optimization.

Sun announced in JavaOne 2006 that Java would become Open Source,[10] and on October 25, 2006, at the Oracle OpenWorld conference, Jonathan Schwartz said that Sun was set to announce the open-sourcing of the core Java Platform within 30 to 60 days. [11]

Sun made the standard edition Java HotSpot virtual machine and compiler Free software under the GPL on November 13, 2006,[12] with a promise that the rest of the JDK (which includes the JRE) will be placed under the GPL by March 2007 ("except for a few components that Sun does not have the right to publish in source form under the GPL"). According to Richard Stallman, this means an end to the Java trap. Mark Shuttleworth called the initial press announcement, "A real milestone for the free software community".[3] [13]. However as of 4th april 2007 the compiler and VM remain the only major components availible under a free software license.

[edit] See also

[edit] References

  1. ^ Include Java Software with Your PCs! sun.com retrieved 2006-10-25
  2. ^ kaffe.org: Results of comparison between jdk15 and classpath
  3. ^ The videos on the [1] page were my references

[edit] External links

Java (Sun)
Major Technologies: Java (programming language) | Java Platform | Java Development Kit | Java Virtual Machine | Java Runtime Environment
History: Java version history | Criticism of Java | Java Community Process | Sun Microsystems
Language Features: Bytecode | Syntax | Applets | Servlets | JavaServer Pages
In other languages

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu