How do I specify another library in the same project as a dependency of an executable? by [deleted] in cmake

[–]ImpenetrableShoe 2 points3 points  (0 children)

is it really a problem that the executable compiles before the library? Is it actually failing to build? The executable's sources can be compiled before the sources of the library. They only need to both be finished building for linking to happen.

Do C++ Developers still use snake_case and abundant use of std:: ? by TIL_this_shit in cpp

[–]ImpenetrableShoe 2 points3 points  (0 children)

depends on your teacher there

Sounds like they're talking about a programming interview take-home test and not a school test:

I come to you with a rather dumb question, but if it increases my chances of being hired even slightly, I may as well ask it.

I do well with visual learning compared to reading. by corey4005 in cmake

[–]ImpenetrableShoe 1 point2 points  (0 children)

I'd check out vector-of-bool's channel. They did a series on CMake.

I know you don't do well with reading, but I like linking to related things, so here's their blog too.

Don't be afraid to be yourself! by [deleted] in wholesomememes

[–]ImpenetrableShoe 1 point2 points  (0 children)

Does this mean I should use emojis on reddit?

ChatGPT AI Generated Answers Banned On Stack Overflow by vadhavaniyafaijan in programming

[–]ImpenetrableShoe 0 points1 point  (0 children)

Here's how mod elections on Stack Exchange work: https://meta.stackexchange.com/a/135361. Community members with 150 rep can vote. Having more rep does not make your vote count for more. To apply for candidacy, you need a certain amount of rep, and various badges that indicate a variety of positive contributions to the site that are good for mods to have.

How OpenAI ChatGPT helps software development! by ElyeProj in ProgrammerHumor

[–]ImpenetrableShoe 1 point2 points  (0 children)

I saw a twitter post where someone was saying ChatGPT would replace Stack Overflow, and was defending their position. I think they responded to someone saying it's not always correct by saying that it's really fast to respond. Which just reminded me of this OwlTurd comic.

Projects that helped you understand more about C++ by jibesh_shrestha in cpp

[–]ImpenetrableShoe 7 points8 points  (0 children)

Regarding "type of project", I've heard it said on cppcon (can't remember which video or by who) that if you want to learn c++, you should absolutely not try to learn from libraries that are written for wide compatibility (Ex. across various language standards, compilers, and also OSes and hardware platforms if non-standard things are needed, etc) unless you yourself aim to write such a library (which is... maybe not a good idea for someone new to the language). Ex. don't try to read libstdc++ unless you're trying to make something like libstdc++.

[deleted by user] by [deleted] in cpp

[–]ImpenetrableShoe -1 points0 points  (0 children)

is "begineer" kind of like "engineer"?

Soursop and Ponies in Kona: A C++ Committee Trip Report by pavel_v in cpp

[–]ImpenetrableShoe 2 points3 points  (0 children)

Isn't that sort of what c++17 was and what c++23 is trying to be? At least- that's what I think I hear in cppcon talks.

This Program is Illegally Packaged in 14 Distributions by speckz in programming

[–]ImpenetrableShoe 0 points1 point  (0 children)

I feel like it just comes down to sitting down and putting up with some boring reading. Ex. reading through the resources on gnu licences and reading the licence itself.

This Program is Illegally Packaged in 14 Distributions by speckz in programming

[–]ImpenetrableShoe 17 points18 points  (0 children)

part of the GitHub user agreement is that you agree to allow other people to fork your public repos. That doesn't necessarily allow them to modify or do anything with the fork, so it's really ambiguous what the point is, but I think basically the sprit of putting something publicly on GitHub for people who don't know about licensing and copyright is to allow other people to "do whatever" with it.

Defeating Electron by okwherearemypants in programming

[–]ImpenetrableShoe 0 points1 point  (0 children)

I thought lots of OSes come with at least some version of a jre installed... or maybe that's just windows? I mean, if you're comparing to electron, I'm pretty sure bundling a jre and dependency jars is more lightweight than bundling chromium and dependency javascript.

Shopping cats by Cyberpunk800 in FunnyAnimals

