tipps zu entwicklungsumgebungen gesucht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
trozmo
Beiträge: 288
Registriert: 05.01.2003 20:01:03
Kontaktdaten:

tipps zu entwicklungsumgebungen gesucht

Beitrag von trozmo » 14.02.2003 00:36:58

ich suche dev-kits, welche unter gnome/kde laufen, für c, c++ und/oder assembler.

hat da schon jemand erfahrungen gesammelt ?

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 14.02.2003 07:18:04

Kdeveloper für c++, oder eclipse, dort gibst jetzt auch eine c++ umgebung.
Zu assembler kann ich nix sagen, aber will man das wirklich entwickeln?

gruss
manuel

Benutzeravatar
Beowulf666
Beiträge: 1476
Registriert: 06.10.2002 14:03:08
Wohnort: Lübeck
Kontaktdaten:

Beitrag von Beowulf666 » 14.02.2003 09:22:41

Ihc nehm mal an, du suchst ne IDE.
für normales Entwickeln unter C/C++ kann ich dir eigentlich wirklich nur gvim mit Syntax-Highlightening empfehlen.

Für ne IDE inclusive Gui-Editing fällt mir eingentlich unter C/C++ nix ein. Da gibts nur für Java NetBeans. kann aber kein c/c++ oder Assembler.
Ich weiss nicht, was du bauen willst, aber für Gui-Developement unter Gnome ist GTK eigentlich relativ ideal. Da gibts bestimmt auch nen Editor für. Sonen "What-you-see-is-what-you-get" Teil.

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 14.02.2003 09:53:17

kommt auf Deinen Geschmack/Vorlieben an. Die Puristen nutzen Vim, oder Emacs. Wenn Du alles schön grafisch haben willst schau Dir KDevelop an. Als Lib für die Oberfläche würd ich Dir die QT empfehlen. Ist gut aufgebaut, und wirklich leicht zu verstehen.

Wozu brauchst Du Assambler???
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Belgarad
Beiträge: 749
Registriert: 12.07.2002 02:00:44

Beitrag von Belgarad » 14.02.2003 10:48:04

unter gnome gibts noch glade und anjuta
Debian SID

Benutzeravatar
Beowulf666
Beiträge: 1476
Registriert: 06.10.2002 14:03:08
Wohnort: Lübeck
Kontaktdaten:

Beitrag von Beowulf666 » 14.02.2003 10:56:00

gibts eigentlich für QT nen Tutorial?

Nur mal so aus Interesse...

keyem
Beiträge: 303
Registriert: 23.08.2002 07:50:28
Wohnort: Berlin

Beitrag von keyem » 14.02.2003 11:12:26

Beowulf666 hat geschrieben:gibts eigentlich für QT nen Tutorial?

Nur mal so aus Interesse...
Guck mal hier: http://www.andamooka.org/index.pl?section=dekde20devel

keyem

trozmo
Beiträge: 288
Registriert: 05.01.2003 20:01:03
Kontaktdaten:

Beitrag von trozmo » 14.02.2003 19:37:39

jo, danke allerseits. werde die sachen ausprobieren. die andamooka-seite ist echt gut.


was ich mit assembler will ?

nun ja, ich muss mich jetzt mit programmierung befassen. habe jedoch noch keinen wirklichen plan davon.

der 1. teil meiner passion soll folgendermaßen aussehen:

ich habe hier vor mir die profireferenz assembler von oliver müller liegen.
die liegt deshalb vor mir, da ich denke, dass assembler ein prima einstieg in die programmierwelt ist. denn: wer assembler verstanden hat, hat mit hochsprachen keine probleme mehr.

ich komme aus der hardwarewelt und für mich hat assembler die meiste maschinennähe (zumindest vermute ich das :lol: )
mir ist klar, dass gängige komplexe software nicht in assembler geschrieben wird,
jedoch in treiberentwicklung und maschinennahen softwareteilen wird es de facto verwendet.


ich will eigentlich auch keine großartigen programme schreiben, sondern ich muss mich in die lage versetzen, software beurteilen zu können.

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 14.02.2003 19:59:45

denn: wer assembler verstanden hat, hat mit hochsprachen keine probleme mehr.
tjo, aba z.B. OOP und uml wirst du mit Assembler ned lernen.

trozmo
Beiträge: 288
Registriert: 05.01.2003 20:01:03
Kontaktdaten:

Beitrag von trozmo » 14.02.2003 20:02:27

mit den beiden habe ich auch nix am hut :wink:

keyem
Beiträge: 303
Registriert: 23.08.2002 07:50:28
Wohnort: Berlin

Beitrag von keyem » 14.02.2003 20:05:20

@trozmo:
Im Prinzip klingt Deine Argumentation schlüssig, allerdings würde ich an Deiner Stelle doch das Assembler erst mal beiseite lassen und eine strukturierte Programmiersprache lernen.

Meiner Ansicht lernst Du damit leichter, gute von schlechten Programmen zu unterscheiden, da Du in diesen Sprachen in der Regel zumindest das ausdrücken kannst, was Du tatsächlich programmieren willst. Dagegen schlägt man sich in Assembler oft gerade damit rum, das die Programmlogik sich aufgrund der beschränkten Anweisungsmenge nur schwer ausdrücken lässt. Außerdem verfällt Wissen über Assembler schneller, wenn sich Prozessorarchitekturen ändern, wie z.B. bald beim Übergang auf die 64bit Prozessoren (im Prinzip programmiert man ja auch heute auf der x86-Architektur immer noch für die 8086-CPU). Wenn Du tatsächlich bei Assembler bleiben willst, solltest Du Dich dann ggf. mit einer virtuellen Architektur wie z. B. MMIX (http://www-cs-faculty.stanford.edu/~knuth/mmix.html) beschäftigen. Derartiges Wissen hat sicher eine größere Halbwertszeit.

Ich habe oben übrigens absichtlich "strukturierte" Programmiersprache, da bei aktuellen Sprachen wie Java, C++ die Programmierparadigma der Objektorientierung von der eigentlichen Programmierung ablenkt.

Viel Erfolg,
keyem

trozmo
Beiträge: 288
Registriert: 05.01.2003 20:01:03
Kontaktdaten:

Beitrag von trozmo » 14.02.2003 20:44:40

ok, deine argumentation klingt auch schlüssig.

NUR, würde ich mit einer hochsprache anfangen, so würde ich praktisch das pferd von hinten aufzäumen.


dein letzter satz lässt darauf schließen, dass du von C++ für den anfang nicht so viel hältst.

was dann ? C ?



für täglichen krimskrams habe ich anderes im auge: perl

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 » 14.02.2003 21:06:58

Hallo,
also ich finde C eingentlich ganz gut, gerade auch wenn man unter GNU/Linux programmiert.
Du hast damit eigentlich alle Möglichkeiten:
C ist eine Programmiersprache die noch sehr Hardware nahe ist (ich würde sagen es ist die unterste Abstraktionsebene von Assambler zu einer strukturierten Programmiersprache), was deinen Interessen entgegenkommen sollte.
Desweiteren ist so ziemlich alles was unter GNU/Linux (console) programmiert ist in C geschrieben.
Gleichzeitig kannst du mit C aber auch Objektorientiert und GUIs programmieren indem du die glibs verwendest.

Das finde ich persönlich das tolle an C, das es eigentlich alles abdeckt.
C ist eigentlich _die_ Programmiersprache unter GNU/Linux.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

keyem
Beiträge: 303
Registriert: 23.08.2002 07:50:28
Wohnort: Berlin

Beitrag von keyem » 14.02.2003 22:14:49

trozmo hat geschrieben: dein letzter satz lässt darauf schließen, dass du von C++ für den anfang nicht so viel hältst.

was dann ? C ?
Ich persönlich halte Ada für eine ganz hervorragende Sprache, da in Ada so gut wie alle Konzepte einer modernen Programmiersprache (starkes Typensystem, gute Modularisierung, generische Typen, Exception Handling, Nebenläufigkeit sowie auch Objektorientierung) sehr konsistent verwirklicht sind, auch wenn bei Ada die Auswahl an externen Bibliotheken sicherlich nicht so groß wie bei Java oder C/C++ ist und zudem der Code aufgrund der Ähnlichkeit zu Pascal/Modula-2 nicht so "cool aussieht" wie ein richtiges C-Programm.

Auch Pascal ist für den Lernenden sicherlich keine so schlechte Wahl, auch wenn es zunächst etwas altmodisch klingt.

Aufgrund seines Quasi-Standards ist C auch nicht schlecht, auch wenn es wahrscheinlich die Sprache mit dem schlechtesten Konzept im Vergleich zu den anderen genannten ist und man sich als Programmierer wirklich große Mühe geben muss, ansehnliche und auch noch nach mehreren Monaten verständliche Programme zu erzeugen.

keyem

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 » 14.02.2003 22:57:54

Hallo,
keyem hat geschrieben: Ich persönlich halte Ada für eine ganz hervorragende Sprache, da in Ada so gut wie alle Konzepte einer modernen Programmiersprache (starkes Typensystem, gute Modularisierung, generische Typen, Exception Handling, Nebenläufigkeit sowie auch Objektorientierung) sehr konsistent verwirklicht sind, ...
Du programmierts in Ada?
Dann weiß ich ja wohin ich mich wenden muss wenn ich wiedermal Probleme mit Ada habe ;) (ich muss ada im Studium lernen)

