Programming Languages

Programming languages are used to describe the behaviot of a computer (includes mobile phones, tablets, embedded devices and servers) to perform a specific task. There are many programming languages and each of them has its own strengths and weaknesses. Some of the programming languages are general purpose and some of them are domain specific. Some of them are compiled and some of them are interpreted. Some of them are statically typed and some of them are dynamically typed.

A programming language is a formal specification of programs that can be executed by a computer. Every programming language has a syntax and a semantics.

The syntax of a programming language describes the valid "sentences" that can be written in the language. On the other hand, the semantics of a programming language describes the meaning of the "sentences" that can be written in the language.

Here are some langages that are popular in web development:

  1. Javascript
  2. Python
  3. Java
  4. C#
  5. PHP
  6. Go

Compiled and Interpreted Languages

Imperative Programming Language Paradigms

Procedural Programming

Object-Oriented Programming

Declarative Programming Language Paradigms

Functional Programming

Logic Programming

Types

Linters

Formatters

Package Managers

What is package manager? Package manager constraints Lock files Workspaces Monorepos

Code Editors

Using VSCode

You can use VSCode as your IDE. It is a good IDE for Javascript and Node.js development. Vscode has a lot of plugins that you can use. For instance, you can use Prettier plugin to format your code. You can use ESLint plugin to check your code quality. You can use GitLens plugin to see git history.

Visual studio supports sharing your IDE settings across different machines. You can use .vscode folder to store your settings. You can put your settings in settings.json file. You can put your tasks in tasks.json file. These are files are very imprtant because working in projects with different settings can be a problem. So, you need to keep your settings in version control. (Described in the next section)

Markdown

You will write your documentation in markdown format. Markdown is a lightweight markup language with plain text formatting syntax. It is designed so that it can be converted to HTML and many other formats using a tool. Markdown is often used to format README files, for writing messages in online discussion forums, and to create rich text using a plain text editor. You can check markdown format from here.

Programming LanguageParadigmInterpretedCompiledTypingCanonical LinterCanonical FormatterCanonical Package Manager
JavascriptImperativeYesNoDynamicESLintPrettiernpm
TypescriptImperativeYesYesStaticESLintPrettiernpm
PythonImperativeYesNoDynamicPylintBlackpip
JavaImperativeNoYesStaticCheckstyleGoogle Java FormatMaven, Gradle
C#ImperativeNoYesStaticStyleCopdotnet formatNuGet
PHPImperativeYesNoDynamicPHP_CodeSnifferPHP-CS-FixerComposer
GoImperativeNoYesStaticGolangCI-LintGoimportsGo Modules

Summary

Exercises

Extra Resources