PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C doch nichts für mich - was empfiehlt ihr mir ?



jou
11-10-2003, 19:48
Haio !
Ich habe eingesehen das C doch nichts für mich ist ich habe mich in Basic deutlich wohler gefühlt da ich aber auf Linux programmieren möchte die Frage: was soll ich lernen ? ich hab was von QT und GTK gehört. Gibt es dafür (deutsche) Tutorials ? Was ist besser und was basiert _nicht_ auf C ;)

Grüße
jou

bischi
11-10-2003, 19:55
JAVA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!¨

Auf detailliertere Fragen geb ich gern Antwort! :) :)

MfG Bischi

Badsteve
11-10-2003, 20:16
Original geschrieben von jou
Haio !
Ich habe eingesehen das C doch nichts für mich ist ich habe mich in Basic deutlich wohler gefühlt da ich aber auf Linux programmieren möchte die Frage: was soll ich lernen ? ich hab was von QT und GTK gehört. Gibt es dafür (deutsche) Tutorials ? Was ist besser und was basiert _nicht_ auf C ;)

Grüße
jou


besser, schlechter gibts nicht. Es gibt nur anders. Ich glaube eine Scriptsprache wie Perl oder auch Python wäre gut für dich, aber ich kenn Basic auch nicht wirklich.

Steve

cybercrow
11-10-2003, 20:31
Original geschrieben von jou
ich hab was von QT und GTK gehört. Gibt es dafür (deutsche) Tutorials ? Was ist besser und was basiert _nicht_ auf C ;)

GTK und QT sind keine Programmiersprachen, sondern nur toolkits mit denen man grafische Oberflächen erstellen kann.

GTK+ ist hauptsächlich C und QT C++ Für beide Toolkits gibt es aber noch andere language bindings.

Tutorials und infos über die verschiedenen Sprachen findest du auf www.gtk.org bzw. www.trolltech.com

Wenn du früher basic programmiert hast ist vielleicht wxBASIC was für dich? -> http://wxbasic.sourceforge.net/

Es gibt auch seit kurzem ein deutsches wxBASIC Forum (http://f27.parsimony.net/forum67321/index.htm) da ist zwar noch nicht viel los, aber der Admin des Boards kennt sich damit gut aus und kann bei Fragen/Problemen sicher helfen.

peschmae
12-10-2003, 09:18
als BASICer solltest du dir sicher auch noch mal Object Pascal (http://lazarus.freepascal.org z.B) anschauen

ansonsten ist Java sicherlich ein Versuch wert

MfG Peschmä

tuxipuxi
12-10-2003, 10:18
Original geschrieben von jou
Haio !
Ich habe eingesehen das C doch nichts für mich ist ich habe mich in Basic deutlich wohler gefühlt da ich aber auf Linux programmieren möchte die Frage: was soll ich lernen ? ich hab was von QT und GTK gehört. Gibt es dafür (deutsche) Tutorials ? Was ist besser und was basiert _nicht_ auf C ;)

Grüße
jou

GTK ist, wie schon gesagt hauptsaechlich C, wird dir also nicht gefallen. wenn du C++ lernen moechtest und unter linux programmierst, ist Qt ideal fuer dich. anda_skoa hat schon ein schoenes deutsches einsteigertutorial geschrieben: http://www.mrunix.de/forums/showthread.php?s=&threadid=31182 .

Ansonsten werf mal einen blick auf das Qt tutorial von trolltech: http://doc.trolltech.com/3.1/tutorial.html und das whitepaper: http://www.trolltech.com/products/qt/whitepaper/qt-whitepaper.html
.

Es gibt auch einige buecher ueber Qt, such mal nach "Das Qt Buch". Ich wuerde dir jedoch empfehlen, erstmal "normal" C++ zu lernen, bevor du Qt benutzt.

Java koennte dir eventuell auch gefallen, weil es einsteigerfreundlicher ist als C++. da haettest du auch verschiedene moeglichkeiten der grafikprogrammierung. Auf einen flame ueber geschwindigkeit und vor/nachteilen von Java lass ich mich an dieser Stelle nicht ein( nur als hinweis fuer die schreihaelse ), such einfach mal mit der forumssuche.

Gruss,

tuxipuxi.

bischi: kann java wirklich so schlecht sein, dass du keine argumente dafuer findest? gegen C++ konntest du noch nie welche liefern( wie auch, hast dich ja offensichtlich nicht damit beschaeftigt ) und fuer Java auch keine... irgendwie... peinlich.

Badsteve
12-10-2003, 11:22
@ tuxipuxi

ich glaube nicht, dass er c++ wirklich mögen wird, wenn er c schon nicht mag.


bischi: kann java wirklich so schlecht sein, dass du keine argumente dafuer findest? gegen C++ konntest du noch nie welche liefern( wie auch, hast dich ja offensichtlich nicht damit beschaeftigt ) und fuer Java auch keine... irgendwie... peinlich.

können wir bitte irgendwann mal mit diesem sch*** aufhören???
danke



Steve

anda_skoa
12-10-2003, 11:26
Wie cybercrow schon geschrieben hat, gibt es auch verschiedene Basic und Basich-ähnliche Sprachen unter Linux.

Weitere Beispiele:
http://gambas.sourceforge.net/
http://www.xbasic.org/

Wobei Gambas eher gute Linux Desktop Integration ermöglicht, während xbasic und wxBasic auch unter Windows laufen.

Falls du unter Basic MS Visual Basic verstehst, könnte es mit mono www.go-mono.org möglich sein, VB.Net auch unter Linux zu entwicklen und einzusetzen.

Falls du eher dazu tendierst, eine andere Sprache zu lernen, schliesse ich mit der Empfehlung für Java an.

Ciao,
_

bischi
12-10-2003, 11:50
bischi: kann java wirklich so schlecht sein, dass du keine argumente dafuer findest? gegen C++ konntest du noch nie welche liefern( wie auch, hast dich ja offensichtlich nicht damit beschaeftigt ) und fuer Java auch keine... irgendwie... peinlich.

Ich sag nur: Pointer***&&&***&&&***&&&Bool***&&&***...usw.

MfG Bischi

axeljaeger
12-10-2003, 12:15
Ich überlege, wann ich das letzte mal einen Pointer mit mehr als einem Zeichen gesehen habe, wenn man von den Argumenten der Main-Funktion absieht. Im Übrigen halte ich Pointer für sehr praktisch. Du musst sie ja nicht nutzen, kannst auch schön Referenzen machen. Da du in Java keine Pointer hast, hast du logischerweise auch keine Pointer auf Funktionen, so das du immer eine Klasse machen musst, in der du eine virtuelle Funktion (och, in Java ist ja per default alles virtual) überschreiben musst. Das ist ein Mehraufwand, der unnötig ist, Zeit kostet und die Codegröße bei vielen Userinterfaceactions erheblich vergrößert.

tuxipuxi
12-10-2003, 12:22
Original geschrieben von bischi
Ich sag nur: Pointer***&&&***&&&***&&&Bool***&&&***...usw.


-Pointer ist kein C++ keyword.
-Bool ist auch kein C++ keyword.
-ich habe noch nie einen ausdruck wie den obigen gesehen( uebrigens auch nicht uebersetzbar ).
-du musst sie nicht so intensiv nutzen.

und mal wieder kein argument.... kommen irgendwann argumente die du belegen kannst oder weiterhin nur muede attacken?

Berufspenner
12-10-2003, 12:53
-Bool ist auch kein C++ keyword. Hä? Ich denke mal, dass ich dich fallsch verstehe, aber bool ist ein Keyword in C++ und als Datentyp reserviert.

@bischi
Ich sag nur: Pointer***&&&***&&&***&&&Bool***&&&***...usw. Darf man mal fragen, wo du diesen Schwachsinn her hast? Das würde mich mal interessieren.

Cu
André

tuxipuxi
12-10-2003, 12:55
@Berufspenner:

achte auf den anfangsbuchstaben , in C++ heisst es, wie du weisst, bool.

anda_skoa
12-10-2003, 12:56
Original geschrieben von axeljaeger
Da du in Java keine Pointer hast, hast du logischerweise auch keine Pointer auf Funktionen, so das du immer eine Klasse machen musst, in der du eine virtuelle Funktion (och, in Java ist ja per default alles virtual) überschreiben musst.

Das ist aber auch in C++ die bevorzugte Vorgehensweise, weil man nur so typsicher ist und Fehler zur Kompilezeit feststellen kann.

Ciao,
_

Berufspenner
12-10-2003, 13:03
Original geschrieben von tuxipuxi
@Berufspenner:

achte auf den anfangsbuchstaben , in C++ heisst es, wie du weisst, bool. Jup, wusste doch, das ich dich "fallsch" verstanden hab ;)

Cu
André

axeljaeger
12-10-2003, 13:27
Original geschrieben von anda_skoa
Das ist aber auch in C++ die bevorzugte Vorgehensweise, weil man nur so typsicher ist und Fehler zur Kompilezeit feststellen kann.
Ciao,
_

Ich spiele auf Folgetechnologien wie Signals&Slots an. Das kann man ja mittlerweile auch ohne MOC machen ( nicht in Qt, aber etwa in GTKmn);

bischi
12-10-2003, 13:50
und mal wieder kein argument.... kommen irgendwann argumente die du belegen kannst oder weiterhin nur muede attacken?

Hab ich jemals behauptet, dies sei ein Argument? (--> L E S E N !)

Jetzt ist aber Schluss mit spammen, denn hier sucht jemand eine Alternative:

Meine Vorschläge:
-> Java, da:
+++ Gratis; durchdacht; plattformunabhängig; "neue" Sprache, massiv weniger Aufwand für ein Programm als beispielsweise in C/C++; guter Compiler (Fehlererkennung); logisch aufgebaut; gute Doku; gute Bücher;...
--- Java ist langsam; du kannst (fast) keine nativen Programme erstellen; Benötigt VirtualMachine, die zuerst installiert werden muss...

-> Phython, da (kenne ich nicht so gut):
+++ Noch schneller ein Programm erstellen, als mit Java; gratis; mehr oder weniger Plattformunabhängig; Proggis müssen nicht kompiliert werden;...
--- Interpreter notwendig; Skripte können von jedem gelesen werden; langsam; ...


Aufgrund der Ählichkeit zu C würde ich auf keinen Fall C++ empfehlen!
Andere Sprachen kenne ich eher schlecht, jedoch soll Delphi noch gut sein.

Hoffe, dies hilft weiter, MfG Bischi

Berufspenner
12-10-2003, 14:04
Hi@all

Also ich persöhnlich würde Java nur unter dem Aspekt der einfachen und schnellen Erstellung von GUI Anwendungen empfehlen. Das ist für mich im Moment der einzige, vorteilige Aspekt den Java durch z.B. AWT gegenüber anderen Sprachen bietet.

@jou
Darf man mal erfahren, was dir an C nicht gefallen hat? Ich kenne mich in Basic nicht aus.

Cu
André

Bluesm@n
12-10-2003, 14:06
Was mich aber in puncto Java noch beschäftigt (werds höchstwahrscheinlich jetz dann anpacken zu lernen). Stimmt das Klischee immer noch das die Java GUIS extrem langsam und hässlich sind?

tuxipuxi
12-10-2003, 14:18
Original geschrieben von Bluesm@n
Was mich aber in puncto Java noch beschäftigt (werds höchstwahrscheinlich jetz dann anpacken zu lernen). Stimmt das Klischee immer noch das die Java GUIS extrem langsam und hässlich sind?

darueber wurde schon viel diskutiert aber wirkliche vergleiche gibt es glaub ich nicht. entscheide es am besten nach deinem eigenem empfinden, mir kommen sie langsam vor.

axeljaeger
12-10-2003, 14:22
Original geschrieben von bischi
Hab ich jemals behauptet, dies sei ein Argument? (--> L E S E N !)


Hätte ja zur Abwechslung mal sein können...Ich glaub an das Gute im Menschen


Original geschrieben von bischi

Java: plattformunabhängig, Python: mehr oder weniger Plattformunabhängig

