Exploring JetBrains Fleet: The Future of IDEs Unveiled
Written on
Chapter 1: Introduction to Fleet
Recently, JetBrains unveiled a preview version of their innovative IDE, Fleet. As a devoted user of JetBrains products, I've eagerly anticipated this release. Historically, JetBrains tools have outperformed their rivals, albeit at a premium price, which is often justified by their capabilities.
For developers, the IDE is a critical tool, as it's where we invest a significant portion of our time. Personally, as a frequent Go developer, I found GoLand to be an exceptional editor. However, despite having a license through my employer, I struggle with its outdated and cluttered interface.
Fleet has piqued my interest; it promises the robust power of IntelliJ products combined with a modern user interface. The potential for a better experience is enticing. Although still in its beta phase, Fleet has recently become available for public preview, allowing users to download and explore it for free.
To install Fleet, you’ll need the JetBrains Toolbox application. Upon launching Toolbox, Fleet is prominently featured at the top for easy access. In this article, we will delve into Fleet using a Go codebase, which you can find on my GitHub. Alternatively, if you prefer a visual guide, check out my accompanying YouTube video.
Chapter 2: Getting Started with Fleet
Upon opening Fleet, we are greeted by a workspace selection screen showcasing supported connection types. Fleet simplifies the process of working with local files, Spaces, Docker, or SSH connections to remote servers, a feature I’ve found lacking in VS Code without additional extensions.
For demonstration, I’ll clone a WebSocket API repository from GitHub. This process is straightforward, requiring only the repository URL and local storage location.
Once the clone is complete, Fleet presents the files in a sidebar, reminiscent of VSCode's layout. An intriguing aspect is Fleet's prompt to enable Smart Mode, which analyzes the workspace's codebase to activate features like syntax highlighting, autocompletion, and error detection. While these features are essential, having to enable them manually seems odd.
After activating Smart Mode, the code displays syntax highlighting, enhancing readability. I appreciate the usage highlights that indicate where a struct is referenced throughout the code, making navigation seamless.
One standout feature is Fleet's GoTo search functionality, which enables free text searches across the codebase. Accessing this feature is simple; just press Ctrl+K to bring up the search menu, where you can locate declarations and references quickly.
Chapter 3: Exploring Code and Debugging
In my codebase, I created a RetentionMap struct for managing old passwords via a timer. To evaluate its functionality, I’m drafting a unit test within the otp_test.go file. As I type func TestOTP, Fleet suggests an aptly named unit test, TestRetentionMap_VerifyOTP, along with the appropriate function signature.
While writing the test, Fleet enhances the experience by providing context-sensitive suggestions for function names and parameters, a feature I find lacking in VS Code.
Once the unit test is ready, we can execute it in two modes: Run mode for standard execution and Debug mode for in-depth analysis with breakpoints. Fleet's interface allows for easy navigation between these modes, and the logs are displayed in a terminal at the bottom.
Upon encountering a permissions issue during debugging, I reported it to the Fleet team via YouTrack. After adjusting the permissions for the DLV binary, I was able to set breakpoints and inspect variables effectively. The debugging experience in Fleet is notably smooth, with the capability to view all goroutines at a glance, facilitating easier bug tracking.
Chapter 4: Source Control and Collaboration
Source control integration is vital for any IDE. In Fleet, modified files are highlighted in blue, and additions are marked with green lines. The Git tab provides a comprehensive view of changes, allowing for easy commits and branch creation.
Creating a new branch is intuitive; simply click on the branch name in the top menu. After committing changes, you can view the Git history visually, making it easy to track project evolution. Synchronizing changes with GitHub is straightforward, requiring only a token for first-time users.
A notable feature of Fleet is its built-in collaboration capabilities. Starting a collaboration session is as easy as copying a link to share with teammates. They can join your session and work simultaneously on different files, enhancing real-time collaboration.
Conclusion: The Future of Fleet
Overall, Fleet has impressed me, particularly in terms of its debugging capabilities, which appear smoother than those in VS Code. The built-in collaboration features hold significant potential for team projects. However, I’m hesitant to switch to Fleet full-time until it matures and more plugins become available.
Though I see many promising aspects, the design does feel reminiscent of VS Code, which raises questions about originality. Nevertheless, if Fleet can successfully blend a modern UI with the power of IntelliJ products, it may very well become a formidable contender in the IDE landscape.