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.
That's exactly the kinds of elitist bullshit that stinks up the HN comments so often. You have no information at all on the average income here; nor any idea on who all reads/writes on HN. The major difference with reddit is the entitled attitude, not skills/income/intelligence as so many assume.
HN is a circle jerk.
By labeling people as "elitist" when they point out that this leaves you somewhat wanting in the professional courtesy department you only make my point for me.
Try not to feel so entitled to other people's work.
> But for me, and, clearly, many here, either the Mac-only fact, or the non-free fact, mean that we’re simply not interested, and we’re only informed of these facts after many pages.
I'm really not sure what caused you to 'wax poetic' on the value of good software which I don't think anyone is disputing. But it's totally out of place and honestly quite patronizing.
I can tell myself that I run my software on a free OS, but I know full well that much (if not most) of the heavy lifting on Linux was paid for by companies. Even in cases where the company isn't explicitly credited (as has been the case in several companies I've worked for that had people getting paid to contribute to the Linux kernel).
I'm sure I have written more trivial things in the past 5-6 years that has no external dependencies paid for by companies. Of course, if you ignore that the compiler, standard library, most of the toolchain and the IDE I use to write that software is all being developed by companies.
I bet that if you really were to look at what's between the pixels on your screen and the CPU, you'd probably find that most of the software you think of as written by individuals for free, results in code paths that spend a lot of time in code that was developed on some company's dime.
I'm also interested in what you mean by "most corporations take way more than they give back". Do you mean that monetizing free software is taking something away from free software?
As a thought experiment: imagine that no for-profit company were to use open source software at all. Do you see where I'm going? You do understand that there is a symbiotic relationship here, right?
I hope SerenityOS takes off. It's looking good so far.
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 :(
That's not the case at all. The problem is that, much like shipping native apps, supporting a second graphics API for Mac/Linux is a pain in the ass, so nobody does it. On MacOS, OpenGL is too slow for most modern titles and Metal is too high-level and doesn't have good language bindings. Same goes for why games run better on Linux than they do on MacOS; translating DirectX to Metal is simply too slow, even for the highest-end GPUs that Apple ships. An M1 Max will struggle to get 1050Ti-tier performance when running games through MoltenVK, and doing the same thing through OpenGL certainly doesn't improve the situation.
In other words, you're assuming that people don't build for your platform because they're "bad."
Why so cynical?
I can understand disappointment around great apps that don’t ever cross the platform threshold, totally, but I’ve never thought of that as terrible, or that the developers themselves are bad. This attitude of “you don’t like what I like so you’re just wasting my time” is super strange.
I think it's a good thing that there are people who want to work to satisfy the desires of your niche as well as mine, so we can both be happy and productive.
For minimal compromise, you'd write it in Rust/C/C++ with a GUI toolkit that leverages the native stylesheet to render everything out. It'll be fast, it will run cross-platform, and it will take forever to build. However, this is the """right""" way to do it, and the one that people will complain least about. There's a number of tools that are distributed this way, but again, it's a pain.
For medium compromise, you'd probably end up with a runtime like Java or dotnet. These runtimes have well-established, long-running GUI projects that seek to tackle this exact issue, and for most people they balance ease of development, speed and "good enough" UI. It's not perfect, but a lot of one-man dev teams will end up choosing this when they want to get on every platform with a native-enough UI.
For maximum compromise, you can ship Electron with JS bindings to a native UI. This sucks. Please don't do this. It's an option though, and I'd be remiss if I didn't mention it. It's barely better than just putting a website in a desktop runtime, and if you aren't careful you can end up making it a whole lot worse.
It's definitely possible to do, though. If you want to charge money for your application, I should hope you're building a minimal-compromise program.
(But VSCode's search functionality is annoying! Here Zas looks lovely ... But, Mac, so, no)
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.
Electron isn't the only game in the house.
I was replying about the "binaries" part. Binaries are always paltform specific.
The "only" part of "platform-only" - I can sympathize with. There are some tools I would like to try but I can't because they are windows only.
That said, it doesn't to me like any of the librarires/tools mentioned are good enough.
Qt is in C++ but from what I've heard its performance is abysmal - at least it's not good enough to justify writing something in Qt instead of html/js/css.
Xamarin I had to use one time and as far as I'm concerned, the DX is bad and the end result is also bad. Again, not good enough to justify using it instead of html/js/css.
Though to be honest it's been more than 5 years since I tried, so things might have changed since then ... but I really doubt it.
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:
Both are perfectly valid, but they are going to appeal to different kinds of people, with different priorities.
I have all the goodies and features of the full IDE with the keybindings and modal editing muscle memory I've built up over the last 15 years.
Technically I can get Vim to do most of what JetBrains does but that's a very very big hill to climb.
* Believe it or not, there are things no vim plugin can do, for example rendering mardown, which Viscose has lots of plugins for that work well
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.
Realistically speaking, Linux (and Rust) UI is sufficiently incoherent at this point (heh shakes head "year of the desktop" for 3 decades at this point huh) I honestly don't think anything except "here's the code" would work because of the huge amount of keeping-up (unfortunately :/) necessary at this point.
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.
In this case, they can use a fast Rust backend for multiple platforms (or just one) and then use Swift to make a nice, native front-end for MacOS and other native UI languages for other platforms if they wish.
They also know Rust so if they want to use Rust, what's the problem in using it? They don't seem to have any problem with building a UI on top, it's built and looks/works fine.
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?
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.