Python is eating the world: How one developer’s side project became the hottest programming language on the planet

By Nick Heath Image: Dan Stroud under the Creative Commons licence

Guido van Rossum at headquarters in 2014. Frustrated by programming language shortcomings, Guido van Rossum created Python. With the language now used by millions, Nick Heath talks to van Rossum about Python’s past and explores what’s next.

In late 1994, a select group of programmers from across the US met to discuss their new secret weapon.

Barry Warsaw was one of the 20 or so developers present at that first-ever workshop for the newly- created Python programming language and recalls the palpable excitement among those early users.

“I can remember one person in particular who said, ‘You cannot tell anybody that I’m here because our use of Python is a competitive advantage.’ It was their secret weapon, right?”

Even at that early meeting, at the then US National Standards Bureau in Maryland, Warsaw says it was evident that Python offered something new in how easy it was to write code and simply get things done.

“When I first was introduced to Python, I knew there was something special. It was some combination of readability, and there was a joy to writing Python code,” he remembers.

Today enthusiasm for Python has spread far beyond that initial circle of developers, and some are predicting it will soon become the most popular programming language in the world, as it continues to add new users faster than any other language. Millions of people use Python each day, with the exponential growth in users showing little sign of tailing off.

Python is used for tasks big and small by professional and amateur developers and is particularly popular among web devs, data scientists, and system administrators. It was Python that earlier this year helped stitch together the first images of a black hole some 500 million trillion km away, just as it’s Python that powers countless hacked-together scripts on desktop PCs worldwide.

Python plays a pivotal role in some of the world’s best-known organizations, helping Netflix stream videos to more than 100 million homes worldwide, powering the photo-sharing phenomenon Instagram, and aiding NASA in space exploration. PYTHON, THE EARLY YEARS

In some respects, the rise of Python is as surreal and surprising as the British comedy group it was named after, and, in its own niche, the coding language has become just as famous and influential.

The programming language was started as a side project by Dutch programmer Guido van Rossum. In the late 1980s, van Rossum was working on a distributed system at the Centrum Wiskunde & Informatica (CWI), the Dutch national research center for math and computer science. Frustrated by the inadequacies of existing programming languages, he decided to create a new one -- one that would be both easy-to- use and capable.

2 To an outsider, creating your own programming language might seem akin to saying ‘I’ll build my own airplane’, but van Rossum, then in his thirties, had something of a head start. He had spent three years working with a team at CWI that had created ABC, an interpreted programming language, so he already had insight into what it would take to build an interpreter that executes programmer instructions, and the syntactic building blocks needed for a new language.

It’s also important to realize just how difficult it was to get anything done with the limited programming languages available to van Rossum at the time. The Amoeba distributed computing system he was working on required him to work in or the shell, both of which had significant limitations. C not only required developers to wrestle with the complexities of manually managing memory and to navigate a minefield of potential errors, but it also lacked a library of reusable code for everyday developer tasks, Image: Barry Warsaw requiring developers to reinvent the wheel with each new project. Meanwhile, the Unix shell had different problems -- it offered a suite of utilities for common tasks, but ran so slowly it couldn’t handle complex logic. The restrictions these languages placed on developers were such that, for van Rossum, creating his own interpreted language -- one that would borrow the best features from the ABC language -- really did seem like the best option. Van Rossum is pictured during the first Python “I basically thought ‘Well, why don’t I create my Workshop in discussion with Warsaw and Roger own language’, stealing my ideas from ABC but reducing Masse, who worked with Warsaw at the time. the project size from something that took three years to complete to something I can do on my own, as a skunk works project in three months, and thus Python was born,” he says. Van Rossum started work in earnest in late 1989, borrowing the name from his favorite comedy troupe Monty Python’s Flying Circus -- the association with snakes and the entwined Pythons logo came later -- and working on the project whenever he could.

“I didn’t have a very rich social life at the time. So, instead of just watching TV, I would be coding, or sometimes doing both at the same time,” he admits.

While Python was nominally created to help him at work, van Rossum sees that the impetus may have been more the challenge of creating a language of his own.

“I don’t know how serious I was in believing this really would make me more productive. I think that, in part, I just really enjoyed the idea of starting a big project on my own, of laying out the code I wanted to lay out and designing it the way I wanted to. Programming is fun for me,” he says.

