sind "Desktop-Programmiersprachen" tot?



  • Ich würde erwarten, dass C++ gerade in der ernsthaften App Entwicklung eine große Rolle spielt, da es so ziemlich die einzige Sprache ist, die zwischen allen großen Plattformen portierbar ist...



  • @dot
    Man kann auch WebKit + HTML5 + JavaScript nehmen.
    Oder andere Frameworks, die man in einer anderen Teletubby-Sprache skripted (wie z.B. Kivy/Python).
    Wobei da natürlich die Performance nicht so gut ist.

    D.h. WENN man mal ein Performance-Problem mit diesen Frameworks hat, dann kann man oft kaum was ausrichten.



  • Da hast du natürlich recht. Daher meine Ausnahmebehandlung für den Teletubbyfall:

    dot schrieb:

    [...] in der ernsthaften App Entwicklung [...]

    😉

    Aber gut, natürlich trifft das Attribut "portierbar" auf diese Sprachen auch zu...



  • Es gibt auch ernsthafte Apps, wo die Performance keine grosse Rolle spielt. Bzw. wo man alle performance-kritischen Sachen genau so gut in z.B. Python machen kann, weil Python dafür fertige Funktionen anbietet (die dann in recht gut optimiertem C implementiert sind).

    Und der Rendering-Teil selbst soll z.B. bei Kivy ziemlich gut optimiert sein. (Wie das bei WebKit aussieht weiss ich nicht, aber auch da würde ich annehmen dass das halbwegs gut optimiert ist. Muss ja auch in den Browsern flutschen trotz dem die Webseite aus 1 Mrd. Elementen besteht.)

    Mir ist speziell HTML5 + JavaScript auch ein Graus. Aber ich denke man kann damit ernsthafte Apps entwickeln. Die Frage ist eher ob man will.



  • Mechanics schrieb:

    MobileApps schrieb:

    aber die große Mehrheit wird nie eine Zeile C oder C++ schreiben müssen.

    Unser App Abteilung programmiert auch in C++.

    Darf ich fragen mit welchem Framework?
    Oder schreibt ihr den System- und GUI-Code doppelt/dreifach?



  • Mit Marmalade, und jetzt auch so ein bisschen mit der neuesten Qt Version.



  • Die Leute die Mobile-Apps in C++ schreiben sind wohl absolut in der Minderheit(vom Spielekram mal abgesehen), wenn man sich so die Stellenausschreibungen anschaut. Und ob einen HTML5 + CSS3 + Javascript nun gefällt oder nicht, hier werde die meisten Apps nun mal derzeit entwickelt. Entweder kann man da mitreden, oder bleibt halt außen vor.

    In der Software-Entwicklung macht ein Löwenanteil mit den "Teletubbi-Sprachen" rum. Warum auch nicht? Abstraktion gibt es immer und die wird nicht aufhören. Da wo man sich das Leben einfacher machen kann, macht man dies natürlich. Die ganzen Techniken der Software-Entwicklung bleiben dennoch bestehen. Das sind ja alles keine Spinner, die die ganzen Web- und Mobileapps programmieren.



  • kleinerZusatz schrieb:

    Das sind ja alles keine Spinner, die die ganzen Web- und Mobileapps programmieren.

    Ähm...
    Doch.



  • Mechanics schrieb:

    Mit Marmalade, und jetzt auch so ein bisschen mit der neuesten Qt Version.

    Cool, danke!
    Weisst du zufällig ob das Marmalade SDK auch für Apps geeignet ist die keine Spiele sind? Also so sachen wo man die ganzen üblichen GUI-Widgets braucht.



  • hustbaer schrieb:

    Mechanics schrieb:

    Mit Marmalade, und jetzt auch so ein bisschen mit der neuesten Qt Version.

    Cool, danke!
    Weisst du zufällig ob das Marmalade SDK auch für Apps geeignet ist die keine Spiele sind? Also so sachen wo man die ganzen üblichen GUI-Widgets braucht.

    Wir schreiben keine Spiele. Wir machen allerdings was im CAD/PDM Bereich, und da haben wir auch eine 3D Visualisierung von parametrischen Modellen, könnte man also auch als ein Spiel sehen 😉 Die Modelle kann man in der App aber eben auch konfigurieren, mit Schiebereglern, Eingabefeldern und so Zeugs. Genau kenn ich mich da aber nicht aus, ich mach da höchstens was an der Kommunikation und am Application Server dahinter.



  • naja soll auch Bereiche geben wo man sich für App Entwickler und Webentwickler lustig macht.
    Bringt aber relativ wenig sich da gegenseitig schlecht zu reden, schließlich hat wohl jeder sein Know How in seinem Gebiet.

    Also C++ hat vor allem einen Vorteil: die Sprache ist flexibel. Wir programmieren in der Firma die embedded software in C++. Gleichzeitig entwickeln wir mit C++, Delphi und C# die PC Software.
    Aus Interesse hab ich in der Freizeit mal ein Spiel für Android erstellt. Dank NDK komplett mit C++ und OpenGL programmiert. Verwendet habe ich STL und boost, was braucht man mehr...
    Mit meiner C++ App hätte ich wohl auch keine allzu großen Probleme, auf Apple iPhone zu portieren. Zumindest solange man gewisse Dinge kapselt.

    Ich kann mit C++ also Smartphones, embedded Hardware und PCs programmieren. Bin ich mit Javascript auch so flexibel? Spätestens bei embedded Software ist Schluss!

    Also ich würde mal sagen, solide Kenntnisse in einer "richtigen" Programmiersprache sind besser als in irgendeiner Skriptsprache.
    Aber das ist nur die Meinung eines C++ Entwicklers, ich denke ein Javascript Entwickler wird dir da was anderes erzählen 😉



  • WebApps schrieb:

    Ich habe beruflich seit 10 Jahren keinen mehr getroffen, der erstens C oder C++ programmieren kann und zweites Desktop-Apps entwickelt. In meinen Projekten geht es immer um Webapps, selbst der Backend wird da in Java oder PHP entwickelt. Erstens weil es eine Riesencommunity darum gibt, zweitens sich auch schnell wieder Entwickler finden, die man mit ins Boot holen kann oder die sogar allein weiter machen können.

    kommt halt auf die branche drauf an.
    ich kenne viele c++ entwickler, und auch viele arbeitgeber, die c++ entwickler suchen. hingegen kenne ich nur wenige webentwickler.
    auch um c++ gibt es eine riesen community, hab bis jetzt jede für mich unlösbare frage entweder hier oder per stackoverflow lösen können.

    du siehst: alles ist relativ.



  • Richtig. Ich treffe jeden Tag dutzende Entwickler, die in C++ Software für Desktoprechner entwickeln, in der Arbeit 😉 Und ich kenne ebenfalls keinen einzigen Webentwickler persönlich.



  • MobileApps schrieb:

    Natürlich darf man sich heute auch kein Entwickler mehr nennen, wenn man nicht schon wenigtens für jedes Mobile Plattform eine App fertig bekommen hat. Web und Mobile sind DIE Zielplattformen der Entwicklung. Wer wissen will was gefragt und gebraucht wird muss sich nur in den Jobbörsen umschauen und ein Blick in die Entwickler-Zeitschriften gibt auch immer einen guten Überblick was gerade Stand der Technik ist. Der Weg geht nun man für 99% der Entwickler weg von Low-Level. Es wird immer Low-Level-Coder geben müssen, aber die große Mehrheit wird nie eine Zeile C oder C++ schreiben müssen.

    wenns nach dem geht kenn ich keinen einzigen entwickler 😃

    auch die mir bekannten jobbörsen suchen eher java, c, c++,c# entwickler. und wenn ein mobile entwickler ausgeschrieben wird,liest man fast immer auch, das c++ kenntnisse erwünscht sinn. komplexe apps wie 3d spiele oder AR werden hauptsächlich mit c++ entwickelt.



  • megatron11 schrieb:

    bin aber mit einem Kollegen ziemlich hart aneinander weil der mir sagte dass ich keine Ahnung habe was Programmierung betrifft und stehen geblieben bin und wenn man keine Apps schreiben kann fürs Handy dann ist man sowieso bald beruflich erledigt.

    apps kann doch jede pfeiffe programmieren.
    aber an solchen sätzen erkennt man doch sofort die leute, die ein paar skriptsprachen, vielleicht noch java können, und glauben, sie habens voll drauf.

    du mit deinen c++ kenntnissen kannst locker eine app schreiben (android kann mit c++ programmiert werden!), während er bei "ernstzunehmender" softwareentwicklung wahrscheinlich ansteht.



  • Hier wird die Webentwicklung ja ganz schon arrogant diskreditiert. Begründet sich dies auf Fachwissen oder der totalen Unkenntnis?

    Was unterscheidet denn die Webentwicklung vom der C++-Entwicklung von Desktop/Mobiel/Embedded-Apps?

    Webentwicklung bedeutet in meiner Firma:

    - Fast nur studierte Leute.
    - Es wird in großen Projekten viel über Design-Pattern(PHP Front-Controller, MVC, Farbik, Command etc., Datenbank-Pattern wie MPTT etc.) gelöst, aber auch kleine Projekte sehr pragmatisch entwickelt(schlanke JSON-RPC etc).
    - Wenn es sich anbietet, wird auch viel auf Frameworks z.B. Zend aufgebaut.
    - Es sind Admins mit am Werk, die vom Rechenzentrum bis zum Webproxy, LDAP-Anbindungen, Nagios-Überwachung, IDS, Härtung alles gut im Griff haben.
    - Es wird nur mit Versionsverwaltung(SVN und neustens GIT) gearbeitet.
    - Bei komplexeren Projekten müssen automatisierte Tests her, ansonsten kann man viele Probleme mit Seiteneffekten bekommen.
    - Alles wird relativ einheitlich und für alle lesbar dokumentiert(Confluence)
    - Bugtracking und Projektverwaltung sind natürlich bei jedem Projekt auch mit dabei. ansonsten würde die Teamarbeit kaum so effizient lösbar sein.
    - Und ständig Weiterbildung steht natürlich auch auf dem Programm. Es gilt viele Sprachen/Frameworks/Techniken und deren Eigenheiten zu kennen.
    - Jede Woche Meetings.

    Das alles bedeutet heute Web-Apps auf die Beine zu stellen, denn es sind bei weitem nicht mehr einfach ohne Sinn und Verstand hingeklatschte PHP-Seiten. Da hat sich in den letzten Jahre eine Menge getan und tut sich immer noch. Da am Ball zu bleiben, ist bei weiten kein Zuckerschlecken. Und Sicherheit steht immer an erste Stelle.

    Jetzt würde mich aber schon einmal die Entwicklungsunterschiede interessieren, die müssen ja riesengroß sein, wenn hier so abwegig über die Webentwicklung geredet wird.



  • dot schrieb:

    Was ist denn eine "Desktop Programmiersprache"!? Wer ernsthaft Apps entwickelt, wird zumindest zu einem Teil C++ verwenden, da das so ziemlich die einzige Sprache ist, die zwischen allen großen mobilen Plattformen portierbar ist.

    Merkwürdig, das ich als nicht App-Entwickler mindestens 2 Alternativen kenne die auf nahezu jeder Plattform laufen. C# in Kombination mit Xamarin (und ja, dies wird auch aktiv von einigen genutzt), sowie HTML5+JS - Keine Ahnung was sonst noch alles existiert.

    P.S: Kenne auch keinen Webentwickler persönlich, ungeachtet von der Verschiebung in Richtung Web-/App-Entwicklung, gibt es noch genügend Notwendigkeiten für Desktopanwendungen (ins besondere wenn man nicht mit Privatkunden zu tun hat).



  • FaktenFaktenFakten schrieb:

    Was unterscheidet denn die Webentwicklung vom der C++-Entwicklung von Desktop/Mobiel/Embedded-Apps?

    Da ich mit mobiler Programmierung nur am Rande zu tun habe, hänge ich mich nicht aus dem Fenster alles schlecht zu reden. Aber ich finde es schon bedenklich das man in einem Studium gesagt bekommt, das wenn jemand als Vertiefung Webentwicklung wählen will, der sich nach dem Sinn des Studiums fragen sollte.

    Des weiteren herrscht alleine schon deshalb eine schlechte "Wahrnehmung" von der Webentwicklung, weil in diesem Bereich sehr viele initial angefangen haben, die sonst nichts auf die Reihe bekommen hatten (und viele Umschuler, die nach wenigen Monaten meinten DIE Entwickler zu sein). Das gilt nicht für alle, nur hat der Ruf bereits recht früh sehr darunter gelitten.

    Zum nächsten ist die Mehrzahl der Webanwendungen und Apps wesentlich geringer im Umfang wie eine Desktopanwendung. Ich hatte vor kurzen jemanden der meinte das seine Anwendung sehr groß sei (bei etwa 10.000 Codezeilen). Dort beginnen die meisten Desktopanwendungen in der Regel. Eine Codezeile sagt zwar noch nicht viel aus, gibt aber schon einen Eindruck der Komplexität.

    FaktenFaktenFakten schrieb:

    Webentwicklung bedeutet in meiner Firma:
    - Fast nur studierte Leute.

    Das halte ich für eine Verschwendung - und das gilt nicht nur für die Webentwicklung. Für 90% der Entwicklung ist meines Erachtens ein Studierter eigentlich fehl am Platze. Auch wenn leider viele Firmen inzwischen der Meinung sind, das Studierte hier absolut notwendig wären.

    Die restlichen Punkte sollten in nahezu jedem größeren Projekt Standard sein.

    FaktenFaktenFakten schrieb:

    Das alles bedeutet heute Web-Apps auf die Beine zu stellen, denn es sind bei weitem nicht mehr einfach ohne Sinn und Verstand hingeklatschte PHP-Seiten. Da hat sich in den letzten Jahre eine Menge getan und tut sich immer noch. Da am Ball zu bleiben, ist bei weiten kein Zuckerschlecken. Und Sicherheit steht immer an erste Stelle.

    Letzteres wage ich etwas zu bezweifeln (nicht unbedingt für euch, aber doch für die Mehrheit der Webanwendungen). Das Problem ist nicht, das nicht auch Webentwicklung umfangreich sein kann, sondern das diese schon seit ihren Beginn in einem schlechten Ruf steht, und dies auch regelmäßig durch Einige untermauert wird (Ins besondere wenn man regelmäßig mit "Webentwicklern" zu tun bekommt, die Schwierigkeiten haben, sich in eine Desktopsprache einzuarbeiten, und auch nach Monaten nur Copy-Paste-Programmierung hinbekommen).

    Man sieht in der Regel nur Extreme und diese Prägen die Wahrnehmung.



  • asc schrieb:

    FaktenFaktenFakten schrieb:

    Webentwicklung bedeutet in meiner Firma:
    - Fast nur studierte Leute.

    Das halte ich für eine Verschwendung - und das gilt nicht nur für die Webentwicklung. Für 90% der Entwicklung ist meines Erachtens ein Studierter eigentlich fehl am Platze.

    Fehl am Platz? Ernsthaft?

    Wenn du meinst, das Studium sollte nicht immer notwendige Voraussetzung sein – geschenkt. Aber fehl am Platz klingt doch arg nach Studienabbrecherstolz.



  • audacia schrieb:

    Wenn du meinst, das Studium sollte nicht immer notwendige Voraussetzung sein – geschenkt. Aber fehl am Platz klingt doch arg nach Studienabbrecherstolz.

    Wozu ist wissenschaftliches Arbeiten bei 90% der Software nötig? Erkläre mir das bitte. Nach meinen Verständnis sollte man mit Studium eher Richtung Forschung und vielleicht Führung streben, nicht aber nur nach "normaler" Entwicklung. Und das wird hier doch auch immer wieder gerne von Studierten unterstrichen.


Anmelden zum Antworten