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.

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.

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.

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

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

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

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

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.

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

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 ?

Si vous pratiquez le reverse engineering

Liens externes


NE PAS SUPPRIMER – YoBoY
Page
a2ps
Adobe AIR
AlgoBox
Alice - Programmation visuelle
AnalyseSi
Android
Android
Anjuta (IDE)
ant
Apprentissage C/C++ sur GNU/Linux
Aptana Studio
Aspiration de sites avec httrack
Atom
Bazaar
Bazaar Explorer
Bluefish
BlueGriffon
BlueJ
Bookmarklet : Des Marques pages Scriptés
C#
Caml Light
Cas particuliers d'empaquetage
cgit
Checkinstall : Créer facilement un paquet debian (*.deb) à partir des sources
Code::Blocks
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 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 MingW[32|64] pour faire des exécutables Windows ?
Compilation croisée (cross-compiling) pour architecture arm
Compilation sous Ubuntu
Compiler son noyau
Composer
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
CUDA
CVS : utilisation en tant que client
Cygwin : utiliser des applications GNU/Linux depuis Windows
DarkMoon Cybersecurity: utilisez un GNU/Cygwin portable pour Pentester sous Windows
DarkMoon: utilisez un GNU/Linux/Cygwin portable sous Windows
DbVisualizer
Doxygen
Débuggage avec gdb
Démarrer un projet Web avec Symfony
EiffelStudio : Environnement de développement intégré Complet
Emacs : le couteau Suisse du développeur
Eric IDE
Etoys - Programmation visuelle libre
FLTK : Fast Light ToolKit
Fortran
Free Pascal
Gambas, le Visual Basic™ libre, mais en mieux !
Gazebo
GCC, le jeu de compilateurs GNU
GDL : GNU Data Language
Geany
GHex
Git
Glade : la ligne de code ouvre les fenêtres
Glade2script
GNOME Builder
GO
Gource
Greasemonkey - Développer la puissance du web
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 : Environnement de Développement Intégré
IDE Anjuta et OpenCV
IEs4Linux
Initiation au Shell
Initiation au XHTML
Installer et configurer Borland JBuilder 2005 Foundation
Installer MPICH2 avec Intel Fortran
Installer Scratux en PPA
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 Oracle®
jEdit
Kate
KDevelop
Kiki, un outil de test et d'apprentissage Python
Komodo Edit
Langage de programmation Common Lisp
Langage de programmation IronPython
Langage de programmation Python
Launchpad
Lazarus
Les analyseurs de code statique
Les systèmes de gestion de base de données (SGBD)
Les éditeurs de texte
libNMEAParser
Linotte
Liste des applications d'UML
Logiciels sous linux
Make
MapServer
Matplotlib
Maven
Meld : comparaison graphique de fichiers
Mercurial ( ou hg )
MiniConda
Mise en place d'un serveur CVS
Mono, implémentation libre de Microsoft® .NET™
MonoDevelop : Un IDE pour Mono/.NET
MSPGCC4
Neovim
Netbeans
NetRadiant
Node.js
Objective Caml
Ogre 3D
Open CASCADE
OpenCOBOL
OpenCV
OpenGL et GLX
OpenJDK, l'implémentation libre de Java
Oracle JDK
Oracle™ Database
Participer au développement d'Ubuntu
PHPBrew
phpGroupWare
PICkit2
PO4A : PO for Anything
PostgreSQL
Powershell
Processing : langage de programmation de rendu 2D/3D interactif
Programmer en ADA avec Ubuntu
Projet de développement de scripts : comment l'utiliser
Projet de développement de scripts : comment participer
Prolog
Présentation
Pure Data
PyCharm
PyCharm
PyQt
pyUSB
QDevelop
Qt
Qt Creator
Radrails
Rails (ou Ruby on Rails dit aussi RoR)
RapidSVN
Redmine
Ren’Py
Ruby
SciTE, Scintilla Text Editor
SCOL
Scratch - La programmation visuelle
SDL : Simple DirectMedia Layer
SFML : Simple and Fast Multimedia Library
SHC : Chiffrer ses script bash en C
Simulateur robotique Player/Stage
SIP pour PYTHON
SmartEiffel : Compilateur Eiffel GNU
SonarQube
Sous-système Windows pour Linux : Ubuntu sur Windows
Soya 3D
Spyder / spyderlib
Squeak
Stylish : Styliser le Web !
Subclipse
Sublime Text
Subversion
Subversive
SWIG
Symfony
Symfony
Tcl/Tk
Tiger : un langage de programmation
Tupi
TurtleArt - Programmation visuelle libre
Tutoriel : programmer une extension GNOME Shell
Ubuntu Make
UPX : the Ultimate Packer for eXecutables
Vala : Un langage de programmation pour GNOME
Valgrind
Vi IMproved
VMware vRealize Operations
Wingware Python IDE
wxWidgets - programmation d'interface multiplate-formes
XAMPP : un serveur LAMPP (Apache + MariaDB + PHP + Perl) complet tout prêt
Xlogo
Yasm
Zend Framework
Zenitor 3 ou Zenity Generator 3
ZeroMQ (ØMQ)

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,


  • programmation.txt
  • Dernière modification: Le 24/09/2024, 14:38
  • par bcag2