Java and JavaScript dominated software development in the 2010s

Java and JavaScript dominated software development in the 2010s


Ruby and PHP had short-term popularity but long-term impact, and Python is on the rise again.

The mindset of software developers is changing, and employers need to take note
Princeton Professor Ed Felten believes software developers today are looking to make a positive change in the world, and employers need to understand their needs.

Over the last 10 years, Python had two spikes of popularity while Java, JavaScript, C#, and SQL dominated software development. TechRepublic looked at the numbers and talked to a dozen professionals to understand which languages had the biggest impact on the industry. 

Developers favored a few other languages briefly during the 2010s, including Ruby, Swift, and PHP. Java and JavaScript, however, had the biggest impact.
 
This review includes three measures of popularity:

  • The Tiobe Index based on search queries 
  • Developer surveys from Stack Overflow
  • Languages used in technical interviews from Karat 

The Tiobe Index tracks the popularity of programming languages from month to month and year to year based on search queries. The Programming Language Hall of Fame lists the language that had the highest rise in rankings each year:

  • 2018 – Python
  • 2017 – C
  • 2016  – Go
  • 2015 – Java
  • 2014  – JavaScript
  • 2013 – Transact-SQL
  • 2012  – Objective-C
  • 2011  – Objective-C
  • 2010  – Python

Briana Brownell, founder and CEO of the analytics company PureStrategy.ai, said that Python has had the biggest impact in the data science community.

“Machine learning is fast becoming a mainstay of technology, and Python is way ahead in terms
of scientific computing and data analysis,” she said.

Jeff Rouse, vice president of product at ActiveState, said that Python strikes the right balance between ease of use and functional capability.
 
“At the start of the modern AI revolution (circa 2010), Python was suddenly the best candidate to bring machine learning out of academia and into mainstream businesses,” he said. “The result has been an explosion in intelligent automation that has transformed key parts of multiple industries, from fraud detection to customer support (via chatbots/digital voice assistants) to spam filters, and supported solutions are now part of most people’s daily lives.”

Asking developers directly

Stack Overflow has been tracking developers’ habits and coding preferences since 2011 with annual surveys. The first Developer Survey got 2,532 respondents. That year the hot topics were job satisfaction and smartphone wars. In the 2012 survey, the most popular languages were SQL, JavaScript, CSS, C#, and Java. In 2013, SQL was at the top of the list and PHP joined the top 5, replacing CSS. By the middle of the decade in 2015, JavaScript was at the top of the list. 

Transformify CEO Lilia Stoyanov said PHP has had a big influence over the last decade, even if it is already considered outdated. She said many of her clients come to Transformify for help hiring  developers who can work in PHP. 

“It is a widespread language, it’s easy to find developers, and the pay rates are lower,” she said. “I don’t believe that PHP will disappear anytime soon.”

In 2019, almost 90,000 developers took the Stack Overflow survey and the top five list among professional developers looked like this:

  1. JavaScript     70%
  2. HTML/CSS    63%
  3. SQL               57%
  4. Python           39%
  5. Java               39%

The same five languages ruled the top four spots from 2013 to 2017: JavaScript, SQL, Java, and C#. In 2018, HTML and CSS pushed out C# and Python. 

SEE: Implementing DevOps: A guide for IT pros (free PDF) (TechRepublic)

A cybersecurity researcher and software engineer, Akshay Sharma, said that Java and JavaScript had completely changed the industry in many ways.

“JavaScript made ‘serverless’ architecture possible with languages like NodeJS and AngularJS. Previously, one would’ve never even imagined using a client-side language to serve the purposes of a back-end server,” he said. “This led to not only creation of new jobs but a new way of ‘thinking’ on the programmer’s part when conceptualising software projects: recycling the same technologies but using them for a different purpose.”

Bryan Becker, product manager at WhiteHat Security, said there’s no sign of Java ever going away.

“You can complain as much as you want about Javascript but a lot more people know programming now, which is a good thing,” he said.

Venkat Venkataramani, co-founder and CEO of Rockset, said that SQL is still the language of choice for developers building data-driven applications.

“It is annoying to write custom code in order to glue together a data pipeline and it is also notoriously difficult to learn a bunch of domain-specific query languages for different NoSQL databases,” he said. “Turns out the killer feature that is missing from NoSQL systems is SQL, and this explains the renewed interest in SQL.”

Testing technical skills

The Stack Overflow surveys reflect the languages people are learning and using on the job. The next set of data reveals the data job candidates use during a technical interview.

Karat manages the interview process for companies hiring software engineers. Karat trains experienced engineers to conduct technical interviews and to use an interview platform to record the interview, capture a candidate’s code, and create structured feedback. 

SEE: More Decade in Review coverage (TechRepublic on Flipboard)

Karat shared these stats from the last three years that reflect language use in technical interviews conducted in a given month.

The company’s VP of Engineering Zach van Schouwen said that Java and Python are the most popular languages for candidates in technical interviews, in part because these languages are most frequently taught in university computer science classes. JavaScript, C#, and C++ tend to be used by more experienced or specialized programmers, so they don’t see the same bumps in the fall interview cycle.

