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 extérieurs" vous donnera quelques sites de qualité sur la programmation.

Outils généraux

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 Torsvald 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.
  • tkdiff - outil graphique (interface X11) de comparaison de fichiers.
  • xxdiff - outil graphique (interface X11) de comparaison de fichiers et de dossiers.
  • 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 de fichiers et dossiers.
  • diffmerge - outil graphique de comparaison et de merge.

UML

Reportez-vous à la page sur UML

XML

  • Xslt - Les processeurs XSLT.

Environnement de Développement Intégré

Tout d'abord, qu'est ce qu'un EDI ? Un EDI (Environnement_de_développement_intégré) est un logiciel 3 en 1 permettant au programmeur d'écrire, de compiler et de déboguer son programme avec un seul logiciel.

Web : HTML, CSS, Javascript

: dépôt officiel : installation simple.

: installation manuelle : peu être compliquée pour un débutant.

: non disponible.

EDI généralistes

EDI Langages Dépôt PPA Téléchargement
Compilation
Notes
Anjuta C, C++, Java, Python S’intègre bien dans les environnements GTK classiques (Mate, Xfce, etc.)
aptana_studio Web, Python, PHP, Ruby Existe aussi en tant que plugins pour Eclipse
Builder C, C++, Python, Vala, Web, etc. IDE simple, moderne et moderne du projet Gnome, avec gestion avancée de la coloration, de l'autocomplétion, et des formats d'empaquetage modernes comme Flatpak
Code_Blocks C, C++, Fortran, Python IDE orienté C, C++ et bibliothèques
Extensible par plugins
Eclipse Java, C, C++, Web, PHP, Python, Ruby Version obsolète dans les dépôts
Par défaut en java, demande l'installation de plugins pour les autres langages
Geany Web, C, C++, JAVA, PHP, Python, Ruby… IDE très léger et polyvalent. Il est aussi considéré comme un éditeur de texte
jEdit Web, C, C++, JAVA, PHP, Python… éditeur de texte écrit en Java. Des dizaines de plugins permettent d'ajouter des fonctionnalités très variées, de la gestion de projet à l'exécution de commandes.
Kdevelop C, C++, Java, Python, Ruby, Perl, Fortran, ADA, PHP IDE très complet avec débogueur intégré.
NetBeans Web, C, C++, JAVA, PHP, Ruby IDE libre, complet et multiplate-formes codé en Java
MonoDevelop C#, .NET, C++, Java S'utilise comme Visual Studio.
visual studio code C#, C/C++, Python, Go, PHP,… Un logiciel Microsoft Open Source qui existe pour Linux… 8-o, ça existe ! basé sur le framework Electron

Éditeur de texte

Une alternative à l'utilisation d'un EDI est le développement à l'aide d'un éditeur de texte suivi d'une compilation manuelle.

  • Emacs - Éditeur de texte très puissant mais long à maîtriser.
  • Vim - Éditeur de texte très puissant mais long à maîtriser.
  • SciTE - Éditeur de texte léger et performant.
  • Nano - Un éditeur en console facile à maîtriser.
  • gEdit - Éditeur de texte léger, assez performant et plutôt configurable.
  • Kate - Éditeur de texte à tout faire, inclus dans KDE, gérant la coloration syntaxique pour l'édition de la plupart des codes sources ;
  • Atom - Éditeur de texte léger avec de nombreux plugins. Aussi disponible via un PPA fourni par WebUpd8 team.
  • Brackets - Éditeur de texte léger. Aussi disponible via un PPA fourni par WebUpd8 team.
  • sublime-text - éditeur de texte à mi-chemin de l'IDE avec une auto-completion des fonctions de base de différents langages supportés

Système

Langages généralistes

Python

  • Acire : un outil graphique d'aide à l'apprentissage de la programmation en 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 - Eric Python IDE - Comment installer l'éditeur Python Eric.
  • 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.
  • Spyder - Scientific PYthon Development EnviRonment

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 l'ex site du zéro, OpenClassrooms.

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.

C++

Cours:

Formation en vidéo sur le langage C (par Naoki)