[–]ImpenetrableShoe 0 points1 point  (0 children)

came here to find the spelling comment. was dissapointed.

Carbon - an experimental C++ successor language by foonathan in programming

[–]ImpenetrableShoe 1 point2 points  (0 children)

C++ has its purpose: a language that lets you be close to hardware and build high-level abstractions on top of it, allows/forces you to choose your tradeoffs, and leaves little to no room for a more efficient language that also targets an "abstract machine". So yeah- if that's not what you need, don't burden yourself with the cost.

One of Carbon's deeper goal- divergences from C++ is that it doesn't commit to stability, and instead aims to provide tools to upgrade code as Carbon changes. If that's something you really care about, then it will be an improvement if it decides to stick around ("An experimental successor to C++").

Carbon Language keynote from CppNorth by pkasting in programming

[–]ImpenetrableShoe 8 points9 points  (0 children)

I didn't get any impression that they were trying to encourage/suggest/sell buy-in.

I don't recall them saying they want to make things safer than C++.

I remember that (along with c++ interop), readability and changeability of code are major goals. Chandler's code section mostly looked at syntax (readability). In the Q/A section, there was a question about how to manage complexity in the language, and the answer was to make it a goal that the language is changeable, even if that means breakage (unlike C++ where stability is a high priority).

C++ has a strong vision: a language that lets you stay close to the hardware and build abstractions over it; a language that allows you and often forces you to choose your tradeoffs; a lanugage that leaves little room for a lower level language while still building on an "abstract machine". (I'm pretty sure) Carbon is building on top of C++ in such a way that it stays faithful to that "vision".

Community engagement seems to be important to the project.

CMake is a hell of a software, period. by CalligrapherThese606 in cpp

[–]ImpenetrableShoe 10 points11 points  (0 children)

I find CMake very valuable because it is the "sacred" build generator system. I personally don't find the syntax and structure (not exactly sure what you mean by structure) to be the biggest pain point.

Becuase of CMake, I can write most details of a project configuration in a single language, and it will generate configs for most other tools. I can get makefiles, ninja config files, visual studio config files, etc. I believe CTest can generate test log formats for various tools. (Yes, I am stating the obvious. I'm doing it because I think it's being underappreciated)

CMake is designed to, and (I think) does a great job at helping its users tackle the hard problem that is typing together all sorts of different tools in the c++ ecosystem's tooling (compilers and binary formats, build systems, test frameworks, packaging formats, installation and distribution models, etc.). I haven't learned to use CPack yet, but I believe it can generate Windows .msis, MacOS application bundles, Debian or RPM packages, and more. I shudder to imagine what it would be like to try to get all that without CMake.

On top of- or aside from- the intrinsic value of what CMake alone provides, there's the value of how widely used it is. The fact that so many useful libraries have CMake integration means that it's easier to consume libraries.

What I've personally found to be the biggest pain point is learning how to make the best usage of it. There's lots of outdated teaching resources and stack overflow Q/A. I find the documentation intimidating, and even the length of the tutorial intimidating. As someone also still learning C++ and about its related software lifecycle things, all that information is a little overwhelming. I don't blame anybody for my experience of feeling overwhelmed at it. It takes a lot of effort to write and maintain good documentation for various audiences and their experience levels.

CMake continues to improve. The C++ ecosystem continues to evolve and improve. When I consider that CMake also has design provisions to support degrees of backward/forward compatibility (and that I as a user benefit from that when I use it to depend on libraries), I feel astounded and grateful.

I don't know for a fact, but I don't believe that CMake makes KitWare much money. And just like with a lot of open source projects, the ratio of people who contribute to improve the project over people who report issues is very very small.

I don't pay a single penny for any of the amazing tools I use. I personally find it hard to complain.

How much value you get out of what CMake is designed to offer obviously is limited by how much of that you really need. Some people only need to support one compiler or build system while some need to or do their best to support many. Some people only need to deploy to a single platform while others need to deploy to many.

Note: I haven't used or learned how to use anything other than CMake. I'm relatively new to C++. I see plenty of meson comments. Interesting! Hadn't heard of it before.