 Tech talk, let's talk about licensing. Now, I want to make it clear, obviously I'm not a lawyer, but I just want to talk a little bit about licensing here because it's something that a lot of people either don't think about or just completely misunderstand in some cases, and I'll give you an example a couple years ago I was talking to a friend of mine who works with computers and he basically goes around and helps people choose what software to use for their business, and he had absolutely no clue or understanding of what a software license is, and it can be confusing. It's because the conversation when I was talking about the GPL license and he just kept saying I don't understand why open source software needs a license, why does there need to be a license, and I was trying to explain to him that you can put your projects out there, you know, in the public domain for anybody to use, but when you create something, anything, you could draw a picture and right away you have a copyright on that. You have a copyright and what that means doesn't mean that other people can't use it, it means that other people can't use it without your permission, so you've got to give people permission, either they need to come to you and ask you for permission and you work out something, a deal, a license of some sort where you license it out to them, or you know you could use something like the GPL or the BSD license or the Apache license and you put it out there and people know what they can and can't do already with it and depending on what license you use, you might be able to also sub-license it under other things for certain uses. So he didn't understand that and finally I got down to the core of it was when you buy a Windows machine you have your product key that you type in when the end user license agreement comes up on the screen, when you're installing Windows and he thought that the product key was the license, not the end user license agreement that comes up on the screen. So that was part of the confusion. Here's a guy who as work, as for a living, helps people choose what software to use and he has no clue about how the rights of that software affect the user and what it means to the end user and when I say end user let me bring up another point something that a lot of people don't realize and I didn't realize up until not too long ago is that we all know that when you get proprietary software you have to agree to the end license user agreement and user license agreement and the thing is the GPL is not a license like that it is a distribution license it only has to do when you're distributing the software what you have to do with it what does that mean well let's say you take a piece of software the Linux kernel or the known desktop or genome or GNOME or however you say it or the KDE desktop or some other software that's unlicensed under the GPL or the BSD or the Apache license if you make changes that software do you have to publicly share those changes with everybody or with the with the maintainer with the original developer the project the answer is it depends if you're making those changes for yourself you don't have to if you're not publicly distributing it then you don't have to worry about that for example Microsoft currently has their own version of Linux that they use in-house Google does too so if you own a company or you do something personal and you can use it for that use that you're not sharing it with the public you can do basically whatever you want with it but something like the GPL when you share it when you post it back out there on the internet there are certain rules you have to follow you have to make your changes with the GPL you have to make your changes open and under the GPL and you have to make sure that source code and the license is distributed you distributed with it with it when you distribute it like that so that's one of the very big differences between a end user license agreement and the GPL or the BSD one is a end user license agreement and one is a distribution license they are two different things they're both software licenses but four different things and end user license agreement means to use this software you have to agree you to this stuff the GPL the BSD license the Apache license the MIT license they they don't excuse me you don't have to really agree to anything to use them you only have to agree to things when you're sharing them now there's also a bunch of different types of GPL licenses there's the GPL version 2 the GPL version 3 but there are also some other GPL licenses one being the AGPL and the AGPL what is the difference between the GPL and the AGPL at least the main difference is that as we were saying it has to do with distribution the AGPL takes it a step further so let's say you write a piece of software under the GPL code I take it and I'm using it on my web server on the back end it's a PHP code or a Python code running on the server that just outputs information so the end user never gets it it's not distributed to them it's running on my server well the GPL says I don't have to share the source code then I don't have to share the license then I can make changes I don't have to share my changes with people but if you write your your software under the AGPL code that requires people who are making modifications and using it on a server for example they still have to make their changes public and follow the license agreement in that case so that's a big difference there so when I'm writing software I use the GPL version 3 personally and I'll hear to debate which license is best because which license is best depends a lot on what you plan on doing with your software and for example I use the GPL version 3 but if I'm writing PHP code I usually release it under an AGPL license so that if someone takes it and uses it on a server and they make changes modify it and they're using it whereas people are interacting with it without actually getting that software they still have to follow those agreements and make the source code available and make sure people are aware of what license is being used and that's important to me that's important to me because I think that it's very important to give the user the freedom to change stuff so that's just something to think about maybe some things you haven't realized maybe I said something wrong and you want to dispute me go ahead and comment below because I'm not saying I am a professional on this subject but these are just things that a lot of people don't realize the difference between an end user license agreement and a distribution license and the difference between the AGPL and a regular GPL so yeah there's lots of differences again oh another thing I want to bring up is compatibility with licenses so example is the BSD and the GPL license compatible yes and no depends on which way you're going see the BSD license allows you to take that software and release it under a different license so I could take the the BSD code make changes to it and release my changes under the GPL code but the GPL is not doesn't go the other way since the BSD license allows you to change the code and allow you to release software in a non free format then it's not compatible with the GPL so BSD is compatible with GPL but the GPL is not compatible BSD did I say that properly so so that's something to think about if you write software under a BSD license that allows people to make changes and they don't necessarily have to follow the BSD license they can license under another license which is exactly what happens a lot with things such as you know Apple you know all their their their kernel and a lot of their software is was originally under the BSD license now the original code is still always under the BSD license so I write something that BSD my code is always going to be open and shared and that's a requirement but if you make changes to it you don't have to require your changes to be under the BSD license and shared where if I take code with the GPL and I modify and change it I have to use that GPL code or a compatible GPL code so that's another thing to think about again people argue which one is more free a lot depends on what your views are what you're using a software for I personally prefer the GPL because I think the code should always be open and free to people and I don't like the idea of someone be able to take take it modify and lock it down so the next person doesn't have those same freedoms with those changes other people would argue that the BSD license is more free because you are free to lock it down if you want and make make changes that are locked down so again just thought that I'd take a moment to do a little talk about that with what I know about those licenses or at least I think I know again if I'm wrong be sure to comment below if you have something you want to add comment below and again I'm not here to argue which license is better when it comes to GPL MIT BSD Apache license obviously I don't like you know the end user license agreements such as the Microsoft proprietary stuff but when I see someone using code I like to see it in the GPL but if someone is under the BSD license you know that's that's great because I can still make changes modify it and improve it and freely distribute it distribute it keep saying that funny anyway thanks for watching again my website filmsbychris.com that's Chris the K as always thanks for watching and I hope that you have a great day again like subscribe share and comment all those things helped me gratefully greatly if you want to support me financially I have a patreon account patreon.com forward slash mail x1000 but if you can't you know support me financially sharing my videos like my videos and commenting help boost my ratings and that helps me out a lot so thanks for watching and I hope that you have a great day