Top programming languages: Most popular and fastest growing choices for developers

Top programming languages: Most popular and fastest growing choices for developers
team-of-software-developers-working-together.jpg

JavaScript rules the roost, but Python is making huge gains.


Image: Maskot / Getty Images

JavaScript is now used by more than 16.4 million developers globally, says a survey of more than 19,000 coders – making it the world’s most popular programming language “by a wide margin”.

SlashData’s 21st State of the Developer Nation Report examined global software developer trends across 160 countries during Q3 2021, covering programming languages, tools, APIs, apps and technology segments, as well as attitudes of developers themselves.

The report also looked at developer involvement in 5G and IoT, specifically how programmers were taking advantage of new advances in technology in tools, apps and services.

SEE: Programming languages: Python’s new developer in residence and their ‘make-it-or-break-it’ role

JavaScript’s ongoing popularity in web and backend applications supported its position as the most popular programming language in Q3 2021. While not necessarily a surprise in itself – JavaScript has, after all, been the world’s most-used language for a number of years now – SlashData found that upwards of 2.5 million developers had joined the JavaScript community in the past six months alone. That’s the same as the entire user base of Swift; or, the combined communities of Rust and Ruby.

The data for JavaScript also included language derivatives TypeScript and CoffeeScript.

Python might not be a close second, but its popularity is impressive nonetheless: according to SlashData, the language is now used by some 11.3 million coders, primarily within data science and machine learning, and IoT applications.

The brainchild of Guido van Rossum, Python’s popularity has exploded in recent years, overtaking that of Java, which is currently used by 9.6m developers. Java remains a go-to for mobile and desktop apps, SlashData’s survey found.

According to SlashData, Python added 2.3m developers to its community in the past 12 months. “That’s a 25% growth rate, one of the highest across all the large programming language communities of more than 7M users,” the report noted.

“The rise of data science and machine learning (ML) is a clear factor in Python’s popularity. More than 70% of ML developers and data scientists report using Python. For perspective, only 17% use R, the other language often associated with data science.”

slashdata-programming-language-community-size-q32021.jpg

JavaScript, Python, Java, C/C++, PHP and C# top the programming language popularity charts.


Image: SlashData

Of course, determining the developer base of any particular programming language is not an exact science. “It can be hard to assess how widely used a programming language is,” noted SlashData. Its figures are based on two pieces of data: the organization’s own estimate of the number of software developers worldwide (which it puts at 26.8 million), as well as its bi-yearly surveys, which SlashData said reach “tens of thousands of developers every six months”. So, there is some margin for error.

Rounding out the top five most popular languages were C/C++ (7.5m developers), PHP (7.3m) and C# (7.1m). Of these, PHP has grown the fastest over the past six months, SlashData reported, acquiring one million new developers between

Read More

Wheeler Mission to expand programming, as neighbor voices concerns

Wheeler Mission to expand programming, as neighbor voices concerns
Wheeler Mission to expand programming, as neighbor voices concerns

Correction: This story has been updated to correct the origin of the funds Wheeler Mission used for the purchase.

Wheeler Mission in Bloomington is spending hundreds of thousands of dollars on an expansion, and organizers hope the additional space will produce better outcomes for its homeless clients, many of whom are struggling with addiction and mental illness.

The nonprofit organization in the past 16 months has purchased two additional buildings on Westplex Avenue, in part to spread out its living quarters. The organization also plans to expand its programming areas to help people stay or get back on their feet. Officials expect renovations to be completed at the end of next year.

“It’s going to be fantastic,” said Dana Jones, director of Wheeler Mission Ministries in Bloomington. “We’ve wanted this for a long time.”

No majority:Proposal aimed at creating public space for Bloomington homeless fails

The nonprofit struggled to provide adequate space even before last year, Jones said, but the pandemic, which required greater physical distances between clients, made the situation worse.

The organization, at 215 Westplex Ave., in June 2020 bought the building at 135 S. Westplex Ave., which formerly housed a bearing manufacturing business. Wheeler Mission uses that building for its commercial laundry, bathroom facilities and a day room, where people can get water, watch TV, get help from a case manager and access the internet for job searches or online therapy. The building also serves as a warming shelter in the winter and a cooling shelter in the summer.

The three Wheeler Mission properties in Bloomington, including the longtime facility at right and the two newer acquisitions at left.

