lysdexic

joined 2 years ago
MODERATOR OF
[–] lysdexic@programming.dev 1 points 2 years ago* (last edited 2 years ago) (2 children)

Each CMake release distributes its own set of library-specific (!) find_package modules.

This is a gross misunderstanding and misrepresentation of CMake. CMake ships with CMake configure scripts for some popular libraries, but their goal is to lower the barrier to entry to CMale by supportinh projects which haven't been properly onboarded onto CMake by their maintainers.

Think of it as a the-chicken-and-the-egg problem, but tied to CMake's adoption. You want to use CMake but you can't just properly consume a dependency because it doesn't export it's own CMake config script, so what do you do? CMake supports those cases by means of user-provided CMake Find modules, which each project has to roll out on their own and ship along with their source code. That sounds like a lot of repetitive work, doesn't it? So why not provide CMake-provided scripts with the distribution?

My impression is that (...)

If the worst point you can make about CMake is the cmake config scripts it bundles, then I'm afraid you are very opinionated over irrelevant details that are immaterial to the discussion.

[–] lysdexic@programming.dev 0 points 2 years ago (2 children)

Also, it’s worth noting that cargo is a fairly good package manager all things considered.

Yes, I'm familiar with Cargo. My point was to point out the absurdity and silliness of OP's remarks on "no bulky management of a virtual environment, no make files, no maven, etc." Once Rust fundamentalista take off their rose-tinted glasses, it's clear that Cargo is just as good (or as bad) as any contemporary integrated build system.

[–] lysdexic@programming.dev 3 points 2 years ago (5 children)

So there is fundamentally no difference between cargo and any other contemporary dependency/package manager.

[–] lysdexic@programming.dev 4 points 2 years ago (8 children)

There’s no bulky management of a virtual environment, no make files, no maven, etc. Just a human-readable cargo.toml for your packages

In your perspective, what's the difference between a cargo.toml and a requirements.txt, packages.json, pom.xml, etc? Is there any?

[–] lysdexic@programming.dev -2 points 2 years ago (2 children)

Everything is in the link.

Not really. That blog post has a hand full of cherry-picked opinions, many of which are of dubious reasoning and substance. That's hardly an argument to stop recommending the book.

[–] lysdexic@programming.dev -1 points 2 years ago (4 children)
[–] lysdexic@programming.dev 2 points 2 years ago* (last edited 2 years ago) (4 children)

CMake is bad and only usable if you write your configuration perfectly.

I don't agree. I find CMake to be hands down the best build system generator out there, and allows the cleanest, most straight-forward projects you can think of.

The problems with CMake generally come from inexperienced developers not doing what they are doing and thinking that CMake is some kind of Basic-type scripting language, and in the process making a big old mess of everything they touch.

As a rule of thumb, if any of your CMakeLists.txt file has an if() in it, odds are you messed up already and should reconsider what you are doing.

[–] lysdexic@programming.dev 1 points 2 years ago* (last edited 2 years ago)

I am but it’s a bit too much money for “just because”.

I'm on the same boat. I have a RPi4 that I briefly used as a personal computer, and even though I'd love to get a RPi5 I'm struggling to justify it. It sounds like it's around €100 for a 8GB version (board+case+power supply) and that's already in x86 MiniPC territory.

[–] lysdexic@programming.dev 18 points 2 years ago (1 children)

Objective-C and Objective-C++ are an abomination. Extending languages with other language constructs is ok, I guess, but I find Apple's extremely poor documentation to worsen a situation that's already quite bad.

[–] lysdexic@programming.dev 4 points 2 years ago (2 children)

So, is anyone itching to buy one?

[–] lysdexic@programming.dev 3 points 2 years ago

I would also mention support for third-party compiler cache systems. Install something like ccache, set a couple of flags in the CMake project, and your whole project can now reuse build artifacts with barely no CPU load.

[–] lysdexic@programming.dev 0 points 2 years ago

I'm not sure I'm expressing this in clear terms. The same company is collecting data and anonymizing it. They have people dedicated to review which data a service is designed to store, to classify that data according to their privacy implications, and to anonymize all data they have in order to comply with all sorts of legislation.

If the data they are collecting isn't anonymous, or could be deanonimized, they are liable to pay huge fines and suffer other painful legal consequences.

This is not about hypothetical scenarios where you can argue that tracking random brower fingerprints can pinpoint who you are. This is about a single company having to legally demonstrate they do not directly or indirectly abuse personally identifiable information, otherwise they have to pay a fortune in fines for no good reason.

view more: ‹ prev next ›