I discovered Clice a few months ago, but it wasn't stable enough for my needs at the time. It looked very promising, though. I'm glad to hear it's moving to v1.0.
I didn't expect this technical article to end on such a melancholy note. I'm sad that the author feels this way about his work of last years. But it was an interesting read, and I think many of us share these concerns and doubts. Hopefully, even in a world of AI agents, there will still be people that write and read code, and who will enjoy using Clice.
The biggest issue with clangd (and a derivate like this) is that it is at least three orders of magnitude slower than non-clang based indexers like the old ones in Eclipse and Qt Creator. It used to be that I could index a huge codebase in a couple minutes; clangd takes days and therefore we have to trouble with stuff such as remote indices. Frankly, I'd trade anything in the world for a fast indexer that is NOT based on clang, even if it were not perfect (which is kind of the point).
Are you sure? This is explicitly not a ‘derivative’ and has a fascinating coroutine with multiprocess architecture. I would not automatically expect it to be too slow.
I agree re the old ones though. But they did far less. This design is heavy on completing templates. That’s tricky!
Just one data point, because I have to get it off my heart. I loved Modern C++ when it meant C++11, but I've become more negative with each new language standard reaching my workplace.
Using string_view over string by default is probably the #1 cause of memory errors that landed on my desk. I also keep hearing that "int x{0}" is preferable to "int x = 0" which allows for super dangerous implicit conversions, but then the same people rewrite push_back into emplace_back, which is much more lenient w.r.t. type conversions. It is also much easier to litter every function with [[nodiscard]] constexpr nothrow than it is to argue for readability.
My best explanation is that "Modern C++" is making developers biased towards whatever language feature is newer, instead of making good decisions. I wish the community gave up on the moniker.
To be fair, string_view has one very attractive feature over const ref string. String's char constructor is not explicit. With string view, you are guaranteed to not allocate by accident.
`string_view` (and `std::span`) is great! Finally I don't have to use concrete types like `const std::string&` or `const std::vector<float>&` as function parameters when all I really want is just something that behaves like a string or array/vector type.
In fact, `std::string_view` can lead to very elegant and efficient (zero-allocation) string parsing code.
IME, taking a string_view as an argument is pretty unproblematic. Two areas where I have seen problems:
1. returning a string_view from a function. Think twice before doing that.
2. calling data() and passing the result to a function that expects a null-terminated C strings. (std::string_view is not guaranteed to be null-terminated.)
---
Apart from that, there are so many great features and libraries in C++17 and C++20 that I use on a regular basis and that I would really miss:
- structured bindings
- if-statement initializers
- fold expressions
- if constexpr (replaces many uses of SFINAE)
- inline variables (very useful for handling global state in header-only stuff)
- concepts (replaces all of the remaining uses of SFINAE)
- coroutines (really nice to use with ASIO)
- std::optional
- std::variant
- std::filesystem
- std::format (although I personally stick to fmt::format)
- from_chars() and to_chars() (fast, local-independent string-number conversion routines)
Yes. Using C++23 in work with house-built coroutine abstraction is very fun and robust. Have to admit that it just requires certain level of skills of your colleague, and unfortunately general hires don't have.
Interesting they show clangd crashing in vscode. That's been my biggest gripe with it. But they also show clice crashing in the same spot? Seems odd to not just fix it
I'm not a C++ expert, but I don't see anything in the shown snippet that would cause a language server crash, so I imagine the server is crashing on something off screen.
I could understand them showing off crash recovery by using code deliberately written to crash the language server, and so not being something you can "fix".
I think you might be reading a bit much into it. People have blog posts with their pets, children, a random vacation spot, or just a random picture they wanted to share; I'm not sure why the anime girl is that different. Or is there some extra context I am missing?
Just teasing - but there's a pretty large overlap of skilled FOSS developers and anime afficionatos (and also LGBT). It's a pretty common joke that if an exploit drops with an anime girl on the video / account - you know it's about to get bad.
Looking at the blog, this is a common theme with them: every article starts with a shot from some anime. Their GH PFP matches: https://github.com/16bit-ykiko
Hard to say why - maybe that's what they're watching when they made the article or did the work or something? Maybe they just like it. Maybe they're degens. People can be enigmatic sometimes. Well... okay, they're a C++ developer, they're definitely a degen.
Anyway, the first few times may catch you off guard, and sometimes it goes too far, but you learn to tune it out pretty fast. It's harmless and I'm glad they're enjoying themselves.
I wouldn’t put money on it being outright sinister or harmful, and it’s definitely fine to be into anime with characters like this. But I do find it odd to be into pictures like this enough that you add them to unrelated blog posts.
It's literally just an arbitrary Attention-Grabbing Picture in the header; because there is really no good attention-grabbing header picture for a C++ language server. A (likely AI-generated nowadays) screenshot of VS Code just doesn't quite cut it — so non-corporate people just put some moderately interest-piquing picture, generally of things they themselves find "nice" to look at. Sometimes it's some silly meme/image macro, sometimes it's a random screenshot from an anime.
Like, here's a random example: [0]. An article is about "a Go-native shell sandbox with coreutils, Python via WebAssembly" — and it opens with a photo of "a sea lion sleeping peacefully on a rocky beach while other sea lions lounge in the background near the water". Why? Because the author thought it would be nice to put there, that's why! No deeper meaning, unless you want to do psychoanalysis over the Internet.
Half the reason you put an attention grabbing picture there is that you get algorithmically deboosted for not having one. Don't blame the players, blame the game.
That too, I guess. I just personally don't really mind it either way — a screencap from the 80s' Transformers cartoon with Optimus Prime in its truck form before an article about different implementation strategies of a "switch" construct? Sure, why not. And I bet that picture wouldn't trigger the same response in the original commenter.
Some blogs end up having interesting (not the right word, but I can't think of a proper one) sequences of leading pictures for their series of related posts, so that's an additional bonus for a reader, as a kind of second narrative/story, perhaps completely unrelated to the first one.
I remember a template for technical design documents that had a placeholder to insert a header image. Any image, could be totally unrelated to the document content. The template explains that it's a sort of mnemonic to identify the document, since everyone is expected to use the same template, and all walls of text roughly look similar to each other from a distance.
So with some header image, reader might be able to recall "it's that Clice post with Yami on top" or "it's that other Clice post with Kessoku Band".
That doesn't explain why anime aficionados (and furries) have such images in their posts vastly more often than for example people into marijuana or craft beers or motorcycle racing.
Okay then, so don't read it? Do you have evidence this person did... whatever it is you think they did purely on the basis of theming their profile with girls from massively popular anime [0]?
From your profile description and that other comment, I would have assumed you were an ally. If so, I wouldn't have expected quite as much morality policing / thought crime tone. My perspective is that it's a little odd, but as long as they aren't hurting someone I really don't care what sparks joy in their lives. Life is hard enough.
And if they are hurting someone, that's what the law is for.
[0]: Their PFP comes from a manga / show that's sold over 10 million copies, apparently.
You’re making my comment out to be rather more than it was. I don’t think there’s anything wrong with enjoying manga/anime with characters like this, but that’s not what the context of the post is. But sure, ultimately they can do what they want with imagery like this.
I think it is very uncommon actually, especially if you consider the global population of non-binary-gender people, from the many cultures we exist in. Don’t let a couple of online bubbles skew your perception.
I discovered Clice a few months ago, but it wasn't stable enough for my needs at the time. It looked very promising, though. I'm glad to hear it's moving to v1.0.
I didn't expect this technical article to end on such a melancholy note. I'm sad that the author feels this way about his work of last years. But it was an interesting read, and I think many of us share these concerns and doubts. Hopefully, even in a world of AI agents, there will still be people that write and read code, and who will enjoy using Clice.
The biggest issue with clangd (and a derivate like this) is that it is at least three orders of magnitude slower than non-clang based indexers like the old ones in Eclipse and Qt Creator. It used to be that I could index a huge codebase in a couple minutes; clangd takes days and therefore we have to trouble with stuff such as remote indices. Frankly, I'd trade anything in the world for a fast indexer that is NOT based on clang, even if it were not perfect (which is kind of the point).
Are you sure? This is explicitly not a ‘derivative’ and has a fascinating coroutine with multiprocess architecture. I would not automatically expect it to be too slow.
I agree re the old ones though. But they did far less. This design is heavy on completing templates. That’s tricky!
Going on a tangent, but I'm always owndering if "modern C++" sounds rather appealing or off-putting to most people?
Just one data point, because I have to get it off my heart. I loved Modern C++ when it meant C++11, but I've become more negative with each new language standard reaching my workplace.
Using string_view over string by default is probably the #1 cause of memory errors that landed on my desk. I also keep hearing that "int x{0}" is preferable to "int x = 0" which allows for super dangerous implicit conversions, but then the same people rewrite push_back into emplace_back, which is much more lenient w.r.t. type conversions. It is also much easier to litter every function with [[nodiscard]] constexpr nothrow than it is to argue for readability.
My best explanation is that "Modern C++" is making developers biased towards whatever language feature is newer, instead of making good decisions. I wish the community gave up on the moniker.
To be fair, string_view has one very attractive feature over const ref string. String's char constructor is not explicit. With string view, you are guaranteed to not allocate by accident.
`string_view` (and `std::span`) is great! Finally I don't have to use concrete types like `const std::string&` or `const std::vector<float>&` as function parameters when all I really want is just something that behaves like a string or array/vector type.
In fact, `std::string_view` can lead to very elegant and efficient (zero-allocation) string parsing code.
IME, taking a string_view as an argument is pretty unproblematic. Two areas where I have seen problems:
1. returning a string_view from a function. Think twice before doing that.
2. calling data() and passing the result to a function that expects a null-terminated C strings. (std::string_view is not guaranteed to be null-terminated.)
---
Apart from that, there are so many great features and libraries in C++17 and C++20 that I use on a regular basis and that I would really miss:
- structured bindings
- if-statement initializers
- fold expressions
- if constexpr (replaces many uses of SFINAE) - inline variables (very useful for handling global state in header-only stuff)
- concepts (replaces all of the remaining uses of SFINAE)
- coroutines (really nice to use with ASIO)
- std::optional
- std::variant
- std::filesystem
- std::format (although I personally stick to fmt::format) - from_chars() and to_chars() (fast, local-independent string-number conversion routines)
- std::bit
- std::apply, std::invoke, std::bind_front
- etc.
Yes. Using C++23 in work with house-built coroutine abstraction is very fun and robust. Have to admit that it just requires certain level of skills of your colleague, and unfortunately general hires don't have.
Maybe they are referring to Effective Modern C++ book by Scott Meyers.
I think "modern" is used to contrast newer C++ standards from C++98.
Or an older book.
"Modern C++ Design: Generic Programming and Design Patterns Applied" by Andrei Alexandrescu
Actually, he coined the term. Then Scott Meyers reused it, and now it is a common adjective used before C++ books, libraries, tooling, and so on.
Interesting they show clangd crashing in vscode. That's been my biggest gripe with it. But they also show clice crashing in the same spot? Seems odd to not just fix it
I'm not a C++ expert, but I don't see anything in the shown snippet that would cause a language server crash, so I imagine the server is crashing on something off screen.
I could understand them showing off crash recovery by using code deliberately written to crash the language server, and so not being something you can "fix".
Why is there a cartoon of a young girl as the header image? Isn't that a bit...weird?
I think you might be reading a bit much into it. People have blog posts with their pets, children, a random vacation spot, or just a random picture they wanted to share; I'm not sure why the anime girl is that different. Or is there some extra context I am missing?
It's just art that the author puts in all their blog post. I think it's perfectly normal.
You'll find the most cracked C++ programmers are either transgender, gay or anime fanatics. It is what it is.
What does being transgender or gay have to do with depictions of young girls?
Both are correlated with autism. And we all know that autism is one of the programming Paths.
It was a list. Either trangender, gay, or anime fanatics.
You did my day sir, cheers to you
What, no furries?
Them too, forgot.
In my view, furries tend more to prefer Rust over C++, but that's no scientific study
First time here?
Just teasing - but there's a pretty large overlap of skilled FOSS developers and anime afficionatos (and also LGBT). It's a pretty common joke that if an exploit drops with an anime girl on the video / account - you know it's about to get bad.
Looking at the blog, this is a common theme with them: every article starts with a shot from some anime. Their GH PFP matches: https://github.com/16bit-ykiko
Hard to say why - maybe that's what they're watching when they made the article or did the work or something? Maybe they just like it. Maybe they're degens. People can be enigmatic sometimes. Well... okay, they're a C++ developer, they're definitely a degen.
Anyway, the first few times may catch you off guard, and sometimes it goes too far, but you learn to tune it out pretty fast. It's harmless and I'm glad they're enjoying themselves.
It doesn't strike me as definitely harmless.
Let's put it this way, politely: it's in the eye of beholder.
Most people don't find a random picture of an anime teenager to be harmful or have sinister implications.
I wouldn’t put money on it being outright sinister or harmful, and it’s definitely fine to be into anime with characters like this. But I do find it odd to be into pictures like this enough that you add them to unrelated blog posts.
It's literally just an arbitrary Attention-Grabbing Picture in the header; because there is really no good attention-grabbing header picture for a C++ language server. A (likely AI-generated nowadays) screenshot of VS Code just doesn't quite cut it — so non-corporate people just put some moderately interest-piquing picture, generally of things they themselves find "nice" to look at. Sometimes it's some silly meme/image macro, sometimes it's a random screenshot from an anime.
Like, here's a random example: [0]. An article is about "a Go-native shell sandbox with coreutils, Python via WebAssembly" — and it opens with a photo of "a sea lion sleeping peacefully on a rocky beach while other sea lions lounge in the background near the water". Why? Because the author thought it would be nice to put there, that's why! No deeper meaning, unless you want to do psychoanalysis over the Internet.
[0] https://xeiaso.net/blog/2026/dancing-mad-sandboxing/
Half the reason you put an attention grabbing picture there is that you get algorithmically deboosted for not having one. Don't blame the players, blame the game.
That too, I guess. I just personally don't really mind it either way — a screencap from the 80s' Transformers cartoon with Optimus Prime in its truck form before an article about different implementation strategies of a "switch" construct? Sure, why not. And I bet that picture wouldn't trigger the same response in the original commenter.
Some blogs end up having interesting (not the right word, but I can't think of a proper one) sequences of leading pictures for their series of related posts, so that's an additional bonus for a reader, as a kind of second narrative/story, perhaps completely unrelated to the first one.
I remember a template for technical design documents that had a placeholder to insert a header image. Any image, could be totally unrelated to the document content. The template explains that it's a sort of mnemonic to identify the document, since everyone is expected to use the same template, and all walls of text roughly look similar to each other from a distance.
So with some header image, reader might be able to recall "it's that Clice post with Yami on top" or "it's that other Clice post with Kessoku Band".
That doesn't explain why anime aficionados (and furries) have such images in their posts vastly more often than for example people into marijuana or craft beers or motorcycle racing.
Wait until you see magazine ads or such showing girls. The atrocity...!
As I said, it’s about the context. There’s plenty of contexts where I wouldn’t bat an eyelid.
Okay then, so don't read it? Do you have evidence this person did... whatever it is you think they did purely on the basis of theming their profile with girls from massively popular anime [0]?
From your profile description and that other comment, I would have assumed you were an ally. If so, I wouldn't have expected quite as much morality policing / thought crime tone. My perspective is that it's a little odd, but as long as they aren't hurting someone I really don't care what sparks joy in their lives. Life is hard enough.
And if they are hurting someone, that's what the law is for.
[0]: Their PFP comes from a manga / show that's sold over 10 million copies, apparently.
You’re making my comment out to be rather more than it was. I don’t think there’s anything wrong with enjoying manga/anime with characters like this, but that’s not what the context of the post is. But sure, ultimately they can do what they want with imagery like this.
>they're a C++ developer, they're definitely a degen.
Can you explain this? Is "degen" being used here in the sense of being so avid about C++ that it borders on degeneracy?
I mean this with no offense, but I find surprising reading a comment such as yours when in your profile about says "they/them"
Why?
It's not uncommon for folks who identify themselves this way to overlap with the circle of those who do these things you called out.
I think it is very uncommon actually, especially if you consider the global population of non-binary-gender people, from the many cultures we exist in. Don’t let a couple of online bubbles skew your perception.
Sure, that could be true too.
Also it's kinda fascinating that person with "pronouns" (implying "let there be inclusive acceptance") is so against… anime girls…
The vibe smell is one of the strongest I've ever encountered. Who thought commit messages each dwarfing a Dumas novel was a good idea?
https://github.com/clice-io/clice/commits/main/
Interesting project and great writeup! Looking forward to try this.