3 As unusual as it might sound for an individual to create created using identical syntax, and there was the their own programming language, van Rossum was familiar interactive prompt where you could type in good company. In the late 1980s, various major Python to immediately carry out calculations. languages sprang out of individual frustrations with the tools available to developers at the time. Larry However, while his two colleagues took to the Wall famously said he was driven to create Perl language and immediately started using it, van by how difficult it was to solve a problem while Rossum didn’t have huge expectations for its wider coding, as well as by an abundance of ‘laziness, adoption, having already experienced how difficult impatience and hubris’. Similarly John Ousterhout’s it was to get a programming language off the ground search for a better language to create interactive in the pre-internet age. tools for building integrated circuits led him to devise Tcl. Within just three months van Rossum While sharing software with the world today only had created a working prototype for Python as an takes a few clicks, in the 1980s it was an altogether interpreted language, one that he says was missing more laborious affair, with van Rossum recalling the modern features but would still be recognizable as difficulties of trying to distribute Python precursor the language used today. ABC.

“I remember around ‘85, going on a vacation trip to the US, my first ever visit to the US, with a magnetic tape in my luggage,” says van Rossum. “I don’t know how serious I was in believing this really would make me Armed with addresses and phone numbers of more productive. I think that, in part, I people who had signalled an interest in ABC via just really enjoyed the idea of starting the rudimentary email system available at the time a big project on my own, of laying -- which wasn’t suited to handling anything as large out the code I wanted to lay out and as source code -- he travelled door-to-door posting designing it the way I wanted to. the tapes. Despite this effort, ABC didn’t really take Programming is fun for me.” off. “So, no wonder we didn’t get very far with the - Guido van Rossum, creator of Python distribution of ABC, despite all its wonderful properties,” he says. But as the internet revolution gathered steam, it would be much easier to distribute Python without a suitcase full of tapes.

“The current day Python has a lot of important Van Rossum released Python to the world via the alt. abstractions that weren’t present at the time, but the sources newsgroup in 1991, under what was pretty language looked very similar,” he says. much an open-source licence, six years before the term was first coined. While Python interpreter still “At that point I had all the basic components of the had to be joined together into a compressed file from interpreter and the language working. Simple Python 21 separate parts and downloaded overnight on the programs from the first working Python interpreter Usenet network, it was still a vastly more efficient will probably still work today,” he says, adding that delivery mechanism than the hand deliveries of a functions were defined the same way, indentation few years earlier. worked the same, dictionaries and tuples were 4 “I was hoping that there would be some kind of success, but I had done at least one other thing that I had released and basically ended up being a flop,” he says.

With his past experience in mind, van Rossum says it was a long time before he read anything into Python’s growing user base. Gradually he realized momentum was building and after some time regularly interacting with the Python community did he realize he had created something that could be successful.

“I think that realization came very, very slowly. After we did the first open source release, I built up a rhythm of doing new releases and interacting with the fledgling Python community that came into existence. That felt like a big deal.”

WHY PYTHON WON

It was that sense that Python was a language whose time had come that also struck van Rossum, as the language began to gain traction in early to mid 1990s.

Van Rossum believes developers were drawn to Python by the same feeling that led him to create it in the first place. They wanted a high-level scripting language that struck a balance between being easy-to-use and capable that didn’t have the limitations of the Unix shell when handling complex logic. They wanted an end to C’s insistence on developers wrangling with memory management and having to reimplement code for the same basic tasks at the start of each project.

Warsaw says Python struck a balance between useability while also not sacrificing what it could do -- a balance not really on offer in any major programming language in the early 1990s. “I had been doing a lot of Perl and Tcl and C code, and it just felt like it wasn’t really fun. Python came on the scene, I was like, ‘Wow, Image: Barry Warsaw this is making programming fun again’,” he says.

What Python offered, and still offers, is clear and unambiguous syntax, where indentations group code into blocks, making the code easier for developers to understand.

Fintan Ryan, research director with the Application Platform Strategies team for analyst firm Gartner, says Barry Warsaw at the first Python that clarity played a big role in winning over developers, Workshop in 1994. both now and in the 1990s, even if attributing such importance to indentation has proved divisive. “It offered a very clean syntax. You could enforce this in other languages, but Python enforced it automatically. Some programmers love this, and some hate it,” he says.

5 The fact Python prioritizes clean and readable code is no accident, van Rossum is on record as saying programming languages are as much about communicating ideas between developers as they are about telling a computer what to do.

On top of this readability, Ryan says that from early on Python offered a level of built-in functionality that made it stand out from other languages. “You also had functionalities such as classes and exception handling from the outset. Python also provided support for functions such as lambda, map, and filter, which proved extremely useful in a lot of cases,” he says.