Apprenez à programmer en C Le C++ facile (OpenClassrooms, ex Site du Zéro)

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…
  • Edyuk - IDE C++/Qt4 très complet avec débogueur intégré.
  • Qdevelop - IDE C++/Qt4 plutôt complet avec débogueur intégré (site)

Pascal

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

Microsoft .NET / C# / VB .NET

  • Mono - Comment installer Mono? (implémentation libre de la plate-forme de développement Microsoft .NET)

Web

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

Cours : Formation au développement web en vidéo (HTML 5, CSS 3 , PHP, SQL, JavaScript et XML) par Naoki ( This video is unavailable. 2016.04.06 )

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

Création d'animations pour le web

  • SVG : création d'animations SVG (alternative libre au Flash)
  • HTML5 - JavaScript (AJAX-JQuery)
  • Flash : création d'animations Flash - OBSOLÈTE

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. Emscripten (site)
    2. llvm js backend (site) a vérifier

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

  • NativeClient (site)( de google ) Lancer du code natif dans une application web : nécessite un navigateur compatible :

Le compilateur js_of_ocaml (http://ocsigen.org/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é.

  • Kompozer, éditeur HTML (conseillé pour les débutants en création de site web) ;
  • 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 ;
  • Amaya, édition XHTML conçu par le W3C et l'INRIA avec visualisation des animations svg ;
  • Dreamweaver, éditeur HTML payant, s'installe parfaitement avec Wine.
  • Firebug | Très bonne extension de Firefox qui permet d'éditer, debugger, monitorer du CSS, HTML, et du JavaScript live.
  • LibreOffice Writer, permet de créer des pages html simples et rapidement ;
  • Cssed, éditeur et validateur de feuilles de style CSS ;
  • 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+)
  • gPHPEdit : éditeur syntaxique orienté PHP.

Framework

  • symfony : framework PHP très en vogue
  • 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. (voir la revue de Hecube)
  • FuelPHP : un successeur pour CodeIgniter ? (voir l'article de Novius labs)
  • Atomik : le petit dernier, super léger … peut-être trop. Vous pouvez vous faire une idée avec l'article du site du zéro.

Cache PHP

Packages

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

NodeJs

Basé sur JavaScript nodejs est un langage de script 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

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

Gambas

  • Gambas - Présentation de l'IDE Gambas (IDE proche de Visual Basic).

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é)

Autres

Les outils d'analyse et d'optimisation du code

Reverse engineering

Si vous pratiquez le reverse engineering

  • Bokken,un framework en python basé sur Radare sous licence libre

permet de faire de l'analyse de binaire. Il supporte les fichiers au format PE, Elf et mach0, et les architectures ARM, i386 et x86-64

Ressources

Liens internes

Liens externes

Pages concernant la programmation


