Wootware

The Ethical Maintainer: Community Service Award Recipient Glyph Lefkowitz

 tháng 8 10, 2017     community service awards, CSA     No comments   





Glyph Lefkowitz was barely 20 years old when he promised himself, "I am never going to use a proprietary programming language again!" He had been writing a Java application for his first professional programming job, which he had started directly after high school. The firm was a mom and pop shop that sold inventory software. Glyph was hired to rewrite their application for a contemporary platform: Java's Abstract Window Toolkit. With the hubris of the young, he promised, "Sure, I can rewrite your whole application in a new language." He could do it working only four days a week, too, and make time to work on his multiplayer online game.



"I had a pretty terrible experience with Java," he says. In those early days of the Java AWT, on classic Mac OS it leaked a tiny bit of memory every time it opened and closed a window, and in his application, nearly every task a user desired required opening and closing a window. On the constrained Macs of the time, the application would crash after about 100 tasks, often taking the whole OS down with it. The AWT was proprietary, so there was no way to fix the bug himself. "I was fired," says Glyph, "because I was having a nervous breakdown over this."




The Birth of Twisted


Meanwhile, Glyph was also building his multi-user text adventure in Java. He wanted to rapidly experiment with varied gameplay logic, and to avoid constantly restarting the server as he tried new code, he built a system in Java that could load new modules at runtime. When, burned by his Java defeat, he switched to Python, he found that practically all of the Java code required to load modules and execute them simply disappeared.



The switch from Java to Python had another effect, which profoundly determined the direction of Glyph's career. He discovered async.



Glyph's friend James Knight, who would become an original contributor to Twisted, helped with the Python port. The initial code for the Python server ran a thread per player, but Knight used a select call to determine, within each thread, whether it was time to read a message from the player or send one. When young Glyph saw that code he was astonished. "It's doing two things at once! But it's also kind of one thing." After all the bugs he'd battled in his multithreaded Java, he thought, "Couldn't we just do one thing all the time?" He and Knight rewrote the entire game server as a single-threaded event loop. He liked how it simplified the code. Only one thread accessed a shared data structure at a time. His original motivation to use an event loop was not efficiency: rather, it was how much easier it was to make his code correct.



Glyph says that his strength, in his 20s, was knowing what he didn't know. His father is a programmer, and he taught Glyph that most programming techniques are already well-known. Therefore when Glyph and James Knight got their event loop working, Glyph thought, "Someone must have done this before." He searched on Alta Vista and found the ACE project, which included a C++ event loop. Glyph refined his Python event loop based on the best practices he found in ACE, and this became the basis for Twisted, which is now one of the oldest and most influential of all Python libraries.



Based on this early experience discovering that event loops were a well-known technique, Twisted's motto is "no new ideas allowed." Twenty years later, however, Glyph has begun to innovate on the margins. For example, his Tubes library implements asynchronous I/O as "flows" of data with flow control and backpressure. But when it comes to event loops, he says, "There's so much prior art that coming up with new inventions is not worthwhile."




Twisted's Influence On Python


In the second quarter of 2017, the Python Software Foundation recognized Glyph Lefkowitz with a Community Service Award for his work on Twisted and his contributions to the Python community. Nick Coghlan nominated him, saying that Twisted "predates almost all other Python event handling systems by years, and still has by far the most comprehensive set of network protocol handlers." The decade-long journey from PEP 342's generators-as-coroutines, which enabled Twisted's inlineCallbacks feature and Tornado's Futures, to native coroutine support with "async" and "await", began with Twisted. Coghlan says that evolution could be reasonably described as taking the concepts first embodied in Twisted and drawing them ever closer to the center of the language.



In 2012, Guido van Rossum began writing asyncio, an async framework for the Python standard library. He collaborated closely with Glyph, as well as Tornado's maintainer Ben Darnell, to incorporate their best ideas in asyncio. He was interested in Twisted's notion of a Deferred, but he couldn't seem to understand it. Glyph says that trying to explain Deferred to Guido "was the worst time I've ever had on a mailing list." Guido wrote, "I really don't get Deferreds. Don't bother pointing me to docs or tutorials; I tried and failed." He said that Glyph's "snarky tone is seriously affecting my ability to process your response." Then he went silent for a week.



Glyph was devastated. He felt like he'd been flamed and ghosted by the founder of the language itself. Then Guido suddenly returned to the mailing list, with what Glyph calls "the most trenchant and keenly observed critique of the Deferred module. It was possibly the best code review I've ever received." It was suddenly clear that Twisted's Deferred would interoperate just fine with the new asyncio event loop. "We were all on board."




Responsibilities of Open Source Programmers


Glyph is distinct among Python programmers for his outspoken views on ethics. In his 2015 PyCon talk he proposed that programmers write a code of ethics, similar to other professions such as medicine and journalism. If we don't, he says, "someone else is going to do it for us, and they are not going to understand our field well enough to do it correctly." Since software is eating the world and it influences nearly all economic activity, we have a grave obligation to write code ethically.



