Zas Editor
zeditor.app
zeditor.app
The text-storage data structure, syntax highlighting and search features are written in Rust, and the UI is written in Swift since we wanted to create a native macOS experience. The Swift and Rust code talk to each other using C FFI, and no, that doesn’t take away the safety features of both languages.
We’re using the Rope data structure for text representation, and the tree-sitter parser for syntax highlighting and some smart features like file outline, local renaming and symbol search. All other language features are powered by LSP servers (rust-analzyer and gopls).
I’d be happy to answer any questions under this comment or anywhere else in this thread.
I guess this would be possible for the VS Code market if you could get the same features in something like Tauri where you can dramatically improve the performance and binary size. But VS Code just has so many fantastic features and extensions now, and is still improving so much every month that I don't know if this will ever happen, would take an enormous talented team to catch up, and how do you do such a thing competing against a product that's completely free.
It isn't the kind of place where acting entitled because you didn't get your free lunch makes you look good. I think it would be a bit more dignified to be thankful when something is free (as in beer or otherwise), but respect that some things aren't. For exactly the same reasons most of us are here: to make a living.
I would like to say a bit more, but basically anything of value I could add to the discussion would start a flame war, so I'll have to abstain :(
Shipping native platform binaries is the only reliable way to ship high quality software. Specially in 2022 with all the garbage floating around in virtual machines and "electron" bloatware.
Also as a hint, before you try to re-implement 30 years of VIM bindings and end up with something where everybody misses something, there's a great C library that could be of help:
Glad to see stuff like this, it brings back memories.
> Any thoughts on how you made that decision?
The reason behind that is Zas Editor started out as a fork of Xi Editor! We're also using a fork of xi-rope, though we haven't made many changes to it.
If you would like to discuss this more, DM me at twitter @ZasEditor
[1]: https://raphlinus.github.io/xi/2020/06/27/xi-retrospective.h...
Pros:
- really fast
- clean, fresh, minimal UI
Cons:
- Maybe I did something wrong, but one thing I do almost every day is rename something. Right-click a function name (or press F2), pick a better name, done. Zas seems to only rename the occurrences in the current file vs. the declaration.
- The "Open file" suggestions are not great. If I search for a file `moo.go`, one of the first suggestions is `some/folder/moo/some/more/other.go` and then further down the list somewhere it shows `moo.go`
- CMD + click on a symbol should jump to the declaration (or usages)
EDIT: we use GoLand today. Functionality-wise it is great (also builtin TypeScript/JS support is a real plus) but it is slow and hungry.
If it is to stay macOS only, also a possible decision not everything needs to be cross platform, why bring Rust into the picture?
Integrating object code into Objective C or Swift is easy, commonplace, people do it all the time.
Rust can generate object code all day, you can insist on the C ABI anywhere you need to, and then you can bring in anything from cargo you want. CocoaPods is... not cargo.
If the target is to be platform specific, then reducing the amount of compiler toolchains, IDE/editor plugins, and language knowledge required across team members is a good thing.
If the purpose is to go cross platform, then it is another matter.
Then again this is a matter of opinion, feel free to disagree, I am not here to change your mind.
Saying all this to be helpful, not snarky or nitty. It's early days and some missing polish is to be expected on the marketing side. I absolutely love that I this exists and that there's another native choice alongside Sublime (which is decently ok for Rust), I'm super excited to see it grow and once I figure out how to upgrade my Mac Pro to OSX 11 then I'll be trying it out.
Congrats to the developer and I wish the team long success.
And auto-updater tells me that I have version 1.0 and there is a new version 1.0.0 . And if I try to update, there is an update error.
It is also a bit confusing if you buy it, because you go to download and can then decide to download for trial or purchase. If you purchase, you just get a screen with the key. But no download. It is not nessasary clear, that the trial is also the main download.
And after purchasing, there is no invoice.
It would be better to get it emailed or get some prompt to record it etc.
Did you consider using ANTLR instead of tree-sitter parser? Don't know too much about tree-sitter but is seems to be a batteries included approach to building parsers?
Can you say more about this choice?
We’re going to add a privacy policy in the website. We haven’t already done that because we didn’t really expect this much attention within hours of releasing. Honestly, we were expecting few downloads and more technical feedback.
https://ec.europa.eu/info/law/law-topic/data-protection/refo...
Tangential: Are you the only developer on this? How long did it take from first line of code to current state? This sees like a monumental effort, so curious.
> How long did it take from first line of code to current state?
It started out as a part-time side project and after a while I started working full time on it. So, I’m not sure I can give an accurate answer to your question. The first commit was made in August 2020
There is IntelliJ and Visual Studio. IntelliJ is successful, yes, but they have a long history, and the editor is really good. Visual Studio is maybe also successful but I'm not sure how profitable it really was or is.
But otherwise? Sublime Text and others were maybe successful at some point but not sure how profitable they really were. If you count the amount of development which went into it vs the revenue.
For me as a user, I'm extremely hesitant to use any non-open source editor. An editor is a long-term investment. I would not touch this Zas editor unless maybe in 5 to 10 years when it is widely used by many people or when it has become open source but otherwise not. Yes, it looks nice from a first glance but that is by far not enough.
My personal only exception is IntelliJ because it is so good. PyCharm specifically, although I have used other IntelliJ products in the past, starting with the original Java editor, 15 years ago or so, which was heavily praised by some friends.
But otherwise, I want to be able to extend the editor easily, also its core itself. I want to be able to support it when the original developer stopped working on it. Or port it to other systems the developer does not care about. Or do some changes the developer disagrees with. Etc. I want to be sure that it is in principle possible to run this in the next 10-20 years. Or not only me. The nice thing with open source is that many people think likewise, and then there will also be others doing such effort, like supporting it on recent systems, adding features, fixing bugs, etc. So then it is a community effort.
Edit: As a sibling comment pointed out it does actually do paid upgrades after a year so ignore my comment.
The adobe suite is bloated, slow, overly complex... There is a very strong niche for a suite or single tools that have better design, performance, integration and UX.
Jetbrains dev tools are highly praised just on their own and they have a strong plugin ecosystem (see: Cursive for Clojure).
Also these kind of developer tools have to indirectly compete with highly extensible and well established open source alternatives such as Vim, Emacs, VSCode who all have their unique strengths and support tons of languages.
Still profitable enough to be larger than it's ever been, enough to fund new products like Sublime Merge and continue releasing updates. I'd argue any small business that provides a lively hood for at least one person is fairly successful.
My gut tells me there are a lot of people in this situation.
[Edit: since Go is my main language and I want to learn Rust, I will definitely be giving this a try!]
Most of the world's coders have probably not been born yet. Code tooling is still getting more valuable per hour spend on developing it. If IntelliJ was worth it in the past, so is potentially every tool from here on out.
Of course with web IDEs and AI coding, the whole space might still end up somewhere else entirely, requiring very different things, but alas, that's always a potential outcome.
As a regular person you can use Community for free within some limitations. (I think now that there is feature parity between Community an Pro)
If you work for a big company you need Pro or Enterprise sold as subscriptions for rather a lot of $$$. esp the Enterprise version.
The Enterprise version does have some great features that most devs. never get to use
But I long ago realized that a text editor was a massive long-term investment and after two editor companies abandoned me, I switched (back) to Vim and doubled down. Had I stuck with Vim in 1992, I could have saved a lot of time.
That said, today it’s Neovim, with IntelliJ kept around for its power and the fact that I often have to open client projects. And VSC for specific plugins that save time (e.g. inspecting SSL cert details b instantly.
Started with Vim, planned on eventually learning Emacs (still do), and then to whatever editor was "flavor of the month", including TextMate and Sublime Text.
Sublime Text was great in it's day, and i still hold a license for the latest version, but it is caught in a death spiral it seems. Whenever i check if it "does X", it turns out it maybe does, but VS Code has a much better plugin than ST ever did.
And so, after a couple of decades, i appear to have come full circle, and now mostly use Vim again, unless a task requires "specific tools", i.e. writing Azure Functions, which is much easier to handle in Visual Studio or VS Code.
But I realized I could get rid of a massive and ever changing NeoVim configuration mess. Using Emacs 29 though.
Not as good as neovim, but does a good job with the syntax highlighting...
But I must admit that my rust/LSP experience with Emacs doesn't hold 5 seconds in front of what I've just seen on the Zas website...
I've also gotten so used to vim keybinding support in almost everything I use (e.g. IntelliJ, VSCode, Obsidian) that I doubt I'd invest in anything without that.
It sounds like that's on the cards for Zas in future though, so looking forward to giving it another try then.
"It's paid!"
"It's not multi-platform!"
"It doesn't support my language!"
Dear Zas Editor creator:
Good on you for creating something that solves your problems and challenges you intellectually.
Good on you for putting yourself out there by making it public.
Good on you and for making your efforts sustainable by charging real money for it.
Good on you for taking the first step, and shipping before it's "perfect".
Good on you for taking feedback graciously.
The fact that this isn’t saddled with subscription pricing is a huge plus. I don’t even consider software I can’t own; $24.99 as a one-time payment with a year of updates is more than fair.
This isn’t really a downside of the licensing scheme itself, though. If it was DRM free and on the honor system, it would not have this drawback.
Of course, it’s currently unclear if a software development tool can remain relevant for many years after it is effectively unmaintained, so maybe this isn’t that interesting of a question.
That also takes out a lot of risk for bigger companies doing business with startups.
Considering not even terminals are safe from phoning home telemetry.
You guys are charging for this, how much telemetry is the app sending home?
Wish you guys all the luck.
However, would really love something native as I run so many windows of different projects at once in a regular day.
As much as I'm keen to see software like this, making an editor work as a business is hard, and Zas has a long road ahead of it.
However Apple could really use something like this. Xcode is big and bloated, with a ton of support for features that are no longer the future of Apple's platforms (Storyboards, Objective-C, SVN integration...). A clean start with a modern codebase designed for languages fairly similar to Swift, plus the shift towards Swift Package Manager for managing builds (rather than xcodebuild), could be great improvement.
But, with 30 years experience in software development, I won't even look into primary development tools that are not cross platform. I am mainly on Linux, often on Windows (usually because clients force me) and sometimes on Mac (for iOS development and cross platform testing). I want the same toolset no matter the hardware or OS.
Just came to the comments to say exactly the same. If I can't use a tool I'm supposed to use daily, on the three main platforms me (and others) are stuck with, then I can't justify to use it at all, unless it's forced on me (hello xcode et al).
Comparison is missing editors that would compete with this. VS Code is huge and slow, but somehow people use it and love the extensibility and broad support. Goland is just a beast that does so much more it's not even in the same league.
What would make sense in the comparison chart is something like ST3.
VSCode opens within about 2 seconds on my machine which for me is fast. For some users they want it to open even faster than that so something like vim makes sense.
Visual studio 2019 on the other hand takes about a minute to a large project and with resharper even longer.
When I think about a fast editor I think about opening a 2GB log file and looking for some text, or editing a multi-megabyte Markdown file with syntax highlighting on without any slowdown (something my NeoVim currently struggles with).
PS:
> macbook pro m1
People were able to run IDEs and code editors 20 years ago. My 5 year old MB Pro is struggling with VS code. Not anything smart either, just UI, syntax highlighting, ... So while "good enough for me" is absolutely valid position, VS Code is objectively slow.
These things are needed in order to get competitive imho:
- Plugin API
- Plugin Marketplace
- Proper LSP (you seem to have that already)
- DAP Support (you stated you are working on it. Good!)
- Out of the box support for go-templates, css, js and html.
You already have a very good foundation from what I see! Keep it up. I'll buy I license just to see where this is going :)
The answer is technically no, because I've used more than two languages in that time, more like 25 different dev environments I needed my editor to cater to. If you're only using one language, this is great. Everyone has better things to do than the meta-work of making a dev environment. For most people the dev environment is noise that gets them no closer to actually achieving something. Not having a plugin API means it's impossible to waste your time on that.
If this is a yearly subscription, and you can request features / improvements, then you should think of it as "I've got a guy (girl/etc) in Canada who handles my dev environment for me".
Unless, of course, you have it configured in Vim
† I'm still not sure what the difference between the two is, except that the Kakoune dev had to take a year-long break because of having a newborn child, and Helix development continued in that time.
But yes, there seem to be a momentum of rethinking editors and frustration with popularity of a slow and heavy editors.
If it doesn't, it's a sign of issues either with used libraries, programming language or tools.
Lately I've seen a few MacOS specific apps here on HN (another one was the terminal app ) and they all look really good UI wise: the general UI, popup/search dialogs, dropdown menus for command palette, file trees etc.
I would love to write apps that look and feel like this on other platforms (mainly Linux for me personally) but the toolkits don't seem to have that level of polish or even lack most of these controls/components. Gtk, Qt and Java Swing all have pretty simple controls and require a lot of customization or reinventing the same custom controls.
The closest I have gotten is with JavaFX but that does not seem officially supported/maintained anymore. Are there any other toolkits that aim to have this level of polish?
So if your language/ecosystem can't take advantage of those things (for instance not being traditionally text based), you have a huge cost before you can meaningfully demonstrate any superiority. To do that you probably need dozens of people working for several years, and I don't think the economics are there for it.
Is there any chance of supporting other languages? I'm asking because I'm one of the (probably few?) people who would be happy if Odin was added to the list of supported languages. (It should be easy to parse, even has library support for parsing and extracting docs).
Good luck! It looks like an amazing product.
The website now states:
> Can I use one license on two computers?
> Yes.
What great turn of events, thank you for reconsidering! You have my money. :)——-
Old post (now incorrect):
> Can I use one license on two computers?
> No. It sucks, but that is the only way to prevent abuse.
The editor looks great, but this sucks to the extent that this won't work for me at all, unfortunately. Parallels' old-school licensing theme meant I'm dropping them as well. This is not about the value of the product or the price itself, $25 seems more than fair if this meets my needs, regardless of open-source alternatives.I, and I suspect many others, develop on multiple computers, sometimes on a single day. If you worry about "enterprise abuse", perhaps consider a commercial license. Or add a higher priced tier that is per user, not per device. I think (i.e I don't actually know) there's a reason editors such as Sublime Text have per-user licenses (to be fair its price tag is also four times that of Zas Editor).
Are people actually abusing per-user, "honor" licenses that much nowadays? And here I'm thinking about difficult-to-verify customers who are willing to pay in the first place.
edit: We would appreciate if you could mention that your comment in case someones reads your's without reading this one.
However, there is no info about the team, company, etc. Even social accounts are brand new. To install a closed source binary with no provenance info is a bit harsh, the only way I could test would be on an offline spare Mac.
Is any data collected?
Given that it started out as a fork of xi-editor, I think you should consider switching to an open source + subscription business model: You may get a much larger userbase (as again you seem to have built a great product), you'd gain trust even if you prefer to remain anons, and you can bundle additional services (e.g. sync the configuration between multiple devices through iCloud can be a paid subscription-only service, additional themes, binding of Apple latest kits etc.).
With tiny bits of added value, many would be able to pay $20/y for convenience and you may end up with more revenue. Also, you may use the App Store to charge for the subscription, it is easier for many of us with payment info already in.
No open source and completely anonymous developers behind it.
Not having a clear decision made about how their DRM is supposed to work, and ask people to delete their posts regarding it...
Huge red flags here.
We’re going to add a privacy policy in the website. We haven’t already done that because we didn’t really expect this much attention within hours of releasing. We were expecting few downloads and more technical feedback.
Sorry about that, I posted it here only a minute after you posted it in r/rust and I didn't expect it to blow up!
If you look at the landscape of editors, it's pretty much split between FOSS or Paid and closed source. I wouldn't recommend this route; OP would simple end up supporting a bunch of people who would never pay for this app. Going FOSS for a code editor only makes sense if you are already working for a huge tech company.
We’re going to add a privacy policy in the website. We haven’t already done that because we didn’t really expect this much attention within hours of releasing. We were expecting few downloads and more technical feedback.
How does this work in the presence of syntax errors? 95% of the time you're writing code, your code is syntactically invalid, because you've started some new construct but not finished it yet, so you need syntax highlighting, code completion, etc to work sensibly in that situation. Getting that wrong is what killed RLS, IIRC.
i suspect it's tree sitter under the hood
It would be great to somehow display more things to navigate, possibly using more of the screen (especially if you're using a big external monitor), possibly with some visual of the dependencies between them (so that you're not trying to find things in a long linear list). Especially when you're browsing new code the dependencies would be very helpful to get a quicker understanding of the structure of the code, and for your own code they might also suggest ways to refactor/reorder code in the file.
I'll definitely try out this editor for the next couple of days, and maybe switch from VS code. I find the comments of the people saying that they won't pay for an editor quite strange. I would gladly pay $24.99 per year for a 1% productivity improvement.
This is simply bad user experience. A person who uses Windows may be confused but they can only be sure after reaching the bottom of the page. Not to mention it is not rare that a multi-platform application use Mac screenshots, including (surprisingly) VSCode, from time to time
I use VSCode, but it weirdly forgets how to tab-shift things over, and/or forgets how backspace works. (I just close/reopen and it's fine again.)
The screenshots suggest macOS use, but you can't be for sure as any program can be rendered like this on a mac.
Unfortunately, I don't have a Mac at the moment. Are there any other editors with such a feature, or is it unique to Zas?
> I can already tell I would be much more likely to refactor often with such a feature.
I’ve been working on Zas Editor in Zas editor for a while now, and can confirm the difference it makes
- Both VS Code and Jetbrains IDEs have issues handling large files
- Both have only good not great usability. Jetbrains IDEs are actually very good but the huge feature set is becoming a problem even if you don't use all the stuff
- Both have their problems with with code intelligence. Jetbrains IDEs are mostly flawless but esp. Webstorm lags heavily regarding the support of some JS frameworks, e.g. Svelte, Vue 3 SFC and Tailwind CSS. The support is also going downhill with Jetbrains.
The price of 25$ is a no brainer. Totally fine for a good product.
Mac only is very unfortunately a dealbreaker for me as Linux user.
- multifind
- find in all enums (declaration/structure-specific search)
- the “minimap”
Like another poster said, just the few niche functions alone would be a cool acquisition target for Apple. I’d love to see the best/unique parts of this make it into Xcode without having to maintain the rest of the wheels that have been reinvented here.
I guess you kinda have to reinvent all those wheels as a foundation upon which to build new unique features for a text editor though…
Would love for Xcode to have more language support. Maybe an lsp client.
This is clearly a very niche product, being Mac-only and targeted at Rust/Go devs. I wish you luck with it though, because the world definitely needs more people making and innovating code editors (even if they're not all for me).
Each feature description is accompanied by a picture/animation to demonstrate it.
I wish more product marketing pages followed this format, instead of the crappy soulless format of "hero unit" with marketing blob followed by three text boxes in a row with more marketing bullshit.
Can you please give an outlook in which direction you plan to go with Zas Editor in the future? Is the plan to target only a few specific programming languages, like currently Golang and Rust, or do you want to become a generic code editor like Visual Studio Code or Sublime Text and support a large number of languages and formats?
If this can get a good plugin ecosystem, it would fly.
Edit:
The trial should ideally be 1 month. It takes a while to put the editor through its paces.
Also support for running a command outside the editor (for example auto-formatting / linting) is essential
This feels similar in goal to LAPCE [1] which was also on HN [2] a couple of weeks ago, except that LAPCE is OSS and available for all platforms.
[1]: https://lapce.dev
Cries in Windows :(
The ordering of files and directories is a bit chaotic compared to VSCode. I get a "Go is not installed" popup every time I click a .go file which is weird since it's installed and available for the terminal opened in the editor. I would love more language support as well, Elixir would've been awesome.
Im sure vscode has more options than Zas. Personally i need: move last open tab to left, vi-mode and sequence keybindings with context. Other than that i need my settings/extensions to be synced across devices. Does Zas have these?
I'd check it myself, but it's mac only and im on Linux. There is no info if this will change or not. FAQ should give more info.
Other than that, i dont like editors that are language specific. I dont want to use a different editor for each language. It says it supports go & rust. But what if you are making a http server that serves some basic HTML files? It would be kinda annoying if it didnt support html/css/js indenting or syntax errors.
I would agree that vscode is kinda slow. Although it's fast enough for me. It seems faster than a couple of years ago. Still, i dont like my apps being written in electron. It's a waste of memory, CPU and electricity. So that's a win for Zas if they dont use electron.. What are they using? Would be nice to know.
I like the bussiness model. But it just cannot compete with vscode. I think could have. And it would have been the smart choice.
I found a typo on your /faq page: > Of course! You can try the for 1 week.
GUIs are so much better in Mac, it's not even close. What's stopping Microsoft from getting closer?
Yes, please. Give me this right now!
- Showing type of the variable when you hover. Goland does it perfectly. - Being able to add mouse actions to shortcuts. A use case would be cmd+mousewheel to increase/decrease font size - Importing themes from GoLand.
One more typo, under "Exceptional Performance": "It can to generate symbols [...]", the "to" should not be there.
1. Sublime Text
2. Jet Brains PHPStorm
3. Panic Nova
A quick Google search shows about a dozen others, plus at least ten free editors.
Is there any resource that allows me to compare these?
Curious, what is your rationale behind having a 7 day trial? The time a customers invests to dive into and get attached to your product seems like best predictor for a future sale.
-Ideavim (.vimrc support, custom mappings to editor actions)
-AceJump/EasyMotion
-Color scheme customization
You should put that in the FAQ, i still have an old mac that can’t upgrade
An editor that makes it easy to write more code can be counterproductive when the actual goal is to write less of it.
I am coding since 1986 and definitely don't share his opinion.
Not that I am against paid software, but the added value is bound to a single platform. It must provide a lot of 'functionality' and specifics to make it worthy. Especially is it is just an editor with the idea to become an IDE, which will likely impact performance over time. I am merely guessing here. But since performance is a major selling point, I wonder how this will be in the future. Note: I am NOT a mac user anymore. Still use sublime for time to time, but fully moved to VScode. If I look for speed or search functionality, I would use vi again. At the moment I care more about the presentation, refactoring and navigation. The extensions of vscode make this experience for me more powerful; remote ssh, marked mindmap, markdown rendering, etc plus it can run on a remote host and be accessible from a browser. Accessibility and the same experience across platforms are key to me.
Success with the editor. It does look promising! but not for me.
On top of that, you also get 1 year of free updates, and you get to keep using those new versions forever as well.
How is this a subscription?
Why should the developer work forever for you on a meager $25 payment?
Software is not a "good". If you bought "go ide" a year+ ago and your updates ran out, you can throw it away now.
> On top of that, you also get 1 year of free updates
They are not free, you subscribed to them by paying the subscription. What is free is the copy of the software after your subscription ends.
> How is this a subscription?
It's a subscription because the product you buy is supported for one year.
> Why should the developer work forever for you on a meager $25 payment?
This is irrelevant to the topic at hand.
FWIW, I think it's a good model, for both user and the developer, but I would not try to pretend it's not a subscription with a big bold text. Just avoid the word and all is good.
I don't have a problem with the model, I have a problem with LIES.
Even with this model, I'm already looking for jobs, because I don't get enough money for the 14-hour days I have to put in to keep up with hardware changes.
An editor is far easier to keep using after the 1-year period has ended, especially if it has support for plugins which should update for free.