Jan 17, 2020 newsletter

VVVVVV and duct tape development


Terry Cavanagh, an indie game developer, released the source code to his wildly popular platformer VVVVVV to celebrate the game’s 10th anniversary.

What’s VVVVVV? Released in 2010, VVVVVV follows the story of Captain Viridian, an explorer who must navigate an extraterrestrial Super Mario-like world without jumping. Players can only change the direction of gravity as they navigate labyrinthine levels.

VVVVVV received widespread praise for its innovative game mechanics and quickly became one of the most viral indie games of the past decade. After an initial launch on Windows and OS X, it was quickly ported to Linux, iOS, Android, Nintendo Switch, Playstation 4, and even the Commodore 64.

Now VVVVVV joins an exclusive group of popular games—including SimCity, Doom, Duke Nukem, and Civilization—that have released their underlying source code.

What’s in the code? According to Cavanagh, "it’s kind of a mess."

One file stretches 7,703 lines long and includes a switch statement with more than 300 cases. That’s on top of the more than 500 if statements in the same file.

Why does it matter? It’s rare to be able to peer into another developer’s successful project, since many open source GitHub projects—which can be backed by large engineering teams—are highly polished.

VVVVVV shows us that software development is often a complex process, requiring tradeoffs between speed, features, and clean code.

With tight deadlines, developers often don’t have time to pause and refactor code, instead opting to add features—which leads to absurd situations like monstrous switch statements—in order to ship products on time. Software lifespans also force developers to optimize for the short term, rather than the long term.

All of those tradeoffs are held together with duct tape—temporary code that sustains a fragile project for so long that it eventually becomes permanent.

As for Terry, he noted: "Every screenshot I see posted of terrible things in the VVVVVV source code only makes me more powerful."

What Plaid's acquisition means for developers

Visa acquires Plaid

Visa acquired Plaid, a San Francisco based technology company building financial services APIs, for roughly $5.3B.

With its acquisition, Visa adds serious political clout to Plaid’s technology prowess—potentially turning the financial sector into a developer-first ecosystem that gives developers better tools to build more powerful consumer applications.

What is Plaid? Developers can use Plaid’s APIs to let users connect their bank accounts to their applications. Plaid acts as a data mediator—handling authentication and standardizing data requests—between these financial apps and traditional banks.

One example: Venmo, Paypal’s popular mobile payment app, uses Plaid to transfer funds between users. Venmo is also one of Plaid’s largest customers.

To build its APIs, Plaid has hacked together an unofficial solution. Most banks do not have APIs, so Plaid attempts to log into bank websites on the user’s behalf—allegedly failing 5-10% of the time.

This is huge for developers. Visa’s acquisition could mark a more official beginning to an API revolution in financial services.

As the world’s second largest payment organization in the world and the largest US card network, Visa holds considerable sway over giant financial institutions. Visa can convince banks around the world to integrate with Plaid's platform. That firmly plants Plaid at the center of a newly standardized financial API economy.

With Visa's backing, developers will feel more comfortable building apps that access private information and banks will feel more comfortable handing over more data and functionality. That creates massive opportunities for developers to jumpstart their own ecosystem of financial apps.

It's an unstoppable trend. Heavily regulated sectors or industries dominated by giant legacy companies—like finance and healthcare—have largely been immune to the rise of API platforms.

Yet Plaid’s success puts it on the same trajectory as other API giants, like Twilio and Stripe. Just as those companies revolutionized how developers implement messaging and payments, Plaid can do the same for finance—especially with a juggernaut like Visa in its corner.

Google Cloud, but no code?

Low code on Google Cloud

To bolster its cloud services, Google acquired AppSheet, a no-code enterprise app development platform.

With AppSheet, employees can pull data from spreadsheets, databases, and forms to create internal business applications—like inventory management, inspection record keeping, and employee training. Users can also integrate with richer data sets from AWS DynamoDB, Salesforce, Office 365, and Box.

From Google: "This acquisition helps enterprises empower millions of citizen developers to more easily create and extend applications without the need for professional coding skills."

AppSheet is popular. More than 200,000 apps have been deployed through AppSheet from 18,000 monthly active app creators.

AppSheet users are typically non-professional developers or business analysts at companies without robust development teams.

