First sightOur first look at Fleet, JetBrains' new flagship editor and IDE, shows the promise of a minimalist design and architecture with collaboration and remote development in mind - but there are many rough edges to the preview.
Fleetit's important because it's a new flagship IDE from JetBrains that may eventually replace IntelliJ, which is used as the core of many IDEs, including Google's Android Studio, although there are no plans to discontinue IntelliJ yet and Fleet is in preview .
The best word to describe Fleet is “minimalist”. On first launch, it's little more than a blank white window with a few controls embedded in the title bar. Nothing is possible until a workspace, actually a project folder, is opened. Once completed, the files can be created and edited, but little else. Features like refactoring and code analysis are disabled.
By clicking on the Smart Mode button in the upper right corner of the title bar, the developer has the option to enable "completion, debugging, fixes and refactoring".
The documentation warns that "After clicking the Enable button, you may need to wait a while while the backend is ready." This is true, and Fleet doesn't stop fetching dependencies and indexing the first time you click the button, assuming there's some code to parse. Once complete, Fleet becomes a full-fledged IDE but retains its minimalist design.
The functionality of the Smart Mode button is similar in concept to the Visual Studio Code Workspace Trust feature. The problem is that smart editors analyze and run source code in the background, which poses a security risk if a developer opens a project that contains malicious code.
Knowing whether any of the thousands of files automatically downloaded by a package manager might be malicious is not trivial. but these features at least give the developer a chance to safely step through the code before activating smart functions.
What is a "backend"? This is the main reason why JetBrains designed Fleet as an IntelliJ alternative. The backend is a service that does indexing, static analysis, searching, and so on.
The frontend is the UI that does basic file analysis. The workspace server sits in the middle, maintaining state on the front end and calling support services as needed. Multiple interfaces can be connected to a workspace.
A Fleet component called FSDaemon (Fleet Service Daemon) is part of the workspace, runs where the source code resides, and executes commands to build a project, run code, or execute terminal commands.
If Fleet is running locally, all these components are running on the same system. However, this architecture comes into its own when the workplace is remote.
In this preview, JetBrains also provides a standalone Fleet workspace server running on Linux. We tested it on WSL (Windows Subsystem for Linux) 2.0, using Ubuntu. The workspace server is an executable file that takes the path to a project as an argument and generates a URL that points to a relay service at jetbrains.com, along with a unique identifier.
Any system with Fleet installed can then open this URL, which prompts you to open Fleet and start working on this project. We tried to open our WSL project on Mac, using the magic url. Clicking the URL opened a dialog: Do you want to allow this page to open the JetBrains Toolbox?" Accepting the prompt opened Fleet on the Mac with full access to the WSL instance, including a terminal within Fleet.
The project is remote, so code generation takes place on the remote system. Port forwarding lets you test a web application running remotely on your local computer.
Again, there are similarities with VS Code, which has aRemote serverwhich does most of the work when using VS Code in this mode. However, with Fleet, if more than one developer opens the workspace, it's an instant collaboration environment. All developers essentially share the same IDE.
The effect is similar to the VS Code Live Share feature, where multiple developers can co-edit code or JetBrains Code with me. The system is flexible, and JetBrains claims that developers will be able to share their local sessions with others, or connect to Fleet running in Docker containers, or in the future use Fleet hosted in the cloud, although the current preview is anticipated and limited, for eg no authentication on remote sessions.
Note that while collaborative coding is a useful feature for pair programming (two developers working together) or to help with problems, the main collaboration technique remains the Git model (or alternative version control system), where each developer works independently with its own copy of the code. With Fleet, that code can reside on a remote server, but each developer still needs their own environment.
An important command in Fleet's user interface is Cmd-K, which opens a tabbed panel with Goto (code search), Actions (a list of possible actions), Tools (such as File Tree, Git, and Terminal), and text search. The Actions tab is reminiscent of the VS Code Command Palette, with the model of searching for a menu item by typing instead of navigating through hierarchical menus in the UI.
Based on our preview experience, working with Fleet is still a bit difficult, especially on Windows. We had major pauses such as delays opening Fleet, FSDaemon getting bogged down and consuming 100% CPU, and difficulty opening new workspaces. behaved better on macOS.
Fleet seems to spend a lot of time updating indexes. We also get errors on common tasks like initializing a Git repository or recognizing a Git repository that has already been initialized. It lacks some key features, including the ability to expand the fleet with add-ons. Language support is currently Java, Kotlin, Python, Go, JavaScript, Rust and JSON, with PHP, C++, C# and HTML announced as "coming soon".
- All your databases belong to us: AWS wants all data silos on its platform
- Can rust save the planet? why and why not
- All JetBrains Changes: Remote Development Now, New IDE in Preview
- New Relic breaks down CodeStream to help developers move directly from app error telemetry to offending code
Expect rough edges with an early preview, and on the bright side, the minimalist design is perfect for developers who want to focus on their code. Designing an IDE from scratch for remote development makes sense given the interest in this way of working. JetBrains said it has advantages in terms of security, as well as simplifying the configuration of developers' computers.
The company will be able to reuse much of the work done for IntelliJ, such as the language servers (which support code completion, debugging, and more) and refactorings.
There seem to be many parallels with VS Code, although there are significant differences. VS Code can be browser-based, for example, while Fleet always relies on a local app install and is written in Kotlin, not JavaScript.
However, in a way, Fleet shows the impact of VS Code. It looks like a smart code editor, although it has the power of a full IDE, and that's a good thing. ®