A Survey of Programming Language Popularity: Is Java Dead?

A Survey of Programming Language Popularity: Is Java Dead? Department of Computer Science Faculty of Mathematics University of Belgrade Introduction ...
Author: Jemima Osborne
19 downloads 0 Views 138KB Size
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: + " 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

Suggest Documents