Python may never have existed at all had the popular programming languages in the late ‘80s been better, with one of van Rossum’s motivations for creating Python being the incompatibility of the Perl scripting language with the Amoeba distributed computing system he was working on at CWI. “The lucky thing for Python is that Perl was unportable to Amoeba,” he says. “If it had been possible to port Perl to Amoeba, I would have never have thought of starting my own language.”

Even though Python attracted a user base of hard-core fans after its release, in the 1990s Python was still very much a programming language underdog. Van Rossum says the language’s competitors were Tcl/Tk and Perl, both of which shared Python’s goal of being simple-to-use and relatively capable.

“In the ‘90s, the top three languages, definitely Perl was number one -- the 800-pound gorilla -- Tcl/Tk was number two, and Python was a very modest number three,” he says.

Today Python is the fastest-growing programming language in terms of active developers, according to the annual Stack Overflow Developer Survey, one of the most comprehensive snapshots of programming language use available, while Perl has shrunk to the point where it didn’t get a mention in the latest Stack Overflow report.

That explosive growth is captured by the graph to the left, showing how in recent years views of questions related to Python on Stack Overflow grew far faster than views of questions related to other languages.

The growth in views of Python questions on Stack Overflow relative to other programming languages reflects the huge growth in Python users.

6

Image: Stack Overflow So how did Python leapfrog its erstwhile rival, and was also a super interesting thing for me,” says van how to explain the two languages’ vastly different Rossun, who says Python began to be used for fortunes? Van Rossum believes it has something to backend scripting on web servers alongside Perl do with how easy it is to maintain a code base once and Shell scripts. “You could create dynamic web it grows beyond a certain size. “People’s experience pages and that became one of my favorite Python was that for a 10-line script, Perl is perfect,” he applications.” says. “But if you have 500 lines of mainline code and a few thousand lines of library, it requires an Gartner’s Ryan says what sealed Python’s popularity enormous amount of discipline to make that code among developers during the 1990s was how maintainable in Perl. While in Python, even if you it became a favorite choice for quickly creating don’t have all that much discipline, the code will still powerful scripts. “Being a scripting language with be fairly readable and fairly maintainable.” very strong functionality lowered the barriers to entry for many users,” he says. That combination of Python offering a programming language that is simple to get started with but that More than that, however, Ryan says the language is also robust enough to be used to write large was sufficiently versatile and so easy to pick up applications is what van Rossum attributes to its that it appealed to many different types of users initial success in the 1990s. with a range of technical expertise. “Sysadmins and others took the language for systems automation “There were some internet developers -- a lot of and programming, developers for features such as this was early internet work -- who wanted to write functional programming and having classes with larger and larger applications and who appreciated inheritance available -- Perl for example was far less that it was much less effort to write an application featured in this regard,” he says. “Once people were in Python than to write it in C, C++, or Java for that familiar with the language, and it has a pretty low matter.” curve for getting started, they became extremely productive very quickly.” As use of Python spread in the 1990s, van Rossum, still working at CWI, found his creation was By 1994, Python had caught the eye of Michael increasingly putting him in contact with people from McLay, who held a senior role at the US National across the world. Bureau of Standards (NBS), now the US National Institute for Standards and Technology (NIST). “I had made something, and it was connecting with Foreshadowing how Python would come to be people all over the world -- people in Australia, favored by researchers and scientists for its ease of people in the US, people in other European use, McLay was interested in how Python could be countries. I was having the time of my life,” he says. used by scientists at the NBS who van Rossum says “had a considerable amount of data to process but PYTHON AND THE WEB weren’t very good coders”. To help sell Python to others within the bureau, By the mid 1990s, Python was starting to be used McLay invited van Rossum, who was still working in new ways, from scripts for audio recording and at CWI in the Netherlands at the time, to spend two playback to its first foray into web development, months working at NIST as a guest researcher. That which would go on to become a mainstay for Python. placement would prove to be the catalyst for both Python’s future evolution and a major change in van “One of the big things was web development, which Rossum’s life. 7 It was during this placement that the very first Python workshop would be held at the NBS’s offices, where van Rossum, Barry Warsaw, and other early Python enthusiasts came together to discuss what they were doing with Python and hopes for the language’s future development. While at the NBS’s offices, van Rossum met , renowned for his role in helping develop one of the foundational technologies of the internet: The TCP/IP protocol.