Open source programmers often think we owe our users nothing, because we give away code for free. But this attitude ignores the benefits that we've gained. "Being an open source maintainer has opened all sorts of doors for me," says Glyph. "Whenever anyone does anything with Twisted the credit accrues to me. That's not really accurate, because there are lots of other maintainers like Amber Brown, David Reid, Ashwini Oruganti, Jean-Paul Calderone, Moshe Zadka, and Christopher Armstrong." Regardless, anyone who releases open source code engages in a subtle exchange with users, which obliges the coder to uphold some responsibilities. In my conversation with him, Glyph identified three responsibilities for open source programmers: to make clear promises, to secure our code, and to release code of appropriate quality.



Open source maintainers are uniquely obliged to make clear promises. If a maintainer abandons a project, her main obligation is to announce her departure and to transfer control. "Being an open-source maintainer is not a life sentence," says Glyph. But it is irresponsible to make a worthy piece of software, gain users, then disappear without a word.



We also have a responsibility to protect our personal information security; for example, a Python project maintainer must protect her PyPI account so her users know they won't be hacked when they install her package. That responsibility is shared with the community's infrastructure maintainers, and Glyph cites PyPI as one of the best modern examples. "It doesn't get enough credit because of Python's checkered history with packaging," he says, "but the way Donald Stufft thinks about practical information security, and the other folks who work on PyPI as well, and the resources the PSF has invested there," have laid a foundation for securely distributing open source Python.



And finally, many of us set a low bar for the quality of code that we release: if the project scratched our own itch, we might as well open-source it. In Glyph's opinion, we must more carefully consider the impact of the code we give away, because we can't predict how it will be used. Glyph knows that many of the largest sites run Twisted somewhere in their stack, and he feels the responsibility keenly.



"A lot of our software completely escapes its originating context," says Glyph. The author might intend to release a mere prototype, but downstream packagers come to depend on her code, and other programmers even farther downstream might not know they depend on it at all. Of course, software users share some responsibility for auditing what code they use. "This responsibility is not black or white," says Glyph. "There's small tradeoffs and fractional proportions. It's not 100% yours or not, but you've got to think about it."
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Gửi email bài đăng nàyBlogThis!Chia sẻ lên XChia sẻ lên Facebook
Bài đăng Mới hơn Bài đăng Cũ hơn Trang chủ

0 nhận xét:

Đăng nhận xét

Popular Posts

  • Microsoft Office 2016 Portable + Professional Plus Download Free ( 32-bit/64-bit )
    Microsoft Office 2016 Portable + Professional Plus Download Free ( 32-bit/64-bit ) for all Microsoft windows. It's an offline setup stan...
  • Autodesk ArtCAM 2017 Crack + Patch + Full Version
    Autodesk ArtCAM 2017 Crack + Patch + Full Version ArtCAM is, in fact, a design tool designed more for designers than engineers, and allows d...
  • Download PTC Creo v5.0 / v4.0 + Crack
    Download PTC Creo v5.0 / v4.0 + Crack is a full version offline installer software program for your pc and you can also download from portab...
  • Windows 7 Tiny Unattended Fully Activated CD (x86)
    Description:- This is a re-up of experience's Windows Tiny7 Rev01 Unattended Activated CD (x86). Total size after install is 1.64 Gb, an...
  • Maxon CINEMA 4D Studio R19.024 Free Download
    Download Maxon CINEMA 4D Studio R19.024 Free latest version offline setup for Microsoft Windows 7, 8, 10, XP, Vista. Maxon CINEMA 4D Studio ...
  • Tekla Structural Designer 2019 v19.0.0.104 (32/64 Bit) Free Full Download
    Download Tekla Structural Designer 2019 v19.0.0.104 (32/64 Bit) Full Free Crack latest version offline setup for Microsoft Windows 7, 8, 10,...
  • ARTCUT 2009 Software USB Driver Free Full Download
    Download ARTCUT 2009 Software USB Driver Full Free latest version offline setup for Microsoft Windows 7, 8,  10, XP, Vista. ARTCUT 2009 Soft...
  • SketchUp Pro 2019 v19.0.685 + Windows + Portable / macOS
    SketchUp Pro 2019 v19.0.685 + Windows + Portable / macOS is a full version offline installer software program for your pc and you can also d...
  • Adobe Premiere Pro CC 2018 Download Latest Version
    Adobe Premiere Pro CC 2018 Download Latest Version Adobe Premiere Pro CC 2018 Download Latest Version for Windows and Mac 32 bit & 64-bi...
  • Adobe Acrobat Pro DC 2019 Portable (v19.010.20064)
    Adobe Acrobat Pro DC 2019 Portable (v19.010.20064) is a software for creating PDF files. With the help of this software, the user can conver...

Maxon CINEMA 4D Studio R19.024 Free Download

Download Maxon CINEMA 4D Studio R19.024 Free latest version offline setup for Microsoft Windows 7, 8, 10, XP, Vista. Maxon CINEMA 4D Studio ...

Tìm kiếm Blog này

