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?
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.
> 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
> 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
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.
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)?
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)
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.
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.
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’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?
> 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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?
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.
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 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
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).
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.
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.
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.
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 :)
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 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.
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.
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.
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.
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.
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'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
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").
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.
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.
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.
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.
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.
236 comments
[ 3.0 ms ] story [ 247 ms ] threadIt'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.
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.
It would be very interesting to see if the 10x Editor does better in this case.
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.
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.
I am curious.
So far I only see that VSC uses Ctrl+Alt+arrow keys, vs ST using Shift+Alt+arrow keys to create the multiple cursors.
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.
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.
Just to be clear, 10x supports syntax highlighting for many languages, it's only the parser that is C++ specific.
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.
VSC isn't slow for me. Is "speed" the only thing on offer? Because giving up the plugin environment is a big ask for that.
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.
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'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.
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.
SaaS and subscriptions is mainly a way to control the users and milk them for money.
Features should be added as addons that I may or may not purchase.
Support should be optional.
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.
What I’m most surprised by is that Visual Studio isn’t more than adequate. What does Microsoft use internally?
https://10xeditor.com/support_10x.htm
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 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.
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.
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.
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.
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.
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.
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.
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 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.
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?
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.
[1] - https://en.cppreference.com/w/cpp/language/pimpl
Is this something you do often in your C++ development?
(I'll see myself out)
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.
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.
Using an editorconfig file I never had an issue doing this. I get a tab if I hit tab and a space if I hit space.
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.
> A high-performance C++ Editor
> Smooth and fast editing
> Built to handle the largest C++ projects
Then right below that, the title of the first image is:
> Fast Workspace Load
Just a little bit further down is:
> Navigation
> Quickly navigate around the largest projects
> Instant Search
> Find what you want - fast!
Just which part of the page did you read, out of curiosity?
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.
You can educate yourself with the following resource: https://www.gnu.org/philosophy/free-sw.html
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.
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.
Are there independent performance measurements?
What are your reference projects for “largest projects”?
Which GUI Toolkit do you use?
Do you support LSP?
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.
It doesn't support LSP.
Awesome. I'd estimate a C++ parser at multiple lifetimes of engineering. An incremental one more so.
Can you sketch how that's implemented? Did you build the parser in C++?
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
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".
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.
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).
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.)
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.
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.
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.
> 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.
Is the extra flexibility of having everything be custom worth it?
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.
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 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.
Ooof. restrict keyword enters the chat. C and C++ are two languages that evolve together, but one is not a superset of the other.
Fast software deserve all of our support