So you might be asking yourself, why go or go flying, as they sometimes call it, why not some of
the other Web development environments that exist?
And that's a legitimate question.
And there's nothing wrong with lots of other development environments.
But let me give you some of the reasons why Go is such a good language.
One of the most popular development environments right now is called Laravel.
And there's nothing wrong with that.
No.
James has a great runtime that allows you to write your applications in JavaScript, both on the client
side and on the server side.
And there are many other frameworks and environments that you might choose to work with.
But Go has some significant advantages over those.
In my opinion.
To start with, Go is a compiled language.
It's not an interpreted language, for example, is an interpreted language, which means every time
that you hit a page on a site built in AP, it has to load that page into memory, run it through the
interpreter, and then execute the necessary requite or code and send the page to the end user.
Go was compiled.
That makes it much, much faster, in some cases as much as 200 times faster than the same operation
done in.
Also, there are no run times to worry about.
So if you're using HP or you're using Python, well, you need to make sure that you have the correct
version of AP or of Python installed on your server.
You don't have that problem with good because everything is compiled to a single binary file.
All of the third party packages, anything else you might use goes into a single binary file and that
is extremely convenient.
It's also a statically typed language, which means you can't accidentally put a date into a variable
that's meant to hold a an integer, for example.
Now you can do that in dynamically typed languages.
And what that often results in is you have surprises when you run the application.
Things don't work the way you expected because you tried to put one type of data into a variable that's
supposed to hold a different kind of data.
And you can't have that and go.
You can't even compile the application if you're trying to do that sort of thing.
So you don't have any surprises when you launch an application.
It's also sort of object oriented and there's a fair bit of discussion about this on the Internet.
But basically it's a language which has some of the elements of an object oriented programming language
like your Java, but it implements them using something called interfaces.
And we'll talk more about that when we get to the interface as part of the course.
But extremely easy to write go code.
Also, you get concurrency out of the box.
So if I'm running an application on a server that has, for example, eight processors, I can take
advantage of all eight processors.
I can have things running concurrently so I can have my application running and doing multiple things
at the same time.
Whereas JavaScript and P for the most part are single threaded application programming languages.
You can only do one thing at a time.
Now, to be fair, there are ways around that, but it's jumping through an awful lot of hoops to accomplish
something that you get out of the box with.
Go Go can also be compiled for the Mac, for Windows, for Linux and for many other operating systems
without any difficulty whatsoever.
And finally, Go has excellent package management, far superior, in my opinion to say composer in
the world.
And it has excellent testing functionality built into it as well.
And will we get to the testing part of the course and the package management part of the course will
discover just how effective and how well written these things are.
Finally, go is incredibly concise and very, very easy to learn.
And it was built from the beginning, right from the outset, to be aware of the web of the Internet.
And it takes advantage of lots of things that you don't find in other programming languages.
For example, while you can run a Web server in EPEAT, it's not a very good one and you can't have
more than two or three people accessing the site at the same time where it crashes.
Whereas in go you have a Web server built right into the standard library, which is production ready.
It will handle thousands of simultaneous users provided that you have a server that can handle that
kind of traffic.
But it's a great language to work with.
It's easy to learn and I think you're going to enjoy it a great deal.