Martin33: Plattformübergreifende GUI-Programmierung

Hallo Self-Gemeinde,

da hier viele Programmierer unterschiedlicher Sprachen lesen und schreiben, dachte ich mir, dass ich hier mit meinen Überlegungen vielleicht ein paar Antworten bekommen kann.

Kurz zu meinem Hintergrund: ich programmiere ca. 10 Jahre lang beruflich, vorrangig in interpretierenden Sprachen.
Hauptsächlich in PHP, aber ich kann auch Bash, Perl und eher wenig JS. Meine C bzw. Pascal-Zeiten sind extrem lange her.
An Datenbanken hab ich mit MySQL und Oracle gearbeitet und in Sqlite und Postgres rein geschnuppert.
Ich arbeite an einem Linux-Rechner und habe noch ein MacBook zur Verfügung. "Meine" IDE ist Eclipse, u.a. weil ich da die SVN-Integration angenehm finde.

Derzeit überlege ich an einem Programm herum, das es so noch nicht gibt und das ich schreiben möchte.
Meine Zielgruppe hat allerdings deutlich gemacht, dass eine rein serverbasierte Software nicht ideal wäre.
Daher überlege ich nun, eine "richtige" Software mit GUI mit einer der eher klassischen Sprachen zu entwickeln. Da ich mich sowieso neu einlesen und -lernen müsste, hab ich quasi die Qual der Wahl ;-)

Ich habe allerdings den Anspruch, die Software für Windows, Linux und Mac zu programmieren. Am liebsten wäre es mir, wenn ich dafür die Software nicht für jede Plattform neu schreiben müsste.
Zudem möchte ich nur die kompilierte Software ausliefern, meine Zielgruppe wäre auch mit dem selber-kompilieren überfordert.
Sprich: Zip-Datei runter laden, entpacken, ausführen und mit der Software glücklich werden.

Ich möchte das erste Release innerhalb der nächsten 6 Monate raus bringen. Klingt ehrgeizig, aber die Software besteht aus etlichen Formularen, einer DB-Anbindung, Bilder herunter skalieren und etwas XML-Austausch mit dem Internet. Also keine Quantenphysik, sollte man meinen. Und ich habe etwa 2-3 Tage die Woche Zeit dafür.
Als DB tendiere ich derzeit zu Sqlite, weil es wahrscheinlich zu aufwendig (bzw. lizenztechnisch schwierig) wäre, einen SQL-Server mit der Software mit zu liefern.

Mein Stöbern hat bislang folgendes zu Tage gebracht, wenn euch dazu was einfällt, würde ich mich über Verbesserungen und weitere Ideen freuen:

1. Java - Dürfte der Klassiker für plattformübergreifende GUI-Programmierung sein.
2. C++ mit wxWidgets oder QT
3. Python 3 mit wxWidgets oder Tkinter oder QT
4. ?

Ok, meine Fragen:
Die Syntax einer neuen Programmiersprache kann man ja innerhalb kürzester Zeit lernen - aber interessant ist ja der Sprachumfang und die Bibliotheken und wie schnell man sich in den Eigenheiten der Sprache zurecht findet. Wie realistisch ist es, innerhalb von ein paar Monaten eine neue Sprache produktiv (für andere) auch einzusetzen?
Welche der Sprachen wäre am ehesten für meine Zwecke geeignet?
Kann jemand Empfehlungen zur GUI-Bibliothek geben?
Ist C++ noch aktuell oder wird Desktop-Software nur noch in .NET entwickelt? Ein wenig zukunftssicher sollte das Ganze ja auch sein ;-)

Ich bin gespannt auf eure Meinungen und vielen Dank fürs Lesen.

