Showing posts with label Web Programming. Show all posts
Showing posts with label Web Programming. Show all posts
Microsoft announced the release of C# 10 as part of .NET 6 and Visual Studio 2022, with the object-oriented, type-safe programming language having capabilities that make code quicker and more expressive.

According to the company, C# produces errors when a value that has not been definitely assigned is used, and C# 10 understands the code better to produce less spurious errors, which improvements means users will see less errors and warnings for null references.

Also, C# 10 adds extended property patterns that make it easier to access nested property values in patterns.

What's New in C# 10 Programming Language?



C# 10 brings improvements to structs, as it introduces features for structs that offer better parity between classes and these new features include field initializers, parameterless constructors, record structs and expressions.



Before the release of C# 10, every struct had an implicit public parameterless constructor which set the fields to default, and it was an error to create a parameterless constructor on a struct. But with C# 10, you can include parameterless struct constructors or the implicit parameterless constructor will be provided to set all fields to their default.

In C# 10, you can also specify an explicit return type on a lambda expression, just like on a method or a local function, and the return type goes right before the parameters. Albeit, lambdas are invoked differently from methods and local functions, as a result attributes don't have any effect when the lambda is invoked.

C# 10 has a number of other improvements across the language, with some of these helping to make C# work in the way you expect.

How to Get Started with C# 10?



C# 10 is part of the .NET 6 software development framework and Visual Studio 2022 IDE, and C# programmers using this IDE experience will benefit from several improvements in this release.

Get started by downloading Visual Studio 2022 on Windows which is now available as a 64-bit application, you can edit, run, and debug the biggest and most complex problems without running out of memory.

What's New in Microsoft’s C# 10 Programming Language?

Despite the controversy surrounding the AI-driven programming assistant, Copilot, GitHub has gone ahead to add support for more editors like JetBrains IDE and Neovim, along with multiline code completions in languages such as C, C++, C# and Java.

While the early preview was launched with Visual Studio Code extension only, with very few languages supported, Copilot now support programming languages such as JavaScript, TypeScript, Python, Ruby, and Go.

Copilot remains in preview stage, with the support for editors like Neovim and JetBrains IDEs, still expected to be launched in thenext updates with focus on JetBrains’ IntelliJ and PyCharm.

What is GitHub Copilot?



Copilot is an AI system trained on a selection of English language, powered by OpenAI Codex, and source code derived from publicly available repositories on GitHub.



It draws on the context of class names, function and method names, with comments to generate and synthesize the code offering developers with suggestions for new lines of code or functions in the editor. Copilot provides synthesized code suggestions, not just verbatim comments, and safeguards are being implemented to ensure that verbatim comments don't make it into code suggestions.

GitHub also discovered that code snippet suggestions verbatim were about 0.1% of the time. It also suggested that a fair amount of human intervention will be required when working with Copilot.

How to Get Started with Copilot?



Developers are enjoined to sign up to the waitlist to try out Copilot via the GitHub Copilot portal.

The company is keen to engage in a discussion with developers on topics and lead in setting up appropriate standards for training AI models.

GitHub Copilot extends Support for JetBrains IDE

F# 6 is Microsoft's effort to make F# simpler and boost performance, ranging from the language design, tooling and library, with the major goal of removing unnecessary hurdles on the path to adoption.

The new version is more uniform and interoperable with other .NET languages, and according to Microsoft, F# 6 will ship with .NET 6 RC2 and Visual Studio 2022 RC2, and serves as the next step to making it easier for users to write robust, succinct and performant code.

And perhaps, the major technical feature in F# 6 remains authoring asynchronous tasks more performant, and interoperability with other .NET languages like C#.

What's New in F# 6?



F# 6 provides the feature “overloaded custom operations in computation expressions” which since F# 5.0 has been in preview; the feature allows for simpler DSLs in F# including for web programming and validation.



While F# includes active patterns feature that allows users extend pattern matching in intuitive ways, with F# 6, the feature has been augmented with optional Struct representations for active patterns. Also, in F# 6, the “as” pattern can now itself be a pattern, which is important when a type test has given a stronger type to an input.

The in-memory cross-project referencing feature simplifies working between C# projects, as it allows C# projects to reflect immediately in an F# project without recompiling the C# project on disk.

Additionally, F# developers have the benefit of .NET 6 improvements to satisfy packaging rules for commonly used Linux distributions, and profile-guided optimization, can compile startup code with reduce binary size, at higher quality, and rearrange application binaries so that code used at startup is collocated at the start of the file.

How to Get Started with F# 6?



F# 6 release coincides with the release of Visual Studio 2022 on Windows and F# programmers using this IDE experience will benefit from several improvements in this release.

Visual Studio 2022 on Windows is now available as a 64-bit application, which means you can open, edit, run, and debug even the biggest and most complex solutions without running out of memory.

What's New in Microsoft’s F# 6 Programming Language?

Microsoft has released a preview of Visual Studio Code for the Web which offers a free, zero-install Visual Studio Code experience running completely on the browser.

While this isn't the first attempt at bringing VS Code to the web, as Microsoft had in 2019 released a web-based version of its Code Editor, Visual Studio Online, which was previously in a private testing with select developers. But the initiative later morphed into GitHub Codespaces and remains under the direction of GitHub.

Now, the new VS Code for the Web provides many of the features of VS Code desktop, including search and syntax highlighting while browsing and editing, along with support for extension to work on your codebase and make edits simpler.

How VS Code for the Web differs from VS Code desktop?



The new VS Code for the Web is a browser-based version of the popular code editor, allowing easy navigating of files and repositories and committing lightweight code changes.



For developers who need access to a runtime to run, build, or debug their code, it is recommended moving to the desktop application or GitHub Codespaces for full access to capabilities of VS Code. Also, VS Code desktop allows you to run extensions that are not yet supported in the web version, and make use of a full set of keyboard shortcuts not limited by browser.

As VS Code for the Web runs entirely in a web browser, it offers a very limited execution environment. Albeit, support for Azure Repos in Visual Studio Code for the Web is already in preview, and the experience will help it to improve over time.

Getting started with VS Code for the Web



VS Code for the Web is live at https://vscode.dev, you can create a local file or new project, or perhaps, work on an existing local project, and access source code repositories that are hosted elsewhere, such as on GitHub and Azure Repos, part of Azure DevOps.

And to work with both GitHub and Azure Repos, you should note that VS Code for the Web supports only two routes, vscode.dev/github and vscode.dev/azurerepos:

Microsoft brings VS Code to the Web Browser

Java Development Kit (JDK) 18 release is still some months away, and the next upgrade Java 18 has already started to take shape, with the simple web server proposal and proposal for a re-incubation of a foreign function and memory API.

While Java 17 brought new interface types for PRNGs including jumpable PRNGs and implementations of an additional class of splittable PRNG algorithms (LXM); the new interface, dubbed RandomGenerator, offered a uniform API for all new and existing PRNGs.

The JDK Enhancement Proposal (JEP) index of Java technologies cites the record patterns and an array of proposals as expected for JDK 18, albeit, it has not been marked officially.

What to Expect in Java 18 and the Final Release date?



Java 18 is due for release in March 2022, and has already started to take shape, with proposals to preview record patterns and array patterns, incubate the vector API, and adopt UTF-8 as the default character set.



JDK 17 was a long-term support (LTS) release, which means it will receive at least eight years of support from Oracle, while JDK 18 is a short-term feature release that be supported for only six months. Below are some of the officially targeted JDK 18 proposals:

  • Foreign function and memory API: The intent is to replace JNI with a superior and pure Java development model
  • Code snippets in Java API: the introduction of @snippet tag for JavaDoc’s Standard to simplify the inclusion of example source code in API documentation
  • Preview of record patterns and array patterns: the Java language would be enhanced with record patterns to deconstruct record values, array patterns, and to deconstruct array values
  • Vector API: concerns vector computations that compile at run time to optimal vector instructions on supported CPUs, achieving performance superior to equivalent scalar computations
  • Simple web server proposal: a command-line tool that would be provided to start a minimal web server which serves static files only


If you're a developer and want an early-access to open source builds of JDK 18, you can get it at jdk.java.net. But note that JDK 18 is not due until March 2022, and it would be supported for only six months.

JDK 18: What to Expect in Java 18 and the Final Release date?

GitHub Enterprise Cloud now allow users the ability to centrally manage team memberships through their identity provider, using GitHub’s Enterprise Managed Users service.

With Enterprise Managed Users service, organizations can connect identity providers such as Azure Active Directory and Okta directly to GitHub Cloud, which enables management of GitHub identity and access for employees, and helps to streamline processes like onboarding and user group management.

The move is perhaps intended to help organizations of all sizes to easily transition software development operations to the cloud.

About GitHub's Enterprise Managed Users Service



GitHub's Enterprise Managed Users service allows you to control the user accounts of enterprise members through identity provider (IdP).



And you can simplify authentication with SAML single sign-on (SSO) and deprovision user accounts for enterprise members, with users assigned to the GitHub Enterprise Managed User application in the IdP provisioned as new user accounts on GitHub and added to your enterprise. You can control usernames, profile data, team membership, and repository access from the IdP.

Also, team membership can be managed within an organization in your enterprise directly through your IdP, allowing you repository access using groups in your IdP and organization membership can be managed manually or automatically as managed users are added to teams within the organization.

You can grant managed users access to contribute to repositories within your enterprise, but managed users can't create public content or collaborate with other users, organizations, and enterprises on GitHub.

However, to use Enterprise Managed Users, you'll need a separate type of enterprise account with Enterprise Managed Users enabled. You can check the "About enterprises with managed users" for more information about creating this account.

Azure Active Directory and Okta connects directly to GitHub Cloud

Google-developed web framework, Angular is set for a host of improvements with the expected release of Angular 13, ranging from improved error messages to pure annotations, better integration with deployment providers.

While Angular 12 was released on May 12, bringing updated version of Ivy language service to provide improved type checking and tearing down of the test module and environment after every test, which significantly improved test speed. Angular 13, latest beta releases published as of September 24, shows major areas of improvements such as the core, router, and service workers.

Several other new changes are still expected as the framework nears release, besides the router performance improvements, which change proposal is to fix a situation in where the default URL serializer drops everything afterward, including question mark in query parameters.

What's New in Angular 13 Update?



Angular 13 will debut a new type which serves as a union of all possible status strings for form controls, FormControlStatus. And AbstractControl.status will be narrowed from string to FormControlStatus.



Some key changes available in latest Angular 13 betas are as follows:

  • Service worker cache is now cleared in the safety worker ensuring stale or broken contents aren't served in future requests.
  • Behavior of the SpyLocation employed by the RouterTestingModule now matches the behavior of the browsers.
  • Pure annotations have been added to static property initializers, with class properties with initializers that cause code execution having side effects at module evaluation, similar in effect to module level code.
  • Platform-browser error message has been improved for missing animation trigger.


Furthermore, most applications should be able to consume the new types introduced seamlessly, hybrid apps relying on navigationId to the router should subscribe to NavigationCancel events and carry out the location.replaceState to add navigationId to the router state.

What is Angular 13 Release Date and How to Get Started with Angular 13?



As Angular releases are targeted for every six months, it makes the release date of version 13 this November, with latest version the Angular 12 released on May 12.

Angular 13 version is still in pre-release state, therefore it is strongly recommended that if you want to update to the latest version (from Angular 10 or 11), you should update your application to Angular 12 before upgrading to Angular 13.

Angular 13 Update: What's New and the Final Release date?

GCToolkit is a set of libraries for analyzing Java garbage collection (GC) log files, that parses log files into discrete events and offers an API for aggregating data from the events.

Microsoft’s Java Engineering Group announced the open-sourcing of GCToolkit, and the availability on GitHub, offered under the MIT license. While the tool comprises of three Java modules including the API, garbage collection log file parsers, and a message backplane based on the Vert.x toolkit for building apps on the JVM.

The API serves as the entry point into the toolkit, concealing the details of using the parser to analyze a garbage collection log file into a method calls; with the parser module as a collection of regular code developed to be a robust garbage collection log parser.

How the open-sourcing of GCToolkit will impact the Development ecosystem?



As GCToolkit parses GC log files into discrete events and provides an API for aggregating data from those events, it allows developers to create arbitrary and complex analyses of the state of managed memory in the Java Virtual Machine (JVM).



The management of memory in the JVM comprises of 3 main pieces, namely: memory buffers also known as Java heap, allocators which works on getting data into Java heap, and garbage collection (GC).

GC is responsible for recovering memory in Java heap that is no longer in use, which term is often used as a euphemism for memory management and tuning GC or tuning the collector are used with the understanding of tuning the JVM’s memory management subsystem.

How to Get Started with Microsoft GCToolkit?



GCToolkit is currently aailable on GitHub and offered under the MIT license, if you're interested in contributing.

But if you only want to follow along, you can join the community discussions at github.com/microsoft/gctoolkit/discussions.

Microsoft open-sources GCToolkit Java garbage collection analyzer