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".
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.
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").
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?
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).
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.
As a C++ developer, I don't really see how it is going to compete against VS Code + LSP, Visual Studio, or even CLion.
From my experience, if you work on C++ codebase large enough that indexing it is a problem, compiling and linking it is a problem of the same order. And as you need beefy hardware to compile and link your code anyway, you can reuse the same hardware for indexing and editing.
Sure, VS Code + LSP may be dog slow on a typical "power consumption-optimized crappy business laptop" like T-series or X-series ThinkPads, but on such hardware, even if I had fast code editor, it'd be a pain to develop due to very long compile times anyway. And on a 12c20t workstation with 64 gigs of RAM any editor works like a charm. Yes, `clangd` eats 20 threads and 20 gigs of RAM for indexing, but go to definition works instantly, and I don't really care about hardware resources.
Then, parsing C++ properly is really hard. Even JetBrains had to admit it as they've integrated clang++ frontend into the CLion. I don't believe that one person can create both a good code editor and a fully compliant C++ parser. Maybe they piggyback on EDG or clang++ frontends, but from their website it seems that everything is written from scratch.
Another problem I see is that very few of large codebases are C++-only. Usually it's some C++, some Python (or Perl, if the code is old enough) scripts, maybe some Java interop code, few Go tools, with a bit of Lua on top. And a lot of make/CMake/whatever build system files. "Big" IDEs and editors either support all of that from the box or have plugins to fill the gaps. I don't know if the paid-only closed-source product can gain traction big enough to have a vibrant plugin community.
The way I see 10x competing is by general speed and responsiveness, and the robustness of the parser. The parser may not be fully C++ compliant, but it is dependable and scales well.
I don't want to be specific here, but my experiences with some other IDEs is that they can stall, lock up and operations can take seconds to complete regardless of the hardware. All this can break the flow. I think you really have to try 10x on a large project to notice the difference. The instance search feature alone can be a game changer.
> I don't believe that one person can create both a good code editor and a fully compliant C++ parser
Believe me, I question this myself almost every day. A small hobby project turned into a 6 year marathon and here we are. The parser will probably never be fully compliant, but hopefully it's good enough for most code. And the speed and robustness will hopefully compensate for this.
> Another problem I see is that very few of large codebases are C++ only
Even though I market 10x as a C++ editor, it has syntax highlighting for many other languages. And you can add more languages using the regex system. I'll hopefully be adding some parsing for other languages after the 1.0 launch.
VS Code was pretty appealing to me at the start, but the project overall has experienced the typical degradation such that it provides cause to consider alternatives again even if it would be possible to return to older versions of it.
Didn't see a feature list anywhere and even after pulling up a few of your livestreams couldn't find an example of you typing anything in it, so not sure if it has autocomplete or intellisense-like support for definitions or documentation.
Will keep an eye on 10x. Your other matured projects look interesting too, so nice work. :)
I have a PC with 48GB of RAM, RTX 2080, Intel i7-9700K, and Visual Studio still lags a lot of the time for me. Also, Visual Studio doesn't support renaming by reference out of the box. You can install ReSharper, but then it slows things down even more.
> As a C++ developer, I don't really see how it is going to compete against VS Code + LSP, Visual Studio, or even CLion.
If it's fast and supports these basic features that literally every other language already supports, then it's already beating Visual Studio. I haven't used CLion so I can't comment there, and VSCode was a pain trying to set up, so if this supports integration with cmake and automatically configured everything, then that's a win in my book.
Edit: I also hate these doom and gloom comments that basically say "nobody can beat big Corp Microsoft, Google, etc. Why bother trying...". What purpose does this comment serve? I'm sure the author is much more aware of how difficult this problem is then the people who aren't even attempting to solve it. All the power to him and I hope he succeeds because some other editors/IDEs for C++ would be great.
> VSCode was a pain trying to set up, so if this supports integration with cmake and automatically configured everything, then that's a win in my book.
Not sure the last time you tried, but VS Code does support cmake (perhaps with extensions?).
> As a C++ developer, I don't really see how it is going to compete against VS Code + LSP, Visual Studio, or even CLion.
Easy, it's better than all of them!
If you're a C++ developer on Windows then I encourage you to simply try it. I run a 32c/64t threadripper so I also don't particularly care about hardware resources. My experience on a custom C++ codebase and Unreal Engine codebase is that 10x is faster and more reliable than VS Code, Visual Studio, and Rider. I haven't tried CLion as Rider is the JetBrains tool for UE.
I agree lack of support for other languages is a bummer. I'm hoping support will be added if the tool takes off. Maybe he ads LSP support, I dunno.
> parsing C++ properly is really hard
I'm genuinely blown away he wrote a custom parser that works. Unreal Engine is big and nasty and full of a kajillion macros. My experience thus far is that 10x handles it like a champ. Better than Visual Studio. And equal or better than Rider. Super super impressive.
They might want to mention that somewhere on the page. I spent time reading about it only to find out when I tried to download it that it doesn’t support my OS.
It's not going to compete successfully in a popularity contest with the tools mentioned, but it very well may compete successfully in its niche (faster, more reliable for particular situations etc.).
Since you seem to have experience with both VS Code + LSP and CLion, could you or anyone else say how these two stack up? Is CLion worth paying for compared to what's on offer from VS Code + LSP?
It depends on what you want. VScode is more flexible and has a better remote experience, supports less out of the box but has more support through plugins. Clion handles refactoring better in my experience, and works well for most cmake based projects out of the box. If you need a different test system or build system though it can take some extra work to get it going. I find it worth it for the refactoring alone TBH, but the loss of remote development makes it less comfortable for day-to-day use.
I've been using this fulltime for a few months so I can provide some perspective from real-world experience:
Firstly, on speed, I really recommend giving it a try. There's things like launch time / time to syntax highlighting which are nice to have and make it a joy to use but then there's things like instant 'Find References' and workspace search that I think contribute to a qualitative difference to the way I work - I simply would not use these features as much or in the same way if they took seconds (as they do in VS).
Seen some discussion comparing to things like Sublime - 10x understands c++ code much much better than sublime and that's crucial for making some of its best features like 'Rename' and 'Find references' work so well.
The other thing I think is worth mentioning is just how active and responsive the developer is. Bug-fixes and improvements often get implemented within hours of reporting. As an example, I've always been annoyed by how impossible it is to make VS do 'tabs for indentation, spaces for alignment' - after a brief discussion, this got sorted in 10x quickly. I think that's a serious advantage over Visual Studio, that often has annoying issues/bugs languishing for literally years.
I’m a heavy Visual Studio user (work for a AAA game dev, C++), and find VS without extensions horrible to use, but after Installing the ‘Visual Assist’ (which seems to be an industry standard in game dev at this point) extension it gives me all of the advantages you mentioned. Have you tried using this (admittedly paid for) extension?
What got me into 10x is actually how similar the default setup is to Visual Assist (including default shortcuts). And since it supports Visual Studio solutions, 10x will just work out of the box with any Unreal project or many other similar large C++ projects. You could even switch back and forth without a problem while evaluating 10x, which is what I did the first couple of months or so when I started using it. It has already come a long way since then though, and I've been using 10x exclusively for quite a few months now (full time working on an Unreal project and some personal side projects). The developer is a former game dev himself, so he understands our particular needs quite well and is very responsive to them. The fact that 10x can easily manage those kind of codebases is what really differentiates it from other "lightweight" text editors in my book. Building and debugging still goes through Visual Studio for VS projects (with good integration and no required setup), so switching causes no disruption.
Compared to Visual Assist it may not have all the bells and whistles yes, but especially the code navigation (which to me is the most important aspect) and code completion is quite advanced already and incredibly fast, even compared to Visual Assist. Parsing the entire UE4 codebase for the first time (in the background) takes a couple of minutes. Opening it from cache is practically instant, all search operations / code completion are also near instant with no stalls whatsoever. In terms of refactoring it is more limited, but renaming symbols works well and that covers about 99% of the cases were I regularly use refactoring tools anyway.
And unlike Visual Studio or JetBrains IDEs, 10x is so fast and lightweight that I would like to use it for all of my text editing needs. That makes customizing it much more satisfying as well, which is quite easy to do with a straightforward Python API.
As you can probably tell I really love this editor, it has had a quite dramatic impact on my enjoyment of work already. It won't be for everybody (and it doesn't try to), but I would encourage everybody to give it a try. If it is the kind of editor you are looking for, I think you will be very happy with it.
The thing I've struggled to achieve in VS is using spaces to align function arguments split across multiple lines to the open parenthesis in a file that uses tabs for regular indentation. I'd be pleased to find out I'm wrong though :)
Lots of comments from people here who haven’t tried the editor. I’ve been using it full time for about a month, so here are some assorted thoughts.
I don’t use vim or emacs. I probably never will. Sorry.
This editor is made for C++ game devs on Windows. If you are a C++ gamedev on Windows then it is likely the best editor in the market. An example of this is it has integrated Perforce support but not Git.
10x can open .sln files natively and invoke its builds. Very slick.
I’m pretty sure 10x is the best editor on market for Unreal Engine projects. It’s so much faster then Visual Studio or Rider.
It has a custom C++ parser. It’s the fastest and most reliable one I’ve come across. It blows my mind.
The solo dev is insanely responsive. I filed a bug on GitHub and he responded in literally one minute (I checked the time stamps). He sent me a custom debug build which I ran out o get info and had a crash fix published to the world in under 30 minutes. Stellar stuff.
The downsides:
it’s just a C++ editor for Windows and it does have bugs.
It’s not a debugger, just a text editor. I’ve been using RemedyBG which is good, but not as far along as 10x.
Support for additional languages is listed as a possibility for the future. I will keep using it happily for C++. If in the future it supported more languages to the same level of quality that would be awesome.
I wonder what the author thinks of Sublime Text. Fast everything (search, opening files, switching projects…) is a big part of Sublime’s value proposition, one that has so far survived the era of VSCode. And AFAIK it is written in C++, and can certainly be used to write C++.
I would definitely choose Sublime over this, only because Sublime isn't limited to/focused on a single language. However, if I were a paying CLion user, this editor might be a more compelling buy if it addresses some pain points, like performance.
but then again, Jetbrains is working on their own "polyglot" editor called Fleet, which is aiming to be much faster and more lightweight than their existing dinosaur IDEs.
Sublime Text on the other hand, I purchased a licence for ST3, I am still using it with ST4, and I am happy with it. I use ST for C++, PHP, Python, LaTeX (it's actually great for LaTeX, with inline equations) and web stuff. Also use it to explore Rust, go, dlang, edit huge SQL files, JSON files, etc.
I think at some point I will get a new ST licence.
With regard to 10x, I don't use Windows to program, and I will not reboot the computer just to test it, as good as it could be.
I've only tried sublime text briefly to be honest. I like its speed, but I need something that can open huge Visual Studio projects. I also wasn't sure about the C++ parsing which requires installing packages.
Just to be clear, 10x supports syntax highlighting for many languages, it's only the parser that is C++ specific.
Re-inventing the wheel is very common for IDE / editors, ofc this is already done by Sublime but I think in this crowded space it's all about perception, maybe Sublime missed the train and now you need a new "fresh" IDE to capture the audience.
I don't think they "missed the train", just VSCode is free, and there's not enough compelling reason to pay for Sublime now.
I was a Sublime user for quite a while, and switched to VSCode purely because it handled multiple cursors better. Ironically, multi-cursor support was my key reason for switching to Sublime from Notepad++. VSCode is slower, but not enough to actually impact my performance coding.
It's been quite a while, so I don't remember the specifics, though I'm pretty sure it had to do with the ability to move the cursors around using things like CTRL+Arrow, end, home, etc. Also believe the ability to highlight several lines and press Shift+Alt+I to add a cursor to each line without having to use the mouse wasn't possible in Sublime.
Since it's been a few years, it's totally possible Sublime has those now. But without a pressing reason to switch, I'll be sticking with what I use now.
> Also believe the ability to highlight several lines and press Shift+Alt+I to add a cursor to each line without having to use the mouse wasn't possible in Sublime.
It was always possible, I have used Sublime since version 2. Ctrl+Shift+L.
Seems the issue is they use different keyboard shortcuts and that's it.
How big is your project? With Visual Assist X and our solution it can take me upwards of 30 seconds before I can do anything after opening the project.
I would need to see a side-by-side comparison of 10x and vs code performing equivalent tasks in a large codebase before investing time and money in this tool.
Admirable goals, but doesn't keeping it limited to C++ keep the potential for backers limited? Whole-assing one thing is better than half-assing two I guess, but it's an interesting initial language. Is C++ tooling in particular that bad?
> Admirable goals, but doesn't keeping it limited to C++ keep the potential for backers limited?
Agreed, feels like the C++ support could be packaged into an LSP server to support other languages, and let other IDEs benefit from its completion, increasing the number of potential backers.
> Is C++ tooling in particular that bad?
Yes, at least when it comes to IDE support. Visual Studio on Windows gave me the best experience, but it's Windows so I don't use it. Xcode is so slow and unstable, it's a shame, it used to be great. CLion doesn't scale well with huge projects.
Ah, OK. I assumed it was just a matter of adding the right extension to VSCode or Sublime and you were off to the races. If this fills a gap that's great.
VSCode integrates with clangd for good jump-to-definition and auto-completion. The problem is VSCode, which is built on JavaScript/HTML, has become quite slow of late. The editor feels sluggish to respond to keypresses, especially in large files with lots of includes. It's always just on the edge of bearable.
In my case VSCode is very responsive, but the clang-based language server is pegging an entire CPU core parsing millions of C++ files in the project, causing it to not respond to editor requests.
It's all about the build system. Sublime has built-in support for a few, with more available as extensions. Auto-complete works out of the box using Sublime's own language-agnostic implementation, which obviously isn't perfect, but you can also install an LSP.
It's not that bad, but doing simple stuff like adding a library can be a huge pain because you have to know how compilers link programs internally to know how to fix the errors you're going to get.
C++ is one of the most popular languages in the world. It's a gigantic market and growing every year. The bigger problem is getting anyone to notice a new editor at all.
> The 10x philosophy: Every operation, from opening projects to searching for text should be instant.
You can get that with basic VIM and some grepping shortcuts. Maybe I'm just not working in sufficiently large code bases. But shouldn't a C++ specific editor have some philosophy that is specific to C++? Like awareness of ownership semantics for syntax / lint checks? Maybe not the best example, but "be fast" doesn't seem like a great differentiator.
I think at this point speed is a great differentiator.
I've been happy with the featureset and design of all C++ IDEs I've tried for a decade or so now, but they never seem to get any faster. An IDE designed specifically for speed, with an ongoing committment to keep it fast, solves the biggest issue I have with C++ coding right now.
I presume it means things like "does cross-file go-to-def and find-all-references work instantly after opening a file?" In most IDEs these things take seconds or minutes to become available, depending on project size
Like the idea and the vision but I'll admit I was initially turned off by the name which sounds really cringe. Went spelunking through the blog and found this line which explains the vision (which I like!):
The kind of professional developer I’m talking about will probably fall into one of two categories.
a: Someone who works on massive codebases
b: Someone who writes a lot of code.
I am targeting the small % of developers with very specific needs.
So he's targeting professional developers and not novice developers, in fact he explicitly says so later in the post.
Landing page is ok but why the animated swirling gif? Doesn't add much and draws my attention away.
Given all the idioms in C++, I don't think constraining the editor to one language is a bad idea *if* it caters to these unique constructs. E.g. I had a templated PImpl class [1] whose template parameter was the implementation. It was a pain to `grep` for the classes specializing it, especially when other classes extended this PImpl class (sometimes extending a specialization, sometimes not).
What instantly jumps at me is the fact that the software is subscription-based, with a monthly cost. Small, admittedly, if you're in the US, or maybe in Switzerland, and have a job (not a student, etc).
I'm more and more reluctant to admit any tools that are not open-source into my long-term stack. And a text editor is usually a very long-term commitment: you want to commit it to your muscle memory, and most of your daily development workflow hinges on the editor.
I thought the same thing at first (the website could be clearer). But it's actually a free beta. The subscription is there for people who want to help fund development and get priority support.
If you're wondering why Stewart doesn't appear to have done a video in 2 years, be sure to click the Live tab on his YouTube page, for the more recent stuff.
I really wish someone worked on something like this for C#.
There are large C# monoliths out there with 100+ projects per solution, where VS simply does not work (as in you can't open a solution), and Rider takes 30mins to load the solution, and then stops working over time (after 8 hours?), so your morning routine is to open the solution Rider and go grab a coffee.
I mean custom as in "I wrote it myself". It's not based on a slow and bloated UI framework. Hopefully it's fairly standard from a Windows point of view though.
To me that’s a turnoff, you might get an IDE where the speed is faster, but updates and fixes will be slow to come because the team could not get over NIH.
Yeah, whenever I see something like that, my first thought is, “Doesn’t work like other apps on your OS, so will be a pain to get used to, will have weird inconsistencies, and won’t integrate properly with OS features that come standard with all other apps you run.
I know.
In theory, custom UI doesn't necessarily mean to have such freedom to "change" what UI's rules of the OS has been established.
It should sound more like, I don't use your way of rendering stuff.
Been using it daily at work on a relatively large C++ codebase for a 20 year old native application, and it's really nice to have an IDE that starts instantly, indexes and searches quickly and integrates well with Visual Studio's sln. The performance is just beyond what normal IDEs end up with
This got me curious, so I gave it a try. It opens instantly (as always) and parsing the complete codebase in the background took about two minutes. After that everything is practically instant and there is no problem searching through the code, finding references, code completion, etc. Reopening the project is also instant and it takes less than ten seconds to fully load the cache in the background. Since I don't know the code I can't really comment on whether everything got parsed correctly, but the random bits I tried seemed to be right.
This doesn't seem to be worse than the Unreal codebase, which 10x also handles with ease. I highly doubt that there is a codebase in existence which could bring 10x to its knees. It does use quite a bit of memory, but nothing a modern setup shouldn't be able to handle. Currently it seems to be about 4GB for both Unreal and LO each, with LO being just slightly larger.
This of course are extreme cases, so you can imagine what performance for "normal" projects is like.
Nah just some early adopters who found this post because it was shared on the 10x Twitter and Discord after it made the HN homepage. I don't know why none of us had accounts before, it may have something to do with the particular niches most of us are from (game dev etc), where HN may not be as popular as you might expect.
I only signed up because I saw a lot more questions than people reporting their experiences with it, so I figured you would like to hear from people who actively use it (and why). Some of us then prodded Stewart (the dev) to also sign up so he could answer the more specific questions.
I might give it a shot, but outside of how long opening a solution takes (which I therefore try to do as little as possible), Visual Studio + Visual Assist is a pretty strong combo that seems to offer all the benefits of 10x - except startup time.
I gave it a shot on some real code, and (more or less as expected, but I was ready to be surprised) the custom parsing code does not handle templates and overloads well at all.
Example 1:
template<class T> void foo(T t) {}
struct X {};
void foo(X x) {}
template<class T>
int bar()
{
foo(T{});
}
Example 2:
template<class T> T getFoo(int); // (1)
struct X {};
template<> X getFoo(int) { return {}; };
X getFoo(int a) // (2)
{
return getFoo<X>(a); // (3)
}
In both cases, "Rename" only affects a quasi-random subset of the foo/getFoo occurrences, depending on which one you select for renaming. It roughly looks like "match every name to the most recent definition of a thing with that name", but things like "go to definition" on (2) going to (1), or on (3) going to (2) is just pretty absurd.
Yes, it's super fast (instant), but also super useless right now. When I use "Find References" or "Rename", I _need_ it to be 100% accurate. I have to be sure that I caught all uses. In cases of ambiguity (such as the templates above), it has to involve the user (e.g. "these are guaranteed matches, for these other ones it's not clear - select all that should be renamed"). Visual Assist is miles ahead here. And yes, I know, this is extremely difficult in C++ (and likely impossible to square with the "instant" speed goals). But being able to trust my tools in a complex code base has priority.
Other feedback, in a "take it or leave it" fashion:
- Automatic perforce integration is nice to see
- timelapse and history commands don't work though... (not in PATH?)
- Defaulting the title bar menu to only show on hover is weird imo.
- The title bar menu items should be centered inside the buttons!
- Opening header and cpp in different columns is a nice default.
- Settings file editing is also surprisingly fun, thanks to the builtin suggestions.
- Switch to a different colour scheme -> expand folder in workspace tree -> newly appearing elements have old theme...
- I set the keybind for "close file" to Control W. Now pressing Control W always closes two files (?!)
- Right click -> zoom -> that menu item and the submenu (except any submenu item you hover over) render as pure black...
- STL include file paths are not found automatically for a VS solution. Forgiveable though.
- Sometimes commands (e.g. Go To Definition) don't do anything. Sometimes it starts working eventually (parsing was incomplete?), sometimes not. There needs to be some kind of reaction/feedback ("definition not found"). Not necessarily a message box, but at least a toast or status bar message.
- Ctrl + left click also does a range selection if you hold down LMB for slightly too long...
- In a Citrix remote session, home/end lock up the entire session if the view needs to scroll horizontally and there are many long lines.
- create new file, fill it with e.g. 60 long lines of e.g. A characters (something like 120 chars per line) -> navigation becomes extremely sluggish
- No idea if this is primarily on Citrix or on 10x. Can't reproduce the same behavior in VS or Notepad++ though.
Overall it seems well-made and (outside a few sharp corners) comes with a lot of polish, but for me the "speed over quality" approach to parsing is not a good fit for my daily C++ needs. I might try it a bit more for those "let me really quickly look up this detail a colleague is asking about" use cases, but with the current approach I won't use it for editing.
Thanks for the feedback. Templates are supported fairly well, but the one missing piece is function overloading which isn't supported yet. Strangely it hasn't come up as much of an issue yet. There's a bug for it here: https://github.com/slynch8/10x/issues/259
It sounds like you may have the Control W key mapped multiple times in the key mapping file?
STL include paths should be automatically added, I'll check that.
Yes, with some minor limitations as it receives much less testing. I was using 10x with The Machinery (RIP) for some time and the developer was super responsive fixing any C-specific issues (and even added some TM specific features when I asked nicely). If more people start using it for C and report any issues found, it should get even better.
I would say it may even be better suited for C to some extent since that is a much simpler language with less chances for the parser to get confused by some obscure corner case. C++ really is the worst case scenario for a parsing engine, so once it works reliably for that, support for other languages should also become much more feasible.
I see this comment a lot, but it's not true (at least not any more). Many valid C programs do not compile through the C++ compiler. The standards for C++ and C have deviated over the years.
I have no interest in this (happy with vim, developing under Linux) but I installed it anyway and the first impression is absolutely impressive.
The installer is comparatively small.
It loads quickly. Doesn't ask any useless questions.
Installs quickly.
The app also loads quickly and feels snappy.
People tend to underestimate the importance of first impressions.
This guy gets it.
Now if this was open source and built and ran on Linux, I'd be interested.
uninstall :-)
First, you don't know there are commercial products being completely open source.
Second, as a user, the one has the right to put their priorities regardless of your irrelevant opinion on them being good or bad.
Finally, I fail to understand the hostility against somebody who simply expressed what they want to see in an editor, something that contributes nicely to the thread, unlike your hostile purely negative comment.
This is such a ridiculous read on the original comment. OP was commenting on his personal preference, on a public forum. If you think one random person's review that isn't even particularly directed, would lead to said author feeling pressured/bullied into making a tremendously stupid decision (as you put it), you are being very insulting towards most of all the author's own decision making ability.
Uh... what?
I said open source, not free. Google the difference.
I also didn't demand any features.
I also didn't say or imply that I don't want to pay. However, this editor will have to compete with free, full featured, mature software like vim and emacs. That's a tough sell.
Companies who don't care about the desires of future potential customers tend to fail. Maybe I misunderstood what you were trying to say here.
The question isn't about whether you want to pay, the question is whether you are willing to pay so much that it would make any economic sense whatsoever to bundle source-code with this particular type of software (to bear the consequences of doing so).
And you are absolutely not willing to pay that kind of money.
Hell, If you consider vim and emacs "free, full featured software", you are 100% not a customer. If you're a linux user and "every software that runs on my PC has to be open-source" type then doubly so.
And no (vim and emacs) absolutely does NOT compete with this product. And they are free only in the as long as "your time is worthless" category of free (ie. you have paid the massive upfront costs of dealing/tinkering with vim and emacs to bring it to some shoddy level of parity).
Linux+"open source/free software beggary"+vim/emacs automatically puts you so far out of the pool of potential paying future customers for basically any type of software - it's not even funny.
It doesn't have nothing to do with it. It's much easier to sell software if it's closed source. Some people manage to sell open source software but it's obviously pretty hard to compete with some guy who just compiled your software, changed the name and is giving it away for free.
What's with every paid software product being a monthly subscription now? I just wanna buy and forget, not be reminded of it every month on my credit card statement.
I’ve never worked on indie desktop software, but I’ve heard the same story repeated here for over a decade by those who have:
Everyone wants buy once, updated forever software. But, they don’t want to pay for it. Usually they think a fair, up-front price is less than they’d pay month-to-month as a subscription for a year. And, then 80+% of them will only buy when there is a big sale cutting that price to a fraction. And, even when you have a good product at a good price, your sales plummet every time the crack for your DRM gets updated. So, you have to push frivolous updates that mainly exist to keep your DRM ahead of the crackers.
Buy once works great for consumers. And, has worked great for a handful of products. But, commercial desktop software has been an excessively difficult market for two decades now. That’s why it is a hollow shell of what it could be with the issues I listed above. That’s why we get so many web apps that would be better for consumers as desktop apps: can’t pirate a web app, subscribing to a web app feels justifiable.
I want buy once, free minor bugfixes until the next major version comes out software.
For example, I liked windows 3.1, hated windows 95, liked windows 98, hated ME, liked 2000, and never liked another windows. Likewise, I liked early versions of Google maps, but they change the interface in small and large ways unpredictably. I could go on.
With the subscription model, you're stuck with every whim of the developers, stuck with horrible interface changes and you're constantly re-learning how to use the software to do the things you need to do with it. There's a tendency to make new features prominent, which comes at a cost to old (that is to say, core) features.
Auto-updates are a pox on usability. Stability in tools is severely underrated and destroyed by the subscription model.
JetBrains made a good compromise, IMO: You get a perpetual license that allows you to use whatever version you had at the time, but you only get updates as long as you're paying the subscription.
And that's fair, IMO. A lot of my "buy once" software in the past turned into a never-ending game of unpredictable upgrades. I'd have to re-buy upgrade licenses at unpredictable intervals to continue using the software with new version of MacOS or new plugins. At least with the subscription model, it's honest and open.
I like DxO's model, which is "buy once and receive updates for a while". Minor bug fixes appears to continue for about a year, while major feature updates requires buying new versions. This model means I get to choose when to upgrade (and thus when to pay), and it's one reason why I use their software instead of Adobe's.
People pretend they hate Paradox Interactive's DLC-based business model, but I like knowing that the games I buy will very likely be well-developed with many years of extra work put into them. More commercial software should take a little inspiration from them in terms of figuring out a way to fund and work on projects long term.
For those that don't know, Paradox is a game publisher that often release a basic shell of a grand strategy game that serves as a platform for DLC. The bad news is you have to shell out more money every so often for the biggest new features: but the good news is that they're continuously making big improvements and adding big features and have an incentive to make them as good as possible.
I confess that I don't know exactly if this model would work for a text editor, but nothing is as off-putting to me as software subscriptions when something can work locally.
On the completely opposite side of this spectrum, i avoid any game that i see having DLC getting pumped out constantly - Paradox being one developer i avoid.
I want to buy the final full game whenever the developers are done with it, not buy pieces of it. If the developers want to add new stuff they can always make a sequel.
Because of this i tend to wait until some "game of the year edition" is out and the developer has started working on a new game (only a very tiny fraction of developers are going to bother making DLCs for their previous games instead of focusing their development efforts towards the new games).
The only exception to that is MMOs and the like that by their nature need updates and IMO the best approach there is having a subscription to fund the game's development. Of course the greedy powers that be figured out that giving the game for free and monetizing microtransactions on the easily preyed upon "whales" makes more money regardless of the detriment that may have on the games' design.
I get where you're coming from. I suspect that a lot of peoples' aversion to all DLC stems from really greedy phone games, where the trend has been to try and monetize either extremely basic functionality or the ability to play more often through gems/coins/diamonds/stars/etc. Good DLC like XCOM 2's War of the Chosen basically transformed and improved the experience of the entire game and can be very much worth it.
For many kinds of games with a level of complexity beyond a shoot-em-up, I feel like these kinds of games would be very difficult to make without a lengthier iterative process that probably requires an additional revenue stream.
As the example given, Paradox makes grand strategy games with intricate war/politics/economics and other game systems that are all interrelated. Ideally, a company has a lot of data and community feedback on the tiniest minute details to figure out what elements work and what elements don't and eventually refine the systems into the best possible version.
That said, I'm not saying it's impossible to avoid adding DLC and still fund quality long-term development. A different good game Project Zomboid has been in Steam early access for a decade and is in a very good state and still getting big new features: but those occasional indie gems are the exception, not the rule. With most of Paradox's games, you basically know that it'll be supported and improved for years specifically because of their business model.
Actually, I prefer buy never, updated forever software. Somehow free* software fills all my needs these days. I wouldn't mind paying for exceptionally good software, if it came with source code and the ability to build new versions of it.
Didn't downvote you, but this is essentially why I have no desire to build anything for programmers - unless I happen to need it for myself, then I casually open source it (rarely actively maintained as soon as I stop needing it).
I go to _fantastic_ lengths to not pay for software, to mostly use software I could theoretically contribute to, or even to not have to deal with learning new tools. I even built my own accounting system (based on Ledger though).
We're an insanely tough crowd to monetise, I suppose. At least some of us. Meanwhile, prosumer software in other areas seems to be doing quite well, happy users, decent income for the developers and all.
I think some people are always hesitant to open their pocketbook, but I've spend quite a bit on my software development tools. I've bought countless IDE's, code editors, diff tools, and source control clients. If it makes my job easier its usually worth the price.
They should call it 12x. I'm at the point where I just don't do these small monthly subscriptions anymore. I'd stop short of saying it's predatory. More like it's insulting. The smaller the payment, the more like I feel they're counting on me forgetting I'm paying them, or not wanting to go through the cancellation process.
I actively dislike the subscription model as well and it's permeating into software products unfortunately.
With this said I actually like Jetbrains' model where you pay something like a subscription but after 12 installments you get to keep the version you've paid for, even if you discontinue the subscription. If you prefer you can pay the full price upfront and you get the same result.
I think it would be great to have two streams. Purchase a specific X.Y.* version, revision updates for free, and purchase other updates, OR subscribe at a much lower cost monthly to get all updates for any version. Just like JetBrains, if you stop the subscription, you keep what you have.
I understand the resistance to a monthly subscription, but it's the only way I can continue to work on 10x. I've been working on 10x for 6 years now, and even with the generous support from the beta subscribers I can't go on indefinitely like this. Hopefully the subscription will seem worth it with all of the bug fixes and features that are planned. I will continue uploading new versions regularly, as I have been doing: https://10xeditor.com/versions.htm
> There is no need to pay for a license while 10x is in Beta, you are free to use 10x for whatever you like. Even if you don't become a supporter you can still give feedback and suggestions using the contact form. Your feedback is just as valuable to me and will help to make 10x the best editor possible.
I’m fine with software subscriptions (fixes, upgrades, customer support, etc.), but subscribing for something that’s still in development (this case) is harder for me to swallow, in principle. On the other hand, it is very little money and you can cancel your subscription at any time so it keeps the developer honest (focus to make the product better and reach 1.0).
What I’m most surprised by is that Visual Studio isn’t more than adequate. What does Microsoft use internally?
Agreed. I have put a hard stop on subscribing to any software. Even Jetbrain's products, I'll just purchase outright every few years to get updates.
All those subscriptions add up. And when I buy a product I expect to use it for a very long time (decade +). If I add up those subscription fees it feels incredibly expensive.
I have successfully weened myself off of all my software subscriptions. On a yearly basis it was costing me $1000+ for software. At this point it doesn't matter how good of software it is, I'm moving on if it doesn't have a purchase or lifetime option.
I mean there is obviously the more money component, but if the software continually receives updates every month then it's easier to justify it. The old photoshop model is difficult for most developers to pull off (having paid versions). Also it makes it challenging if you are say running a class, or doing YouTube tutorials and everyone is on various versions that might not have some of the new features.
I wonder if there is a happy medium where you can buy it, and then if a couple years later the software improves a bunch you can upgrade at a discounted price tiered to how many years it's been since you updated. I.E if it's 1 year is a 90% discount, 2 years a 80% discount, 3 years 70% discount etc. What do people think of this model?
While I understand that sentiment, this appears to be a product from an indie developer. In that regard, it could fit the model of Patreon/OnlyFans rather than Adobe Creative Cloud and Office365.
I actually hope more indie developers do this -- and complement it with live-coding the product development and other neat perks. If it reaches critical mass beyond "fans" and becomes major-version-based sales, then early supporters could get large discounts.
Biggest downside seems to be if the software becomes End-of-Life and End-Of-Access suddenly, for whatever reason, and my workflow is disrupted. Some Open Source Parachute would be cool -- over time, we are all affected by dropped software products, by developers big and small.
You do not want updates that solve bugs? Some support in case you have questions or problems? Maybe also some new features (usually the word changes and also your experience and expectations)?
But I also want the software I buy to keep working as well as they did the day I bought them. I don't expect the developer to fix all bugs forever without any additional payment, even less add features, but I'd rather not have a kill switch, which for a text editor is what subscriptions are.
Many software vendors (ex: Jetbrains) offer renewable permanent licences that pays for maintenance without the kill switch. Sublime Text, which is possibly 10x most direct competitor now has a permanent license with 3 years of updates, which can be considered a subscription (you have to pay every 3 years for updates), but if you stop, your software won't break.
I want these much less than I want the ability to run the software without the danger of a developer disabling access on a whim. Happened too many times already, including to me personally. A standard example: games.
Somehow software vendors were able to accomplish 2 things during the last 4 decades:
1. Ship software, including free updates for the current version to fix bugs, without any fees beyond the purchase price.
2. Become the richest companies in the world, by far, to the point it's not even close.
So the idea that they need subscriptions so they can 'afford' to fix bugs is ridiculous. Also, paying the subscription isn't a warranty, maybe they collect my money and don't fix my bugs.
They didn't become the richest companies in the world by selling software without a subscription, they did it by illegally suppressing competition without any repercussions (among other things)
Bugs should be solved because the author made mistakes in software that they sold, and are in the process of actively selling. Not because I have a subscription.
Features should be added as addons that I may or may not purchase.
It provides an incentive to keep shipping value to your existing users as opposed to trying to solely grow the size of the userbase since only new users give you money.
Some web design advice: I looked for a tab called "Screenshots", didn't find one, didn't find any general info about what this is other than the buy now stuff, so I hit the Back button.
Edit: I re-visited and scrolled down past what I thought was the end of the page only to find everything I was looking for. This is the problem with these huge scrolling marketing pages. You gotta lead with the content and then try to sell me at the bottom.
Yeah. These folks should probably hire a designer. They clearly put a lot of fancy looking elements in it to attempt to replicate the look of a designed page, but that's not how it works. Many developers think design is like air freshener for a page-- an aesthetic improvement based on personal preference and taste that's distantly secondary to the real content. But colors, relationships between elements, placement of elements, and all of those things communicate about your product. If they're inexpertly or sloppily put together, it communicates that your product is inexpertly or sloppily put together well before they visually parse your copy and screenshots.
Here's a free first impression breakdown for them: A page's social media link stripe is commonly at the bottom of the page as a final "ok you're not going to buy this right now, but at least keep us in mind" call to action, or at the very top of a page as a nav element. Gray is a common color for page terminal stripes or other perfunctory, de-emphasized components because nothing stands out against it as much as it would stand out against something else. Pricing schemes are either on a standalone page or at least after some introduction explains what they are. Seeing the gray stripe of social media links under the pricing block is like a stop sign to your brain. Beyond that, the "more options" button at the bottom of the page only reveals more options at the top of the page. The section of tiny screenshots half covered up with those boxes in that same "not important" gray is very off-putting. Not only does varying shades of gray text on white or various shades of gray background scream "don't pay attention to me," it's irritating to read, and their #969696 text on white on the purchase page even fails WCAG AA color contrast guidelines for headlines. Many elements are slightly misaligned. The complete lack of visual hierarchy beyond the project name and purchase section title leads users to subconsciously say "not worth the cognitive load to figure out what's going on here," and leave... and that was a sub 5-minute analysis.
Most bounced users don't consciously think about why they left. They'll never complain about it because they'll never think about you again. There's a damn good reason big businesses put a lot of time and resources into that stuff, and as much as folks like to think otherwise, having developers as your customers doesn't change that. Developer-targeted FOSS projects get away with undesigned websites because it's free as in speech, and most people are probably looking at the very thoughtfully designed Github, et al interface instead. Even subconsciously, broken buttons, misaligned elements, uncomfortably obfuscated elements, and miscommunication of navigation cues through poor color choice does not communicate "high-quality paid software product that beats the vast array of free competition."
Thanks for this advice. I'm currently in the process or re-doing the website and this is really useful feedback. Hopefully a lot of these issues have already been addressed. I'll be uploading the new site in a day or two.
The sudden activity on this site kind of took me by surprise, I wasn't quite ready for the big reveal.
Great, best of luck! I'm not available for hire at the moment, but one new subscription service who I replaced a DIY landing page for saw a 3000% (yes, that's three zeroes) increase in conversions within a week... and I only probably billed them for 17 hours of work (given, it wasn't the first work I'd done for them.) No shady crap. No dark patterns. The site became clearer, simpler, much easier for customers to parse quickly, and a lot cleaner to look at. They could see what they were getting quickly and then acted more quickly.
Just to add on here, I routinely scan the top navbar for an item saying "Screenshots" when I arrive at sites like this and if I don't find something like that I'm like wtf and leave
I can understand screenshots for things such as games, but for text editors, one text editor screenshot looks pretty much the same as the next. I don't think it is usual for software like this to have a sreenshots page. What sort of things are you looking for here? The new website will have gifs on the front page showing some of the features.
NGL this response doesn't give me much confidence in the UI design.
Back when I used to be a chef, my most important tool was a Chef's knife. The Wusthoff and Henkles and rando knockoff knives might look pretty similar, but I could tell just by looking at it if the spine side of the tang was a bit too short and would give my index finger blisters, for example. It didn't have to be perfect, but it had to work for me.
As a full-time developer, I was working with text editors just as many hours per day as I worked with my chef's knife. Using a text editor that doesn't meld with the way I do things is incredibly frustrating. I do most of my dev work in Unreal Engine these days so a nice, performant editor that was as smooth as other paid editors would get my greenbacks.
I'm exactly the same, which is why I take UI design so seriously. I literally wrote my own editor because no text editor was exactly how I wanted it. Having said that, it should feel familiar to anyone used to Visual Studio or VS Code.
I'll get some screenshots added to the new website.
For example I would be interested to see a debug mode with expandable variables and call stack, git changes highlight, flexible split layout with tabs support, toolbars if any, terminal integration, compilation log, file tree navigation, syntax highlight on non-trivial code, popups with symbol info, scrollbars minimap, markdown rendering.
Presumably some screenshots showing off how crisp the editor looks, font faces, color themes, auto completion working, how things are set up visually, is there a built-in terminal, etc etc, a picture is a thousand words with this kind of thing and IDEs are highly visual
At least mention "Windows only" somewhere on home page or even better just below the Download buttons. It was shocking to see exe file being downloaded without any prompt or warning about operating system. Had to dig into FAQ to see that Linux and MacOS support are planned.
The monthly cost is kind of a nonstarter for me. The sublime text model seems like a good alternative. ~$100 for ~3 years of updates with perpetual ownership of the latest version at the end of your subscription.
The monthly cost is for supporters and to get priority support on Discord (absolutely worth it IMO given how fast the dev responds to issues and requests). AFAIK the final pricing model for the release is not decided yet.
It would be nice if the website put the donation links below the demo images instead of having them be the first thing you see. That was a big turn off when I first loaded the page.
For $10 a month (I assume tier 2 is what most people find acceptable for use), what would I get for this editor? No roadmap, not even an about page and the last HN post was from last year so a definite no from me.
I downvoted the comment because the article explicitly mentioned speed, which VS Code and Clion both struggle with. Either the gp didn't read TFA or didn't have experience with the kinds of code bases it discussed.
well I spent a few minutes checking its website and could not find that 'speed' keyword, plus I don't have a speed issue with vscode and clion though I don't use them often, as I'm a vim user.
Can't tell why you're downvoted either - could have been a bit more constructive, like your second post, I guess.
Otherwise I agree: 10x certainly invokes the mythical "10x programmer" to me, but looking through the list of features, it's pretty basic. USP seems to be speed, probably competing against the heavy IDEs, not Emacs and Vim. But getting there took some guesswork, the website didn't answer these questions well for me.
I've written the parser myself, adding features as needed. The C++ spec is incredibly complex so I'm not exactly sure which versions are fully supported. But hopefully it covers most things.
I measure the 10x performance all the time. But it's not possible to compare like-for-like with other editors unfortunately.
10x has been tested on Unreal Engine source from the start, which is many millions of lines of C++.
I don't use a GUI tookkit. I write the UI system myself.
The parser is written in C++. I don't use any standard parsing techniques, it's all custom stuff. It's hard to explain, but I talk about it a lot in my live streams: https://10xeditor.com/vlog.htm
Does HN really allow posting just a purchase link? Not even a discussion of why anyone would use this over vim/VS code + LSP? I have to scroll below the fold to even see what it claims the features are. Sorry to be that guy, but this one should have been caught in the spam filter.
It seems that there is no unique selling proposition. Practically any editor can do this for any language. Also there are many free editors, that fulfil the requirements.
As I understood it, the subscription for the beta is optional and intended to support development until the first release. I would expect a more traditional license model with the release version.
That's very surprising. I've found VS Code to be considerably slower than Sublime Text or VIM for just about everything. I don't think there would be much overlap at all between VS Code users and people who would want something like this.
Try to open a large text file in VS Code and watch it grind to a halt. While VS Code offers a buffet of features that are cool and convenient it has a lot of problems.
I find I occasionally look at "huge" text files in my day job, but they're almost never source files -- so I don't need syntax highlighting, jump to definition, etc.
Is this something you do often in your C++ development?
I work with data, so it's not uncommon to load a large file either deliberately or accidentally. Highlighting isn't the issue. Even a CSV on the order of 100-200MB kills VS code dead. I assume this is because it's an electron app. Other apps do not have this problem.
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".