Platform.sh is always one step ahead: Announcing PostgreSQL 15, Python 3.11, and Ruby 3.2 for our users
As a developer, it’s important to stay up-to-date with the latest programming languages and updates. But this is no easy task with the fast-paced nature of our techy industry - so we thought we’d do some of the work for you!
We’re excited to announce the release of the latest versions of Python, PostgreSQL, and Ruby which our users can already benefit from via our platform. These updates deliver a ton of new features and improvements to try out, with many of these updates welcoming improvements in speed and efficiency for your applications - we can’t wait to dive into what’s new. Here’s what you need to know:
PostgreSQL 15
PostgreSQL version 15 has arrived and it’s packed full of performance-enhancing features and improvements. Here are a couple we’re particularly excited about:
SQL merge command support
The feature we’re most excited about has to be the support for SQL merge command. The merge command now provides a single SQL statement that can conditionally insert, update, or delete rows as required. A task that would otherwise require multiple procedural language statements and no one wants that.
Global performance improvements
With PostgreSQL version 15, global performance improvements are also on the menu! And the best part is they don’t require any developer time to enhance database performance - perfect. In fact, with this version, sorting algorithms - especially for in-memory and on-desk sorting - have been reported to enhance performance from 25% to 400%, depending on the applications benchmarked.
Find out more about PostgreSQL version 15 in the full release note.
Python 3.11
The versatile and widely-used programming language that so many of you know and love has released version 3.11. An update that includes performance improvements and new features such as better type hints, support for asynchronous generators, and better handling of asynchronous exceptions.
Here are a couple of our favorite upgraded elements with Python 3.11:
Interpreter
Python has made many speed improvements over the years but the CPython adaptive interpreter could be one of their best. The CPython adaptive interpreter accelerates code by optimizing regular operations, comparable to a JIT compiler approach, but with on-the-fly bytecode changes. Unlike Python 3.10, this new version achieves between 10-60% faster results and, on average, Python developers measured an impressive 1.22x speedup.
Detailed error messages
Following the important traceback improvement from Python version 3.10, we now have even more details on the expressions and their specific parts which caused an error with version 3.11. Debugging scripts should no longer require going through hundreds of lines in tracebacks anymore - hooray!
Discover Python version 3.11 in detail in the full release note.
Ruby 3.2
We’re always excited when Ruby updates are released and version 3.2 is no exception. This latest update brings with it significant improvements, faster support for pattern matching, and new syntax for method calls. Take a look at a couple of our favorite version 3.2 features below:
YJIT compiler
In 2017 we had the pleasure of inviting Maxime Chevalier to Polyconf in Paris that we helped organize, to talk about ZetaVM, a new platform designed to enable anyone to create their own programming language. Little did we know that five years later her work would be the basis of a major evolution of Ruby. Version 3.2 welcomes the release of the YJIT compiler which reports an average improvement in speed of 41% compared to the Ruby Interpreter according to benchmarks. That’s the kind of efficiency we’re all looking for! Not to mention the new version includes improvements on the overhead memory management and is configurable for the developer to optimize the speed and memory usage. Get the details in the YJIT CLI commands documentation.
Regexp implementation
Everyone knows how difficult Regexp computing can be and so the Ruby 3.2 Regexp implementation is a welcome update which brings improvements in both performance and security. But, what does this upgrade deliver?
- A new matching algorithm automatically enhances performance by showing 90% of matching completion done with linear time. Whereas previously, it would show exponential time consumption instead.
- A global Regexp timeout function which helps with Regular Expressions which don’t benefit from the matching algorithm update mentioned above. Greatly improving security by disabling the potential Regexp denial of service type attacks.
Check out the full release note for all the details.
Upgrade fearlessly
No one loves having to fix what breaks during a language, framework, or service version upgrade - we get it. That’s why our Git based workflow is engineered to set you in the best possible conditions to eliminate the risk of potential inconsistencies and unexpected incompatibilities. With our WebOps platform, you can run tests on your newly updated apps in a matter of minutes, thanks to our cloning feature which ensures a perfect replica from production to staging. That means no surprises when pushing an update to production around here.
Need some guidance on how to upgrade on Platform.sh?
Take a look at this video.