@thatprogrammerguy.bsky.social
Since all package managers are incomplete, either they’re not used, devs use different ones, or devs get frustrated and make their own which adds to the problem.
I have tried many package managers, but they’re either missing what I need, have missing features (e.g. version locking), or break.
I have tried many package managers, but they’re either missing what I need, have missing features (e.g. version locking), or break.
December 14, 2024 at 8:59 PM
Since all package managers are incomplete, either they’re not used, devs use different ones, or devs get frustrated and make their own which adds to the problem.
I have tried many package managers, but they’re either missing what I need, have missing features (e.g. version locking), or break.
I have tried many package managers, but they’re either missing what I need, have missing features (e.g. version locking), or break.
We have
- vcpkg
- Conan
- CPM
- Cmake Fetch
- Buckaroo
- Poac
- Spack
etc
There’s so many that we have a new problem. Library authors don’t have time to publish everywhere, so they only publish to one or two places (or nowhere). This means every package manager is incomplete.
- vcpkg
- Conan
- CPM
- Cmake Fetch
- Buckaroo
- Poac
- Spack
etc
There’s so many that we have a new problem. Library authors don’t have time to publish everywhere, so they only publish to one or two places (or nowhere). This means every package manager is incomplete.
December 14, 2024 at 8:59 PM
We have
- vcpkg
- Conan
- CPM
- Cmake Fetch
- Buckaroo
- Poac
- Spack
etc
There’s so many that we have a new problem. Library authors don’t have time to publish everywhere, so they only publish to one or two places (or nowhere). This means every package manager is incomplete.
- vcpkg
- Conan
- CPM
- Cmake Fetch
- Buckaroo
- Poac
- Spack
etc
There’s so many that we have a new problem. Library authors don’t have time to publish everywhere, so they only publish to one or two places (or nowhere). This means every package manager is incomplete.
That isn’t to say there can’t be a package manager, but it’s very difficult and there are many core problems that need addressing. In fact, there are so many core problems that C/C++ has many package managers. each addressing a different core problem, and all competing for libraries to support them
December 14, 2024 at 8:59 PM
That isn’t to say there can’t be a package manager, but it’s very difficult and there are many core problems that need addressing. In fact, there are so many core problems that C/C++ has many package managers. each addressing a different core problem, and all competing for libraries to support them
Plus there’s a lot more licensing issues in C/C++. A lot of newer languages embrace more liberal licenses like MIT and BSD, so automatic downloading is pretty okay. However, C/C++ has way more GPL-based licenses, often with a paid business license. Accidentally using one can lead to legal headaches.
December 14, 2024 at 8:59 PM
Plus there’s a lot more licensing issues in C/C++. A lot of newer languages embrace more liberal licenses like MIT and BSD, so automatic downloading is pretty okay. However, C/C++ has way more GPL-based licenses, often with a paid business license. Accidentally using one can lead to legal headaches.
And there’s a split opinion of the idea of package managers in the C/C++ dev community. While some devs want package managers, others don’t and think it’s both risky and irresponsible to be downloading so much external code in an automated way. They want to either review everything or not use it.
December 14, 2024 at 8:59 PM
And there’s a split opinion of the idea of package managers in the C/C++ dev community. While some devs want package managers, others don’t and think it’s both risky and irresponsible to be downloading so much external code in an automated way. They want to either review everything or not use it.
Plus there’s generally a lot more red tape at most C/C++ businesses. Many are older businesses which are far from the cutting edge and which don’t like change. They want business deals and lawyers reviewing every license for new code. Package managers are a very hard sell for them.
December 14, 2024 at 8:59 PM
Plus there’s generally a lot more red tape at most C/C++ businesses. Many are older businesses which are far from the cutting edge and which don’t like change. They want business deals and lawyers reviewing every license for new code. Package managers are a very hard sell for them.
The above means that even if we only had one package manager we wouldn’t be able to add every library for everyone. Some are binary only which limits where a package manager can be used. Building from source is very difficult, so you end up spending millions and not having everything available.
December 14, 2024 at 8:59 PM
The above means that even if we only had one package manager we wouldn’t be able to add every library for everyone. Some are binary only which limits where a package manager can be used. Building from source is very difficult, so you end up spending millions and not having everything available.
With source distributions, it is complied once and put on the linker path, or an OS package manager is used, so some devs don’t need a package manager.
Additionally, automating this is hard since theres a mess of build systems (make, cmake, scons, bazel, etc).
Additionally, automating this is hard since theres a mess of build systems (make, cmake, scons, bazel, etc).
December 14, 2024 at 8:59 PM
With source distributions, it is complied once and put on the linker path, or an OS package manager is used, so some devs don’t need a package manager.
Additionally, automating this is hard since theres a mess of build systems (make, cmake, scons, bazel, etc).
Additionally, automating this is hard since theres a mess of build systems (make, cmake, scons, bazel, etc).
Lots of reasons. Sometimes you pay for a library’s binary, not source. Many code bases operate this way, and it greatly limits what they can do (which OS/architecture/compiler can be used).
December 14, 2024 at 8:59 PM
Lots of reasons. Sometimes you pay for a library’s binary, not source. Many code bases operate this way, and it greatly limits what they can do (which OS/architecture/compiler can be used).
javascript -> typescript
java-> kotlin
making it fast -> caching
making it slow -> better developer experience
work -> task
other people’s code -> dependency
lots of other people’s code -> tech stack
downloading code from internet -> package management
giant mess -> architecture
java-> kotlin
making it fast -> caching
making it slow -> better developer experience
work -> task
other people’s code -> dependency
lots of other people’s code -> tech stack
downloading code from internet -> package management
giant mess -> architecture
December 13, 2024 at 6:34 PM
javascript -> typescript
java-> kotlin
making it fast -> caching
making it slow -> better developer experience
work -> task
other people’s code -> dependency
lots of other people’s code -> tech stack
downloading code from internet -> package management
giant mess -> architecture
java-> kotlin
making it fast -> caching
making it slow -> better developer experience
work -> task
other people’s code -> dependency
lots of other people’s code -> tech stack
downloading code from internet -> package management
giant mess -> architecture
Same. I used to use Jetbrains clion for C/C++. It worked for CMake projects, but nothing else. And by “worked” I mean the LSP would frequently crash and I’d have to restart the IDE. Their Visual Studio plugin was also not great, slowed things down way too much with little value added
December 10, 2024 at 5:47 PM
Same. I used to use Jetbrains clion for C/C++. It worked for CMake projects, but nothing else. And by “worked” I mean the LSP would frequently crash and I’d have to restart the IDE. Their Visual Studio plugin was also not great, slowed things down way too much with little value added
count($arr) is O(n) in PHP and not O(1) like in other languages. This is because PHP doesn’t store the array size so it has to count the items each time. The first loop is iterating over the array O(n*n) or O(n^2) times. In the second loop you’re iterating over the array only twice, which is O(n)
December 9, 2024 at 10:29 PM
count($arr) is O(n) in PHP and not O(1) like in other languages. This is because PHP doesn’t store the array size so it has to count the items each time. The first loop is iterating over the array O(n*n) or O(n^2) times. In the second loop you’re iterating over the array only twice, which is O(n)
The sentiment is very fair. I love Zig and I am writing libraries for it. My issue is that the language has too many breaking changes which makes it hard to keep a library working. I’ve ended up with so much version specific code. I don’t see how an ecosystem can grow until Zig itself is stable
December 8, 2024 at 2:18 PM
The sentiment is very fair. I love Zig and I am writing libraries for it. My issue is that the language has too many breaking changes which makes it hard to keep a library working. I’ve ended up with so much version specific code. I don’t see how an ecosystem can grow until Zig itself is stable
The syntax is rough. Lambdas are okay, so long as you keep track of lifetimes and copies in your head (no compiler enforcing things like in Rust). At some point it clicked and I could use them. I didn’t figure out how to use ranges before switching to other languages so can’t speak to that.
December 4, 2024 at 2:46 AM
The syntax is rough. Lambdas are okay, so long as you keep track of lifetimes and copies in your head (no compiler enforcing things like in Rust). At some point it clicked and I could use them. I didn’t figure out how to use ranges before switching to other languages so can’t speak to that.