C#, C++ oder doch Java ?

so, da auf der heft-cd der aktuellen CD das Buch "Handbuch der Java-Programmierung" enthalten ist, werde ich jetz mal mit JAVA anfange (nachdem meine web2.0 seite fertig ist :fresse: ) und wenns mir nicht gefällt kann ich immernoch umsteigen
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Also, ich kann dir mal kurz und knapp alle vor und nachteile dieser programmiersprachen erläutern, da ich schon ALLE Programmiersprachen ausprobiert habe (ich hatte schon oft das gleiche Problem wie du :)):

Fangen wir mit C++ an:

C++ ist einer der portabelsten Programmiersprachen überhaupt.
Damit ist natürlich gemeint, das du dein Windows Code nicht in Linux verwenden kanns, sondern der Programmierer selber ist protabel.
C++ ist außerdem eine sehr schnelle Programmiersprache, also damit mein ich das die Programme scheller sind als die anderen Programme, die mit anderen Programmiersprachen entwickelt worden sind.
Spiele werden deswegen nur mit C++ programmiert, weil man mit C++ eine menge Leistung sparen kann.
Außerdem ist C++ sehr Maschienennah (ok, nicht so wie Assembler oder so, glaub ich :)).
Du kannst sozusagen damit schon Tuning-Programme programmieren :).
und was meinst du, wieso Profiprogrammierer mit C++ programmieren, oder besser gesagt, wieso betriebe C++ benutzen?
Weil es eben fürs Teamarbeit am besten geeignet ist, finde ich auf jeden fall.
Und du kannst mit C++ sehr viele Toolkits anwenden.
Zb: QT, GTK, und und und.
Aber es hat natürlich auch seine Nachteile:
Ich selber, muss mich immer noch entscheiden, welche IDE ich benutze. Glaub mir ich kann mich da gar net so richtig entscheiden.
GTK zu benutzen ist auch nicht so leicht.
na ja das wars mit C++. Nun zu C#:

Also, mit der Programmiersprache kenn ich mich nicht so richtig aus, aber ich kenne eine Menge vorteile:

.Net hat sehr viele Funktionen.
Man kann sehr schöne GUI anwendungen in WinForms erstellen.(wobei man sagen muss das man das auch in C++ kann)
Außerdem hasst du die möglichkeit in Visual Web Developer eine Internet Seite in C# zu erstellen. (ich wünschte das gebe es auch in C++ :)).
Nachteile:
.Net ist wirklich langsamer als Win32, und C# ist an .Net gebunden, oder ist besser gesagt .Net.

Nun zu Java: (ich glaub das ist schpn richtig viel geworden)
Java ist plattformunabhängig vom Feinsten.
Das muss man wirklich sagen.
Deshalb ist ja auch M.I.C.R.O.S.O.F.T neidisch.
Aber egal... :)
Aber Java ist so platformunabhängig, das man sogar sehr schöne programme auf Handys erstellen kann.
Außerdem kannst du eine tolle IDE beutzen: Eclipse.
Ich wünschte man hätte mit Eclipse keine Probleme in C++ :).
Nachteile:
Genau wie bei C#, nur in der Java Virtual Maschine.

Ey, ich hoffe ich konnte dir weiterhelfen! :)
 
du hast mri schon weitergeholfen, aber den großteil wusste ich schon und ich denke mal es ist auch ein teil persönliche vorliebe, den vorteil den ich halt mit C++ habe wäre wohl die maschinennahe programmierung, also sprich falls man im informatikstudium mal chips usw programmiert ... und viele firmen suchen auch java entwickler ;)
 
Aber was du unbedingt auch wissen muss:
Diese Programmiersprachen sind sich verdammt ähnlich.
Das ist wirklich eine schwere entscheidung.
Und was nimmst du denn jetzt eigentlich? :-)
 
ich werd jetz mal die C# tutorials machen und ein bisschen das java buch anlesen

das die sich sehr ähnlich sind weis ich schon, leider ist PHP etwas anders ;)
 
gHuN schrieb:
Fangen wir mit C++ an:

Ahja, ein echter C++ Fan. Ich muss gestehen ich gehoere eher zur Gegenfraktion. :d
Und auch dir sei gesagt C++ ist nicht schneller als andere OO Sprachen (aber das hatten wir hier schon). Viele Spieleengiens sind ausserdem in reinem ANSI C geschrieben. Prominentes Beispiel: Quake. Davon kannst du dir den Sourcecode der ersten drei Teile aus dem Netz laden, wenn es dich interessiert. Die Projekte sind Open Source.
Warum C und nicht C++? Ganz einfach: OO Programmierung produziert Overhead im Speicher und bei der Rechenzeit. Deswegen setzen viele immer noch reines C ein und verzichten auf OO Programmierung und die damit verbundenen Vorteile.

Warum ich C++ persoenlich nicht mag:
Es ist einfach viel zu kompiliziert. Man kann zu viele Fehler machen (und macht diese dann auch :rolleyes:), die einem noch nicht einmal Auffallen muessen. Die aber spaeter zu inkonsitenen Programmzustaenden fuehren koennen.
Beim Entwickeln will ich mich mit dem konkreten Problem beschaeftigen, nicht mit Eigenarten der Programmiersprache.
 
fehler macht man so oder so ;) dafür sollte es einen guten debugger oder den eigenen test geben ;)

aber C++ hat eben den vorteil das es auch ohne JRE und .net Framework auskommt, und auch wenn es viele beweisen ich denke im allgemeinen ist C++ einfach schneller, beispiele hin oder her, man kann programmiersprachen nicht genau vergleichen finde ich
 
burni87 schrieb:
und auch wenn es viele beweisen ich denke im allgemeinen ist C++ einfach schneller, beispiele hin oder her, man kann programmiersprachen nicht genau vergleichen finde ich

Ich würde es schlimm finden, wenn man sie nicht vergleichen könnte. Nur kann man nicht so pauschalisieren. Jede hat ihre Anwendungsgebiete und ihre Berechtigung.

Anstatt eine Programmiersprache zu lernen, würde ich eher das Konzept anhand einer lernen. Zum Beispiel OOP mit Java, damit biste bestimmt besser gerüstet als folgende Leute: "ich kann Turbo Pascal 7.0".
 
burni87 schrieb:
fehler macht man so oder so ;) dafür sollte es einen guten debugger oder den eigenen test geben ;)

So habe ich das auch nicht gemeint. Fehler macht man immer. Aber C++ hat das Problem dass der Compiler i.d.r nicht sehr mitteilsahm ist und vieles durchgehen laesst. Also Compiler: OK und bei der Programmausfuehrung: Crash. Und im Falle des Crashs gibt es nicht immer eine Exception oder einen Stacktrace (naemlich immer nur dann wenn man sowas auch konsequent eingebaut hat).
Bei ordentlich grossen Projekten ist man dann erstmal stundenlang damit beschaeftigt herauszufinden WO das Programm ueberhaupt abschmiert.
Java (mein Lieblingsbeispiel ;)) liefert hingegen _immer_ eine Ordentlich Exception und einen Stacktrace im falle des Crashs. --Es sei denn man schaltet das explizit ab.
In C++ gestaltet sich die Fehlersuche IMHO muehsehliger als in anderen OO Sprachen. Dadurch dauert das Entwickeln laenger.
Dann ist da noch das Klassenmodell von C++. Und auch hier gilt: Uebersichtlich sieht anders aus. Man kann in C++ die Klassensturktur ohne weiters so starkt verunstalten dass man ohne Hilfsmittel wie Doxygen kaum eine Chance hat die Abhaenigkeiten richtig zu erkennen. --Ich habe solchen Code schon gesehen und musste auch damit arbeiten. :rolleyes:
Meines erachtens ist C++ nicht Anfaengergeignet, da viel zu kompiziert.

C++ hat sicherlich seine Daseinsberechtigung. Aber ich bin froh wenn ich nicht damit arbeiten muss. Und Anfaenger bin ich ja nun auch nicht gerade.

