Tech bad-boy Uber crafts tool to make staff follow the rules in future (er, coding rules, that is)
Kneel before NEAL, devs
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. ®