That meeting resulted in a job offer to come work with Kahn at the Corporation for National Research Initiatives (CNRI), a nonprofit research group based in Virginia focused on the strategic development of network technologies.

Just as Python had answered the need for a new type of programming language, van Rossum says the job offer came at exactly the time when he was starting to question his future at CWI. “CWI being more an academic institution, they were putting gentle pressure on me to either get a PhD or face the prospect of having to find employment elsewhere,” he says.

“The prospect of having to switch to a PhD track at my age, I was 35 or so, didn’t really appeal to me. Earlier, also, as a result of Python, some other prospects had come my way where, after a bunch of phone calls and thinking, I had decided not to go for it. But here, I liked the people, I liked what they were offering me, the project, and I went for it.”

It was at CNRI that van Rossum put together many of the structures for managing the Python language, with the help of a team of fellow Python enthusiasts. After joining CNRI in April 1995, van Rossum led a small team of developers working on building Knowbot Programs, software known as mobile agents designed to be run across distributed computer systems like the internet. Image: Guido van Rossum

The team worked in Python, and van Rossum was joined by Jeremy Hylton, Roger Masse, Barry Warsaw, Ken Manheimer, and Fred Drake, all of whom would go on to play an important role in the Python community.

“We ended up with a group of between four and 10 people, most of whom worked at CNRI, who were the core of Python development,” Guido van Rossum in 2001, the year the Python Software says van Rossum. Foundation was established.

While van Rossum was at CNRI, this team helped him create the python. org website, the CVS server for managing changes to the core codebase, and the mailing lists for Python Special Interest Groups, which work to improve and maintain the Python language.

The community of Python users had grown significantly since its public release in 1991, and by the second half of the decade the language was attracting a sizeable global user base. During that period, the management of the language began to be formalized, with the establishment of the precursor to the Python Software Foundation (PSF), which would be set up in 2001. As the community grew, the biannual

8 Python workshops that started in 1994 morphed into Indeed, it’s the open nature of Python’s development, larger annual events, and eventually PSF’s annual via public debate between a community of core PyCon, which is still going strong today. developers, that van Rossum attributes to being a deciding factor in Python’s success. By the turn of the 21st century, the language was larger than any one person, with a sizeable community playing an active role in its development, THE EVOLUTION OF PYTHON a long way from the summer of 1994, when early Python users fretted about what would happen to In the intervening years, there have been major the language ‘if Guido was hit by a bus’. leaps forward in Python, the introduction of Python 3.0 in 2008 modernized the language, and more Van Rossum continued to play a core role, however, recently there have been significant changes to and the idea of him being at the heart of the how the language is managed. language never went away, as evidenced by him being nicknamed “Benevolent dictator for life” Those changes were triggered last year, when (BDFL) of the language, a tongue-in-cheek title that van Rossum stepped down from his leadership stuck for years. role as BDFL, following public disagreement over the introduction of Assignment Expressions to the “For the most part, for a very long time, I was able to language, mooted in the Python Enhancement absorb the pressure quite well, and I also generally Proposal PEP572. developed project management skills that allowed me to delegate lots of things and let people be in While their introduction was designed to make it control of their own destiny,” says van Rossum. possible to write more efficient code, van Rossum faced heavy criticism online from those opposed Gartner’s Ryan says it’s not particularly unusual to the change, with some arguing their use would for a language’s creator to act as that language’s make code less readable and harder to maintain. steward, citing Larry Wall with Perl and Ryan Dahl with the JavaScript runtime Node.js, but says van Van Rossum says he was used to debate over new Rossum is recognized for being even-handed in his features, but it was the intransigence of some of his management of Python. detractors and also the personal nature of certain attacks that made up his mind to step down. “He is widely acknowledged as being very balanced about the direction of the project and in his overall “I was very disappointed in how the people who stewardship,” he says. disagreed technically went to social media and started ranting that the decision process was broken, or that I was making a grave mistake. I felt attacked behind my back,” he says. “It wasn’t exactly a revolt, but I “In the past, it had always been clear that if there felt that I didn’t have the trust of were a decision to be made about a change in the enough of the core developer language or an improved feature, a whole bunch of community to keep going.” core developers would discuss the pros and cons of the thing. Either a clear consensus would appear

- Guido van Rossum, creator of Python 9 or, if it was not so clear, I would mull it over in my head and decide one way or another. With PEP572, even though it was clearly controversial, I chose ‘Yes, I want to do this’, and people didn’t agree to disagree.