Zu JVM: Es liesst sich in dem Thread so als ob eine VM ein grosser Nachteil waehre. Sicherlich mag es einige Nachteile im Bezug auf bestimmte Problemestellungen geben. Aber meines Erachtes ueberwiegen die Vorteile deutlich. Schon alleine die Tatsache dass die javainterne Programmueberwachung Bufferoverflows sicher zu verhindern weiss, ist ein riesiger Pluspunkt.

Das ist aber nur meine Sicht als Entwickler.
 
ja das schlimme ist eigtl ich kann euch beide verstehen ;)

das mit den fehlern ist eigtl nicht so schlimm da ich eh immer nur kleine teile mache und die dann einzeln teste ... bei PHP ist ja die fehleraussage auch nicht gerade immer toll :fresse:

aber Java hängt eben wieder von JRE ab genauso wie C# von .net ... und mit C++ kann man eben auch hardwarenah programmieren ...
 
Ich will noch was zu C++ sagen:
Also: :)

Mit C++ kann man meiner Meinung nach sehr viel Speicher im RAM sparen, falls man große Projekte programmiert.
Das liegt daran:
Man kann beispielsweiße in C++ auch nur CHAR-Variablen erstellen, und nicht nur strings.
und eine CHAR-Variabe ist nur ein Byte.
Eine ganze String Variable...
Naja, viel mehr.
Das meinte ich mit Leistung-Sparen in C++.
Man kann damit eben Speicher und CPU Leitsung sparen :)

Edit-> Ich kann euch gar nicht verstehen :) (*joke*)
Wieso ist C++ schwer? :)
Ich finde wenn man C++ einmal verstanden hat (wie ich :)) dann ist C++ leicht.

Ich hätte eine frage nebenbei:
Wisst ihr wie man in C++ (bei Konsolenanwendungen) den Bildeschirm löscht?
Mit welcher Funktion?
Ich glaub dafür braucht man keinen neuen Thread :)
 
Zuletzt bearbeitet:
burni87 schrieb:
aber Java hängt eben wieder von JRE ab genauso wie C# von .net ... und mit C++ kann man eben auch hardwarenah programmieren ...

Schon. Aber wenn ich hardwarenah programmieren will nehme ich C. :p

gHuN schrieb:
Mit C++ kann man meiner Meinung nach sehr viel Speicher im RAM sparen, falls man große Projekte programmiert.

Sry, aber das haengt einzig und allein am Programmierer. Speicher kann ich in jeder Sprache verschwenden. String oder Char ist nur ein Beispiel. Btw, char's kann man auch in (fast) jeder anderen Sprache erstellen. Warum sollte das etwas besonderes sein?

gHuN schrieb:
Wieso ist C++ schwer? :)
Ich finde wenn man C++ einmal verstanden hat (wie ich :)) dann ist C++ leicht.

Klar. :d
Ich finde auch SML oder Promela oder Perl oder Bash leicht, aber trotzdem wuerde ich keinem Anfaenger dazu raten.

Ist ja Ok wenn du C++ magst und einsetzt. Da habe ich auch nix dagegen. Aber fuer den Anfang... Es gibt einfachere, inutivere und pedagogischere Sprachen.

Davon mal abgesehen: Waehlt man die Sprache nach den Anforderungen aus. Nicht umgekehrt. Die Programmiersprache ist eben auch nur ein Werkzeug. Um zu z.B. OO Programmierung zu lernen ist es letztlich unerheblich ob man dies mit Java oder C++ oder C# oder Ruby oder .... lernt. :wink:
 
sendkeys "cls" lol ;)

aber es ist wohl so das jede sprache leicht ist wenn man sie kann ;)
 
welche IDE nimmst du denn für C++ ?

war heute in der stadt und dan hab ich mal im Buchhandel bissl rumgschaut ud bin auf ein C++ buch für anfänger gestosen ;)
 
Naja, Eclipse. Aber unter Linux.
Unter Windows hatte ich mal das Visual Studio benutzt, aber das ist schon Jahre her. (War noch die Version 6.0)

Zu Eclipse, C++ und Windows kannst du auch mal gHuN fragen. Der hat damit schon so seine Erfahrungen gemacht.
 
