Programmiersprache (für Neuling) mit GUI

Das Apacheprojekt hat einen kleinen Webserver in C geschrieben, der von 60% der Webseiten im Internet verwendet wird. Man kann also zu Recht behaupten, dass die Doku von Prolog vergleichsweise mies ist im Netz.

Dafür, C und C++ in einen Topf zu werfen und dann noch frech zu behaupten, die wären schlecht dokumentiert, würde ich dir am liebsten den Mund mit Seife auswaschen!
 
S.Kara schrieb:
Willst du eine richtig einfache Sprache für Windows: Nimm Visual Basic.
Willst du für dich einfach nur Privat ein paar Spielereien programmieren: Nimm Java.
Willst du später auch anspruchsvollere Anwendungen bauen: Nimm C++.

Sehr ich nicht so. Erstmal gibt es genug professionelle Anwendungen, die in C#/Java geschrieben werden. Weißt du ja selbst :P Auch sehr viel Backend kram oder große Websites. VB und Java zu trennen, macht meiner Meinung nach auch keinen Sinn, da VB genauso viel kann wie C# und damit von Haus aus mehr als Java. Entsprechend ist die Sprache auch nicht einfacher, sondern sieht nur anders aus. Was eigentlich nur in den ersten 20min ein Vorteil ist, denn sobald man die Keywords verstanden hat, ist die Syntax einfach zu viel und lenkt vom eigentlich Inhalt ab. Abgesehen davon ist dann die Transition zu den ganzen C-Syntax Sprachen auch wieder schwerer. Der einzige Grund Java C# vorzuziehen ist plattformunabhängiges Programmieren, was er auch nicht vor hat. Der Teil mit der GUI spricht klar gegen Java und für C#.
 
tnoay schrieb:
uh ja super, schön mit den compilern rumärgern...visual studio ist das einzig brauchbar als anfänger, dazu noch die schlechte doku von c++. aber egal, mich solls nicht kümmern.

edit: ich selbst hab eine kleine java app geschrieben mit ca. 300 seitenbesuchen im monat auf github und kann daher zurecht behaupten, dass die doku von c vergleichsweise mies ist im netz.

Hmm, es gibt doch bestimmt dutzende von Online-Referenzen für die Standardbibliotheken von C und C++. Und auch für optionale Bibliotheken wie boost und Qt ist die Doku gut bis akzeptabel. Natürlich gibt es auch einige Bibliotheken, die wirklich mies dokumentiert sind (ACE ... *würg*), aber das dürfte für Java ja wohl genau so zutreffen wie für C++, C oder jede andere Sprache.
 
tnoay schrieb:
uh ja super, schön mit den compilern rumärgern...visual studio ist das einzig brauchbar als anfänger, dazu noch die schlechte doku von c++. aber egal, mich solls nicht kümmern.
Wieso rumärgern?
Z.B. Eclipse runterladen, starten und loslegen.
Und die beste IDE für C++ (egal ob Anfänger oder Profi) ist meiner Meinung nach der C++ Builder von Rad Studio. Ich bin froh, dass ich damit entwickeln darf und will nichtmehr zurück zu Eclipse, Netbeans oder VisualStudio.
Der große Nachteil ist halt leider der Preis.

tnoay schrieb:
edit: ich selbst hab eine kleine java app geschrieben mit ca. 300 seitenbesuchen im monat auf github und kann daher zurecht behaupten, dass die doku von c vergleichsweise mies ist im netz.
OK, wenn man von der Doku ausgeht würde ich auch eher Java empfehlen als C. Zwischen C und C++ gibt es aber immer noch ein paar feine Unterschiede. Wer da mit einer Funktion nicht zurecht kommt findet im Internet genügend Hilfen. Man ist hier auch nicht auf die MSDN von MS angewiesen.

@BlooDFreeZe
GUI's kann man mit Java genauso einfach entwickeln wie mit C# oder C++. Bei den heitigen IDE's bekommt jedes 10-jährige Kind eine GUI erstellt.
Der einzige Unterschied zwschen Java und C# ist, dass letzteres das .net Framework benötigt und Java die JVM. Die JVM kann man dazu sogar nich auf Mac usw. installieren und seine Anwendungen dort ebenfalls verwenden.
Beide Sprachen sind gut und haben ihre Daseinsberechtigung, brauchen aber ihre Laufzeitumgebung und sind somit nativen Sprachen wie C++ in sachen Performance und Möglichkeiten deutlich unterlegen.

Will man einfach nur für sich ein bischen rumspielen gibt es glaube ich keinen wirklichen Vor- oder Nachteil zwischen C# und Java. Da man aber nie weiß wohin die Reise geht, würde ich gleich C++ empfehlen.
Ich bin aber auch mit C++ "aufgewachsen" und habe sonst hauptsächlich mit Java programmiert. Vielleicht bin ich deswegen auch zu subjektiv. :)

Vielleicht wäre es einfach das Beste, wenn sich der TE alle Sprachen mal anschaut und eine Testanwendung schreibt. Dann merkt er vielleicht selbst welche Sprache einem besser liegt.
Ich glaube nämlich nicht dass wir uns hier alle jemals auf eine Sprache einigen würden. ^^
 
S.Kara schrieb:
OK, wenn man von der Doku ausgeht würde ich auch eher Java empfehlen als C. Zwischen C und C++ gibt es aber immer noch ein paar feine Unterschiede. Wer da mit einer Funktion nicht zurecht kommt findet im Internet genügend Hilfen. Man ist hier auch nicht auf die MSDN von MS angewiesen.

Gibt es überhaupt Menschen die in C GUI's entwickeln?
Die Sprache wird doch nur in Systemnahenumgebung angewandt, dort wo GUI's nahezu nicht existieren. Zum Einstieg wäre C sogar die beste Wahl, weil die Grundlagen ziemlich gering sind und die Keywords ebenfalls überschaubar.

ABER da der TE zum Bsp. kein Rasperry PI oder ähnliche Geräte programmieren möchte , sondern schon eine vernünftige GUI ist es durchaus sinnvoller direkt mit einer Sprache zu proggen die die Objektorientiertheit vernünftig unterstützt und nicht so "verkrüppelt" wie C.

Ob C Sharp einfacher zu handhaben ist wie C++ oder Java, kann ich mir ehrlich gesagt kaum vorstellen, alle genannten Sprachen sind doch Brüder oder Cousins.

Über C Sharp habe ich noch nie drüber geschaut, aber die anderen drei Sprachen haben doch fast den selben Syntax. Und GUI Programmierung in Java ist wirklich sehr einfach, einfach als dieser Baukasten bei Eclipse.


Also bei GUI, C #(sharp), C++ oder Java. Wenn du dich mit einer vertraut machst, wird dir der Einstieg in andere Konzepte der hier genannten Sprachen einfacher fallen. Später kannst du dann immer noch entscheiden welche Sprache dir besser liegt, es ist also sinnlos darüber zu debatieren welche Sprache besser ist, denn jede hat seine Daseins Berechtigung und wenn man wirklich etwas lernen möchte sollte man mitsicherheit nicht nur bei einer Sprache bleiben.
 
S.Kara schrieb:
GUI's kann man mit Java genauso einfach entwickeln wie mit C# oder C++. Bei den heitigen IDE's bekommt jedes 10-jährige Kind eine GUI erstellt.
Theoretisch vllt.. Praktisch ist der Unterschied aber Welten. Kaum ein Framework kommt im entferntesten an WPF ran. Von nem guten Editor mal abgesehen. Ich arbeite hauptsächlich mit C# und ab und zu mit C++. An Java Projekten habe ich auch gearbeitet und, trotz freier Framework Wahl, nichts ähnlich gutes gefunden. Ein entsprechender GUI Editor kostet dann auch direkt hunderte Euro.

S.Kara schrieb:
Der einzige Unterschied zwschen Java und C# ist, dass letzteres das .net Framework benötigt und Java die JVM. Die JVM kann man dazu sogar nich auf Mac usw. installieren und seine Anwendungen dort ebenfalls verwenden.
C# -> mono für Linux und Mac. Bevor jetzt jemand kommt: "aber da laufen nicht alle Anwendungen": Sicherlich funktionieren Windows spezifische DLL Imports nicht. Wenn man die Anwendung aber für Plattform Unabhängigkeit programmiert, ist das auch gut mit C# möglich.

S.Kara schrieb:
Beide Sprachen sind gut und haben ihre Daseinsberechtigung, brauchen aber ihre Laufzeitumgebung und sind somit nativen Sprachen wie C++ in sachen Performance und Möglichkeiten deutlich unterlegen.
Prinzipiell ja, praktisch ist das immer weniger relevant. Teilweise können die JIT Compiler sogar besser auf die Umgebung optimieren. Es steht immer mehr die Produktivität und im Vordergrund. Bei stark grafischen Sachen (z.B. große Spiele) ist man sicherlich (wenn es denn recht komplex ist) mit C++ besser dran bzw. man braucht für manches hardwarenahes Zeug C/C++. Ansonsten ist man in den meisten Fällen besser mit der produktiveren Sprache dran.
 
Meiner Meinung nach gibts für Programmieranfänger 2 Varianten, sich die passende Sprache auszuwählen.

  • Variante 1
Du nimmst einen Würfel, denkst dir für Zahlen Sprachen und nimmst die, die oben liegt. Noch ein Buch dazu und fertig.

  • Variante 2
Ist etwas aufwendiger.

Ich geh mal von den Sprachen aus, mit denen ich mich wenigstens etwas auskenne. Und was ich zu C# schreibe, kann man eigentlich auch direkt auf VB.net übertragen. Die beiden nehemen sich nicht wirklich was.

Ertsmal nen groben Überblick über den "Schwierigkeitsgrad" verschaffen.

C#,Java: Easy to learn, hard to master.
C++: A bit harder to learn, even harder to master.
C: Harder to learn, a long way to master.

Die Schwierigkeitsgrade sind hierbei relativ zu sehen und individuell sicher sehr verschieden.

Nach dem groben Überblick gehts weiter mit Literatur. Und hier empfehle ich wirklich ein gutes Einführungsbuch. Tutorials sind meist nicht wirklich der Bringer, wenn nicht gar wirklicher Schrott. Um nen kleinen Einblick zu erhalten vielleicht noch okay, aber definitiv nichts für ernsthaftes lernen.

Was ich so an Einstiegsbüchern kenne:

C#: Thomas Theis Für viele wirklich ein sehr gelungenes Buch, ich persönlich mag seine Schreibweise nicht so und für meinen Geschmack gehts zu schnell in den GUI-Bereich. Wenn ich Programmieren lernen möchte, beschränke ich mich lieber erstmal auf das Wesentliche, ohne mich um noch zusätzlich mit GUI-"Kram" beschäftigen zu wollen. Aber auch hier gilt wieder: Geschmackssache. Das gleiche Buch gibts auch für VB.NET.

C++: Ein echt gutes Buch gibts zum Einstieg in die Programmierung gibts vom Erfinder der Sprache himself, Bjarne Stroustrup hier. Bei ihm ist das aber immer so ne Sache. Die Schreibweise von Stroustroup liebt man oder man hasst sie. Ich glaube da gibts nicht viel dazwischen. ;)
Von Kirch/Prinz gibts auch noch ein gutes Buch. Man meide nur nach Möglichkeit Herrn Wolf.

Java: Eines der besten Bücher für wirklich blutige Programmieranfänger gibts hier. Ich hab selbst noch kein, meiner Meinung nach, besseres in der Hand gehabt. Wie gesagt, für wirklich richtige Einsteiger.

C: Hier kann ich leider nicht unbedingt etwas empfehlen. Aber wenn das C-Buch von Kirch/Prinz auf gleichem Niveau liegt, wie die C++-Variante, dann dieses.

Das sind mal meine Überlegungen zum Einstieg in die Programmierung. Ich würde Variante 2 bevorzugen. Aber die Geschichte mit dem Würfeln ist auch nicht wirklich falsch. ;) Sachen wie Plattformunabhängigkeit, Systemnähe und ähnliches werden von vielen Anfängern oft einfach maßlos überschätzt.

Schau dir mal ein paar Programmbeispiele an, schau nach guter Literatur und triff deine Auswahl. Viel kann man im privatem Bereich in Sachen Auswahl der Programmiersprache wirklich nicht falsch machen.
 
Zuletzt bearbeitet:
Wenn man der Englischen Sprache ein wenig mächtig ist würde ich für C++ eher dies hier empfehlen.
http://www.amazon.de/The-Programmin...qid=1400777773&sr=8-1&keywords=stroustrup+c++

Das Buch "Einführung in die Programmierung mit C++" hab ich auch, aber zum einen ist die Übersetzung echt schlecht und zum anderen ist es teilweise echt nicht so geschrieben das man versteht was gemeint ist. Achja und das wichtige Thema SmartPointer wird dort noch überhaupt nicht bearbeitet. Mann lernt dort also einen Stil den man heute eigentlich meiden sollte. Da ist "The C++ Programming Language" doch deutlich besser!
 
Eine Frage hätte ich aber noch, warum ist für dich, svenie25 c wesentlich schwieriger zu lernen als c++ oder java?

Wenn man die Hardwarenaheumgebung jetzt außen vor lässt, die Grundlagen an sich sind doch um einiges leichter und schneller zu erlernen als Java oder C++.

Für mich als sequentieller, ist und war C viel "logischer" als Java.
 
C ist schwieriger zu lernen, weil es einem weniger in die Hand gibt. Wenn man zum Beispiel objektorientiert programmieren will, muss man sich erst ein Objektsystem basteln. C++ hat das schon dabei.
C ist leichter zu lernen, weil es einem weniger in die Hand gibt. Man hat nicht 498238 Bäume, wegen denen man den Wald nicht mehr sehen kann. Die Kernsprache ist extrem simpel und gut zu überblicken.

Gibt es überhaupt Menschen die in C GUI's entwickeln?
http://de.wikipedia.org/wiki/GTK+
 
Zuletzt bearbeitet:
Welche Sprache ist denn in der Industrie der Platzhirsch im Bereich "GUI-Programme"?
Falls nur Windows im Spiel ist, dürfte das wohl C# sein, aber was wenn nicht nur Windows im Spiel ist? Da bleiben als wirkliche potentielle Platzhirsche denke ich nur Java und C++ über. Aber welche von den beiden Sprachen ist in diesem Bereich der Platzhirsch?
 
In der Industrie? Also Geschäftssoftware (Abbrechnung etc.)? Da dürfte Java dominieren.
Wobei es da einen Trend gibt, die Frontends nur noch via Browser anzubieten. -> JavaScript
 
Ich denke (und hoffe), dass so manche Firma rückblickend auf Snowden und das XP EoL mal weiter als von 12 bis Mittag denkt. So manche Firma wird sich jetzt wohl langsam von Windows verabschieden.

Daher denk ich auch: Der Trend geht zur Crossplattform-Software und natürlich zur Web Applikation. Ich schließ mich also e-Laurin an: Java ist wunderbar für Crossplattform-Desktopanwendungen sowie natürlich auch Backends auf irgend einem Server. Und im Hinblick auf Firmen, die sehr flexible Devices einsetzen (Desktops, Thin Clients, Notebooks, Tablets,... alles wild gemischt) geht echt NICHTS über ne hübsche kleine Web-Anwendung mit nem guten Responsive Design.

Mit C# rennt man direkt in den nächsten voll bekloppten Vendor Lock-In. Mit C++ kommt man recht weit, es bietet aber oftmals einfach keinen realistischen Vorteil gegenüber Java.
 
Jack159 schrieb:
Welche Sprache ist denn in der Industrie der Platzhirsch im Bereich "GUI-Programme"?
autoindustrie: in allen millionen testautos ganz klar java. in den modernen "autoradios" java mit linux im hintergrund

Daaron schrieb:
geht echt NICHTS über ne hübsche kleine Web-Anwendung mit nem guten Responsive Design.
sehe ich nicht so, denn wenn viele leute auf den server zugreifen gehen ganze arbeitsstunden flöten und ein ingenier kostet nun mal 5.000€ die woche.
wie haben windows 7, das reicht sehr gut.

-> internetausfall, serverausfall = hunderte leute können nicht arbeiten.
 
Zuletzt bearbeitet:
blöderidiot schrieb:
Ich denke mal, das ist ein Fehler/Missverständniss von Deiner Seite. Sich für eine Sprache so "festzulegen" wie Du jetzt eben ergibt keinen Sinn.
Die "Sprache" ist nur ein Werkzeug, eine Art "roter oder grüner Schaufel", die es, unabhängig vom eigentlichen Bauziel, selbst estmal in ihrer Benutzung zu erlernen gilt. Das ist oft genauso komplex wie die eigentliche Programmiererei. Sicher, Du siehst die Programmiererei aus der Entfernung zunächst so, als hätte die Sprache irgendeine tiefergehende Bedeutung. Davon solltest Du Dich befreien ;-)

Verstehe ich.
"Festlegen" war somit wohl eher das falsche Wort, vor allem weil ich sowieso vor habe nicht nur eine Sprache zu erlernen.
Nur anfangs eben sich auf eine zu konzentrieren.

S.Kara schrieb:
Vielleicht wäre es einfach das Beste, wenn sich der TE alle Sprachen mal anschaut und eine Testanwendung schreibt. Dann merkt er vielleicht selbst welche Sprache einem besser liegt.
Ich glaube nämlich nicht dass wir uns hier alle jemals auf eine Sprache einigen würden. ^^
->
blöderidiot schrieb:
Die Idee mit dem Taschenrechner war schon gut. Bau mal einen Taschenrechner mit +,-,/,* in
wenn Du das geschafft hast (in 6 Monaten), bist Du schon weiter als viele hier im Forum, die unbedingt auf "ihre Sprache" schwören (die vielleicht die Einzige ist, die sie kennen).

Wäre gar nicht mal so eine schlechte Idee :p Ich werde es wahrscheinlich so machen. So sehe ich alle wichtigen Sprachen auf einmal und kann dann für mich auswählen, welche für mich am verständlichsten/einfachsten ist. Somit habe ich einen guten Einstieg, der später bei der Erlernung weiterer Sprachen sicher hilfreich sein wird.

Hades85 schrieb:
ABER da der TE zum Bsp. kein Rasperry PI oder ähnliche Geräte programmieren möchte , sondern schon eine vernünftige GUI ist es durchaus sinnvoller direkt mit einer Sprache zu proggen die die Objektorientiertheit vernünftig unterstützt und nicht so "verkrüppelt" wie C.

Hmm. Wäre es sinnvoll für die Grundlagen so einen Weg einzuschlagen?
Mein primäres Ziel sind schon GUI-Anwendungen, allerdings möchte ich andere Wege nicht außen vor lassen.
(Hoffentlich versteht ihr, was ich meine :D)
 
tnoay schrieb:
-> internetausfall, serverausfall = hunderte leute können nicht arbeiten.
Du bist echt Meilen von der Realität entfernt.
1.) Viele Firmen (z.B. die FAW) verwenden schon sehr lange eine zentrale Server-Architektur und Thin Clients über Länder/Kontinente hinweg verteilt
2.) Auch wenn du hier mit Win7 rumwedelst: Was machst du, wenn euer Domain Controller aussteigt? Plötzlich kommst du nicht mehr ins System, kommst nicht an die Arbeitsdaten,...

Wenn in Wolfsburg die Internetverbindung abbricht, gibt es einen Tag lang keine Golfs. So einfach ist das. Und da ist es echt scheiß egal, ob du jetzt komplette Desktop-Anwendungen oder nur Web-Apps verwendest.

Nehmen wir doch das aller-einfachste Beispiel: Ein Waren-Wirtschaftssystem. Kaum eine Firma kommt ohne WaWi aus. Hat die Firma mehrere Standorte/Lager, dann benötigt sie ZWINGEND einen zentralen WaWi-Server, auf den sich die verschiedenen Standorte verbinden. Ohne Verbindung ist keiner der Standorte handlungsfähig. Es gehen keine neuen Bestellungen ein, bearbeitete Bestellungen können nicht ausgetragen werden,...

Und genau deshlab nimmt man nicht T-DSL Home, sondern eine Business-Anbindung mit Ausfallgarantie.

AbGedreht schrieb:
Hmm. Wäre es sinnvoll für die Grundlagen so einen Weg einzuschlagen?
Mein primäres Ziel sind schon GUI-Anwendungen, allerdings möchte ich andere Wege nicht außen vor lassen.
(Hoffentlich versteht ihr, was ich meine :D)

Wirst du den Urschleim denn realistisch jemals brauchen? Wirst du je ein Linux Kernel Module schreiben wollen oder sowas? Wenn nicht: SCheiß drauf. Wenn doch: Lern es, wenns notwendig wird.
 
Ich möchte nochmal betonen, es ist wirklich scheiss egal mit welcher Programmiersprache du anfängst. Du könntest sogar mit den Vorgänger von C anfangen, B nämlich.

Du könntest auch komplett in Maschinensprache programmieren, also in der Regel nur 0 und 1.

Wichtig ist erst mal der Einstieg in irgend eine, denn erst der Einstieg vermittelt dir wie man als "Maschine" denken muss. Du wirst dann Stück für Stück dem kern näher kommen und alles spätere ergibt sich von selber.

Und hier wird man mit fleiß extrem belohnt!

Stell dir vor du bist Gärtner und du musst nen Baum umholzen, dazu gibt es verschiedene Werkzeuge, ne Axt, ne Kettensäge, nen Schaufelbagger und und und. Also weniger abwägen sondern anfangen, desto früher du anfängst umso früher könntest du der neue Billy (Gates)Boy werden
 
Dein Bagger scheitert, wenn du einen einzelnen (z.B. kranken) Baum in einem Waldstück fällen willst/musst.
Axt und Säge scheitern, wenn du keinen Stumpf mehr haben willst.

Das Werkzeug spielt schon eine Rolle. PHP ist z.B. für reine Desktop-Anwendungen gänzlich ungeeignet
 
tnoay schrieb:
autoindustrie: in allen millionen testautos ganz klar java. in den modernen "autoradios" java mit linux im hintergrund

In Autos kommt auch Java zum Einsatz? O.o
Hätte das eher als Eingebettetes System eingestuft und daher in dem Bereich auf C oder C++ getippt.

Kann man also sagen, dass C++ für den Regelfall (ausgenommen rechenintensive Programme wie Simulationen oder AAA-Spiele) bei Programmen mit einer GUI faktisch ausgestorben ist und eher Java/C# eingesetzt wird?
 
Ich kann das mit Java in Autos jetzt auch nicht so ganz glauben. C++ braucht wesentlich weniger Ressourcen als Java - ich würde schon sagen dass es deshalb eher zum Einsatz kommt. Ich glaube kaum, dass da in irgendeinem Auto eine JVM läuft.

C++ ist bei GUI's alles andere als ausgestorben. Es ist nur einfach so, dass Java leichter zu lernen und zu managen ist C++ und man in den meisten Fällen die Nachteile von Java gegenüber C++ keine Rolle spielen (Performance, ...).
 
Zurück
Oben