Warum sollte Java plattformunabhängiger als Python sein?


Original geschrieben von bischi
Java: Gratis

Böses Argument, aber Python ist ebenfalls kostenlos, der GCC auch. Python und GCC sind sogar OpenSource.


Original geschrieben von bischi

massiv weniger Aufwand für ein Programm als beispielsweise in C/C++;

Das hätte ich gern an einem Beispiel belegt


Original geschrieben von bischi

Skripte können von jedem gelesen werden; langsam

Das ist definitiv falsch, Pythonskripte können in eine Art Bytecode kompiliert werden.

Du kreidest die Ähnlichkeit von C++ zu C an, gibst aber nicht zu, das die JavaSyntax nicht unähnlicher ist. Die JavDoku halte ich, wenn wir uns auf die Api-Reference beziehen, für nicht so gut, wie die von Qt.


Original geschrieben von bischi

Aufgrund der Ählichkeit zu C würde ich auf keinen Fall C++ empfehlen!


Das würde ich umsomehr empfehlen


Original geschrieben von Bluesm@n

Stimmt das Klischee immer noch das die Java GUIS extrem langsam und hässlich sind?


Ja, das trifft nach wie vor voll und ganz zu. Such mal im Forum, da hatten wir grad schon eine Diskusion, wo dann Screenshots von ach so tollen Look&Feels aufgetaucht sind, die mich persönlich nicht überzeugt haben. Über Gecshwindigkeit brauchen wir gar nicht zu reden.

Berufspenner
12-10-2003, 14:23
mir kommen sie langsam vor. Mir auch. Wenn ich mir z.B. mal NetBeans angucke, dann schlafe ich ein so langsam ist das beim starten und im Betrieb und das auf meinem 800er. Das kann es ja nun auch nicht sein.

Cu
André

fs111
12-10-2003, 14:26
<Werbung>Python, Python und nochmal Python. Das ist dermaßen genial, dass ich das echt nicht mehr missen möchte. GUI Toolkits dafür gibt es etlich, unter anderem auch GTK, QT und WxWindows. Python ist so einfach, dass man innerhalb weniger Stunden schon sehr gute Ergebnisse bekommt. Während man in anderen Sprachen noch überlegt, wie man das jetzt seinem Compiler beibringt, hat man in Python schon ein Ergebnis.</Werbung>

fs111

tuxipuxi
12-10-2003, 14:35
Original geschrieben von fs111
<Werbung>Python, Python und nochmal Python. Das ist dermaßen genial, dass ich das echt nicht mehr missen möchte. GUI Toolkits dafür gibt es etlich, unter anderem auch GTK, QT und WxWindows. Python ist so einfach, dass man innerhalb weniger Stunden schon sehr gute Ergebnisse bekommt. Während man in anderen Sprachen noch überlegt, wie man das jetzt seinem Compiler beibringt, hat man in Python schon ein Ergebnis.</Werbung>

fs111

na wenn das so ist werde ich mir python anschauen und gucken ob das so stimmt :). ich moechte ja nicht eine sprache miesmachen ohne sie zu kennen :).

bischi
12-10-2003, 14:44
Zuerst zu der Geschwindigkeit von Java: Ich habe gerade unter Swing ein Programm als Maturarbeit geschrieben, das unter anderem Animationen anzeigt, Bilder skaliert,...

Die Geschwindigkeit ist überhaupt kein Problem, einzig das Aufstarten dauert ein bisschen lange (unter Windows, keine Ahnung wies unter Linux ist).


Warum sollte Java plattformunabhängiger als Python sein?
Bei Java bin ich mir sicher, dass es für (fast) alle Betriebssysteme eine JVM gibt. Bei Phython weiss ich, dass es sie sowohl für Linux, als auch für Windows gibt, den Rest weiss ich nicht.


Böses Argument, aber Python ist ebenfalls kostenlos, der GCC auch. Python und GCC sind sogar OpenSource.
Bei Phyton stehts auch (L E S E N !). Ich weiss einfach, dass viele der C/C++ Kompiler was kosten! (auch bei einigen Toolkits, je das Betriebssystem)




Das hätte ich gern an einem Beispiel belegt
Wieviele Zeilen Code schreibst du, um ein Fenster mit Titelzeile, den drei Knöpfen oben rechts und einem Text darin zu erstellen (in C/C++)? In Java sinds:



import java.awt.*;

public class Fenster
extends Frame
{
public Fenster()
{
super("Titel");
this.setSize(600,300);
Label l = new Label("Hallo");
this.add(l);
this.setVisible(true);
}
public static void main(String args[])
{
Fenster f = new Fenster();
}
}


18


Das ist definitiv falsch, Pythonskripte können in eine Art Bytecode kompiliert werden.
Gut zu wissen!



Du kreidest die Ähnlichkeit von C++ zu C an, gibst aber nicht zu, das die JavaSyntax nicht unähnlicher ist. Die JavDoku halte ich, wenn wir uns auf die Api-Reference beziehen, für nicht so gut, wie die von Qt
Syntaxmässig ja, jedoch der ganze Sprachaufbau: NEIN (Java ist durch und durch Objektorientiert, bei C++ wurde das nachträglich hineingeflickt!)

MfG Bischi

cybercrow
12-10-2003, 14:45
Original geschrieben von fs111
<Werbung>Python, Python und nochmal Python. Das ist dermaßen genial, dass ich das echt nicht mehr missen möchte. GUI Toolkits dafür gibt es etlich, unter anderem auch GTK, QT und WxWindows. Python ist so einfach, dass man innerhalb weniger Stunden schon sehr gute Ergebnisse bekommt. Während man in anderen Sprachen noch überlegt, wie man das jetzt seinem Compiler beibringt, hat man in Python schon ein Ergebnis.</Werbung>

du scheinst ja eine ziemlich hohe Meinung von Python zu haben. Ich habe bisher eher immer negative Meinungen zu Python gehört, ich muß aber zugeben das ich es selber noch nie ernsthaft angesehen habe.

Ich arbeite mich gerade etwas in scheme ein, ich finde das irgendwie faszinierend (und endlich beginne ich auch meine emacs Konfiguration zu verstehen :D )

anda_skoa
12-10-2003, 14:45
Original geschrieben von axeljaeger

Das hätte ich gern an einem Beispiel belegt


12 Minuten 57 Sekunden.

Kompilieren und starten zB mit
# java Loader P1 P2 P3 P1

Ciao,
_

bischi
12-10-2003, 14:46
na wenn das so ist werde ich mir python anschauen und gucken ob das so stimmt . ich moechte ja nicht eine sprache miesmachen ohne sie zu kennen .

Gut so! Python ist nämlich wirklich gut (mal ganz abgesehen davon, dass ich noch kein gutes Gratisbuch gefunden habe, und die Doku meiner Ansicht nach nie und nimmer an die von Java rankommt).

MfG Bischi

anda_skoa
12-10-2003, 14:49
Original geschrieben von cybercrow
du scheinst ja eine ziemlich hohe Meinung von Python zu haben. Ich habe bisher eher immer negative Meinungen zu Python gehört, ich muß aber zugeben das ich es selber noch nie ernsthaft angesehen habe.


Ruby soll sehr gut sein.
Bei Python stört mich am meisten, dass Blöcke durch Einrückung gemacht werden.
Wenn du da einmal nicht aufpasst, hast du eine ganz andere Struktur als eigentlich erwünscht.

Explizite Blockstrukturen mit Klammern oder "begin end" sind mit wesentlich lieber.

Ciao,
_

bischi
12-10-2003, 14:51
12 Minuten 57 Sekunden.

Und es läuft: Wielange geht das in C/C++?
Wieviele Codezeilen?

axeljäger, ich warte!

MfG Bischi

fs111
12-10-2003, 14:54
Original geschrieben von cybercrow
du scheinst ja eine ziemlich hohe Meinung von Python zu haben. Ich habe bisher eher immer negative Meinungen zu Python gehört, ich muß aber zugeben das ich es selber noch nie ernsthaft angesehen habe.

Ich arbeite mich gerade etwas in scheme ein, ich finde das irgendwie faszinierend (und endlich beginne ich auch meine emacs Konfiguration zu verstehen :D )

Ja, es ist echt genial, und macht irgendwie süchtig. Ich habe es gerade bei einem Praktikum kennen gelernt, und kenne natürlich nicht alle Facetten von Python, aber das was ich bisher gesehen habe, überzeugt mich definitiv. Man kan mit ein paar Zeilen Code so viel machen, und das ist so banal einfach, dass man sich manchmal fragt, wieso das in anderen Sprachen alles so umständlich sein muss. Ein absolutes Killfeature ist IMHO, dass man einfach den Interpreter starten kann, und interaktiv Programme schreiben kann, bzw. ganz leicht neue Sachen zuerst mal ausprobieren kann. Absolut genial!

Scheme ist doch eine Funktionale Sprache, oder? Mit denen stehe ich so ein bisschen auf Kriegsfuss, ich sage nur XSLT...

fs111

fs111
12-10-2003, 14:57
Original geschrieben von anda_skoa
Ruby soll sehr gut sein.
Bei Python stört mich am meisten, dass Blöcke durch Einrückung gemacht werden.
Wenn du da einmal nicht aufpasst, hast du eine ganz andere Struktur als eigentlich erwünscht.

Explizite Blockstrukturen mit Klammern oder "begin end" sind mit wesentlich lieber.

Ciao,
_

Das ist sicherlich eine Gewöhnungssache, aber hat insofern auch einen Vorteil, dass der Code immer lesbar ist. In Java oder C++ kann man ja formatieren, wie man will, und es läuft trotzdem. Python zwingt einen dazu seinen Code schön zu machen. Am besten finde ich es, dass man eben keine "{}" braucht, weil die ja auf einer deutschen Tastatur einfach nur furchtbar zu benutzen sind.

fs111

anda_skoa
12-10-2003, 14:57
Original geschrieben von bischi
Die Geschwindigkeit ist überhaupt kein Problem, einzig das Aufstarten dauert ein bisschen lange (unter Windows, keine Ahnung wies unter Linux ist).

Bei einem meiner Programme gings unter Linux wesentlich schneller.



Wieviele Zeilen Code schreibst du, um ein Fenster mit Titelzeile, den drei Knöpfen oben rechts und einem Text darin zu erstellen (in C/C++)? In Java sinds:




#include <qapplication.h>
#include <qlabel.h>

int main(int argc, char** args)
{
QApplication app(argc, args);
QLabel l("Hallo", 0);

app.setMainWidget(&l);
l.show();

return app.exec();
}

13



Syntaxmässig ja, jedoch der ganze Sprachaufbau: NEIN (Java ist durch und durch Objektorientiert, bei C++ wurde das nachträglich hineingeflickt!)

Das ist beides nicht richtig.
Erstens ist Java nicht 100% Objektorientiert und zweitens war Objektorientierung schon von Anfang Teil von C++

Ciao,
_

tuxipuxi
12-10-2003, 14:59
Original geschrieben von bischi


Syntaxmässig ja, jedoch der ganze Sprachaufbau: NEIN (Java ist durch und durch Objektorientiert, bei C++ wurde das nachträglich hineingeflickt!)


SO bischi:

-es gibt fuer mehr systeme einen c++ compiler als es JVM's gibt.
-C++ ist durch und durch von ANFANG an objektorientiert( mal gedanken drueber gemacht wozu es entwickelt wurde? wie kommst du auf so einen bloedsinn?)
-java verletzt in seiner API manchmal selber seine innere OOP logik( brauchst du nicht gegen trollen, kann ich dir an beispielen belegen )
-C++ Toolkits kosten oft geld weil es _arbeit_ macht, du als windowsuser solltest gewoehnt sein dass gute( oder schlechte ) produkte was kosten.( BTW ist Qt qualitativ hochwertiger als die JAVA api.. dass duerfte selbst dir klar sein).
-python schreibt man python.
-C++ ist nicht dazu gedacht mit 18 zeilen ein fensterchen zu oeffnen( obwohl ich es mit Qt auch mit nicht viel mehr zeilen koennte... man braucht dass geruest, dann hast du das geruest fuer ein fenster dass du auch erweitern kannst ). edit: LOL du meintest ein billiges label und kein ganzes mainwindow.. zu schnell gelesen.
-C++ ist durch und durch durchsichtig und logisch aufgebaut.
-Pointer sind fuer effiziente sprachen halt praktisch.