Viele Grüße
Martin

  1. Hi!

    Meine Zielgruppe hat allerdings deutlich gemacht, dass eine rein serverbasierte Software nicht ideal wäre.

    Warum nicht? Das spart das Ausrollen von geänderten Versionen auf den Clients.

    Ich habe allerdings den Anspruch, die Software für Windows, Linux und Mac zu programmieren. Am liebsten wäre es mir, wenn ich dafür die Software nicht für jede Plattform neu schreiben müsste.

    Ist das nur dein Anspruch oder eine Anforderung?

    Dabei kann immer nur ein mehr oder weniger schlechter Kompromiss rauskommen, denn die Bedienphilosophien sind nicht immer die gleichen. Am extemsten sind hier Java-Oberflächen, die sich in kein System so richtig ordentlich einfügen (oder ich hab immer nur von Dilletanten entwickeltes Zeug bekommen).

    Zudem möchte ich nur die kompilierte Software ausliefern, meine Zielgruppe wäre auch mit dem selber-kompilieren überfordert.
    Sprich: Zip-Datei runter laden, entpacken, ausführen und mit der Software glücklich werden.

    Auch die Installationsorgien sind je nach System unterschiedlich. Einfach auspacken erzeugt noch keine Einträge in Startmenüs und dergleichen. Wie soll das Programm dann vom Anwender gestartet werden? Immer erst das Verzeichnis aufsuchen und die .exe starten?

    1. ?

    .NET/Mono

    Die Syntax einer neuen Programmiersprache kann man ja innerhalb kürzester Zeit lernen - aber interessant ist ja der Sprachumfang und die Bibliotheken und wie schnell man sich in den Eigenheiten der Sprache zurecht findet. Wie realistisch ist es, innerhalb von ein paar Monaten eine neue Sprache produktiv (für andere) auch einzusetzen?

    Jede Schätzung kann da extrem danebenliegen. Ich weiß nicht, wie begabt du beim Finden von Informationen bist, oder auch nicht. Schlimmstenfalls fängst du mit dem flaschen Grundkonzept an und kannst dann weder vor noch zurück, weil Funktionalität technisch oder ein Umschwenken zeitlich nicht machbar ist.

    Welche der Sprachen wäre am ehesten für meine Zwecke geeignet?

    Sprachen sind wie beim Lernen weniger das Problem, sondern die Bibliotheken.

    Kann jemand Empfehlungen zur GUI-Bibliothek geben?

    Das hängt auch sehr davon ab, ob das eigene Empfinden mit der Philosphie des Systems in Übereinstimmung gebracht werden kann.

    Ist C++ noch aktuell oder wird Desktop-Software nur noch in .NET entwickelt? Ein wenig zukunftssicher sollte das Ganze ja auch sein ;-)

    Da verweise ich an den Tiobe-Index.

    Perspektivisch denke ich auch, dass der Autor vom Artikel Windows 8, HTML5 und die Folgen für .NET? Recht haben wird: Oberflächen werden zunehmend mit HTML und Javascript programmiert werden. Das ist außerdem noch am kompatibelsten zwischen den Systemen.

    Lo!

    1. Hallo,

      Schon mal Danke für deine Antwort!

      Meine Zielgruppe hat allerdings deutlich gemacht, dass eine rein serverbasierte Software nicht ideal wäre.

      Warum nicht? Das spart das Ausrollen von geänderten Versionen auf den Clients.

      Ja, mir wäre eine serverbasierte Software auch deutlich angenehmer. Schließlich habe ich da Erfahrung und weiß, wo die Fallstricke liegen.

      Genannte Probleme waren u.a.: keine durchgängige Internetverbindung, keine Homepage (im weitesten Sinne), kein Interesse an einer Homepage (im weitesten Sinne), keine Lust große Bilder hochzuladen (Wissen über manuelles Skalieren nicht immer vorhanden)

      Ich habe allerdings den Anspruch, die Software für Windows, Linux und Mac zu programmieren. Am liebsten wäre es mir, wenn ich dafür die Software nicht für jede Plattform neu schreiben müsste.

      Ist das nur dein Anspruch oder eine Anforderung?

      Mein Anspruch. Ich weiß, wie nervig es ist, wenn eine neue Software nur auf einer Plattform verfügbar ist. Und da ich Windows gar nicht mehr einsetze, meine Zielgruppe aber fast nur damit arbeitet, würde ich zumindest eine Software entwickeln wollen, die nicht nur auf Windows läuft.

      Abgesehen davon würde mich die Herausforderung reizen ;-)

      Zudem möchte ich nur die kompilierte Software ausliefern, meine Zielgruppe wäre auch mit dem selber-kompilieren überfordert.
      Sprich: Zip-Datei runter laden, entpacken, ausführen und mit der Software glücklich werden.

      Auch die Installationsorgien sind je nach System unterschiedlich. Einfach auspacken erzeugt noch keine Einträge in Startmenüs und dergleichen. Wie soll das Programm dann vom Anwender gestartet werden? Immer erst das Verzeichnis aufsuchen und die .exe starten?

      Ok, Startmenü-Einträge bzw eine geführte Installation wären schon sinnvoll, da hast du schon Recht.

      .NET/Mono

      Ja, habe ich für Linux aber nur unbequeme Sachen gehört. Aber das sind nur Hörensagen, keine Fakten.

      Perspektivisch denke ich auch, dass der Autor vom Artikel Windows 8, HTML5 und die Folgen für .NET? Recht haben wird: Oberflächen werden zunehmend mit HTML und Javascript programmiert werden. Das ist außerdem noch am kompatibelsten zwischen den Systemen.

      Ja, auf jeden Fall. Wie gesagt, mir wäre eine serverbasierte Software auch lieber. Vor allem geht ja auch der Trend eher Richtung HTML-Software.
      Lokal installierte Software klingt manchmal (!) schon ein wenig wie ein Anachronismus ... aber auch hier muss man eindeutig nach dem Zweck einer Software schauen.

      Viele Grüße
      Martin

    2. Dabei kann immer nur ein mehr oder weniger schlechter Kompromiss rauskommen, denn die Bedienphilosophien sind nicht immer die gleichen.

      Da Widerspreche ich. Ein Programm in GTK+ sieht auf allen Plattformen gleich aus und der Code ist praktisch überall gleich, wenn das Konzept entsprechend umgesetzt ist.

      Firefox basiert zwar nicht auf GTK+ aber beweisst eindrucksvoll, dass ein Programm unter mehreren Plattformen mit praktisch identischen Code laufen kann.

      Javaprogramme laufen auch nur bedingt auf allen Plattformen, weil die Libs nicht zusammenpassen, grad bei Hardwarezugriffen. Abgesehen davon halte ich Java für eine GUI-Anwendung für eine Zumutung. Wirt halt benutzt, weil der Programmierer nicht in der Lage ist, C++ zu lernen.

      1. Javaprogramme laufen auch nur bedingt auf allen Plattformen, weil die Libs nicht zusammenpassen, grad bei Hardwarezugriffen.

        Ist bei allen anderen Sprachen genauso. Und zwar aus Prinzip.

        Abgesehen davon halte ich Java für eine GUI-Anwendung für eine Zumutung.

        Begründung?

        1. Javaprogramme laufen auch nur bedingt auf allen Plattformen, weil die Libs nicht zusammenpassen, grad bei Hardwarezugriffen.

          Ist bei allen anderen Sprachen genauso. Und zwar aus Prinzip.

          Ist mir klar, deshalb hab ich ja angemerkt, dass auch Java kein Garant für Plattformunabhängigkeit ist.

          Abgesehen davon halte ich Java für eine GUI-Anwendung für eine Zumutung.

          Begründung?

          Persönliche Abneigung wegen der ungewöhnlichen Bedienung.
          Java ist langsam (ja, es IST langsamer als Programme in C++, auch wenn Javaprogrammierer immer was anderes behaupten).
          Ich muss ein JRE-Monster installieren um ne Anwendung laufen zu lassen, die in C++ wesentlich kleiner ist und dadurch weniger Ressourcen verwendet.
          Die GUI sieht anders aus als gewohnt, egal unter welchem BS.

          Grundsätzlich ist Java für ne GUI für mich nur eine Nötlösung für Programmierer, die es nicht besser können. Für Serveranwendungen hat es sicher seine Berechtigung, Java zu verwenden, auch wenn ich es mittlerweile für nicht mehr zeitgemäss halte, aber auf dem Desktop hat Java nichts verloren.

          Eine Ausnahme gestehe ich hier Java mit einer GUI zu: Software, die wirklich plattformübergreifend läuft und auf allen Plattformen absolut gleich aussieht und zu bedienen ist. Das scheitert aber, bis auf wenige Ausnahmen, wieder an den Java-Programmierern.

          http://urbanoalvarez.es/blog/2009/11/18/the-programmers-hierarchy/

          1. Begründung?

            Persönliche Abneigung wegen der ungewöhnlichen Bedienung.
            Java ist langsam (ja, es IST langsamer als Programme in C++, auch wenn Javaprogrammierer immer was anderes behaupten).

            Es stimmt auch einfach nicht. Es _kann_ langsamer sein, aber bei richtiger Programmierung ist es "nicht langsamer". Außer beim Start.

            Ich muss ein JRE-Monster installieren um ne Anwendung laufen zu lassen, die in C++ wesentlich kleiner ist und dadurch weniger Ressourcen verwendet.
            Die GUI sieht anders aus als gewohnt, egal unter welchem BS.

            Auch falsch. Es ist mit Java sehr leicht möglich betriebssystemähnliche Styles zu benutzen. Und glaub mir, der Unterschied wird dir nicht auffallen. Das mit dem JRE ist der einzige Nachteil, aber eben die Voraussetzung. Außerdem musst du das ja nur einmal tun.

            Grundsätzlich ist Java für ne GUI für mich nur eine Nötlösung für Programmierer, die es nicht besser können. Für Serveranwendungen hat es sicher seine Berechtigung, Java zu verwenden, auch wenn ich es mittlerweile für nicht mehr zeitgemäss halte, aber auf dem Desktop hat Java nichts verloren.

            Java (und/oder besser gesagt die VM) bietet aber sehr bequeme Möglichkeiten. Beispielsweise das Exceptionhandling und den GC. Heutige Hardware ist so weit, dass der Vorteil durch die geringere Entwicklungszeit die Nachteile (höherer Resourcenverbrauch) tausend mal aufwiegt. Es gibt natürlich Ausnahmefälle (z.B. Spiele).

            Aber spätestens bei größeren Projekten wird C(++) einfach deutlich unangenehmer als Java oder noch besser Scala (wobei dieses auch Tücken hat, z.B. die Operatorenüberladung) oder .NET (jaja, ich weiß).

            1. Es stimmt auch einfach nicht. Es _kann_ langsamer sein, aber bei richtiger Programmierung ist es "nicht langsamer". Außer beim Start.

              Also ist es langsamer. Gilt im Übrigen auch fürs beenden.
              Und nur, weil es vielleicht die eine oder andere Software gibt, die so programmiert ist, dass sie genauso schnell läuft, wie ein C++-Programm, ist meine Aussage noch nicht falsch. Ausnahmen bestätigen lediglich die Regel aber heben sie nicht auf.

              Auch falsch. Es ist mit Java sehr leicht möglich betriebssystemähnliche Styles zu benutzen. Und glaub mir, der Unterschied wird dir nicht auffallen. Das mit dem JRE ist der einzige Nachteil, aber eben die Voraussetzung. Außerdem musst du das ja nur einmal tun.

              Auch hier: Nur weil es eine Handvoll  Programme gibt,  die eine "normale" GUI haben, ist meine Aussage nicht falsch. Ausnahmen und so ....

              Java (und/oder besser gesagt die VM) bietet aber sehr bequeme Möglichkeiten. Beispielsweise das Exceptionhandling und den GC. Heutige Hardware ist so weit, dass der Vorteil durch die geringere Entwicklungszeit die Nachteile (höherer Resourcenverbrauch) tausend mal aufwiegt. Es gibt natürlich Ausnahmefälle (z.B. Spiele).

              Ja, wie gesagt, Java ist eine Notlösung, wenn der Programmierer kein C++ lernen will/kann.
              Und die Aussage, dass der Ressourcenverbrauch nicht relevant ist, ist schon reichlich am User vorbei. Wenn du glaubst, ein Rechner ist nur dazu da, um den Ressourcenhunger eine Javaanwendung zu stillen, anstatt mehrere Programme gleichzeitig auszuführen, frag ich mich, was du programmierst.

              Grundsätzlich hat ein Programm mit so wenig Ressourcen  wie möglich auszukommen, tut es das nicht, liegt ein Konzept- und Programmierfehler vor. Wenn ich auf meinem Rechner 20 Programm gleichzeitig laufen lasse und ein Javaprogramm meint, dadurch bleibtnicht genug Leistung übrig, heisst es für mich, dieses Sprache ist für Multitasking völlig daneben.

              Und so nebenbei, nicht jeder Kunde will neue Hardware anschaffen, nur weil der Programmierer nichts taugt. Ein guter Programmierer passt sich den Gegebenheiten an, nicht umgekehrt.

              Aber spätestens bei größeren Projekten wird C(++) einfach deutlich unangenehmer als Java oder noch besser Scala (wobei dieses auch Tücken hat, z.B. die Operatorenüberladung) oder .NET (jaja, ich weiß).

              Wieviele grössere Projekte hast du mit C++ realisiert? Vor ca. 1 Jahr hatte ich eins mit ca. 2 Mio. Codezeilen mit 12 Programmierern. Das einzig unangenehme war ein Programmierer, der zu 90% Java programmiert und genau deine Einstellung hatte. Genau der Code musste dann getauscht werden. Einmal wegen dem "der Rechner hat doch gneug Leistung und Speicher" und einmal wegen dem bequemen Programmieren in Java, bei dem Effizienz und Struktur irgendwie nicht mehr zu existieren scheinen.

              Sei mir nicht böse, aber deine Argumente lesen sich für mich wie ein Java-Verfechter, der aber
              1. noch nie ein grosses Projekt realisiert (oder dabei mitgewirkt) hat
              2. nur Java kennt und alles andere nur vom Hörensagen.
              3. einzelne Java-Programme kennt und glaubt sie wären die Referenz

              Da dieser Beitrag aber völlig am eigentlichen Thema vorbei ist und ich auch keine Lust auf einen "Sprachenkrieg" hab, schliesse ich hier. In meinen 25 Jahren Programmiererfahrung weiss ich, worauf es mir und den Kunden ankommt und das ist entscheidend.

              1. Hallo,

                Und die Aussage, dass der Ressourcenverbrauch nicht relevant ist, ist schon reichlich am User vorbei. Wenn du glaubst, ein Rechner ist nur dazu da, um den Ressourcenhunger eine Javaanwendung zu stillen, anstatt mehrere Programme gleichzeitig auszuführen, frag ich mich, was du programmierst.

                Grundsätzlich hat ein Programm mit so wenig Ressourcen  wie möglich auszukommen, tut es das nicht, liegt ein Konzept- und Programmierfehler vor.

                Und so nebenbei, nicht jeder Kunde will neue Hardware anschaffen, nur weil der Programmierer nichts taugt. Ein guter Programmierer passt sich den Gegebenheiten an, nicht umgekehrt.

                wie erfrischend, dass ich nicht der einzige bin, der so denkt - völlig unabhängig vom Beispiel Java, das *ich* wiederum nur oberflächlich kenne.

                Ciao,
                 Martin

                --
                Funktion und Referenz auf diese sind mir bekannt, mit Zeigern kann ich nicht viel mehr anfangen, als damit auf Buttons zu klicken.
                  (Ashura)
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                1. wie erfrischend, dass ich nicht der einzige bin, der so denkt - völlig unabhängig vom Beispiel Java, das *ich* wiederum nur oberflächlich kenne.

                  Na ich hoffe doch, da gibts noch mehr, die so denken ;)
                  Ok, ich weiss, dass es die gibt. Ich arbeite viel mit externen Programmierern und wenn einer davon nicht diese Einstellung hat, wir er ausgewechselt.

                  Ich habe einen Anspruch an das Produkt, das ich dem Kunden liefere. Und ich bin stolz drauf, noch nie ein Produkt geliefert zu haben, was nicht diesen Ansprüchen genügt. (Ok, ich verschweige jetzt mal, dass meine eigenen Seiten aktuell meinen Ansprüchen nicht genügen *g*)

                  1. Hallo,

                    Ok, ich weiss, dass es die gibt. Ich arbeite viel mit externen Programmierern und wenn einer davon nicht diese Einstellung hat, wir er ausgewechselt.

                    Na bei uns scheint das umgekehrt zu sein, in erster Linie soll der Kunde zufrieden sein, wie der Code dahinter aussieht ist erst mal zweitrangig. Wichtig ist dass die Entwicklung zügig vorangeht. Jeder der meint übertrieben vorausdenken müssen und dafür dann für sachen die eigentlich nur eine Woche dauern sollten zwei oder gar drei Wochen braucht weil er da Sachen für die Zukunft und Geschwindigkeit baut die keiner bestellt hat, der wird ausgewechselt.

                    Jeena

                    1. Jeder der meint übertrieben vorausdenken müssen und dafür dann für sachen die eigentlich nur eine Woche dauern sollten zwei oder gar drei Wochen braucht weil er da Sachen für die Zukunft und Geschwindigkeit baut die keiner bestellt hat, der wird ausgewechselt.

                      Das mag ja bei Projekten, die einmalig erstellt und dann ie mehr angesehen werden, in Ordnbung sein. Ich habe mit meinen Kunden aber Wartungsverträge und wenn ich mich dann durch nen Codehaufen wühlen muss, den ein anderer fabriziert hat (oder ein anderer muss wühlen), macht das a. keinen Spass und b. kostet das Geld, weil die Wartungen idR Pauschalen sind und nicht auf Stundenbasis abgerechnet werden.

                      Allerdings hatte ich noch nie das Problem, dass ein Programierer die dreifache Zeit braucht für die Umsetzung. Ich bekomme idR das passende Ergebnis in der gleichen Zeit oder mit einer kleinen (bei einem Projekt für 3 Wochen max. 1-2 später) verzögerung als bei einem Programmierer, der zwar schneller ist aber dessen Codestil nicht meinen Vorgaben entspricht.

              2. Ich habe keine große Lust, hier einen riesigen Programmiersprachenflamewar anzufangen. Aber zu einem Punkt möchte ich (weil unabhängig von der Sprache) doch noch etwas sagen:

                Und die Aussage, dass der Ressourcenverbrauch nicht relevant ist, ist schon reichlich am User vorbei. Wenn du glaubst, ein Rechner ist nur dazu da, um den Ressourcenhunger eine Javaanwendung zu stillen, anstatt mehrere Programme gleichzeitig auszuführen, frag ich mich, was du programmierst.

                Der Resourcenverbrauch unterscheidet sich bei entsprechender Größe nur marginal. Viel viel viel wichtiger sind sowieso Laufzeitkomplexitäten. Es gibt verdammt wenige Fälle, in denen man z.B. auf ein C++ Modul zurückgreifen muss, weil C++ schneller ist.

                Grundsätzlich hat ein Programm mit so wenig Ressourcen  wie möglich auszukommen, tut es das nicht, liegt ein Konzept- und Programmierfehler vor.

                Falsch. Ein Programm hat mit so wenig Ressourcen wie nötig auszukommen.

                Und so nebenbei, nicht jeder Kunde will neue Hardware anschaffen, nur weil der Programmierer nichts taugt. Ein guter Programmierer passt sich den Gegebenheiten an, nicht umgekehrt.

                Dann möchte ich dir mal folgende Sprache stellen: warum programmierst du mit C++ und nicht mit Assembler? Letzteres ist doch viel performanter. Da kannst du händisch alles perfekt optimieren. Und nutzt du eigentlich auch die GPU im Rechner aus?

                Tatsache ist doch, dass es einem Kunden völlig egal ist, ob er nun für Hardware oder für Software bezahlt. Für den Kunden zählt am Ende, was am günstigsten ist. Und wenn die Software nunmal nur die Hälfte kostet, weil sie wesentlich bequemer und dementsprechend mit weniger Programmierern entwickelt werden kann, dann kauft der Kunde auch für 10€ nen zusätzlich RAM-Riegel (ja, das ist ein extreeem überspitztes Beispiel).

                Nicht umsonst haben sich im Laufe der Zeit _immer_ mehr Hochsprachen durchgesetzt. Und die Ebene der Sprachen wird immer höhere, es gibt immer mehr Abstraktionsschichten. Und das, obwohl das alles zwangsläufig aus Prinzip (Naturgesetz) mehr Resourcen verbraucht. Diese Entwickelung kannst du nicht leugnen.

                Dass es auch Programmierer gibt, die schlechte Software schreiben, mag sein. Das hat aber nicht direkt etwas mit der Sprache zu tun, die du hier kritisiert hast.

                1. Falsch. Ein Programm hat mit so wenig Ressourcen wie nötig auszukommen.

                  Damit hast du dich als Klugscheisser geoutet. Meine Aussage als falsch zu bezeichnen und dann selbst eine falsche zu bringen ist schon echt übel.

                  Mach dir nochmal klar, was "sowenig wie nötig" heisst.
                  Wenn du geschrieben hättest "soviele wie nötig", wäre es richtig gewesen, allerdings ist es dann die gleiche Aussage, wie meine, die du aber als falsch bezeichnest.

                  Dann möchte ich dir mal folgende Sprache stellen: warum programmierst du mit C++ und nicht mit Assembler? Letzteres ist doch viel performanter. Da kannst du händisch alles perfekt optimieren. Und nutzt du eigentlich auch die GPU im Rechner aus?

                  Wenn es nötig ist, programmiere ich auch in Assembler. Auf der vielgewünschten 8-Bit RISC von AVR, auf der ich u.a. entwockle,  ist 90% des Codes Assembler.
                  Kannst du dir in etwa vorstellen, was der Kunde zu mir sagt, wenn ich ihm erkläre, er muss seine Module mit nem ARM9 ausstatten, nur weil ich in C programmieren will und damit die 8-Bitter zu langsam werden?

                  Klar, sind dann mal pro Modul/Platine mehrkosten von 120-350€ je nach Ausstattung.

                  Tatsache ist doch, dass es einem Kunden völlig egal ist, ob er nun für Hardware oder für Software bezahlt. Für den Kunden zählt am Ende, was am günstigsten ist. Und wenn die Software nunmal nur die Hälfte kostet, weil sie wesentlich bequemer und dementsprechend mit weniger Programmierern entwickelt werden kann, dann kauft der Kunde auch für 10€ nen zusätzlich RAM-Riegel (ja, das ist ein extreeem überspitztes Beispiel).

                  Wie erwähnt, ich gehe davon aus, dass du noch nie ein entsprechendes Projekt umgesetzt hast. Sonst wüsstest du, welch sinnloses geblubber du von dir gibst. Das ist schlichtweg weltfremd.

                  Nicht umsonst haben sich im Laufe der Zeit _immer_ mehr Hochsprachen durchgesetzt. Und die Ebene der Sprachen wird immer höhere, es gibt immer mehr Abstraktionsschichten. Und das, obwohl das alles zwangsläufig aus Prinzip (Naturgesetz) mehr Resourcen verbraucht. Diese Entwickelung kannst du nicht leugnen.

                  Wenn du natürlich die kleine Sparte an PC-Systemen meinst, ist das ans sich richtig, dummerweise machen die aber nur ca. 30% im Internet aus. Der Rest besteht Embedded-Systeme, mobilen Endgeräten, Steuersystemen  auf Risc- oder ARM-Basis usw....
                  Schau mal über den Tellerrand. Evtl. liegt der obige Prozentsatz auch bei 50%, hab mir nicht die Mühe gemacht, nach ner Quelle zu suchen, aber es sollte klar sein, das Internet besteht nicht nur aus PC-Systemen. Und gerade die Welt in der sich Programmierer bewegen besteht zu mindestens 80% aus kleinen Embedded-Systemen, die seit 20 Jahren die gleiche Leistung haben und auch die nächsten 20 Jahre damit auskommen.

                  Eine SPS braucht keine CPU mit 8 Kernen  und 3 Gz mit 6GB Ram.

                  Dass es auch Programmierer gibt, die schlechte Software schreiben, mag sein. Das hat aber nicht direkt etwas mit der Sprache zu tun, die du hier kritisiert hast.

                  Das hat sicher was mit der Sprache zu tun. Java unterstützt die Faulheit des Programmierers. Und ja, das macht auch PHP, Perl, Ruby usw. Allerdings nicht, nach meiner Erfahrung, die Java-Programmierer am schlimmsten. Und glaub mir, ich hab schon mit vielen arbeiten "dürfen".

                  Und da du immer noch nicht gesagt hast, ob du jemals an grossen Projekten mitgewirkt hast, ist dieses Gespräch eh sinnlos, da du Aussagen triffst, wo dich jeder Chef sofort feuern müsste. Und zwar fristlos.

                  Meine Vermutung: Du bist 19, studierst grad informatik und hast grad das erste "Hallo Welt!" in Java geschrieben. Jetzt komme ich und sag dir, das was du gelernt hast, ist scheisse und du kannst nichts anderes. (Lies es richtig, ich gehe davon aus, so kommt es bei dir an)

                  Jetzt versuchst du mit weltfremden "Argumenten", zu widerlegen, was ich in den letzten 25 Jahren an Erfahrung gesammelt hab. Wir sind nicht auf einem Level und somit wirst du mich nie verstehen. Aber wenn du das erste Softwareprojekt mit mehr als 500 Zeilen umgesetzt hast, können wir gerne nochmal plaudern ;)

                  Sollte ich dich falsch eingeschätzt haben, berichtige mich einfach. Solltest du das nicht tun, gehe ich einfach mal davon aus, ich hab (zumindest teilweise) Recht. Damit wäre dieses Gespräch ebenfalls beendet.

                  PS: Sollte sich das lesen, als wäre ich ein  arroganter Arsch ...... ja, das stimmt. Und ich hab es mir schwer erarbeiten müssen, so sein zu dürfen.

                  1. Falsch. Ein Programm hat mit so wenig Ressourcen wie nötig auszukommen.

                    Damit hast du dich als Klugscheisser geoutet. Meine Aussage als falsch zu bezeichnen und dann selbst eine falsche zu bringen ist schon echt übel.

                    Mach dir nochmal klar, was "sowenig wie nötig" heisst.

                    Sie bedeutet: es gibt eine Notwendigkeit dafür, dass ein Programm maximal X Resourcen nutzen darf und das Programm sollte so wenig Resourcen benutzen, dass es diese Notwendigkeit nicht überschreitet, weil sonst die Resourcen nicht ausreichen.

                    Du hast mich einfach nicht verstanden. Ich will damit sagen: ein Programm darf soviel verbrauchen, wie es will, nur nicht _zuviel_.

                    Dann möchte ich dir mal folgende Sprache stellen: warum programmierst du mit C++ und nicht mit Assembler? Letzteres ist doch viel performanter. Da kannst du händisch alles perfekt optimieren. Und nutzt du eigentlich auch die GPU im Rechner aus?

                    Wenn es nötig ist, programmiere ich auch in Assembler.

                    Da ein Programm laut dir immer so wenig wie möglich verbrauchen soll, musst du immer in Assembler programmieren, weil in fast allen Fällen noch etwas optimierbar ist. Ich wiederhole nochmal: in _allen_ Fällen. Tust du das?

                    Tatsache ist doch, dass es einem Kunden völlig egal ist, ob er nun für Hardware oder für Software bezahlt. Für den Kunden zählt am Ende, was am günstigsten ist. Und wenn die Software nunmal nur die Hälfte kostet, weil sie wesentlich bequemer und dementsprechend mit weniger Programmierern entwickelt werden kann, dann kauft der Kunde auch für 10€ nen zusätzlich RAM-Riegel (ja, das ist ein extreeem überspitztes Beispiel).

                    Wie erwähnt, ich gehe davon aus, dass du noch nie ein entsprechendes Projekt umgesetzt hast. Sonst wüsstest du, welch sinnloses geblubber du von dir gibst. Das ist schlichtweg weltfremd.

                    Du bist derjenige, dem die Argumente fehlen.

                    Nicht umsonst haben sich im Laufe der Zeit _immer_ mehr Hochsprachen durchgesetzt. Und die Ebene der Sprachen wird immer höher, es gibt immer mehr Abstraktionsschichten. Und das, obwohl das alles zwangsläufig aus Prinzip (Naturgesetz) mehr Resourcen verbraucht. Diese Entwickelung kannst du nicht leugnen.

                    Wenn du natürlich die kleine Sparte an PC-Systemen meinst, ist das ans sich richtig, dummerweise machen die aber nur ca. 30% im Internet aus. Der Rest besteht Embedded-Systeme, mobilen Endgeräten, Steuersystemen  auf Risc- oder ARM-Basis usw....

                    Äh, ja. In welchen Sprachen werden nochmal die iPhone, Android, Symbian Apps geschrieben? Was ist mit Blackberry? Wieviel Assembler wird denn heute noch benutzt?

                    Eine SPS braucht keine CPU mit 8 Kernen  und 3 Gz mit 6GB Ram.

                    Dass es auch Programmierer gibt, die schlechte Software schreiben, mag sein. Das hat aber nicht direkt etwas mit der Sprache zu tun, die du hier kritisiert hast.

                    Das hat sicher was mit der Sprache zu tun. Java unterstützt die Faulheit des Programmierers.

                    Ich habe "nicht _direkt_" geschrieben. Soll heißen: wenn jemand gewillt ist, dann wird er mit Java vernünftig programmieren können. Und das traue ich dem OP sehr wohl zu - anscheinend im Gegensatz zu dir.

                    Und da du immer noch nicht gesagt hast, ob du jemals an grossen Projekten mitgewirkt hast

                    Aus meiner Sicht habe ich das. Kommt natürlich drauf an, was du unter "groß" verstehst. Aber mit mehr als 10 Entwicklern: ja.
                    Aber das tut auch überhaupt nichts zur Sache. Hör doch mal auf, dich auf meine Person zu konzentrieren, sonst argumentier endlich.

                    Meine Vermutung: Du bist 19, studierst grad informatik und hast grad das erste "Hallo Welt!" in Java geschrieben. Jetzt komme ich und sag dir, das was du gelernt hast, ist scheisse und du kannst nichts anderes. (Lies es richtig, ich gehe davon aus, so kommt es bei dir an)

                    Jetzt versuchst du mit weltfremden "Argumenten", zu widerlegen, was ich in den letzten 25 Jahren an Erfahrung gesammelt hab. Wir sind nicht auf einem Level und somit wirst du mich nie verstehen. Aber wenn du das erste Softwareprojekt mit mehr als 500 Zeilen umgesetzt hast, können wir gerne nochmal plaudern ;)

                    Sollte ich dich falsch eingeschätzt haben, berichtige mich einfach.

                    Hiermit seist du berichtigt.

                    Ich nenne nochmal die Fakten:

                    die Anzahl der Abstraktionsschichten erhöht sich stetig, auch die Anzahl der Programme, die in Hochsprachen geschrieben werden, nimmt prozentual immer weiter zu. Und das ist gut so. Programmier doch weiter nur in Assembler, wenn du der Meinung bist, Programme müssten möglichst wenig Resourcen verbrauchen. Auch wenn du das eh nicht tust, denn auch C++ bringt einen entsprechenden Overhead mit sich. Aber alleine am Marktanteil von Java müsstest du erkennen, wie sinnlos deine Wünsche sind. Und ob dus glaubst oder nicht: auch auf Smartphones, Uhren, etc. wird in Hochsprachen programmiert und auch dort kann man sich aufgrund der immer schnelleren Hardware, der besseren Akkus, etc. immer mehr erlauben. Für mich ist die Diskussion hiermit wahrscheinlich beendet.

            2. Hallo,

              dass die Aussage "Java ist langsam" so populaer geworden ist,  liegt wohl an den Anfangszeiten von Java (<1.5), in denen tatsaechlich teilweise erhebliche Performanceprobleme vorhanden waren.

              Ein weiterer Grund, den man zudem stets von Java-Aversierten zu hoeren bekommt, ist das langsame Swing-UI. Dass es sich hier nur um ein GUI-Widget handelt (welches zugegeben verbesserungsfaehig ist), wird wohlwollend auszen vor gelassen - die Performance von Swing wird dann auf die gesamte Sprache bezogen.

              Ich fand die (wohlbemerkt mitterweile drei Jahre alte) Diskussion auf Stackoverflow zu diesem Thema recht interessant.

              Vor allem der JIT-Compiler (zb Java, .NET) kann in vielen Faellen erhebliche Performancevorteile mit sich bringen, und zwar bzw vor allem dann, wenn ein C++ Programm nicht exakt fuer eine bestimmte Architektur optimiert wurde.

              Und die (einmalige) Ladezeit der Runtime (oder dessen Groesze) als Argument fuer die Langsamkeit der Sprache an sich aufzufuehren, entbehrt natuerlich jeder Diskussion.

              Ich denke die meiszten Argumentationen gegen Java beruhen einfach auf veraltertes Wissen (es war langsam, also ist es schlieszlich immernoch langsam). Zum anderen exisitert gerade beim Thema der Java-Performance eine erheblicher Beissreflex, der sich manchmal nicht groszartig von der Heise-Manier unterscheidet: Mein Linux ist das beste, Gnome ist Mist, Windows ist toll, Java ist langsam, Mono ist scheisze, PHP ist fuer Scriptkiddies etc pp.

              Ich moechte hier keinem auf den Schlips treten, aber mal ehrlich: Wenn uns die letzten Jahre in der Softwareentwicklung eines gelehrt haben sollten, dann genau das, dass jede Sprache ihre Daseinsberechtigung hat.
              Und ob jetzt C++ bei scalaren Typen 1.32 mal schneller ist als Java.. oder Java bei Hash-Funktionen 1.23 mal schneller als C++.. who cares? Es geht schlieszlich um viel mehr als nur um die Geschwindigkeit.

              Grusz,
              Christopher

          2. [latex]Mae  govannen![/latex]

            Java ist langsam (ja, es IST langsamer als Programme in C++, auch wenn Javaprogrammierer immer was anderes behaupten).

            “Knock, knock.”
            “Who’s there?”
            very long pause….
            “Java.”

            :)

            Stur lächeln und winken, Männer!
            Kai

            --
            Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
            in Richtung "Mess up the Web".(suit)
            SelfHTML-Forum-Stylesheet
            1. “Knock, knock.”
              “Who’s there?”
              very long pause….
              “Java.”

              YMMD

              Danke dafür :)

      2. Hallo,

        Dabei kann immer nur ein mehr oder weniger schlechter Kompromiss rauskommen, denn die Bedienphilosophien sind nicht immer die gleichen.
        Da Widerspreche ich. Ein Programm in GTK+ sieht auf allen Plattformen gleich aus und der Code ist praktisch überall gleich, wenn das Konzept entsprechend umgesetzt ist.

        ja, aber das Aussehen und die Bedienung ist immer ein wenig anders als das des nativen GUI.

        Firefox basiert zwar nicht auf GTK+ aber beweisst eindrucksvoll, dass ein Programm unter mehreren Plattformen mit praktisch identischen Code laufen kann.

        Stimmt, und auch da ärgere ich mich -zumindest beim Windows-Firefox- immer wieder bei Kleinigkeiten darüber, dass sie nicht so funktionieren, wie ich es vom Windows-GUI sonst gewöhnt bin. Beispielsweise, dass Tastatur-Shortcuts nicht überall so unterstützt werden wie im reinen Windows-GUI, oder dass die Tab-Implementierung nicht als echtes MDI realisiert ist wie etwa in Opera.

        Javaprogramme laufen auch nur bedingt auf allen Plattformen, weil die Libs nicht zusammenpassen, grad bei Hardwarezugriffen. Abgesehen davon halte ich Java für eine GUI-Anwendung für eine Zumutung.

        ACK.

        Wirt halt benutzt, weil der Programmierer nicht in der Lage ist, C++ zu lernen.

        ;-)

        Ciao,
         Martin

        --
        Er war ein Mann wie ein Baum. Sie nannten ihn Bonsai.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  2. Meine Zielgruppe hat allerdings deutlich gemacht, dass eine rein serverbasierte Software nicht ideal wäre.

    Also wenn ich ein Programm schreibe, ist meine Zielgruppe die Anwender. Die wissen entweder gar nicht, was der Unterschied zwischen Server- und Clientbasiert ist oder es ist ihnen egal, hauptsache es läuft.

    Welche Argumente haben die denn?

    Daher überlege ich nun, eine "richtige" Software mit GUI mit einer der eher klassischen Sprachen zu entwickeln. Da ich mich sowieso neu einlesen und -lernen müsste, hab ich quasi die Qual der Wahl ;-)

    Selbst da kann der Grossteil der Logik auf dem Server stattfinden, ebenso wie bei einer browserbasierten Lösung nicht zwingend ein Server benötigt wird,  solange die benötigte Software (also minimal ein Browser) auf dem Arbeitsplatzrechner installiert ist.

    Ich habe allerdings den Anspruch, die Software für Windows, Linux und Mac zu programmieren. Am liebsten wäre es mir, wenn ich dafür die Software nicht für jede Plattform neu schreiben müsste.

    Es gibt schon lange Möglichkeiten auf mehreren Plattformen gleichzeitig zu entwickeln. Bestes Beispiel ist IMO der Firefox. Ich löse solche Sache mit GTK+, Pidgin basiert da z.B. auch drauf.

    Zudem möchte ich nur die kompilierte Software ausliefern, meine Zielgruppe wäre auch mit dem selber-kompilieren überfordert.
    Sprich: Zip-Datei runter laden, entpacken, ausführen und mit der Software glücklich werden.

    Wo das Problem? Das kannst du mit jeder Programmiersprache machen. Lediglich müssen deine Kunden dann deine Systemvorraussetzungen erfüllen.

    Was ich da aber nicht verstehe, wenn deine Kunden zwar Argumente gegen eine rein Serverbasierte Lösung haben, muss da einiges an Hintergrundwissen da sein. Wenn sie dann aber mit dem Kompilieren überfordert sind, (was eine Installationsroutine automatisieren kann), passt das nicht zusammen. Entweder sind deine Kunden Schwätzer oder deine Kunden sind nicht deine Zielgruppe.

    Ich möchte das erste Release innerhalb der nächsten 6 Monate raus bringen. Klingt ehrgeizig, aber die Software besteht aus etlichen Formularen, einer DB-Anbindung, Bilder herunter skalieren und etwas XML-Austausch mit dem Internet. Also keine Quantenphysik, sollte man meinen. Und ich habe etwa 2-3 Tage die Woche Zeit dafür.

    Und auf jedem Rechner eine eigene Datenbank? Wenn nicht, hast du wieder einen zentralen Server. Ob dann noch die Logik drauf läuft ist echt völlig Latte. Da eh schon ein zentraler Server da sein muss, wäre es völliger Unfug, dem Client ein eigenes Programm aufzuzwingen.

    Abgesehen davon, dass du dir dadurch unnötig Arbeit machst, dauern Updates (grad bei kritischen Fehlern) unnötig lange, was im Extremfall hohe Kosten verursacht durch Ausfälle, Hacker usw.

    Als DB tendiere ich derzeit zu Sqlite, weil es wahrscheinlich zu aufwendig (bzw. lizenztechnisch schwierig) wäre, einen SQL-Server mit der Software mit zu liefern.

    Dann hoffe ich für dich, deine Datensätze halten sich in Grenzen, sonst säuft dir eine sqlite schnell ab, wenn viele Clients gleichzeitig drauf zugreifen.

    Ist C++ noch aktuell oder wird Desktop-Software nur noch in .NET entwickelt? Ein wenig zukunftssicher sollte das Ganze ja auch sein ;-)

    Nur als Anmerkung, Linux ist komplett in C programmiert, Hardwaretreiber auf unterster Ebene in Assembler. Soviel zum Thema, was noch aktuell ist.

    Was mich jetzt aber wieder stutzig macht, du willst Plattformübergreifend sein und schreibst jettz von .NET
    Was willst du jetzt? Dass es nur unter Windows läuft mit .NET oder Plattformübergreifend mit einer Programmiersprache, die nicht von einer Firma erfunden wurde, die andere Beitrebssyteme am liebsten per Gesetzt verbieten lassen würde?

    1. Hallo,

      Welche Argumente haben die denn?

      Ohne unhöflich sein zu wollen, das habe ich in einem anderen Post dieses Threads beantwortet:
      https://forum.selfhtml.org/?t=205957&m=1397189

      Es gibt schon lange Möglichkeiten auf mehreren Plattformen gleichzeitig zu entwickeln. Bestes Beispiel ist IMO der Firefox. Ich löse solche Sache mit GTK+, Pidgin basiert da z.B. auch drauf.

      Stimmt, GTK+ ist auch noch eine Möglichkeit, die ich bislang nicht genannt hatte.

      Zudem möchte ich nur die kompilierte Software ausliefern, meine Zielgruppe wäre auch mit dem selber-kompilieren überfordert.
      Sprich: Zip-Datei runter laden, entpacken, ausführen und mit der Software glücklich werden.

      Wo das Problem? Das kannst du mit jeder Programmiersprache machen. Lediglich müssen deine Kunden dann deine Systemvorraussetzungen erfüllen.

      Ich sagte nicht, dass es ein Problem gibt, ich habe es nur als weitere Anforderung erwähnt.

      Was ich da aber nicht verstehe, wenn deine Kunden zwar Argumente gegen eine rein Serverbasierte Lösung haben, muss da einiges an Hintergrundwissen da sein.

      Nein, die haben wenig bis gar kein Wissen. Aber ich habe ihnen Fragen gestellt und die Antworten dann in meinen Worten zusammen gefasst und hier wieder gegeben.

      Und auf jedem Rechner eine eigene Datenbank?

      In dem Szenario mit dem lokalen Programm bekommt jeder Anwender ein Programm, was keinen dauerhaften Internetzugriff hat. Deswegen auch Sqlite als lokale DB.

      Abgesehen davon, dass du dir dadurch unnötig Arbeit machst, dauern Updates (grad bei kritischen Fehlern) unnötig lange, was im Extremfall hohe Kosten verursacht durch Ausfälle, Hacker usw.

      Das ist mir klar - mir wäre eine serverbasierte Software auch lieber.

      Aber auch da sind die Probleme die gleichen, wenn die Anwender die Software bei ihrem jeweiligen Hoster selber installieren und warten können bzw. müssen.
      Dafür sind die (inneren) Hürden bei vielen Anwendern noch ein Stückchen größer als bei lokal installierter Software, würde ich sagen.
      (Aus der Erfahrung heraus, dass manche selbst mit der Bedienung von Filezilla oder anderen FTP-Programmen überfordert sind.)
      Klar, es gibt die Möglickeit, eines Auto-Updates wie z.B. bei Wordpress.

      Als DB tendiere ich derzeit zu Sqlite, weil es wahrscheinlich zu aufwendig (bzw. lizenztechnisch schwierig) wäre, einen SQL-Server mit der Software mit zu liefern.

      Dann hoffe ich für dich, deine Datensätze halten sich in Grenzen, sonst säuft dir eine sqlite schnell ab, wenn viele Clients gleichzeitig drauf zugreifen.

      Wie gesagt, Sqlite wäre nur für das lokal installierte Programm gedacht.

      Ist C++ noch aktuell oder wird Desktop-Software nur noch in .NET entwickelt? Ein wenig zukunftssicher sollte das Ganze ja auch sein ;-)

      Nur als Anmerkung, Linux ist komplett in C programmiert, Hardwaretreiber auf unterster Ebene in Assembler. Soviel zum Thema, was noch aktuell ist.

      Das ist mir schon klar. Ich dachte bei dem Satz auch eher an Anwendungs-Programme und meine Weiterbildung als Entwickler.

      1. Ohne unhöflich sein zu wollen, das habe ich in einem anderen Post dieses Threads beantwortet:
        https://forum.selfhtml.org/?t=205957&m=1397189

        Hab ich gelesen, da sehe ich aber keine Argumente sondern nur Unwissen, dass problemlos mit den entsprechenden Argumenten deinerseits ausgeräumt werden kann.
        Wenn du deinen Kunden mit den "Argumenten", die du aufzählst, alleine lässt, muss ich ehrlich an deiner Kompetenz zweifeln. Nimm das bitte nicht als Beleidigung, aber gerade die Beratung im Vorfeld zeichnet einen Projektmanager aus.
        Wenn das schon nicht passt, und das zeigen die Argumente deiner Kunden, wird das Projekt nie so erfolgreich sein, wie es sein könnte.

        1. Hab ich gelesen, da sehe ich aber keine Argumente sondern nur Unwissen, dass problemlos mit den entsprechenden Argumenten deinerseits ausgeräumt werden kann.
          Wenn du deinen Kunden mit den "Argumenten", die du aufzählst, alleine lässt, muss ich ehrlich an deiner Kompetenz zweifeln. Nimm das bitte nicht als Beleidigung, aber gerade die Beratung im Vorfeld zeichnet einen Projektmanager aus.
          Wenn das schon nicht passt, und das zeigen die Argumente deiner Kunden, wird das Projekt nie so erfolgreich sein, wie es sein könnte.

          Was soll das eigentlich? Da du seit deinem ersten Post in diesem Thread mir nur mit Polemik begegnest und mich permanent falsch verstehst bzw die Worte im Mund rum drehst, kann ich dich einfach nicht ernst nehmen.

          Dir sollte schon klar sein, dass ich hier nicht alles schreibe. Ich habe keine Zeit, einen Roman zu schreiben und den würde hier auch niemand lesen wollen.

          Nochmal: ich habe keine Argumente geschrieben, das waren die stark verkürzten zusammengefassten Antworten.
          Und ich evaluiere derzeit verschiedene Möglichkeiten, entschieden ist noch gar nix.
          Von "alleine lassen" kann außerdem keine Rede sein. Woher nimmst du deine wilden Annahmen? Interpretiere bitte nicht mehr in meine Worte rein, als drinsteht ...

          1. Dir sollte schon klar sein, dass ich hier nicht alles schreibe. Ich habe keine Zeit, einen Roman zu schreiben und den würde hier auch niemand lesen wollen.

            Dir sollte schon klar sein, dass Antworten nur aufgrund deiner Angaben entstehen. Wenn du etwas verschweigst, musst du damit leben, dass die Antworten nicht so ausfallen, wie du es dir vorstellst.

            Was ich davon zu halten habe, dass du dich beschwerst, wenn ich dich falsch verstehe, du aber gleichzeitig sagt, du schreibst auch nicht alles, ist ne andere Sache. Wohl mein Fehler, dass ich nicht hellsehen kann.

            Da du meine Meinung nicht hören willst, erspar ich sie dir ab sofort. Tut mir leid, dass ich ungefragt helfen wollte. Wäre nett, wenn du mir diesen Fehltritt verzeihen würdest.

            PS: Ich bin halt der Typ, der versucht, alle relevanten Infos zu posten, wenn ich hilfe will, wusste ja nicht, dass dir  sowas missfällt.

    1. ?

    Ich bin kein großer Fan von plattformunabhängigen GUIs, aber hey. Adobe AIR könnte was sein, was Du eventuell willst. Schnelle Entwicklung, weil Webtechniken, von denen ich ausgehe, dass die Dir schon bekannt sind, plattformübergreifend und man braucht wohl nichts zwangsläufig teure Software von Adobe zur Entwicklung.

    1. Ich bin kein großer Fan von plattformunabhängigen GUIs, aber hey. Adobe AIR könnte was sein, was Du eventuell willst. Schnelle Entwicklung, weil Webtechniken, von denen ich ausgehe, dass die Dir schon bekannt sind, plattformübergreifend und man braucht wohl nichts zwangsläufig teure Software von Adobe zur Entwicklung.

      Vielen Dank.
      Air hatte ich bislang immer ein wenig argwöhnisch betrachtet, zumal (lt. Wikipedia) ab Version 2.7.0 wohl auch die Linux-Unterstützung gekippt wurde. Aber das kann sich ja auch wieder ändern.

      1. Adobe AIR könnte was sein, was Du eventuell willst. Schnelle Entwicklung, weil Webtechniken, von denen ich ausgehe, dass die Dir schon bekannt sind, plattformübergreifend und man braucht wohl nichts zwangsläufig teure Software von Adobe zur Entwicklung.

        AIR ist erstmal die nackte Runtime, mit der Standard-API kann man noch kein GUI machen. Die Flex SDK, eine umfangreiche UI-Bibliothek, ist Open-Source. Enhalten sind auch Compiler für ActionScript und MXML. Aber ohne gute IDE kann man das meines Wissens nicht vernünftig programmieren. Als ausgereifte Alternative zu Flash Builder fällt mir noch FDT von Powerflasher ein, aber diese ist auch recht teuer.

        Klar kann man hier auf kostenlose und offene Lösungen setzen, aber ich vermute, die Produktivität leidet darunter, denn ich kenne keinen AS-/Flex-Programmierer, der z.B. auf FlashDevelop setzt.

        Air hatte ich bislang immer ein wenig argwöhnisch betrachtet, zumal (lt. Wikipedia) ab Version 2.7.0 wohl auch die Linux-Unterstützung gekippt wurde. Aber das kann sich ja auch wieder ändern.

        Davon würde ich nicht ausgehen. Allem Anschein nach hat sich Adobe von Linux verabschiedet. Damit hat AIR an Attraktivität verloren. Adobe kümmert sich lieber um Mobilbetriebssysteme wie iOS und Android. Das wiederum bietet Vorteile, aber ist für klassische Desktop-Anwendungen nutzlos.

        Wir haben eine große AIR-Anwendung geschrieben und diese zu skalieren hat einige Schwierigkeiten mit sich gebracht. Flex richtig einzusetzen, sodass es einem letztlich keine Probleme bereitet, erfordert viel Erfahrung. Im Nachhinein hätten wir wohl eher .NET gewählt, da Windows die vorrangige Zielplattform ist.

        Mathias

        1. Vielen Dank für diese wertvollen Infos direkt aus der Praxis!

          Grüße
          Martin33

  3. Hallo,

    Schon mal dran gedacht es in JavaScript zu schreiben? Mit Webkit, KHTML und der IE-Engine hast du auf jeder Plattform die Möglichkeit so eine App auszuliefern.

    Jeena

    1. Hallo,

      Vielen Dank, schaue ich mir mal genauer an.