Lưu trữ Blog

  • tháng 6 2019 (4)
  • tháng 5 2019 (4)
  • tháng 4 2019 (4)
  • tháng 3 2019 (13)
  • tháng 2 2019 (15)
  • tháng 1 2019 (23)
  • tháng 12 2018 (20)
  • tháng 11 2018 (3)
  • tháng 10 2018 (6)
  • tháng 9 2018 (1)
  • tháng 8 2018 (7)
  • tháng 7 2018 (26)
  • tháng 6 2018 (31)
  • tháng 5 2018 (9)
  • tháng 4 2018 (12)
  • tháng 3 2018 (17)
  • tháng 2 2018 (14)
  • tháng 1 2018 (3)
  • tháng 12 2017 (8)
  • tháng 11 2017 (11)
  • tháng 10 2017 (22)
  • tháng 9 2017 (24)
  • tháng 8 2017 (9)
  • tháng 7 2017 (5)
  • tháng 5 2017 (4)
  • tháng 4 2017 (3)
  • tháng 3 2017 (4)
  • tháng 2 2017 (6)
  • tháng 1 2017 (7)
  • tháng 12 2016 (4)
  • tháng 11 2016 (4)
  • tháng 10 2016 (2)
  • tháng 8 2016 (4)
  • tháng 7 2016 (4)
  • tháng 6 2016 (3)
  • tháng 5 2016 (6)
  • tháng 4 2016 (5)
  • tháng 3 2016 (2)
  • tháng 1 2016 (3)
  • tháng 12 2015 (2)
  • tháng 11 2015 (11)
  • tháng 10 2015 (22)
  • tháng 9 2015 (12)
  • tháng 8 2015 (2)
  • tháng 7 2015 (16)
  • tháng 6 2015 (11)
  • tháng 5 2015 (5)
  • tháng 4 2015 (31)
  • tháng 3 2015 (33)
  • tháng 2 2015 (4)
  • tháng 1 2015 (1)
  • tháng 11 2014 (20)
  • tháng 10 2014 (5)
Được tạo bởi Blogger.

Nhãn

  • 3d Animation
  • 3d CAD
  • 3D Software
  • Action Games
  • Adobe
  • Adobe Elements
  • Adobe Illustrator
  • Adobe Photoshop
  • Adobe Premiere
  • Adventure Games
  • advocacy
  • Africa
  • Android
  • Android Application
  • Android Stuff
  • Antivirus
  • APK Games
  • Apps
  • Arcade Games
  • Asia-Pacific
  • Audio Editing
  • award
  • Bangla Software
  • BBC
  • Best and Top
  • board
  • Board of Directors
  • brochure
  • C
  • call
  • Call for Proposals
  • Caribbean
  • CD & DVD
  • children
  • coding literacy
  • community
  • community service awards
  • conference
  • conferences
  • contributions
  • Converter
  • Converters
  • CorelDraw ELEMENTS
  • CSA
  • Cuba
  • Cubase
  • Data Recovery
  • deadlines
  • Dell Desktop Drivers
  • democracy
  • Design
  • Design & Editing
  • Design Tools
  • Development
  • director
  • diversity
  • Django Girls
  • documentation
  • Dominican Republic
  • donations
  • Driver
  • Driver Software
  • DriverPack Solution
  • Drivers
  • e-vote
  • ecosystem
  • edu-sig
  • education
  • election
  • europython
  • events
  • Fighting Games
  • Folder Lock
  • Font Creator
  • foundation
  • frank-willison. Young Coders
  • Gaming
  • Google Summer of Code
  • grants
  • Graphic Design
  • Graphic Tools
  • Graphics
  • GTA
  • hardware
  • IDM
  • Illustrator
  • infrastructure
  • Inpages
  • Internet
  • Internet Security
  • Japan
  • job board
  • jobs
  • Mac
  • Memories of Lost Time
  • mentoring
  • micro:bit
  • microbit
  • MicroPython
  • microsoft
  • Microsoft Office
  • Multi-media
  • Multimedia
  • Music
  • News
  • nominate
  • nominations
  • non-profit
  • NumFocus
  • Office
  • Office Elements
  • open source
  • Operating System
  • opportunity
  • oscon
  • outreach
  • Pc Game
  • PC Games
  • PC-Games
  • Popular Tools
  • Portable
  • porting
  • PSF
  • PSF funding
  • public relations
  • Puzzle Games
  • PyCaribbean
  • pycon
  • pycon2016
  • pycon2018
  • pydotorg
  • PyLadies
  • PyOhio
  • pypi
  • pypy
  • python
  • python3
  • Racing Games
  • RPG-Games
  • Santo Domingo
  • Science
  • Scientific Computing
  • scipy
  • Screen Recorder
  • Security
  • Security Softwares
  • Shooting Games
  • Simulation Games
  • Software
  • Softwares
  • South America
  • sponsorship
  • Sports Games
  • sprints
  • Strategy Games
  • students
  • Super Copier
  • Super Copy
  • support
  • System Software
  • System Tools
  • talks
  • Tech
  • Tips
  • Total Security
  • travel
  • tutorials
  • Typing Software
  • uk
  • Utilities
  • Video Editing
  • volunteers
  • Windows
  • Windows Themes
  • Working Group
  • Young Coders

Báo cáo vi phạm

  • Trang chủ

Copyright © Wootware | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates