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 UML.

XML

Voir la page XSLT - Les processeurs XSLT.

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

Les IDE 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.

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

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.