O'Brien: C++, C#, Visual C#, Java, Tcl/Tk, ...?

0 55

C++, C#, Visual C#, Java, Tcl/Tk, ...?

O'Brien
  • programmiertechnik
  1. 0
    Biesterfeld
    1. 0
      O'Brien
  2. 1
    Der Martin
    1. 0
      Biesterfeld
      1. 0
        Der Martin
        1. 0
          Biesterfeld
          1. 0
            Der Martin
            1. 0
              Biesterfeld
              1. 0
                Der Martin
                1. 0
                  Daniel Thoma
                  1. 0
                    Der Martin
                2. 0
                  Tom
          2. 0
            OhneName
            1. 0
              Biesterfeld
              1. 0
                OhneName
                1. 0
                  O'Brien
              2. 0
                O'Brien
            2. 0
              O'Brien
        2. 0
          O'Brien
      2. 0
        O'Brien
        1. 0
          Biesterfeld
    2. 0
      O'Brien
      1. 0
        Der Martin
        1. 0
          O'Brien
        2. 0
          Tom
          1. 0
            Der Martin
            1. 0
              O'Brien
              1. 0
                Tom
            2. 0
              Tom
              1. 0
                O'Brien
      2. 0
        at
        1. 0
          O'Brien
  3. 0
    O'Brien
    1. 2
      Vinzenz Mai
      1. 0
        Tom
        1. 0
          Vinzenz Mai
      2. 0
        Chris©
        1. 0
          at
          1. 0

            Tutorials zu C/C++ oder Vollzeitkurse

            Chris©
            1. 0
              at
              1. 0
                Tom
      3. 0

        WARNUNG

        Tom
        • zur info
        1. 0
          O'Brien
          1. 0
            Tom
            1. 1

              Entwarnung

              Vinzenz Mai
              1. 1
                Tom
                1. 0
                  Der Martin
                2. 0
                  Vinzenz Mai
                  1. 0
                    Tom
  4. 0
    O'Brien
    1. 0
      OhneName
      1. 0
        O'Brien
        1. 0
          OhneName
          1. 0
            O'Brien

Hi Forum,

welche Programmiersprache soll ich nehmen? (OK, das war jetzt absichtlich plakativ unsinnig gefragt, daher bitte weiterlesen. Danke. ;)

In etwa einem halben bis 3/4 Jahr werde ich ein kleines PC-Anwendungsprogramm schreiben müssen, mit dem unsere Kunden über eine bisher noch nicht definierte Schnittstelle unsere Geräte parametrieren können. Um nicht völlig unbeleckt dazustehen, wenn es denn so weit ist, möchte ich mir jetzt (privat) bereits Grundkenntnisse der Anwendungsprogrammierung aneignen. Ich möchte meine Einarbeitung in das Thema jedoch möglichst auf die von mir benötigten Kenntnisse beschränken, da die Programmierung nicht meine Hauptaufgabe (geschweige denn Kernkompetenz), sondern eher ein Nebenprodukt meiner Tätigkeit ist.

Daher meine Frage, die mit Sicherheit nicht eindeutig zu beantworten ist, da noch zu viele Parameter unbekannt sind. Was mir jedoch weiterhülfe:

  • einige auf Erfahrungen basierende Hinweise, die mir für weitere Recherchen dienlich sein können
  • Punkte, die auf jeden Fall noch zu beachten sind und die ich bisher nicht berücksichtigt habe
  • empfehlenswerte Seiten/Foren/Listen/Groups, wo ich weiterführende Hilfe bekommen könnte

Was ich bislang an Anforderungen weiß, will ich hier mal kurz skizzieren:

  • Anwendungssoftware mit GUI
  • lauffähig unter Windows, evt. Linux (was im industriellen Umfeld, sprich beim Laptop auf der Industrieanlagen-Baustelle, AFAIK aber eher ungewöhnlich ist); BTW: PocketPCs sind vermutlich auch mittlerweile zu vernachlässigen, oder?
  • einfaches Ansprechen von HW-Schnittstellen (USB, seriell)
  • einfaches Erstellen der GUI (vorgefertigte Module, Klassen, ...)
  • Endprodukt unkompliziert vom Kunden installierbar (im Idealfall gar keine Installation, sondern direkt startbare Programmdatei)
  • SDK möglichst kostenfrei verfügbar, da ich für meine private Vorarbeit möglichst keine Unsummen investieren möchte (und für unsere Firma die Anwendungsprogrammierung nur ein Nebenprodukt ist, um dem Kunden die Arbeit zu erleichtern - was zugegebenermaßen auch einen Wettbewerbsvorteil sein kann, den ich aber (noch) nicht genau beziffern kann)

Irgendwie ist ja momentan C# unter .NET ganz groß angesagt, aber ist dies begründet oder nur ein Hype?

Wie immer gilt: Ich bin dankbar für jeden Hinweis, der mir hilft, selbst gezielt weiterzudenken und zu forschen.

Schönen Sonntag noch!
O'Brien