tut mir leid, aber ich frage mich wirklich wie du auf den ganzen dumpfsinn kommst den du schreibst... spass oder weisst du es wirklich nicht besser?

Berufspenner
12-10-2003, 15:00
Original geschrieben von bischi
Und es läuft: Wielange geht das in C/C++?
Wieviele Codezeilen?

axeljäger, ich warte!

MfG Bischi Na, wenn du die ganzen Implementierungen für GUIs, etc. selber schreiben müsstest, wärest du nicht so vorlaut. Sei froh, dass dir 98% der Arbeit schon abgenommen wurden und zwar von bezahlten Programmierern. Hinter Java steht ein ganz anderes Konzept als hinter C++ und außerdem konnte Java schon in der Entwicklungsphase von den Fehlern anderer und älterer Sprachen lernen.

@Topic
Wie wäre es mit SQL? :D Das ist echt saugeil und soll sogar OOP fehig sein. Soweit bin ich aber leider noch nicht.

Cu
André

anda_skoa
12-10-2003, 15:02
Original geschrieben von fs111
Das ist sicherlich eine Gewöhnungssache, aber hat insofern auch einen Vorteil, dass der Code immer lesbar ist. In Java oder C++ kann man ja formatieren, wie man will, und es läuft trotzdem. Python zwingt einen dazu seinen Code schön zu machen. Am besten finde ich es, dass man eben keine "{}" braucht, weil die ja auf einer deutschen Tastatur einfach nur furchtbar zu benutzen sind.


Das mit den geschwungen Klammern auf einer DE Tastatur nervt schon, aber ersten kann man das umstellen und zweitens ist es keine gute Idee, Whitespaces zu einem Element der Syntax zu machen, da kann viel zuviel schief gehen.

Und man wird auch nicht zur Einhaltung der Codingkonvention gezwungen, den der Code bleibt gültig, nur macht er was anderes.
Und Laufzeitfehler suchen, die durch das Fehlen eines Whitespace ausgelöst wird, ist ziemlich aufwendig.

Ciao,
_

fs111
12-10-2003, 15:03
Original geschrieben von Berufspenner
Na, wenn du die ganzen Implementierungen für GUIs, etc. selber schreiben müsstest, wärest du nicht so vorlaut. Sei froh, dass dir 98% der Arbeit schon abgenommen wurden und zwar von bezahlten Programmierern. Hinter Java steht ein ganz anderes Konzept als hinter C++ und außerdem konnte Java schon in der Entwicklungsphase von den Fehlern anderer und älterer Sprachen lernen.

@Topic
Wie wäre es mit SQL? :D Das ist echt saugeil und soll sogar OOP fehig sein. Soweit bin ich aber leider noch nicht.


Bist Du Dir sicher, dass Du weißt was SQL ist?

Berufspenner
12-10-2003, 15:05
Original geschrieben von fs111
Bist Du Dir sicher, dass Du weißt was SQL ist? Hätte ich DML oder DQL sagen sollen, oder worauf willst du hinaus? :confused:

Cu
André

fs111
12-10-2003, 15:06
Original geschrieben von anda_skoa
Das mit den geschwungen Klammern auf einer DE Tastatur nervt schon, aber ersten kann man das umstellen und zweitens ist es keine gute Idee, Whitespaces zu einem Element der Syntax zu machen, da kann viel zuviel schief gehen.

Und man wird auch nicht zur Einhaltung der Codingkonvention gezwungen, den der Code bleibt gültig, nur macht er was anderes.
Und Laufzeitfehler suchen, die durch das Fehlen eines Whitespace ausgelöst wird, ist ziemlich aufwendig.

Ciao,
_

Also, das sehe ich längst nicht so kritisch wie Du. Den Einrückungslevel sehe ich auf den ersten Blick, im Gegesatz zu einer fehlenden Klammer. Des weiteren sind Methoden/Funktionen, die so lang sind, dass sie nicht auf eine Bildschirseite passen, sowieso ein Designfehler.

fs111

fs111
12-10-2003, 15:07
Original geschrieben von Berufspenner
Hätte ich DML oder DQL sagen sollen, oder worauf willst du hinaus? :confused:

Cu
André

Zeig mir mal einen OO-Ansatz in Sql.

fs111

Berufspenner
12-10-2003, 15:11
Original geschrieben von fs111
Zeig mir mal einen OO-Ansatz in Sql.

fs111 Ich habe gesagt, SQL soll OO-fehig sein und nicht das es auch so ist bzw. dass ich es kann. Ich bezog mich dabie mehr auf die Existens dieses Buches: http://www.amazon.de/exec/obidos/ASIN/3827320445/

Cu
André

anda_skoa
12-10-2003, 15:11
Original geschrieben von fs111
Also, das sehe ich längst nicht so kritisch wie Du.

:)



Den Einrückungslevel sehe ich auf den ersten Blick, im Gegesatz zu einer fehlenden Klammer.

Niemand verbietet dir einzurücken. Mach ich immer.



Des weiteren sind Methoden/Funktionen, die so lang sind, dass sie nicht auf eine Bildschirseite passen, sowieso ein Designfehler.


Nunja, ich kenne Programme mit mehr als einer Funktion.
Ich kenne Programme mit tausenden Funktionen.

Ciao,
_

fs111
12-10-2003, 15:18
Original geschrieben von anda_skoa

Nunja, ich kenne Programme mit mehr als einer Funktion.
Ich kenne Programme mit tausenden Funktionen.

Ciao,
_

Ist ein bisschen wie ein Chat gerade ;-)

Ich meinte auch nicht, dass das Programm auf eine Seite passen soll, sondern eine Funktion/Methode, alles andere wird nur schwer wartbar.

Einrückungen mache ich natürlich auch in Java, ist ja klar, nur ist es eben so, wenn man dann zum 12534 Mal was ändert, und es immer noch nicht laufen will, dass man dann irgendwann etwas schluderig mit der Einrückung wird, und genau das passiert Dir in Python eben nicht.

fs111

axeljaeger
12-10-2003, 15:20
Ich glaub, mein Beweis hat sich erledigt, aber wie wäre es mal mit einer interessanten Aufgabe, wo man sieht, wie Klasse das Eventhandling von Java funktioniert: Ein Button in einem Fenster, der das Programm beendet:



#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton quit( "Quit", 0 );
QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
a.setMainWidget( &quit );
quit.show();
return a.exec();
}

bischi
12-10-2003, 15:22
-es gibt fuer mehr systeme einen c++ compiler als es JVM's gibt.
Gibt es auch ein Toolkit, dass für alle diese Systeme das gleiche ist und das nichts kostet?


-C++ ist durch und durch von ANFANG an objektorientiert( mal gedanken drueber gemacht wozu es entwickelt wurde? wie kommst du auf so einen bloedsinn?)
Das stimmt so, doch C++ basiert (wie es der Name schon sagt) auf C. Dieses ist nicht objektorientiert und wurde ein bisschen herumgewurstelt, bis es OOP-fähig war und man es C++ nennt!


-java verletzt in seiner API manchmal selber seine innere OOP logik( brauchst du nicht gegen trollen, kann ich dir an beispielen belegen )
Nicht nur sagen, du hast Beispiele: ZEIGEN!


-C++ Toolkits kosten oft geld weil es _arbeit_ macht, du als windowsuser solltest gewoehnt sein dass gute( oder schlechte ) produkte was kosten.( BTW ist Qt qualitativ hochwertiger als die JAVA api.. dass duerfte selbst dir klar sein).
Wie definiest du "qualitativ hochwertiger"?


-python schreibt man python.
Stimmt.


-C++ ist nicht dazu gedacht mit 18 zeilen ein fensterchen zu oeffnen( obwohl ich es mit Qt auch mit nicht viel mehr zeilen koennte... man braucht dass geruest, dann hast du das geruest fuer ein fenster dass du auch erweitern kannst ). edit: LOL du meintest ein billiges label und kein ganzes mainwindow.. zu schnell gelesen.
Du kannst mein Java-Fenster problemlos erweitern!


-C++ ist durch und durch durchsichtig und logisch aufgebaut.
Ist mir leider noch nicht aufgefallen!


-Pointer sind fuer effiziente sprachen halt praktisch.
Java hat auch Pointer, nur ist es da nicht so kompliziert!


tut mir leid, aber ich frage mich wirklich wie du auf den ganzen dumpfsinn kommst den du schreibst... spass oder weisst du es wirklich nicht besser?
Kann schon sein.

MfG Bischi

PS: Wollen wir nicht gleich nochmals einen Windows-Linuxflame anfangen? :D

anda_skoa
12-10-2003, 15:23
Original geschrieben von fs111
Ist ein bisschen wie ein Chat gerade ;-)

Wir sollten unseren IRC channel benutzen :)



Einrückungen mache ich natürlich auch in Java, ist ja klar, nur ist es eben so, wenn man dann zum 12534 Mal was ändert, und es immer noch nicht laufen will, dass man dann irgendwann etwas schluderig mit der Einrückung wird, und genau das passiert Dir in Python eben nicht.


Ok, jetzt komm ich nicht mehr mit.
Während es dann in Java noch geht, aber schlecht aussieht, hat man in Python irgendwas anderes erzeugt.
Versteh nicht, wo das der Vorteil ist?

Wenn ich ein zufälliges Programm will, versuch ich es mit dd aus /dev/urandom :)

Ciao,
_

bischi
12-10-2003, 15:25
@ axeljäger:

Wie wärs mit so einem Luxusbutton?



JButton b = new JButton("<html><font color=#020286><font size=+1>Beenden");
b.setOpaque(false);
b.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println("Knopf Beenden gedrückt");
System.exit(0);
}
});
b.setToolTipText("<html>Mit einem Klick auf diesen Knopf Beenden Sie<br> "+
"das Programm.");
cp.add(b);

axeljaeger
12-10-2003, 15:29
Bischi, nenn mir mal 5 Plattformen, für die es Java mit dem vollen Sprachumfang von Java 1.4 gibt. Mir fallen 4 ein: Mac, Linux, Solaris, Windows. Die ganzen Sachen auf Handys und PDAs haben alle kein Swing und sind auch sonst ziemlich hinterher. Ein Toolkit für die 4 angesprochenen Plattformen wäre etwa Qt oder auch GTK, wobei Qt auch noch auf EmbeddedDevices, wie etwa dem Zaurus läuft, auf dem Java ein Krücke ist (nur AWT). Außerdem kannst du Qt in einem Framebuffer laufen lassen, wohingegen Java@Unix noch auf Motif basiert (*schauder*)

Fangen wir mal mit Unlogischem in Java an: Warum sind die Konstanten in der Klasse java.awt.Color alle kleingeschrieben, ganz im Gegensatz zu den Konstanten in anderen Klassen?

Warum zierst du dich, meine kleine Aufgabe zu lösen? Oder würdest du damit die maximale Länge eines Beitrages überschreiten?

Und guck mal hier: http://www.trolltech.com/images/screenshots/designer/linux.gif
das ist doch was feines. Und weist du, was das beste ist? Das ist auf einem PII 266Mhz benutzbar schnell.

Edit: Guck mal hier, das läuft sogar auf Irix mit nativem Look&Feel: http://www.trolltech.com/images/screenshots/designer/irix.gif

tuxipuxi
12-10-2003, 15:30
Original geschrieben von bischi
[B][quote]Gibt es auch ein Toolkit, dass für alle diese Systeme das gleiche ist und das nichts kostet?
ja, Qt. zwar mit einigen lizenzbestimmungen und unter windows eine etwas aeltere version, aber fuer mac os, unix/linux und windows kostenlos.



Das stimmt so, doch C++ basiert (wie es der Name schon sagt) auf C. Dieses ist nicht objektorientiert und wurde ein bisschen herumgewurstelt, bis es OOP-fähig war und man es C++ nennt!

vom namen her hast du recht, inhaltlich aber nicht. die funktionen der std sind in c++ neu( du kannst aber auch C funktionen benutzen ).



Nicht nur sagen, du hast Beispiele: ZEIGEN!

muss ich echt? dass dauert die wieder rauszusuchen :(



Wie definiest du "qualitativ hochwertiger"?


Qt-Programme schlagen jede Java GUI app in geschwindigkeitsmessungen, dafuer lege ich wirklich meine hand ins feuer( was nicht zuletzt daran liegt dass es C++ ist ).
Die Qt-Api ist durch und durch konsequent objektorientiert, und zwar zu 100%.



Du kannst mein Java-Fenster problemlos erweitern!
ja, dazu haben anda_skoa und axeljaeger schon was gesagt.



Wollen wir nicht gleich nochmals einen Windows-Linuxflame anfangen? :D

Ganz ehrlich :)? Noe! :D

bischi
12-10-2003, 15:37
@axeljäger, tuxi: Wobei man um eine aktuelle Vers von Qt zu bekommen, unter Windows blechen muss: Somit fällt entweder Qt oder Windows weg!



Fangen wir mal mit Unlogischem in Java an: Warum sind die Konstanten in der Klasse java.awt.Color alle kleingeschrieben, ganz im Gegensatz zu den Konstanten in anderen Klassen?
Musst du nicht mich fragen!



Warum zierst du dich, meine kleine Aufgabe zu lösen? Oder würdest du damit die maximale Länge eines Beitrages überschreiten?
Welche Aufgabe?


vom namen her hast du recht, inhaltlich aber nicht. die funktionen der std sind in c++ neu( du kannst aber auch C funktionen benutzen ).
Funktion umbenennt, neue Sprache! WOW!!!



Qt-Programme schlagen jede Java GUI app in geschwindigkeitsmessungen, dafuer lege ich wirklich meine hand ins feuer( was nicht zuletzt daran liegt dass es C++ ist ).
Kann gut sein, jedoch kannst du Java-Programme mit C++-Programmen vergleichen: Ich bin mir sicher, im C++-Programm wirst du mehr Fehler finden, da der Compiler keine (brauchbaren) Fehlermeldungen ausgibt. Wenn du in Java dann doch mal S** gebaut hast, kratzt dir die JVW ab, in C++ das ganze Betriebssystem!

MfG Bischi

bischi
12-10-2003, 15:39
Fangen wir mal mit Unlogischem in Java an: Warum sind die Konstanten in der Klasse java.awt.Color alle kleingeschrieben, ganz im Gegensatz zu den Konstanten in anderen Klassen?

Stimmt übrigens nicht: Du kannst sowohl

Color.CYAN

als auch

Color.cyan

schreiben!

MfG Bischi

anda_skoa
12-10-2003, 15:43
Original geschrieben von bischi
@axeljäger, tuxi: Wobei man um eine aktuelle Vers von Qt zu bekommen, unter Windows blechen muss: Somit fällt entweder Qt oder Windows weg!

wxWindows, ParaGUI, gtkmm, FOX, FLTK



Welche Aufgabe?

Ich denke das ist eine Zeitverschiebungsproblem.
Ging um den Button zum Fenster schliessen.



Funktion umbenennt, neue Sprache! WOW!!!

:)
Nee, das verwechselst du mit .NET, das nur ein umbenannten Java ist :D



Wenn du in Java dann doch mal S** gebaut hast, kratzt dir die JVW ab, in C++ das ganze Betriebssystem!

Bei einem richtigen Betriebsystem nur der Prozess.
Bei diesen Betriebsystemsimulatoren aus Redmond der Simulator :D

Ciao,
_

tuxipuxi
12-10-2003, 15:43
@axeljäger, tuxi: Wobei man um eine aktuelle Vers von Qt zu bekommen, unter Windows blechen muss: Somit fällt entweder Qt oder Windows weg!

bei java stoerts dich doch auch nicht dass das releasedatum nicht gestern war oder?
kannst aber auch gerne wxWindows nehmen, kostenlos.



Funktion umbenennt, neue Sprache! WOW!!!

nein, nicht umbenannt, C++ ist eine neue sprache und die funktionen neu geschrieben.



Kann gut sein, jedoch kannst du Java-Programme mit C++-Programmen vergleichen: Ich bin mir sicher, im C++-Programm wirst du mehr Fehler finden, da der Compiler keine (brauchbaren) Fehlermeldungen ausgibt. Wenn du in Java dann doch mal S** gebaut hast, kratzt dir die JVW ab, in C++ das ganze Betriebssystem!


darf ich ein beispiel fuer eine schlechte fehlermeldung haben? ich finde die eigentlich recht aussagekraeftig. aber tut mir leid, du kennst ja den gcc nicht, sondern nur den compiler den dir microsoft zur verfuegung gestellt hat.

ich glaube kaum dass du es unfreiwillig schaffst mit deinem C++ Programm dass system zum absturz zu bringen. dass duerfte eher daran liegen dass du Windows benutzt, dass ist recht absturzfreundlich. Aber wenn du mir ein programm schickst bei dem das passiert und dass ich auch auf linux laufen lassen kann( meinetwegen sogar windows ) probiere ich das gerne aus.

axeljaeger
12-10-2003, 15:43
Durch deine unsachlichen Aussagen disqualifizierst du dich selbst. Ich habe dir eine Inkonsequenz in Java nachgewiesen und nimmst deine Niederlage nicht an. Wenn ich Mist mit C++ mache, dann stürzt mein Betriebssystem nicht ab. (Linux MDK 9.1). Wenn ich in der Schule mit Java Mist mache, raucht das System ab (MacOs 9).

Mit der Aufgabe meine ich den Button, der das Programm beendet (Mein post vor dem Luxusbutton).

Das man in Java beides schreiben kann, ist schlechter, als es wenn es einmal so und einmal so wäre.

Berufspenner
12-10-2003, 15:49
@bischi

In all deinen Postings versuchst du Äpfel und Birnen rein oberflächlich zu vergleichen. Kein Wunder, dass da sowas bei herauskommt.
Wobei man um eine aktuelle Vers von Qt zu bekommen, unter Windows blechen muss: Somit fällt entweder Qt oder Windows weg! Windowsuser sollten es doch (eigentlich :D) gewohnt sein, für Software zu bezahlen. Wieso sollte sich Trolltech diese Chance entgehen lassen?!
Funktion umbenennt, neue Sprache! WOW!!! löl! Denke daran, Äpfel und Birnen :rolleyes:
Das stimmt so, doch C++ basiert (wie es der Name schon sagt) auf C. Dieses ist nicht objektorientiert und wurde ein bisschen herumgewurstelt, bis es OOP-fähig war und man es C++ nennt! Man sollte den "Gegner" kennen, befor man ihn zum Gegner macht!

@fs111
Wo bleibt deine Antwort auf meine "Bist Du Dir sicher, dass Du weißt was SQL ist?" Antwort? Oder willst du mich hier am langen Arm verhunger lassen? ;)

Cu
André

PS: Endlich mal eine schöne sonntagsnachmittags Beschäftigung :D ;)

peschmae
12-10-2003, 15:59
Original geschrieben von axeljaeger
Böses Argument, aber Python ist ebenfalls kostenlos, der GCC auch. Python und GCC sind sogar OpenSource.


uiuiui; es gab sogar mal das Gerücht, sie seien beide Freie Software. Aber das ist nur ein Gerücht.
(GCC beinhaltet übrigens auch GCJ + Classpath + GIJ :D)



Das ist definitiv falsch, Pythonskripte können in eine Art Bytecode kompiliert werden.


und der ist dann genau so dekompiliersicher wie derjenige von Java? :cool:



(zu Look and Feel von Java-Guis)
Ja, das trifft nach wie vor voll und ganz zu. Such mal im Forum, da hatten wir grad schon eine Diskusion, wo dann Screenshots von ach so tollen Look&Feels aufgetaucht sind, die mich persönlich nicht überzeugt haben. Über Gecshwindigkeit brauchen wir gar nicht zu reden.

Das ist jetzt sehr verallgemeinert. C++-Guis sind übrigens auch hässlich :p

Zu den Toolkits unter Java:
AWT: Unter Linux (meist) mit Motif -> hässlich, ausserdem sehr eingeschränkt; Temo i.o
Swing: Zweifellos lahm und nicht wahnsinnig toll aussehend (meine Meinung)
SWT: Abhängig vom verwendeten Toolkit. Mit Gtk2 recht lahm. Tempo und Aussehen (sonst, abhängig vom verwendeten Basis-Toolkit zwischen mittelgut bis super)
Qt: Tempo akzeptabel (gibt aber auch schnelleres, mit KDE recht lahm); Aussehen für mich gut
Gtk2: Tempo akzeptabel; Aussehen i.o.

MfG Peschmä

peschmae
12-10-2003, 16:09
Original geschrieben von axeljaeger
Edit: Guck mal hier, das läuft sogar auf Irix mit nativem Look&Feel: http://www.trolltech.com/images/screenshots/designer/irix.gif

wenn wir schon bei irix sind: Hier gibts übrigens auch ne JVM von IBM für. Keine Ahnung wie komplett die ist und so, aber ist mir auch egal...

Die ganze "ist einfacher"-Diskussion find ich recht primitiv. Die Zeilenzahl sagt noch überhaupt nichts dazu aus. Ausserdem werden Whitespaces in Java und C++ und C (von dort kommt das her :D) ignoriert.

Das heisst, liebe Schüler, ihr könnt jetzt alle eure Progrämmchen neu schreiben. Auf einer Zeile. Dann habt ihr den Wettbewerb schon fast gewonnen. :eek:

MfG Peschmä

peschmae
12-10-2003, 16:13
Original geschrieben von tuxipuxi
Qt-Programme schlagen jede Java GUI app in geschwindigkeitsmessungen, dafuer lege ich wirklich meine hand ins feuer( was nicht zuletzt daran liegt dass es C++ ist ).
Die Qt-Api ist durch und durch konsequent objektorientiert, und zwar zu 100%.


Jede Java GUI app. Naja, da lehnst du dich aber gewaltig aus dem Fenster. Du könntest auch Fltk-Bindings schreiben, für Java. Dann wird das ganze mit nem gut optimierenden nativen Compiler kompiliert. Da sieht Qt dann ganz schön alt aus. :D

Der Qt-Api <-> Java-Api vergleich ist übrigens auch recht hohl.

MfG Peschmä

arthur
12-10-2003, 16:19
ein kleiner zwischenbeitrag von mir zur python und bytecode:
es wird immer bytecode erzeugt und ausgeführt,
man kann aber auch den bytecode speichern lassen "compilieren" und
somit beim startet etwas zeit sparen, aber auf die laufzeitgeschwindigkeit
des programs hat das ganze kein einfluss.

und was die probleme mit der einrückung angeht: emacs + python-mode ;)

gruss
Arthur

peschmae
12-10-2003, 16:21
Hei, ich hab noch n offtopic-zitat gefunden:


Original geschrieben von jou
...die Frage: was soll ich lernen ?


Nicht "was soll ich nicht lernen". L E S E N meine Herren.

MfG Peschmä

fs111
12-10-2003, 16:24
Original geschrieben von anda_skoa
Wir sollten unseren IRC channel benutzen :)



Ok, jetzt komm ich nicht mehr mit.
Während es dann in Java noch geht, aber schlecht aussieht, hat man in Python irgendwas anderes erzeugt.
Versteh nicht, wo das der Vorteil ist?

Wenn ich ein zufälliges Programm will, versuch ich es mit dd aus /dev/urandom :)

Ciao,
_

ICh wusste gar nicht, dass mrunix auch einen IRC Channel hat, ich dacht immer nur linuxforen.de hat einen.

Der Punkt mit den Einrückungen ist der, dass mich Python dazu zwingt lesbaren Code zu schreiben, das sehe ich als Vorteil.

fs111

Badsteve
12-10-2003, 16:26
Original geschrieben von peschmae
Hei, ich hab noch n offtopic-zitat gefunden:



Nicht "was soll ich nicht lernen". L E S E N meine Herren.

MfG Peschmä

wo wir dann vielleicht mal wieder beim Thema sind. :p

ruby finde ich auch interessant, aber IMHO ist das auch nicht so ganz einfach. Ich bin gerade dabei mir das anzugucken, weil ich bis jetzt noch nicht wirklich Gutes über OO in Perl gehört habe.


Steve

Berufspenner
12-10-2003, 16:28
Der Punkt mit den Einrückungen ist der, dass mich Python dazu zwingt lesbaren Code zu schreiben, das sehe ich als Vorteil. Das soll also heißen, dass wenn ich falsch einrücke, das Programm garnicht richtig läuft? Das kann doch aber vor allem für Anfänger eine riesen Fehlerquelle sein. Mir wäre es da ehrlichgesagt mit geschweiften Klammern lieber. Es lebe Whitespace :D

Cu
André

axeljaeger
12-10-2003, 16:28
Natürlich ist die Diskusion mit einfacher unsinn. Aber Bischi hat es als Argument eingebracht und wer ein Argument einbringt, muss es begründen können und damit rechnen, das er den Kürzeren zieht. Wäre Bischi entsprechend informiert, hätte er sich gar nicht darauf eingelassen. Zu den Zeilenanzahlen: Klar kann man alles in eine Zeile schreiben, aber ich finde ein return nach jedem Semikolon angemessen. Es kommt ja nicht auf möglichst wenig Zeilen, sondern möglichst wenig Befehle an.

fs111
12-10-2003, 16:38
Original geschrieben von Berufspenner
Das soll also heißen, dass wenn ich falsch einrücke, das Programm garnicht richtig läuft? Das kann doch aber vor allem für Anfänger eine riesen Fehlerquelle sein. Mir wäre es da ehrlichgesagt mit geschweiften Klammern lieber. Es lebe Whitespace :D

Cu
André

Du bewertest etwas, was Du nicht kennst, das halte ich für gefährtlich. Guck es Dir an, und urteile dann.

fs111

arthur
12-10-2003, 16:40
Original geschrieben von Berufspenner
Das soll also heißen, dass wenn ich falsch einrücke, das Programm garnicht richtig läuft? Das kann doch aber vor allem für Anfänger eine riesen Fehlerquelle sein. Mir wäre es da ehrlichgesagt mit geschweiften Klammern lieber. Es lebe Whitespace :D


also so schlimm wie es klingt ist es überhaupt nicht,
ich hatte schon manche fehler in meinen python programmen :rolleyes:
aber keine die durch fehlerhaftes einrücken kamen.

gruss
Arthur

cybercrow
12-10-2003, 16:46
OK, das kommt jetzt vielleicht etwas spät :D
Aber weil hier bischi sein tolles 18 Zeilen (!) java-Programm präsentiert hat mit einem Fenster und einem label.

Ich habe mir mal vor 1-2Wochen perl und gtk+ angesehen. Damit kann man auch mit wenigen Zeilen schon viel erreichen.
Hier mal das 18Zeilen java Programm in 6Zeilen perl übersetzt:


use Gtk;
init Gtk;

my $window = new Gtk::Window( "toplevel" );
add $window (my $label = new Gtk::Label "Hello, World!");
$window->show_all();
main Gtk;


einfacher und kürzer kann es doch kaum noch gehen ;)

Berufspenner
12-10-2003, 16:48
Original geschrieben von fs111
Du bewertest etwas, was Du nicht kennst, das halte ich für gefährtlich. Guck es Dir an, und urteile dann.

fs111 Ich habe nichts bewertet. Ich habe nur, auf Grund der Aussagen in diesem Thread, gemutmaßt.

Bekomme ich nun noch eine Antwort bezüglich SQL, oder nicht?

Cu
André

axeljaeger
12-10-2003, 16:50
Das ist überzeugend. Jetzt versuch dich mal an dem zweiten Beispiel mit dem Button. Wir können aber schonmal festhalten, das die Javaversion die längste ist.

fs111
12-10-2003, 16:56
import gtk
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.add(gtk.Label('Hello World'))
window.show_all()
gtk.main()

Mal so als schneller Hack in Python.

fs111

fs111
12-10-2003, 16:58
Original geschrieben von Berufspenner
Ich habe nichts bewertet. Ich habe nur, auf Grund der Aussagen in diesem Thread, gemutmaßt.

Bekomme ich nun noch eine Antwort bezüglich SQL, oder nicht?

Cu
André

SQL ist kein bisschen OO, wie sollte es das auch sein? Es ist eine Datenbankabfrage- und Administrationssprache, und nichts womit man einzig und allein programmiert.

fs111

P.S.: bin jetz mal im IRC

axeljaeger
12-10-2003, 17:03
Original geschrieben von fs111
import gtk
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.add(gtk.Label('Hello World'))
window.show_all()
gtk.main()

Mal so als schneller Hack in Python.

fs111

Ich hab doch gesagt, Python ist toll.

cybercrow
12-10-2003, 17:10
Mit dem button sollte man doch nur das Fenster schliessen können.
Dazu braucht man mit perl keine Zeile mehr als für das label Programm, also immer noch 6 Zeilen ;)



use Gtk;
init Gtk;

my $window = new Gtk::Window( "toplevel" );
add $window (new Gtk::Widget "Gtk::Button", -label => "close", -signal::clicked => sub {Gtk->exit( 0 )} );
$window->show_all();
main Gtk;



Wo bleibt eigentlich bischi mit seinen Beispielen? :D

fs111
12-10-2003, 17:16
Wenn man es ganz extrem haen will, dann kann man auch Jython benutzen, das ist Python nur in Java, und man kann genauso einfach proggen und hat Zugriff auf alle Java-Klassen.

fs111

axeljaeger
12-10-2003, 17:39
Ja, aber Python in Java wird ja noch langsamer. Aber ich wundere mich wirklich was mit Bischi ist. Man muss sich ja bald Sorgen machen, das ihm vielleicht was passiert ist. Das mit dem Button in Perl(ist das doch?) ist natürlich sehr elegant, vergleichbar mit QMenuData::insertItem, wo man die Beschriftung des Menüeintrages und den entsprechenden Slot gleich in einer Funktion in ein Menü einfügen kann. Sowas hab ich noch nicht mit Java gesehen.

bischi
12-10-2003, 17:57
Schön, dass ihr euch um mich Sorgen macht! (Hab mir nur schnell BadBoys angeschaut, war massiv besser als dieser Thread!)

Mein Button war etwas lang, geb ich zu, dafür hab ich damit auch gleich noch jede Menge Sachen eingestellt!

Bessere Idee: Wieviele Zeilen braucht ihr, um ein Fullscreen-Window (echter Fullscreen! nicht nur grosses Fenster!) Dieses soll mit den aktuellen Einstellungen arbeiten und einen Knopf auf einen Drittel der Bildschirmgrösse zentriert anzeigen:

In Java: 53 Zeilen, etwa 10 davon Kommentare

PS: Bei Knopfdruck schliesst das Programm!

MfG Bischi

bischi
12-10-2003, 18:04
Noch was: Ich behaupte immer noch, dass Java die beste API-Doku besitzt: Wer kann das wiederlegen?

MfG Bischi

PS: Ich sag nicht, dass Java besser ist als alles andere, ich sag nur, dass ich aus Erfahrung weiss (hab selbst mal n halbes Jahr mit C++ zu programmieren versucht, hat jedoch jedes mal ein grauenhaftes Durcheinander gegeben), dass ich sowohl C als auch C++ nicht ausstehen kann. Meiner Ansicht nach hat Java 2 grosse Nachteile: Geschwindigkeit und keine exe-Dateien


PS2: Man könnte wirklich mal verschiedene Probleme in verschiedenen Sprachen lösen und dann die Länge vergleichen!

Solange es nicht zu lange Beispiele sind, helf ich mit und schreib die für Java (Schule fängt jetzt dann wieder an, jede Menge Prüfungen!).

Man kann dann ja noch Screenshots machen und nichtbeteiligte Fragen, welches die schönsten Fenster gibt!

Wer macht mit?

tuxipuxi
12-10-2003, 18:39
hm...




#include <qapplication.h>
#include <qwidget.h>
#include <qpushbutton.h>


int main( int argc, char* argv[] )
{

QApplication a( argc, argv );

QWidget mainWidget( 0, "widget" );
mainWidget.showFullScreen();

QPushButton button( "Exit", &mainWidget );

button.resize( mainWidget.width() /3 , mainWidget.height() / 3 );
button.move( (mainWidget.width()-button.width())/ 2, (mainWidget.height()-button.height()) / 2 );

QObject::connect( &button, SIGNAL(clicked()), &a, SLOT( quit()) );

a.setMainWidget( &mainWidget );

mainWidget.show();
button.show();

return a.exec();

}


geht auch noch ein wenig kuerzer aber ich glaube 17 zeilen im vergleich zu 53 ist schon ganz gut.



Noch was: Ich behaupte immer noch, dass Java die beste API-Doku besitzt: Wer kann das wiederlegen?

ohne kriterien keiner.

ich habe glaube ich noch ein kurzes ding mit python:


from Tkinter import *
widget = Label( None, text='python' )
widget.pack()



p.s: ich habe gestern bad boys 1 gesehen.. besser gesagt angefangen, den scheiss hab ich nicht ausgehalten.

p.s2: wir koennen gerne massig vergleiche anstellen, du wirst immer verlieren... du kannst mit java nichts kuerzer als ich mit C++/Qt ( und wir reden von vergleichbaren sachen.. kein hello world label ).

axeljaeger
12-10-2003, 18:43
Wo ist denn der Buttonquelltext? In Java 53 Zeilen? Da hat es einer mit Perl in 6!! geschafft. Erst wenn du die eine Aufgabe gelöst hast, lasse ich mich auf eine andere ein. Du redest von einem echten Fullscreenexclusivemode? Poste mal deinen Javaquelltext, ich wette mit dir, dass das unter Linux nicht funktionieren wird, dank der armseligen Implementierung. Ich kann dir einen echten Fullscreenmodus machen, mit halbtransparenten Widgets, wenn's sein muss, aber das bekommst du mit Java nicht mit diskutabler Geschwindigkeit. Aber der Button mit C++ ist auch nicht so ein großes Ding, da muss man halt mal mit dem Windowmanager reden. Aber ich mach keinen Finger krum, bevor ich das nicht mit Java unter Linux funktionierend gesehen habe. Wenn du dich nur ein halbes Jahr mit C++ beschäftigt hast, behaupte ich, du du hättest mal locker 1-2 Jahre investieren sollen. Ich hab mal 1 Jahr Java gemacht, das war ein heilsamer Schock.

Du behauptest, Java hat die beste Api-Doc? Warum? Was ist daran besser, als hierdran: http://doc.trolltech.com/3.2/classes.html
Dazu gibt es noch das passende Programm, der Qt Assistant, da hatman dann Stichwortsuche und einen schönen Index, da braucht man die Startseite gar nicht mehr: http://doc.trolltech.com/3.2/assistant-4.html

peschmae
12-10-2003, 18:45
Original geschrieben von axeljaeger
Es kommt ja nicht auf möglichst wenig Zeilen, sondern möglichst wenig Befehle an.

Son quatsch. Du willst doch nicht behaupten, dass die Produktivität (und um die geht es ja letztendlich) linear von der Zeilenzahl abhängig ist?

MfG Peschmä

axeljaeger
12-10-2003, 18:50
Doch, das möchte ich behaupten. Weniger Code = Weniger Möglichkeiten, Fehler einzubauen, kleinerer Raum, in dem man suchen muss.

peschmae
13-10-2003, 12:39
wenn du meinst wirds wohl so sein.

Ich behaupte (ausser du nimmst gleich Assembler), dass die Codezeilenzahl vor allem vom Programmierstil abhängt.

z.B. bischis programm


import java.awt.*;

public class Fenster
extends Frame
{
public Fenster()
{
super("Titel");
this.setSize(600,300);
Label l = new Label("Hallo");
this.add(l);
this.setVisible(true);
}
public static void main(String args[])
{
Fenster f = new Fenster();
}
}


würde ich etwa so schreiben (und zwar nicht um möglichst wenig Zeilen hinzukriegen)



import java.awt.*;

public class Fenster extends Frame {
public Fenster() {
super("Titel");
setSize(600,300);
add(new Label("Hallo"));
setVisible(true);
}

public static void main(String args[]) {
new Fenster();
}
}


Sind 14 gegen 18 Zeilen.

Und dabei habe ich zwischen dem Konstruktor und der Methode noch ne Leerzeile eingefügt (weil ich das sonst unübersichtlich finde)


Anderes Beispiel:


PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new GZIPOutputStream(new FileOutputStream("hallo.zip"))));


könnte man problemlos auch auf 5 Zeilen verteilen. Wenn man würde. Das hängt davon ab, wie du das lieber machst...

MfG Peschmä

axeljaeger
13-10-2003, 14:45
Da hast du selbstverständlich Rect, aber sowas wie dein JavaBeispiel gibt es glaub ich mit Qt und C++ nicht, weil das System glaub ich inteligent genug ist, das man nur


PrintWriterpw = new PrintWriter("hallo.zip");

schreiben muss, solange das eindeutig ist, es also nur eine mögliche Lösung gibt. Generell finde ich aber, das man nach spätestens 80 Zeichen eine neue Zeile anfangen sollte.

peschmae
13-10-2003, 15:11
äh, ganz so einfach ist das nicht

bei dem Beispiel von mir (vielleicht habe ich mich auch vertippt) werden zuerst die Chars von Unicode (UTF16) zu normalen bytes gewandelt, dann wird das ganze mit zip komprimiert (GZip) gibts auch und schliesslich in eine Datei geschrieben

der PrintWriter (zuäusserst) hat zudem noch nen buffer eingebaut, was das schreiben recht heftig beschleunigt (liegt dann in der Grössenordnung von NIO)

MfG Peschmä

axeljaeger
13-10-2003, 16:00
Ok, du kannst das so machen, für mich sind das dann aber etliche Befehle in eine Zeile geschrieben. Ich würde dann eher vor jedes new ein return machen und so einrücken, das das die ganzen unter-news noch weiter als das erste new eingerückt sind.

PS: Wo bleibt Bischi mit seinen Quelltexten? Am Ende muss ich doch noch mal Java anfassen und das selber machen und dann stellt sich die Frage, wer es besser kann.

Berufspenner
13-10-2003, 16:43
Hi@all

Wenn ihr hier schon einen "Sch****längen Vergleich" macht könnte ihr gleich Produktiv werden und ein paar Tutorials schreiben. Dann hätten alle was davon. Wie wäre es z.B., wenn das QT Tutorial fortgeführt wird, oder jemand mal ein GUI@Java HowTo schreiben würde? Ein "Die ersten Schritte in Python" oder ähnlich wäre doch auch nicht uninteressant.

Just my 2 cents.

Cu
André

axeljaeger
13-10-2003, 18:08
ich war da sogar schonmal produktiv, aber dann ist mir wg. div. anderer Geschichte der Appetit nach KDE-Programmierung vergangen, so dass ich jetzt nur noch pure Qt mache, wo ich die Tutorials für sehr gut halte.

See: http://axj.tuxipuxi.de/tutorials

Aber wo wir mal bei den Längen sind: Ich verwenden sehr gerne den ?-Operator. Das würde ich gerne mal zu Diskusion stellen. Ich sehe nämlich nicht ein, 4 Zeilen zu schreiben, nur um in eine Variable einen von zwei möglichen Weten reinzuschreiben, ich hab aber gehört, das man das nicht so machen sollte, weil der ?-Operator nicht zur Übersichtlichkeit beiträgt. Eure Meinung?

tuxipuxi
13-10-2003, 18:25
ist am ende die frage, was man will: uebersichtlichen code oder kurz und ein wenig schneller?

bei so kleinen sachen wie einer zuweisung ist der unterschied garantiert nicht messbar, also wuerde ich die lesbarkeit vorziehen und auf ?-operator verzichten.


gruss,

tuxipuxi.

bischi
13-10-2003, 18:48
Java-Tutorial?

Hab gerade ne Maturarbeit (bei euch in Deutschland heisst das Ding glaub ich Abitur, soll aber massiv leichter sein :D ) geschrieben, die ich aber zuerst noch präsentieren muss. In dieser geht es um Java-Swing und "Multimedia" (Vor allem Bilder und Anims). Sobald diese präsentiert und bewertet ist (ca. 4 Wochen), werde ich diese irgendwo im Internet veröffentlichen. Dann habt ihr euer Swing-Tutorial.

Nochmal zur Geschwindigkeit: Ich hatte einzig mit der Animation ganz leichte Performance-Probleme, sonst lief alles problemlos (AMD 1,2GHz, 265MB RAM, Kyro2 Grafikkarte).

Bis dann müsst ihr euch also gedulden...

Hab momentan auch wieder Schule, falls jemand jedoch ein konkretes Beispiel vorschlägt, das nicht allzu lange geht, werde ich es auf jeden Fall hier posten!

MfG Bischi

bischi
13-10-2003, 19:00
Und jetzt noch zur Effektivität beim Programmieren. Meiner Ansicht nach gelten folgende Kriterien:

1) Natürlich die Anzahl Zeichen
2) Wie gut sind Nachschlagewerke/ Dokus
3) Compiler: Muss ich für jeden Test ne halbe Stunde warten?
4) Wie übersichtlich ist der Code? (Ich errinnere mich an C++ (falls ich mich nicht ganz fest irre) muss man da zuerst eine Funktion irgenwo im Header? definieren, bevor man sie schreiben kann)
5) Wie gut sind allfällige Editoren ?(Syntaxhighlighting,...)
6) und last but not least: Ist die Sprache bedienerfreundlich und kümmert sich um viele Sachen selbst (die aber manuell noch eingestellt werden können) oder muss man sich um jeden Mist selbst kümmern und so komische Sachen wie

Inner::Inner(int n, int o){}
m_pObj->Serialize(ar);
return CPropertyPage::OnSetActive();

(PS: Die oben genannten Beispiele stammen alle aus meinem C++-Buch; Da ist mir Java doch schon massiv sympathischer, da kommen wenigstens keine Sachen wie -> oder :: ; Tut mir wirklich leid, hab aber keinen schönen Pointer gefunden! Vielleicht kann mir jemand mal noch genau erklären, wie man eine Pointer macht und für was dieser gut ist, dann schau ich mir C++ vielleicht wieder mal an...)

MfG Bischi

tuxipuxi
13-10-2003, 20:51
wieso sollte dir das einer erklaeren? bleib bei Java, lass die scheuklappen auf, und sag nie wieder etwas ueber C++ .. dann sind wir alle gluecklich.

Du sagst "das war doch irgendwie so", kennst es nicht und bewerten tust du es trotzdem.
zur information: :: ist der scope-resolution operator, zu deutsch bereichaufloesungsoperator ... kommt zum einsatz wenn du statische funktionen einer klasse aufrufst ohne sie zu instanziieren oder dich auf andere namespaces beziehst usw., fuer OOP-design sehr sinnvoll.

wie wir dir ja in 2 beispielen bewiesen haben war der code leicht lesbar und nur 1/3 so lang wie dein java programm.

was an dem c++ code komisch sein soll weiss ich nicht.

also versuch in zukunft nichts ueber c++ zu sagen und dich laecherlich zu machen und freu dich mit java.


gruss,

tuxipuxi.

p.s: sorry, aber wer nach ueber 80 posts und 1000 argumenten nicht einsieht was fuer einen unsinn er labert ist wirklich verloren.

bischi
13-10-2003, 21:12
Keine Angst, ich bleib bei Java, weil das Sprachdesign einfach massiv besser ist (was dir ja auch klar sein sollte! Wir diskutieren hier übrigens - musste es einfach sagen, da du mir vorwirft, einen Schrott zu schreiben - über die Sprachen, da ist es absolut egal, wie schnell ein Compiler ist. Und nochmals zu C++: :: und -> sind beim besten Willen nicht aussagekräftig, kann ich ja ne Sprache mit :-0 8=) ,... schreiben, die extrem kurz ist (:-0 macht ein Programm, mit einem Fenster, 2000 Buttons, 5000 Labeln, ... - das kriegst du mit C++ garantiert nicht schneller hin - aber ich muss zugeben, die Sprache ist schrott...))

Ich sag einfach, dass - wie soll ichs sagen - C++ nicht gerade Anwenderfreundlich ist. Dies sagt überhaupt nichts über Geschwindigkeit, Performance, Möglichkeiten oder ähnliches aus!

Dass C++ ein gebastel ist, zeigt schon rein die Tatsache, dass viele Befehle doppelt vorkommen (print(), cin << ). Die Möglichkeiten von C++ sind sicher sehr gross, doch die Sprache ist weder auf dem aktuellsten Stand (sprich: veraltet) noch durch und durch logisch.

Und noch zur Geschwindigkeit: Mit SWT kannst du unter Linux native Programme erstellen, die kaum noch langsamer sind, als solche, die mit C++ geschrieben sind!

Es geht mir keinesfalls darum, C++ schlecht zu machen (es ist immerhin DIE Programmiersprache für professionelle Programme wie bsp. Spiele), sondern es geht darum, dass ich jemandem, der mit C seine Mühe hatte, nicht unbedingt C++ empfehlen würde (das doch leichte Ähnlichkeiten hat...).
Somit ist Java eine sehr gute Alternative, mit der du mit erträglichem Zeit und Lernaufwand gute Programme schreiben kannst!

MfG Bischi

PS: Wenn BadBoys Schrott is, was schauste dann für Filme?

Berufspenner
13-10-2003, 21:24
Und nochmals zu C++: :: und -> sind beim besten Willen nicht aussagekräftig, kann ich ja ne Sprache mit :-0 8=) ,... schreiben, die extrem kurz ist (:-0 macht ein Programm, mit einem Fenster, 2000 Buttons, 5000 Labeln, ... - das kriegst du mit C++ garantiert nicht schneller hin - aber ich muss zugeben, die Sprache ist schrott...))

Ich sag einfach, dass - wie soll ichs sagen - C++ nicht gerade Anwenderfreundlich ist. Dies sagt überhaupt nichts über Geschwindigkeit, Performance, Möglichkeiten oder ähnliches aus!

Dass C++ ein gebastel ist, zeigt schon rein die Tatsache, dass viele Befehle doppelt vorkommen (print(), cin << ). Die Möglichkeiten von C++ sind sicher sehr gross, doch die Sprache ist weder auf dem aktuellsten Stand (sprich: veraltet) noch durch und durch logisch.

Und noch zur Geschwindigkeit: Mit SWT kannst du unter Linux native Programme erstellen, die kaum noch langsamer sind, als solche, die mit C++ geschrieben sind!
Es geht mir keinesfalls darum, C++ schlecht zu machen Aha, und was machst du da die ganze Zeit? Achja, was ich noch fragen wollte: weißt du, was Toleranz ist? Scheinbar nicht. Hier mal die Definition
Duldsamkeit, Verständnis, Akzeptanz gegenüber e-r anderen, abweichenden Meinung, Haltung od. LebensartCu
André

tuxipuxi
13-10-2003, 21:24
na gut bischi,
ich koennte mir die muehe machen und jedes deiner fundamentlosen argumente entkraeften, aber dass ist mir bei dir zu viel arbeit. dein post erinnert mich wirklich sehr an die trolle von heise.de, nur dass die den bloedsinn nicht ernst meinen. du weisst wirklich _garnichts_ von C++ und bewertest es hier und redest ueber das schlechte sprachdesign.

wusstest du dass es print() garnicht gibt?
wusstest du dass cin<< keine funktion ist sondern ein stream und ein streamoperator?
wusstest du dass eine sprache nicht ihre API ist? das glaubst du in deiner mini-microsoft-und-java welt weil bei java "ja alles dabei ist", aber eine sprache ist nicht nur durch eine API spezifiziert.



Dass C++ ein gebastel ist, zeigt schon rein die Tatsache, dass viele Befehle doppelt vorkommen (print(), cin << ).

mit verlaub bischi, aber sowas kann man nur sagen wenn a) auf drogen ist b) trollen moechte c) 0.0 ahnung hat.





Und noch zur Geschwindigkeit: Mit SWT kannst du unter Linux native Programme erstellen, die kaum noch langsamer sind, als solche, die mit C++ geschrieben sind!


wie kannst DU microsoftjuenger denn bewerten wie schnell linux applikationen sind? du wuerdest wahrscheinlich nicht mal eine installiert bekommen.


nichts fur ungut,

tuxipuxi.

p.s: filme mit handlung.

anda_skoa
13-10-2003, 22:49
Original geschrieben von axeljaeger
Aber wo wir mal bei den Längen sind: Ich verwenden sehr gerne den ?-Operator. Das würde ich gerne mal zu Diskusion stellen. Ich sehe nämlich nicht ein, 4 Zeilen zu schreiben, nur um in eine Variable einen von zwei möglichen Weten reinzuschreiben, ich hab aber gehört, das man das nicht so machen sollte, weil der ?-Operator nicht zur Übersichtlichkeit beiträgt. Eure Meinung?

Bedingte Zuweisung.
Benutze ich oft in Initialisierungs Statements.

Ich finde nicht, dass es unübersichtlich ist, vorallem wenn es in eine Zeile passt.

Ciao,
_

anda_skoa
13-10-2003, 23:08
Original geschrieben von bischi
Keine Angst, ich bleib bei Java, weil das Sprachdesign einfach massiv besser ist

Der Ansatz war ziemlich gut, aber man hat dann unnötige Abstriche gemacht.
Bin mir ziemlich sicher, das J. Goshling darüber nicht sehr erfreut war.



da ist es absolut egal, wie schnell ein Compiler ist.

Nicht unbedingt.
Man versucht unter gelich guten Compilern immer einen schnellen zu finden.
Wenn die Sprache ansich kompliziertere Syntax hat, muss man Tricks verwenden.
(precompiled Headers, ccache)
Schnell kompilierbare Sprachen haben darum besonders im Prototyping einen Vorteil (zB Pascal ähnliche Sprachen wie Delphi)



Und nochmals zu C++: :: und -> sind beim besten Willen nicht aussagekräftig

. ist genau so wenig aussagekräftig :)
Ich finde es ganz gut, wenn man unterscheiden kann, ob ein Name oder ein bestimmtes Objekt als Basis dient.



Dass C++ ein gebastel ist, zeigt schon rein die Tatsache, dass viele Befehle doppelt vorkommen (print(), cin << ).

Keines von beiden ist ein Befehl der Sprache und nur "cin <<" ist C++ :)
printf (das du wahrscheinlich gemeint hast) ist eine Funktion für C Programmierer, um formatiere Ausgaben zu machen.
Niemand, der halbwegs bei Sinnen ist, würde eine typunsichere Funktion in C++ verwenden :D



Und noch zur Geschwindigkeit: Mit SWT kannst du unter Linux native Programme erstellen, die kaum noch langsamer sind, als solche, die mit C++ geschrieben sind!

Außer SWT benutzt GTK2 :D
(frag ceisserer)



sondern es geht darum, dass ich jemandem, der mit C seine Mühe hatte, nicht unbedingt C++ empfehlen würde (das doch leichte Ähnlichkeiten hat...).

Seh ich auch so.
Zwar ist C kein Indikator wie C++ ist, dafür sind sie viel zu verschieden, aber C++ ist doch eher "advanced", wenn man von einer Sprache wie Basic kommt, sollte man was Leichteres in Erwägung ziehen.



Somit ist Java eine sehr gute Alternative, mit der du mit erträglichem Zeit und Lernaufwand gute Programme schreiben kannst!

Definitiv!
Halte ich für eine gute Wahl, um objekt orientierte Programmierung zu lernen.
D.h. zumindest mir ist C++ wesentlich leichter gefallen, nachdem ich Java konnte.



PS: Wenn BadBoys Schrott is, was schauste dann für Filme?
Bad Boys rules!
waiting for BB2

Ciao,
_

peschmae
14-10-2003, 09:31
Original geschrieben von anda_skoa
Außer SWT benutzt GTK2 :D
(frag ceisserer)


du solltest doch schon lange wissen, dass bischi des öftern mit sachen Argumentiert, die er nicht kennt ;)

Ausserdem kannst du ja Motif benutzen (igitt). Ich nehm dann meistens fox...

@?-Operator:
Ich benutz ihn eigentlich nie. Kommt vielleicht daher, dass ich ihn nie benutze und deshalb immer überlegen muss, was ich jetzt wo hinschreiben muss und wo das ? hinkommt :cool:

MfG Peschmä

peschmae
14-10-2003, 12:52
Original geschrieben von anda_skoa

Definitiv!
Halte ich für eine gute Wahl, um objekt orientierte Programmierung zu lernen.
D.h. zumindest mir ist C++ wesentlich leichter gefallen, nachdem ich Java konnte.


deshalb fange ich glaube ich jetzt dann auch bald mal mit C++ an. Hat schliesslich auch seine vorteile. Und noch mehr Vorteile, wenn man beides kann.

MfG Peschmä

bischi
14-10-2003, 12:55
Gut ich hab printf() gemeint. Was ich damit aussagen wollte: Es gibt für ein und das selbe in einer Sprache 2 verschiedene Varianten, dies zu machen. Das macht mir irgendwie nicht so einen durchdachten Eindruck.


Aha, und was machst du da die ganze Zeit? Achja, was ich noch fragen wollte: weißt du, was Toleranz ist? Scheinbar nicht. Hier mal die Definition
Hab so was mal gehört... Nein, Spass beiseite: Ich zähl einfach auf, was ich im Vergleich zu Java schlecht finde. Ich sag damit aber noch nicht, dass du nicht C++ verwenden kannst/sollst. In einigen Fällen ist das ja unumgehbar!

Zu Tuxi: Ich glaub, so knapp würd ich es noch schaffen, mir ein Linux zu installieren. Ausserdem gibt es ja Kollegen, die ein Linux installiert haben und die mit SWT programmieren. Daher weiss ich doch ein Bisserl was...

@anda_skoa: Wo wohnst du? Ich hab BB2 bereits am Donnerstag gesehen, war wirklich gut (auch wenn Tuxi anderer Meinung wäre...)

MfG Bischi

@Tuxi: Du hast mir immer noch keinen Film genannt!

Berufspenner
14-10-2003, 12:56
Und noch mehr Vorteile, wenn man beides kann. Je mehr man kann desto besser. So hebt man sich vor allem im Berufsleben von anderen ab, was dann auch die Aufstiegschancen vergrößert. Aus diesem Grund lernen ich auch Java, obwohl ich es nicht mag.

Cu
André

peschmae
14-10-2003, 12:57
Original geschrieben von bischi
@anda_skoa: Wo wohnst du? Ich hab BB2 bereits am Donnerstag gesehen, war wirklich gut (auch wenn Tuxi anderer Meinung wäre...)


der ist glaubich österreicher - wird wohl auch irgendwo dort domiziliert sein :D

MfG Peschmä

peschmae
14-10-2003, 12:59
Original geschrieben von Berufspenner
Aus diesem Grund lernen ich auch Java, obwohl ich es nicht mag.


Das ist imho ne schlechte idee. Ich habe bisher noch keine Sprache gelernt, die ich wirklich nicht mochte. (Kandidaten sind: Assembler (ist das ne Sprache?) und C# ;))

MfG Peschmä

Badsteve
14-10-2003, 13:00
Es gibt für ein und das selbe in einer Sprache 2 verschiedene Varianten, dies zu machen. Das macht mir irgendwie nicht so einen durchdachten Eindruck.

hi,

es wäre doch schlimm, wenn es immer nur einen Weg ans Ziel geben würde? Es gibt IMHO in jeder Programmiersprache verschiedene Wege ans Ziel zu kommen.


Steve

Berufspenner
14-10-2003, 13:04
Gut ich hab printf() gemeint. Was ich damit aussagen wollte: Es gibt für ein und das selbe in einer Sprache 2 verschiedene Varianten, dies zu machen. Das macht mir irgendwie nicht so einen durchdachten Eindruck. printf() == Ausgabefunktion in C
cin == Standardeingabe in C++
Ich zähl einfach auf, was ich im Vergleich zu Java schlecht finde. Ich sag damit aber noch nicht, dass du nicht C++ verwenden kannst/sollst. In einigen Fällen ist das ja unumgehbar! Du gehst dabei aber so ignorant vor, dass es einem keinen Spaß macht sich deinen Postings durchzulesen. Du kritisierst Sachen, vondenen du absolut keine Ahnung hast.

Cu
André

peschmae
14-10-2003, 14:11
Original geschrieben von Berufspenner
Du gehst dabei aber so ignorant vor, dass es einem keinen Spaß macht sich deinen Postings durchzulesen. Du kritisierst Sachen, vondenen du absolut keine Ahnung hast.


doch manchmal machts spass. Ansonsten sind wir uns mal einig :)

MfG Peschmä

bischi
14-10-2003, 14:11
Meinte natürlich cout und printf(). So, jetzt ist dass doch noch klargestellt!

MfG Bischi

Berufspenner
14-10-2003, 14:14
Original geschrieben von bischi
Meinte natürlich cout und printf(). So, jetzt ist dass doch noch klargestellt!

MfG Bischi Hast wohl schnell noch auf irgendeiner Seite nachgeguckt, um nicht total dämlich dazustehen ;) :rolleyes:

Cu
André

peschmae
14-10-2003, 14:14
nee, ich glaub soviel weiss er schon

MfG Peschmä

bischi
14-10-2003, 14:16
Ob dus jetzt glaubst oder nicht: ICH HAB SELBST MAL MIT C++ PROGRAMMIERT (sogar selbst nen kommandozeilenrechner und ein "kontoverwaltungssystem". Von daher sind mir die Kommandozeilenfunktionen doch noch einigermassen bekannt.)! UND ICH HAB AUF KEINER SEITE ODER IN KEINEM BUCH NACHGESCHAUT!

Halten mich hier eigentlich alle für blöd?!

MfG Bischi

peschmae
14-10-2003, 14:18
Original geschrieben von bischi
Ob dus jetzt glaubst oder nicht: ICH HAB SELBST MAL MIT C++ PROGRAMMIERT (sogar selbst nen kommandozeilenrechner und ein "kontoverwaltungssystem". Von daher sind mir die Kommandozeilenfunktionen doch noch einigermassen bekannt.)! UND ICH HAB AUF KEINER SEITE ODER IN KEINEM BUCH NACHGESCHAUT!


jaja, derHeld.



Halten mich hier eigentlich alle für blöd?!


du bist windowsuser und sonst...
is ja wohl klar

MfG Peschmä

Berufspenner
14-10-2003, 14:19
Halten mich hier eigentlich alle für blöd?! No comment :D ;)
Naja, ich will ja nicht so gemein sein, sonst wird das hier noch zu persöhnlich :)

Cu
André

axeljaeger
14-10-2003, 15:30
Keine Angst, ich bleib bei Java, weil das Sprachdesign einfach massiv besser ist

Was hat man den darunter zu verstehen? Was meinst du damit? Ist das so ein Modewort wie Skalierbarkeit? Belege doch eine Thesen mal anhand von Beispielen.
Du behauptest, C++ ist nicht anwenderfreundlich. Das ist deine persönliche Meinung. Es geht auch nicht darum, eine anwenderfreundliche, sondern eine entwicklerfreundliche Sprache zu haben. Wenn du Anwenderfreundlich programmieren willst, nimm nicht Java, da konfrontierst du deine Benutzer gleich mal mit unbekanntem (Look and Feel und ähnliches).

