Hello, this is going to be the first of a few videos on different types of software. There are loads of different categories We're starting just with open source and closed source in this one. Now before we even get that far Let's just define what software is. So the software are the collections of instructions that tell a computer how to work So even more simple, just the programs running on your phone, on your laptop, on your PC, any computer you come across, the actual instructions, the actual code is the software.
The software is running on the hardware, right, that when you say to run, that means the hardware is carrying out the instructions. So in the phone itself, in that example, the CPU will be carrying out the instructions to enable the iPhone to show the apps on the screen. In terms of what the instructions actually are, well, the instructions have to be be written in code so there'll be a programmer who is writing the instructions in a programming language to tell the hardware what to do and the source code when you hear that phrase source code that refers to what the actual software instructions are so here is a little snippet of some source code written in Swift which is what Apple used to write their apps the source code contains the original instructions and that is what the source means the phrase open source so when this when it's open source that means the source code is made easily available it's open to anybody to use and see and check and modify. So by check that means you're able to go into the source code, inspect it if you wanted to.
Now many of us would not be able to tell much just looking at the program code but if you are an expert you could go in and critique the code, check the bugs, check for errors, check for any dodgy bits. You could also modify it. If source code is made available to anybody to use it means you're able to, again if you are an expert, go in and change the code to fit your own purpose. And you might wonder why would somebody make a program and put the source code on the internet, for example, for anybody to see. If you put it online that effectively means you can't really make money from it because anybody could just use it and change it.
and you lose control of it, you could argue. But often people publish source code openly to try and aid collaboration. So collaboration where people are working together to create software, in this case.
A good example is Linux. So Linux is a operating system, not quite as well known as Windows or Mac OS, but it is still quite widely used, especially with IT minded people. Now Linux is an open source. operating system. So the source code is available online.
If you google Linux source code, you can see the actual source code used to write this operating system. The many many, I suppose millions of lines of code needed to run such a complex bit of software. Now this source code is so massive that it couldn't really be written by one person.
Instead, there are thousands, over 12,000 it says here, collaborators who have been working on their software. Some of them might have made a really really minor change, some of them might have made quite a big feature for example. But the idea is because the source code is very easily available anybody could join in and contribute and give their expertise.
Some might have given a very minor contribution, some might have done quite a major feature, you don't really know. But the point is because the creator of Linux put this online freely, these people could come together and contribute without it being a really formal arrangement. I mentioned it's quite hard to make money if you are publishing open source software because anybody could use it. You could charge for it still in theory, so it's not always free. But if you want to make money, it's much easier to do that with closed source.
This is when the creators don't publish the source code publicly. You can't, as a user, easily see the original code. And often this is also known as proprietary software. So to be proprietary means the creator maintains a lot of control over it.
They will have copyright, they might have a patent, they might use a license to make sure you're not able to steal it and modify it and all those sorts of things. Open source software is generally a lot more freeing. Anybody can do what they like within reason.
So I use Linux as an example. You won't be surprised to hear that Microsoft do not show their source code publicly. So Microsoft Windows, you have to pay for.
You can't see the source code because Windows on your computer, the key bits at least, are all in binary. And so you can't easily understand what is going on because Microsoft have converted their code to binary and so we can't really see what's going on. If you also protect it with licenses so you can't just share it with somebody else you could get sued and get in lots of trouble so it's very protected enabling Microsoft to make money quite easily. Having said that, not all closed source software is paid. It can be free.
We'll look at freeware in a future video. Let's end by doing some evaluation of open source software from a user's perspective. I'm doing open source only because you can effectively flip these to make it for closed source. They're really two sides of the same kind. So first of all, open source software from a user's perspective is inexpensive.
It's usually free. Not necessarily, but usually you can get it for free and that's obviously a good thing. It does offer flexibility.
If you've got the expertise, you could modify the code to fit your own purpose, adapt it, extend it. Perhaps there is a feature which is missing in the current version and you might want to code it up yourself and add it to the program. Equally, you might want to remove a feature which is unnecessary and might slow down your program or cause issues.
And in the best case scenario, there is going to be... be a whole community who have tested and vetted the code for you because it is available online potentially thousands of people have gone in and checked it to make sure it is all working fine and hasn't got any security issues for example so vetting so we're really thoroughly going through to make sure it's fit for purpose I said that's in the best case scenario of course bugs and issues might still slip through even in a popular open-source software So vulnerability is a bug which can allow an attacker to potentially cause an issue. Maybe they can hack in, maybe malware like a virus could infect the computer more easily because of a software vulnerability. Now closed source software could equally have lots of issues but because the code is harder to see or impossible to see in some cases, it's harder for the attacker to find. Whereas open source, it's much more out in the open.
And linked to this point, you're not guaranteed that the code has been fully vetted. It could be a fairly unpopular program which has not been checked very carefully. It may have more bugs and more issues because of that. not be available if you come across any difficulties there may not be somebody to contact it might not be guaranteed especially if it's free you know you can't really demand help if it is free whereas closed source if you're paying for it in particular you might have an expectation that people will support you and likewise updates may not be available you might upgrade to a new operating system or a new computer you can't expect the open source software to update as well because the collaborators may not be involved and may not want to change to the new system