Download A Survey of Programming Language Popularity: Is Java Dead?

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
A Survey of Programming Language Popularity: Is Java Dead?
Department of Computer Science
Faculty of Mathematics
University of Belgrade
Introduction to Management
Darko Živanović
Aleksandar Stefanović
A Survey of Programming Language Popularity: Is Java Dead?
Abstract
A number of criticisms have been leveled at Java programming language for various design
choices in the language and platform. Such criticisms include the implementation of generics,
the handling of unsigned numbers, the implementation of floating-point arithmetic, and security
vulnerabilities. Additionally, Java, especially its early versions, has been criticized for its
performance compared to other programming languages.
Despite all that, Java has grown in popularity to become one of the most popular languages of
the early 21st century. But, with Oracle buying Sun, maybe it's time to consider what this means
for the Java Community. In this paper, we will present a study which should help us answering
the question: "Is Java Dead?"
1. Introduction
The first high-level programming languages were designed during the 1950s. Ever since then,
programming languages have been a fascinating and productive area of study. Programmers
endlessly debate the relative merits of their favorite programming languages, sometimes with
almost religious zeal. On a more academic level, computer scientists search for ways to design
programming languages that combine expressive power with simplicity and efficiency.
The complexity of engineering software has increased dramatically in the past decade. In the
early years most engineering applications were concerned solely with solving difficult numerical
problems, and little attention was paid to man-machine interaction, data management, or
integrated software systems. Now, computers are expected to solve a much wider variety of
problems, particularly those in which numerical computations are less predominant. With the
continuing increase in the variety, functionality, and complexity of engineering software, with its
more widespread use, and with its increasing importance, more attention must be paid to
programming language suitability so that rational decisions regarding language selection may
be made.
Java is a programming language originally developed by James Gosling at Sun Microsystems
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
1
A Survey of Programming Language Popularity: Is Java Dead?
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.
Java programming language was intended to serve as a novel way to manage software
complexity. Many consider Java technology to deliver reasonably well on this promise. However,
Java is not without flaws, and it does not universally accommodate all programming styles,
environments, or requirements.
On April 20, 2009, Oracle announced it has entered into an agreement to acquire Sun
Microsystems. The acquisition combines best-in-class enterprise software and mission-critical
computing systems. Oracle, currently tweaking its plans for the future of Java, has been making
some noise that it wants to reinvigorate the once-hot Java language and keep it open. New
features of the soon-to-be-released Java 7 will include increased developer productivity,
modularization, and support for more than 200 languages, according to Oracle. The main
question that arises is: Would the Java community thrive as well under Oracle’s control as it did
under Sun Microsystems' control?
2. Problem Statement
While many think of Oracle as a database company, the fact is that Oracle is deeply invested in
Java and its Fusion Middleware stack is built on Java. Oracle CEO Larry Ellison in his postacquisition call has stated that Java is the single most important software asset they have ever
acquired.
A new TIOBE Software study has found that one and the half year after Oracle buying Sun, Java
is still the most popular programming language among developers. TIOBE Programming
Community Index is an ordered list of programming languages, sorted by the frequency of web
search using the name of the language as the keyword. The index is updated once a month
using Google, YouTube, Yahoo!, MSN, Wikipedia and Blogger as search engines. TIOBE index
focuses on Turing complete languages, so it does not provide information about the popularity
of, for instance, SQL or HTML.
The ratings are calculated by counting hits of the most popular search engines. The search
query that is used is:
+ "<language> programming".
According to the authors, TIOBE index is not about the best programming language or the
language in which most lines of code have been written. The numbers of hits determine the
ratings of a language. The counted hits are normalized for each search engine for the first 50
languages. In other words, the first 50 languages together have a score of 100%.
Besides the rating of programming languages, there is also a status indicated in the TIOBE chart.
Programming languages that have status "A" are considered to be mainstream languages.
Status "A-" and "A--" indicate that a programming language is between status "A" and "B". If a
programming language has a rating that is higher than 0.7% for at least 3 months, it is rewarded
status "A". The first two months the programming language will receive status "A--" and "A-"
respectively.
2
A Survey of Programming Language Popularity: Is Java Dead?
Programming languages that are very similar are grouped together. Currently the maximum of
the hits of the individual languages is taken into account when calculating the ratings of
groupings. The following table contains the definition of groupings for some of the programming
languages taught at the Faculty of Mathematics, University of Belgrade.
Name
ActionScript
C#
Objective Caml
T-SQL
Grouping
ActionScript, AS1, AS2, AS3
C#, C-Sharp, C Sharp, CSharp, CSharp.NET, C#.NET
Objective Caml, OCaml
T-SQL, Transact-SQL, TSQL
Table 1. Groupings for some programming languages. Explanation: The following
table contains the definition of groupings for some of the programming
languages taught at the Faculty of Mathematics, University of Belgrade.
3. Comparison of Programming Languages
TIOBE Programming Community Index for December 2010 shows that Java is still the most
popular programming language and that C# is definitely becoming the number one language
of Microsoft's .NET platform, because last month it increased again to a new all-time high of
6.687%.
Position
Dec 2010
1
2
3
4
5
6
7
8
9
10
Position
Dec 2009
1
2
4
3
6
7
5
13
9
11
Programming
Language
Java
C
C++
PHP
C#
Python
(Visual) Basic
Objective-C
Perl
Delphi
Ratings
Dec 2010
17.999%
16.076%
9.014%
7.511%
6.687%
6.482%
5.118%
3.242%
2.331%
2.171%
Delta
Dec 2009
+0.94%
-0.21%
-0.16%
-2.26%
+0.43%
+1.30%
-2.66%
+2.08%
-0.36%
-0.13%
Status
A
A
A
A
A
A
A
A
A
A
Table 2. TIOBE Programming Community Index for December 2010. Explanation:
TIOBE Programming Community Index for December 2010 shows that Java is still
the most popular programming language.
In the tables below some long term trends are listed about categories of languages. Objectoriented statically typed languages are most popular now for more than 4 years.
Category
Object-Oriented Languages
Procedural Languages
Functional Languages
Logical Languages
Ratings Dec 2010
57.9%
37.1%
3.3%
1.6%
Delta Dec 2009
+2.9%
-2.6%
-0.1%
-0.2%
Table 3. Popularity of various categories of programming languages.
Explanation: Long term trends are listed about categories of languages.
3
A Survey of Programming Language Popularity: Is Java Dead?
Category
Statically Typed Languages
Dynamically Typed Languages
Ratings Dec 2010
62.8%
37.2%
Delta Dec 2009
+5.3%
-5.3%
Table 4. Popularity of various categories of programming languages.
Explanation: Long term trends are listed about categories of languages.
Indeed.Com is a metasearch engine for job listings, launched in November, 2004. The site
aggregates job listings from thousands of websites including job boards, newspapers,
associations, and company career pages. Job seekers do not apply for jobs through Indeed, just
receive the listing as to where the job is posted. It is interesting that Job Trends show that Java
jobs are still very high, which you can see in the figure below.
Figure 1. Percentage of Java job postings in the last four years. Explanation: Job Trends show
that Java jobs are still very high.
4. Trend and the Future of Java Programming Language
Is Java finally dead? There has been much discussion about the end of Java. For a start we first
need to explore what "dead" means for Java. What dead means to us as developers?
Most people mean different things when they talk about Java. There are mainly three parts:



Java, the language
Java, the libraries (JDK)
Java, the virtual machine
So does "Java is dead" mean the language, the libraries or the virtual machine? There are
considerable efforts to open source the virtual machine beside the language. Indeed with the
beginning of the Java language summit it looks stronger than before. Should Sun as a company
die, Oracle drop Java or stop development on the VM, most probably some other players with
their VM implementations or the OpenJDK community would jump in.
4
A Survey of Programming Language Popularity: Is Java Dead?
The VM as a platform has grown enormously in 2008 and 2009. Lots of people talk about JRuby
as Rails for the enterprise – Engine Yards has pledged support. Scala is an object-functional
language on the VM with a strong following and a lot of momentum in 2009. Both Scala and
JRuby are established on the JVM, but there are also a lot of newcomers.
Or does "Java is dead" mean the language? What does it mean to be dead for a programming
language? Perhaps that it is no longer the default choice for projects, but for what projects?
With a different angle we can discuss the death of Java in the view of its potential successors. As
a matter of fact a language cannot die without successors; otherwise no one could develop
any software. People suggest a lot of successors, some of them are:







Ruby
Python
Groovy/Grails
Scala
Fan
Erlang
OCaml
Those successors need to be better than Java, otherwise it would me a folly to replace Java
with high costs and gain nothing. What does better mean?




Faster to write?
More cost efficient?
Higher maintainability, cleaner code?
Shorter code?
A Java successor needs to go through the enterprise. There is the main beef, the most money
and the most developers. To die a language needs to die there. Enterprise software is used for
longer periods of time, with many developers working on it. The longer time periods mean higher
turn-over during the life-time.
5. Conclusion
TIOBE index can be used to check whether your programming skills are still up to date or to
make a strategic decision about what programming language should be adopted when
starting to build a new software system. It is important to note that the index is only one of many
criteria to be used before taking a decision to adopt a language. Other criteria are: suitability
for the application domain, reliability of compilers, expression power, performance, and
scalability. Hence, Ada can still be used for mission-critical systems although one should consider
alternatives. This is what you also see in daily practice: Ada is hardly used for new mission-critical
systems anymore. The other way around is also true. Everybody will agree that it is not wise to
program missile software in JavaScript.
With help of TIOBE index and Java job trends, we come to the conclusion that Java is not dead.
It’s not fundamentally flawed, it still meets its goal, there is interest in Java, no really clear
successor has emerged, the platform evolves, the JVM shines, new languages flourish and new
projects are started in Java.
5
A Survey of Programming Language Popularity: Is Java Dead?
But just because Java is not dead doesn’t mean it has a future. Developers need to open their
eyes and learn new languages. As students, we think that it is necessary to learn Java to have a
high probability of finding a job with the conditions we like.
6. References
[1: Web Paper] Stephan Schmidt, "Is Java Dead?",
http://codemonkeyism.com/java-dead/, 1/4/11.
[2: Web Paper] TIOBE Software, "TIOBE Programming Community Index for December 2010",
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html, 1/4/11.
[3: Web Paper] Indeed, "Java Job Trends",
http://www.indeed.com/jobtrends?q=java, 1/4/11.
[4: Web Paper] Wikipedia, "Java (Programming Language)",
http://en.wikipedia.org/wiki/Java_(programming_language), 1/4/11.
[5: Technical Report] Prashant Kulkarni, Vaibhav Shankar, and Shashi Nagarajan, "Programming
Languages: A Comparative Study", 5/2008.
6