Eclipse mit C++ zu benutzen ist wirklich *kake* !!! :)
Benutze lieber Visual C++ 2005 Express Edition.
Den kannst du kostenlos herunterladen.
Ansonsten benutze ich auch noch "Open Watcom"
Der Compiler ist wirklich gut!
Wie findet ihr Open Watcom???
Da ist ja auch ne IDE...
 
Watcom? --Ka. Gibs noch was anders als gcc (g++)? ;)
Ne, dafuer programmiere ich einfach zu wenig C++ als dass ich da noch gross verschiedene Compiler ausprobiere. gcc tutes.
 
wo wir grad bei MS IDEs sind, was ist eigtl J# ? :fresse:

kann es sein das ihr euch nicht einig werdet ? ;)

ahcja und zwekcs hardwarenaher programmierung, der unterschied von C zu C++ ist ja sogut wie nicht da oder ?
 
Visual J# ist eine IDE die von M.I.C.R.O.S.O.F.T, für Java Programmierer Entwickelt wurde.
Damit programmierst du in Java aber halt in .Net...
 
Zuletzt bearbeitet:
gHuN schrieb:
Visual J# ist eine IDE die von M.I.C.R.O.S.O.F.T, für Java Programmierer Entwickelt wurde.
Damit programmierst du in Java aber halt in .Net...

wenn die keinen vogel haben ...

schön das du jetz extra ne passende signatur hast ;)
 
burni87 schrieb:
ahcja und zwekcs hardwarenaher programmierung, der unterschied von C zu C++ ist ja sogut wie nicht da oder ?

Jain. In C++ hast du die Moeglichkeit deine (Hardware-)Schnittstellen in Objekten zu kapseln. Das bringt zwar komfort, ist dann aber nicht so hardwarenah. Das QT-Framework ist ein Beispiel dafuer.
In C gibt es keine Objekte oder Frameworks. C ist rein funktional.
 
ja aber C ist auch nicht so hardwarenah wie assembler :P

mit C# bzw Java kann man ja garnicht hardware nah programmiern oder ?
 
NIMM DOCH BEIDE! :wink:

burni87 schrieb:
ja aber C ist auch nicht so hardwarenah wie assembler :P

mit C# bzw Java kann man ja garnicht hardware nah programmiern oder ?

Nein kannst du nicht. Denn bei C# durch die CLR und bei Java durcgh jvm wird der code in zwei schritten zum binärcode und daher plattformunabhängig, zu dem nachteil dass du einen code nicht auf mehrere plattformen anpassen kannst wo es versch. proz, hardware und betriebssysteme laufen. ich hoffe du verstehst..


zum THREAD: wieso müssen sich die Leute immer entscheiden. Lerne beide Sprachen. So ein großer unterschied ist es gar nicht von der Codeseite her zw. C# und Java. die Hintegründe sind halt anders. Aber beide zu lernen, ist kein kunstück und du kannst gleich die vorteile beider sprachen nutzen wenn du sie benötigst. So mach ichs wenigstens. Wobei ich einbißchen C# bevorzuge, aber nur wegen des Aufbaus.

mfg Laessig
 
burni87 schrieb:
ja aber C ist auch nicht so hardwarenah wie assembler :P

Nein, nicht so nah wie Assembler. Aber du wolltest ja eine Hochsprache lernen. Assembler ist menschenlesbarer Maschienencode und hat Null komfort. Keine Frameworks, keine API. Just do it yourself. Es gibt nicht einmal Funktionen nur Sprungmarken und Tests.
--Ich verspreche dir, das willst du nicht.

Laessig schrieb:
Nein kannst du nicht. Denn bei C# durch die CLR und bei Java durcgh jvm wird der code in zwei schritten zum binärcode und daher plattformunabhängig, zu dem nachteil dass du einen code nicht auf mehrere plattformen anpassen kannst wo es versch. proz, hardware und betriebssysteme laufen. ich hoffe du verstehst..

Richtig. Aber warum sollte man seinen Code an _eine_ Architektur anpassen wenn man Platforumunabhaenigkeit haben kann? --Zumal der Compiler die Anpassungen an die jeweilige Architektur meist sowieso viel besser kann und macht als man das selbst koennte. Moderne Compiler koennen schon sehr viel und gut optimieren. Und damit meine ich nicht nur die JIT Compiler. Das gilt auch fuer C und C++.

Laessig schrieb:
zum THREAD: wieso müssen sich die Leute immer entscheiden. Lerne beide Sprachen. So ein großer unterschied ist es gar nicht von der Codeseite her zw. C# und Java. die Hintegründe sind halt anders. Aber beide zu lernen, ist kein kunstück und du kannst gleich die vorteile beider sprachen nutzen wenn du sie benötigst. So mach ichs wenigstens. Wobei ich einbißchen C# bevorzuge, aber nur wegen des Aufbaus.

Vollkommen richtig. Es ist immer besser den Horizont zu erweitern.
Aber so wie sich der Thread entwickelt hat ist es auch mehr eine Diskussion ueber das Fuer und Wieder einzelner Programmiersprachen geworden. Und bis jetzt scheint burni87 mit seinem Thread ja auch ganz zufrieden zu sein. Also, was solls. :wink:
 
catch22 schrieb:
Richtig. Aber warum sollte man seinen Code an _eine_ Architektur anpassen wenn man Platforumunabhaenigkeit haben kann? --Zumal der Compiler die Anpassungen an die jeweilige Architektur meist sowieso viel besser kann und macht als man das selbst koennte. Moderne Compiler koennen schon sehr viel und gut optimieren. Und damit meine ich nicht nur die JIT Compiler. Das gilt auch fuer C und C++.

Ja klar ist es besser die Arbeit vom Kompiler/Interpreter erledigen zu lassen.Es geht aber nicht immer um das optimieren bzw. anpassen sondern auch um ein bestimmtes Ziel was man erreichen möchte. Als ich meinen eigenes Packer Programm programmiert habe (Matura) bin auch nicht um Assembler bzw. dann in weiterer Folge um C++ rumgekommen. Denn da gibt es noch bitshift Funktionen, wo man wirklich auf einzelne bits im Arbeitsspeicher bzw. Festplatte zugreifen kann. Mit C# und Java wüßte ich nicht wie ich so ein programm schreiben könnte. Wie gesagt es gibt für individuelle Anforderungen ebensolche Lösungen.

Ich habe habe eigentlich so angefangen und finde es eigentlich als einen sehr guten weg Programmier erfahrungen zu sammeln. C --> C++ (noch Dos) --> Java --> Visual Basic --> Visual C++ --> C#

EDIT: Davor war es eigentlich nur Assembler, COBOL, PL/1 und Basic. Und danach ABAP/4 und Perl........ Aber ich schweife vom Thema ab ;).

Jemand der erst jetzt anfängt würde wahrscheinlich bei C++ oder Java anfangen.

mfg Laessig
 
Zuletzt bearbeitet:
ja bin sehr zufrieden damit ;) weil es eben programmierer von beiden seiten gibt ;)

und mehere sachen zu lernen finde ich ja auch ok, ich kann auch schon einige sachen und habe auch selbst schon mit viel sachen was gemacht (Pascal, Delphi, VBS, JS, PHP, Batch, Bash, VB und ein bisschen C#) nur ich will eine sprache haben die ich dann richtig kann, das ich codeschnipsel für andere sprachen immer wieder hernehme ist keine frage ;)

und ausserdem habe ich eben zufällig bis 13.september frei ;) und am 7. juli ist die wm vorbei ... was soll man denn da den ganzn tag machen ?
 
Laessig schrieb:
Ja klar ist es besser die Arbeit vom Kompiler/Interpreter erledigen zu lassen.Es geht aber nicht immer um das optimieren bzw. anpassen sondern auch um ein bestimmtes Ziel was man erreichen möchte. Als ich meinen eigenes Packer Programm programmiert habe (Matura) bin auch nicht um Assembler bzw. dann in weiterer Folge um C++ rumgekommen. Denn da gibt es noch bitshift Funktionen, wo man wirklich auf einzelne bits im Arbeitsspeicher bzw. Festplatte zugreifen kann. Mit C# und Java wüßte ich nicht wie ich so ein programm schreiben könnte. Wie gesagt es gibt für individuelle Anforderungen ebensolche Lösungen.

Das ist sicherlich auch nicht falsch. Man sollte sich fuer seine Arbeit immer das richtige Werkzeug aussuchen. Und eine Programmiersprache ist auch nur ein Werkzeug.
Zum Bitschift: Ok, ich weiss jetzt nicht wie es in C# aussieht, aber zumindest in Java gibt es doch Bitshift Operatoren (<<, >> und >>>). Oder meintest du etwas anderes?


burni87 schrieb:
und mehere sachen zu lernen finde ich ja auch ok, ich kann auch schon einige sachen und habe auch selbst schon mit viel sachen was gemacht (Pascal, Delphi, VBS, JS, PHP, Batch, Bash, VB und ein bisschen C#) nur ich will eine sprache haben die ich dann richtig kann, das ich codeschnipsel für andere sprachen immer wieder hernehme ist keine frage

Wenn du mit C# schon Erfahrung hast ist die Entscheidung doch recht einfach: Mach damit weiter. ;)
Wenn du erstmal mit C# zurechtkommst duerfte es auch kein Problem sein in eine OO Sprache einzusteigen, wenn du das moechtest. Die Unterschiede sind meist nicht sehr gross.
 
Halt Halt Halt Halt!
Bevor es hier weitergeht!
Ich möchte noch kurz unterbrechen!
:)
Wir sind nämlich bei meinem Problem angelangt! :)
Würde es sich lohnen C++ und C#
gleichzeitig zu lernen.
Nun ja, zwischen den beiden Sprachen sind ja keine großen unterschiede.
Und würde es was bringen wenn ich C++ abrechen würde und mit C# anfangen würde.
Wäre die Grundlagen nicht ungefähr das selbe???
Dann hätten sich die Grundlagen von C++ auch gelohnt.
Ich hätte es mit C# dann leichter.

BITTE SCHREIBT EURE MEINUNGEN :)
 
catch22 schrieb:
Das ist sicherlich auch nicht falsch. Man sollte sich fuer seine Arbeit immer das richtige Werkzeug aussuchen. Und eine Programmiersprache ist auch nur ein Werkzeug.
Zum Bitschift: Ok, ich weiss jetzt nicht wie es in C# aussieht, aber zumindest in Java gibt es doch Bitshift Operatoren (<<, >> und >>>). Oder meintest du etwas anderes?

Ja die meine ich auch ;) <<, >>, & und |. Die Bit-Operatoren, die aber nicht in jeder Programmiersprache das selbe machen bzw. nicht überall gibt.

Um ehrlich zu sein in Java habe ich die Operatoren noch nicht probiert, wie gesagt daweil nur in c++ mit diesen Operatoren gearbeitet. Kann man in Java auch die einzelnen Bit im Byte ansprechen, ändern und umpolen mit den logischen Operatoren bzw. die bits nach links und rechts verschieben und danach logisch verknüpfen?? Hab ich noch nicht probiert um ehrlich zu sein.

gHuN schrieb:
Halt Halt Halt Halt!
Bevor es hier weitergeht!
Ich möchte noch kurz unterbrechen!
:)
Wir sind nämlich bei meinem Problem angelangt! :)
Würde es sich lohnen C++ und C#
gleichzeitig zu lernen.
Nun ja, zwischen den beiden Sprachen sind ja keine großen unterschiede.
Und würde es was bringen wenn ich C++ abrechen würde und mit C# anfangen würde.
Wäre die Grundlagen nicht ungefähr das selbe???
Dann hätten sich die Grundlagen von C++ auch gelohnt.
Ich hätte es mit C# dann leichter.

BITTE SCHREIBT EURE MEINUNGEN :)

Ich würde dir raten steig einfach auf c# um. Die grundlagen hast du hinter dir nach jeder OO Programmiersprache. C# ist ja eigentlich c++++ (# sind 4 plus übereinander) soz. einfach eine weiterentwicklung der sprache visual c++. und große unterschiede gibt es nicht, aber einige vorteile die sich lohnen.

mfg Laessig
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh