Software basteln... wie anfangen?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Mosquito
Beiträge: 134
Registriert: 25.03.2005 13:50:44
Wohnort: Ulm
Kontaktdaten:

Software basteln... wie anfangen?

Beitrag von Mosquito » 14.04.2006 00:51:57

so... moin.

Ich will meinem Geist etwas gutes tun und mich nun endgültig in die Welt des Programmierens vorwagen.

Mein großes Ziel (Ziele setzten soll ja gut sein für die Motivation) wäre eine Medienbibliothek nach meinem Geschmack, am besten noch mit nem mp3-player integriert da keins der momentan für Linux existierenden Programme meinen Anforderungen gerecht wird.

Bisherige Erfahrungen:
php - fortgeschritten, soll heißen ich bastel Foren und Shop-Systeme.
Delphi - Ist 3 Jahre her dass ich mir ein kleines Programm zum zeitgesteuertem ausführen einer bestimtmen Datei geschrieben ahb.
c++ - Hello World ;-)
Java Script - Ich mag das zeug nicht so recht... bissl hover-buttons, mehr nicht.

Nun was könnt ihr mir empfehlen:
welche Sprache? (Java?!?)
wie anfangen?
wo gibts gute tutorials bzw gute Bücher?

bin für jeden Tip dankbar.

Ach ja, ich will für Debian basteln, bisher hatte ich nur auf Windows das vergnügen.
signatur in arbeit...

d.cooper
Beiträge: 32
Registriert: 08.04.2006 22:18:30
Wohnort: Sehnde/Hannover
Kontaktdaten:

Beitrag von d.cooper » 14.04.2006 01:24:07

Servus,

auch wenn ich nicht wirklich weiß, was du mit "Medienbibliothek mit MP3-Player" meinst (falls du nen Art Media-Center meinst, solltest du dir mal VDR oder MythTV ansehen):

Wenn es um ernsthafte Anwendungsentwicklung unter Linux geht, brauchst du in jedem Fall C und C++. Das ist vielleicht nicht ganz leicht, aber deine Delphi-Kenntnisse sollten dir ein wenig helfen.

Ich habe C im Grundkurs an der Uni gelernt und damals das Buch "Programmieren in ANSI-C" von Lowes/Paulik benutzt. Ich schlage heute noch viele Dinge drin nach. Ein großer Vorteil des Buchs: Es beschäftigt sich sehr ausführlich mit sicherem Programmieren, d.h. Pufferüberläufe usw. vermeiden, Wertebereiche beachten, uvm.

Was C++ angeht, habe ich mir den Stroustrup geholt ("Die C++ Programmiersprache", von Bjarne Stroustrup). Ich fand das Buch ganz nett.

Ein anderes Buch, das ich ganz gut fand (auch wenn ich einige Sachen zu bemängeln hatte, siehe hier) ist von SuSE-Press "C-Programmierung unter Linux" von Helmut Herold und Jörg Arndt. Keine Angst, dabei geht's nicht um "SuSE-Programmierung", sondern um Programmierung unter Linux ganz allgemein. Aber die Kritik kannst du dir im einzelnen ja selbst durchlesen.

Viele Grüße, Mirko
Pinguin vom Dienst

DeletedUserReAsG

Beitrag von DeletedUserReAsG » 14.04.2006 01:59:25

Bei soviel PHP-Erfahrung kannst du doch mit PHP lokal weitermachen - z.B. mit TK oder GTK, damit's hübsch aussieht..

*scnr*

Ansonsten ist meine Erfahrung in der Sprachenfrage eher, dass man, wenn man eine kann, mit einer anderen Sprache wenig Probleme hat.

