C++ (mfc) vs. Java(BlueJ)
-
Aloha Gregor,
ich muß auch Sovok und Rapha beipflichten.
Zeit ist Geld, und zudem leben wir im dritten Jahrtausend.Wer frickelt sich denn noch HTML-Seiten per Texteditor zusammen ?
Jemand der zuviel Zeit hat.Da Du nach und nach, umso größer Dein Projekt wird sowieso recht schnell an die "Einfügen"-Grenzen im Studio kommst, holst Du Dir die Infos, die Du benötigst sowieso aus dem Net oder per Fachliteratur, so daß Du successiv dazulernst. Nur das Du vorher nicht die Lust verlierst, weil Du einfach net vorankommst.
Aber ich fand den Vergleichsabschnitt spannend, den Du in Deinem ersten Posting hattest.
Grüße
BOA
-
*Gregor zur Seite spring*
Sicher kann man mit WYSIWYG Zeugs schnell Sachen machen, die man
sonst erst nach Jahren machen könnte. Aber das engt einen auch ein,
denn dann kann man immer nur auf den Augetrampelten Pfaden anderer laufen,
und nix selber erproben. Ich denke es ist wichtig verstehen zu können,
was man macht, und warum. Und eine Unabhängige Sicht, ohne Entwicklungsumgebungssspezifische
Konstrukte, wie es sie im VC und der MFC gibt, ist sicher von Vorteil.Devil
-
Stimmt
Mir ging es aber so, dass ich erst Resultate sehen wollte und dadurch erst Lust am Programmieren bekommen habe.
"Kompliziertere Elemente" (aus der Sicht eines Anfängers, wie z.B. Subclassing oder GDI) habe ich zuerst immer mit Copy und Paste in meinen Code eingefügt. Nach und nach versteht man dann aber auch, was man eingendlich geschrieben hat.
Dies halte ich für die effektivste Lernmethode (sofern man eine ungefähre Ahnung von Klassen und Vererbung hat).Grüße Rapha
-
Ich sehe es ebenfalls so das man ruhig die ersten schritte ohne "Click an Play" machen sollte. Ich mache extrem viel im Standard C++ und meide es Compilerspezifisch zu werden. Man lernt dabei einiges und geht Wege die man sonst nie gehen würde.
Ab einem gewissen Level wird man Automatisch anfangen zu klicken. Man wird aber, mit der gewonnenen Einstellung, sich Themen die einen lange beschäftigen tief erforschen wollen.
Auch wird bei der "Zeitaufwendigen" Methode das Verstädnnis für die "Click an Play" geschichte besser geschult und man findet fehler oder ideen schneller

