Ceci est une ancienne révision du document !


Programmation

Cette page n'a pas la vocation de recenser la totalité des langages ni des outils disponibles. Il y en a tellement, et chaque programmeur a sa façon de faire. Une partie "liens externes" vous donnera quelques sites de qualité sur la programmation.

Outils généraux

Documentation hors ligne

  • Devhelp : Consultation hors ligne de documentation principalement sur le développement GTK+ et GNOME.
  • zeal : Consultation hors ligne de documentation sur plus de 190 langages de programmation. Site de zeal

Outils de gestion de version (Versionning)

Les outils de gestion de version permettent la synchronisation facile des équipes de développement, ils sont même quasiment indispensables quand il s'agit de travailler en équipes dispersées à travers le monde.

Système centralisé : Basé sur le modèle client serveur, le gestionnaire doit posséder une connexion au serveur pour effectuer des modifications sur la branche principale (commit). Il est possible d'avoir une copie locale qui permet de travailler en mode déconnecté, mais qui devra être synchronisée avec le serveur.

  • CVS : Gestionnaire de versions plus ancien (ancêtre de SVN)
  • CVS_Server : Tutoriel sur la création d'un serveur CVS
  • Subversion - Gestionnaire de versions (aussi appelé SVN)
  • Trac - Environnement de suivi de projet technique basé sur Subversion

Système distribué : Basé sur le modèle d'égal à égal, chaque machine est responsable de sa partie. Tant que l'on travaille sur sa partie, il n'est pas nécessaire d'avoir une connexion. Par contre pour se synchroniser avec une branche extérieure, il est nécessaire d'avoir un accès à cette branche.

  • git - Gestionnaire de versions créé par Linus Torvalds et très répandu.
  • Bazaar - Gestionnaire de versions distribuées, développé par Canonical
  • hg_mercurial - Gestionnaire de versions distribuées

Outils de comparaison de fichiers

  • diff - outil de comparaison de fichiers et de création de patchs.
  • sdiff - outil de comparaison de fichiers côte à côte.
  • meld - outil graphique qui compare vos fichiers et dossiers.
  • diffuse - outil graphique de comparaison de fichiers. (Paquet non disponible sur Ubuntu 20.041).)
  • tkdiff - outil graphique (interface X11) de comparaison de fichiers.
  • xxdiff - outil graphique (interface X11) de comparaison de fichiers et de dossiers. (Paquet non disponible sur Ubuntu 20.042).)
  • kompare - outil graphique de comparaison de fichiers et dossiers.
  • vimdiff - outil de comparaison de fichiers.
  • gvimdiff - outil graphique de comparaison de fichiers.
  • kdiff3 - outil graphique de comparaison et de merge (fusionnement) de fichiers et dossiers.
  • diffmerge - outil graphique de comparaison et de merge (fusionnement).

UML

Voir la page page sur UML

XML

Voir la page Xslt - Les processeurs XSLT.

EDI (Environnement de Développement Intégré)

Les EDI sont les principaux outils des développeurs. Ils bénéficient d'une page de documentation dédiée.

Éditeur de texte

Une alternative à l'utilisation d'un IDE est l'emploi d'un éditeur de texte et d'outils complémentaires individuels.

Voir la page éditeurs orientés pour la programmation.

Système

Langages généralistes

Python

  • kiki : un outil pour tester et apprendre les expressions rationnelles de Python.
  • idle : un éditeur facile à prendre en main.
  • RUR-PLE : un environnement d'apprentissage de la programmation Python de manière amusante, en programmant un robot.
  • Livres : Livres "Apprendre à programmer avec Python" de Gérard Swinnen sous licence Creative Commons
  • IPython - Shell pour Python amélioré.
  • Eric - Environnement de développement intégré adapté à la programmation Python et Ruby.
  • SPE - Comment installer l'éditeur Python SPE.
  • WingIDE - Environnement de développement professionnel dédié au développement de projets en Python.
  • gEcrit http://gecrit.sourceforge.net/ - Nouvel IDE pour Python. (n'est plus en développement)
  • Spyder - Scientific PYthon Development EnviRonment
  • PyCharm est un Environnement de développement intégré (EDI) Python développé et édité par JetBrains basé sur la plateforme IntelliJ.

Voir la page dédiée à python