Ich persönlich würde übrigens Java empfehlen: Sehr gute, kostenlose Starthilfen (alleine die beiden großen eBooks ( http://www.galileocomputing.de/openbook/javainsel5/ und http://www.javabuch.de) dürften beim ernsthaften Durcharbeiten schnell zu ansehlichen Fähigkeiten führen), und eine mit http://java.sun.com/j2se/1.5.0/docs/ oder http://java.sun.com/j2se/1.5.0/docs/api/index.html vergleichbare Doku habe ich bislang für kaum eine andere Sprache gefunden.

Auch bin ich nicht der Meinung, dass man für ernsthafte Anwendungsentwicklung unter Linux unbedingt C/C++ beherrschen muss, es sind mittlerweile mehr große Programme in anderen Sprachen geschrieben worden, als man glaubt.

Da ich mir unter Medienbibliothek nichts vorstellen kann, und du den mp3-Decoder mit einiger Wahrscheinlichkeit nicht selbst implementieren willst, würde ich vorschlagen: Schau dir ein paar Einsteigertutorials zu einigen Sprachen an und nimm die, die dir symphatisch erscheint.

Ein einfacher mp3-Player mit hübschem GUI ist mit Hilfe von z.B. mpg321 als Backend schnell mal gebaut, bei sowas würde dann die Sprache, in der man das schreibt, keine Rolle mehr spielen.

cu

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 14.04.2006 12:27:05

hi,

ich möchte da mal Python als Einstiegssprache einwerfen.
Es läuft auf Windows und Linux und bringt viele schöne Module gleich mit.
Am besten mal selber auf python.org nachschauen..
mfg
mauser

Benutzeravatar
Mr_Snede
Beiträge: 2323
Registriert: 08.07.2003 13:48:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Ruhrpott

Beitrag von Mr_Snede » 14.04.2006 16:14:36

mauser hat geschrieben:ich möchte da mal Python als Einstiegssprache einwerfen.
Ich auch :-)
mauser hat geschrieben:Am besten mal selber auf python.org nachschauen..
Und auch schön hier: http://www.python-forum.de
vorbei schauen.

@ Mosquito
Hast du schon mal die Forumssuche angeworfen mir Suchen nach:
programmieren
oder
programmieren lernen
?
Da findest du einige recht umfangreiche Threads.

Die Idee PHP weiter zu nutzen finde ich gar nicht so dumm.
Ob nun mit Bindings zu einem Grafiktoolkit oder als Weboberfläche zB mit ajax (ich liebe buzzwords :-) ), sollte man dich was benutzbares hinbekommen.

Java ist eine wirklich mächtige Programmiersprache bei der du mit Doku erschlagen wirst (jetzt musst du dir nur die Perlen raussuchen).
Zudem gibt es leistungsfähige Entwicklungsumgebungen wie zB Eclipse.
Und die Chance Javakenntnisse auch beruflich einzusetzen ist bestimmt auch nicht zu verachten.