These stats reflect the languages a job candidate used during a technical job interview to complete an assigned task.

screen-shot-2019-12-03-at-8-54-09-pm.png

These stats reflect the languages a job candidate used during a technical job interview to complete an assigned task.

Image: TechRepublic

Van Schouwen said that the reason for the rise of Python is that it tends to be a preferred language for AI/ML-focused and cloud-native programmers compared to Java. Another reason for Python’s rise in popularity is that it’s a really succinct language. 

“Verbosity is a factor that can trip up engineering candidates using a language like Java—it just takes longer to get through code in a timed environment,” he said.

Josh Vickery, SquareFoot’s vice president of engineering, said that when he graduated in 2002, the dot-com bubble had just burst and he spent nights reverse-engineering the framework he was supposed to be using.

“The market has changed a lot since then; now people are learning frameworks on the job,” he said.

Vickery said when SquareFoot, a real estate technology company, recently started building with Python, he budgeted self-directed learning to bring staff members up to speed.

“A reasonably experienced software engineer can learn on the job without coming to a complete standstill,” he said. “Also, this is the first time I chose a language based on hiring potential.”

SEE: Decade in tech: What stood out or fell flat in the 2010s (ZDNet)

Improving security

Alexandre Rebert, co-founder and developer at ForAllSecure, a cybersecurity company, said that an important development in the last decade has been an even stronger focus on security and a push to replace memory unsafe languages like C and C++. 

“This explains, in part, the rise of memory safe languages, like Python, Java, C# or the rise of Go in infrastructure tooling,” he said. “More importantly, Rust has introduced a fundamental new approach to memory safety, offering an alternative to garbage collection for memory management. While still young, the safety concepts introduced in Rust are likely to be a strong influence in the coming decade.”

Becker said the shift left trend is encouraging more developers to use languages that are secure by design. 

“It is really, really hard to program something in Rust that is not secure,” he said.

SEE: Decade in Review 2010 – 2019 (CNET)

Other influential languages

Although Ruby and Ruby on Rails do not show up at the top of any of these lists, the language had an impact on the industry. Stephen Fiser of Central Standard Technologies said that what made Ruby on Rails so successful was the concept of “convention over configuration.” 

“Rails pushed the idea that if you stick to simple naming conventions, there is very limited need to configure the set up,” he said. “You can just type a few simple commands and have an entire basic app up and running. This led to massive improvements in efficiency which is essential to launching new products.

Becker also named Ruby and Ruby on Rails as an influential language.

“It was the first framework that was easy to use and that changed web development forever,” he said.

Quinn Slack, co-founder and CEO of the code intelligence company Sourcegraph, said that the most influential programming language of the last 10 years is the multi-language application.  

“Previously, developers would spend years writing code in a single language,” he said. “Now, their applications are a mix of the best frontend language (like TypeScript), the best backend language (Go), the best high-performance language (Rust), the best language for machine learning components (Python) and the languages for mobile applications (Swift, Kotlin, Objective-C, Java, etc.).”

What about the future?

Transformify CEO Stoyanov said recently employers have been looking for blockchain developers and machine learning experts. Employers want people with experience to fill these roles, which is a challenge because the technology is relatively new. Stoyanov predicts this shortage will last at least three more years.
 
“It is much harder to learn machine learning vs. traditional programming languages – it’s not for everyone,” she said. “PHP and Java could be mastered by people with mid-level math skills but machine learning requires advanced math and logic skills.”

Becker of WhiteHat Security is a fan of Rust and believes that Go and Python will continue to be popular.

“Security tools are built in Python and Go—those are great languages to be skilled at,” he said. “Also, Web Assembly is growing in popularity, everyone is excited to see where it is going.”

Rouse at ActiveState, an open source languages company, said Go is a great choice for developers who are interested in making a long-term investment in a language for their long-lived applications.  

“It scales exceedingly well for web services and Go is ideally suited for building a microservices architecture,” he said.

Vlad Ionescu, chief architect at the software company ShiftLeft, sees a need to go back to strongly typed languages to improve security and make maintenance easier. Although it’s easy to build a prototype faster with JavaScript, Python, and Ruby, it’s harder to maintain the code base long-term, he said.

Ionescu names Go and TypeScript as good examples of taking the learnings from both older languages and newer languages and not repeating the same mistakes.  

Calvin French-Owen, co-founder and CTO of Segment, a data integration company, said Golang and Typescript are both rising in popularity.

“Golang is one of those influential languages that has quickly become the ‘swiss army knife’ of building servers and distributed systems and I believe it’s poised to replace most other languages when it comes to concurrent programming,” he said. “TypeScript will help developers tackle programming challenges at scale.”

Vickery of SquareFoot said if you like what you’re doing right now, there’s no reason to pick a new language.
“If someone’s paying you to do it now, there’s probably 10 more people who want to pay you to do it, too,” he said.

Also see



Source link