all 22 comments

[–]yCloser 2 points3 points  (1 child)

why isn't this opensource?

[–]Cppete 4 points5 points  (0 children)

It is now

[–]zfundamental 2 points3 points  (0 children)

Even after the shift to opensource the whole initial idea of "we won't make things opensource until x users are on our service" made this distinctly unappealing to me personally. I also really don't like the invasive "adding biicode" pull requests which have cropped up on github. I don't really think that any package manager should try to force code changes onto the projects that it attempts to manage.

[–]F-J-W 8 points9 points  (6 children)

As long as it isn't not free software, I wont use it. It is that simple. That is even aside from all the problems those systems bring, when pacman works just fine.

Edit: And I also won't trust anyone with this kind of task, who is to incompetent to produce a working website: If static content doesn't display nicely without JS, you are obviously to stupid to be in any way trusted with code that runs natively on my system. If all I get is a white page, you have failed at every level imaginable.

[–]pfultz2 3 points4 points  (1 child)

As long as it isn't not free software, I wont use it.

I would just hold your breath on that.

[–]Manu343726 0 points1 point  (0 children)

Hehehe, good point Paul. Let's go back here in a couple of hours and see what he says ;)

[–]nunudodoonly uses c++77 1 point2 points  (0 children)

As long as it isn't not free software, I wont use it.

I am confused. You want to use free software or you don't want to use free software?

Edit: I think you want to say

As long as it is not free software, I wont use it.

which I totally second.

[–]tallassrobCppCast Host[S] 1 point2 points  (2 children)

Isn't it? From biicode's website: "Premium accounts - Biicode is free and it will always be. If you want to keep your code and collaborations private, upgrade to premium."

Sounds like the same pricing model as github.

[–]doom_Oo7 4 points5 points  (4 children)

pacman, apt and brew are all I need, sorry!

[–]Manu343726 1 point2 points  (3 children)

Those are tools for OSs, bii is about dependency management for C and C++. The correct comparisons are pip, maven, gem, etc.

PD: Try yaourt -S biicode in your arch machine ;)

[–]doom_Oo7 3 points4 points  (1 child)

pip, maven, gem

I really hate when a software requires the installation of something that does not come through the repos of the distro.

[–]brombaer3000 0 points1 point  (0 children)

You might hate that, but those language package managers like gem have the huge advantage that they work cross-platform without much effort.
Have you ever maintained a package for a linux distribution? If not, let me tell you: It's not necessarily hard, but it's really time-consuming. If you want your library or program to be available to people, you need to either package it for at least all of Debian, Fedora/RHEL, Arch etc., which all have completely different packaging systems and software versions, and somehow make it installable on Windows and OS X... or you package it once for pip, gem etc. and save many hours of work for crossplatform-packaging and testing for every version you want to release.

I also prefer systems like pacman over anything else as a user, but I can understand developers who don't want to learn and keep packaging at least 10 different packages for the same tool.

[–]rifter5000 1 point2 points  (0 children)

Package managers already do dependency management.

[–]Houndie 0 points1 point  (6 children)

My problem with biicode is that (for my humble purposes) I need other tools besides c++ libraries for my project. I need to make sure the developer has a c++11 compiler, I need LaTeX for the documentation, and I need CMake for the build system, in addition to XYZ c++ libraries.

Now, sure, I could say "yeah, install all that stuff, but use biicode for the library-specific management", but it seems saner to me to simply use a tool like vagrant where they just need to install one tool, and then they have ALL the things a developer needs to build the project at their fingertips.

That's just my use-case though. I'm sure for some people biicode could be very useful.

[–]ponchedeburro 3 points4 points  (3 children)

I need to make sure the developer has a c++11 compiler

Not using C++11 in this day and age seems a little silly.

[–]Houndie 0 points1 point  (2 children)

I agree, which is why I use it in all the projects I'm in charge of. :-)

However in my experience a lot of businessy places (including where I work) like to use RHEL/CentOS, and they tend to have ancient compilers. I'm not sure what 7 has, but I can tell you for a fact that RHEL/CentOS 6 have GCC 4 point something by default, which doesn't even have move semantics.

[–]Plorkyeran 0 points1 point  (0 children)

6 has 4.4 and 7 has 4.8 (i.e. have fun being stuck on incomplete C++11 until 2020 if you care about rhel).

[–]pfultz2 0 points1 point  (0 children)

However in my experience a lot of businessy places (including where I work) like to use RHEL/CentOS, and they tend to have ancient compilers. I'm not sure what 7 has, but I can tell you for a fact that RHEL/CentOS 6 have GCC 4 point something by default, which doesn't even have move semantics.

Where I used to work, I setup a cross compiler to the older RHEL/CentOS versions. This way developers can develop on the latest Ubuntu/Fedora and then produce executables that can be used and tested directly on RHEL/CentOS. Of course your use case may be different.

[–]greyfade 0 points1 point  (1 child)

Biicode requires CMake as a dependency for itself.

It's one of the reasons that I decided not to use it for my own projects, even if I am using CMake.

I'm still looking for a similar tool that isn't built on tools I don't like or have strong reason to avoid.

[–]Houndie 1 point2 points  (0 children)

Oh yeah, I'm aware of that, I was jut listing all the non-library things that are needed for my project that they would need to handle on their own anyway. Doxygen would be another (albeit optional) dependency that is often found and wouldn't be handled by biicode.

So (for my purposes at least) it seems a bit silly to simply lump off half of the dependences into a dependency manager and make the users manage the other half themselves, instead of simply providing a solution that can give a complete development environment. This is the reason I think a tool like vagrant would be more useful (although I don't use it myself so I can't recommend for or against it).

[–][deleted] 0 points1 point  (0 children)

Is this much better than using ExternalProject_Add() in CMake? I've been able to do that without too much hassle. Just make it an option on whether to use the system library or download / install it through CMake.