O''''Reilly Network For Information About''''s Book part 15 - Pdf 17


5.1. Java Raises the Bar
Each new language is subject to the rules of its time. If you think about new
inventions in the world of music, you'll see the same principle in play. Early in the
recording industry, a record label would sign an artist to a specified contract,
manufacture records, promote
them on the radio, and distribute them in stores. You
find some of those features today, like many of the roles in the production cycle
and the importance of airtime (on radio, and now TV and the Internet). Changes in
standards force the industry to retool. Some are relatively minorchanges in record
speeds simply forced manufacturers to add capability to record players and
recording equipment. Others will almost certainly be more radical. These changes
require a critical mass to take holdCDs achieved a critical mass, but eight-tracks
did not. Sometimes, disruptive changes completely redefine the organization and
very fiber of an industry. Our kids are redefining the way music is distributed
through services like Napster and iTunes. Some artists are distributing their music
entirely over the Internet, and they are cutting the publishing industry out of the
equation altogether.
New programming languages work in much the same way. Every language leaves
behind a legacy. Sometimes, changing languages embrace the
legacy. For example,
you compiled your C programs into a DLL or an executable. You could take
advantage of your C code from C++ by buying a new compiler. You could even
use C++ to write procedural code or object-oriented code. C++ changed the way
we think, but it did not change much of the machinery. The C programming
language was also disruptive in many ways. Java, too, was disruptive, redefining
the rules of the game.
Kids like to be able to download songs like "Macarena" instantly, so the old music

mentor, pragmatic, and evangelist of technologies such as J2EE, JDO,
AOP, and Groovy. He is the former editor-in-chief of
TheServerSide.com J2EE Community and is a member of the Java
Community Process, where he participates on various expert groups.
You've been a Ruby
on Rails proponent.
Do you see Ruby as
a potential
replacement for
Java?
DA: As much as I like technologies such
as Ruby, I am skeptical as to how to get
them used in the mainstream. There is too
much power behind the Big Two VMs
(JVM/CLR).
"You are saying I should bet my Fortune
500 enterprise on a Japanese Mormon
named Matz?"
What are the big
obstacles?
DA: Inertia is a serious concern for large
companies. What is the roadmap for
Ruby? Where are the standards? What is
the quality of the various modules? How
is Ruby on the mobile phone?
How might it
overcome those
obstacles?
DA: Ruby is a top language with some
amazing frameworks on top of it, but to

Corporations use the Internet internally to discriminate information and control the
deployment costs of an application. Businesses use the Internet externally to reach
their customers and partners. Enabling applications for the Internet has become the
most important problem that a business solves, except maybe database integration.
Java enabled a whole new generation of Internet applications, with the servlet
programming model, JSP as a compiled template language, and a whole suite of
enterprise libraries. The next successful language will have to do the Internet, and
do it better than Java.
The Internet has at least two dimensions: interfaces for computers, and interfaces
for people. For people, the next language should build more powerful interfaces
faster than you can build them in Java. I don't think it's enough to just build simple
HTML. You need to be able to build a page that can preserve a common layered
look and feel throughout an enterprise, so the next language will need to support
some kind of component model. Also, users are just beginning to understand that
HTML is not enough. Applications like Google Maps and Google Mail stretch
HTML and JavaScript to new levels. That's going to be very important to the next
successful language.
In fact, many of the consultants I interviewed for this book believe that HTML is
broken in fundamental ways. A broadly successful new language could
conceivably present a higher abstraction that makes it easier for the industry to
retool, piecemeal. Ruby on Rails and Ajax technologies both seem to be moving in
this direction.
5.1.3. Interoperability
Bridging from Java to an emerging language will also be important. Of course, if
the new language embraces the JVM, interop at lower
levels will not be a problem.
Interop on the Internet will undoubtedly play a critical role. I think that leads to
three important capabilities: XML , web services, and service-oriented
architectures.
5.1.3.1. XML and structured data

I'm not sure that web services, as defined by IBM or Microsoft, has staying power.
I do believe that a lighter form of web services, called REST, may last. REST
stands for Representational State Transfer, and it promotes using services the way
Internet sites have used them for years. Like the Internet, REST views the network
as a collection of resources rather than a collection of methods (like CORBA or
traditional web services.)
A REST-based resource returns a representation of itself, usually in XML form.
REST allows and even encourages links. REST-based services are based on well-
understood, mature APIs, so unlike the fragile traditional web services stacks, they
integrate well with other technologies. They can also rely on existing infrastructure
to cache content, build links, or secure communication. It's a powerful paradigm
shift.
So, Java provides the first set of rules, shown in Table 5-1. If you want to run this
river, you'll need to meet the improved standards set by Java. To do anything less
means death.
Table 5-1. Java's legacy requirements
Rule Description
JVM and/or Microsoft
Common Language Runtime
(CLR)
Run in the JVM, or at a bare minimum, run in its
own virtual machine.
Internet focus Enable Internet applications.
Internet user interfaces Allow richer Internet user interfaces.
Service layer Provide an SOA-style integration with Java.
Web services Allow some type of web service, whether it's the
full web services stack or REST-based web
services.
XML Provide a rich, productive XML API.


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status