Tech bad-boy Uber crafts tool to make staff follow the rules in future (er, coding rules, that is)

Kneel before NEAL, devs

By Thomas Claburn in San Francisco

Posted in Software, 1st February 2018 19:50 GMT

Despite its astonishing reputation for obliterating HR policy, resisting transit regulations and bending other laws, taxi scourge Uber is rather keen to keep its code clean and ensure it follows the rules.

Developers working for the ride app biz have created a software analysis tool called NEAL to enforce code quality, and have released it as an open source project.

NEAL stands for "Not Exactly A Linter," which may require some additional explanation.

A linter is software used to check source code for style errors, obvious programming bugs, and other cockups. The term dates back to a program called Lint, written in 1978 by Stephen C. Johnson of Bell Laboratories, to vet C code.

Compilers check for problems too, of course, but in addition to flagging errors, linters look for inefficiencies and stylistic anomalies that are nonetheless legal within the code's programming language.

Linters may support custom rules, which allow them to look for user-defined constructs; most are designed to work with a specific programming language but a few (e.g. coala) support multiple languages.

COP BLOCKED: Uber app thwarted arrests of its drivers by fooling police with 'ghost cars'

READ MORE

That's NEAL in a nutshell. In a blog post today, Uber software engineer Tadeu Zagallo describes the project as "an open source language-agnostic tool that allows engineers to write custom syntax-based rules."

Uber uses NEAL to ensure its Swift code meets corporate specs.

As Zagallo explained, reviewing changes to Uber's mobile app code can be slow because the company has a dozen engineering teams in different locations around the world.

With NEAL, Uber developers can make the code review process more automated and more consistent.

The result is more reliable code tests, the ability to limit binary size by preventing language constructs that generate lots of machine code, and the ability to enforce code restrictions and flow.

In addition to the Swift programming language, NEAL supports Python out of the box. It can also be extended to support other languages, but that's on you. ®

Sign up to our NewsletterGet IT in your inbox daily

15 Comments

More from The Register

Uber sued by Uber for tarnishing the good name of Uber

Can't we all just be Uber-alles?

Uber hid database hack from FTC while FTC probed Uber for an earlier database hack

Cab-hailing upstart shows it takes your privacy seriously

Uber JUMPs, slurps San Francisco bike biz

Nobody believes we're not a taxi company, let's go multi-modal and see if that works

Uber v Waymo latest: Google spinoff refused access to Uber internal doc hunt details

Wall of silence remains, albeit with a couple of holes

Will Dell eat VMware? Or will Carl Icahn snack on Dell? And where does Uber fit in? Yes, Uber!

Let’s get up to date on the crazy world of reverse mergers

Uber and NASA pen flying taxi probe pact

What happens when cabs go aerial next to an airport? They'll figure it out together

Pennsylvania AG sues Uber over 2016 data fail

Not much brotherly love in this Philly court case

Uber drivers game Uber's system like Uber games the entire planet

App cabbies push back against controlling black-box computers

Birmingham UK to Uber: Want a new licence? Tell us about your operating model

App biz's Nice Guy makeover yet to convince all regulators

Uber says it's changed and is now ever-so ShinyHappy™

CEO Dara Khosrowshahi launches light-on-detail charm offensive