There are still a whole bunch of companies who aren't on the bandwagon of putting their code up on the Internet. In fact, there are a whole bunch of companies who likely cannot due this due to various regulations and contracts with their clients.
I prefer BSD/MIT/Apache over the GPL because I don't have to worry about legal issues in regards to library integration with binaries that I may build. Why should I have to make sure that I'm using LGPL versus GPL, etc? Its much easier just to use, and license, software that is under BSD/MIT/Apache.
> BSD: You can have my labor for free, and then profit off it all you want. Call it free money, you're welcome.
There's a lot of software that is licensed under BSD which, for the most part, is sponsored by corporations. If you decided to license the software under BSD (e.g. you and the authority to do so) the likelihood that you're not making a living is relatively small. Because why else would you have released the software under such a liberal license?
Most of my projects right now have had all of their Vagrant plugin dependencies, including Vagrant itself, in the Gemfile because I wanted to make sure any developer could get a workable development environment without worrying too much about Vagrant versions. On one hand I like the fact that I can install up-to-date plugins this way, but on the other hand I just want it to work out of the box.
Although I doubt we'll be able to get away from this. More likely it will cause other frustrations such as needing to override a plugin with a monkey patch, etc.
I really like how Gradle has solved this problem. You check in the Gradle wrapper (http://www.gradle.org/docs/current/userguide/gradle_wrapper....) into your source control (it's only 56K), and it automatically fetches Gradle for you if you don't have it. Updating the project's Gradle version is just a matter of changing one or two lines.
It's cool to think that the only requirement for anybody to jump into a Gradle project is to have the JDK installed. "git clone <project>", "./gradlew assemble" is all it takes for you to fetch all your dependencies and build the project.
I think it'd be interesting to see if Vagrant could incorporate something like this; it sounds like it would help your use case.
> It's cool to think that the only requirement for anybody to jump into a Gradle project is to have the JDK installed.
Sounds like a commercial. Many people have good things to say about Gradle's functionality, but too bad about the programming language I have to use with it, i.e. Groovy, at an old 1.x version, with a bloated grammar spec using an old 2.x version of Antlr, i.e. http://svn.codehaus.org/groovy/trunk/groovy/groovy-core/src/...
Too bad I can't use a language with a simplified easy-to-remember grammar, like Scala, to program Gradle.
The latest Gradle release notes http://www.gradle.org/docs/current/release-notes always mention both Groovy and Scala when describing how to build projects, but all the build script example code is in that Groovy language. Will Gradle ever expose an API so developers can choose to use the same language for the build scripts as they do for the projects they're building? Perhaps even ship Gradle with different build language options?