Aber ich habe als (Desktop)Anwender kein einziges Javaprogram in Benutzung. Weil die GUI mir einfach zu träge ist. Damit kann ich einfach nicht arbeiten, was mich schon ärgert, weil es wirklich leistungsfähige Programme gibt (wie zB: http://www.jedit.org/).

Bzgl delphi:
kennst du schon http://www.lazarus.freepascal.org/

cu Sebastian
Software Finder - Software in Kategorien Debian ohne Ballast - Tipps für ein schlankes Debian

DeletedUserReAsG

Beitrag von DeletedUserReAsG » 14.04.2006 16:34:37

Weil die GUI mir einfach zu träge ist.
Das liegt aber nicht direkt an Java. Man ist ja nicht auf Swing angewiesen (auch, wenn man damit so schön einfach Oberflächen bauen kann, aber das frisst halt Ressourcen und Zeit).

cu

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 14.04.2006 18:28:16


Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 14.04.2006 19:14:31

niemand hat geschrieben:
Weil die GUI mir einfach zu träge ist.
Das liegt aber nicht direkt an Java. Man ist ja nicht auf Swing angewiesen (auch, wenn man damit so schön einfach Oberflächen bauen kann, aber das frisst halt Ressourcen und Zeit).
Das Problem bzgl des wiederlegens der allgemeinen "Java-GUIs sind Langsam"-Vorurteile liegt darin dass das "Flaggschiff" diesbezüglich - Eclipse - nicht gerade gut als Argument geeignet ist. Könnte mir durchaus vorstellen dass sich Netbeans da zackiger anfühlt :D

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

DeletedUserReAsG

Beitrag von DeletedUserReAsG » 14.04.2006 20:50:07

Wobei ich gerade Eclipse mit SWT nicht als langsam empfinde (die Zeit zum Starten mal nicht betrachtet).

cu

Mosquito
Beiträge: 134
Registriert: 25.03.2005 13:50:44
Wohnort: Ulm
Kontaktdaten:

Beitrag von Mosquito » 14.04.2006 23:44:26

ok, Java...langsam....
was muss ich darunter verstehen?

Klicke ich dann auf einen button mit einer von mir erstellten Funktion dauert das mit Java länger bis was passiert als mit C++?

Und dann noch das Argument das "eclipse" daran schuld ist....
Ist eclipse ein Editor? compiler? liegt es nicht allein an der Sprache?

ähm.. ich sehe da hab ich noch viel vor mir.


Da ich Schüler bin und mir nicht die imensen Bücher anschaffen kann würde ich allein aus der kostenlosen Verfügbarkeit von Java-Docs mich für jene entscheiden.
signatur in arbeit...

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 15.04.2006 00:01:25

Hallo,
Mosquito hat geschrieben:ok, Java...langsam....
was muss ich darunter verstehen?
naja, java GUI Anwendungen fühlen sich halt oft etwas träge an. Dazu kommt, wenn du nicht java-gnome oder die KDE bindings verwendest, dass sie halt immer etwa fremd auf dem Desktop wirken.
Und dann noch das Argument das "eclipse" daran schuld ist....
Ist eclipse ein Editor? compiler? liegt es nicht allein an der Sprache?
Eclipse ist eine Java IDE, du kannst sie einfach mal installieren und etwas damit rumspielen, dann wirst du sicher merken was die Leute hier meinen wenn sie von "langsam" oder "träge" sprechen.
Da ich Schüler bin und mir nicht die imensen Bücher anschaffen kann würde ich allein aus der kostenlosen Verfügbarkeit von Java-Docs mich für jene entscheiden.
Nach meiner Erfahrung lernt man immer am besten mit einem Buch, aber das mußt du natürlich für dich selber entscheiden. Ansonsten denke ich, dass die C, C++ oder Python Dokumentation auch nicht schlechter ist als die von Java.

Ach so, dann wäre natürlich noch die Java Trap die bei Java immer lauert. Wenn du dich also für Java entscheidest, würde ich von Anfang an mit GNU Classpath arbeiten.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 15.04.2006 00:13:42

Naja, mit 1.25Gb RAM wovon Eclipse standardmäßig 400MB schonmal fest bekommt lässt es sich eigentlich gut arbeiten ;)
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

Mosquito
Beiträge: 134
Registriert: 25.03.2005 13:50:44
Wohnort: Ulm
Kontaktdaten:

Beitrag von Mosquito » 15.04.2006 00:23:40

Die Aussage "ich habe im Moment kein einziges Java-Programm am laufen" hat mich nun doch etwas abgeschreckt so dass ich gleich Nägel mit Köpfen mache und C++ eintrichtern will.

Tutorials finden sich wie sand am Meer, was davon zu gebrauchen ist wird sich zeigen.
Nur habe ich ein Problem:

Wie funktioniert das ganze?
Was muss ich tun um eine Datei zu kompilieren bzw. kenne ich es von Delphi so:
Starte die Entwicklungsumgebung, bastel mein Programm mit ein par Mausklicks zusammen, klicke dann auf Compilieren und ne fertige .exe kommt raus.

Davon findet sich nichts in den Tutorials, alle fangen mit "Hello World" an ;-)
was davor kommt und welche Vorbereitungen getroffen werden müssen steht nirgends.

Wie geht das unter Linux für C++?
wie arbeiten editor mit compiler zusammen?
welche Compiler benötige ich?

Es ist ein Start bei 0
signatur in arbeit...

aspettl
Beiträge: 318
Registriert: 15.02.2006 22:05:37
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von aspettl » 15.04.2006 00:36:39

