Sep 20, 2019 newsletter

Saying goodbye to Python 2 so that Python can keep up with the times

The Python Software Foundation, a nonprofit organization tasked with developing and maintaining the Python programming language, confirmed that the team will be officially sunsetting Python 2 on January 1, 2020.

Over the last few years, Python has been at the forefront of a machine learning and data science renaissance, providing the backbone for artificial intelligence libraries and deep learning frameworks. But with new languages like Julia and Rust making serious inroads into the development world, Python will need to improve faster if it hopes to preserve its dominance.

Developers are encouraged to port all Python code to Python 3, the latest iteration that was launched over 10 years ago in 2008. According to the Python team: “we will not improve [Python 2] anymore after that day, even if someone finds a security problem in it.”

Transitioning the entire Python community to the latest language version has often faced unexpected challenges over the last few years. The Python team originally stated that support for Python 2 would end in 2015, but after receiving community feedback, developers were given an extra five years of support. During that extra time many large companies, such as Instagram and Dropbox, completed their migrations from Python 2 to Python 3. Other companies, however, are still struggling to migrate their codebase even as time runs out. Sources say that JPMorgan, one of the largest banks in the world, will be unable to complete its Python transition by the 2020 deadline. For such companies, specialist third-party vendors are the only solution to maintain existing Python 2 code if any security patches or updates are needed.

Launched in 2000, Python 2 has left an indelible mark on the software development world, but its reign is slowly ending to usher in a more dynamic period of innovation for the Python community. For the Python development team, dropping support for legacy versions frees up resources to develop new features that will define the future of Python. The move also encourages the greater Python development community to evolve as well, nudging engineering teams to make use of new tools available in Python 3 and modernize the remaining vast swaths of legacy code written in Python 2.


MoooFarm achieves 95.7% accuracy in facial recognition software for cows

MoooFarm, an India-based startup, is building facial recognition software for cows that will help farmers identify cattle using their smartphone cameras.

As countries such as the U.S. debate the ethics of facial recognition and artificial intelligence in terms of their privacy impact on humans, an entire world of software developers are pushing technology forward.

The MoooFarm team recently received a $30,000 award from the World Bank for their facial recognition technology that achieved 95.7% accuracy in identifying individual cows. MoooFarm previously received a $15,000 grant from Microsoft to tackle mastitis, a disease that negatively affects cows’ udders, using image labeling technology to analyze photos of cows to detect instances of the disease.

Like humans, cows have defining facial features that can be used to distinguish them from each other. Farmers in India can take pictures of their cows to build a directory of their livestock, minimizing stray cattle and preventing insurance fraud. MoooFarm’s software works with basic smartphones, making the tool easy to share with remote or rural farmers.

Most importantly, much of that technology is becoming increasingly accessible. For example, over the last few months, several open source repositories have sprung up that leverage advanced machine learning to create convincing fake images and videos. Small teams and independent developers have access to both immensely powerful artificial intelligence algorithms and widespread access to cloud-based platforms.

Advancements in widely accessible clouds bring with them greater access to artificial intelligence and machine learning, even in rural India. After cows, who will lose their digital anonymity next?


How to build your cloud with JavaScript

Pulumi, a Seattle-based cloud management software company, officially announced the release of version 1.0 of its platform.

Pulumi allows developers to use popular programming languages to define cloud-based infrastructure. Using familiar languages such as TypeScript, JavaScript, Python, and Go, developers can build and define environments on AWS, Azure, Google Cloud Platform, and DigitalOcean.

Founded by former Microsoft EVP Eric Rudder, Pulumi’s latest release comes nearly a year after the company raised $15M in funding in their Series A round led by Madrona Venture Group in late 2018. According to Pulumi, “the 1.0 milestone signals completeness, stability, and compatibility, and is the result of two years of work helping 1,000s of customers take modern cloud architectures across many clouds into production.”

Why would developers want to use languages like JavaScript to define their cloud infrastructure? Compared to Markdown or other structured configurations (like YAML or JIML), infrastructure definitions can be more dynamic with control flow (if statements, for loops, case statements, etc.). Developers can also create classes and functions to abstract certain elements of their cloud infrastructure, making their code more reusable and more portable.

Developers often use YAML, or its many permutations, but the language has faced criticism over the last few years for its use of significant whitespace, confusing features, and ambiguous specification. Pulumi, however, offers a developer-friendly alternative that is directly integrated into existing workflows. As definitions for cloud infrastructure move closer to application source code and developers face growing responsibility for their maintenance, tools to manage cloud deployments are becoming more developer centric.


Small bytes


Tools

  • Spacekit is a Javascript library for 3D space visualizations [GITHUB]
  • Open Source Society University is a path to a free self-taught education in computer science [GITHUB]
  • Project-based-learning is a list of programming tutorials in which learners build an application from scratch [GITHUB]
  • Developer-portfolios is a list of developer portfolios for your inspiration [GITHUB]
  • Git-quick-statistics is a simple and efficient way to access various statistics in git repository [GITHUB]
  • Byte Vitae generates great looking resumes for developers [BYTE VITAI]
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
AI Ethics: How Diverging Global Strategies Open a Gaping Regulatory Void

Today global initiatives on AI are a series of regulatory and ethical gambles—a dangerous, potentially existential game.


Can Master Chief win the day for Microsoft Azure?

Why the Xbox will be Azure’s unlikely hero.


Churn Baby, Churn

Understanding churn rates can help developers be more productive and write quality code

Made with by Software. Read more about our mission.