Das du in C++ die Möglichkeit hast, sowohl printf, als auch cout zur Ausgabe von Text auf der Standardausgabe zu benutzen, ist ja kein Argument für Java: Wie viele verschiedene Möglichkeiten gibt es in Java, um Events abzufangen? processEvents, Listener und bool mouseDown und Scherze mehr. Das beste ist noch, das man zwar in jedem Buch liest, das man auch ja das neue Eventmodell nehmen soll, aber in der Praxis Rücksicht auf alte JMVs genommen werden muss. Das ist doch wirklich bescheiden. Du kannst, wenn du willst, sogar die printf-Funktion mit JNI aus deinem JavaProgramm ansprechen. Dann hast du da auch mehr Möglichkeiten.

Ob SWT dir native-Speed gestattet, vermagst du glaub ich nicht zu beurteilen. Du hast noch nicht die großen Unterschiede zwischen Java@Win und Java@Linux gesehen. Das ist erschreckend, wie stiefmütterlich Java von Sun behandelt wird. Außerdem kannst du nicht von der tollen API schwärmen und dann, wenn wir dir nachweisen, das da was nicht so toll ist, mit einer anderen API, die man noch zuinstallieren muss, kommen. Ich hab noch nicht mit SWT gearbeitet, aber gelesen, das man sich da selber um die GarbageCollection kümmern muss. Du kannst uns ja sicher aufklären, was es damit auf sich hat.

Ob wir dich für blöd halten musst du dir selber beantworten, ich enthalte mich da jeden Kommentars. Aber kennst du den Spruch: "Es ist, wie wenn man einem Ochs' vors Horn petzt?"

Wenn du grad Abitur über Java machst und dich da mit Multimedia beschäftigst, würde mich mal interessieren, ob du da eigene Videofilter, Soundeffekte und ähnliches selber programmierst, oder ob du nur die bestehenden Möglichkeiten der API nutzt, um bunte Bilder auf den Screen zu bringen, oder gar einen Knöpfen mit einem klickgeräusch belegst. Wenn du jetzt Abitur machst, bist du ja ein Jahr älter als ich. Mal sehen, wie weit ich bin, wenn ich so alt bin. Tuxi ist sogar noch ein Jahr jünger und hat es schon hinbekommen, C++ zu lernen. Ich werde Anfang des nächsten Jahres auch wieder Java machen (müssen), wenn ich Praktikum bei Aventis mache.

Wenn ich heute jmd. eine Programmiersprache beibringen müsste, würd ich weder Java, noch C++, noch Visual Basic nehmen. Ich sag euch auch, warum:

Wenn ich mit Visual Basic anfangen würde (was ich gemacht habe), lernt man nichts über OOP: Man kann sich ein Formular bauen und muss nichtmal eine Instanz anlegen, bevor man es benutzen kann. Mann kann einfach sagen: Form1.show(). Es gibt noch mehr Unlogisches in der Sprache, etwa das man bei Funktionen ohne Rückgabewerte keine Klammern um die Argumente machen darf, nur wenn man die Methode mit call aufruft.

C++ würde ich nicht nehmen, weil das ein bißchen zu abstrakt für Leute ist, die noch nicht vorher programmiert haben. Es ist zu hart für den Anfang, aber dafür ist es ja auch nicht gedacht.

So Bischi, jetzt kommen wir endlich zu deinem geliebten Java, was ich morgen wieder in den ersten zwei Stunden in der Schule unterrichtet bekomme. Die Sprache ist zum lernen Mist: Erkläre mal, was eine Klasse ist, ohne zu wissen, was eine Funktion oder eine Variable ist. Da man alles in Klassen schreiben muss, weist du gar nicht, wo du anfangen sollst mit erklären. Sinnvollerweise kann man am Anfang eh nur Applets machen, weil bis du einem erklärt hast, warum da jetzt ein static vor main kommt und warum da der sinnvolle Text new ... steht, bist du am Verzweifeln. Wenn man sich jetzt schon erbarmt, was mit Java zu machen, hält man sich viel zu lange bei den Applets mit Grafikprogrammierung auf. Weil wenn man anfangen würde, Eventlistener zu erklären, würde man ja nie fertig.

Ich würde wirklich Python nehmen, und zwar aus folgenden Gründen:
- Man kann direkt in einen Interpreter Befehle reinschreiben. Man sieht sofort, was passiert, wenn man einen Befehl eingibt. Dazu gibt es ein Tutorial, wo richtig schön angefangen wird mit zwei Zahlen zusammenrechnen usw.

- Blöcke mit Tab: Da gewöhnt man sich gleich einen gescheiten Programmierstil an. Ich bin nämlich bei uns immer der Dumme, der dann rumlaufen darf und diese tollen Codes auseinanderfriemeln darf.

- Wir müssen in der Schule Codewarrior nehmen. Glaubst du, einer merkt sich mal, das er kurze Dateinahmen nehmen soll, am Anfang großgeschrieben, in der HTML-Datei auch, genauso wie die Klassendefinition? Sonst gibt es in der Konsole immer so tolle ClassNotFoundExceptions. Die helfen einem beim Programmierenlernen...

- Bei Python kann ich einfach mal Code in eine Datei schreiben, vielleicht einen Teil in eine Funktion auslagern. Bei Java brächte ich gleich eine große Infrastruktur. Natürlich soll es am Ende darauf hinauslaufen, schöne Klassenhirachien aufzubauen, aber wo willst du anfangen zu erklären? Es gibt auch Leute, die nicht schon 4 Jahre vorher Java in Firmen während Praktika in den Sommerferien gelernt haben.

peschmae
14-10-2003, 19:08
Original geschrieben von axeljaeger
Ob SWT dir native-Speed gestattet, vermagst du glaub ich nicht zu beurteilen.

Tut es imho. Ich kanns beurteilen. Gtk2 ist mit SWT allerdings tatsächlich noch langsamer als sonst.


Du hast noch nicht die großen Unterschiede zwischen Java@Win und Java@Linux gesehen. Das ist erschreckend, wie stiefmütterlich Java von Sun behandelt wird.


Mit 1.4 hat sich da schon was getan. Aber Java@Win ist tatsächlich immer noch schneller. Ich muss mal die VM von IBM testen... :)



Ich hab noch nicht mit SWT gearbeitet, aber gelesen, das man sich da selber um die GarbageCollection kümmern muss. Du kannst uns ja sicher aufklären, was es damit auf sich hat.


jup, dann lass SWT in ruhe.
Objekte freigeben muss man in SWT selbst (d.h. wie sonst üblich das "Hauptfenster")
Und natürlic die GCs (zum selber drauf zeichnen) - das muss man übrigens unter AWT/Swing eigentlich auch.



Wenn du jetzt Abitur machst, bist du ja ein Jahr älter als ich. Mal sehen, wie weit ich bin, wenn ich so alt bin. Tuxi ist sogar noch ein Jahr jünger und hat es schon hinbekommen, C++ zu lernen. Ich werde Anfang des nächsten Jahres auch wieder Java machen (müssen), wenn ich Praktikum bei Aventis mache.


Huh, da bläst du dich aber jetzt grossartig auf.
Mach mir bitte bloss keinen Schatten, hier in der Schweiz.
(Puh, Deutschland is ja im Norden - glück gehabt :D)


Was hab ich noch vergessen:
Weisst du eigentlich wie alt der Marcelo Tosatti ist?
Da musst du noch a bisserl üben.




C++ würde ich nicht nehmen, weil das ein bißchen zu abstrakt für Leute ist, die noch nicht vorher programmiert haben. Es ist zu hart für den Anfang, aber dafür ist es ja auch nicht gedacht.


*zustimm*
(Habs mal mit VC++ versucht ;) - ich liiiiebe die MFC)



So Bischi, jetzt kommen wir endlich zu deinem geliebten Java, was ich morgen wieder in den ersten zwei Stunden in der Schule unterrichtet bekomme. Die Sprache ist zum lernen Mist: Erkläre mal, was eine Klasse ist, ohne zu wissen, was eine Funktion oder eine Variable ist. Da man alles in Klassen schreiben muss, weist du gar nicht, wo du anfangen sollst mit erklären. Sinnvollerweise kann man am Anfang eh nur Applets machen, weil bis du einem erklärt hast, warum da jetzt ein static vor main kommt und warum da der sinnvolle Text new ... steht, bist du am Verzweifeln. Wenn man sich jetzt schon erbarmt, was mit Java zu machen, hält man sich viel zu lange bei den Applets mit Grafikprogrammierung auf. Weil wenn man anfangen würde, Eventlistener zu erklären, würde man ja nie fertig.


naja, ich seh das nicht ganz so. Zugegebenermassen konnte ich schon Delphi (Object Oriented Pascal um korrekt zu sein ;)) und VBScript und n paar andere sachen. Aber ich finde Java zum Einsteigen geeignet.
Ich habe aber auch nicht mit Applets angefangen (find ich eh blöd, die Applets, hab bis jetzt erst eines geschrieben), sondern mit Kommandozeilenprogrammen...

Python kenne ich nicht.

Aber da jeder früher oder später mal C/C++ braucht finde ich Java durchaus naheliegend. Zumindest ist der/die Syntax ähnlich (eine imho nicht zu unterschätzende Hürde) - das verhilft des öftern zu einem "das kenn ich ja schon"-Gefühl und zweitens musst du dich mit OOP auseinander setzen.
Nicht zwingend gleich am Anfang - aber mit der Zeit. Und wenn du das erst mal begriffen hast, dann bist du schon recht weit. Das zu Begreifen ist mit Java definitiv recht einfach (finde ich).

MfG Peschmä

anda_skoa
14-10-2003, 19:51
Original geschrieben von bischi
Gut ich hab printf() gemeint. Was ich damit aussagen wollte: Es gibt für ein und das selbe in einer Sprache 2 verschiedene Varianten, dies zu machen. Das macht mir irgendwie nicht so einen durchdachten Eindruck.

Wie ich schon geschrieben habe, ist keines von beiden Teil der Sprache.
std::cout ist ein Outputstream Objekt der C++ Standardbibliothek, so wie System.out ein Outputstream der Java Standard Library ist.
printf() ist eine Funktion der C Standard Lib, hat also mit C++ nicht mehr zu tun als mit Java.

Abgesehen davon gibt es in Java auch genug Beispiele für alte und neue APIs um das selbe zu machen.
AWT und SWING, oder InputStream und Reader, oder Outputstream und Writer, oder java.nio.*

Und dass in der selben Standard Lib!



@anda_skoa: Wo wohnst du? Ich hab BB2 bereits am Donnerstag gesehen, war wirklich gut (auch wenn Tuxi anderer Meinung wäre...)

Ich denke, das steht in meinem Profil, sogar in dem Teil, der links neben den Postings angezeigt wird :)

Ciao,
_

peschmae
14-10-2003, 20:02
Original geschrieben von anda_skoa
Abgesehen davon gibt es in Java auch genug Beispiele für alte und neue APIs um das selbe zu machen.
AWT und SWING, oder InputStream und Reader, oder Outputstream und Writer, oder java.nio.*

Und dass in der selben Standard Lib!


Touchdown! Scooore! Das war mal wieder ne schöne Gerade ;)

Im Ernst: Ob bischi wohl weiss, was nio is?
(Habs übrigens auch noch nie benutzt, weiss aber wenigstens in etwa wie es geht und was es bringt (imho nicht seeehr viel ;)))



Ich denke, das steht in meinem Profil, sogar in dem Teil, der links neben den Postings angezeigt wird :)


Schon wieder Tooor. Du bist in Höchstform :eek:

MfG Peschmä

jou
19-10-2003, 22:52
oh,

ich hab auf linuxforen.de gehört das sich Leute auf mrunix.de die Birne einschlagen welche Sprache besser ist. Das mein Thread damit gemeint ist hab ich jetzt nicht gedacht :D
Naja egal ich werd mir dan mal eben jede anschauen da ihr euch nicht einigen könnt :D ;)

Trotzdem danke danke :)

Grüße
jou

peschmae
20-10-2003, 10:34
Bitte :D

MfG Peschmä