Das können wir nicht alles so hinschreiben (bzw. es würde zu lange dauern) - es ist einfach zu umfangreich.
Eine beantwortete Frage würde auch gleich zu mindestens zwei neuen führen (was ja prinzipiell gut ist). Genau dafür eignen sich dann gute Bücher ;-)
Im Internet gibt es aber 100% Tutorials, die die Grundlagen selbst beinhalten.

Als Tipp: Du suchst:
- Kompilieren/linken etc. (was ist das überhaupt genau...)
- Benutzen eines Compilers wie z.B. gcc (auch: Was ist ein Präprozessor etc., sollte man denke ich gleich am Anfang sich klar machen, welche Schritte da im Hintergrund gemacht werden)
- Grundlagen C/C++

Edit:
Komme besser nicht auf die Idee, gleich am Anfang graphische Oberflächen erstellen zu wollen - die Konsole reicht.

Gruß
Aaron
Zuletzt geändert von aspettl am 15.04.2006 00:41:24, insgesamt 3-mal geändert.

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 15.04.2006 00:38:26

hi,

am einfachsten fängst du so an:

Du nimmst dir einen Editor deines Vertrauens zur Hand und tippst dein HelloWorld in eine Datei namens hello.cpp:

Code: Alles auswählen

#include <iostream>
using namespace std;
void main()
{
  cout << "Hello World!"; 
}
Dann nimmst du dir den Compiler (g++ , evtl. nachinstallieren)
und übersetzt das ganze mit:

Code: Alles auswählen

 g++ hello.cpp -o hello
Dann kannst du das Programm mit ./hello starten.
Für den Anfang sollte das so reichen, wenn man sich etwas mit C++ auskennt, kann man immer noch die grossen IDE's wie Eclipse oder KDevelop aus dem Ärmel ziehen.
mfg
mauser

[edit] Ach ja, falls du mal 40€ übrig hast und ein Buch lesen willst: O'Reilly, Praktische C++ Programmierung.

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 15.04.2006 00:40:37

Hallo,
mal ein ganz kurzer Crash-Kurs:
1. Ein Editor deiner Wahl nehmen (Kenner empfehlen Emacs ;) ), Code eintippen und speichern (z.B. helloworld.cpp)
2. Terminal öffnen in das Verzeichnis der helloworld.cpp gehen und das ausführen

Code: Alles auswählen

g++ helloworld.cpp -o helloworld
3. Jetzt solltest du ein binary in dem selben Verzeichnis haben, welches du mit ./helloworld starten kannst.

Aber jedes bessere Tutorial sollte das am Anfang auch einmal beschreiben.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 15.04.2006 08:47:01

@Mosquito
Lies dir den Thread Link den ich oben gepostet habe noch einmal durch.

as time goes by ...

gelesen? ... gut nun kannst du die Bücher downloaden und mit C beginnen.
http://courses.mbi.tugraz.at/ElektronischeLiteratur/

markus

Benutzeravatar
bse
Beiträge: 468
Registriert: 19.03.2006 19:58:00
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von bse » 15.04.2006 15:43:52

Auf die Gefahr hin, mich unbeliebt zu machen, möchte ich mal Mono und C# erwähnen :D

Das einzige Problem das ich dabei sehe ,ist dass monodevelop noch nicht wirklich tauglich ist. Wenn man also nicht gerade vim oder emacs verwenden will, muss mal wohl oder übel SharpDevelop nehmen. Und das läuft bisher nur unter Windows mit .Net 2.0. Dafür ist der Mono- und Gtk# Support ziemlich gut, und was mit Mono unter Windows läuft funktioniert auch mit Mono unter Linux...

carsten2
Beiträge: 109
Registriert: 26.09.2003 04:43:04

Beitrag von carsten2 » 16.04.2006 16:16:28

Hallo Markus,

kennst du auch eine Quelle, von der man die Beispiele aus dem Buch bekommt?

Carsten

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 17.04.2006 15:09:31

carsten2 hat geschrieben: kennst du auch eine Quelle, von der man die Beispiele aus dem Buch bekommt?
gib mir per PN deine email adresse dann schicke ich dir die examples

markus

Antworten