Apple introduces Swift Numerics to support numerical computing in Swift
Yesterday, Steve Canon, a member of Apple’s Swift Standard Library team announced a new
open-source project called Swift Numerics. The goal behind this project is to enable the use
of Swift language in new domains of programming.
What is Swift Numerics
Swift Numerics is a Swift package containing a set of fine-grained modules. These
modules fall broadly under two categories. One, modules that are too specialized to be
included into the standard library, but are general enough to be in a single common
package. The second category includes those modules that are “under active development
toward possible future inclusion in the standard library.”
Currently, Swift Numerics has two most-requested modules: Real and Complex. The Real
module provides basic math functions proposed in SE-0246. This proposal was accepted but
due to some limitations in the compiler, it is not yet possible to add the new functions
directly to the standard library. Real provides the basic math functionalities in a
separate module so that developers can start using them right away in their projects.
The Complex module introduces a Complex number type over an underlying Real type. It
includes usual arithmetic operators for complex numbers. It is conformant to usual
protocols such as Equatable, Hashable, Codable, and Numeric. The support for complex
numbers can be especially useful when working with Fourier transforms and signal
processing algorithms.
The modules included in Swift Numerics have minimal dependencies. For instance, the
current modules only require the availability of the Swift and C standard libraries and
the runtime support provided by compiler-rt. Also, the Swift Numerics package is
open-sourced under the same license and contribution guidelines as the Swift project
(Apache License 2.0).
In a discussion on Hacker News, many developers shared their views on Swift Numerics. A
user commented, “Really looking forward to ShapedArray. Eventually, a lot of what one
might do with Python may be available in Swift.”
Read the official announcement by Apple to know more about Swift Numerics. Also, check
out its GitHub repository.
By Bhagyashree R -November 8, 2019 - 8:42 am
Facebook mandates Visual Studio Code as default development environment and partners with
Microsoft for remote development extensions
On Tuesday, Facebook mandates Visual Studio Code, the source code editor developed by
Microsoft,
as their default development environment. Additionally, they also stated that the company
will
work with Microsoft to expand the remote development extension for Visual Studio Code so
that
engineers can do large-scale remote development.
As per the official announcement page, Facebook engineers have written millions of lines of
codes and there is no mandated development environment. Till now Facebook developers used
Vim or
Emacs and the development environment was disjointed. And certain developers also used
Nuclide,
an integrated development environment developed by Facebook.
But in late 2018, they announced to their internal engineers that they would move Nuclide to
Visual Studio Code. They have also done plenty of development work to migrate the current
Nuclide functionality, along with new features to Visual Studio Code and currently it is
used
extensively across the company in beta.
Why Visual Studio Code?
The Visual Studio Code is a very popular development tool, with great support from
Microsoft
and
the
open source community. It runs on macOS, Windows, and Linux, and has a robust and
well-defined
extension API that enables to continue building the important capabilities required for
the
large-scale development done at Facebook. The company believes that it is a platform on
which
they
can safely bet their development platform future.
They have also partnered with Microsoft for remote development. At present, Facebook
engineers
install Visual Studio Code on a local PC, but the actual development is done directly on
the
development server in the data center. Therefore, it aims to improve efficiency and
productivity
by
making the code on the server accessible in a seamless and high-performance manner.
Facebook mandates Visual Studio Code as an integrated development environment which can
be
used internally, specifically, because Facebook uses various programming languages. It
also
uses Mercurial as the source control infrastructure, it will work on the development of
extensions to allow direct source control operations within Visual Studio Code.
Facebook states, “VS Code is now an established part of Facebook’s development future.
In
teaming
with Microsoft, we’re looking forward to being part of the community that helps Visual
Studio
Code
continue to be a world class development tool.”
On Hacker News, developers are discussing various issues related to remote development
extensions in
VS Code, one of them is it is not open-source and Facebook should take efforts to make
it an
open
project.
By Fatema Patrawala -November 21, 2019 - 6:36 am
Python 3.9 alpha 1 is now ready for testing
Three days ago, the team behind Python announced the release of Python 3.9.0a1, which is the
first out of the six planned alpha releases of Python 3.9. The final stable version of
Python 3.9 is slated to release in May 2020. An alpha release indicates that developers can
start testing the new features and check for bug fixes but are not recommended to use it in
production.
Last month, the previous stable version, Python 3.8 was released with features like walrus
operator, positional-only parameters support for Vectorcall.
Some improvements introduced in Python 3.9.0a1
The __import__() function which is invoked by the import statement will now raise
ImportError instead of ValueError. In the previous versions, the latter used to occur
when a relative import went past its top-level package.
Starting from Python 3.9.0a1, the absolute path of the script filename will be specified
on the command line: the __file__ attribute of the __main__ module. The sys.argv[0] and
sys.path[0] will become an absolute path rather than a relative path. Also, the
traceback will now display the absolute path for __main__ module frames in this case.
The encoding and errors arguments in the debug build and development mode will now be
checked in the string encoding and decoding operations.
ast: It is added in the indent option to dump() and produces a multi-line indented
output.
asyncio: It can now use coroutine which is a generalized form of subroutines.
Subroutines enter and exit at only two different points, while coroutines can be
entered, exited, and resumed at many points. Moreover, asyncio.run() is updated to use
the new coroutine.
By Vincy Davis -November 22, 2019 - 8:27 am
Azure Functions 3.0 released with support for .NET Core 3.1!
On 9th December, Microsoft announced that the go-live release of the Azure Functions 3.0 is
now available. Among many new capabilities and functionality added to this release, one
amazing addition is the support for the newly released .NET Core 3.1 — an LTS (long-term
support) release — and Node 12.
With users having the advantage to build and deploy 3.0 functions in production, the Azure
Functions 3.0 bring newer capabilities including the ability to target .NET Core 3.1 and
Node 12, higher backward compatibility for existing apps running on older language versions,
without any code changes.
“While the runtime is now ready for production, and most of the tooling and performance
optimizations are rolling out soon, there are still some tooling improvements to come
before we announce Functions 3.0 as the default for new apps. We plan to announce
Functions 3.0 as the default version for new apps in January 2020,” the official
announcement mentions.
While users running on earlier versions of Azure Functions will continue to be
supported, the company does not plan to deprecate 1.0 or 2.0 at present. “Customers
running Azure Functions targeting 1.0 or 2.0 will also continue to receive security
updates and patches moving forward—to both the Azure Functions runtime and the
underlying .NET runtime—for apps running in Azure. Whenever there’s a major version
deprecation, we plan to provide notice at least a year in advance for users to migrate
their apps to a newer version,” Microsoft mentions.
By Vincy Davis -November 22, 2019 - 8:27 am