Win-API für Win-Programmierung immer noch aktuell und "Pflicht" ?



  • DerKleineProgrammierer schrieb:

    C++ hat nun mal allgemein und in Bezug auf OOP doch mehr Möglichkeiten.

    das stimmt doch garnicht. die meisten anderen OO-sprachen (C# z.b.) setzen OO und das drumherum besser um, als c++.
    🙂



  • Und bei jedem modul , wat da dazu kommt spinnt ACCESS 2000 (Jawohl !!, mehr is nicht drinne !!) immer mehr.

    DESHALB: C++ !!

    Naja, diese schlussfolgerung is IMHO ned 100% nachvollziehbar.

    C++ ist super, um Prozesse nachzubilden, automaten zu bauen, und um die Performance zu wahren. C++'s Staerke ist eigentlich die enge beziehung zu C und der trotzdem funktionierende OO Ansatz.

    Wo C++ gar ned gut ist, ist bei den GUI's, da gibts um laengen bessere Alternativen. Ohne zusaetzliche Libs bleibt dir nur die winapi ... und Leute die Freiwillig winapi programmieren, die schlafen auch auf Nagelbett und peitschen sich selber 🙂

    es gibt natuerlich tonnen Libs fuer c++ und guis, haben alle ihre vor und nachteile ... allein das richtige framework auszuwaehlen ist schon ne wissenschaft fuer sich ^^

    Es ist durchaus gangbar GUI relevante sachen nicht in C++ zu schreiben.
    WIr haben hier ne DB landschaft, wo technische daten, protokoll daten,messdaten ... gewartet werden. Und alle gaengigen Frontends sind mittlerweile nach Java portiert wurden. (frueher wars smalltalk). Die anzahl der installierten clients belauft sich auf > 1000
    Java ist nur ein beispiel. Denkbar wieterhin waeren Python, Visual basic, ... u.v.m

    Warum werden im industriellen Umfeld so viele Oberflaechen mit C++ implementiert ?
    Imho snds gar ned so viele ....
    und oft muss man auf hardwernahe Sprache runter, also brauch man C/C++ programmierer ... dann macht man die gui eben auch in c++ ...

    Ciao ...



  • es gibt natuerlich tonnen Libs fuer c++ und guis, haben alle ihre vor und nachteile ... allein das richtige framework auszuwaehlen ist schon ne wissenschaft fuer sich ^^

    Das is völlig korrekt.

    Das Problem ist aber bei JAVA und vielen anderen aufgeführten Sprachen auch nich unbedingt kleiner....

    Ich brauch eine Sprache, die nun mal eben sehr universell zu gebrauchen ist - von kleinen Dienstprogrammen bis zu großen Anwendungen.
    Und die Unterstützung für Embedded SQL is in C/C++ ja auch nich schlecht.

    Dass ich mir dafür auf der anderen Seite ziemliche Mehrarbeit und Probleme bei der GUI einhandele 😞 (zumindest am Anfang), is völlig klar....

    Grüße
    DerKleineProgrammierer



  • Das klingt mir wieder nach der alten Diskussion "Welche Sprache ist die beste- vielseitigste- einfachste- am besten geeignete für..." Die Frage ist so nicht zu beantworten. *DIE* universelle beste Sprache gibt es nicht.

    Als Profi-Progger beherrscht man meistens mehrere Sprachen, von denen man dann je nach Aufgabe die geeignetste auswählt und für den Rest Kompromisse macht. Wie Du schon selbst sagst:

    Das Problem ist aber bei JAVA und vielen anderen aufgeführten Sprachen auch nich unbedingt kleiner....

    Für kleine Dienstanwendungen kannst Du eigentlich jede Sprache nehmen. Für große Projekte mußt Du halt auswählen...



  • als profi progger beherschste c und c++. der rest ist wasd für gelegenheitsjobs, eignet man sich kurz an wenn man es braucht oder zu genötigt wird und gut ist.



  • Naja- WIE man sich die anderen aneignet, ist ja egal...



  • Hallo Leute,

    Erstmal "villemols Merci" für eure Postings.

    Da waren doch einige Denkanstöße dabei,die ich für die Zukunft gut gebrauchen kann.

    Nochmals schönen Dank und Grüße

    DerKleineProgrammierer



  • Na das ist doch mal eine seltsame Sicht der Dinge...

    Programmiersprachen und APIs sucht man eigentlich nach ihrem Einsatzgebiet aus - nicht nach persönlichem gefallen.

    So ist z.B. Java erste Wahl, wenn es um Plattformunabhängigkeit geht, aber nicht zu tief in die Hardware gegriffen werden muss. Ganz nebenbei lassen sich solche Applikationen auch noch in kürzester Zeit entwickeln.

    Geht es z.B. um Treiberentwicklung, ist nach wie vor C _die_ Sprache.

    Insgesamt bin ich aber der Meinung, das neue Projekte, bei denen Java nicht verwendet werden kann/soll, in jedem Fall auf ein portables Toolkit wie wxWidgets oder QT aufsetzen sollten. Software, die sich auf eine betriebssystemtechnische Einbahnstraße begeben haben und nur darauf warten, von flinkeren Konkurrenten auf anderen Plattformen abgelöst zu werden gibt es schließlich genug.

    Ach ja...wofür C# gut sein soll, weiß ich übrigens beim besten Willen nicht: Es hat die gleichen Einschränkungen wie Java, ist dafür aber auch noch auf Windows beschränkt (komme mir jetzt bitte keiner mit Mono, das funktioniert nicht wirklich zufriedenstellend).



  • TomoT schrieb:

    Na das ist doch mal eine seltsame Sicht der Dinge...

    Das sagt der Richtige 😉

    TomoT schrieb:

    Software, die sich auf eine betriebssystemtechnische Einbahnstraße begeben haben und nur darauf warten, von flinkeren Konkurrenten auf anderen Plattformen abgelöst zu werden gibt es schließlich genug.

    Sehr einseitige Perspektive. Plattformunabhängigkeit ist längst nicht alles.

    TomoT schrieb:

    Ach ja...wofür C# gut sein soll, weiß ich übrigens beim besten Willen nicht: Es hat die gleichen Einschränkungen wie Java

    Ganz offensichtlich kennst du C# nicht.

    TomoT schrieb:

    (komme mir jetzt bitte keiner mit Mono, das funktioniert nicht wirklich zufriedenstellend).

    Sagt wer? Beleg?



  • Sehr einseitige Perspektive. Plattformunabhängigkeit ist längst nicht alles.

    Richtig. Ich schrieb jaauch "Portabilität" 😉

    Was nützen dir irgend wann eine Million ganz tolle Codezeilen, wenn das zugehörige Betriebssystem nicht mehr aktuell ist oder sich der Markt zusätzlich zu anderen Systemen hin bewegt hat? DER Aufwand, das alles zu portieren ist mörderisch - wer clever ist und von anfang an die richtige Entscheidung trifft, hat praktisch gar keinen Mehraufwand.

    [quot]Ganz offensichtlich kennst du C# nicht.[/quote]

    Doch. Und auch Mono. Ich habe lange genug für ein kommerzielles Projekt darum herumevaluiert. Der Aspekt "plattformunabhängig" ist einfach nicht gegeben.



  • "Plattformunabhängigkeit" ala Java ist die überbewerteste Sache seit Objektorientierung.



  • TomoT schrieb:

    wer clever ist und von anfang an die richtige Entscheidung trifft, hat praktisch gar keinen Mehraufwand.

    Das ist leider pure Utopie, einerseits wegen "write once, debug everywhere", andererseits, weil du die Produktivitätsvorteile plattformspezifischer Frameworks vernachlässigst.

    TomoT schrieb:

    Doch. Und auch Mono. Ich habe lange genug für ein kommerzielles Projekt darum herumevaluiert. Der Aspekt "plattformunabhängig" ist einfach nicht gegeben.

    Natürlich sind deine Anwendungen nicht wunschgemäß plattformunabhängig, wenn du ein Windows-Programm mit .NET schreibst. Aber es gibt durchaus Szenarien, wo Mono hinreichend mithalten können soll, z.B. ASP.NET.
    Abgesehen davon hast du natürlich Recht - .NET ist oftmals noch kein adäquater Ersatz für Java, wenn Portabilität wirklich eine Rolle spielt.



  • audacia schrieb:

    Das ist leider pure Utopie, einerseits wegen "write once, debug everywhere"

    Das stimmt natürlich, einen gewissen Debuggingaufwand hast du in jedem Fall. Dennoch sehe ich den Aufwand, eine Applikation komplett zu portieren immer noch als wesentlich größer an, als eine bisher vernachlässigte Plattform nachträglich noch zu debuggen/die notwendigen kleinen Anpassungen vorzunehmen. Clevere Programmierung natürlich vorausgesetzt - wenn du einen Entwickler im Team hast, der dann doch irgend welche systemspezifischen Krämpfe verwendet, bist du eh im Ar*** 😉

    Einen positiven Nebenaspekt gibt es allerdings auch, wenn du auf verschiedenen Plattformen compilierst: der Code wird _wesentlich_ sauberer, da die unterschiedlichen Compiler sich in dem, was sie akzeptieren und was nicht, doch immer noch ein wenig anders verhalten. Und sauberer Code hat der Stabilität noch nie geschadet.

    Aber es gibt durchaus Szenarien, wo Mono hinreichend mithalten können soll

    Mono hat seine Nische, ganz klar. Nur ist es eben so, dass gerade hier mit Java eine sehr starke Referenz existiert. Und wer beide Welten kennt, stellt sich sicher irgend wann die Frage, warum er mit .NET/Mono auf einen so kleinen gemeinsamen Nenner setzen soll, wenn es doch auch anders geht. Speziell unter dem Aspekt betrachtet, das Projekte gerne mal aus dem Ruder laufen und sich die ursprünglich mal ganz scharf umrissenen Requirements plötzlich explosionsartig vermehren. Da kann dieser "kleinste gemeinsame Nenner" sehr schnell und vor allem unvorhersehbar zu einem "zu kleinen gemeinsamen Nenner" werden.



  • TomoT schrieb:

    Was nützen dir irgend wann eine Million ganz tolle Codezeilen, wenn das zugehörige Betriebssystem nicht mehr aktuell ist oder sich der Markt zusätzlich zu anderen Systemen hin bewegt hat? DER Aufwand, das alles zu portieren ist mörderisch - wer clever ist und von anfang an die richtige Entscheidung trifft, hat praktisch gar keinen Mehraufwand.

    Ich bezweifle, dass wir hier noch den Tag erleben werden, an dem Linux Windows auf dem Desktop abgelöst hat. Und so portabel zu programmieren, dass die Möglichkeiten des einen Betriebssystems so ausgenutzt werden, ohne das andere zu vernachlässigen, ist auch nicht ganz einfach. Meistens läuft es hier nämlich auf den kleinsten gemeinsamen Nenner hinaus. Also lieber eins richtig unterstützen als mehrere nur halbherzig.



  • Das mag für 08/15-Desktop-Anwendungen stimmen, in der Industrie ist das aber schon lange nicht mehr so, da gibt es mehr relevante Systeme als nur Windows und Linux.


Anmelden zum Antworten