“It wasn’t exactly a revolt, but I felt that I didn’t have the trust of enough of the core developer community to keep going.”

He thinks the change in how disputes about the language play out is partly a result of how many people use Python today.

“It’s probably also the fact that the Python community is so much larger. It’s harder to reach any form of consensus, of course, because there’s always fringe dissidents, no matter which way you decide.”

Earlier this year, Python core developers -- those who work on maintaining and updating Python’s reference CPython interpreter -- elected a steering council to oversee the future of the language. Van Rossum was elected, alongside Warsaw and fellow core developers Brett Cannon, Carol Willing, and Nick Coghlan.

Warsaw says the change is necessary to manage a language whose user base is growing at such “If Python is going to be healthy 25 a rapid rate. years from now, it’s not going to “I think Guido really felt like the world was on be Guido and I running things, you his shoulders and his shoulders alone,” he says. know?” “That might’ve been fine 25 years ago, when Python was a much smaller community and a smaller language, but it’s really too much to - Barry Warsaw, longtime Python developer put on one person, you know? I think just for and Python Steering Council member his own personal health and involvement in the community, it’s great to be able to spread that load among five people,” says Warsaw.

Fresh elections to the steering council will take place after each new Python feature release, which Warsaw says will pave the way for the next generation of leadership for the language to be put in place.

“If Python is going to be healthy 25 years from now, it’s not going to be Guido and I running things, you know?” he says.

The setting up of the steering council has also been welcomed by the wider Python core developer community, with core developer Mariatta Wijaya saying the move felt like a step in the right direction. “To me the steering council is better than having one person who decides on everything -- that’s too big of a responsibility and burden,” she says. “It’s a good sign, and it makes it such that the community will have more input.”

10 THE FUTURE OF PYTHON

While Python continues to attract new users at a prodigious rate, some within the community see challenges ahead, a need for Python to evolve if it’s to stay relevant.

At this year’s Python Language Summit, BeeWare co-founder Russell Keith-Magee warned Python faces an “existential risk” if support for mobile and new web platforms doesn’t improve. “Phones and tablets are achieving market penetration that desktops and laptops have never seen, and yet as a community we don’t have a story about how you can use Python on these devices,” he said, referencing his son’s use of an iPad at his school. “So what happens to Python when laptops are niche devices?” he asked.

Keith-Magee, whose BeeWare project aims to make it possible to write one Python application and have it run anywhere, rattled off a laundry list of problems Python currently has with supporting platforms other than standard x86 PCs.

He cited the need for better support for compiling code for newer, non-x86 hardware platforms; that Python’s test suite is prone to crash on mobile and web platforms; the install size for Python apps is bloated and can’t be trimmed down to a small subset of dependencies; the effort needed to get the asyncio library to work when writing GUI code on Android, Windows, and the web; and the number of modules in the standard library that are incompatible with Python interpreters other than CPython.

Warsaw says Keith-Magee makes many good points, and believes it’s important to consider how Python remains relevant to new platforms -- to phones, tablets, and newer web technologies such as WebAssembly.

“Python, right now, doesn’t have a great story there,” says Warsaw, talking about an ambition to be able to download an app for an iPhone or Android handset and “never even know it was written in Python”. With the number of processor cores inside modern chips continuing to climb (up to 48-cores in Intel’s latest server offerings), Warsaw is also keen to see Python get better at spreading tasks across multiple cores.

He is excited about the potential of work being carried out by Eric Snow on sub-interpreters and “There is a very solid core how it could extend Python’s ability to run code concurrently. “What I would really like to see is developer community that now has more work on being able to take advantage of a new system of governance, and multiple cores,” he says. so I think we’re better prepared for whatever demands are being made Snow is engaged in a long-term project aimed at making it easier for Python to efficiently split of Python as a language to evolve.” tasks between multiple processor cores, with Snow focusing on using a reworked version of - Guido van Rossum, creator of Python Python’s existing sub-interpreter feature and changing how each sub-interpreter interacts with the language’s global interpreter lock (GIL). 11 “It’s not quite ready for Python 3.8, maybe for 3.9,” says Warsaw. “I think we’ll see it within the next two years to two-and-a-half years. I’m pretty optimistic. I’m really glad that Eric is continuing to work on that, because I think it’s important work.”

