Programme für andere Betriebssysteme



  • hi 😉

    kann man eigentlich auch mit C++ Programme für Linux schreiben?
    Ich meine ja,dass manche C++ Programme nicht mehr auf Windows™ Vista™ funktionieren,aber dazu haben die doch bestimmt irgendwelche Quelltexte angepasst oder so?

    Aber wie kann ich für andere BS coden?

    grüße



  • hi

    hi

    kann man eigentlich auch mit C++ Programme für Linux schreiben?
    

    klar! c++ ist 100% plattformunabhängig. plattformabhängig sind höchstens andere apis (z.B. winApi). wenn du eine plattformspezifische api benutzt, läuft das programm nur unter einem os. benutzt du ausschlielich palttformunabhängige apis (wie z.B. die std-library), läuft es unter allen os, benutzt du eine crossplattform-api (z.B. Qt, GTK), läuft das rpogramm unter mehreren bestimmten os.

    Ich meine ja,dass manche C++ Programme nicht mehr auf Windows™ Vista™ funktionieren,aber dazu haben die doch bestimmt irgendwelche Quelltexte angepasst oder so?

    hä? wie? klar, ich habe auch alle meine programme jetzt angepasst, damit sie nicht mehr unter win vista laufen. 🙄

    Aber wie kann ich für andere BS coden?

    du kompilierst deinen code auf dem ziel-os und benutzt nur "passende" apis (z.B. keinen winApi-code unter linux benutzen).

    mfg,
    julian



  • das ganze zu erklären ist etwas schwierig. Stimmt C++ ist hundertprozentig plattform unabhängig. Aber nur das reine Ansi... nutzt du zum beispiel schon flush um den input buffer zu leeren gehts bei Linux/Junix in die Hose weil das wieder der Standard nicht so genau beschreibt 😉

    Daher.... wenn du wirklich plattformunabhängig arbeiten willst, nutze keine Api's bzw nur Api's die für die Plattformen auf denen du arbeiten willst auch portiert sind.

    Schreib dein Programm.... und compilier es auf Plattform1 und dann auch auf plattform2 mit dem zu der Plattform gehörigen Compiler.

    Oder sofern dir ggf laufzeitverhalten nicht ganz so wichtig sind, nutz "Plattform unabhängige" sprachen wie Java, C#



  • Fedaykin schrieb:

    das ganze zu erklären ist etwas schwierig. Stimmt C++ ist hundertprozentig plattform unabhängig. Aber nur das reine Ansi... nutzt du zum beispiel schon flush um den input buffer zu leeren gehts bei Linux/Junix in die Hose weil das wieder der Standard nicht so genau beschreibt 😉

    Nein. std::flush ist Standard.



  • gibt es schon c#-compiler für linux bzw. nich-windows-os?
    ich dachte das "plattformunabhängig" bei M$ bedeutet, es läuft auf allen windows nt-plattformen ?
    bitte korrigieren falls ich da falsch informiert bin.

    mfg,
    julian



  • Konrad Rudolph schrieb:

    Fedaykin schrieb:

    das ganze zu erklären ist etwas schwierig. Stimmt C++ ist hundertprozentig plattform unabhängig. Aber nur das reine Ansi... nutzt du zum beispiel schon flush um den input buffer zu leeren gehts bei Linux/Junix in die Hose weil das wieder der Standard nicht so genau beschreibt 😉

    Nein. std::flush ist Standard.

    std::flush vielleicht... bin mir da nicht ganz sicher, ich mein das flush aus der stdio.h, das ist nämlich nicht standard und funktioniert z.B. unter unix systemen nicht.



  • Julian__ schrieb:

    gibt es schon c#-compiler für linux bzw. nich-windows-os?

    ja, gibts. schimpft sich 'mono'. aber was man so darüber hört: es scheint nicht wirklich was zu taugen. nimm besser java. das funzt fast überall.

    Julian__ schrieb:

    ich dachte das "plattformunabhängig" bei M$ bedeutet, es läuft auf allen windows nt-plattformen ?

    ich glaube ms verwendet dieses wort nie 😃

    Fedaykin schrieb:

    ich mein das flush aus der stdio.h, das ist nämlich nicht standard und funktioniert z.B. unter unix systemen nicht.

    du meist bestimmt 'fflush(stdin)'



  • ten schrieb:

    Julian__ schrieb:

    gibt es schon c#-compiler für linux bzw. nich-windows-os?

    ja, gibts. schimpft sich 'mono'. aber was man so darüber hört: es scheint nicht wirklich was zu taugen.

    Das ist definitiv eine Fehlinformation ...

    nimm besser java. das funzt fast überall.

    ... und das ist einfach nur sadistisch.



  • ich glaube ms verwendet dieses wort nie

    kann gut sein, ich weiss es nicht. ich habe das nur mal in einem thread hier im forum so gelesen.

    //edit (jetzt erst den tip mit java gesehen ;)): ich benutze schon absichtlich C++ , eben weil es überall (?? zumindest auf Mac, Linux, Windows, und anderen) funktioniert. aber java möchte ich mir gerne auch nochmal aneignen. (hab noch zeit, nächstes schuljahr beginnt erst mein informatikunterricht mit M$-office und vba, mit "glück" vllt. delphi 5 :)).

    mfg,
    julian



  • Julian__ schrieb:

    ich benutze schon absichtlich C++ , eben weil es überall (?? zumindest auf Mac, Linux, Windows, und anderen) funktioniert.

    naja, man bekommt das schon irgendwie hin, aber man muss sich viel mit systembedingten unterschieden auseinandersetzen.

    Julian__ schrieb:

    //edit (jetzt erst den tip mit java gesehen ;)): [...] aber java möchte ich mir gerne auch nochmal aneignen.

    lohnt sich auf jeden fall 👍
    java macht spass und falls du mal beruflich was mit programmierung machen willst, ist es auch nicht verkehrt, wenn man java kann.
    C#.NET-kenntnisse sind auf dem arbeitsmarkt zwar auch sehr gefragt, aber es ist eben sehr windoofs-spezifisch und ich denke mal, dass man die meisten .NET anwendung nur mit viel frickelei auf 'nem anderen OS zum laufen kriegt...
    🙂



  • Fedaykin schrieb:

    Konrad Rudolph schrieb:

    Fedaykin schrieb:

    das ganze zu erklären ist etwas schwierig. Stimmt C++ ist hundertprozentig plattform unabhängig. Aber nur das reine Ansi... nutzt du zum beispiel schon flush um den input buffer zu leeren gehts bei Linux/Junix in die Hose weil das wieder der Standard nicht so genau beschreibt 😉

    Nein. std::flush ist Standard.

    std::flush vielleicht... bin mir da nicht ganz sicher, ich mein das flush aus der stdio.h, das ist nämlich nicht standard und funktioniert z.B. unter unix systemen nicht.

    Was du meinst, nennt sich fflush() - und flusht laut ANSI-C Standard den Ausgabepuffer eines FILE's. Was es mit reinen Eingabedateien (wie stdin) macht, ist implementationsabhaängig (und eine Quelle unzähliger Auseinandersetzungen).

    (da ist C++ im Vorteil: es hat klar unterschiedene Klassen für Eingabe (istream), Ausgabe (ostream) und gemischten Zugriff (iostream) - und flush lässt sich nur auf Streams mit Ausgabe-Anteil anwenden, wodurch cin.flush() u.ä. direkt vom Compiler gesperrt wird)



  • ten schrieb:

    Julian__ schrieb:

    ...
    //edit (jetzt erst den tip mit java gesehen ;)): [...] aber java möchte ich mir gerne auch nochmal aneignen.

    lohnt sich auf jeden fall 👍
    ...

    👍

    ten schrieb:

    ...
    java macht spass ...

    👎 (jedenfalls im Verhältnis zu C++)

    ten schrieb:

    und falls du mal beruflich was mit programmierung machen willst, ist es auch nicht verkehrt, wenn man java kann....

    👍

    Also: 2 von 3 Punkten ... gar nicht mal schlecht. 😉

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Julian__ schrieb:

    //edit (jetzt erst den tip mit java gesehen ;)): [...] aber java möchte ich mir gerne auch nochmal aneignen.

    lohnt sich auf jeden fall 👍
    ...

    Ba, bei so einer Vorlage komme ich nicht umhin zu sagen: Java lernt man lieber nie als spät.

    (Sorry, ich weiß, Language wars sind böse ... aber Java auch. :-p)



  • Konrad Rudolph schrieb:

    Ba, bei so einer Vorlage komme ich nicht umhin zu sagen: Java lernt man lieber nie als spät.
    (Sorry, ich weiß, Language wars sind böse ... aber Java auch. :-p)

    hast du schlechte erfahrungen damit gemacht?



  • Konrad Rudolph schrieb:

    Simon2 schrieb:

    Julian__ schrieb:

    //edit (jetzt erst den tip mit java gesehen ;)): [...] aber java möchte ich mir gerne auch nochmal aneignen.

    lohnt sich auf jeden fall 👍
    ...

    Ba, bei so einer Vorlage komme ich nicht umhin zu sagen: Java lernt man lieber nie als spät.

    (Sorry, ich weiß, Language wars sind böse ... aber Java auch. :-p)

    Ach, ich finde, man kann Java erst richtig (neutral formuliert) einschätzen, wenn man's kennt - allein deswegen lohnt sich definitiv, Java zu lernen.

    Durch das "lernen" von Java habe ich einiges an C++ neu zu schätzen gelernt ... und auch, was man IMO in C++ hätte besser machen können.
    Außerdem verstehe ich meine Javakollegen jetzt besser - nicht nur bzgl. bestimmter "Sprachspecials", sondern (wichtiger) von der gesamten Denkweise.

    .... deswegen hatte ich mir auch schon mal Cobol angesehen ("gelernt" wäre zuviel gesagt) - und ich bin ganz bestimmt kein Cobolfan geworden.

    Ist für mich wie mit den "echten Sprachen": Je mehr man kennt, umso besser - man muss sie nicht lieben, aber kennen.

    (leider bin ich in natürlichen Sprachen eine Niete - sonst würde ich anfangen, Chinesisch zu lernen. Nicht, weil ich ein Freund von Land und Leuten wäre, sondern weil die bald die Welt ähnlich intensiv beeinflussen werden, wie Java die "Programmiererwelt" - wenn nicht gar mehr)

    Um vom "language war" mal grob wieder zum Ursprungsthema zurückzukommen: Für wen "Plattformunabhängigkeit" ein Thema ist, sollte sich Java definitiv auch ansehen - aber eben auch wirklich genau und nicht nur die "Werbeaussagen" ("Java ist plattformunabhängig" ... fällt in dieselbe Kategorie wie "Java hat keine Pointer"). Und dann muss er prüfen, ob die Form der Plattformunabhängigkeit zusammen mit den anderen Features von Java für das eigene Problem und dessen Rahmenbedingungen passt oder vllt. etwas Anderes besser geeignet ist. Dabei sollte man nicht vergessen, dass unter "plattformunabhängig" oft recht unterschiedliche Dinge gemeint sind, die man konkret untersuchen muss.

    Bei uns in der Abteilung kam z.B. C (ohne "++" aber vielleicht ändert sich das bald) bei dieser Betrachtung als beste Alternative für "plattformunabhängige Programmierung" heraus.

    Gruß,

    Simon2.



  • ten schrieb:

    C#.NET-kenntnisse sind auf dem arbeitsmarkt zwar auch sehr gefragt, aber es ist eben sehr windoofs-spezifisch und ich denke mal, dass man die meisten .NET anwendung nur mit viel frickelei auf 'nem anderen OS zum laufen kriegt...
    🙂

    ten, wir wissen das du MS und Windows nicht magst, und das macht deine "Beratung" bzgl. C# und .NET unseriös. Auch das du C++ nicht magst, macht es hier im C++ Forum nicht besser.



  • ten schrieb:

    Konrad Rudolph schrieb:

    Ba, bei so einer Vorlage komme ich nicht umhin zu sagen: Java lernt man lieber nie als spät.
    (Sorry, ich weiß, Language wars sind böse ... aber Java auch. :-p)

    hast du schlechte erfahrungen damit gemacht?

    Ja, sehr schlechte. Aber ich rate von Java eigentlich nicht aufgrund technischer Mängel ab sondern weil es einfach furchtbar schlecht designed ist. Ich zitiere hier immer wieder gerne Stepanov:

    http://www.stlport.org/resources/StepanovUSA.html schrieb:

    I spent several months programming in Java. Contrary to its authors prediction, it did not grow on me. I did not find any new insights - for the first time in my life programming in a new language did not bring me new insights. It keeps all the stuff that I never use in C++ - inheritance, virtuals - OO gook - and removes the stuff that I find useful. It might be successful - after all, MS DOS was - [...] but it has no intellectual value whatsoever. [...]
    As the chief proponent of Java at SGI told me: "Alex, you have to go where the money is." But I do not particularly want to go where the money is - it usually does not smell nice there.



  • Artchi schrieb:

    ten, wir wissen das du MS und Windows nicht magst,

    naja, ich bin da etwas zwiegespalten. einiges mag ich, anderes nicht.

    Artchi schrieb:

    und das macht deine "Beratung" bzgl. C# und .NET unseriös. Auch das du C++ nicht magst, macht es hier im C++ Forum nicht besser.

    alles, was ich schreibe sind ja auch meine persönlichen ansichten. der OP mag sich noch andere meinungen anschauen und soll dann selbst entscheiden...
    🙂



  • Konrad Rudolph schrieb:

    Aber ich rate von Java eigentlich nicht aufgrund technischer Mängel ab sondern weil es einfach furchtbar schlecht designed ist.

    findest du?
    ich finde java ist eigentlich fast perfekt.
    das einzige was mir etwas missfällt, ist diese etwas unübersichtliche und riesengrosse klassenbibliothek, in der man für fast jedes problemchen was fertiges findet. aber sonst stimmt alles...



  • Ja, sehr schlechte. Aber ich rate von Java eigentlich nicht aufgrund technischer Mängel ab sondern weil es einfach furchtbar schlecht designed ist. Ich zitiere hier immer wieder gerne Stepanov:

    Da hast du und Stepanov was falsch verstanden. Java hatte doch nie das Ziel inovativ zu sein. IMHO hatte Java das Ziel möglichst einfach und Objektorientiert zu sein. Vieles wurde ja deswegen extra ausgelassen, weil einfach die Sprache dadurch nur aufgebläht wird und nur geringen Nutzen bringt (Operatorüberladung, Mehrfachvererbung, ... ).

    Wenn man was inovatives will dann sollte man zu Phyton, Ruby oder gar C# gehen.

    findest du?
    ich finde java ist eigentlich fast perfekt.
    das einzige was mir etwas missfällt, ist diese etwas unübersichtliche und riesengrosse klassenbibliothek, in der man für fast jedes problemchen was fertiges findet. aber sonst stimmt alles...

    Seit wann ist eine umfangreiche Standardbibliothek was schlechtes? Willst du lieber stundenlang im Internet nach einer Bibliothek suchen, oder das Rad zum 1000ten mal neu erfinden?

    Ausserdem wer zwingt dich diese zu benutzen? Mache halt deine eigene String-Klasse oder lade dir eine andere GUI-Bibliothek runter.



  • DEvent schrieb:

    Seit wann ist eine umfangreiche Standardbibliothek was schlechtes? Willst du lieber stundenlang im Internet nach einer Bibliothek suchen, oder das Rad zum 1000ten mal neu erfinden?

    das hab' ich etwas missverständlich formuliert.
    das 'suchen' nach der richtigen klasse ist ziemliche fummelei.
    wenn man wenig erfahrung mit java hat, baut man sich manchmal was selber um später festzustellen, dass die lösung einfach der import des richtigen packages gewesen wäre...

    Simon2 schrieb:

    Bei uns in der Abteilung kam z.B. C (ohne "++" aber vielleicht ändert sich das bald)...

    wieso ohne ++?
    macht ihr viel für embedded systeme?


Anmelden zum Antworten