Java

  • Java - Comment installer le support Sun Java (JRE) (installation, exécution des « .jar » et plugin de Mozilla Firefox) ?
  • JBuilder 2005 - Comment installer l'environnement de développement intégré Borland JBuilder 2005 ?
  • Tutoriel sur les bases de Java : Apprenez à programmer en Java sur OpenClassrooms.
  • eclipse - Comment installer l'IDE Eclipse pour java
  • IntelliJ IDEA - énormément complet, gestion Git intégré, et terminal inclus

Voir la page dédiée à java

Ruby

  • Arcadia IDE - IDE en TCL/TK et dedié à ruby, possède un debogueur. Accessible depuis gem ou sur rubyforge
  • Ruby on Rails : Rails est un framework open-source d'une grande qualité destiné aux développements d'applications et services web en Ruby.

Voir la page dédiée au Ruby

Rust

une excellente vidéo de présentation de Rust : https://vid.freedif.org/w/bTDSwrteuWprd7eCA8Wyfx.

C et C++

Voir la page GCC, le jeu de compilateurs GNU

Cours (fr):

Nous vous invitons à consulter le support programmation C mis à votre disposition :

  • Qt-Creator - l'IDE par excellence pour développer en Qt : débogueur, auto-complétion, facilité de prise en main…

Voir la page dédié à la programmation C/C++

Pascal

  • Lazarus - IDE basé sur Free Pascal et semblable à Delphi
  • fpc - Compilateur Free Pascal

Microsoft .NET / C# / VB .NET

Pour programmer en C# ou VB.NET sur GNU/Linux, la solution actuellement conseillée est .NET, plateforme gratuite, open source et multiplateforme.

Le framework Mono, une implémentation libre de la plateforme de développement Microsoft .NET, est toujours disponible mais il est aujourd'hui dépassé, puisqu'il correspond à la version 4.x de .NET.

voir la page dédiée à C#
voir la page dédiée à Mono

Langages et pseudo-langages spécialisés

Bases de données

Le langage SQL avec un noyau de commandes commun à MySQL, MariaDB, SQLite, PostgreSQL et aussi certaines bases propriétaires.

En pseudo langage, il y a les ORM tel que, pour le PHP : Doctrine, Eloquent

Web

Le développement web, création de pages internet et de script PHP, etc.

Voir aussi la sélection du portail "entreprise".

Maquettage de site avec un logiciel de mockup

Un logiciel de mockup est un outil bien pratique qu’il faut compter dans sa toolbox au moment de se lancer dans un projet de création de site web. C’est ce type de logiciel qui va vous permettre de concevoir les maquettes fonctionnelles ou wireframes des pages de votre site.

  • Balsamiq : outil payant mais vraiment facile à prendre en main (Page en anglais expliquant comment l'installer avec Wine)
  • Pencil Evolution : outil gratuit

Création d'animations pour le web

  • SVG : création d'animations SVG
  • HTML5 - JavaScript (AJAX-JQuery)

Mise en ligne du site

Voir le portail FTP.

Vérification du rendu des sites créés

Voir le portail navigateur.

Systèmes de gestion de contenu (CMS)

Voir le portail CMS

Serveurs de développement web

Transformation C/C++ (ou autres ) vers javascript / html

Description du processus :

  1. compiler code (c++ par exemple ) vers LLVM. Des compilateurs : llvm-gcc, clang, …
  2. Compiler le code LLVM vers javascript
    1. llvm js backend (à vérifier)

HTML5 implémente les websockets, et une plage mémoire pour des applications web.

Google_Native_Client est un logiciel de sandbox qui permet l'exécution de code natif x86 dans un environnement confiné et contrôlé par un navigateur web. (source : Wikipédia)

Le compilateur Js_of_ocaml propose une compilation presque complète depuis l'OCaml vers le JavaScript. Tous les navigateurs récents sont compatibles.

HTML / XHTML / CSS

Le WYSIWYG est le fait de voir directement ce que l'on édite au format final, c'est-à-dire que ce que vous éditez ressemble fortement au résultat final publié.

  • Seamonkey, éditeur HTML (Composer) et navigateur web ensemble;
  • BlueGriffon, éditeur HTML supportant les plus récentes technologies Web (HTML5, CSS3), avec des add-ons pour des fonctions de base payants ;
  • Dreamweaver, éditeur HTML payant, s'installe parfaitement avec Wine.
  • LibreOffice Writer, permet de créer des pages html simples et rapidement ;
  • w3c-markup-validator, validateur HTML ;
  • Komodo Edit, éditeur (HTML, CSS, RUBY, PYTHON…) simple et performant ;
  • Sublime-Text éditeur léger reconnaissant 44 langages de programmation et permet l'ajout de fonctionnalités avec des plugins

PHP

Serveur

  • lamp : installer un serveur LAMP (Linux, Apache, Mysql, Php)

Éditeur

  • Bluefish : éditeur syntaxique orienté PHP. (interface GTK+)

Framework

  • symfony : framework PHP très en vogue
  • Laravel : framework PHP riche et très populaire
  • Jelix : framework PHP français assez léger et assez simple d'utilisation
  • Zend Framework : Zend Framework est un framework open-source d'une grande qualité destiné aux développements d'applications web et de services web avec PHP.
  • CodeIgniter : un framework très léger et plus facile à prendre en main que Symphony et ZenFramework.
  • FuelPHP : un successeur pour CodeIgniter ? (voir l'article de Novius labs)
  • Atomik_Framework: le petit dernier, super léger … peut-être trop. le projet n'est plus en développement depuis 2014.

Packages

  • Composer : Gestionnaire de package.
  • Packagist : regroupe des packages utilisable avec composer

NodeJs

Basé sur JavaScript nodejs est un environnement d'exécution exécuté coté serveur.

Le développement d'applications

Cette partie concerne aussi bien la simple compilation, la programmation de petits programmes que la création de programmes ambitieux !

Compiler un programme

Création de paquets .deb

Les paquets .deb sont les "installeurs" de programmes d'Ubuntu, ces pages vous expliquent comment les créer.

Internationaliser un programme

Développement Android

  • Ubuntu-make : Projet pour rendre plus simple la configuration d'un environnement de développement pour Android.

Android Studio

  • Android Studio: Atelier logiciel d'applications natives Android proposé par Google

Voir aussi

Développement de jeux vidéo

Logiciels et utilitaires (par langages)

Les outils de base de données

  • DbVisualizer - Outil générique de connexion aux bases de données

Cross compilation Linux - Windows

MingW32 - Cross Compilateur permettant le développement sous Linux d'applications C à exécuter sous Windows

Calcul formel

Virtualisation

Les outils présentés ici sont utilisés pour virtualiser un environnement tel qui peut l'être dans les applications client/serveur.

  • docker - utilise le noyau de l’hôte pour virtualiser des services ou des applications dans des conteneurs.
  • vagrant - utilise virtualbox ou VMware pour émuler une "box" (l'image d'une machine pré-paramétré) Vagrant

Autres

  • sdl - une bibliothèque permettant de réaliser des fenêtres, elle possède d'autres modules tel que l'image, le son, les polices d'écriture via freetype2.
  • fmod - Comment utiliser la fmod en C/C++ ?
  • programmation_sur_livecd - Comment programmer sur un live CD ?

Les outils d'analyse et d'optimisation du code

Reverse engineering

Si vous pratiquez le reverse engineering

Ressources

Liens externes

Pages concernant la programmation


NE PAS SUPPRIMER – YoBoY
Le 23/02/2011, 10:23troisseize
Le 03/02/2024, 12:07 
Le 08/04/2011, 21:39tiphedor
Le 27/09/2010, 14:20psychederic
Le 05/03/2025, 16:39 
Le 30/04/2013, 15:25 
Le 14/04/2012, 22:34Karting06
Le 23/01/2014, 10:11Computing Froggy
Le 19/06/2008, 18:10 
Le 26/02/2008, 21:10_Enchained
Le 02/02/2007, 20:43adam0509
Le 07/12/2017, 21:13Mininux MiniCraft
Le 16/04/2012, 16:11 
Le 18/01/2011, 10:23Lemaitre
Le 21/02/2026, 13:31 
Le 11/05/2011, 12:32Matthieu
Le 22/01/2019, 14:18MaMieMando
Le 11/09/2022, 11:49 
Le 11/03/2026, 16:09Bcag2
Le 19/03/2009, 18:11 
Le 15/02/2023, 10:31rafbor
Le 19/06/2007, 22:48opax
Le 17/05/2007, 22:05DvP
Le 31/08/2022, 23:36 
Le 08/03/2017, 15:30L'Africain
Le 24/01/2026, 19:17 
Le 23/12/2006, 14:27thedamocles
Le 20/03/2007, 21:20mr_pouit
Le 20/03/2007, 21:21mr_pouit
Le 04/09/2011, 14:31YannUbuntu
Le 04/02/2007, 11:09tbonacco
Le 27/07/2010, 07:01YannUbuntu
Le 20/11/2009, 21:00v0n
Le 27/04/2010, 19:10 
Le 11/02/2010, 19:56scholi
Le 21/08/2007, 19:51Lestat the vampire
Le 17/01/2026, 20:18 
Le 22/04/2015, 16:26moN
Le 20/10/2007, 09:33gloubiboulga
Le 18/03/2019, 17:51 
Le 18/12/2012, 23:06couverture-jonathan-b
Le 14/12/2006, 17:01
Le 11/09/2022, 11:50 
Le 11/09/2022, 11:29 
Le 15/04/2012, 14:55Jérôme Deuchnord
Le 24/04/2009, 18:08 
Le 25/11/2006, 17:31Olivier Staquet
Le 31/01/2007, 10:57Blackpegaz
Le 08/01/2024, 12:03fab75
Le 16/08/2019, 18:16KorgMartin0067
Le 17/11/2008, 12:53 
Le 13/11/2008, 22:49 
Le 08/07/2007, 16:17thedamocles
Le 11/09/2022, 12:23 
Le 01/10/2007, 16:31 
Le 13/05/2007, 12:41Twinoatl
Le 09/11/2014, 14:05Davy39
Le 27/09/2010, 14:46psychederic
Le 06/07/2016, 16:28bcag2
Le 17/10/2010, 17:37Cuthalion
Le 24/12/2011, 07:09luron
Le 11/09/2007, 09:33 
Le 26/09/2012, 18:42ordiman85
Le 11/09/2022, 11:07 
Le 23/12/2008, 20:09johndescs
Le 11/09/2022, 12:13 
Le 04/05/2010, 13:21 
Le 20/09/2017, 12:21Computing Froggy
Le 08/04/2009, 19:52 
Le 08/07/2009, 22:24 
Le 31/12/2011, 15:21Lhoumaud David
Le 25/10/2017, 21:24Roschan
Le 21/11/2021, 16:22zococo
Le 04/04/2012, 20:45Immortal-PC
Le 08/10/2007, 19:38polarman
Le 27/04/2020, 01:08YannUbuntu
Le 16/03/2013, 15:49grigouille
Le 09/08/2008, 22:59geenux
Le 10/03/2007, 13:25verveine
Le 20/10/2009, 16:41psychederic
Le 25/05/2011, 14:37hornblende
Le 01/06/2009, 22:49 
Le 25/10/2009, 15:00Sherwood51
Le 11/09/2022, 13:12 
Le 28/10/2015, 18:08mvvvv
Le 21/12/2006, 18:58Blackpegaz
Le 26/04/2007, 09:12shaolin17
Le 27/04/2010, 19:10 
Le 23/02/2021, 08:06 
Le 27/04/2010, 19:10 
Le 06/02/2008, 15:59mknux
Le 17/10/2020, 11:10TechnUbuntu
Le 11/09/2022, 11:59 
Le 08/03/2007, 16:43thedamocles
Le 11/05/2019, 18:12spnux
Le 29/02/2024, 12:55 
Le 07/06/2008, 00:10popi
Le 29/06/2009, 17:33 
Le 31/05/2010, 23:56 
Le 16/02/2016, 14:49cafecho
Le 30/01/2007, 08:12Blackpegaz
Le 20/03/2026, 11:25Bcag2
Le 27/04/2010, 19:10 
Le 09/08/2007, 21:07xcxl
Le 02/09/2010, 14:42TheCaméléon
Le 21/07/2010, 04:54YannUbuntu
Le 18/11/2022, 12:10dzecniv
Le 11/09/2022, 11:40 
Le 18/10/2007, 13:57bertrandperrier
Le 30/10/2025, 14:46Bcag2
Le 27/04/2010, 19:10 
Le 14/04/2008, 13:26flozz
Le 16/11/2009, 20:44psychederic
Le 01/11/2007, 14:32fanfantasy7
Le 11/03/2010, 10:37YannUbuntu
Le 29/02/2008, 00:27Spomky
Le 14/11/2008, 15:47 
Le 19/12/2015, 19:07sangorys
Le 24/05/2009, 20:03 
Le 02/02/2015, 10:05hector
Le 04/08/2007, 03:04Ner0lph
Le 22/03/2015, 10:08G-Tux
Le 21/07/2010, 19:20kwiky
Le 11/09/2022, 11:39 
Le 14/08/2020, 23:09 
Le 27/11/2019, 17:58Bcag2
Le 27/04/2010, 19:10 
Le 27/04/2010, 19:10 
Le 28/12/2006, 14:00ostaquet
Le 04/04/2017, 11:49 
Le 14/06/2023, 18:45Bcag2
Le 27/04/2010, 19:10 
Le 13/01/2012, 13:02psychederic
Le 29/02/2012, 12:16nekdev
Le 27/11/2011, 01:32kshegzyaj
Le 31/08/2007, 20:45tshirtman
Le 01/05/2007, 09:04ymulleneers
Le 03/11/2009, 15:08psychederic
Le 17/04/2008, 20:35v4np13
Le 01/03/2023, 20:56 
Le 10/01/2007, 06:54 
Le 16/02/2016, 14:46cafecho
Le 22/01/2019, 15:05MaMieMando
Le 06/06/2009, 18:49Ner0lph
Le 21/11/2006, 22:17Olivier Staquet
Le 13/01/2026, 09:30Francois A.
Le 30/06/2022, 18:43Bcag2
Le 29/09/2008, 13:19smon
Le 03/04/2011, 02:38themadmax
Le 11/09/2022, 10:35 
Le 23/02/2007, 14:58thedamocles
Le 01/03/2023, 16:09Franc SERRES
Le 18/01/2011, 23:10Equilibre
Le 06/12/2008, 19:12orkerone
Le 22/03/2009, 13:03Skippy le Grand Gourou
Le 31/08/2022, 23:33 
Le 16/05/2008, 22:38SaiyanRiku
Le 08/01/2008, 10:37commandant
Le 24/02/2013, 19:05Djiboun
Le 04/10/2021, 21:30spnux
Le 12/06/2015, 15:46BlackEco
Le 04/06/2011, 09:04volfoni54
Le 20/03/2026, 14:44Bcag2
Le 14/11/2010, 18:15magestik
Le 30/06/2008, 13:12jlbrd
Le 23/07/2009, 19:57Tanguy Arnaud
Le 11/09/2022, 11:45 
Le 03/02/2007, 14:07wouf
Le 27/04/2010, 19:10 
Le 08/11/2008, 15:04 
Le 11/09/2022, 12:09 
Le 23/05/2013, 09:08Mimilus
Le 17/07/2017, 01:24J5012
Le 27/04/2010, 19:10 
Le 02/11/2008, 14:12 
Le 27/09/2010, 13:38psychederic
Le 19/07/2007, 23:25Ner0lph
Le 12/02/2008, 16:11elema
Le 22/10/2013, 16:30andykimpe
Le 20/04/2009, 22:47 
Le 04/06/2011, 08:56volfoni54
Le 30/10/2011, 14:51ordiman85
Le 27/04/2011, 20:32aldian
Le 24/05/2017, 19:31Roschan
Le 20/11/2007, 23:46 
Le 15/09/2013, 12:15Pika3D
Le 03/09/2021, 09:26 
Le 18/10/2009, 21:54psychederic
Le 27/04/2010, 19:10 
Le 14/09/2013, 19:03eliastre100
Le 11/09/2022, 12:10 
Le 16/02/2009, 11:17 
Le 29/11/2017, 16:05Bcag2
Le 24/04/2020, 18:22krodelabestiole
Le 12/06/2008, 19:13 
Le 05/07/2013, 09:39Reneca
Le 26/09/2017, 13:44zianis
Le 08/12/2015, 09:25L'Africain
Le 27/09/2010, 15:33psychederic
Le 24/10/2017, 13:49Roschan
Le 25/02/2016, 15:55BlackEco
Le 14/04/2008, 16:07flozz
Le 22/10/2008, 01:08Dradge
Le 01/09/2022, 00:07 
Le 30/12/2006, 12:02 
Le 01/03/2023, 17:41Franc SERRES
Le 30/11/2008, 22:30SeTtHe
Le 28/03/2007, 13:07Uims
Le 07/10/2019, 10:16jamaique
Le 02/12/2006, 10:08Emmanuel Le Normand
Le 05/07/2008, 20:08Crazyfaboo
Le 03/10/2025, 00:42Kro
Le 21/10/2012, 19:53Gemnoc
Le 09/01/2011, 04:46Hizoka
Le 23/10/2017, 14:27Bcag2

liens à corriger

FIXME les pages pointant vers l'ancienne page "développement" doivent être corrigées pour pointer vers la page "programmation".


Contributeurs : Fabien26. Phossele, darkjam, Tinato,