Even failed projects to get multi-threaded Python apps running across multiple cores, such as “I would like to see better The Gilectomy, are yielding interesting lessons representation across all the about how Python can get better at spreading workloads across cores, he says. diverse metrics, not just in terms of gender balance, but The Python community is also taking steps to also race and everything else.” modernize the language’s standard library of built-in code, recently publishing a proposal to prune obsolete modules from the library; in - Mariatta Wijaya, Python core developer doing so, it is addressing some recent criticisms about the state of Python’s standard library. The library is generally considered to be one of Python’s strengths, as it can be used to carry out a broad range of common tasks, which is why Python is described as having ‘batteries included’. However, a talk at this year’s Python Language Summit asked whether Python would be better served by letting people choose code libraries from the PyPI repository, rather than having functionality bundled with the language as the standard library.

There are also questions over whether the makeup of bodies overseeing the development of the language -- Python core developers and the Python Steering Council -- could better reflect the diverse user base of Python users in 2019.

“I would like to see better representation across all the diverse metrics, not just in terms of gender balance, but also race and everything else,” says Wijaya.

“At PyCon I spoke to PyLadies members from India and Africa. They Image: A. Jesse Jiryu Davis commented that, ‘When we hear about Python or PyLadies, we think about people in North America or Canada, where in reality there are big user bases in other parts of the world. Why aren’t we seeing more of them?’ I think it makes so much sense. So I definitely would like to see that happening, and I think we all need to do our part.”

Ultimately, in spite of the tongue-in-cheek notion of a ‘benevolent Python core developer Mariatta Wijaya dictator’ running everything, the ideas that have shaped Python in welcomed the election of a Python recent years have sprung up from the community, says Warsaw, Steering Council to oversee the language’s development. from people pushing what’s possible using Python by opening

12 the door to new uses. “It’s really bubbling up much “There is a very solid core developer community more from the community than being a top down that now has a new system of governance, and so I kind of thing,” he says. think we’re better prepared for whatever demands are being made of Python as a language to evolve,” An example of how simple community projects he says, praising the deep understanding of specific can have an outsized impact on Python are Type aspects of Python that exists within the community. Hints, a Python 3.5 feature that was inspired by the mypy project launched by a PhD student back in If anyone has doubts about the Python community’s 2012. These hints allow for optional type checking, ability to continue to find surprising new uses for the allowing developers to spot a class of bugs that language, you need to look no further than Python’s could otherwise slip through into software. role in helping capture the first ever image of a black hole, says Warsaw. Having this extra layer of security is more than just a nice to have when you have multiple people “That just blew me away. There’s a couple of people working on large codebases. That extra level of in the Python community that I kind of look at as the insight into what the code should and shouldn’t be mad scientists of Python. They’re always looking at, doing can make all the difference. well, here’s what I can do today -- how far can I push that?” “For me, the fact that it allows Python to scale up to larger organizations -- like an Instagram, which basically runs on Python 3 -- is completely invaluable,” says Warsaw, who says asyncio is another example of community-derived idea that made a huge impact on what the language could do.

With the steering council in place and a larger base of users than ever before, van Rossum is optimistic that “the community-driven evolution of the language” will continue to be “incredibly successful”. Image: Event Horizon Telescope collaboration et al. Image: Event Horizon Telescope

Earlier this year, Python helped stitch together the first images of a black hole, some 500 million trillion km away.

ABOUT NICK HEATH

Nick Heath is chief reporter for TechRepublic. He writes about the technology that IT decision makers need to know about, and the latest happenings in the 13 European tech scene. CREDITS

Editor in Chief Bill Detwiler

Editor in Chief, EMEA TechRepublic is a multiplatform publication that empowers the Steve Ranger people of business and technology. It provides analysis, tips,

Editor in Chief, APAC best practices, and case studies to help leaders make better Chris Duckett decisions about tech.

Associate Managing Editor Copyright ©2019 by CBS Interactive Inc. All rights reserved. Teena Maddox TechRepublic and its logo are trademarks of CBS Interac- Associate Managing Editor tive Inc. Mary Weilage

Chief Reporter All other product names or services identified throughout Nick Heath this article are trademarks or registered trademarks of their Senior Editor respective companies. Alison DeNisco Rayome

Associate Staff Writer Published by TechRepublic, July 2019 Macy Bayern

Associate Writer Kristen Lotze

Staff Writer James Sanders

Reporter Karen Roby

Multimedia Producer Derek Poore

Editor Melanie Wolkoff Wachsman

Editorial Assistant Jewell Conner

Designer Delancey Sheldon

14