As a company, those of us at Zing who code were hoping to educate mid-tier management and small business owners as to the languages and technologies available to them. As we go along I will endeavor to translate into layman’s terms, the technical jargon-like nature of the subject of programming languages. It is my personal hope that by doing this, it will lead to a new kind of open source learning (like that which I have been fortunate enough to benefit from) that is available to anyone with the will to seek it out.
Welcome to The World Wide Web
Let’s start with the basics of how the internet works. When someone goes on the internet, they generally use a web browser on a computer, smartphone, or tablet that needs to have access to the internet. Once a connection to the internet or world wide web is established, that device needs a way to communicate with the other devices or “clients” as well as the many web servers, databases, etc… These clients and servers are interconnected using TCP/IP, or the Transmission Control Protocol/Internet Protocol. Think of the servers and clients as islands, and TCP/IP as the bridges that stretch out between them and connect them all together.
For a device to “speak” with other devices or servers, it does so using a specific format called HTTP or (Hyper Text Transfer Protocol). Think of HTTP as the vehicles zinging back and forth between the cities & towns from the previous example.
Whether someone Is typing out the URL (Uniform Resource Locator) in an address bar or typing what they are looking for in a search bar, they are using the web browser to send out a request over the internet for a web resource using this HTTP format. At this point, the server that hosts the database will respond by locating the file on its hard drive, and sending it as requested. Their web browser then renders and displays the content for viewing or interaction with on the device being used.
Whether it be in the form of a webpage, image, or file, the process of retrieving a file or resource is done server side using an “HTTP server-side software” Like Apache or IIS (Internet Information Services). Websites handle these user requests by utilizing one of the many scripting languages we will be discussing today.
Learning a bit about HTML or (Hyper Text Markup Language) is a logical first step in gaining a basic understanding of how a computer processes website content.
In 1980 Tim Berners-Lee, a physicist working at CERN proposed a system by which researchers at CERN could share and view documents over a computer network. In 1989 the usefulness of his initial software (named ENQUIRE) prompted him to propose an Internet-based hypertext system. which laid the fundamental building blocks upon which modern HTML is based.
Now that we know that databases are typically where the content of these websites are stored, it can now be established that the language the server uses to communicate with the database is going to be different from the one it uses to transmit this data back to the user.
PHP ( Hypertext Preprocessor )
PHP is a scripting language that can be embedded or placed into HTML to help it communicate better with databases.
Imagine a library… If HTML is what the website is built with (the structure of the library, or building it’s housed in), and the database is the content (the books, videos, etc kept in the library); Lets call PHP the librarian who knows where everything is and promptly fetches the content requested by the user.
Additionally, PHP can also be used to organize or alter the content if needed. Making it especially good as an archiver.
Would it interest you to know that PHP is a good scripting language to know if you are getting into web development? Many renowned websites, including our own ZingLLC.com, were made using PHP. Despite the myriad of opinions in development environments, the developers of big websites like Facebook and Wikipedia opted to use PHP, and these sites boast millions of users and house vast amounts of data.
Java is a server-side language that was designed to be “platform agnostic” which means it can run on anything from smartphones to supercomputers as long as it is kept updated.
Java was created by Sun Microsystems in 1995, but on April 20, 2009, it was announced that Oracle Corporation had bought them out for $7.4 billion USD. A testimonial in my opinion to its usefulness as well as it’s potential for future web development.
Many websites won’t work without having Java installed on your device, with more coming out daily. The reason for this is that unlike other script languages, Java will compile into bytecode before it runs, which makes it FAST. Java is what is known as a “compiled language”.
To understand how this works, we should look at one of the biggest differences between a compiled language and an interpreted language.
An interpreted language is a coding language that requires a server-side software to decode it before it can respond to the users request.
Example: When a language that requires translation is being spoken. First, the brain needs to identify the language being used, translate the language so it can understand it, formulate a meaningful response, translate that response into the source language, then finally it can respond. All of this takes time.
So in terms of languages spoken from computer to computer… Think of a compiled language as, kind of like having one of those universal translators like on Star Trek.
ASP (Active Server Pages) and ASP.NET.
ASP was first released in 1996 and was Microsoft’s first server-side script language. Remember when we were talking about HTTP server software like Apache or IIS? With ASP we see most of its development connected to the IIS Windows server-side software with the 3 versions of ASP being released with the 3 versions of IIS in 1996, 1997, & 2000. Eventually, it is superseded by ASP.NET in 2002.
ASP differs from ASP.NET in that it is a different scripting language. However, if you use ASP.NET, your ASP pages will work just fine. many believe that ASP is a good stepping stone to ASP.NET. ASP.NET is a lot more complicated; it has a lot more flexibility and a lot more features, but general thinking is ASP is a good first step.
Naturally, ASP and ASP.NET are connected to its developer Microsoft, the Windows OS, and the IIS server-side software, but they clearly stand out because of the quality of the web pages they produce. This explains ASP’s continued use even today.
One of the most significant differences between ASP and ASP.NET is that ASP is an interpreted language and ASP.NET is compiled. Also, ASP.NET not a language, per se, like ASP, or even Java or PHP, it’s what’s called a “framework”
A framework is what it sounds like… it’s the basic building blocks needed to build a website, with the coding already built in. Comparing building a website with ASP to building one using ASP.NET is like this…
On one hand, we have a carpenter building a desk from scratch. He or she goes out, cuts down a tree or gets some lumber, then proceeds to cut, shape, sand, paint, and assemble his or her desk into existence. This would our comparison with building a website from scratch using ASP. The look and feel of the “desk” (website) is almost entirely dependant on the skill, craftsmanship, and attention to detail of the “carpenter” (developer). It may take longer to do, but the end result is controlled entirely by its creator.
On the other hand, we have someone buying a desk from IKEA and assembling it themselves using the instructions from the box it came in, (only without the extra screws nuts and bolts left over at the end.) This would be our comparison to building a website using ASP.NET. The “desk” (website) is just as impressive if not more so due to the fact that it now draws on the combined experience of all the “carpenters” (developers) who came before, contributing their combined experience, and insight towards the creation of the ideal framework.
Python was created by a Dutch programmer named Guido van Rossum in 1989 as a “hobby” to keep him busy during his Christmas break from work. He named it “Python” after Monty Python’s Flying Circus. (Awesome.)
Python is a server-side scripting language that seems to be the guilty pleasure of the coding world. It’s open sourced and has a huge development community of contributing authors foremost of which, still to this day is Guido van Rossum himself to whom the community has affectionately given the title “Benevolent Dictator For Life” (or BDFL for short).
There is even a document circulating on the internet titled “The Zen of Python” where it summarizes the core philosophy of this programing language.
As far as web-development goes, Python is applied through a framework called Django named after one of the most influential jazz guitarists of the 20th century. Its ease of use makes it the “go to” framework for complex database driven websites like Instagram, Mozilla, and The Washington Times.
RUBY and the RUBY on RAILS framework
Ruby is an open sourced server-side programing language. It was designed and developed around the mid-1990’s by a Japanese computer scientist and software programmer named Yukihiro “Matz” Matsumoto.
By his own recounting, “Matz” was looking for “a genuine, object-oriented, easy to use, scripting language”. Since he couldn’t find one, he decided to invent one. When he was getting ready to name his language, he had narrowed it down to two names, “Coral” or “Ruby” ultimately deciding on “Ruby” because it was the birthstone of one of his colleagues. (Probably the one he had the crush on… jus sayin)
Many web developers believe ruby to be one of the easiest scripting languages to use, and those who I have encountered that use the RUBY on RAILS framework will swear by it. This – isn’t a surprise to me judging from the philosophy put forth by its creator Yukihiro “Matz” Matsumoto;
“Often people, especially computer engineers, focus on the machines. They think, ‘By doing this, the machine will run fast. By doing this, the machine will run more effectively. By doing this, the machine will something something something.’ They are focusing on machines. But in fact, we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.”
In closing, I have to say that I believe I have only really scratched the surface in terms of the sheer volume of scripting languages out there, but I endeavor to seek out and discover more. As I do so, I will be sure to document them in this blog in such a way as to give further insight to those that are just dipping their toes into the vast ocean that is web software development. It is my sincerest hope that at least some readers take something away from this, even if it is only a smile.