--
Frank und Buster: "Heya, wir sind hier um zu fragen!"
  1. Hej,

    ich würde Dir eigentlich zu Java raten:

    * Ich fand dass es relativ leicht zu erlernen war, was allerdings nicht heisst, dass Du nach einem halben Jahr Java-Profi sein wirst. Viel mehr wirst Du in der Zeit ein solides Fundament gelegt haben.

    * Für Java existiert eine hervorragende Infrastruktur. Sei es bezogen auf die Verfügbarkeit von Entwicklungssoftware, das Vorhandensein einer äußerst umfassenden Programierbiebliothek oder die Fülle an kostenlosen Lernmaterialien.

    * Java ist plattformunabhängig und entwickelte Software lässt sich direkt auf jedem System starten, wo die Java-Laufzeit installiert ist. Zwar ist C# in diesem Sinne ebenfalls plattformunabhängig, da es auch auf jedem System ausführbar ist wo .NET installiert ist, allerdings wurde .NET nur für Windows entwickelt. Das Mono-Projekt versucht diesen Misstand zwar für Unixe zu beheben, allerdings hör ich immer wieder aus verschiedenen Richtungen, dass man das nicht mit der Plattformunabhängigkeit von Java vergleichen könne.

    * Java ist nicht maschinennah. Wenn dies eine zentrale Anforderung ist, bleiben dir eigentlich nur C++/C. Es gibt alerdings auch aus Java heraus die Möglichkeit native Programme und Bibliotheken anzusprechen. Teilweise gibt es wohl auch fertige Drittbibliotheken die bsp. das Ansprechen von USB-Schnittstellen erleichtern.

    * Für vieles für das du bei anderen Programiersprachen tief in die Tasche greifen müsstest (z.B. denke ich da an die Lizenzgebühren der kommerziellen Nutzung von QT) fallen bei Java schlicht weg.

    Als einen Einstieg empfehle ich Kapitel 1 Java ist auch eine Insel bzw. Wikipedia#Java

    Zuletzt, Du hast Dir ein sehr ambitioniertes Ziel gesetzt. Ich wünsche Dir, dass Du es schaffst dies auch so umzusetzen wie Du es vorhast.

    Beste Grüße
    Biesterfeld

    --
    Art.1: Et es wie et es
    Art.2: Et kütt wie et kütt
    Art.3: Et hätt noch immer jot jejange
    Das Kölsche Grundgesetz
    1. Hi Biesterfeld,

      Zuletzt, Du hast Dir ein sehr ambitioniertes Ziel gesetzt. Ich wünsche Dir, dass Du es schaffst dies auch so umzusetzen wie Du es vorhast.

      es ist ja nicht so, dass ich noch nie programmiert hätte, schließlich habe ich schon Webseiten mit HTML gemacht.

      OK, Scherz beiseite, ich habe mit BASIC, Pascal, C++, Tcl/Tk, PHP jeweils mehr oder weniger Erfahrung. Diese bezieht sich zwar mehr auf die grundsätzlichen Vorgehensweisen beim Programmieren, aber das Wissen darum, wie man prinzipiell vorgeht und wie man sich einarbeitet, halte ich durchaus für nicht unwichtig. Mit C++ habe ich beispielsweise lediglich 1 Semester Uni-Erfahrung ohne GUI-Programmierung, darum habe ich auch C++ noch einmal in Frage gestellt.

      Schönen Sonntag noch!
      O'Brien

      --
      Frank und Buster: "Heya, wir sind hier um zu helfen!"
  2. n'Abend,

    welche Programmiersprache soll ich nehmen?

    Assembler natürlich! ;-)

    In etwa einem halben bis 3/4 Jahr werde ich ein kleines PC-Anwendungsprogramm schreiben müssen, mit dem unsere Kunden über eine bisher noch nicht definierte Schnittstelle unsere Geräte parametrieren können.

    Also GUI und irgendeine Schnittstelle zur Hardware.

    Was ich bislang an Anforderungen weiß, will ich hier mal kurz skizzieren:

    • Anwendungssoftware mit GUI
    • lauffähig unter Windows, evt. Linux (was im industriellen Umfeld, sprich beim Laptop auf der Industrieanlagen-Baustelle, AFAIK aber eher ungewöhnlich ist); BTW: PocketPCs sind vermutlich auch mittlerweile zu vernachlässigen, oder?

    Für mobile Anwendungen sind sie sicher nicht zu vernachlässigen; für industrielle Anwendungen wohl schon.

    • einfaches Ansprechen von HW-Schnittstellen (USB, seriell)

    USB ist generell sehr anspruchsvoll, wenn man nicht Geräte hat, deren Treiber beispielsweise eine herkömmliche serielle Schnittstelle emuliert. Die sind wiederum relativ einfach zu handhaben; man kann sie im Wesentlichen wie eine Datei ansprechen.

    • einfaches Erstellen der GUI (vorgefertigte Module, Klassen, ...)

    Spricht für irgendein Visual-XXX-G'lump.

    • Endprodukt unkompliziert vom Kunden installierbar (im Idealfall gar keine Installation, sondern direkt startbare Programmdatei)

    Damit fällt meiner Ansicht nach Java schon mal raus; da muss der Kunde erst noch ein geeignetes JRE installieren. Für mich würden dann auch .NET-Anwendungen aus dem Raster fallen, denn auch da muss der Anwender/Kunde von sich aus zunächst das .NET-Framework installieren.

    • SDK möglichst kostenfrei verfügbar, da ich für meine private Vorarbeit möglichst keine Unsummen investieren möchte (und für unsere Firma die Anwendungsprogrammierung nur ein Nebenprodukt ist, um dem Kunden die Arbeit zu erleichtern - was zugegebenermaßen auch einen Wettbewerbsvorteil sein kann, den ich aber (noch) nicht genau beziffern kann)

    Es sollte doch möglich sein, dich mit deinem Arbeitgeber dahingehend zu einigen, dass die Firma die Entwicklungsumgebung anschafft, du sie aber zunächst ein halbes Jahr auf deinem privaten PC nutzen darfst - wenn du schon bereit bist, dich in deiner Freizeit einzuarbeiten!

    Irgendwie ist ja momentan C# unter .NET ganz groß angesagt, aber ist dies begründet oder nur ein Hype?

    Weiß ich nicht; ich stehe den .NET-Geschichten sehr kritisch gegenüber, weil sie ein riesiges Framework (Bibliothek) als Voraussetzung brauchen, wovon die konkrete Anwendung aber meist nur einen winzigen Bruchteil nutzt.

    Wie immer gilt: Ich bin dankbar für jeden Hinweis, der mir hilft, selbst gezielt weiterzudenken und zu forschen.

    Ich würde dir zu Visual C++ raten. Oder einer beliebigen anderen C++-IDE, aber da weiß ich nicht, wie dann der Entwurf von GUI-Elementen ist.

    Pfrohe Pfingsten,
     Martin

    --
    Solange der Nagellack nicht trocken ist,
    ist eine Frau praktisch wehrlos.
      (Burt Reynolds, US-Schauspieler)
    1. Hej,

      • Endprodukt unkompliziert vom Kunden installierbar (im Idealfall gar keine Installation, sondern direkt startbare Programmdatei)

      Damit fällt meiner Ansicht nach Java schon mal raus; da muss der Kunde erst noch ein geeignetes JRE installieren.

      Das sehe ich anders. 1.) kann in den meisten Fällen davon ausgegangen werden, dass Java installiert ist, 2.) selbst wenn nicht, muss eben das Runtime (ich glaube 12 MB) heruntergeladen und installiert werden. Die eigentliche Applikation muss dafür selber nicht installiert werden. Ein Doppelklick auf die Datei (oder im Falle von WebStart, ein Klick auf einen URL) und die Software läuft. Die Vorteile die Java hingegen gegenüber z.B. C++ bietet überwiegen so dramatisch, dass ich das installieren einer JRE durchaus für den Kunden für zumutbar erachte. Außerdem besteht auch bei Java immer als letzter Schritt die Möglichkeit dem Endanwender Erleichterungen zu schaffen, wie z.B. mittels Tools wie Excelsior Jet oder InstallAnywhere.

      • SDK möglichst kostenfrei verfügbar, [...]
        Es sollte doch möglich sein, dich mit deinem Arbeitgeber dahingehend zu einigen, dass die Firma die Entwicklungsumgebung anschafft, du sie aber zunächst ein halbes Jahr auf deinem privaten PC nutzen darfst - wenn du schon bereit bist, dich in deiner Freizeit einzuarbeiten!

      Gute(TM) Entwicklungsumgebungen sind kostenfrei und zudem nicht mit einem SDK zu verwechseln.

      Weiß ich nicht; ich stehe den .NET-Geschichten sehr kritisch gegenüber, weil sie ein riesiges Framework (Bibliothek) als Voraussetzung brauchen, wovon die konkrete Anwendung aber meist nur einen winzigen Bruchteil nutzt.

      Welchen Nachteil siehst du denn?

      Beste Grüße
      Biesterfeld

      --
      Art.1: Et es wie et es
      Art.2: Et kütt wie et kütt
      Art.3: Et hätt noch immer jot jejange
      Das Kölsche Grundgesetz
      1. Hallo,

        Damit fällt meiner Ansicht nach Java schon mal raus; da muss der Kunde erst noch ein geeignetes JRE installieren.
        Das sehe ich anders. 1.) kann in den meisten Fällen davon ausgegangen werden, dass Java installiert ist, ...

        ich wüsste nicht, dass in den letzten fünf Jahren schon mal "zufällig" auf einem der Rechner, mit denen ich zu tun hatte, Java installiert war. Nur einer meiner Bekannten hat sich mal eine Java-Runtime installiert, weil er unbedingt eine bestimmte Java-Anwendung nutzen wollte.

        Die Vorteile die Java hingegen gegenüber z.B. C++ bietet überwiegen so dramatisch

        Die da wären ...?

        • SDK möglichst kostenfrei verfügbar, [...]
          Gute(TM) Entwicklungsumgebungen sind kostenfrei und zudem nicht mit einem SDK zu verwechseln.

        Ich habe aus O'Briens Frage automatisch auf die IDE geschlossen. Denn erstens ist das SDK (also die Dokumentation der API des Zielsystems und -im Falle von C- die notwendigen Headerdateien) zumindest in kommerziellen IDEs in der Regel enthalten, zweitens ist gerade das meist kostenlos, wenn man es einzeln sucht.
        Oder wir verstehen unter "SDK" etwas verschiedenes.

        Weiß ich nicht; ich stehe den .NET-Geschichten sehr kritisch gegenüber, weil sie ein riesiges Framework (Bibliothek) als Voraussetzung brauchen, wovon die konkrete Anwendung aber meist nur einen winzigen Bruchteil nutzt.
        Welchen Nachteil siehst du denn?

        Für den Programmierer: Er muss wegen einer Handvoll Funktionen massenhaft Doku studieren, da sich in einem so umfangreichen Framework einzelne Funktionen oder Gruppen von Funktionen meist nicht isoliert betrachten lassen, sondern intensiv mit dem Rest der Bibliothek verknüpft sind. In der Zeit, die der Programmierer mit Lesen der Originaldoku, Lesen von Sekundärquellen und Ausprobieren verbringt, hätte er das bisschen, was er eigentlich brauchte, i.d.R. schon längst selbst geschrieben. Dann hätte er außerdem den Vorteil, dass sein Code für ihn durchschaubarer und leichter zu pflegen ist, weil er weiß, was er letzten Sommer getan hat.
        Hätte ich für meine Windows-Applikationen irgendein Quasi-Standard-Framework wie z.B. MFC oder .NET benutzt, hätte ich schätzungsweise die drei- bis vierfache Zeit gebraucht, und das Endprudukt hätte ein Vielfaches an Code-Größe, und ich wüsste zum Teil gar nicht, was meine Programme in Wirklichkeit tun.

        Für den Anwender: Eigentlich nur, dass er gezwungen ist, sich sein System mit mehreren 100MB Ballast zu verunreinigen.

        Schönes Wochenende noch,
         Martin

        --
        Lieber Blödeleien als blöde Laien.
        1. Hej,

          Die Vorteile die Java hingegen gegenüber z.B. C++ bietet überwiegen so dramatisch

          Die da wären ...?

          * Durch den Wegfall der Pointerarithmetik und einer manuellen Speicherverwaltung fallen viele Probleme schlicht weg. Der Code wird zudem besser wartbar und lässt sich auch einfacher entwickeln.
          * Die Plattformunabhängigkeit.
          * Das Vorhandensein einer umfassenden und zudem kostenlosen Klassenbibliothek.
          * Java ist leichter zu lernen.

          Die Nachteile sind:

          * Eine mangelnde Maschinennähe, die sich aber durchaus auch erreichen lässt, wen man den gleichen Aufwand betreibt wie bspw. unter C/C++.
          * Die Performanceschwäche. Allerdings muss man sich gerade bei dem letzten Punkt fragen ob dieser wirklich kritisch ist, wenn z.B. der geschwindigkeitsbestimmende Schritt die Nutzerinteraktion an einer GUI ist, oder wir von Unterschieden im ms-Bereich sprechen. Ferner wurde auch schon gezeigt, dass sich durch Just-In-Time Compiler Performanceverbesserungen gegenüber nativ kompilierten Code erreichen lassen.

          Oder wir verstehen unter "SDK" etwas verschiedenes.

          Naja, die Grenze ist wie ich finde schwammig:

          SDK = Software Development Kit: Kernbibliotheken, Compiler, ggf. Laufzeitumgebung, Dokumentation

          IDE = Integrated Development Kit: Eine Software die die Funktionalität des SDK komfortabel verfügbar macht.

          Weiß ich nicht; ich stehe den .NET-Geschichten sehr kritisch gegenüber [...]
          Welchen Nachteil siehst du denn?

          Für den Programmierer: Er muss wegen einer Handvoll Funktionen massenhaft Doku studieren, da sich in einem so umfangreichen Framework einzelne Funktionen oder Gruppen von Funktionen meist nicht isoliert betrachten lassen, sondern intensiv mit dem Rest der Bibliothek verknüpft sind. In der Zeit, die der Programmierer mit Lesen der Originaldoku, Lesen von Sekundärquellen und Ausprobieren verbringt, hätte er das bisschen, was er eigentlich brauchte, i.d.R. schon längst selbst geschrieben.

          Das mag auf einen erfahrenen Programmierer zutreffen. Gerade bei einem Anfänger seh ich das anders: 1.) Muss ich nicht wissen wie eine Funktion im Detail arbeitet, mich interessiert nur, was rein und raus geht, um den Rest haben sich bereits zuvor andere schlaue Menschen Gedanken gemacht. 2.) Ist diese Arbeit, sich nämlich mit einer Klassenbibliothek auseinanderzusetzen eine Investition, die sich sehr schnell bezahlt macht.

          Dann hätte er außerdem den Vorteil, dass sein Code für ihn durchschaubarer und leichter zu pflegen ist, weil er weiß, was er letzten Sommer getan hat.

          Und das wird dadurch erleichtert, dass ich meinen Code durch immer wiederkehrende Komponenten unnötig und selbständig aufblähe, als auf eine Sammlung bereits fertiger und getesteter Komponenten zurückzugreifen?

          Hätte ich für meine Windows-Applikationen irgendein Quasi-Standard-Framework wie z.B. MFC oder .NET benutzt, hätte ich schätzungsweise die drei- bis vierfache Zeit gebraucht,

          Glaub ich nicht.

          und das Endprudukt hätte ein Vielfaches an Code-Größe,

          Das Gegenteil ist der Fall. Die Standardbibliotheken der Laufzeit darfst du ja nicht mitzählen, die sind ja sowieso schon vorhanden.

          und ich wüsste zum Teil gar nicht, was meine Programme in Wirklichkeit tun.

          Das was du programmiert hast, bzw. was in der Doku der von dir verwendeten Fremdbibliotheken steht.

          Für den Anwender: Eigentlich nur, dass er gezwungen ist, sich sein System mit mehreren 100MB Ballast zu verunreinigen.

          Dass Microsoft hier mal wieder weit übers Ziel geschossen ist, seh ich genauso. Das JRE mit 15-23 MB je nach Zielsystem halte ich jedoch für absolut zumutbar.

          Beste Grüße
          Biesterfeld

          --
          Art.1: Et es wie et es
          Art.2: Et kütt wie et kütt
          Art.3: Et hätt noch immer jot jejange
          Das Kölsche Grundgesetz
          1. Hallöchen,

            Die Vorteile die Java hingegen gegenüber z.B. C++ bietet überwiegen so dramatisch
            Die da wären ...?
            * Durch den Wegfall der Pointerarithmetik und einer manuellen Speicherverwaltung fallen viele Probleme schlicht weg.

            Hmm. Was für Probleme? Ich sehe darin, dass ich in C vieles "von Hand" machen muss, eher einen Vorteil.

            Der Code wird zudem besser wartbar und lässt sich auch einfacher entwickeln.

            Das lege ich mal in die Schublade "Gewohnheit".

            * Die Plattformunabhängigkeit.

            Diesen Vorteil lasse ich gelten. Er geht aber, wie du selbst einräumst, auch mit einem Performancenachteil einher, da der Code niemals so optimal auf das Zielsystem abgestimmt sein kann wie Native Code.

            * Das Vorhandensein einer umfassenden und zudem kostenlosen Klassenbibliothek.

            Darin sehe *ich* keinen Vorteil, wie schon dargestellt.

            * Java ist leichter zu lernen.

            Kann ich nicht beurteilen, ich kenne Java nur vom flüchtigen Drüberschauen. Aber ich bin der Ansicht, wenn man grundlegende Programmierkonzepte mal verstanden hat, ist auch C sehr einfach zu lernen.

            * Die Performanceschwäche. Allerdings muss man sich gerade bei dem letzten Punkt fragen ob dieser wirklich kritisch ist, wenn z.B. der geschwindigkeitsbestimmende Schritt die Nutzerinteraktion an einer GUI ist, oder wir von Unterschieden im ms-Bereich sprechen.

            Nun ja, ich denke beim Begriff "Performance" nicht nur an die vom Benutzer gefühlten Antwortzeiten, sondern auch an technische Aspekte wie CPU- und Speicherbedarf.

            Oder wir verstehen unter "SDK" etwas verschiedenes.
            Naja, die Grenze ist wie ich finde schwammig:
            SDK = Software Development Kit: Kernbibliotheken, Compiler, ggf. Laufzeitumgebung, Dokumentation

            Aha. Gerade den Compiler, allgemein: die Werkzeuge, habe ich bisher immer *nicht* zum SDK gezählt. Das SDK umfasst für mich wirklich nur die Dateien, die ich brauche, um mit einer gegebenen IDE oder einem gegebenen Compiler (meinetwegen auch direkt kommandozeilenbasiert) Anwendungen für ein konkretes Zielsystem entwickeln zu können. Deswegen geht mir auch deine Formulierung ...

            IDE = Integrated Development Kit: Eine Software die die Funktionalität des SDK komfortabel verfügbar macht.

            ... irgendwie quer, denn nach meinem Verständnis hat ein SDK keine Funktionalität, sondern es ist nur die Menge aller Informationen, die Programmierer und Compiler zum Erstellen des Codes brauchen.

            1.) Muss ich nicht wissen wie eine Funktion im Detail arbeitet, mich interessiert nur, was rein und raus geht, um den Rest haben sich bereits zuvor andere schlaue Menschen Gedanken gemacht.

            Einverstanden, ja. Nur ist meine Erfahrung, dass die meisten großen Bibliotheken und Frameworks eben nicht so modular aufgebaut sind, wie ich es gern hätte (und zudem sind sie oft sehr schlecht dokumentiert). Ich muss z.B. bei MFC das Gesamtpaket nutzen (und verstehen) und kann mir nicht einzelne Punkte konkret herausgreifen, die ich nutzen möchte.

            2.) Ist diese Arbeit, sich nämlich mit einer Klassenbibliothek auseinanderzusetzen eine Investition, die sich sehr schnell bezahlt macht.

            Das sehe ich nicht so; der beste Code ist immer der, den man selbst geschrieben hat, weil:

            Dann hätte er außerdem den Vorteil, dass sein Code für ihn durchschaubarer und leichter zu pflegen ist, weil er weiß, was er letzten Sommer getan hat.

            Und das wird dadurch erleichtert, dass ich meinen Code durch immer wiederkehrende Komponenten unnötig und selbständig aufblähe, als auf eine Sammlung bereits fertiger und getesteter Komponenten zurückzugreifen?

            Ja. Das schließt ja nicht aus, dass ich selbstgeschriebene Bausteine immer wieder verwende. Aber ich vermeide es immer, Fremdcode in meinen Projekten zu verwenden (außer es geht wirklich nicht anders), weil nach meiner Erfahrung der Einarbeitungsaufwand in keinem Verhältnis zum Nutzen steht.

            Hätte ich für meine Windows-Applikationen irgendein Quasi-Standard-Framework wie z.B. MFC oder .NET benutzt, hätte ich schätzungsweise die drei- bis vierfache Zeit gebraucht,
            Glaub ich nicht.

            Musst du auch nicht. Die Tatsache an sich ist ein Erfahrungswert, der Faktor variiert jedoch mit der Komplexität des Projekts.

            und das Endprudukt hätte ein Vielfaches an Code-Größe,
            Das Gegenteil ist der Fall. Die Standardbibliotheken der Laufzeit darfst du ja nicht mitzählen, die sind ja sowieso schon vorhanden.

            Natürlich muss ich die mitzählen! Okay, bei Java mit einem von der Anwendung getrennten JRE ist es IMHO statthaft, das Environment herauszurechnen, denn da ist das vom Design her so vorgesehen.

            Die MFC-Bibliothek oder die VB-Runtime o.ä. kann ich aber nicht getrennt betrachten, denn sie werden beim Erstellen der Anwendung ein integraler Bestandteil davon. Auch wenn ich sie nicht statisch zum Programmcode linke, sondern dynamisch (als DLL), muss ich sie immer noch mit dem fertigen Projekt mitliefern, weil das Programm ohne nicht lauffähig ist. Und nein, ich möchte mich nicht darauf verlassen, dass der Anwender sich diese Bibliotheken selbst besorgt. Erstens finde ich das (aus Anwendersicht betrachtet) eine Frechheit, wenn das Programm nicht alles mitbringt, was für den Betrieb nötig ist, zweitens sind Versionskonflikte vorprogrammiert, wenn ich diese Aufgabe dem Anwender überlasse.

            und ich wüsste zum Teil gar nicht, was meine Programme in Wirklichkeit tun.
            Das was du programmiert hast, bzw. was in der Doku der von dir verwendeten Fremdbibliotheken steht.

            Genau. Und was diese Fremdbibliotheken so alles tun, ist in den meisten Fällen eben *nicht* sauber dokumentiert. Und das würde mich als Programmierer beunruhigen.

            Dass Microsoft hier mal wieder weit übers Ziel geschossen ist, seh ich genauso. Das JRE mit 15-23 MB je nach Zielsystem halte ich jedoch für absolut zumutbar.

            Ja, zugegeben, das hält sich in vertretbaren Grenzen.

            Ciao,
             Martin

            --
            Success should be measured not so much by the position that one has reached in life,
            but by the obstacles one has overcome while trying to succeed.
            1. Hej,

              * Durch den Wegfall der Pointerarithmetik und einer manuellen Speicherverwaltung fallen viele Probleme schlicht weg.

              Hmm. Was für Probleme? Ich sehe darin, dass ich in C vieles "von Hand" machen muss, eher einen Vorteil.

              So langsam glaube ich, dass du das mit der GUI-Programmierung in Assembler ernst gemeint haben könntest ,-) Klar, wenn ich meine Pointer und Speicherverwaltung im Griff habe, hat es zumindest keinen Nachteil gegenüber einer Laufzeit, die mir die Arbeit abnimmt. Wenn ...

              * Die Plattformunabhängigkeit.

              Diesen Vorteil lasse ich gelten. Er geht aber, wie du selbst einräumst, auch mit einem Performancenachteil einher, da der Code niemals so optimal auf das Zielsystem abgestimmt sein kann wie Native Code.

              Gerade das stimmt eben so nicht. Durch die neue Generation der JIT-Compiler kann man teilweise noch Performance zur Laufzeit herauskitzeln, was bei statisch kompiliertem Code eben so nicht möglich ist. Allerdings hängt das auch stark von der Art der Software ab. Der Performance-Nachteil ergibt sich eben aus dem Overhead der durch die VM und z.B. die OOP erzeugt wird.

              Nur ist meine Erfahrung, dass die meisten großen Bibliotheken und Frameworks eben nicht so modular aufgebaut sind, wie ich es gern hätte (und zudem sind sie oft sehr schlecht dokumentiert).

              Aber ich vermeide es immer, Fremdcode in meinen Projekten zu verwenden (außer es geht wirklich nicht anders), weil nach meiner Erfahrung der Einarbeitungsaufwand in keinem Verhältnis zum Nutzen steht.

              Genau. Und was diese Fremdbibliotheken so alles tun, ist in den meisten Fällen eben *nicht* sauber dokumentiert.

              Schau dir wenn du magst die Java-API mal an, du wirst sie lieben.

              Beste Grüße
              Biesterfeld

              --
              Art.1: Et es wie et es
              Art.2: Et kütt wie et kütt
              Art.3: Et hätt noch immer jot jejange
              Das Kölsche Grundgesetz
              1. Hi,

                So langsam glaube ich, dass du das mit der GUI-Programmierung in Assembler ernst gemeint haben könntest ,-)

                ja selbstverständlich.
                Okay, ich will das nicht ernsthaft jemandem empfehlen - aber ich betrachte Assembler als durchaus "normale" und jederzeit willkommene Ergänzung zu C und greife gern darauf zurück. Ich genieße die Freiheit, an keine Zwänge der Programmiersprache gebunden zu sein.

                Durch die neue Generation der JIT-Compiler kann man teilweise noch Performance zur Laufzeit herauskitzeln, was bei statisch kompiliertem Code eben so nicht möglich ist.

                Ja, das hatte ich wohl gelesen und kann mir das auch tatsächlich vorstellen.

                Schau dir wenn du magst die Java-API mal an, du wirst sie lieben.

                Unwahrscheinlich, denn ich mag schon das Konzept von Java nicht.

                Schönes Wochenende noch,
                 Martin

                --
                Wenn der Computer wirklich alles kann,
                dann kann er mich mal kreuzweise.
                1. Hallo Martin,

                  Ich habe irgendwie den Eindruck, dass Du vor allem irgendwelchen systemnahen Kram vorzugsweise für eingebettete Systeme schreibst und dabei die Anwendungen auch noch nicht so wahnsinnig groß sind.

                  Auf Bibliotheken generell zu verzichten, ist doch Wahnsinn. Es macht komplexere Anwendungen praktisch unmöglich (man kann einfach nicht ständig alles neu erfinden) und zweitens auf fehlerhafter. Ich stimme Dir zu, dass Bibliotheken zu verwenden ein Risiko ist und man oft besser keine Bibliothek, als eine Bibliothek, die man nicht versteht, verwendet.
                  Ab einem gewissen Komplexitätsgrad lohnt sich eine Bibliothek aber und wenn man mehrere Anwendungen eines Typs hat, lohnt sie sich auch noch viel schneller.
                  Wie schreibst Du GUIs ohne Bibliotheken? Du programmierst wirklich die gesamte Logik für das Zeichnen und die Ereignisverarbeitung selbst, womöglich noch für jede Anwendung, die Du schreibst erneut?

                  Java, .NET u.ä. bieten ja vor allem zwei Dinge, eine Laufzeitumgebung für objektorientierte Programme mit GC etc. und eine Standardbibliothek.
                  An der Standardbibliothek gibt es meines Erachtens nicht viel zu zweifeln. So etwas wie Listen, Strings etc braucht man in jedem Programm, die APIs sind einfach zu verstehen und es führt definitiv zu besseren und schneller entwickelten Programmen, so etwas zu verwenden.

                  Nun zur Laufzeitumgebung: Bei manuell verwaltetem Speicher muss man immer wissen, wann ein Objekt nicht mehr benötigt wird. Dies schränkt die Möglichkeiten der Modularisierung ein. Wenn ein Modul A bsw Objekte erzeugt, die andere Module verwenden, muss man immer einen (fehleranfälligen) Mechanismus bauen, um festzustellen, wann diese Objekte nicht mehr benötigt werden. Das macht richtige Objektorientierung sehr schwierig.
                  Direkte Pointerarithmetik führt auch praktisch immer zu Fehlern und daraus resultierenden Sicherheitsproblemen, die es mit automatischer Speicherverwaltung schlicht nicht gibt.
                  Dann noch zur Geschwindigkeit von JITs: Wirklich objektorientierte Programme haben sehr viele virtuelle Methoden. Damit steht erst zur Laufzeit fest, welche Methoden aufgerufen werden. Für solche Methoden ist ein Methode-Inlining zur Compile-Zeit unmöglich. Ein JIT-Compiler kann das tun, weil er weiß, welche Methode (meistens) aufgerufen wird.
                  Daher haben JIT-Compiler für objektorientierte Sprachen durchaus Vorteile.
                  Natürlich kann man ein überschaubares Problem in C oder meinetwegen auch Assembler effizienter implementieren, in einem großen, stark modularisierten Programm ist das aber eben schon schwerer realisierbar und auf jeden Fall sehr viel aufwendiger, der Aufwand muss sich dann eben auch lohnen.

                  Ich würde generell für schnell zu entwickelnde Desktopanwendungen auch zu Java raten. Die Technologie scheint mir auch aus Anwendersicht weit weniger Probleme zu machen, als ich mit typischen Windows VB-Irgendwas Anwendungen habe (ok ich kenne mich damit nicht aus). Bei der Entwicklung muss man sich weitestgehend keine Gedanken über Details der Zielplattform zu machen (insbesondere auch nicht um verschiedene Windowsversionen).
                  Im konkreten Fall sehe ich nur bei der Anbindung der seriellen Schnittstelle Probleme. Für USB gibt es meines Wissens eine Java-API, für die serielle Schnittstelle bin ich mir nicht ganz sicher, evtl. müsste man da auch eine native API zurückgreifen.

                  Grüße

                  Daniel

                  1. Hallo Daniel,

                    Ich habe irgendwie den Eindruck, dass Du vor allem irgendwelchen systemnahen Kram vorzugsweise für eingebettete Systeme schreibst und dabei die Anwendungen auch noch nicht so wahnsinnig groß sind.

                    das trifft's teilweise. Ja, ich schreibe oft systemnahe Embedded-Anwendungen. Ich schreibe aber auch immer wieder mal Windows-GUI-Anwendungen.

                    Auf Bibliotheken generell zu verzichten, ist doch Wahnsinn. Es macht komplexere Anwendungen praktisch unmöglich (man kann einfach nicht ständig alles neu erfinden) und zweitens auf fehlerhafter.

                    Nein, man muss ja auch nicht alles neu erfinden, schon gar nicht "ständig". Das Zielsystem (in meinem Fall Windows) stellt ja auch ohne Zusatz-Bibliotheken schon eine ganze Menge an Funktionalität zur Verfügung. Wenn ich Windows-Applikationen schreibe, dann verwende ich ausschließlich das Windows-API und sonst nichts. Okay, natürlich greife ich auf einen Pool selbstgeschriebener Bausteine zurück, der kontinuierlich wächst.

                    Ab einem gewissen Komplexitätsgrad lohnt sich eine Bibliothek aber und wenn man mehrere Anwendungen eines Typs hat, lohnt sie sich auch noch viel schneller.

                    Ja, und was spricht dagegen, sich diese Bibliothek im Lauf der Zeit selber aufzubauen? Der Vorteil -ich kann es nicht oft genug betonen- liegt doch darin, dass man den Code dann exakt kennt und auch exakt weiß, was dieser Code tut, was er leisten kann und was nicht.

                    Wie schreibst Du GUIs ohne Bibliotheken? Du programmierst wirklich die gesamte Logik für das Zeichnen und die Ereignisverarbeitung selbst, womöglich noch für jede Anwendung, die Du schreibst erneut?

                    Ich nutze das API von Windows, das mir eine Menge von GUI-Grundfunktionen zur Verfügung stellt. Darüber hinaus: Ja, die Ereignisbearbeitung ist jedesmal wieder individuell neu.

                    Java, .NET u.ä. bieten ja vor allem zwei Dinge, eine Laufzeitumgebung für objektorientierte Programme mit GC etc. und eine Standardbibliothek.
                    An der Standardbibliothek gibt es meines Erachtens nicht viel zu zweifeln.

                    Richtig - ich nutze ja auch die C-Standardbibliothek, ansonsten die intrinsischen Datentypen von C. Höhere Strukturen realisiere ich in der Tat lieber selbst.

                    Nun zur Laufzeitumgebung: Bei manuell verwaltetem Speicher muss man immer wissen, wann ein Objekt nicht mehr benötigt wird. Dies schränkt die Möglichkeiten der Modularisierung ein.

                    Nicht im geringsten. Man muss nur seine Module kennen, man muss wissen, "wer" Speicher belegt, und "wer" ihn wieder freigeben muss.
                    Davon abgesehen stellt sich das Problem nur selten: Dynamisch erzeugte Objekte sind in der Regel lokale Strukturen innerhalb einer Funktion, die beim Beenden der Funktion wieder freigegeben werden.

                    Wenn ein Modul A bsw Objekte erzeugt, die andere Module verwenden, muss man immer einen (fehleranfälligen) Mechanismus bauen, um festzustellen, wann diese Objekte nicht mehr benötigt werden. Das macht richtige Objektorientierung sehr schwierig.

                    Nein. Man muss nur die Erzeugung und Entsorgung von dynamischen Datenstrukturen sauber ordnen. Es ist IMHO eine Unart vieler objektorientierter Ansätze, Objekte in Modul A zu erzeugen und in Modul B freizugeben. Das gehört sich nicht. Wer eine Datenstruktur dynamisch anlegt, hat auch dafür Sorge zu tragen, dass sie ordentlich wieder freigegeben wird. Alles andere ist meines Erachtens Spaghetticode.

                    Direkte Pointerarithmetik führt auch praktisch immer zu Fehlern und daraus resultierenden Sicherheitsproblemen, die es mit automatischer Speicherverwaltung schlicht nicht gibt.

                    Im Gegenteil: Sie eröffnet Möglichkeiten, die mit anderen Techniken quasi undenkbar sind. Ich weiß nicht, wo du da das Problem siehst - solange man nicht den Überblick oder die Disziplin verliert.

                    Dann noch zur Geschwindigkeit von JITs: Wirklich objektorientierte Programme ...

                    Ich habe es kürzlich erst gesagt: Objektorientierung findet in den Köpfen der Programmierer statt. Wenn die Programmiersprache das durch spezielle Notation oder gewisse Sprachstrukturen unterstützt, ist das aus meiner Sicht meistens ein Nachteil, weil dadurch der Blick des Programmierers von den entscheidenden Punkten abgelenkt wird, er quasi "in höheren Sphären schwebt". Damit verliert man das Gefühl dafür, was im eigenen Programm wirklich passiert.
                    Das ist ein Grund, warum ich "objektorientierte Programmiersprachen" ablehne und und objektorientierte Denkweisen lieber selbst nachbilde. Je nach Applikation bis herunter auf Assemblerebene. Dann weiß ich nämlich auch, was da wirklich abläuft.

                    Ich würde generell für schnell zu entwickelnde Desktopanwendungen ...

                    Definiere "schnell".
                    Abhängig von der Komplexität der Aufgabenstellung komme ich mit meinem Ansatz (Standard-C und reine API-Programmierung) meist innerhalb von ein bis maximal drei Tagen zu einem funktionsfähigen Grundgerüst. Das ist dann aber auch so sauber strukturiert, dass ich ohne Schwierigkeiten an allen Stellen Details ändern oder nachrüsten kann.

                    Nochmal: Ich erwarte nicht, dass jeder meine Programmier-Ideale nachvollziehen kann und damit ebensogut klarkommt. Aber für mich hat sich diese Vorgehensweise in vielen Jahren als optimaler Ansatz herauskristallisiert.

                    Schönes WE noch,
                     Martin

                    --
                    F: Was ist schneller: Das Licht oder der Schall?
                    A: Offensichtlich der Schall. Wenn man den Fernseher einschaltet, kommt immer erst der Ton, und dann erst das Bild.
                2. Hello,

                  ja selbstverständlich.
                  Okay, ich will das nicht ernsthaft jemandem empfehlen - aber ich betrachte Assembler als durchaus "normale" und jederzeit willkommene Ergänzung zu C und greife gern darauf zurück. Ich genieße die Freiheit, an keine Zwänge der Programmiersprache gebunden zu sein.

                  Das ist dann aber nicht mehr plattformunabhängig.

                  Ich habe mich damit mal auseinandergesetzt, als noch das gute alte DOS auf allen Schreibtischen gastierte. Embedded Assembler in Turbo-Pascal. Routinen und GUI für BTrieve-Datenbanken.
                  Da kommt man dann alleine recht schnell an die Grenzen, nämlich dann, wenn man dann nachts Programme träumt statt von blühenden Landschaften und netten Mädels...

                  Ein harzliches Glückauf

                  Tom vom Berg

                  --
                  Nur selber lernen macht schlau
                  http://bergpost.annerschbarrich.de
          2. Hallo,

            ich mische mich jetzt hiermal als jemand ein, der schon C, C++ und Java verwendet hat.

            * Durch den Wegfall der Pointerarithmetik und einer manuellen Speicherverwaltung fallen viele Probleme schlicht weg.

            In C muss man da tatsächlich sehr aufpassen und selbst dann übersieht man noch ab und an ein Speicherleck oder einen Buffer Overflow. Je mehr Erfahrung der Programmierer hat, desto mehr fällt dieses Problem weg, einem Anfänger würde ich aber nicht zu C raten, wenn er vorhat GUI-Anwendungen zu schreiben (bei Mikrocontrollern ist das wieder anders).

            In C++ ist das Problem Speicherverwaltung schlicht auf die Unwissenheit und Unerfahrenheit des Programmierers zurückzuführen. In 90% der Fälle reicht es aus die Variable auf dem Stack anzulegen, von wo sie am Blockende einfach wieder gelöscht wird, oder einen geeigneten Container zu verwenden, der den Speicher verwaltet. In den 10% der Fällen in denen man unbedingt die Variable mit new anlegen muss, kann man auf SmartPointer zurückgreifen, die dafür sorgen, dass die Variable auf jeden Fall wieder aufgeräumt wird.

            Der Code wird zudem besser wartbar und lässt sich auch einfacher entwickeln.

            Für C trifft das teilweise zu, für C++ nur wenn man schlecht programmiert hat und allgemein macht hier das meißte immer noch die Gewohnheit aus.

            * Die Plattformunabhängigkeit.

            Die kannst du mit C und C++ ebenfalls erreichen, solange du Bibliotheken verwendest, die auf allen gewünschten Plattformen funktionieren. Und wenn du maschinennah entwickeln willst (in Java also zu JNI greifen musst), dann wirst du trotz Java plattformabhängig.

            * Das Vorhandensein einer umfassenden und zudem kostenlosen Klassenbibliothek.

            C ist nicht objektorientiert, es gibt aber mit Sicherheit mehr kostenlose Bibliotheken für C als für Java. Für C++ gibt es für jede kleine Aufgabe irgendwo eine kostenlose Bibliothek oder auch umfassende kostenlose Klassenbibliotheken die durchaus mit der Javabibliothek mithalten können.

            * Java ist leichter zu lernen.

            Im großen und ganzen stimmt das. Wer aber einmal C++ richtig (TM) beherrscht, der kann nach einer Woche Einarbeitung mit Java entwickeln. Wer Java richtig (TM) beherrscht ist noch Ewigkeiten davon entfernt C++ programmieren zu können.

            Gruss,
            OhneName

            1. Hej,

              Ich stimm dir in allen Punkten prinzipiell zu und versteht mich bitte nicht falsch. Nie würde ich C++ gegenüber Java disqualifizieren wollen (1). Ich betrachte die beiden Sprachen in den meisten Bereichen eigentlich als äquivalent. Aber hier habe ich konkret vor dem Hintergrund der Ursprungsfrage, nämlich womit ein geeigneter Einstieg realisierbar wäre argumentiert.

              Je mehr Erfahrung der Programmierer hat [...]

              In C++ ist das Problem Speicherverwaltung schlicht auf die Unwissenheit und Unerfahrenheit des Programmierers zurückzuführen.

              [...] für C++ nur wenn man schlecht programmiert hat [...]

              [...] solange du Bibliotheken verwendest, die auf allen gewünschten Plattformen funktionieren. [...]

              Für C++ gibt es für jede kleine Aufgabe irgendwo eine kostenlose Bibliothek [...]

              * Java ist leichter zu lernen.
              Im großen und ganzen stimmt das.

              Bist Du denn nicht auch der Meinung, dass das recht viele Einschränkungen sind, die einem Anfänger zählt zugemutet werden müssten? Zumal O'Brien auch unter einem gewissen Zeitdruck zu stehen scheint und Programmieren wohl nicht zu seinem zukünftigen Hauptbetätigungsfeld zu werden scheint.

              Mich würde sowieso mal interessieren, ob die bisherige Diskussion für O'Brien überhaupt hilfreich war.

              Beste Grüße
              Biesterfeld

              (1) Jede Programmiersprache hat ihren Platz -- ja, auch Perl

              --
              Art.1: Et es wie et es
              Art.2: Et kütt wie et kütt
              Art.3: Et hätt noch immer jot jejange
              Das Kölsche Grundgesetz
              1. Hallo,

                * Java ist leichter zu lernen.
                Im großen und ganzen stimmt das.

                Bist Du denn nicht auch der Meinung, dass das recht viele Einschränkungen sind, die einem Anfänger zählt zugemutet werden müssten? Zumal O'Brien auch unter einem gewissen Zeitdruck zu stehen scheint und Programmieren wohl nicht zu seinem zukünftigen Hauptbetätigungsfeld zu werden scheint.

                Wenn er nicht vorhat ernsthaft in die Softwareentwicklung einzusteigen, dann kann er meiner Meinung nach einen Bogen um C und C++ machen. Will er aber damit seine Brötchen verdienen, dann ist es nur eine Frage der Zeit bis er die beiden lernen muss und in dem Fall kann man auch gleich mit C++ anfangen (dann kann man die andern Sprachen nacher relativ leicht lernen). Und ich denke ich habe deutlich gemacht, dass es nicht einfach ist C++ richtig zu lernen.

                Vor dem Hintergrund des OPs würde ich aber spontan zu Delphi raten:

                • die IDE Turbo Delphi gibt's kostenlos
                • es werden native Programme erstellt, die ohne Runtime Environments auskommen
                • die zugrundeliegende Sprache Pascal wurde so entwickelt, dass sie möglichst leicht zu lernen ist
                • man kann mit der VCL schnell und einfach eine grafische Benutzeroberfläche zusammenbauen
                • relativ unproblematischer Zugriff auf die Hardware

                Ansonsten wäre auch VB.Net, C#.Net oder Java eine Möglichkeit. Und man kann auch mit PHP, Perl, Pyhton oder Ruby Anwendungen entwickeln. Die Auswahl ist riesig und eine Empfehlung ist schwer abzugeben. Im Endeffekt findet jeder irgendwann seine Lieblingssprache.

                Gruss,
                OhneName

                1. Hi,

                  Wenn er nicht vorhat ernsthaft in die Softwareentwicklung einzusteigen, dann kann er meiner Meinung nach einen Bogen um C und C++ machen. Will er aber damit seine Brötchen verdienen, dann ist es nur eine Frage der Zeit bis er die beiden lernen muss und in dem Fall kann man auch gleich mit C++ anfangen (dann kann man die andern Sprachen nacher relativ leicht lernen). Und ich denke ich habe deutlich gemacht, dass es nicht einfach ist C++ richtig zu lernen.

                  derzeit bin ich dabei, in die µC-Programmierung mit C einzusteigen. Nach allem, was ich hier nun von euch gelesen habe, erscheint mir durch die Verwandtschaft von C und C++ die Wahl von C++ auch zur Windows-Anwendungsprogrammierung als geeignet.

                  Jetzt bitte nicht schimpfen, dass ich das ja auch eher hätte erwähnen können. Ich wollte eine möglichst unvoreingenommene Einschätzung erhalten, denn ich bin mit keiner Programmiersprache verheiratet. So habe ich im vergangenen Jahr mit Tcl/Tk gearbeitet, weil es für den vorgegebenen Anwendungsfall für mich das Optimum darstellte.

                  Vor dem Hintergrund des OPs würde ich aber spontan zu Delphi raten:

                  • die IDE Turbo Delphi gibt's kostenlos
                  • es werden native Programme erstellt, die ohne Runtime Environments auskommen
                  • die zugrundeliegende Sprache Pascal wurde so entwickelt, dass sie möglichst leicht zu lernen ist
                  • man kann mit der VCL schnell und einfach eine grafische Benutzeroberfläche zusammenbauen
                  • relativ unproblematischer Zugriff auf die Hardware

                  Mist, noch was Neues :)
                  Ich werde zumindest mal einen Blick darauf werfen.

                  Schönen Sonntag noch!
                  O'Brien

                  --
                  Frank und Buster: "Heya, wir sind hier um zu helfen!"
              2. Hi Biesterfeld,

                Mich würde sowieso mal interessieren, ob die bisherige Diskussion für O'Brien überhaupt hilfreich war.

                sorry für die späte Rückmeldung, ich war quasi seit dem OP permanent unterwegs. Die bisherige Diskussion finde ich hochgradig interessant, da hier wirklich argumentiert wird, und es wurden schon viele Punkte aufgezeigt, die mir als Grundlage zum Weiterdenken und -forschen dienen.

                Ich werde mich morgen im Laufe des Tages noch einmal melden und meine Eindrücke und ein paar weitere Informationen schildern.

                Bis dahin schonmal Danke an alle!

                Guts Nächtle!
                O'Brien

                --
                Frank und Buster: "Heya, wir sind hier um zu helfen!"
            2. Hi OhneName,

              * Die Plattformunabhängigkeit.
              Die kannst du mit C und C++ ebenfalls erreichen, solange du Bibliotheken verwendest, die auf allen gewünschten Plattformen funktionieren.

              das erscheint mir als interessanter Ansatz, den ich verfolgen sollte, insbesondere da ich die Plattformunabhängigkeit nicht mit höchster Priorität versehen habe. Wenn ich mit gezielter Bibliotheksverwendung erreichen kann, dass ich zunächst nur für Windows schreibe, dann aber falls erforderlich, auch für Linux (ohne allzu großen Aufwand) kompilieren kann, ist mir schon sehr geholfen.

              Schönen Sonntag noch!
              O'Brien

              --
              Frank und Buster: "Heya, wir sind hier um zu helfen!"
        2. Hi Martin,

          Hätte ich für meine Windows-Applikationen irgendein Quasi-Standard-Framework wie z.B. MFC oder .NET benutzt, hätte ich schätzungsweise die drei- bis vierfache Zeit gebraucht, und das Endprudukt hätte ein Vielfaches an Code-Größe, und ich wüsste zum Teil gar nicht, was meine Programme in Wirklichkeit tun.

          d. h. für grafische Oberflächen verwendest du die reine Windows-API?

          Schönen Sonntag noch!
          O'Brien

          --
          Frank und Buster: "Heya, wir sind hier um zu helfen!"
      2. Hi Biesterfeld,

        Gute(TM) Entwicklungsumgebungen sind kostenfrei und zudem nicht mit einem SDK zu verwechseln.

        dass IDE != SDK gilt, war mir nicht klar. Java scheint ja nun komplett frei verfügbar zu sein; habe ich das richtig verstanden, dass es auch einen Compiler gibt, der direkt ausführbare (und dann natürlich nicht mehr plattformunabhängige) Dateien erzeugt?

        Schönen Sonntag noch!
        O'Brien

        --
        Frank und Buster: "Heya, wir sind hier um zu helfen!"
        1. Hej,

          dass IDE != SDK gilt, war mir nicht klar.

          Zumindest nach meiner Auffassung ,-) Aber gerade für Java finde ich halt dass dies gilt: Das Java-SDK besteht eben aus der Laufzeit, dem Compiler und einer ganzen Reihe weiterer Dienstprogramme, der Klassenbibliothek, der Javadoc und den Sources. Da hast du aber immer noch keine IDE. Wenn du aber z.B. Eclipse (die wohl mächtigste und verbreiteste Java-IDE) verwendest, stellt dir diese alle Funktionen und Informationen des SDK komfortabel zur Verfügung.

          Java scheint ja nun komplett frei verfügbar zu sein; habe ich das richtig verstanden, dass es auch einen Compiler gibt, der direkt ausführbare (und dann natürlich nicht mehr plattformunabhängige) Dateien erzeugt?

          Das kommt drauf. Wenn du den 'normalen' Compiler (javac von Sun) meinst, so erstellt dir dieser plattformunabhängigen Bytecode, der auf jedem System, wo das JRE installiert ist auch ausführbar ist.

          Es gibt aber auch Wrapper und Compiler die plattformabhängige Executables und Installer erstellen:

          http://launch4j.sourceforge.net/
          http://jsmooth.sourceforge.net/
          http://www.excelsior-usa.com/jet.html

          Beste Grüße
          Biesterfeld

          --
          Art.1: Et es wie et es
          Art.2: Et kütt wie et kütt
          Art.3: Et hätt noch immer jot jejange
          Das Kölsche Grundgesetz
    2. Hi Martin,

      welche Programmiersprache soll ich nehmen?
      Assembler natürlich! ;-)

      nee, bitte nich - bin ich Data? Habe ich eine Klappe mit blinkenden LEDs darunter am Hinterkopf?

      • einfaches Ansprechen von HW-Schnittstellen (USB, seriell)
        USB ist generell sehr anspruchsvoll, wenn man nicht Geräte hat, deren Treiber beispielsweise eine herkömmliche serielle Schnittstelle emuliert. Die sind wiederum relativ einfach zu handhaben; man kann sie im Wesentlichen wie eine Datei ansprechen.

      Mir stehen gerade die Haare zu Berge. Da die Verbindung zwischen PC und unseren Geräten vermutlich eine Eigenentwicklung sein wird, steht mir da also noch einiges bevor; zumindest weiß ich jetzt schon mal, dass ich vor jeglicher Entscheidung viel tiefer in die betreffende Materie eintauchen muss. Und da ich selber kürzlich feststellen musste, dass Laptops mittlerweile kaum noch mit seriellen Schnittstellen ausgestattet werden, wird es wohl in Richtung USB gehen.

      • einfaches Erstellen der GUI (vorgefertigte Module, Klassen, ...)
        Spricht für irgendein Visual-XXX-G'lump.

      Ist XXX nicht meistens visuell? ;)

      Meine bisherige Erfahrung mit der Erstellung einer GUI (ist das eigentlich richtig: "die GUI"?) beruht auf Tcl/Tk, damit bin ich sehr gut zurechtgekommen. Ich _vermute_, dass meine Anforderungen auch mit Tcl/Tk zu erfüllen wären, wobei ich da wieder das Problem der Kompilierbarkeit sehe.

      • Endprodukt unkompliziert vom Kunden installierbar (im Idealfall gar keine Installation, sondern direkt startbare Programmdatei)
        Damit fällt meiner Ansicht nach Java schon mal raus; da muss der Kunde erst noch ein geeignetes JRE installieren. Für mich würden dann auch .NET-Anwendungen aus dem Raster fallen, denn auch da muss der Anwender/Kunde von sich aus zunächst das .NET-Framework installieren.

      Hm, der Einwand erscheint durchaus berechtigt. Zumal ich selbst kürzlich die Erfahrung gemacht habe, dass nach dem Einspielen eines Java-Updates die entsprechende Applikation nicht mehr lief. Mag sein, dass der Fehler bei den Programmierern lag, aber wer sagt mir denn, dass ich den gleichen bzw. einen (für den Kunden) ähnlich fatalen Fehler nicht auch mache ...

      Es sollte doch möglich sein, dich mit deinem Arbeitgeber dahingehend zu einigen, dass die Firma die Entwicklungsumgebung anschafft, du sie aber zunächst ein halbes Jahr auf deinem privaten PC nutzen darfst - wenn du schon bereit bist, dich in deiner Freizeit einzuarbeiten!

      Das Problem ist, dass mein Chef sich auf meine Entscheidungen pro/contra einer bestimmten Technologie verlässt. Da bisher noch einige Parameter bez. der zu verwendenden Hardware und der Anwendersoftware ziemlich unbestimmt sind, möchte ich bis zum "Tage X" gerne so weit fit in den entsprechenden Technologien sein, dass ich die grundsätzliche Tauglichkeit für unsere Zwecke realistisch einschätzen kann. Das heißt nicht, dass ich bis dahin der perfekte Programmierer sein will, denn das wird man sowieso erst mit der entsprechenden Erfahrung. Aber ich will so gut Bescheid wissen, dass ich mit meiner Entscheidung im Nachhinein auch gut leben (und entwickeln) kann.

      Ich würde dir zu Visual C++ raten.

      Da Visual C++ Express kostenlos verfügbar ist und ich mit C++ (OK, in der Uni :-) bereits gearbeitet habe, ist das vermutlich ein nicht gar so schlechter Einstieg.

      Oder einer beliebigen anderen C++-IDE, aber da weiß ich nicht, wie dann der Entwurf von GUI-Elementen ist.

      Das wäre dann ein zweiter Schritt, sich evt. mal andere IDEs anzusehen.

      Schönen Sonntag noch!
      O'Brien

      --
      Frank und Buster: "Heya, wir sind hier um zu helfen!"
      1. Hallo O'Rien,

        welche Programmiersprache soll ich nehmen?
        Assembler natürlich! ;-)
        nee, bitte nich - bin ich Data? Habe ich eine Klappe mit blinkenden LEDs darunter am Hinterkopf?

        war auch nicht ganz ernst gemeint, wie ich selbst schon relativiert habe, obwohl das für mich selbst immer eine überlegenswerte Option ist.

        d. h. für grafische Oberflächen verwendest du die reine Windows-API?

        Ja, das reine Windows-API und nichts als das Windows-API. ;-)

        Mir stehen gerade die Haare zu Berge. Da die Verbindung zwischen PC und unseren Geräten vermutlich eine Eigenentwicklung sein wird, steht mir da also noch einiges bevor; zumindest weiß ich jetzt schon mal, dass ich vor jeglicher Entscheidung viel tiefer in die betreffende Materie eintauchen muss. Und da ich selber kürzlich feststellen musste, dass Laptops mittlerweile kaum noch mit seriellen Schnittstellen ausgestattet werden, wird es wohl in Richtung USB gehen.

        Spricht einiges dafür. Aber wie gesagt, ein großer Teil der USB-Chips (z.B. FTDI) emuliert eine COM-Schnittstelle, und der zugehörige Windows-Treiber setzt diese Emulation der Applikation gegenüber fort. Windows XP hat diesen Treiber sogar schon im Lieferumfang, eben *weil* der Chip inzwischen sehr verbreitet ist.

        Spricht für irgendein Visual-XXX-G'lump.
        Ist XXX nicht meistens visuell? ;)

        Hmm. So hab ich das noch gar nicht betrachtet. *g*

        Meine bisherige Erfahrung mit der Erstellung einer GUI (ist das eigentlich richtig: "die GUI"?) ...

        Ich sage "das", weil im Denglischen auch "das Interface" sächlich ist.

        beruht auf Tcl/Tk, damit bin ich sehr gut zurechtgekommen.

        Das kenne ich überhaupt nicht, deshalb bin ich nicht darauf eingegangen.

        Ich würde dir zu Visual C++ raten.
        Da Visual C++ Express kostenlos verfügbar ist ...

        Stimmt, ich vergaß. Das ist natürlich auch noch ein Pluspunkt.

        Good luck,
         Martin

        --
        TEAM: Toll, Ein Anderer Macht's.
        1. Hi Martin,

          Hallo O'Rien,

          ne va plus?
          Was möchtest du mir damit sagen?

          welche Programmiersprache soll ich nehmen?
          Assembler natürlich! ;-)
          nee, bitte nich - bin ich Data? Habe ich eine Klappe mit blinkenden LEDs darunter am Hinterkopf?
          war auch nicht ganz ernst gemeint,

          schon klar, daher mein Kommentar, harhar.

          d. h. für grafische Oberflächen verwendest du die reine Windows-API?
          Ja, das reine Windows-API und nichts als das Windows-API. ;-)

          Woher kommt das bloß mit dem "die", es klingt einfach richtig, aber nur ohne drüber nachzudenken ...

          Aber wie gesagt, ein großer Teil der USB-Chips (z.B. FTDI) emuliert eine COM-Schnittstelle, und der zugehörige Windows-Treiber setzt diese Emulation der Applikation gegenüber fort. Windows XP hat diesen Treiber sogar schon im Lieferumfang, eben *weil* der Chip inzwischen sehr verbreitet ist.

          Ah, dann habe ich dich vorher wohl etwas missverstanden. *schweißvonstirnwisch*

          Spricht für irgendein Visual-XXX-G'lump.
          Ist XXX nicht meistens visuell? ;)
          Hmm. So hab ich das noch gar nicht betrachtet. *g*

          Alles eine Frage der Sichtweise.

          Da Visual C++ Express kostenlos verfügbar ist ...
          Stimmt, ich vergaß. Das ist natürlich auch noch ein Pluspunkt.

          Womit wir dann bei Visual C+++. wären.

          Good luck,

          Das ist vermutlich der wertvollste Hinweis im ganzen Thread :)

          Schönen Sonntag noch!
          O'Brien

          --
          Frank und Buster: "Heya, wir sind hier um zu helfen!"
        2. Hello,

          Ich würde dir zu Visual C++ raten.
          Da Visual C++ Express kostenlos verfügbar ist ...

          Wo? Der Link von Vinzenz?
          Hast DU das schon mal installiert und benutzt?
          Was darf man denn damit machen?

          Ein harzliches Glückauf

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Moin,

            Da Visual C++ Express kostenlos verfügbar ist ...
            Wo? Der Link von Vinzenz?

            dachte ich eigentlich ...

            Hast DU das schon mal installiert und benutzt?

            Nee. Ich habe gestern abend mal versucht, mir VC++ Express runterzuladen, habe aber immer nur einen rund 2.5MB großen Installer bekommen. Das kann unmöglich vollständig sein, dachte ich mir.
            Also habe ich meinen Rechner über Nacht mal auf das rund 3GB große ISO-Image des Gesamtpakets angesetzt; da der MS-Server schnarchlahm ist (mehr als etwa 30kB/s gibt er nicht her), hab ich das die Nacht durchlaufen lassen. Heute früh sehe ich dann, dass der Download wohl bei ungefähr 1.2GB abgebrochen wurde.

            Was darf man denn damit machen?

            Weiß ich nicht; frag Microsoft. ;-)

            Ciao,
             Martin

            --
            Es gibt Dinge, die sind sooo falsch, dass nicht einmal das Gegenteil stimmt.
            1. Hi Martin,

              Ich habe gestern abend mal versucht, mir VC++ Express runterzuladen, habe aber immer nur einen rund 2.5MB großen Installer bekommen. Das kann unmöglich vollständig sein, dachte ich mir.
              Also habe ich meinen Rechner über Nacht mal auf das rund 3GB große ISO-Image des Gesamtpakets angesetzt; da der MS-Server schnarchlahm ist (mehr als etwa 30kB/s gibt er nicht her), hab ich das die Nacht durchlaufen lassen. Heute früh sehe ich dann, dass der Download wohl bei ungefähr 1.2GB abgebrochen wurde.

              bei mir läuft der Download gerade mit ca. 265 kB/s, ich hoffe, erbricht dann nicht bei 2,9999 GB ab ;)

              Schönen Sonntag noch!
              O'Brien

              --
              Frank und Buster: "Heya, wir sind hier um zu helfen!"
              1. Hello,

                bei mir läuft der Download gerade mit ca. 265 kB/s, ich hoffe, erbricht dann nicht bei 2,9999 GB ab ;)

                Mein DSL-Zugang schafft jetzt ca. 1100KBytes/sec bei gleichzeitigem ungebremsten Internet-TV (N3 bei 523kbit/s) und Surfen im Forum...

                Ein harzliches Glückauf

                Tom vom Berg

                --
                Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
            2. Hello,

              Nee. Ich habe gestern abend mal versucht, mir VC++ Express runterzuladen, habe aber immer nur einen rund 2.5MB großen Installer bekommen. Das kann unmöglich vollständig sein, dachte ich mir.
              Also habe ich meinen Rechner über Nacht mal auf das rund 3GB große ISO-Image des Gesamtpakets angesetzt; da der MS-Server schnarchlahm ist (mehr als etwa 30kB/s gibt er nicht her), hab ich das die Nacht durchlaufen lassen. Heute früh sehe ich dann, dass der Download wohl bei ungefähr 1.2GB abgebrochen wurde.

              Ich habe es mit ca. 30MByte/sec. mittels meines Webservers und wget gezogen.
              Die DSL-Leitung (über einen alten Hub) gab mir aber auch nur ca. 300kBit/sec.
              Da muss ich mich dann heute Abend mal ransetzen.

              Leider habe ich keinen DVD-Brenner.
              Kann man so ein ISO-CD-Image auch von der Festplatte betreiben? Da war doch mal was?

              Ein harzliches Glückauf

              Tom vom Berg

              --
              Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
              1. Hi Tom,

                Leider habe ich keinen DVD-Brenner.
                Kann man so ein ISO-CD-Image auch von der Festplatte betreiben? Da war doch mal was?

                das Stichwort lautet (z. B.) Daemon Tools.

                Schönen Sonntag noch!
                O'Brien

                --
                Frank und Buster: "Heya, wir sind hier um zu helfen!"
      2. Hallo.

        Und da ich selber kürzlich feststellen musste, dass Laptops mittlerweile kaum noch mit seriellen Schnittstellen ausgestattet werden, wird es wohl in Richtung USB gehen.

        Wäre nicht auch Ethernet eine Alternative?
        MfG, at

        1. Hi at,

          Und da ich selber kürzlich feststellen musste, dass Laptops mittlerweile kaum noch mit seriellen Schnittstellen ausgestattet werden, wird es wohl in Richtung USB gehen.

          Wäre nicht auch Ethernet eine Alternative?

          es geht eigentlich nur darum, einige (ca. 20) Parameter an unsere Geräte zu übermitteln bzw. auszulesen. Aber du hast mich mit dem Ethernet auf einen weiterführenden Gedanken gebracht. Werde mir das mal in einer ruhigen Minute zu Gemüte führen.

          Schönen Sonntag noch!
          O'Brien

          --
          Frank und Buster: "Heya, wir sind hier um zu helfen!"
  3. Hi Ingrid,

    welche Programmiersprache soll ich nehmen?

    ich werde mir mal Visual C++, Java, C++ und Delphi bez. meiner Kriterien genauer ansehen und dann ggf. hier (bzw. in einem dann neuen Thread) erneut nachfragen.

    Danke für alle eure Hinweise - und auch für die Diskussion, die ich sehr erschöpfend (!= ermüdend) fand!

    Schönen Sonntag noch!
    O'Brien

    --
    Frank und Buster: "Heya, wir sind hier um zu helfen!"
    1. Hallo O'Brien,

      ich werde mir mal Visual C++,

      http://www.microsoft.com/germany/express/download/default.aspx

      Freundliche Grüße

      Vinzenz

      1. Hello,

        ich werde mir mal Visual C++,

        http://www.microsoft.com/germany/express/download/default.aspx

        Hast Du das schon mal installiert?
        Ist das irgendwie zeitlich oder sonstwie limitiert, um es zum Lernen zu benutzen?

        Ein harzliches Glückauf

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Hallo

          ich werde mir mal Visual C++,
          http://www.microsoft.com/germany/express/download/default.aspx
          Hast Du das schon mal installiert?

          ja.

          Ist das irgendwie zeitlich oder sonstwie limitiert, um es zum Lernen zu benutzen?

          Die Express-Editionen sind nicht zeitlich limitiert und Du darfst sie nicht nur zum Lernen sondern auch zum Geldverdienen nutzen, was Du in den dortigen FAQ nachlesen kannst.

          Freundliche Grüße

          Vinzenz

      2. Hallo,

        http://www.microsoft.com/germany/express/download/default.aspx

        ich habe gerade den Tipp bekommen. Mal sehen, ob ich das zum Laufen bringe.

        Gibt es dazu passend auch irgendwo Seminarunterlagen, Fernlehrgänge oder sogar einen intensiven Lehrgang im Raum Hannover/ Braunschweig/Hildesheim/Göttingen?

        Der sollte von den Wiederholungen der C/C++ Grundlagen bis einschließlich MFC reichen.

        Wie findet man sowas? Im Web gibt es dutzende von Angeboten, aber meistens nur Wochenkurse usw. In einer Woche kann man das doch nicht alles lernen?

        LG
        Chris©

        1. Hallo.

          Wie findet man sowas?

          An Hochschulen.

          Im Web gibt es dutzende von Angeboten, aber meistens nur Wochenkurse usw. In einer Woche kann man das doch nicht alles lernen?

          Es muss aber bezahlbar bleiben, und zwar sowohl der Kurs als auch die unproduktive Zeit.
          MfG, at

          1. Nochmal hallo,

            Wie findet man sowas?

            An Hochschulen.

            Ich habe gerade etwas gefunden bei
            http://www.physik.uni-regensburg.de/studium/edverg/ckurs/ und bei
            http://www.rrzn.uni-hannover.de/cplus.html

            Mal schauen, ob ich damit etwas anfangen kann.

            Wenn Ihr noch andere Tutorials kennt, würde ich mich über weitere Tipps freuen.

            LG
            Chris©

            1. Hallo.

              Wenn Ihr noch andere Tutorials kennt, würde ich mich über weitere Tipps freuen.

              Allgemein sehr gute Unterlagen gibt es an der Fernunversität Hagen, was auch kaum verwundert, da ja die gesamten Lehrinhalte ausschließlich fern-medial verabreicht werden. Wenn du also die formalen Kriterien zum Studium erfüllst, kannst du dir für eine Handvoll Euro sogar noch ein, zwei Zertifikate abholen.
              MfG, at

              1. Hello,

                Allgemein sehr gute Unterlagen gibt es an der Fernunversität Hagen, was auch kaum verwundert, da ja die gesamten Lehrinhalte ausschließlich fern-medial verabreicht werden. Wenn du also die formalen Kriterien zum Studium erfüllst, kannst du dir für eine Handvoll Euro sogar noch ein, zwei Zertifikate abholen.

                Hat hier jemand aktuelle Erfahrungen mit einem solchen Fernkursus?

                Ich selber habe vor vor Jahren mal angefangen, an einem solchen Kursus über das Internet teilzunehmen. Ok, damals war das noch recht neu alles. Der Kursus ist nachher abgebrochen worden im Einvernehmen mit  den ca. 15 Teilnehmern und dem Anbieter, weil die Internetsoftware dafür einfach noch nicht reif war.

                Ich habe Chrissi deshalb gewarnt.

                Wenn aber hier jemand über positive Erfahrungen mit genau diesen Kursen bei der Fernuni Hagen berichten könnte, dann würden wir vielleicht sogar geminsam teilnehmen wollen (wenn es nach mir geht).

                Unser jugendlicher C-Papst im Hause ist jedenfalls nicht gewillt, unsere Lücken zu schließen. :-(

                Ein harzliches Glückauf

                Tom vom Berg

                --
                Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
      3. Hello,

        ich werde mir mal Visual C++,

        http://www.microsoft.com/germany/express/download/default.aspx

        Die Installation dieses Paketes hat mein XP-Grundsystem dermaßen subtil außer Betrieb gesetzt, dass ich davon abrate, dieses Paket auf einem benötigten Arbeitsplatz zu installieren, sondern jedem rate, es nur auf einem isolierten Testplatz einzusetzen.

        Mag sein, dass die vorhandenen Komponenten eine ungünstige Kombination sind, aber sowas (Ausfall der Grafikkarte in höhren Vidoe-Modi) darf durch die Installation eines solchen Programmpaketes nicht passieren!

        https://forum.selfhtml.org/?t=171139&m=1119857

        Ein harzliches Glückauf

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Hi Tom,

          ich werde mir mal Visual C++,

          http://www.microsoft.com/germany/express/download/default.aspx

          Die Installation dieses Paketes hat mein XP-Grundsystem dermaßen subtil außer Betrieb gesetzt, dass ich davon abrate, dieses Paket auf einem benötigten Arbeitsplatz zu installieren, sondern jedem rate, es nur auf einem isolierten Testplatz einzusetzen.

          Mag sein, dass die vorhandenen Komponenten eine ungünstige Kombination sind, aber sowas (Ausfall der Grafikkarte in höhren Vidoe-Modi) darf durch die Installation eines solchen Programmpaketes nicht passieren!

          https://forum.selfhtml.org/?t=171139&m=1119857

          hast du die Probleme eindeutig auf die VS-Installation zurückführen können? Kannst du evt. eine Aussage zur verwendeten Kombination von Komponenten machen, die zum Ausfall geführt haben [1]?

          Schönen Sonntag noch!
          O'Brien

          [1] Ich weiß, ist sehr unwahrscheinlich, ich wollte es aber trotzdem gefragt haben.

          --
          Frank und Buster: "Heya, wir sind hier um zu helfen!"
          1. Hello,

            https://forum.selfhtml.org/?t=171139&m=1119857

            hast du die Probleme eindeutig auf die VS-Installation zurückführen können? Kannst du evt. eine Aussage zur verwendeten Kombination von Komponenten machen, die zum Ausfall geführt haben [1]?

            Seitdem ich das Visual Studio 2008 wieder entfernt habe, und den Treiber der NVIDIA-Karte _nochmal_ installiert habe, funktioniert wieder alles.

            Wenn ich ganz viel Zeit habe, kann ich das Studio ja nochmal draufplatschen lassen...
            Das geht ja mit _einem_ Knopfdruck. Nur das Entfernen dauert dann wieder.

            Ein harzliches Glückauf

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Hallo Tom,

              https://forum.selfhtml.org/?t=171139&m=1119857

              hast du die Probleme eindeutig auf die VS-Installation zurückführen können? Kannst du evt. eine Aussage zur verwendeten Kombination von Komponenten machen, die zum Ausfall geführt haben [1]?

              Seitdem ich das Visual Studio 2008 wieder entfernt habe, und den Treiber der NVIDIA-Karte _nochmal_ installiert habe, funktioniert wieder alles.

              Deine Beschreibung passt auf eine kaputte Treiberinstallation.
              Bei meinen Installationen, auch in virtuellen Maschinen, waren bisher keine Nebenwirkungen zu beobachten.

              Panikmache ist wenig hilfreich!

              Freundliche Grüße

              Vinzenz

              1. Hello,

                Panikmache ist wenig hilfreich!

                Bist Du M$-Mitarbeiter?

                Ich habe es für sinnvoll gehalten, meine Erfahrungen mitzuteilen.
                Das hat mit Panikmache nichts zu tun.
                Da hätte ich dann sicherlich auch einige Verlage nebst B-Zeitung mit Informationen versorgt.

                Wenn ich den Installationsgang das nächste Mal gewagt habe, werde ich wieder berichten.
                Dafür muss ich aber erst sicherstellen, dass meine Datenplatten auch in jedem anderen (Windows-)System lesbar sind...

                Ein harzliches Glückauf

                Tom vom Berg

                --
                Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
                1. Hallo Tom,

                  Wenn ich den Installationsgang das nächste Mal gewagt habe, werde ich wieder berichten.

                  ja, tu das. Denn auch wenn nicht *sicher* ist, dass MSVS an deinen geschilderten Problemen schuld ist, so ist das Zusammentreffen doch zumindest auffällig.

                  Dafür muss ich aber erst sicherstellen, dass meine Datenplatten auch in jedem anderen (Windows-)System lesbar sind...

                  Wie kommst du darauf, dass sie es *nicht* sein könnten?

                  Schönen Sonntag noch,
                   Martin

                  --
                  Der Gast geht solange zum Tresen, bis er bricht.
                2. Hallo Tom,

                  Panikmache ist wenig hilfreich!
                  Bist Du M$-Mitarbeiter?

                  nein.

                  Wie ich bereits schrieb, ist die Wahrscheinlichkeit, dass Dein Problem am Grafiktreiber lag, über 99%.

                  Freundliche Grüße

                  Vinzenz

                  1. Hello,

                    Wie ich bereits schrieb, ist die Wahrscheinlichkeit, dass Dein Problem am Grafiktreiber lag, über 99%.

                    Der hat aber lange Zeit einwandfrei funktioniert.
                    Ich werde das nun gelich nochmals ausprobieren.
                    Wenn ich mich nicht wieder melde, habe ich mich wieder ausgesperrt.

                    Allerdings wird das System durch das Visual Studio 2008 auch ganz schön langsam. Da scheinen wohl einige kraftkostende Dienste gestartet zu werden (M$ SQL-Server, ...)

                    Ein harzliches Glückauf

                    Tom vom Berg

                    --
                    Nur selber lernen macht schlau
                    http://bergpost.annerschbarrich.de
  4. Hi,

    ich bins nochmal.

    Ich bin gerade (eher zufällig und in einem anderen Zusammenhang) auf GTK+ gestoßen, das ja eine freie (GNU LGPL 2.1) Alternative zu Qt zu sein scheint.

    Hat damit schon mal jemand von euch gearbeitet und kann seine Erfahrungen weitergeben?

    Schönen Sonntag noch!
    O'Brien

    --
    Frank und Buster: "Heya, wir sind hier um zu helfen!"
    1. Hallo,

      Ich bin gerade (eher zufällig und in einem anderen Zusammenhang) auf GTK+ gestoßen, das ja eine freie (GNU LGPL 2.1) Alternative zu Qt zu sein scheint.

      Hat damit schon mal jemand von euch gearbeitet und kann seine Erfahrungen weitergeben?

      GTK+ ist in C geschrieben, es gibt aber einen C++-Wrapper names GTKmm. Zu dem kann ich sagen, dass er in modernem objektorientierten C++ geschrieben ist und definitiv empfehlenswert ist. Wenn deine Zielplattform jedoch Windows ist würde ich die Entscheidung gut abwägen, da die Anwendung nicht mehr aussieht wie normale Windows-Anwendungen und die ganze Geschichte in meinen Augen auch relativ langsam ist.

      Gruss,
      OhneName

      1. Hi OhneName,

        GTK+ ist in C geschrieben, es gibt aber einen C++-Wrapper names GTKmm. Zu dem kann ich sagen, dass er in modernem objektorientierten C++ geschrieben ist und definitiv empfehlenswert ist. Wenn deine Zielplattform jedoch Windows ist würde ich die Entscheidung gut abwägen, da die Anwendung nicht mehr aussieht wie normale Windows-Anwendungen

        das ist ein guter Einwand. Wenn die harte Tour über das Windows-API (d.h. ohne MFC; Grüße an Der Martin) nicht allzu hart ist, mag es damit - zumindest für die ersten (privaten) Schritte - ja auch gehen.

        und die ganze Geschichte in meinen Augen auch relativ langsam ist.

        OK, das wäre dann ggf. auszuprobieren.

        Danke für deine Antwort!

        Schönen Sonntag noch!
        O'Brien

        --
        Frank und Buster: "Heya, wir sind hier um zu helfen!"
        1. Hallo,

          das ist ein guter Einwand. Wenn die harte Tour über das Windows-API (d.h. ohne MFC; Grüße an Der Martin) nicht allzu hart ist, mag es damit - zumindest für die ersten (privaten) Schritte - ja auch gehen.

          die perfekte GUI-Bibliothek für C++ gibt es eigentlich nicht. Von der WinAPI würde ich abraten, weil sie viel zu kompliziert ist um damit GUIs zu machen. Die MFC ist bekanntermaßen veraltet und überladen.

          QT ist ziemlich gut, hat aber immer noch so einen komischen Prä-Präprozessor, der mir immer ein Dorn im Auge ist.
          GTKmm hat keine nativen Widgets und ist irgendwie langsam auf Windows.
          WxWidgets sieht auf jedem System wie alle andern Programme auch aus, verwendet aber an einigen Stellen noch Präprozessor-Makros, was man eigentlich nicht mehr tun sollte.
          Dann gibt es noch etliche weitere, die alle ihre individuellen Vor- und Nachteile haben. Schau dir doch einfach mal diese Liste hier an und entscheide danach.

          Gruss,
          OhneName

          1. Hi,

            Dann gibt es noch etliche weitere, die alle ihre individuellen Vor- und Nachteile haben. Schau dir doch einfach mal diese Liste hier an und entscheide danach.

            sehr guter Hinweis, vielen Dank!

            Schönen Sonntag noch!
            O'Brien

            --
            Frank und Buster: "Heya, wir sind hier um zu helfen!"