Dev News: Crockford’s New Language, Remix and Vite, Bun Bugs
Among its features:
- It’s dynamic, meaning the language can be changed and modified while it’s running, as opposed to statically-typed languages where the variable must be declared before the program can run.
- It’s transitional, so it’s easy for students but has advanced features for experienced programmers. For instance, it has capability security, which allows programmers to control which parts of the program can access which resources, a function that prevent security vulnerabilities. It also has lambdas with lexical scoping. Lambdas are anonymous functions that can be created and passed around as values. Lexical scoping means that the variables that a lambda function can access are determined by where the lambda function was defined.
- It’s based on the actor model, which is a manner of programming that emphasizes concurrency and parallelism.
“If you hate JS’s events, you’ll hate actors, too,” pointelessone wrote. “Messages are more isolated and better for parallelism but queues are as opaque. And on top of that you have to manage actors explicitly and deal with extra syntax for that.”
Others compared it to E, a retired open source programming language, and said it looked “promising.”
Remix Introduces Unstable Support for Vite
Previously, there were three barriers to the adoption of Vite: non-node runtime support, stable SSR support, and server-aware full-stack HMR. CloudFlare support in Vite was the last missing piece, so Remix is working directly with the CloudFlare team to deliver support before the Remix Vite plugin stabilizes.
This change gives Remix users access to the ecosystem of Vite plugins, ”This lets us focus on making the core of Remix the best that it can be while letting Vite plugins handle the rest,” they wrote.
There are a number of benefits from the Remix Vite plugin enumerated in the post, including:
- Near instant developer startup because Vite “lazily compiles your app code on-demand, so the dev server can boot immediately,” explained Cattori and Dalgleish;
- Pre-bundled dependencies. Since Vite processes dependencies only once, large libraries don’t become rebuild or hot update bottlenecks;
- Incremental hot updates;
- Reduced memory use; and
- Automatic route-based CSS splitting
Kotlin Multiplatform Now Stable
JetBrains released the stable version of Kotlin Multiplatform, its Flutter alternative, on Wednesday. The platform enables sharing code between iOS, Android, desktop, web, server-side and other platforms.
It has been a year since JetBrains released the beta version of Kotlin Multiplatform, which allows developers to create applications and reuse the code while retaining the benefits of native programming.
The stable framework offers a fully-stabilized API, simplified project configuration, and better interoperability with Objective-C and Swift, as well as faster build times and other performance improvements, JetBrains noted. It also quoted Netflix developers saying that Kotlin should be seen as a compliment to existing platform-specific technologies. The main benefit of Kotlin Multiplatform is its flexibility, the company noted.
“Developers can share only part of their app’s logic and write native code if they want to interact with platform-specific APIs or build native UIs,” the press release states. “When combining Kotlin Multiplatform with Compose Multiplatform, a declarative framework for sharing UIs across multiple platforms, developers gain even more freedom and can share up to 100% of their codebase — all in Kotlin.”
Compose Multiplatform is stable for Android and desktop, experimental for web, and in Alpha for iOS.
The plan is to enhance the experience of iOS developers by delivering direct Kotlin-to-Swift interoperability and SwiftPM support in future updates. The next milestone for Compose Multiplatform is to deliver a Beta version for iOS in 2024.
JetBrains is also developing Kotlin/Wasm to facilitate modern web development with the multiplatform.
Bun Fixes 59 Bugs
There are bug fixes to the bun install. For instance, this release adds support for optional peer dependencies, which addresses a bug where bun install would potentially install more packages than npm install. Other issues addressed include Node.js compatibility issues and runtime bugs.
The new update also implements optional peer dependencies in bun install and makes improvements to Node.js compatibility.