(Ich muss z.Z. ein Konfigdialog für ODBC Datenbankquellen machen, da ists mir erst mal wurscht wie es geht und nutze auch alles was vorgefertigt rumliegt...
Ich stand aber mit GUIs schon immer auf Kriegsfuss
-
schön das ich so einen munteren dialog eingeleitet habe...

ich freu mich über eure antworten !
Gregor du liegst mit deinen schätzungen wahrscheinlich garnicht so weit von der realität entfernt.Ich will hier zwar nicht auf die ganzen "bahnbrechenden" Sachen eingehen mit denen ich die Welt schon bereichert und zugemüllt habe, allerdings muss ich sagen, dass ich im Zweifel mehr von dem Verstehe als du glaubst(nicht viel mehr).
Als ich mit c++ anfing wurde ich als erstes erstmal von allen möglichen neuen Sachen erschlagen, da ich vorher VB geprogt hab
... Als ich mich dann einigermaßen in Consolenprogrammierung reingefuchst hatte, stellte ich fest, das für den täglichen Gebrauch praktisch keinerlei Konsolenanwendungen gibt. Dann kaufte ich mir ein Buch über Windowsprogrammierung mit den MFC...
Und ich wurde wieder erschlagen...
Allerdings hab ich festgestellt, wie einfach manche Sachen (Dialoge laden, auslesen , beenden, ....) gehen ohne das ich wirklich weiß wie sie funktionieren.
Doch durch anfängliche Erfolge wurden meine Probleme immer komplexer und ich hab immer wieder was dazugelernt, weil ich immer nur bestimmt sachen nachgucken/hier nachfragen musste. Ich würd sogar sagen, dass meine C++Kenntnisse ohne MVC++ flöten gegangen wären. Natürlich ist sowas vielleicht nicht so doll von der WYSIWYG-ideologie her. Allerdings sind Erfolgserlebnisse und Motivation enorm wichtig (besonders wenn man in seiner freizeit programmiert) und ich denke, dass ich auch über die VC++ MFC-Schiene irgendwann auf den Pfad der Tugend zurückkomme...Um jetzt mal wieder ein paar n4pfragen loszulassen....
Was ist ein Speicherleck (definition, das ich eins im Code hab, weiß ich ja jetzt :D) und wie kann ich das schließen ?
Gibts irgendwo Seiten/Tutorials zur Codeoptimierung ?
-
Du hast ein "new" ohne entsprechendes "delete" verwendet. Bzw. "new[]" ohne "delete[]". Du kannst mal den Anfang (das erste Fünftel) eines beliebigen Einsteiger-C++-Buchs lesen, dann erfährst du mehr über new und delete.
-
nu mach mich mal nicht so runter...

ich hab ser wohl delete verwendet, allerdings kommt da dann immer im Debug
DAMAGE : after normal block (#76) at 0x00960068
und bei release krieg ich immer so komische haltpunkte bei start durch MVC++ und in freier wildbahn Speicherzugriffsfehler....m_Text += CString(13)+CString(10)+ConvertToCString(i) + "\t" + ConvertToCString(zeit_nach - zeit_vor) + "\t ("+Inf_DurchschnittFirst100(Array) + ")"; UpdateData(false); //MessageBox("","",0); i = i + 100000; delete Array; }// while
-
Wenn Array ein Array ist, probier es doch mal mit
delete [] Array;
-
gleicher effekt...

-
Pack das Sortierzeugs mal in eine eigene Klasse.
Devil
-
also ich würd mal sagen, dass das nicht die abstürze verhindern wird ...
-
Damage After Block XX heisst: du hast über die Array Grenze hinausgeschrieben.
@BOA:
Zeit ist Geld, und zudem leben wir im dritten Jahrtausend.
Exakt, und deshalb kann es sich eine Firma nicht leisten jemanden zu beschäftigen der die Sprache nicht verstanden hat, sondern nur eine GUI klicken kann.
Wer frickelt sich denn noch HTML-Seiten per Texteditor zusammen ?
Wir. (Webdesign Firma)
Warum? Weil du WYSIWYG Editoren nur zum prototypen verwendest - da ist aber manchmal Photoshop sogar besser
Und bei dynamischen Seiten funktionieren die sowieso nicht mehr.Da Du nach und nach, umso größer Dein Projekt wird sowieso recht schnell an die "Einfügen"-Grenzen im Studio kommst, holst Du Dir die Infos, die Du benötigst sowieso aus dem Net oder per Fachliteratur, so daß Du successiv dazulernst. Nur das Du vorher nicht die Lust verlierst, weil Du einfach net vorankommst.
Einige, aber nicht die meisten.
Du kannst fast alles per Copy&Paste machen - ohne auch nur annähernd zu verstehen was da abgeht.Unterhalte dich mal mit Lehreren: die werden dir sagen dass erstmal die Grundlagen können musst bevor du komplexe Sachen machst. Die umgekehrte Methode geht zwar auch, aber nur mit sehr viel Willenskraft.
-
Exakt, und deshalb kann es sich eine Firma nicht leisten jemanden zu beschäftigen der die Sprache nicht verstanden hat, sondern nur eine GUI klicken kann.
seit wann hat gui zusammenklicken was mit einer richtigen software zu tun?
dazu gehört viel mehr
auf der anderen seite gibts aber auch einige firmen die gar keinen bedarf für grosse entwicklungen haben
die kaufen sich dann ne softwarelizenz mit gui-quellcode und klicken sich die gui dann in vb zurecht wie sie es brauchenDu kannst fast alles per Copy&Paste machen - ohne auch nur annähernd zu verstehen was da abgeht.
sobald man was macht was nicht mehr 100%tig dem mainstream entspricht und nich schon 1000 mal gemacht wurde hat man mit copy&paste eh keine chance mehr
auf der anderen seite. wenns nix besonderes is und nix besonderes kann interessierts eh keine sau
-
Naja das mit dem Copy und Paste ist blöd gesagt.
Wenn ich in MFC programmiere, dann male ich mir meinen Dialog auch zusammen, weils einfach nervig is das erst mit Pixelangaben im Code zu plazieren.
Aber dann muss ich dem Dialog ja auch noch beibringen was er tun soll wenn bestimmte Buttons gedrückt werden.
Und da fängts an das ich von dem Scheiß auch was verstehen muss.
Und daher ist das mit dem Copy und Paste sehr leicht dahergeplabbelt.Irgendwie hab ich so das Gefühl das es generell immer negative Leute gibt.
Wenn man es einfach macht und Code "zusammenklickt" dann heisst es man würde ja eh nix von dem Verstehen was man da macht.Und wenn man dann WIRKLICH mal was selbst macht, dann heisst es, "das wird eh nix", "das gibts schon", "warum das Rad zweimal erfinden?".
Warum muß man sich denn immer so negativ über andere beklagen?
Kann man denn nicht einfach nur ne Hilfestellung geben und fertig?
Nein da müssen dann noch die eigenen sturren Meinungen durchgeboxt werden.
Das bringt keinem was und verschwendet speicherplatz auf dem Server
-
Also....ich habe mir das alles mal durchgelesen und ich kann auch noch ein paar Sachen dazu sagen...
Aus meiner Erfahrung in der C++ sowie in der JAVA-Programmierung kann ich sagen, dass C++ einfach schneller ist, da in C++ Maschinencode erzeugt wird, was ja bei JAVA bekanntich nur immer Sinne des JIT (Just-in-Time) der Fall ist. Dadurch gibt es schon Unterschiede...Bei JAVA ist die ganze Zeit die VM (Virtual Machine) am Werkeln und das kostet Performance. Da gibt es C++ einfach nicht zu toppen. Es geht ja bei JAVA schon los, wenn ich ein einfaches Fenster erzeuge, dass ziemlich viele Steuerelemente beinhaltet. Das dauert dann manchmal schon satte 3 bis 4 Sekunden und bei C++ "Klick" und da ist das Fenster (auf dem gleichen Rechner).
Was C++ ausbremst, ist die Vererbungsstruktur der MFC....da ist JAVA wieder im Vorteil. Die MFC ist einfach zu komplex, weswegen C++ da auch ausgebremst wird.
Wegen der Konsolenprogrammierung: Als kleiner Tipp...man kommt besser, wenn man die Basics auf der Konsole lernt. Weil dann hat man keine Probleme mit der Windowsprogrammierung. Wenn man auf der Konsole die OOP (Objektorientierte Programmierung) und prozedurale Programmierung drauf hat (inklusive Zeiger und dynamischer Speichernutzung) kann man sich an die MFC und Windowsprogrammierung wagen. Eher hat das keinen Sinn. Weil man dann nicht verstehen kann, was man überhaupt macht.
Und die Sache mit den Webseiten und dem Texteditor: Ich kenne viele Firmen, die professionelle Webseiten (wie oben schon gesagt vor allem dynamische Webseiten) mit konventionellen Editoren schreiben.
Die Firmen, die ich kenne, bauen auf Leute, die wissen was sie tun. Und wenn wir uns mal die Ausbildungen ansehen, dann bauen die Ausbildungsstätten darauf auf, den Leuten die Programmierung in C++ (Grundlagen) auf der Konsole beizubringen, denn umso leichter fällt der Umstieg. Ich kenne das aus eigener Erfahrung...
Aber ansonsten sind beides richtig gute Sprachen, sowie JAVA als auch C++. Das wollte ich von meiner Meinung her noch sagen...