This Week in Programming: Perl 7 Brings ‘Different, Saner, More Modern Defaults’
There’s an old Monty Python bit I always want to reference when it comes to wonky version numbering, and Perl certainly offers no exception. This week saw the unveiling of Perl 7, which, they write, “is going to be Perl 5.32, mostly.”
As we’ve previously explored, the jump from Perl 5 to Perl 7 is because Perl 6 became such a completely different language than its predecessor that it decided to do just that, recently being renamed Raku and going off to live its own life, thank you very much. On this topic, the Perl 7 announcement says that “A long time ago, we thought that a very ambitious rewrite effort would replace v5.8. In short, that’s not what happened and the language has gone on to live a life of its own. So, 7 was the next available number. That’s it. It’s just the next cardinal number in line.” And in case you think it weird to simply move on to Perl 7, the team offers several examples of other weird version numbers, so that you might happily move on with your life and hopefully never speak of Perl 6 again.
Although I like how Perl6/Raku simplifies sigils, I am more excited by Perl7 than I ever was with Raku. https://t.co/pPqHKtvCHI
— Jim Jagielski (@jimjag) June 25, 2020
Moving on, or going back as it were, Perl 7 is mostly just Perl 5.32, “but with different, saner, more modern defaults.” Essentially, Perl 7 adds a bunch of stuff as default that you would previously have had to declare, each and every time, at the beginning of your code. As for what’s happening to Perl 5, it’s going into long term maintenance mode, which means it likely has about a decade of support left.
What is new with Perl 7, then, other than defaults, you might wonder? The answer here, again is… not so much. While there are some things disappearing from Perl 5.32, they write that “again, this is essentially Perl 5.32 with the knobs and dials in different places.” New features, meanwhile, such as postfix dereferencing or the new isa operator, are available without you having to do anything. “That’s the benefit of the new social contract a major version provides. It’s a hard boundary where new features can exist by default on one side without disturbing the other side,” they write.
In summary, they offer a bit of a tldr; “Perl 7 is v5.32 with different settings. Your code should work if it’s not a mess. Expect a user release within a year.”
“Hell isn’t other people’s code. Hell is your own code from 3 years ago.” – Jeff Atwood
— Programming Wisdom (@CodeWisdom) June 22, 2020
This Week in Programming
- Python Looks to Add Pattern Matching… Again: It’s not the first time the Python community has been at this precipice, having considered pattern matching at least twice before back in 2001 and 2006, but they are again looking at adding a pattern matching syntax, and InfoWorld brings us the full story around the latest Python Enhancement Proposal (PEP) 622. The new proposal, they write, “would finally bring a pattern matching statement syntax to Python” and “give Python programmers more expressive ways of handling structured data, without having to resort to workarounds.” Noting that the feature is common in many other languages, such as the switch/case in C, pattern matching “allows one of a number of possible actions to be taken based on the value of a given variable or expression.” While the previous proposals were turned down to lack of support, Python creator Guido van Rossum is trying again, alongside several others, to “provide regular expressions for object matching, rather than just a simple if/elif/else substitute” with a proposal that was “inspired by how pattern matching works in Rust and Scala.”
- Amazon’s No-Code Honeycode Arrives: Amazon Web Services’ latest tool, Amazon Honeycode, was introduced this week and the fully-managed AWS service gives its users the ability to build mobile and web applications without writing any code. Currently in beta, Honeycode comes in a familiar spreadsheet format and operates much as you might expect, if you’re familiar with formulas in Excel or another spreadsheet program. Out of the door, Amazon Honeycode comes with templates for some common applications, such as creating a to-do list or managing inventory, and the templates are customizable, with changes being deployed as you make them. The tool also includes a number of “built-in, trigger-driven actions that can generate email notifications and modify tables” alongside “a lengthy list of built-in functions” that looks like functions you’d find in those other spreadsheet programs. To get started, visit the Honeycode Builder site and create an account.
- WWDC 2020: This week saw the first virtual presentation of Apple’s World Wide Developer Conference, and at least some folks see it as a vast improvement over the usual, live format. While we’re not going to dive too deep into this one, it looks like iOS developers (or whatever other Apple-based OS you’re working on) have a number of new features to look forward to. This week saw the introduction of Xcode 12, which brings with it a new design and the ability to build Universal apps by default, the addition of WidgetKit, a framework to make it easier to build widgets iOS, iPadOS, and macOS, and the introduction of App Clips, which allow developers to offer a sort of app preview before users even download the full app. Beyond these, Apple also offered updates for both machine learning and augmented reality, such as the ability to work with third-party training libraries more easily and the introduction of ARKit 4, which it says “introduces brand-new features that make the AR experiences in your apps even more lifelike.” Of course, that’s just scratching the surface, but if you’re looking for more details, you might check out this list of the 18 biggest announcements made this year.
- GitHub Adds Dependabot Actions Updates: What good is Dependabot, GitHub’s automated dependency update tool, if it can’t update, right? Well, GitHub has announced that Dependabot now updates your GitHub Actions workflows instead of requiring you to do so manually. With the change, Dependabot version updates will periodically check your workflow files and the Actions they use to see if new versions are available, and if they are, you’ll get a pull request to update your workflow to use the new version. If this is a feature you’ll want to use, you’ll need to check a dependabot.yml configuration file into your repository.
The current interview system in tech is only proven to be effective in one thing: It’s good in picking who has time to get prepared for interviews.
— Jaana Dogan (@rakyll) June 25, 2020
- Moving On To Jakarta EE9 And Going Cloud Native: Next up, ADT brings us a couple of stories around Jakarta, the newly-named Java taken over in recent years by Eclipse. This aspect is actually one of the primary features of Eclipse Jakarta EE 9, which the Eclipse Foundation just announced this week — “The Jakarta EE 9 release marks the final transition away from the javax.* namespace (which Oracle refused to give up) to Eclipse’s jakarta.*. This release updates all the APIs to use jakarta.* in package names,” writes ADT. Alongside this change, the Eclipse Foundation has also released the Eclipse Transformer Project to help users running applications using the javax.* namespace that they don’t want to recompile. Alongside this release candidate, the Eclipse Foundation also released its 2020 Jakarta/Java survey findings, which ADT again summarizes. Put simply, the survey results “show significantly increased growth in the use of Jakarta EE 8 and interest in cloud native Java overall” with Spring Boot showing a slight decline in popularity, while Red Hat’s Quarkus has ramped up.
- IBM’s Open Source COVID-19 Jupyter Notebooks: IBM has released open source Jupyter notebooks to help analyze real-time COVID-19 data, with the notebooks handling what the company calls some of the “more mundane tasks” such as finding authoritative data, cleaning up that data, making the data easily digestible by tools like Pandas and Scikit-Learn, and even building out an initial set of reports and graphs. The COVID notebooks uses Jupyter notebooks for each of these initial data analysis steps and pulls underlying data from sources such as the COVID-19 Data Repository and the New York Times Coronavirus (Covid-19) Data in the United States repository, among others. The company gives some insight into how they built the notebooks, noting that they “use common Python data science libraries, including Pandas, Numpy, Matplotlib, seaborn and scipy.optimize” as well as “the graphical workflow editor that we have built as part of the Elyra project to tie our notebooks into workflows that you can run each day as new data becomes available.” The entire project is available on GitHub.
Dear virtual conference organizers: please put time zones on your schedules. I promise, it’s not obvious.
— Ian Coldwater 📦💥 (@IanColdwater) June 24, 2020
Amazon Web Services is a sponsor of The New Stack.
Feature Image by seukyong lim from Pixabay.
At this time, The New Stack does not allow comments directly on this website. We invite all readers who wish to discuss a story to visit us on Twitter or Facebook. We also welcome your news tips and feedback via email: firstname.lastname@example.org.