NE PAS SUPPRIMER – YoBoY
Page
a2ps
Acire
Adobe AIR
AlgoBox
Alice - Programmation visuelle
Amaya
AnalyseSi
Android
Anjuta (IDE)
ant
Aptana Studio
Aspiration de sites avec httrack
Bazaar
Bazaar Explorer
Bluefish
BlueGriffon
Bookmarklet : Des Marques pages Scriptés
Caml Light
Cas particuliers d'empaquetage
cgit
Checkinstall : Créer facilement un deb à partir des sources
Code source du lecteur d'empreintes Validity™ chipset VFS 0050 et son tutoriel de compilation
Code::Blocks
Comment compiler un noyau sur mesure ?
Comment créer des paquets ?
Comment demander l'inclusion d'un nouveau paquet dans Ubuntu ?
Comment demander la mise à jour d'un paquet dans Ubuntu ?
Comment installer le greffon GMate
Comment internationaliser un logiciel libre?
Comment programmer des applications en PYTHON sur son téléphone Nokia
Comment utiliser Git pour développer le noyau Ubuntu ?
Comment utiliser MingW32 pour faire des exécutables Windows ?
Compilation sous Ubuntu
Compiler son noyau
Cours sur Python
Création de jeux vidéo libres
Créer des interfaces graphiques avec Tkinter
Créer ses diagrammes UML avec Umbrello
Créer un environnement complet pour Netbeans
Créer un jeu de couleurs pour Gedit
Créer une loupe Unity
Cssed
CUDA
CVS : utilisation en tant que client
Doxygen
Débuggage avec gdb
Démarrer un projet Web avec Symfony
E-anim
Eclipse et MySQL - SQL Explorer Plugin
Eclipse Process Framework Composer
EiffelStudio : Environnement de développement intégré Complet
Ella, logiciel d'animation 2D
Emacs : le couteau Suisse du développeur
Eric IDE
Etoys - Programmation visuelle libre
Faire de la programmation en ADA sous Ubuntu
FLTK : Fast Light ToolKit
Fortran
Free Pascal
Gambas, le Visual Basic™ libre, mais en mieux !
Gazebo
GDL : GNU Data Language
Geany : le compilateur graphique et compact sort de sa lampe !
Git
Glade
Glade2script
Gource
gPHPEdit
greasemonkey
Groovy & Grails
GSL : GNU Scientific Library
Gtkmm
gtkradiant (Radiant): Création de carte 3D
Gui Scripts - Des logiciels pour automatiser vos machines
Gvim
IDE : DrScheme
IDE : Eclipse
IDE : Eclipse Installer
IDE : Eclipse
IDE Anjuta et OpenCV
IEs4Linux
Initiation au Shell
Initiation au XHTML
Installation
Installer et configurer Borland JBuilder 2005 Foundation
Installer MPICH2 avec Intel Fortran
Installer un serveur d'applications Zope sur Ubuntu
Installer un validateur (x)html
IntelliJ IDEA
Introduction aux scripts shell
ipython
Irrlicht : moteur 3D libre
Java
Java Mobile Edition (J2ME)
Java Oracle®
jEdit
KDevelop
Kiki, un outil de test et d'apprentissage Python
Komodo Edit
KompoZer
Langage de programmation IronPython
Langage de programmation Python
Launchpad
Lazarus
Le compilateur Pascal GNU
Les analyseurs de code statique
Les systèmes de gestion de base de données (SGBD)
libNMEAParser
Liste des applications d'UML
Make
MapServer
Maven
Meego - du libre dans un smartphone
Meld : comparaison graphique de fichiers
Mercurial ( ou hg )
Mise en place d'un serveur CVS
Mono, implémentation libre de Microsoft® .NET™
MonoDevelop : Un IDE pour Mono/.NET
MSPGCC4
Netbeans
Netradiant
Nodejs
Objective Caml
Ogre 3D
Open CASCADE
OpenCOBOL
OpenCV
OpenJDK, l'implémentation libre de Java
Oracle™ Database
Participer au développement d'Ubuntu
phpGroupWare
PICkit2
PO4A : PO for Anything
Processing : langage de programmation de rendu 2D/3D interactif
Projet de développement de scripts : comment l'utiliser
Projet de développement de scripts : comment participer
Prolog
Pure Data
PyCharm
PyQt
pyUSB
QDevelop
Qt
Qt Creator
Quickly
Radrails
RapidSVN
Redmine
Ren’Py
Ruby On Rails
SciTE, Scintilla Text Editor
SCOL
Scratch - La programmation visuelle
SDL : Simple DirectMedia Layer
SGC (Système de Gestion de Contenu)
Simple and Fast Multimedia Library
Simulateur robotique Player/Stage
SIP pour PYTHON
SmartEiffel : Compilateur Eiffel GNU
SonarQube
Soya 3D
Spyder / spyderlib
Stylish : Styliser le Web !
Subclipse
Subversion
Subversive
Symfony
Tcl/Tk
Tupi
TurtleArt - Programmation visuelle libre
Ubuntu Make
UPX : the Ultimate Packer for eXecutables
Usages Android / Ubuntu
Utiliser votre système Ubuntu depuis Windows
Vala : Un langage de programmation pour GNOME
Valgrind
Vi IMproved
Visual Basic (VB)
WaveMaker
Wingware Python IDE
wxWidgets - programmation d'interface multiplate-formes
XAMPP : un serveur web de développement facile
XCache
Xlogo
Yasm
Zend Framework
Zend Studio
Zenitor 3 ou Zenity Generator 3
Éditeurs graphiques

liens à corriger

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


Contributeurs : Fabien26. Phossele, darkjam