Category: Reviews

  • Zed That Again, Please: An Offensively Subjective and Brief Look at “The editor for what’s next”

    Zed That Again, Please: An Offensively Subjective and Brief Look at “The editor for what’s next”

    IDEs, Integrated Development Environments, or simply code editors, are where web developers like me spend most of their time staring at. And in an industry where developers go to war and religiously fight tooth and nail over which JavaScript framework or bundler is the best, IDEs themselves aren’t excluded.

    Until all these AI editors like Cline and Cursor came out (fuck them), the war was basically between two products: WebStorm and Visual Studio Code. I’ve always been a loyal fan of JetBrains’ products, the company that produces IDEs like WebStorm, PyCharm, and other specialized IDEs for all operating systems. But then I stumbled upon a tiny code editor that—as you will see soon—I refuse to call an IDE, but a brilliant code editor: Zed.

    Introducing: Zed

    It’s not hard to find favorable words for Zed. It’s blazingly fast, it supports all operating systems, it’s free, it comes with AI support, including free ones. It’s open-source, it receives updates almost on a daily basis, and available themes are plentiful. The makers of Zed itself sell their code editor more by being yet another editor with AI and LLM capabilities, which definitely doesn’t do the product justice:

    Zed is a next-generation code editor designed for high-performance collaboration with humans and AI.

    A feature that surprised me a lot was that it’s collaborative. You can create channels with your teammates to chat, to share your screens, or to simultaneously work on a product. A feature that even my beloved JetBrains “Code-with-Me” plugin struggles with from time to time.

    You can also connect to a project on your server via SSH. I do this all the time if I make small changes to projects that aren’t controlled via Git, and it’s amazing.

    Remember Sublime? Well, just like with Sublime, Zed allows you to edit in a not-so-user-friendly but effective way by editing its settings.json. Luckily, most values do have autocomplete, so you know what options can go in what value.

    And what if something’s unclear or doesn’t work? Zed’s documentation is a prime example of how important documentations are. And if you’re really out of luck, well, then join Zed’s Discord server, and even the developers themselves answer your questions in mere minutes.

    A (Slightly) Deeper Look

    Let’s dive a little deeper into this small but feature-rich editor. Since I’m too lazy to reset all of my configurations and factory-reset the editor only for this piece, this is how it looks once you’ve downloaded it:

    Pretty minimalistic, huh? That’s what I thought, too. The only thing I did was change the theme (and it has a lot of them). The tiny buttons all around the editor are actually the major buttons, so don’t mistake them for irrelevant stuff.

    I’m not going to explain every single button, but to point something out, I need to highlight the two star-like buttons on the right side, at the top and at the bottom. The top one is the “Inline Assistant.” If you’ve some experience with AI editors, this doesn’t need further explanation: It opens a narrow input window wherever your cursor is and lets you enter a prompt. This is useful when you’re in the middle of a function, for example, and want to change what the function returns, or something like that. You can then highlight the function, or only the section, enter your prompt.

    You can change your AI model, go through your prompt history, and do a few other things whose meaning I haven’t figured out yet.

    But since it is a prompt, you can also use it as a general prompt. Create an empty file and say: “Create an HTML file.” It’ll precisely do that, depending on your model, whether thorough or not, and then you have a base HTML file. You can also go a step further and give it a real prompt:

    Create an HTML file in dark mode for my elephant sanctuary website.

    It then shows you the preview of what it would add if you clicked the blue checkmark on the right side of the prompt window. Or you say “fuck it” and ESC your way out of it or click the opposing “X”.

    By the way, this prompt I wrote, I’ve just come up with this as I’m writing. So, I’m curious what the result will be. One prompt, slightly detailed, and that’s it. I left the LLM at GPT-4.1 because it’s fast and relatively good for not-too-complex tasks.

    Let’s give it a try.

    The prompt:

    The LLM changes:

    The end result:

    View it yourself on this link…

    It did exactly what I’ve asked for, but, of course, it filled out the gaps itself (what’s the layout’s form? What image do you want to use for the hero section? …) In my opinion, this is quite a lot for the tiny prompt I gave. But the credits go more to the LLM than Zed itself, since it’s the model that does the code.

    The star-like button on the bottom is more or less the same. It just takes into account the entire file, and not just a selected portion. Entering the same prompt with an empty .html document yields the same outcome, so I spare you with that.

    The other buttons: figure it out yourself! They’re mostly self-explanatory anyway.

    What’s the Beef?

    So, at this point, you might—quite rightly—ask: “Hey, Kolja, what’s the beef here?” The beef is in its speed (written in Rust); no other code editor launches this fast. It’s the fact that you have almost complete freedom in how this editor works. And it comes with mostly every utility a heavy IDE would come with, at least the ones that people actively use (who uses a “JS debugger” anyway? It’s console.log(), for fucks sake!).

    It has a little flavor of Visual Studio Code, which I won’t touch with a ten-foot pole because it feels as if I’m developing in a web browser, but only a bit, and depending on one of the many themes you can download (I use “JetBrains Fleet”) The focus here is what I always love about apps: minimalism.

    When AI Becomes as Annoying as Fruit Flies

    Minimalism. That’s not entirely what Zed sells itself with. On their homepage, it describes Zed as follows:

    Zed is a next-generation code editor designed for high-performance collaboration with humans and AI.

    I’ve no idea what “next-generation” means in terms of features, but “designed for high-performance collaboration” and “AI” is something I do understand. And therein lies a little bit of the problem.

    I lost count of how many AI-centric IDEs and code editors are being released every month. Some turn out to be simply a fork of another editor, while others are fanatic “Cline” or “Cursor” (which is currently pissing off customers left and right with their new pricing policy) fans. Nothing can sway them away from these tools.

    I find this problematic, but this has more to do with my personal view of AI-assisted coding than Zed itself. Just so much: AI, in my personal opinion, is an amazing tool that can help you figure out problems, debug unreadable error messages, tell you where you fucked up and a lot more.

    Did you notice? I said “tool”. Most people want an editor that does everything for them. When the output isn’t exactly as they want it to be, they’ll bombard it with prompts until it’s right. This is called “vibe coding,” a term that, for some reason, pisses me off.

    The period of the Industrial Revolution witnessed a quantum leap in industrial production. New sources of energy and power, especially coal and steam, replaced wind and water to create labor-saving machines that dramatically decreased the use of human and animal labor.

    This is a quote from a book called “The Industrial Revolution and Its Impact on European Society” 1 (emphasis added by me), and the meaning is clear: people looked for tools to help them with the stuff they didn’t want to do. These days, AI takes over everything. Where’s the fun in that? Where’s this proud feeling that you get when you figure out something on your own, and then it fucking works! How do I discover a totally unrelated programming language or technology that I’ve never been aware of before?

    AI editors turn the Industrial Revolution ad absurdum; they flipped it around. Instead of doing the boring tasks, it now does more or less everything, including the parts that are fun and, from a technical point of view, better suited to be done by a human (think security).

    Zed, unfortunately, jumped on the hype train of Cursor and so on, and focuses too much on AI, which is somewhat of a turn-off for me. It gets surreal when you open the editor to write plain text, and once a few lines have been written, it offers you words that you’ve written before, which make no sense in the sentence you’re writing. Writing-autocomplete, what the fuck? I didn’t ask for that much AI intrusion.

    So I find myself sometimes purposefully disabling the AI features, or simply not using them. I know it takes longer, I know there might be bugs in there. But:

    Zed That Again, Please: An Offensively Subjective and Brief Look at "The editor for what's next" — 2
    Image #1 for “zed that again, please: an offensively subjective and brief look at “the editor for what’s next””

    What I Used Zed Mostly For

    “So, Kolja, what did you use Zed for, then?” you may ask. And I can tell you: I use it as a default opener for all file types that aren’t connected directly to an app I’ve chosen. I use it to quickly jot down some information. I use it to paste old code in there in case some AI fucks my working code all up. Sure, every now and then I use a bit of the AI features, like filling up a long array or objects, or giving every HTML element some attribute. You know, things that are just tedious and not fun.

    Conclusion

    In the end, I’ve decided on a clear division of labor on my workstation. Programming in its respective JetBrains IDE (WebStorm, PhpStorm, PyCharm, …), and everything else Zed. It includes .txt, .sh files, .json, weird macOS-only .plist files, or when I’m not even sure what is in them (think dot-files like .config). To me, this makes the most sense. And if I need AI: Yeah, tell me one IDE that doesn’t have GitHub Copilot or its own proprietary LLM.

    Of course, for writing, I still use my one-and-only Markdown editor, Typora, which I’ve mentioned in my “What’s in my /Applications” before. And .pdf or .mp4 files are, obviously, also a no-go. But if I need to quickly jot down an email address while I’m on an audio call, Zed’s super-sonic launch speed will be the first app I click.

    You won, Zed. Almost.

    Footnotes

    1. The Industrial Revolution and Its Impact on European Society“, p. 582, first paragraph ↩︎
  • I Tried Chrome-based web browser Thorium for 1 week—and it sucks

    I Tried Chrome-based web browser Thorium for 1 week—and it sucks

    What’s the purpose of Safari (macOS) or Edge (Windows)? To download Google Chrome. This joke has been around for a while, but despite being a joke, it’s kind of true. My statistics collected with Simple Analytics (I recently wrote an extensive review about it) always show Google Chrome on top, usually followed by either Firefox or Safari.

    In the case of this blog, the #2 browser was Microsoft Edge, which, as you may know, is based on the same engine Google Chrome uses. Then I stumbled over a fork of Chrome, the open-source browser Thorium. A week later, I uninstalled it.

    (more…)