Fleet — A quick look into Python development with JetBrain’s new IDE

Lukas Maier
5 min readOct 12, 2022

--

Today I looked into my JetBrain Toolbox to update my IDEs. What did I see? Fleet has arrived at a public preview!

I wasted no time, installed it immediately and had some fun with it. Let’s see what came out of it!

I like ANSII art. ;-)

For this article I created a small github repository called hi-jetbrains-fleet. It contains a simple Python project which prints some ASCII art. Based on this repository I created my first Fleet workspace which we will use to look at the features of this new IDE.

Startup

Let’s first look at the startup of the IDE. It takes me 4.33s to load the main application window, and further 2.55s to load the directory structure and the tabs with the code files. In total that’s 6.88s to load everything (not counting any indexing). That’s no world record, but given the amount of features in this IDE it’s pretty decent.

In comparison, PyCharm, the flagship Python IDE of JetBrains, takes 8.79s on my machine to boot. So Fleet is 1.28x faster. Given it’s completely new and advertised as a lightweight editor (too) this number could be better though.

Overview

Here’s a little screenshot of the overview.

An overview of the main contents of Fleet.

The base look is slick. I’m using the dark color scheme and its color palette looks modern but not futuristic. The code coloring provides a good overview too. I’m normally pretty picky with my color schemes, but I’m immediately happy with this one.

As usual in IDEs the code editor is in the center. Top-left there is the menu, some view options, the workspace selector as well as a git branch selector. Top-right there’s a run button, the search, notifications and the IDE settings. More interestingly there’s also the “Smart Mode On/Off” button. Smart Mode switches Fleet from a lightweight text editor to a fully-fledged IDE with IntelliSense and other advanced features enabled.

On the right and left as well as at the bottom there is space you can pin tools to. By default the most important tools (files, git and the history) are pinned to the left. You can pin other tools like Docker or Terminal too.

Coding

Like other JetBrains IDEs Fleet also ships with modern IntelliSense. On the first look it works as intended. As you type there are useful suggestions, which can also manually triggered via Ctrl + Space .

It also works properly for your own custom defined classes.

Custom class methods are suggested by the built-in IntelliSense.

Of course there are also other code/ing-related features like keyboard shortcuts, (for now limited) refactoring or others. I’ll examine these feature in more depth in a future article.

Run and Debug

Unfortunately, the run and debug configurations are where (my) troubles start.

The base principle is simple and reminds me a lot of VSCode: In arun.json file you declare your run and debug configurations. A simple configuration may look like this:

We have the configuration type “python” and the run name “main-configuration”. Then there’s my local python interpreter path (NICE: Fleet automatically replaced my home directory with $USER_HOME$ !) and the run arguments. Pretty simple.

However, even though my pythonInterpreterPath is 100% valid this only outputs a No such file or directory (os error 2) error message for me. That’s not even pretty useful, because I wouldn’t know whether the issue is the pythonInterpreterPath or arguments ! Furthermore, I tried a lot of different possible fixes (like adding a pipfile which should be recognized immediately), but nothing worked for me. The next issue this brings up is that there’s no valid Python interpreter if this doesn’t work, so not all IntelliSense features will work!

You can also add a Python interpreter from the code editor. To do so click onto “Python SDK” on the bottom right and add your interpreter. However, adding new interpreters only worked occasionally for me, even though my conda environments are perfectly valid! Furthermore, at the moment only the Python version is displayed in the Python SDK selections, not the environment names! This means your conda environments will get hard to distinguish if you use the same Python version across them.

Git integration

Here’s a feature I already like: the git integration. The interface is totally clean, super-intuitive and seems to provide all basic features for now.

An example of a git diff.

Upon clicking onto a file you directly get a side-by-side diff. Nice! However, it’s weird that all my files are marked as changed. They aren’t. Still, this feature looks cool already.

The history tool is similarly intuitive. It lists the git commits on your current branch along with the changed files. If you click on these files you get an instant diff. That’s not something new (except for a command line nerd like me), but still executed really well.

Conclusion

To me JetBrains Fleet looks like a promising addition to the “fleet” of IDEs out there (sorry for the pun :) ). I really like that the IDE differentiates between a light-weight mode and a “Smart Mode” with all features enabled. The overall look and feel is great. Also, the git integration is pretty neat.

Unfortunately I had severe issues with the run and debug configuration which took me quite some time. Also the git integration is not clean yet, with files being marked as changed that aren’t. However, I’m positive that JetBrains will fix these issues soon. Let’s all also consider this is a public preview.

Test setup

To make sure my insights properly documented here is my test setup:

  • Dell Latitude E5770 with Kubuntu 20.04, kernel 5.4.0–126-generic
  • Fleet 1.9.231

I hope you liked what you read! If you did, please support me by hitting that follow button and also feel free to leave me a clap! Also share with me in the comments your experience with Fleet, I’m hugely interested in it!

--

--

Lukas Maier

Signal Processing & Machine Learning Engineer in Audio | Everything with Guitar