Let’s discover  Ruby on Rails: Basic concepts of Web
Tags: ruby, rails, webdev, productivity
Published: 2020-06-11 00:51:49

Hello friends, I hope you are well ... In my [previous article](https://dev.to/lionnelpat/let-s-discover-ruby-on-rails-4knl) , I talked about my background as a developer and the reasons why I suggest you discover the Ruby on Rails framework. After reading it, one of my friends asked me a few questions about Ruby and In this article, we are going to see the basic concepts of the web.  So Are you ready? let's Go!


#[What is the web? How does the web work?]()

Good question ... Often confused with the Internet which is the great network of networks, the web is only part of it. Invented by **Tim Berners-Lee** and **Robert Cailliau** at the end of the 1980s, the Web comes down to this tool which allows the consultation, via a browser, of the content coming from Internet sites (or Web sites).

One of the easiest ways to illustrate how the web works are the relationship between a customer and a server in a restaurant. When the customer goes to a restaurant, it is because he needs a service *(a good Yassa Chicken: delicious Senegalese dish)*. The latter will, therefore, place an order with the server. He will process his order, or have it processed by whomever it may concern, (cook, etc. etc.) and once the dish is ready, the waiter will send it to the customer who will be happy to consume it. This happens in the best of worlds, but alas we know that it does not always happen that way because sometimes the response of the server can be negative…

On the web side, the client or  **Frontend** will be your browser (Google Chrome, Firefox, Internet Explorer, etc.). It is through him that you will request content via a page ... browsers today with a few simple clicks will retrieve your request and send it to the web server. It's our **Back-end!**

The cook represents a super machine with several applications installed which will deal with your request in record time and send you the desired content. See the diagrams below for clarity.

![basic web architechture](https://media-exp1.licdn.com/dms/image/C4E12AQFMgZ69uurekA/article-inline_image-shrink_1000_1488/0?e=1597276800&v=beta&t=KPNFYtcQt9UXv4w-qOPsSrqkuwiNc-byNw0x0LNA2gs)

You have probably noticed in this image that there are elements that you may or may not be familiar with. HTML. CSS. JS etc ... Well, this is what we call Programming Languages ​​...

#[What is a programming language? What are the different types?]()

A programming language is simply a way of communicating with your computer to get results. according to [Wikipedia](https://www.wikipedia.com), it is a conventional notation intended to formulate algorithms and produce computer programs that apply them. As intelligent as they have become today, but the little secret is that a computer does not understand anything other than 0 and 1. what is called binary code… so to tell it something you have to write it a following 0 and 1… Which is not very easy for us humans…. So very ingenious people invented a syntax less abstract for us human beings but via which we could give instructions to the computer and obtain results…. this is the birth of Programming Languages ​​...

There are dozens and even hundreds. Each was designed for a purpose, and above all with a particular philosophy. Depending on the area and depending on performance, you will find a variety of languages. So among the oldest such as FORTRAN, COBOL, Language C, C ++, Perl, Python, Ruby, Java, PHP, Javascript, Go, and the most recently such as Dart, Rust, Kotlin, Swift. the continuation here

#[What about Ruby?]()

As mentioned above, ruby ​​is a dynamic open-source programming language that emphasizes simplicity and productivity. Its elegant syntax makes it easier to read and write. it was created by the Japanese **Yukihiro "Matz" Matsumoto**.

The latter has brought together certain functionalities of his favorite languages ​​of the time (mainly Perl, Smalltalk, Eiffel, Ada, and Lisp) in order to imagine a new language which cleverly mixes imperative and functional programming. On several occasions, he said his goal was "to try to make Ruby as natural as possible, not necessarily simple. But we will come back to this later ...

So Ruby on Rails is also a programming language? Uhh NO!


#[What is a Framework?]()

So Ruby on Rails is not a programming language but rather a Framework. According to the [journaldunet](https://www.journaldunet.fr/) site, a framework (or software infrastructure in French) designates computer programming a set of tools and software components on the basis of software or an application. The objective of the framework is to simplify and standardize the work of developers. It functions like a framework or a boss, but it’s handling supposed to have already knowledge of the programming language.

We can also define it as a set of tools and libraries intended to improve developer productivity. Indeed, the idea is to give you access to the recommended codes that you can reuse for the development of a site, a mobile application, a game, an extension, etc.

In web development, there are many frameworks, some designed for large projects while others are useful for speeding up the development of small tasks. So there are several frameworks such as [Sinatra](http://sinatrarb.com/), [Padrino](http://padrinorb.com/), [Hanami](http://hanamirb.org/), [Grape](http://www.ruby-grape.org/), [Cuba](https://cuba.is/), [Roda](http://roda.jeremyevans.net/), [Ramaze](http://ramaze.net/), [NYNY](http://alisnic.github.io/nyny/)

Of course of all, the most popular and the one we will see in this series is the Ruby on Rails frame also called Rails or RoR. it was created in 2003 by David Heinemeier Hansson while he was working on a web project called Basecamp, a project management tool. it was officially released in July 2004 as an open-source project. Since then, many technology companies have adopted for the creation of their platform. [Airbnb](airbnb.fr), [Basecamp](basecamp.com), [GitHub](https://github.com/), [SoundCloud](https://soundcloud.com/), [Slideshare](https://fr.slideshare.net/), [Shopify](http://shopify.com/), [Fiverr](https://www.fiverr.com/)… to name a few.

In the next articles, we will introduce the Ruby language, it's functioning, syntax, etc, and then we will talk about the web with Ruby on rails. So, see you soon!

Sources:

* [https://insights.daffodilsw.com/](https://insights.daffodilsw.com/)
* [https://www.ruby-lang.org/fr/about/](https://www.ruby-lang.org/fr/about/)
* [https://www.codeur.com/](https://www.codeur.com/)
* [https://www.journaldunet.fr/](https://www.journaldunet.fr/)
* [https://www.wikipedia.com/](https://www.wikipedia.com/)