Hacker News new | ask | show | jobs
by lholden 1267 days ago
I love seeing new editors come up. Always curious to see what people have planned for them. With that said... I do have to say that the landing page for this was a turn off for me.

Digging through the landing page, the focus seems to be on how to support it and there just isn't enough time spent talking about why this project is cool or worth supporting.

From what I can gleam from the page this seems to have a GPU backed renderer and have fast startup times. It seems intended for C++ but doesn't really talk about C++ specific features. (Ex, CMake integration, integration with doctest/catch/etc).

The one C++ specific thing it mentions is "full C++ parser for syntax highlighting, autocomplete, goto-definition, find references and a lot more". Does this support C++20? Is it using it's own engine for this or is integrating with clang or something similar. What is this doing that all of the other editors with C++ syntax support don't have?

I consider CLion to be a "gold standard" for features and functionality as a editor/IDE for C++. The only thing it doesn't do for me is "be fast and light". I'm also a long time VIM user and I generally default to VIM when I want something "fast and light".

If there was an editor/ide that had many of the features of CLion and the speed of VIM, I would certainly consider that to be "10x".

3 comments

This is one of my biggest gripes with a lot of open source [edit: and also non-open source] projects. It's sort of baffling to me when I come across a project that the maintainers clearly want to be used, but there's no clear and concise explanation of what the project is, why you'd want to use it, and how it compares with major alternatives.
Do note that this project isn't open source: for something like an editor, this is a bit of a negative for me since it significantly reduces how it can be customized if need be.
Oops. Thanks for the correction. I only lightly skimmed the project page, so I think the "Support 10x Development" header made me assume it was an open source project asking for donations.

That said, I'm not really sure why I specified "open source" since my gripe definitely goes for any software project, and probably doubly so for commercial ones, since those actually need a literal sales pitch to convince potential users of their value proposition.

Point taken. I'm currently working on a new website and I'll try and I'll try and address these issues.

It's simply down to time, I spend most of my time working on making 10x better. Because it's still in Beta I haven't focused on the website much.

Agree. Imagine the free publicity of hitting HN front page.

I've closed countless of them because they don't get to the point once I'm there.

I'm doom scrolling on HN. I click interesting links. I'm not (usually) going to waste 5 minutes on your project just to figure out what it is exactly.

Agreed. I've seen too many README files that summarize the changes in the latest release without explaining what the project is or what it's for. (I don't have a specific example, which might imply that the problem isn't as bad as I remember it being.)
Or you only remember READMEs which stuck with you, the rest fell off the grid.

I can’t even estimate how many hundreds of landing pages I’ve closed without getting what they are about, but cannot remember a single one except $subj^W^W (edit: this one is actually not that bad at a second glance).

The only one that's stuck with me is https://github.com/microsoft/pyright, mainly because I thought it was strange that Microsoft would publish something such a lackluster README. It's not the worst ever, but it lacks a clear sales pitch and a concise explanation of why you'd use it instead of mypy. If you go in without that added context, it's kind of mystifying why it even exists or why you'd use it compared with the alternatives.
That's not quite the kind of thing I'm referring to. The first full sentence of the README tells you what it is: "Pyright is a fast type checker meant for large Python source bases."

I'm referring to READMEs that provide no useful information unless you've already been using previous versions of the product (information that should probably go into a file named something like "Changes").

(And again, I don't have a good example.)

Please don't judge the website too harshly. I agree it doesn't communicate what 10x is very well and isn't very professional. I'm currently working on an update that I'll be uploading in the next day or two. I wasn't quite ready for a big announce yet, but I'm pleased more people are discovering 10x.

> If there was an editor/ide that had many of the features of CLion and the speed of VIM, I would certainly consider that to be "10x".

This is exactly what 10x is meant to be. Whether it has enough features yet is up to you to judge. Everyone needs a different set of features, but if it has the features you need then I hope it lives up to its name.

I've written the parser myself, but I haven't been keeping track of exactly what version of C++ is supported. The C++ spec is incredibly complex. Over the last 6 years I've been adding things as they are requested. The good thing about the parser is that it will skip anything it doesn't understand and continue on. This sounds bad, but it actually works out very well. It will do a pretty good job of most things you throw at it. The best thing is to try it and see. If you need specific support for something, let me know and I'll see what I can do.

How does your custom parser implementation compares to something like Treesitter (which AFAIK is designed around the same goals of incremental parsing)?

Is the extra flexibility of having everything be custom worth it?

I've not used Treesitter so I couldn't say.

The incremental parsing is definitely worth it. Not having to wait for a full parse of the entire file on each edit is a game changer.

Oh, I was more asking about the (potential) advantage of not using Treesitter.

I’ve used the incremental parsing from Treesitter in Neovim (though not on any absolutely massive codebases) and found it to be great (when it worked). But I suspect this is immaturity in the ecosystem (one of the Neovim implementation, the parser definition or Treesitter itself).

As I say, I haven't used Treesitter so I can't say, but in my experience most options do not perform well on huge codebases (> 5 million loc)
I would consider not writing the parser yourself. it's a daunting task and you're not going to be able to keep up with all the intricacies while still maintaining the editor.
Hello Stewart, I think the only addition I would want to the website is an about page with a few paragraphs to explain your motivation and goals. Without that entry point, I was clicking through, feeling like 10x was something I might be interested in but not really sure what it was.
Yes it is using its own parsing engine. The developer is prioritizing the most common language features but also constantly working on adding more edge cases as people run into them. The parser is designed to do a sensible thing in all cases, so while occasionally it may not get it perfectly right (yet), that doesn't break the parser completely.

What this custom solution is doing that others don't is simply that it is incredibly fast. You really need to try it to fully appreciate this though, especially on large codebases it makes a significant difference. Not just because it never lags or stalls while working, but also because it makes it much less painful to work with those codebases if you can instantly find and jump to anything.

The speed and simplicity is the main selling point, but unlike other lightweight editors it doesn't achieve this simply by being "less". From my perspective the main selling point is that it is a lightweight and performant editor that can actually replace Visual Studio + VAX / JetBrains for game developers (especially Unreal Engine projects and comparably large codebases). For that use case there just isn't anything comparable on the market right now.

Whether it is equally useful in other scenarios already (especially if you are happy with your current setup) I can't really judge, and I would agree that the website could do a much better job selling it. The developer is still updating the website often, but his priority is working on the actual app of course and he is doing everything by himself from what I can tell.

In a nutshell, right now I would say that 10x is mainly a great choice for game developers. But that's only because that is where its strengths are most unique right now, not because it is intended to be only that. It still isn't even fully released yet, and I think it has a lot of potential to be much more than "just" a performant editor for game developers.