PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ncurses mit c++



`kk
30-06-2005, 11:59
Hi Leute,
ich weiß diese Frage gab' es mindestens schon 30 Mio. Mal.
Aber ich weiß wenigstens, was ich machen möchte... ;)

Undzwar bin ich dabei C++ zu lernen, habe aber nicht das Bedürfnis irgendwelche GUI-Applikationen zu entwickeln (und mit C schon gar nicht..).
Ncurses oder Slang würde mir definitv ausreichen. Meint ihr, dann sollte ich lieber C verwenden?

Gibts da nen großen "Overhead" bei Verwendung von C++?

Mein Problem ist einfach, dass ich mich nicht für eine Sprache entscheiden kann.
Später (viel später...) möchte ich mich auch mal in die Grafikprogrammierung begeben und da ist ja (denke ich) eher C++ angesagt (Engine-mäßig...).

Soll ich beides lernen?
Was würdet ihr machen?

Danke
Kai

Thomas Engelke
30-06-2005, 13:24
Hallo!

Da du nach einer persönlichen Meinung fragst: Lern' C.

Für mich stellt sich die Frage, was man zuerst erreichen möchte: Mittels Skriptsprachen wie Python, Ruby oder Perl lassen sich sehr schnell fetzige Sachen herstellen. Man lernt danach, tiefer zu graben und zu verstehen, wie die eine oder andere Funktion der Skriptsprache so arbeitet. Auf der anderen Seite kann man mit C anfangen (auf dieser Seite gibt's meiner Meinung nach kaum Alternativen). Dort lernt man zuerst ganz andere Dinge: Wie funktioniert mein Rechner, mein Betriebssystem? Man flucht sich die Seele aus dem Leib, weil man dies oder das nicht beachtet hat und lernt, Ursache und Wirkung zu verstehen.

Willst du also an die Hand genommen werden und oben anfangen: Python oder Perl. Von unten gibt's C. Erst, wenn man sich mit den Grundlagen herumgeschlagen hat, kann man das Verhalten von manchen Funktionen oder Methoden (C++, Java) und die Logik hinter der Struktur verstehen.

TME

`kk
30-06-2005, 14:14
Hallo Thomas und danke für deine Antwort.

Im Prinzip wollte ich mich so entscheiden was ich lernen werde:
Python oder Perl und C oder C++. Ruby gefällt mir überhaupt nicht.
Bei Perl hätte ich wohl den Vorteil, dass ich PHP kann (kann eh jeder?)...

Im Prinzip habe ich in jeder Sprache schon programmiert, aber wie gesagt.
Ich hab keine Ahnung was ich vertiefen soll...

C kann ich eigentlich (nicht?)... und wie gehts da nun weiter?
Ich kann nicht behaupten, dass ich jedes Problem damit gelöst bekommen würde...

Dennoch danke für die Antwort.

peschmae
30-06-2005, 14:21
Schwierige Frage. Ehrlich gesagt mach ich persönlich C nicht so sehr. Vielleicht hab ich es noch nicht kapiert - aber es ist mir eher ein Rätsel wie man damit ein grösseres Programm schreiben kann/soll.

Aber wenn du jetzt ncurses verwenden willst ist der C++-Vorteil auch nicht so gross. Ich denke da läufts dann schnell darauf heraus dass du eigentlich genau das machst was du in C machen würdest und die Möglichkeiten von C++ nicht mal ansatzweise nutzt.

Naja, ich sehe ich gebe dir keine Antwort auf die Frage die man nicht wirklich beantworten kann. :D
Sicher ist: C++ ist komplizierter - am Anfang vor allem von der Syntax her - es gibt einfach mehr Zeugs. C ist viel kleiner - dadurch auch überschaubarer und vielleicht besser zum beginnen.

MfG Peschmä

`kk
30-06-2005, 14:25
Hm, es ist vielleicht falsch rübergekommen bzw. ich hab vergessen es zu erwähnen. :rolleyes:
Ich kann bereits C... bzw. die C-Untermenge die man in einem C++-Buch halt lernt... aber wenn ich mir mal C-Programme, die ncurses oder slang nutzen, anschaue (z.B. ncmpc, snownews (glaube ich war's...)) hält sich mein Verständnis in Grenzen. Das ist total unübersichtlich.

Wie auch immer... meine Frage ist ja eigentlich, ob die Benutzung von ncurses in einem C++-Programm viel Overhead erzeugt und ob es nicht besser wäre, gleich C zu verwenden. Vielleicht würde ich meinen Code besser verstehen. =)

Und naja... Perl ist mir irgendwie (auch) zu unübersichtlich und Python mag ich nicht.
Einen Grund dafür habe ich aber keinen.

Edit:
Ein Grund warum ich recht verwirrt bin, liegt denke ich daran, dass ich in vielen Sprachen (PHP, Java, C, C++, Perl, Python, ...) das Grundsätzliche beherrsche... mich aber nie wirklich richtig intensiv (PHP ausgenommen) mit der Sprache beschäftigt habe.

Ich möchte lieber 1, 2 Sprachen richtig gut beherrschen, als 5 oder 6 nur grundlegend.

Gruß
Kai

peschmae
30-06-2005, 16:16
Wie auch immer... meine Frage ist ja eigentlich, ob die Benutzung von ncurses in einem C++-Programm viel Overhead erzeugt und ob es nicht besser wäre, gleich C zu verwenden. Vielleicht würde ich meinen Code besser verstehen. =)

Overhead? Nein, eigentlich nicht. Also nicht von selber - es sei denn du machst das.

MfG Peschmä

anda_skoa
30-06-2005, 16:55
Wie auch immer... meine Frage ist ja eigentlich, ob die Benutzung von ncurses in einem C++-Programm viel Overhead erzeugt und ob es nicht besser wäre, gleich C zu verwenden.

Wieso sollte ncurses je nach Sprache des restlichen Programmcodes unterschiedlich viel Overhead erzeugen?

Ciao,
_

`kk
30-06-2005, 18:25
Gut, umso besser.
Nicht ncurses erzeugt Overhead, C++ erzeugt den. So denke ich jedenfalls...

Hier:
#include <string> // braucht sicher mehr Speicher als
#include <string.h> // ?

Falls nein, habe ich da etwas Grundsätzliches nicht verstanden.


Wieso sollte ncurses je nach Sprache des restlichen Programmcodes unterschiedlich viel Overhead erzeugen?

Ciao,
_
Das meinte ich nicht. Schreibe ich so unverständlich?

Gruß
Kai

anda_skoa
30-06-2005, 18:49
Gut, umso besser.
Nicht ncurses erzeugt Overhead, C++ erzeugt den. So denke ich jedenfalls...

Hmm, wüßte nicht warum.



#include <string> // braucht sicher mehr Speicher als
#include <string.h> // ?


Hmm, minimal:


#include <string.h>

int main()
{
}




#include <string>

int main()
{
}


Das c Programm mit gcc, das C++ Programm mit g++ kompiliert ergibt:


#> du -b includetest.*
36 includetest.c
688 includetest.c.o
34 includetest.cpp
694 includetest.cpp.o

8 Bytesm nicht die Welt

Ciao,
_

`kk
30-06-2005, 20:37
Ja ok... dürfte ja dann bei der Ausführungsgeschwindigkeit genauso sein.
Ich versteh zwar nicht warum, aber danke.

Gruß
Kai