No code false promises. Over the last few years, the development community has seen the struggles of no code and low code platforms in gaining serious traction. That includes a huge range of tools of varying functionality—from robust platforms like Bubble to spreadsheet databases like Airtable.

Still, Forrester estimates the market for such platforms will grow from $3.8B in 2017 to $21.2B by 2022.

Developers are safe. Most no code platforms can create only basic or standard automations. They also require businesses to trust employees with accessing and manipulating company data, circumventing many of the controls that traditional engineering organizations already have in place.

Google’s acquisition of AppSheet is likely a long-term strategy to bring more developers into its ecosystem.

Non-technical employees import data into Google Cloud to build apps with no code and low code tools. When these apps need extra functionality, they will likely turn to their development team, who will most likely opt to remain in the Google Cloud ecosystem.

Language winners, underdogs, and underperformers

C wins first place

The TIOBE Index, a measure of programming language popularity, released its annual ranking of software development's top languages.

Surprise winner. C won the programming language of the year award after its popularity rating jumped 2.4% over the past year—the most of any language.

With its dominance in machine learning and its widespread use among students, data scientists, and engineering teams, many expected Python to be crowned language of the year. Yet it finished in just third place, increasing its popularity rating by only 1.4% in 2019.

Experts suspect that the accelerating use of IoT and embedded technology is strengthening C’s position as a language stalwart.

Surprise underdogs. Swift’s popularity ranking jumped from #15 to #9, growing by 0.6% over the last year. That makes it the fourth fastest growing language on the TIOBE Index.

Ruby, too, moved up the rankings, from #18 to #11. While Ruby-on-rails has fallen in popularity as Node.js has skyrocketed, Ruby remains a critical tool for many big tech companies, including Airbnb, Shopify, and Groupon.

Surprise not-underdogs. Many so-called breakout languages failed to climb the rankings.

Rust gained only three positions, moving from #33 to #30. TypeScript gained just one position, moving from #49 to #48.

Other up and coming languages fared even worse. Kotlin lost 3 positions, dropping to #35. Julia—the language of the future—lost 10 positions, sliding to #47.

The takeaway. The resilience of long-established languages—like C and Ruby—and the uphill battle faced by underdogs—like Rust and Julia—indicate that the programming language ecosystem often progresses unevenly and unexpectedly.

Small bytes

  • DeepCode, a platform for AI-powered code reviews, revealed the biggest bugs and security vulnerabilities faced by developers, according to its analysis of millions of commits across open source projects. At the top: file I/O corruptions, missing input data sanitization, and insecure password handling [DEEPCODE]
  • Cortex launched a new tool to deploy machine learning models in production. With Cortex’s open source tools, developers can easily deploy and scale models to AWS from the command line [CORTEX]
  • DICE analyzed data from millions of job postings and revealed that the most desirable programming skills are SQL, Java, and Python. DICE’s rankings show the growing importance of technologies related to cloud-driven and data-driven development [DICE]
  • Salesforce is ramping up its platform for commerce developers. Salesforce’s latest push includes new headless commerce experiences with enhanced APIs that make it easy for developers to build powerful commerce apps [SALESFORCE]
  • The fourth edition of JavaScript Rising Stars, a report highlighting popular JavaScript projects, showed the growing interest in Svelte, a framework for building web apps. React Native, a framework for building native apps with React, and Nest, a Node.js framework, also gained more than 11k stars each on GitHub [RISING STARS]


  • Broot is a new and powerful way to see and navigate directory trees in the terminal [GITHUB]
  • Craft.js is a React framework for building extensible drag and drop page editors [CRAFT.JS]
  • JetBrains released Mono, a new free and open source font optimized for coding [JETBRAINS]
  • Glitch extension adds a button to your browser that makes it easy to remix glitch apps, import code from git, or start a new project [GLITCH]
  • Beef is an open source performance-oriented compiled programming language which has been built hand-in-hand with its IDE environment [BEEF]
Never miss the big news

Every week, our team will send you three of the most important stories for developers, including our analysis of why they matter. Software development changes fast, but src is your secret weapon to stay up to date in the developer world.

Featured articles
Made with by Software. Read more about our mission.