Doch, das möchte ich behaupten. Weniger Code = Weniger Möglichkeiten, Fehler einzubauen, kleinerer Raum, in dem man suchen muss.
Druckbare Version
Doch, das möchte ich behaupten. Weniger Code = Weniger Möglichkeiten, Fehler einzubauen, kleinerer Raum, in dem man suchen muss.
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
würde ich etwa so schreiben (und zwar nicht um möglichst wenig Zeilen hinzukriegen)Code: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();
}
}
Sind 14 gegen 18 Zeilen.Code: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();
}
}
Und dabei habe ich zwischen dem Konstruktor und der Methode noch ne Leerzeile eingefügt (weil ich das sonst unübersichtlich finde)
Anderes Beispiel:
könnte man problemlos auch auf 5 Zeilen verteilen. Wenn man würde. Das hängt davon ab, wie du das lieber machst...Code:PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new GZIPOutputStream(new FileOutputStream("hallo.zip"))));
MfG Peschmä
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
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.Code:PrintWriterpw = new PrintWriter("hallo.zip");
ä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ä
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.
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é
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?
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.
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
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
(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...)Code:Inner::Inner(int n, int o){}
m_pObj->Serialize(ar);
return CPropertyPage::OnSetActive();
MfG Bischi
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.
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?
Zitat:
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!
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 DefinitionZitat:
Es geht mir keinesfalls darum, C++ schlecht zu machen
CuZitat:
Duldsamkeit, Verständnis, Akzeptanz gegenüber e-r anderen, abweichenden Meinung, Haltung od. Lebensart
André
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.
mit verlaub bischi, aber sowas kann man nur sagen wenn a) auf drogen ist b) trollen moechte c) 0.0 ahnung hat.Zitat:
Dass C++ ein gebastel ist, zeigt schon rein die Tatsache, dass viele Befehle doppelt vorkommen (print(), cin << ).
wie kannst DU microsoftjuenger denn bewerten wie schnell linux applikationen sind? du wuerdest wahrscheinlich nicht mal eine installiert bekommen.Zitat:
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!
nichts fur ungut,
tuxipuxi.
p.s: filme mit handlung.
Bedingte Zuweisung.Zitat:
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?
Benutze ich oft in Initialisierungs Statements.
Ich finde nicht, dass es unübersichtlich ist, vorallem wenn es in eine Zeile passt.
Ciao,
_
Der Ansatz war ziemlich gut, aber man hat dann unnötige Abstriche gemacht.Zitat:
Original geschrieben von bischi
Keine Angst, ich bleib bei Java, weil das Sprachdesign einfach massiv besser ist
Bin mir ziemlich sicher, das J. Goshling darüber nicht sehr erfreut war.
Nicht unbedingt.Zitat:
da ist es absolut egal, wie schnell ein Compiler ist.
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)
. ist genau so wenig aussagekräftig :)Zitat:
Und nochmals zu C++: :: und -> sind beim besten Willen nicht aussagekräftig
Ich finde es ganz gut, wenn man unterscheiden kann, ob ein Name oder ein bestimmtes Objekt als Basis dient.
Keines von beiden ist ein Befehl der Sprache und nur "cin <<" ist C++ :)Zitat:
Dass C++ ein gebastel ist, zeigt schon rein die Tatsache, dass viele Befehle doppelt vorkommen (print(), cin << ).
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
Außer SWT benutzt GTK2 :DZitat:
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!
(frag ceisserer)
Seh ich auch so.Zitat:
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...).
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.
Definitiv!Zitat:
Somit ist Java eine sehr gute Alternative, mit der du mit erträglichem Zeit und Lernaufwand gute Programme schreiben kannst!
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.
Bad Boys rules!Zitat:
PS: Wenn BadBoys Schrott is, was schauste dann für Filme?
waiting for BB2
Ciao,
_
du solltest doch schon lange wissen, dass bischi des öftern mit sachen Argumentiert, die er nicht kennt ;)Zitat:
Original geschrieben von anda_skoa
Außer SWT benutzt GTK2 :D
(frag ceisserer)
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ä
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.Zitat:
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.
MfG Peschmä
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.
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!Zitat:
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
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!
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.Zitat:
Und noch mehr Vorteile, wenn man beides kann.
Cu
André
der ist glaubich österreicher - wird wohl auch irgendwo dort domiziliert sein :DZitat:
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...)
MfG Peschmä
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# ;))Zitat:
Original geschrieben von Berufspenner
Aus diesem Grund lernen ich auch Java, obwohl ich es nicht mag.
MfG Peschmä
hi,Zitat:
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.
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
printf() == Ausgabefunktion in CZitat:
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.
cin == Standardeingabe in C++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.Zitat:
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!
Cu
André
doch manchmal machts spass. Ansonsten sind wir uns mal einig :)Zitat:
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.
MfG Peschmä
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:Zitat:
Original geschrieben von bischi
Meinte natürlich cout und printf(). So, jetzt ist dass doch noch klargestellt!
MfG Bischi
Cu
André
nee, ich glaub soviel weiss er schon
MfG Peschmä
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
jaja, derHeld.Zitat:
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!
du bist windowsuser und sonst...Zitat:
Halten mich hier eigentlich alle für blöd?!
is ja wohl klar
MfG Peschmä
No comment :D ;)Zitat:
Halten mich hier eigentlich alle für blöd?!
Naja, ich will ja nicht so gemein sein, sonst wird das hier noch zu persöhnlich :)
Cu
André
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.Zitat:
Keine Angst, ich bleib bei Java, weil das Sprachdesign einfach massiv besser ist
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.
Tut es imho. Ich kanns beurteilen. Gtk2 ist mit SWT allerdings tatsächlich noch langsamer als sonst.Zitat:
Original geschrieben von axeljaeger
Ob SWT dir native-Speed gestattet, vermagst du glaub ich nicht zu beurteilen.
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... :)Zitat:
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.
jup, dann lass SWT in ruhe.Zitat:
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.
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.
Huh, da bläst du dich aber jetzt grossartig auf.Zitat:
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.
Mach mir bitte bloss keinen Schatten, hier in der Schweiz.
(Puh, Deutschland is ja im Norden - glück gehabt :D)
[edit]
Was hab ich noch vergessen:
Weisst du eigentlich wie alt der Marcelo Tosatti ist?
Da musst du noch a bisserl üben.
[/edit]
*zustimm*Zitat:
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.
(Habs mal mit VC++ versucht ;) - ich liiiiebe die MFC)
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.Zitat:
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 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ä
Wie ich schon geschrieben habe, ist keines von beiden Teil der Sprache.Zitat:
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.
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!
Ich denke, das steht in meinem Profil, sogar in dem Teil, der links neben den Postings angezeigt wird :)Zitat:
@anda_skoa: Wo wohnst du? Ich hab BB2 bereits am Donnerstag gesehen, war wirklich gut (auch wenn Tuxi anderer Meinung wäre...)
Ciao,
_
Touchdown! Scooore! Das war mal wieder ne schöne Gerade ;)Zitat:
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!
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 ;)))
Schon wieder Tooor. Du bist in Höchstform :eek:Zitat:
Ich denke, das steht in meinem Profil, sogar in dem Teil, der links neben den Postings angezeigt wird :)
MfG Peschmä
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
Bitte :D
MfG Peschmä