[[Inhaltsverzeichnis(1)]]

Für Ubuntu bzw. Linux im Allgemeinen ist eine Vielzahl von Programmiersprachen verfügbar, mit deren Hilfe man eigenen Programme erstellen kann. Eine Übersicht ist im Artikel [:Programmiersprache:Programmiersprachen] zu finden. 

[[Bild(Wiki/Icons/develop.png, 60, right)]] 
= Programmiersprachen =
Im Wiki gibt es Artikel zu den folgenden Programmiersprache. Die Liste ist alphabetisch sortiert:

 * [:awk:]
 * [:clisp:] (freie Implementierung von Common Lisp)
 * [:Erlang:]
 * [:Go:]
 * [:Grain:]
 * [:Groovy:]
 * [:Haskell:]
 * [:Io:]
 * [:Julia:]
 * [:Java:]
 * [:KTurtle:] - Einstieg in die Programmierung mit Logo
 * [:Lua:]
 * [:Perl:]
 * [:PHP:]
 * [:Prolog:]
 * [:Python:]
  * [:PyPy:] - alternative Python-Implementierung, welche schneller ist als die Referenzimplementierung CPython
 * [:Ruby:]
 * [:Scala:]
 * [:Vala:Vala und Genie]

= Werkzeuge =
Zusätzliche Software, die zum Erstellen von Programmen benötigt wird bzw. eingesetzt werden kann: 

 * [:Shell:] {Übersicht} "Keine Angst vor der Kommandozeile!"
 * [:Compiler: Compiler und Buildsysteme] {Übersicht} Tools zum Übersetzen des Quellcodes in ausführbare Programme 
 * [:Entwicklungsumgebungen:] {Übersicht} Übersicht zu IDEs 
 * [:Editoren:] {Übersicht} Werkzeuge, um Quellcode zu erstellen 
 * [:Versionsverwaltung:] {Übersicht} Verwaltung von Quellcodes
 * [:Textdateien_vergleichen:] {Übersicht} Übersicht über diverse "Diff"-Programme
  * [:diff:]
  * [:diffuse:]
  * [:Meld:]
  * [:xxdiff:]
 * [:patch:] - Patches anwenden
## * [:Archiv:Kunagi:] - agiles Projektmanagement nach der Scrum-Methode
 * [:GUI-Toolkits:] - Toolkits, um Programme mit GUIs auszustatten
 * [:Paketbau: Ubuntu Pakete erstellen] {Übersicht} Werkzeuge zum Erstellen eigener Ubuntu Pakete 
  * [:Grundlagen_der_Paketerstellung:] - Schritt für Schritt Anleitung zum Erstellen eigener Ubuntu Pakete
 * [:jq:] - Kommandozeilenprogramm zum Durchsuchen und Filtern von Daten im JSON-Format
 * [:xmlstarlet:] - Kommandozeilenprogramm, um XML-Datei zu durchsuchen, editieren, validieren und transformieren
 * [:YARA:] - Text- und Binärdateien nach Mustern durchsuchen

= Elektronik =
 * [:Arduino:] - beliebter und freier Mikrocontroller
 * [:Eagle:] - kommerzielles EDA-Programm
 * [:Fritzing:] - Software um elektronische Schaltungen auf dem Computer zu erstellen
## * [:LeJOS_für_Lego_NXT:] Java auf dem Lego NXT Controler installieren
 * [:Mikrocontroller:] - Programmierung von einigen Mikrocontrollern
 * [:ngspice:] - Schaltungssimulation
 * [:Oregano:] - grafischer Editor zur Erstellung von Netzlisten
 
= Sonstiges =
 * [:Skripte:] {Übersicht} Sammlung nützlicher Skripte
 * [:Lokalisierung:] {Übersicht} Programme in andere Sprachen übersetzen 
 * [:howdoi:] - Kommandozeilenapplikation, um schnell Lösungen zu (einfachen) Programmierproblemen zu recherchieren
 * [:Anaconda:] - Python-Distribution
 * [:CMake:] - plattformübergreifendes Programmierwerkzeug
 * [:Shell/man/Manpage_erstellen:Manpage erstellen] 
 * [:SQLite:] - kleine, leichtgewichtige Datenbank, wird von diversen Projekten gerne als Backend genommen 
 * [:ODBC-Datenquellen_einrichten:] - Datenbanken über die ODBC-Schnittstelle abfragen
 * [:Django:] - eine Python-Framework zum Entwickeln von Internet-Applikationen
 * [:Flask:] - Python-Bibliothek zur Erstellung von WSGI-basierten dynamischen Webanwendungen
 * [:Node.js:] - Javascript-Bibliothek zur Programmierung von server-seitigen Applikationen
 * [:Xephyr:] - nested X-Server, nützliches Werkzeug bei der Entwicklung im Desktop-Bereich
 * [:Doxygen:] - Dokumentation des Quellcodes erstellen
 * [:docutils:] - Dokumentationen erstellen
 * [:Pygments:] - Quellcode farbig hervorheben
 * [:SQLAlchemy:] - leistungsfähige Datenbankanbindung und objekt-relationaler Mapper für Python
 * [:venv:] - mehrere (virtuelle) Python-Umgebungen installieren
 * [:Android_Studio:] - Anwendungen für Android programmieren
 * [:Crudini:] - Ini-Dateien in Shellskripten auslesen und modifizieren
## * [:Archiv/GLOOP:] - Bibliotheken für BlueJ zum leichteren Lernen von Java 

= Links =
 * [:Webentwicklung#Bildbearbeitung:Symbole] - Icons zur Gestaltung grafischer Oberflächen finden
 * [:Links/Programmierung:] - weiterführende Adressen zum Thema Programmierung im Internet

# tag: Programmierung, Übersicht