Programmierst du auch Objektorientiert in Ada?
Unser Prof meine nämlich das es dazu zwar Ansätze in Ada geben würde, aber wirklich schön könnte man damit nicht OO programmieren.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 20.02.2003 02:08:52

@trozmo:
Ich würde an Deiner Stelle mit einer OO Sprache anfangen. Java oder C++ sind da wohl die Primären Kandidaten, wegen ihrer Praxisrelevanz. Java ist IMHO einfacher, aber C++ ist schneller.

Assembler ist die Hölle auf Rädern. Die Argumentation "das Pferd von hinten aufzuzäumen" lasse ich da nicht gelten. Assembler ist eher so die Formel 1 unter den Programmiersprachen: kompliziert, schwer zu beherrschen und fast unmöglich zu debuggen. Die sog. Hochsprachen sind eher der normale Strassenverkehr, und viel leichter zu lernen.

Mit Assembler ganz zu Anfang versaut man sich seinen ganzen Programmierstil auf Lebenszeit (schlimmer als mit BASIC).

Ich programmiere (Hobby) kleine selbstgebaute Embedded Systeme (Atmel AVR µC, wenn es jemanden interessiert) in Assembler, und ich träume jedesmal wieder von einem anständigen C-Compiler. Nur so als Beispiel folgende 2 Programmabschnitte, die das gleiche machen:
Zuerst in C/C++:

Code: Alles auswählen

int a,b;
a = 10;
b = 20;
if(a+b) >= 42) {
	ist_groessergleich();
} else {
	ist_kleiner();
}
Damit werden 2 variablen a und b angelegt, und dann wird getestet, ob die Summe grösser als 42 ist. Wenn ja wird die Funktion ist_groessergleich aufgerufen, sonst die Funktion ist_kleiner.

Jetzt in Assembler (AVR):

Code: Alles auswählen

.DEF a R16 ; neuer Name für Register 16
.DEF b R17 ; dito Register 17
.DEF temp R18 ; und Register 18
	ldi a, 10; load immediate 10 into a
	ldi b, 20; load immediate 20 into b
	mov temp, a; copy a into temp
	add temp, b; add b to temp, result in temp
	cpi temp, 42 ; compare immediate temp with 42
	brge groesser; branch if >= to groesser
	rcall ist_kleiner ; call ist_kleiner
	rjmp cont ; Jump to cont
groesser: ; Jumplabel
	rcall ist_groessergleich;  
cont: ; Jumplabel
	.... (und so weiter)
Wenn die beiden Funktionen ist_groessergleich und ist_kleiner jetzt auch noch Parameter brauchen würde der Assemblercode so kompliziert, dass es hier den Rahmen sprengen würde.

Lass Assembler sein, bis Du 100% verstanden hast, wie die Maschine auf unterster Ebene funktioniert und Du mindestens eine Hichsprache richtig behrrscht. IA32 (Intel) Assembler ist viel komplexer, als das AVR Zeugs...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

keyem
Beiträge: 303
Registriert: 23.08.2002 07:50:28
Wohnort: Berlin

Beitrag von keyem » 20.02.2003 08:13:57

pdreker hat geschrieben: Ich programmiere (Hobby) kleine selbstgebaute Embedded Systeme (Atmel AVR µC, wenn es jemanden interessiert) in Assembler, und ich träume jedesmal wieder von einem anständigen C-Compiler.
Patrick
Wäre das nicht eine gute Gelegenheit, das "Drachenbuch" vom Speicher zu holen und selbst einen Compiler zu schreiben? :wink:

keyem

Benutzeravatar
Beowulf666
Beiträge: 1476
Registriert: 06.10.2002 14:03:08
Wohnort: Lübeck
Kontaktdaten:

Beitrag von Beowulf666 » 20.02.2003 09:44:37

@trozmo: Als erste Programmiersprache würd ich eigentlich auch C empfehlen.
Java ist mit der OO zu komplex, genauso wie C++ oder (iihhhhh) C#.
Von Assembler rate ich erstmal komplett ab, wenn dich das Programm von pdreker noch nicht überzeugt hat: Ein- und Ausgaben sind noch vieeeel komplizierter.
Du versaust dir echt deinen kompletten Programmierstil.

@keyem: ääähhhhhh, kannst du sowas???
ich brech mir grad am Lernen für ne Compilerbauklausur alles ab.
Und wir arbeiten schon mit Flex und Bison....
Wie Haarig wird das erst, wenn du das komplett selbst in Assembler schreiben musst?

CU
Martin

keyem
Beiträge: 303
Registriert: 23.08.2002 07:50:28
Wohnort: Berlin

Beitrag von keyem » 20.02.2003 09:54:51

Beowulf666 hat geschrieben: @keyem: ääähhhhhh, kannst du sowas???
ich brech mir grad am Lernen für ne Compilerbauklausur alles ab.
Und wir arbeiten schon mit Flex und Bison....
Wie Haarig wird das erst, wenn du das komplett selbst in Assembler schreiben musst?
CU
Martin
Ich dachte bei meinem Einwurf eigentlich eher an einen Cross-Compiler, der auf dem PC läuft.

Dann lassen sich Compilerbau-Werkzeuge ja trotzdem schön benutzen, und man überträgt nach der Code-Generierung das fertige Assembler-Programm, auf welche Art auch immer, auf den Microcontroller.

Viel Spaß beim Lernen,
keyem

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 20.02.2003 10:10:04

pdreker hat geschrieben: Mit Assembler ganz zu Anfang versaut man sich seinen ganzen Programmierstil auf Lebenszeit (schlimmer als mit BASIC).
Patrick
Ein vernichtendes Urteil. Ich hab mit beidem angefangen....
Aber im Ernst: Assembler würde ich auch nicht empfehlen. Ich persönlich bevorzuge C++ und finde es auch nicht soo schwer. Aber was haltet Ihr eigentlich von Scriptsprachen ala Perl/Python? (wobei mir Perl zu unleserlich ist) Ich wollte mir Python mal anschauen in der Zukunft.
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 20.02.2003 17:07:43

keyem hat geschrieben:
pdreker hat geschrieben: Ich programmiere (Hobby) kleine selbstgebaute Embedded Systeme (Atmel AVR µC, wenn es jemanden interessiert) in Assembler, und ich träume jedesmal wieder von einem anständigen C-Compiler.
Patrick
Wäre das nicht eine gute Gelegenheit, das "Drachenbuch" vom Speicher zu holen und selbst einen Compiler zu schreiben? :wink:
keyem
Nein, und zwar aus einem ganz einfachen Grund (eigentlich 2):
1) Diese µController haben teilweise keinen Stack, und sind daher für Compiler untauglich. Die kann man einfach nur in Assembler programmieren.
2) Der Compiler kann auf gar keinen Fall auf dem µC laufen. Grund: Der momentanm von mir verwendete AT90S8535 hat 8K Programmspeicher und 544 Byte RAM. Wer es da schafft einen Compiler reinzuquetschen... ;-)

Für die etwas grösseren µC aus der Reihe kann man dann den GCC benutzen, das ist OK, aber zwischendurch braucht man trotzdem immer wieder Assembler, wenn's was spezielles sein soll.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 20.02.2003 17:10:48

Bert hat geschrieben:
pdreker hat geschrieben: Mit Assembler ganz zu Anfang versaut man sich seinen ganzen Programmierstil auf Lebenszeit (schlimmer als mit BASIC).
Patrick
Ein vernichtendes Urteil. Ich hab mit beidem angefangen....
Ich auch (C64: 6510 Assembler und BASIC mit GOTO vom übelsten...) Hat mich viel Zeit gekostet, bis diese "GOTO" bzw. "JMP" Denkweise wieder losgeworden bin...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
Beowulf666
Beiträge: 1476
Registriert: 06.10.2002 14:03:08
Wohnort: Lübeck
Kontaktdaten:

Beitrag von Beowulf666 » 20.02.2003 17:33:54

pdreker hat geschrieben:
Bert hat geschrieben:
pdreker hat geschrieben: Mit Assembler ganz zu Anfang versaut man sich seinen ganzen Programmierstil auf Lebenszeit (schlimmer als mit BASIC).
Patrick
Ein vernichtendes Urteil. Ich hab mit beidem angefangen....
Ich auch (C64: 6510 Assembler und BASIC mit GOTO vom übelsten...) Hat mich viel Zeit gekostet, bis diese "GOTO" bzw. "JMP" Denkweise wieder losgeworden bin...

Patrick
Obwohl eigentlich ja sämtliche if, for, while, case... Anweisungen aus höheren Programmiersprachen auch nur abstrahierte GOTO Anweisungen sind...

Ich bin damals von Pascal zu Assembler gekommen, und teilweise hat Assembler ganz einfach Vorteile im Bereich der Flexibilität bei den GOTO Anweisungen gegenüber den bedingten Sprüngen.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 20.02.2003 18:07:37

Obwohl eigentlich ja sämtliche if, for, while, case... Anweisungen aus höheren Programmiersprachen auch nur abstrahierte GOTO Anweisungen sind...
Das ist kein Argument, weil die CPUs halt ursprünglich nur solche JMP Instruktionen beherrschten. Heute kann man auf den meisten CPUs eine while oder for Schleife ziemlich direkt in Assembler Instruktionen übertragen (implicit Loop Counters und Zero Overhead Loops als Stichworte)...
Ich bin damals von Pascal zu Assembler gekommen, und teilweise hat Assembler ganz einfach Vorteile im Bereich der Flexibilität bei den GOTO Anweisungen gegenüber den bedingten Sprüngen.
Wenn flexibler bedeutet, dass man sich weniger Gedanken über ein anständiges Design und Programm Konzept machen muss und einfach alles runterhacken kann, gebe ich Dir Recht. Das darf aber nicht das Ziel beim Programmieren sein. Die Wartungsfähigkeit leidet so enorm unter GOTO (oder JMP usw.), dass es sich eigentlich nie lohnt, ausser man schreibt einen Hack, der nur extrem begrenzt eingesetzt werden soll, oder dessen Lebenszeit extrem kurz ist.

Der entscheidende Vorteil von Assembler kommt erst dann, wenn man extrem zeitkritische Programmteile hat (auf den µControllern muss man manchmal exakte Verzögerungen von einigen Mikrosekunden realisieren. Da macht der Compiler zuviel Unfug, so dass man das nur in Assembler richtig hinbekommt.)

Zeige mir ein "real-life" Beispiel, in dem die GOTO Konstruktion besser ist, als die strukturierte Version. Besser soll hier heissen verständlicher, klarer, besser wartbar und dem Problem besser angepasst, als eine strukturierte Lösung.

In diesem Zusammenhang möchte ich auf einen Artikel aus dem Jahr 1968 (Nein, das ist kein Tippfehler Neunzehnhunderachtundsechzig!) von E. W. Dijkstra hinweisen. Titel: "Goto Statement Considered Harmful": http://www.acm.org/classics/oct95/

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
Dookie
Beiträge: 1104
Registriert: 17.02.2002 20:38:19
Wohnort: Salzburg
Kontaktdaten:

Beitrag von Dookie » 20.02.2003 18:24:30

Hallo,

also ich kann von Assembler, besonders x86 Assembler als Lernsprache nur abraten. Nicht umsonst wurden in den 70er und 80er Jahren Programmiersprachen entwickelt, z.B. Basic, Pascal, Logo, die für das Erlernen der Programmierung conzipiert wurden.
Um noch einen Weiteren Kandidaten ins Rennen zu führen schlage ich Python vor. Als Beispiel schau Dir http://mailman.linuxtag.org/~spindler/t ... index.html und http://www.freenetpages.co.uk/hp/alan.gauld/german/ an.
C ist für mich ein recht brauchbarer universeller Assemblerersatz, für die 10% Code, in denen 90% Rechenzeit verbraten werden. Für die anderen 90% Code ist Python für mich ideal.


Gruß

Dookie

Antworten