Clice v1.0 Released: Welcome to Modern C++

(ykiko.me)

78 points | by molenzwiebel 6 hours ago ago

48 comments

  • glebd 3 minutes ago ago

    It's slop, unfortunately.

  • assumed_throwaw an hour ago 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 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 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 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 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 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 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 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 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 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 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?

    https://github.com/clice-io/clice/commits/main/

    • kuhsaft 22 minutes ago 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 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 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 ago

    Why is there a cartoon of a young girl as the header image? Isn't that a bit...weird?

    • unleaded 3 minutes ago ago

      To distract people on HN. I'd do the same thing

    • lmnlvoid 2 hours ago 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 ago

      It's just art that the author puts in all their blog post. I think it's perfectly normal.

    • dingaling911 4 hours ago 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 ago

        What does being transgender or gay have to do with depictions of young girls?

        • perpetualpear 2 hours ago ago

          Both are correlated with autism. And we all know that autism is one of the programming Paths.

        • Tadpole9181 3 hours ago ago

          It was a list. Either trangender, gay, or anime fanatics.

      • edukite 3 hours ago ago

        You did my day sir, cheers to you

      • hollerith 3 hours ago ago

        What, no furries?

        • dingaling911 3 hours ago ago

          Them too, forgot.

          • dadoum 2 hours ago ago

            In my view, furries tend more to prefer Rust over C++, but that's no scientific study

    • Tadpole9181 3 hours ago 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 ago

        It doesn't strike me as definitely harmless.

        • Joker_vD 3 hours ago ago

          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.

          • dwb 3 hours ago ago

            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.

            • Joker_vD an hour ago ago

              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/

              • xena an hour ago ago

                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.

                • Joker_vD an hour ago ago

                  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.

            • omoikane 2 hours ago ago

              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".

              • hollerith 2 hours ago ago

                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.

            • ulimn 2 hours ago ago

              Wait until you see magazine ads or such showing girls. The atrocity...!

              • dwb 2 hours ago ago

                As I said, it’s about the context. There’s plenty of contexts where I wouldn’t bat an eyelid.

        • Tadpole9181 3 hours ago ago

          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.

          • dwb 2 hours ago ago

            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.

      • hollerith 3 hours ago 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 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 ago

        Why?

        • hmokiguess 3 hours ago ago

          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.

          • dwb 3 hours ago ago

            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.

            • hmokiguess an hour ago ago

              Sure, that could be true too.

          • ktosobcy 3 hours ago ago

            Also it's kinda fascinating that person with "pronouns" (implying "let there be inclusive acceptance") is so against… anime girls…

  • qyron 4 hours ago ago

    Interesting project and great writeup! Looking forward to try this.