Windowsprogramm mit C++ oder Java?
-
zusätzliche komplexität ist dann negativ, wenn es nicht viel neues oder keine vorteile bringt. wenn man keine functionspointer oder call by reference hat kann das schon manchmal fehlen.
-
Also ich finde C# auch ziemlich aufgebläht und startet auch gleich 3 Threads bei einem einfachen Programm. Aber dass es schwer zu erlernen ist finde ich zumindest nicht so. Meiner Meinung nach kannst du C++ und ne Bibliothek oder Java nehmen, dann bist du wenigstens Plattformunabhängig.
BTW:Die Zitierfunktion funkt. irgendwie nicht.
-
mkoiu schrieb:
zusätzliche komplexität ist dann negativ, wenn es nicht viel neues oder keine vorteile bringt. wenn man keine functionspointer oder call by reference hat kann das schon manchmal fehlen.
Wenn du Funktionspointer & co. brauchst hast dus doch nicht mehr wirklich einfacher als mit C++ oder?
Und Java hat IMHO call-by-reference, call-by-value ist da IMHO eher das Probelem
-
Nur mal so nebenbei erwaehnt hat der Threadersteller C# nicht mit einer Silbe erwaehnt, euer Geflame ist komplett OT.
Wenn du (Threadersteller) wesentlich mehr Erfahrung mit einer der beiden Sprachen hast, dann nimm die. Ansonsten ists mit Java wohl einfacher, eine GUI zu basteln. Allerdings hast du dann halt typische "Java-GUIs", und (persoenliche Meinung!!!) die sind IMO nicht 100%ig "windows-like". Natuerlich koenntest du dafuer auf Fremdbibliotheken zurueckgreifen (SWT), wenn du das willst.
Mit C++und entsprechender Library (MFC, wxWidgets) erhaelst du Programme, die wirklich "native" Win32 Anwendungen sind. Ob es fuer dich aufwaendiger ist, dich in eine C++ Lib oder eine Java-Lib einzuarbeiten, musst du aber immer noch selber entscheiden.
-
darthdespotism schrieb:
Und Java hat IMHO call-by-reference, call-by-value ist da IMHO eher das Probelem
in java gibt es kein call-by-reference. in jav agibt es nur call by value. zum tausendsten mal inzwischen in diesem forum glaube ich, aber das ist ja nich das thema
Blue-Tiger schrieb:
Allerdings hast du dann halt typische "Java-GUIs", und (persoenliche Meinung!!!) die sind IMO nicht 100%ig "windows-like". Natuerlich koenntest du dafuer auf Fremdbibliotheken zurueckgreifen (SWT), wenn du das willst.
Mit C++und entsprechender Library (MFC, wxWidgets) erhaelst du Programme, die wirklich "native" Win32 Anwendungen sind.darauf hab ich gewartet
vor allem weil gtk, qt und wx auf windows auch so derb "windows-like" aussehen
-
hallo zusammen schrieb:
darthdespotism schrieb:
Und Java hat IMHO call-by-reference, call-by-value ist da IMHO eher das Probelem
in java gibt es kein call-by-reference. in jav agibt es nur call by value.
falsch.
nur primitive datentypen werden 'by value' übergeben, alles andere 'by reference'
-
Ich glaub den call-by-reference und value streit hatten wir schon.
-
hallo zusammen schrieb:
Blue-Tiger schrieb:
Allerdings hast du dann halt typische "Java-GUIs", und (persoenliche Meinung!!!) die sind IMO nicht 100%ig "windows-like". Natuerlich koenntest du dafuer auf Fremdbibliotheken zurueckgreifen (SWT), wenn du das willst.
Mit C++und entsprechender Library (MFC, wxWidgets) erhaelst du Programme, die wirklich "native" Win32 Anwendungen sind.darauf hab ich gewartet
vor allem weil gtk, qt und wx auf windows auch so derb "windows-like" aussehen
QT Anwendung und wxWidgets Anwendung
Eventuell könntest du auch Ruby + QT verwenden. Ruby ist eine richtig coole und sehr einfach zu lernende Sprache. QT arbeitet an einem Port für Ruby, der funktioniert scheinbar schon ziemlich gut. Aber genaues kann ich dazu nicht sagen, da ich noch nicht damit gearbeitet habe.
-
pale dog schrieb:
hallo zusammen schrieb:
darthdespotism schrieb:
Und Java hat IMHO call-by-reference, call-by-value ist da IMHO eher das Probelem
in java gibt es kein call-by-reference. in jav agibt es nur call by value.
falsch.
nur primitive datentypen werden 'by value' übergeben, alles andere 'by reference'nein, tut mir leid, lies die JLS
-
Zeus schrieb:
Ich glaub den call-by-reference und value streit hatten wir schon.
Ja. Und der ist gar nicht mal so lange her. Ich glaube mich auch erinnern zu koennen, dass keine Fraktion nachgegeben hat. Koennte also ein langer Thread werden.
BTW: call-by-value
-
Trotzdem behaupte ich dieses:
package Wrapper; class IntObj{ public int i; } public class Wrapper { public static void doit(IntObj i) { // Call-by-Reference i.i = 12; } public static void swap(int i, int j) { // Call-by-Value int tmp = j; j = i; i = tmp; } public static void main(String[] args) { IntObj j = new IntObj(); doit(j); System.out.println(j.i); int x = 5; int y = 9; swap(x,y); System.out.print(x); System.out.print("\t"); System.out.print(y); } }
-
es gibt darüber gar nix zu streiten. hier der entsprechende link zur java language specification: http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#37472 und hier nochmal erklärt für dumme, falls man die jls nicht versteht: http://javadude.com/articles/passbyvalue.htm
dein beispiel, zeus, ist kein beispiel von call by reference.
-
Jo, ich weiss.
Java-Handbuch schrieb:
Wie in allen anderen Programmiersprachen entspricht die call by value-Übergabe eines Zeigers damit natürlich genau der Semantik von call by reference."
-
ich weiß zwar nicht aus welchem "java handbuch" du da zitierst, aber daran, dass es falsch ist ändert es auch nichts, sorry
-
Guido Krüger
Handbuch der Java-Programmierung
4., aktualisierte Auflage 2006
Addison-Wesley, 2006
ISBN 3-8273-2361-4 bzw. 3-8273-2447-5Der Programmier will ja auch nur Ausdrücken ob er mit dem Orginalen arbeitet oder ne Kopie, ob da nun der Zeiger wirklich referenziert wird oder per Kopie übergeben wird, ist ja so ein schöner Streit zwischen "Anwendungsentwickler" und "Compilerbauen" ;o
-
Jetzt schreib mal ein swap() fuer nicht Build-Ins und revidiere deine Aussage.
-
Zeus schrieb:
Der Programmier will ja auch nur Ausdrücken ob er mit dem Orginalen arbeitet oder ne Kopie, ob da nun der Zeiger wirklich referenziert wird oder per Kopie übergeben wird, ist ja so ein schöner Streit zwischen "Anwendungsentwickler" und "Compilerbauen" ;o
nein ist es nicht. es ist nur so, dass die begriffe call-by-value und call-by-reference fest definiert sind und du nicht einfach deiner laune nach ihre bedeutungen ändern kannst: fertig.
-
zeus du hast doch recht ich hab mich fertan
-
Apollon schrieb:
Jetzt schreib mal ein swap() fuer nicht Build-Ins und revidiere deine Aussage.
Mit ist schon klar, dass du durch die "kopierten Referenzen" nix erreichen wirst.
-
Wenn das eine Referenz auf nen Pointer wäre, dann würde das gehen.
package Wrapper; class IntObj{ public int i; } public class Wrapper { public static void doit(IntObj i) { i = new IntObj(); i.i = 12; } public static void main(String[] args) { IntObj j = null; doit(j); System.out.println(j.i); } }