Clice v1.0 Released: Welcome to Modern C++ (ykiko.me)
78 points by molenzwiebel 6 hours ago
glebd 3 minutes ago
It's slop, unfortunately.
assumed_throwaw an hour ago
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.
AshamedCaptain 3 hours ago
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).
vintagedave an hour ago
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!
rixed 3 hours ago
Going on a tangent, but I'm always owndering if "modern C++" sounds rather appealing or off-putting to most people?
moltopoco 2 hours ago
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.
spacechild1 33 minutes ago
`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
- inline variables (very useful for handling global state in header-only stuff)
- if constexpr (replaces many uses of SFINAE)
- 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.
William_BB 26 minutes ago
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.
htfy96 an hour ago
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.
omoikane 2 hours ago
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.
ibobev 2 hours ago
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.
BoingBoomTschak an hour ago
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?
kuhsaft 22 minutes ago
I'm not against agentic coding, but insanely verbose commit messages in place of actual decision making records are definitely an anti-pattern.
Requirements, specs, and ADRs shouldn't be thrown out with agentic development. I've found that using rust-style `r[rule.id]` for requirements and specs with ADRs works a lot better than verbose commits.
Requirements cover what, specs cover how, ADRs cover why, and git commits cover when.
Neywiny 2 hours ago
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
dwattttt 2 hours ago
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".
dwb 4 hours ago
Why is there a cartoon of a young girl as the header image? Isn't that a bit...weird?
unleaded 3 minutes ago
To distract people on HN. I'd do the same thing
lmnlvoid 2 hours ago
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?
makemefundyou20 4 hours ago
It's just art that the author puts in all their blog post. I think it's perfectly normal.
dingaling911 4 hours ago
You'll find the most cracked C++ programmers are either transgender, gay or anime fanatics. It is what it is.
dwb 3 hours ago
What does being transgender or gay have to do with depictions of young girls?
perpetualpear 2 hours ago
Tadpole9181 3 hours ago
edukite 3 hours ago
You did my day sir, cheers to you
hollerith 3 hours ago
What, no furries?
dingaling911 3 hours ago
Tadpole9181 3 hours ago
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.
dwb 3 hours ago
It doesn't strike me as definitely harmless.
Joker_vD 3 hours ago
Tadpole9181 3 hours ago
hollerith 3 hours ago
>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?
hmokiguess 4 hours ago
I mean this with no offense, but I find surprising reading a comment such as yours when in your profile about says "they/them"
dwb 3 hours ago
Why?
hmokiguess 3 hours ago
qyron 4 hours ago
Interesting project and great writeup! Looking forward to try this.