Choix de language pour débutant

MAChiavel

Membre actif
16 Septembre 2016
115
6
Bonsoir tout le monde !
Comme l'indique le titre de se sujet, j'aimerai apprendre à programmer sur mac (et si possible également Linux). J'ai fait un peu le tour de ce qui se disait et se conseillait pour commencer, mais n'ayant pas trouvé de conclusion évidente je viens vers vous.

Je pensais partir sur Python mais voilà que j'ai vu qu'Apple faisait de la "promotion" pour Swift ... (https://www.apple.com/fr/swift/)
Alors quelques questions :
- euh... mais au juste, c'est quoi la différence entre les 2 ? :D:angelic:
- lequel des 2 me conseilleriez-vous ?
- y en a t-il un autre plus adapté et tout aussi puissant pour débuter ?

Merci d'avance pour vos réponses ;)

Ps: je m'excuse par avance si c'est le mauvais endroit pour poster, mais je n'en voyais pas d'autre plus approprié
 
Vaste sujet, propice aux conseils contradictoires ;)

a) Swift


Swift est un langage créé assez récemment par Apple et qui fonctionne essentiellement sur macOS, même s'il est devenu Open Source et qu'un compilateur est disponible sur Linux.
C'est un langage compilé : on écrit son code, on le passe dans un programme appelé compilateur qui analyse le code et le transforme en code directement interprétable par le système et le processeur.
Donc : j'écris => je compile => j'exécute ce que j'ai compilé.
Et ce qui est compilé ne fonctionne que sur le système (et le type de processeur) pour lequel cela a été destiné.
Si je suis sur macOS, le le programme compilé ne fonctionnera que sur macOS.
Si je suis sur Linux/x86, le programme compilé ne fonctionnera que sur Linux/x86.

Swift est intéressant et semble rendre le développement plus simple sur macOS. Plus simple qu'avant où l'on utilisait un autre langage, l'Objective-C, un peu particulier.

Il reste que, malgré tout, Swift est surtout utilisé sur macOS et cela risque de durer.

b) Python

C'est un langage créé il y a déjà un moment par Guido van Rossum. Ce n'est pas un langage compilé, c'est un langage interprété. On dit aussi que c'est un langage de scriptng (en bon franglais).
Donc : j'écris le code => je l'exécute [il n'y a pas de phase de compilation] grâce à un interpréteur Python.
Il existe des interpréteurs Python pour quasiment tous les systèmes imaginables : macOS, Linux, *BSD, Windows, Android, iOS etc.
Le principe est que le code tu as écrit est transformé "à la volée" en code machine et exécuté dans la foulée.

Cela donne une grande souplesse de développement, cela permet de développer ici (sur Windows) et d'exécuter ailleurs (Linux, macOS...)

Il existe une ribambelle de langage de scripting : Python, Perl, Tcl/Tk, Lua, Ruby etc. et tous ont leurs spécificité.
Aujourd'hui, Python a été adopté dans le milieu de l'éducation et universitaire et jouit d'une grande popularité, notamment dans des domaines en vogue (IA par exemple).

Bref : il n'est pas loin d'être "universel".

==============

Il y a évidemment des pour et des contre.

Python a une très grande qualité, c'est la facilité qu'il offre de manier des nombres. Ce n'est sans doute pas un hasard s'il s'est imposé du côté des scientifiques. Une autre qualité est sa simplicité d'accès.
Mais il est interprété donc lent. Pour les tâches courantes, ce n'est pas un problème. Pour des calculs importants, on développe alors des bibliothèques en C qu'on appelle depuis Python.

Apparemment (je ne l'utilise pas), Swift est très élégant et aide à manipuler des objets et notions sophistiqués avec une certaine clarté (dont Objective-C ne jouissait pas). Étant compilé, il est bien sûr plus véloce et capable que Python.

Il est difficile de répondre à ta question (je ne suis pas enseignant) :
  • d'un côté, je pense qu'un peu de rigueur et de rigidité, ce qu'on a avec Swift et d'autres langages compilés, sont fondamentaux pour bien programmer, comprendre ce que c'est que le développement ; là, Swift est bien meilleur que Python à mes yeux ;
  • d'un autre côté, avec Python, on peut apprendre plus progressivement et réaliser quelque chose et le mettre au point plus en douceur.
Pour choisir, essaye de déterminer ce que tu veux réaliser : une application graphique pour Mac ? prends Swift.
Un programme autonome sans interface ? Plutôt Python. Une application graphique pour Linux ET macOS ? prends Python/QT (QT est une bibliothèque graphique).

De toutes façons, une fois habitué à un langage, il est intéressant d'en essayer d'autres. Donc commence par l'un et regarde l'autre un peu plus tard.

Note : tu as une foultitude de langages compilés à disposition. Parmi les récents et intéressants, il y Go, langage de Google qui a des aspects intéressants (et il est moins obsessionnellement orienté-objet que d'autres).
Entre les deux il y a aussi Java et C#.
 
  • J’aime
Réactions: MAChiavel
Vaste sujet, propice aux conseils contradictoires ;)
:D:angelic:

Aujourd'hui, Python a été adopté dans le milieu de l'éducation et universitaire et jouit d'une grande popularité, notamment dans des domaines en vogue (IA par exemple).

Bref : il n'est pas loin d'être "universel".

Merci pour ton explication et tes avis, c'est bien ce qui me faisait pencher pour Python, donc je pense que je vais commencer par apprendre à programmer en Python

Un programme autonome sans interface ? Plutôt Python. Une application graphique pour Linux ET macOS ? prends Python/QT
Je n'ai pas de "projet" spécial en tête, mais plus l'envie d'apprendre à coder/programmer de la façon la plus "universelle" possible pour pouvoir ensuite pratiquer librement.

Merci ! :merci: