Layout&Style & Grafiken



  • Hallo,

    ich komme aus der Webprogrammierung und dem Webdesign und habe mich bisher lediglich mit PHP, HTML und CSS auseinandergesetzt.
    Nun würde ich gerne C++ lernen um auch Software-Anwendungen programmieren zu können.

    Ich hätte jedoch vorab zwei Fragen, welche mich bisher immer interessiert haben:

    1. Gibt es in der Anwendungsentwicklung ähnlich wie bei Webanwendungen eine Layout/Style-"Sprache" wie HTML oder CSS bzw. bringt C++ eigene möglichkeiten mit ähnlich strukturiert layouts zu erstellen?

    2. Ich habe bisher bei vielen Programmen gesehen, dass diese für die Programm-Oberfläche Bilddateien für Icons etc. nutzten. Diese sind leider oft sehr verpixelt oder haben das Problem schlechter Sarstellung wenn sie skaliert werden.
      Gibt es da eine Alternative in C++ wie für die Webanwendungen die SVGs oder wird in der Anwendungsentwicklung weiterhin lieber Grafiken genutzt?

    Ich weiß, Funktionalität geht vor Optik, aber ich finde eine Anwendung sollte auch ansprechend aussehen und leicht bedienbar sein und daher ist mir das auch wichtig.

    Vielen Dank für euer Fachwissen im Voraus

    p.s.: Sollte das hier das falsche Unterforum sein bitte verschieben 🙂



  • Lern' C# oder irgendwas mit JavaScript.


  • Mod

    Was Swordfish damit sagen will: C++ ist erst einmal reines Backend. Die Sprache kommt in ihrer Reinform mit überhaupt gar keiner Oberfläche. Jede Verbindung mit einer Art von Nutzeroberfläche kommt dadurch, dass man entweder von C++ aus eine externe Oberfläche ansteuert (beispielsweise indem man das Betriebssystem fragt, dass es ein Fenster malt und was es darein malen soll) oder umgekehrt indem irgendeine Form von Oberfläche das C++-Programm fragt, was es tun soll (z.B. indem ein Browser einen Request an einen C++-Server schickt). Für beide Richtungen gibt es Frameworks, die einem eine Menge Programmierarbeit dafür abnehmen, aber richtiges C++ ist das dann nicht mehr, da man dann eigentlich das Framework programmiert und nicht C++.

    Es gibt auch von C++ abgeleitete Sprachen, die sehr viel enger mit ihren Oberflächen verwoben sind, und wo dies bereits im Design der Sprache vorgesehen ist, z.B. C#.



  • Vielöen Dank für eure Antworten!

    @SeppJ sagte in Layout&Style & Grafiken:

    Was Swordfish damit sagen will: C++ ist erst einmal reines Backend. Die Sprache kommt in ihrer Reinform mit überhaupt gar keiner Oberfläche. Jede Verbindung mit einer Art von Nutzeroberfläche kommt dadurch, dass man entweder von C++ aus eine externe Oberfläche ansteuert (beispielsweise indem man das Betriebssystem fragt, dass es ein Fenster malt und was es darein malen soll) oder umgekehrt indem irgendeine Form von Oberfläche das C++-Programm fragt, was es tun soll (z.B. indem ein Browser einen Request an einen C++-Server schickt). Für beide Richtungen gibt es Frameworks, die einem eine Menge Programmierarbeit dafür abnehmen, aber richtiges C++ ist das dann nicht mehr, da man dann eigentlich das Framework programmiert und nicht C++.

    Es gibt auch von C++ abgeleitete Sprachen, die sehr viel enger mit ihren Oberflächen verwoben sind, und wo dies bereits im Design der Sprache vorgesehen ist, z.B. C#.

    Vielen Dank, das verstehe ich deutlich besser 🙂
    Also ist es im Grunde wie PHP welches zur strukturierten Ausgabe HTML und CSS nutzt.
    In welchen Sprachen sind die Oberflächen/UIs denn meist geschrieben? Ich meine schon gesehen zu haben, dass es Anwendungen gibt die ebenfalls mit HTML und CSS arbeiten, finde das aber irgendwie als würde mann den Kopf eines Elefanken an einen Löwen nähen ... oder ist das upcoming trend?

    Und könnt ihr mir was zu Punkt 2 sagen?


  • Mod

    Letztlich sind viele Programme (nicht Webanwendungen), die man so kennt, dann halt doch in C++ geschrieben. Oder C. oder C#. Oder Java. Das sind so die großen. Oft indem man gegen besagte Frameworks programmiert (welche im tiefsten Inneren dann meist in C geschrieben sind).
    Was der Punkt an der Sache ist: Es ist nicht so, dass man C++ keine Endanwenderanwendungen schreiben könnte, aber du solltest das beim Lernen der Sprache erst einmal vergessen. Das ist nicht der Grund, wieso man C++ lernen sollte. Endanwender-GUI ist ein Extra, das du später obendrauf lernen kannst, wenn du C++ richtig beherrscht.
    Oder wenn dir Entanwender-GUI wichtig ist, dann solltest du eine andere Sprache lernen. C# oder Java sind nicht so extrem verschieden von C++, aber deutlich mehr anwenderfokussiert.



  • @Firehold sagte in Layout&Style & Grafiken:

    finde das aber irgendwie als würde mann den Kopf eines Elefanken an einen Löwen nähen ... oder ist das upcoming trend?

    Aus meiner Sicht: eindeutig beides 😃



  • @SeppJ
    Vielen Dank für deine Antwort. Für mich war ja mehr die Frage ob es möglich ist und wie das in der C++ umgebung so funktioniert. Natürlich, wie ich schon schrieb, haben funktionalität und technische umsetztung priorität, für mich war nur interessant zu wissen wie das bei der anwendungsentwicklung so funktioniert.



  • Wenn dein entgueltiges Ziel ist, xplatform applications zu bauen (was sich mMn heutzutage nicht weit von webapps abhebt ((ja, ich weiss))), wuerde ich direkt zu embedded chromium (aka electron oder diverse forks) raten.

    Da hast direkt dein ganzes javascript geraffel, benutzt chromium fuer den app-layer und kannst den ganzen kram mit jeder menge overhead und binaries >50MB+ fuer jedes OS mit nur einem npm run build bauen lassen.

    Das klingt zwar alles nicht sonderlich geil (ist es auch nicht), aber dennoch benutzten doch sehr viele leute heutzutage freiwillig electron apps (ich nenne einfach mal discord/slack als vermutlich "bekannteste")

    Docs sind nicht schlecht und du hast effektiv alles was du brauchst.


Anmelden zum Antworten