WebNuX.fr

un blog sur linux, le web et pleins d'autres choses

Quel langage de programmation en 2014?

| Comments

Quel langage de programmation allez-vous utiliser en 2014 pour vos projets web? Est-ce que vous allez coder votre site en php, python, javascript, ou en ruby? Vous ne savez pas encore? Je vais essayé de résumer les différents langages de programmation existants. Ensuite nous verons dans un autre article, les différents framework existants dans chaque langages.

Comparons d’abord les langages de programmation.

Classement TIOBES d’Avril 2014

Retrouvez le classement complet ici.

En 7ème place, on a le PHP

Le PHP a été créé par Rasmus Lerdorf en 1994. C’est un langage interprété. PHP est influencé par Perl, C, C++ et Java. La dernière version de PHP est la version 5.5.11 (2 avril 2014)

Pour plus d’information sur le PHP : Cliquez ici

(un_exemple_php.php) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
    class Perso {
        const PV_initial = 2000;
        private $PV;

        public function __construct($PV = 'N/A') { // Paramètre optionnel
            if (!is_numeric($PV) || !($PV > 0 && $PV < 100000000))
                $this->PV = self::PV_initial;
            else
                $this->PV = $PV;
        }
        public function getPV() {
            // Accesseurs
            return $this->PV;
        }

        public function isDead(){
            return $this->PV == 0;
        }
    }

    // Création d'une classe enfant de Perso 
    class Magicien extends Perso {
        private $magie;
    }

    // Création d'une instance de classe 
    $perso = new Perso(1000);

    // Utilisation de l'objet 
    echo 'Votre personnage a ' . $perso->getPV() . ' PV.' . PHP_EOL;

    // Constantes de classes  
    echo 'Le PV par défaut attribué à un nouveau personnage est de ' . Perso::PV_initial . '.';

    // Destruction de l'objet 
    unset($perso);
?>

En 8ème place, on a le Python

Le python a été créé par Guido van Rossum en 1990. C’est un language de programmation orienté objet. La dernière version de python est la version 3.4.0

Pour plus d’information sur le Python : Cliquez ici

(un_exemple_python.py) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Vector2D:
    def __init__(self, x, y):
        # On utilise un tuple pour stocker les coordonnées
        self.coords = (x, y)

    def __add__(self, other):
        # L'instruction a+b sera résolue comme a.__add__(b)
        # On construit un objet Vector2D à partir des coordonnées propres à l'objet, et à l'autre opérande
        return Vector2D(self.coords[0]+other.coords[0], self.coords[1]+other.coords[1])

    def __repr__(self):
        # L'affichage de l'objet dans l'interpréteur
        return "Vector2D(%s, %s)" %self.coords

a = Vector2D(1, 2)
b = Vector2D(3, 4)
print(a + b) # Vector2D(4, 6)

En 9ème place, on a le JavaScript

Le javascript est un langage de scripting côté client créé par Brendan Eich en 1995. C’est un langage a faible typage.

Pour plus d’information sur le Python : Cliquez ici

(un_exemple_javascript.js) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 function MonPrototype() {
   this.a = 1;
   this.b = function() {
     return 'prototype';
   };
   this.e = 3;
 }
 function MaClasse() {
   this.c = 2;
   this.d = function() {
     return 'classe';
   };

   this.e = 4;
 }

 MaClasse.prototype = new MonPrototype();

 monObjet = new MaClasse();

 monObjet.a;   // 1
 monObjet.b(); // 'prototype'
 monObjet.c;   // 2
 monObjet.d(); // 'classe'
 monObjet.e;   // 4

En 11ème place on a le Ruby

Le Ruby a été créé par Yukihiro Matsumoto en 1995. C’est un langage de programmation orienté objet. (1,2,3 … appartiennent à la classe Fixnum ^^) Le ruby est fortement influencé par Perl, Lisp, Python. C’est un langage à typage fort et dynamique. Parmis les projets en Ruby, on retrouve : Ruby On Rails, Chef, Puppet, Vagrant, Redmine, et pleins d’autres projets.

Pour plus d’information sur le Ruby : Cliquez ici

(un_exemple_ruby.rb) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
module AnimalSkills
  def eat
    puts "I'm eating !"
  end

  def move
    puts "I'm moving !"
  end

  def express; puts "I'm expressing !" end
end

class Animal
  include AnimalSkills # mixin

  @@name = 'an animal' # variable de classe

  def initialize size, weight, color # initialisation des variables d'instance
    @size = size.to_i
    @weight, @color = weight.to_i, color.to_s
  end

  def describe
    puts "I'm #{@@name} !"
    puts "I'm #{@size} meter tall, I weigh #{@weight} kilograms and I'm " << @color
  end
end

class Zebra < Animal # héritage
  @@name = 'a zebra' # rédéfinition de la variable de classe

  def initialize(size, weight, color = 'black and white') # surcharge
    super # appel de la méthode de la classe mère (Animal)
  end
end

z = Zebra.new(1, 50)

z.describe # => I'm a zebra ! / I'm 1 meter tall, I weigh 50 kilograms and I'm black and white
z.eat # => I'm eating !

Je vous conseille d’essayer les différents langages de programmation pour avoir votre propre avis. Pour ma part je préfère de loin Ruby pour sa simplicité mais aussi pour son côté orienté objet. J’aime la syntaxe agréable à écrire et relire de Ruby. Il y a aussi beaucoup projets opensource (RoR, Puppet, Vagrant etc…) basés sur Ruby.

Comments