In June, Wheeler Mission also bought the building at 201 S. Westplex Ave., which formerly housed a Jazzercise center. That building is in between the other two buildings the nonprofit already owned.

Wheeler Mission serves men on its Westplex campus but also has a nearby women’s shelter that is funded through August 2022 thanks to the city, county and United Way. Wheeler, which has been operating shelters and programs for the needy in Indianapolis for more than 100 years, added Bloomington to its operations in 2015, when it merged with Backstreet Mission and Agape House.

Jones said the newest Bloomington structure will house 84 beds, showers and restrooms as well as another day room and an outside courtyard with lockers. The beds will be moved into the new building from the Wheeler Mission’s Center for Men, which is now in the southernmost of the three buildings.

“We’re not adding beds,” Jones said. “We’re adding space.”

He said Wheeler Mission obtained a $550,000 Federal Home Loan grant, and used $350,000 of it to buy the property. That leaves $200,000 for renovations, though Jones said the nonprofit soon will begin fundraising for another $200,000 that likely will be needed to complete the project. While the 11 Federal Home Loan banks are overseen by the Federal Housing Finance Agency, an independent regulatory agency established by the U.S. Congress, they are supported by private funds, meaning no tax dollars are involved.

He said Wheeler Mission hopes the additional space will provide

Read More

Programming languages: This sneaky trick could allow attackers to hide ‘invisible’ vulnerabilities in code

Programming languages: This sneaky trick could allow attackers to hide ‘invisible’ vulnerabilities in code

If you’re using the Rust programming language — or JavaScript, Java, Go or Python — in a project, you may want to check for potential differences between reviewed code versus the compiled code that’s been output. 

The Rust Security Response working group (WG) has flagged a strange security vulnerability that is being tracked as CVE-2021-42574 and is urging developers to upgrade to Rust version 1.56.1. 

News of the obscure bug was disseminated in a mailing list today. The Rust project has also flagged the Unicode “bidirectional override” issue in a blogpost. But it’s a general bug that doesn’t affect just Rust but all code that’s written in popular languages that use Unicode.

SEE: Cloud security in 2021: A business guide to essential tools and best practices

Since it is Unicode, this bug affects not just Rust but other top languages, such as Java, JavaScript, Python, C-based languages and code written in other modern languages, according to security researcher Ross Anderson.

Open-source projects such as operating systems often rely on human review of all new code to detect any potentially malicious contributions by volunteers. But the security researchers at Cambridge University said they have discovered ways of manipulating the encoding of source code files so that human viewers and compilers see different logic. 

“We have discovered ways of manipulating the encoding of source code files so that human viewers and compilers see different logic. One particularly pernicious method uses Unicode directionality to override characters to display code as an anagram of its true logic. We’ve verified that this attack works against C, C++, C#, JavaScript, Java, Rust, Go, and Python, and suspect that it will work against most other modern languages,” writes Anderson, detailing this bug and a similar “homoglyph” issue tracked as CVE-2021-42694.

“The trick is to use Unicode control characters to reorder tokens in source code at the encoding level. These visually reordered tokens can be used to display logic that, while semantically correct, diverges from the logic presented by the logical ordering of source code tokens. Compilers and interpreters adhere to the logical ordering of source code, not the visual order,” the researchers said. The attack is to use control characters embedded in comments and strings to reorder source code characters in a way that changes its logic.

Software development is international and Unicode — a foundation for text and emoji — supports left-to-right languages, such as English, and right-to-left languages, such as Persian. It does this through “bidirectional override”, an invisible feature called a codepoint that enables embedding left-to-right words inside a right-to-left sentence and vice versa. 

While they’re normally used to embed a word inside a sentence constructed in the reverse direction, Anderson and Microsoft security researcher Nicholas Boucher discovered that they could be used to change how source code is displayed in certain editors and code-review tools. 

It means that reviewed code can be different than the compiled code and shows how organizations could be hacked through tampered open-source code. 

Read More

Programming in ‘natural’ language is coming sooner than you think

Programming in ‘natural’ language is coming sooner than you think

Sometimes major shifts happen virtually unnoticed. On May 5, IBMannounced Project CodeNet to very little media or academic attention.

CodeNet is a follow-up to ImageNet, a large-scale dataset of images and their descriptions; the images are free for non-commercial uses. ImageNet is now central to the progress of deep learning computer vision.

CodeNet is an attempt to do for Artificial Intelligence (AI) coding what ImageNet did for computer vision: it is a dataset of over 14 million code samples, covering 50 programming languages, intended to solve 4,000 coding problems. The dataset also contains numerous additional data, such as the amount of memory required for software to run and log outputs of running code.

Accelerating machine learning

IBM’s own stated rationale for CodeNet is that it is designed to swiftly update legacy systems programmed in outdated code, a development long-awaited since the Y2K panic over 20 years ago, when many believed that undocumented legacy systems could fail with disastrous consequences.

However, as security researchers, we believe the most important implication of CodeNet — and similar projects — is the potential for lowering barriers, and the possibility of Natural Language Coding (NLC).

An IBM-produced video looks at the quest to produce an AI that can understand human language.

In recent years, companies such as OpenAI and Googlehave been rapidly improving Natural Language Processing (NLP) technologies. These are machine learning-driven programs designed to better understand and mimic natural human language and translate between different languages. Training machine learning systems require access to a large dataset with texts written in the desired human languages. NLC applies all this to coding too.

Coding is a difficult skill to learn let alone master and an experienced coder would be expected to be proficient in multiple programming languages. NLC, in contrast, leverages NLP technologies and a vast database such as CodeNet to enable anyone to use English, or ultimately French or Chinese or any other natural language, to code. It could make tasks like designing a website as simple as typing “make a red background with an image of an airplane on it, my company logo in the middle and a contact me button underneath,” and that exact website would spring into existence, the result of automatic translation of natural language to code.

It is clear that IBM was not alone in its thinking. GPT-3, OpenAI’s industry-leading NLP model, has been used to allow coding a website or app by writing a description of what you want. Soon after IBM’s news, Microsoft announced it had secured exclusive rights to GPT-3.

Microsoft also owns GitHub, — the largest collection of open source code on the internet — acquired in 2018. The company has added to GitHub’s potential with GitHub Copilot, an AI assistant. When the programmer inputs the action they want to code, Copilot generates a coding sample that could achieve what they specified. The programmer can then accept the AI-generated sample, edit it or reject it, drastically simplifying the coding

Read More

Powered by cloud, self-learning AI models are turning programming on i

Powered by cloud, self-learning AI models are turning programming on i

Ask the artificial intelligence system created by German startup Aleph Alpha about its “Lieblingssportteam” (favorite sports team) in German, and it riffs about Bayern Munich and former midfielder Toni Kroos. Quiz the neural network on its “equipo deportivo favorito,” and it replies in Spanish about Atlético Madrid and its long-ago European Cup win. In English, it’s the San Francisco 49ers.

Answering a question never seen, matching language to culture, and peppering answers with backup facts has until recently been beyond the ken of neural networks, the statistical prediction engines that are a pillar of artificial intelligence (AI). Aleph Alpha’s approach, and others like it, represent a shift in AI from “supervised” systems taught to complete tasks, such as identifying cars and pedestrians or finding disloyal customers through labelled examples. This new breed of “self-supervised learning” networks can find hidden patterns in data without being told in advance what they’re seeking—and apply knowledge from one field to another.

The results can be uncanny. Open AI’s GPT-3 can write lengthy, convincing prose; Israel’s AI21 Labs’ Jurassic-1 Jumbo suggests ideas for blog posts on tourism or electric cars. Facebook uses a language-understanding system to find and filter hate speech. Aleph Alpha is fine-tuning its general AI model with specialized data in fields such as finance, automotive, agriculture, and pharmaceuticals.

“What can you do with these models beyond writing cool text that seems like a human has written it?” says Aleph Alpha CEO and founder Jonas Andrulis. The serial entrepreneur sold a prior company to Apple, stayed three years in R&D management, then built his current venture in Heidelberg. “These models will free us from the burden of banal office work, or government busywork like writing reports that no one reads. It’s like a capable assistant—or an unlimited number of smart interns.”

Self-supervised systems turn traditional software development on its head: Instead of tackling a specific problem in a narrow field, the new AI architects first build their self-learning models, let them ingest content from the internet and private datasets, and then discover what problems to solve. Practical applications are starting to emerge.

For white-collar office workers, for example, Aleph Alpha is teaming up with workflow automation software maker Bardeen to explore how users could enter free-text commands in different languages to generate useful code without knowing how to program.

As a measure of the field’s progress, just two years ago the state-of-the-art neural network—a language-understanding system called BERT—held 345 million parameters. Aleph Alpha, which closed a €23 million ($27 million) funding round in July, is training a 13 billion parameter AI model on Oracle Cloud Infrastructure (OCI), using hundreds of Nvidia’s most powerful graphic processing units connected by high-speed networking. A second Aleph Alpha model holds 200 billion parameters.

Cloud computing, such as OCI, is removing a big development constraint. “Artificial general intelligence is limited by computing power, and it’s limited by training the systems,” says Hendrik Brandis, cofounder and partner at EarlyBird Venture Capital in Munich, which led Aleph

Read More

Need A New Programming Language? Try Zig

Need A New Programming Language? Try Zig

Maybe you’ve heard of it, maybe you haven’t. Zig is a new programming language that seems to be growing in popularity. Let’s do a quick dive into what it is, why it’s unique, and what sort of things you would use it for. (Ed Note: Other than “for great justice“, naturally.)

What Is It?

You’ve likely heard of Rust as it has made significant inroads in critical low-level infrastructures such as operating systems and embedded microcontrollers. As a gross oversimplification, it offers memory safety and many traditional runtime checks pushed to compile time. It has been the darling of many posts here at Hackaday as it offers some unique advantages. With Rust on the rise, it makes sense that there might be some space for some new players. Languages like Julia, Go, Swift, and even Racket are all relative newcomers vying for the highly coveted mindshare of software engineers everywhere.

So let’s talk Zig. In a broad sense, Zig is really trying to provide some of the safety of Rust with the simplicity and ease of C. It touts a few core features such as:

  • No hidden control flow
  • No hidden memory allocations
  • No preprocessor, no macros
  • First-class support for optional standard library
  • Interoperable by design
  • Adjustable Runtime Safety
  • Compile-time code-execution

The last one, in particular, is perhaps the most interesting, but we’ll come back to that. Let’s look at some code, but skipping past hello world and headed straight to opening a file. Here’s the C++ code:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;
int main (int argc, char const *argv[]) {
  ifstream file("nonexistingfile.txt");

  char buffer[1024];
  file.read(buffer, sizeof(buffer));

  cout << buffer << endl;

  file.close();
  return 0;
}

Now let’s look at some comparable Zig code:

const std = @import("std");

using namespace std.fs;

pub fn main() !void {
    const stdout = std.io.getStdOut().writer();

    const file = try cwd().openFile(
        "nonexistingfile.txt",
        .{ .read = true },
    );
    defer file.close();

    var buffer: [1024]u8 = undefined;
    const size = try file.readAll(buffer[0..]);

    try stdout.writeAll(buffer[0..size]);
}

(Thanks to Erik Engheim for the C++ and Zig sample code.)

As you might have guessed from the file name, the file doesn’t exist. The C++ code doesn’t explicitly check for any errors and in this scenario, it is perfectly valid code that displays no indication that anything failed. Zig, on the other hand, we have to do a try since that file could fail. When it does fail, you get a nice stack trace:

error: FileNotFound
/usr/local/Cellar/zig/0.7.0/lib/zig/std/os.zig:1196:23: 0x10b3ba52e in std.os.openatZ (fileopen)
            ENOENT => return error.FileNotFound,
                      ^
/usr/local/Cellar/zig/0.7.0/lib/zig/std/fs.zig:754:13: 0x10b3b857e in std.fs.Dir.openFileZ (fileopen)
            try os.openatZ(self.fd, sub_path, os_flags, 0);
            ^
/usr/local/Cellar/zig/0.7.0/lib/zig/std/fs.zig:687:9: 0x10b3b6c4b in std.fs.Dir.openFile (fileopen)
        return self.openFileZ(&path_c, flags);
        ^
~/Development/Zig/fileopen.zig:8:18: 0x10b3b6810 in main (fileopen)
    const file = try cwd().openFile(

Removing the try results in a compilation error. The backtrace here is especially impressive because this is a relatively simple language without a garbage collector, runtime, or virtual machine.

Let’s talk about some of Zig’s other

Read More