# Java, C++ oder C#



## Michon (8. Nov 2007)

Hey Leute!

Ich bin Anfänger und würde gern die einsatzbereiche der drei Programmiersprachen erfahren und eure Meinung dazu hören, welche der 3 besser bzw. beliebter ist.

thx


----------



## Wildcard (8. Nov 2007)

Besser führt zu Flames.
Verbreitet sind sie in dieser Reihenfolge:
1. Java
4. C++
8. C#
(laut dem Tiobe Index)

Java und C# haben recht ähnliche Fähigkeiten.
Java ist plattformunabhäniger, C# mehr auf Windows zugeschnitten.
C# und C++ findest du häufig im Desktop, Java im Enterprise Bereich und Web, sowie auch zunehmend auf dem Desktop.


----------



## Michon (9. Nov 2007)

aha und was ist der unterschied zwieschen nem desktop und enterprise?


----------



## The_S (9. Nov 2007)

Äh, Desktop ist eine Anwendung, die du bei dir installierst. Z. B. Word, Thunderbird, Firefox, Musikbearbeitung, ... Und Enterprise sind grob gesagt (da du ja scheinbar überhaupt keine Ahnung hast  ) "dynamische Webseiten". Also du schreibst etwas, was auf einem Server läuft und dann je nach Anfrage zum Browser anderen HTML-Code zurückliefert. Das ist jetzt aber sehr oberflächlich und allgemein ausgedrückt  .


----------



## Michon (9. Nov 2007)

cool...kann mir jettz vlt einer sagen wie ich ein virus programmiere?  :lol:  spaaaaß ich wollte noch wissen ob man mit java überhaupt viren erstellen kann... nur zur info


----------



## The_S (9. Nov 2007)

du kannst mit allem Viren erstellen. Mit Java sogar Plattformunabhängige  . Aber da sich Viren im System einnissten/verstecken und das System besser kennen sollten um mehr "Schaden" anzurichten, empfiehlt es sich für die Virenprogrammierung Systemabhängige Sprachen wie C++ zurückzugreifen  .

Deine Frage ist aber schon etwas seltsam und nen guten Virus programmiert man nicht mal eben so, un scho gar net ohne Programmiererfahrung!


----------



## Wildcard (9. Nov 2007)

Was ist denn ein 'guter' Virus?  :lol:


----------



## The_S (9. Nov 2007)

hehe, naja damit meinte ich halt einer, der sich schön im Betriebssystem verstecken kann, evtl. sogar ein Rootkit im Schlepptau hat, Systemressourcen und Eigenschaften optimal nutzt, keine zusätzlichen Voraussetzungen (wie z. B. das vorhanden sein einer VM) benötigt, ...


----------



## J.C. (9. Nov 2007)

Ein gutes funktionierendes Programm zu schreiben ist 100mal schwieriger wie ein Virus. 

Zu deiner ersten Frage:
C++ würde ich dir nicht empfehlen, da man wirklich extrem sauber programmieren muss und auf sämtliche Sachen achten muss (schlagwort Garbage Collector (gibts für C++ nicht))

C# unterscheidet sich darin, dass es alles was C++ nicht hat von Java geklaut wurde und dazugefügt.

Java ist 1. Kostenlos und 2. Plattformunabhängig... und man kan so ziemlich alles programmieren was man sich vorstellen kann.


Als Anfänger würde ich dir trotzdem zu einer ganz anderen Sprache raten: wie z.B. Python oder VB


----------



## AlArenal (9. Nov 2007)

C3RV1X hat gesagt.:
			
		

> Als Anfänger würde ich dir trotzdem zu einer ganz anderen Sprache raten: wie z.B. Python oder VB



Python oder Ruby würd ich auch empfehlen. Da sind die Einstiegshürden doch deutlich geringer und beides ist nicht so schmu-lastig wie PHP.


----------



## Guest (10. Nov 2007)

Die Empfehlung mit Python & Co. kann ich wirklich nicht nachvollziehen. Warum eine Skriptsprache, wenn man
gleich was Vernünftiges lernen kann? Ich würde einem Anfänger immer empfehlen zuerst eine C-ähnliche Sprache
wie Java zu lernen, bevor er sich an Skriptsprachen wie Python/Perl etc. herantastet. Strängere Typensicherheit
ist für einen Anfänger besser, als hinterher einen Schock zu kriegen, dass man nicht alles machen kann, ohne
dass es Konsequenzen hat.


----------



## The_S (10. Nov 2007)

C3RV1X hat gesagt.:
			
		

> Ein gutes funktionierendes Programm zu schreiben ist 100mal schwieriger wie ein Virus.



Ich mag zu bezweifeln, dass ein Anfänger ein so komplexes Programm schreiben möchte bzw. nicht schon im Ansatz daran scheitert  . Es ist viel schwieriger einen Virus zu erstellen (auch, weil du noch sehr viele systemspezifische Kenntnisse benötigst), als z. B. einen Taschenrechner als 1. Programm.

Deine Empfehlung für VB am Anfang kann ich nicht so ganz nachvollziehen :shock: .


----------



## AlArenal (10. Nov 2007)

Anonymous hat gesagt.:
			
		

> Die Empfehlung mit Python & Co. kann ich wirklich nicht nachvollziehen.



Was zunächst einmal gegen dich und nicht gegen das Argument spricht. Wenn du natürlich der Meinung bist die Jungs von 37signals und Xing wären allesamt Hobbyfrickler, die am Hungertuch nagen - nungut. Dann möchte ich auch nur noch als Hobby coden und frickeln.. 

Vielleicht mal folgendes lesen:

http://www.ibiblio.org/obp/thinkCSpy/foreword.html
http://www.ibiblio.org/obp/thinkCSpy/preface.html

Was David Beazley und Jeff Elkner da an Punkten anführen, kann man ebenso auch auf Ruby übertragen. Als erste Sprache sind C, C++, Java, C# und Compilersprachen allgemein nunmal sehr problembehaftet, weil der Lernende sich auf einmal mit vielen Dingen beschäftigen muss, die zur reinen Lehre der Grundkonzepte einfach nicht zuträglich sind und das schafft mehr Verwirrung als Klarheit.

Zu meiner Zeit hat mehr oder weniger jeder mit Basic angefangen, heute dürfte PHP das neue Basic sein. Das hat nunmal damit zu tun, dass der Zugang für jeden sehr einfach ist und man sich aufs Wesentliche konzentrieren kann. Nur würde ich heute keinem mehr Basic oder PHP als erste Sprache empfehlen, weil andere hier bessere Perspektiven bieten


----------



## Guest (10. Nov 2007)

@AlArenal
OK, das kann ich nachvollziehen. Für einen Anfänger ist das Erfolgserlebnis ziemlich wichtig, damit er nicht die Lust
am Programmieren verliert, bevor er überhaupt die Gelegenheit kriegt, mehr davon zu verstehen. Ich bin vielleicht 
etwas voreingenommen, da ich es auf die harte Tour erlernen musste (Mitte der 80er war Assembler in Mode).
In den letzten zehn Jahren werde ich aber den Eindruck nicht los, dass jeder Nerd, der was von Compilerbau
gehört hat, gleich der Meinung ist, er müsse die Welt mit einer neuen Programmiersprache beglücken, die er natürlich
für die ultimative Lösung aller Probleme hält.


----------



## AlArenal (10. Nov 2007)

Och Assembler war auch einer meiner frühen Schritte, aber wirklich viel habe ich damit nie gemacht, auch weil man nicht musste..

Es gab schon immer mehr als nur zwei, drei Programmiersprachen. Basic war in Mode, das heute voll out ist. Die Homecomputer brachten es in allerlei Derivaten mit. Atari wich etwas ab und lieferte Logo mit. Cobol im Bereich Finanzen gesetzt, Fortran beherrschte die wissenschaftliche Szene. Forth wurde für Mikrocomputer benutzt und Möchtegern-Nerds spielten mit Lisp und Prolog, den Sprachen der KI. Auf den Unix-Systemen war Shellscript als Glue-Sprache gesetzt, Perl war die Sprache der Administratoren und wenn es ne GUI sein sollte, gab es Tcl/Tk, oder zur Not bastelte man sich mit Lexx und Yacc was eigenes.

Im direkten Vergleich zu meiner Jugend gibts heute in meiner subjektiven Wahrnehmung nicht viel mehr oder weniger gebräuchliche Sprachen. Lisp und Prolog führen ein Schattendasein. Ich hörte zuletzt von ihnen von einem Bekannten an der Uni Bonn, wo diese tatsächlich sinnvoll in Projekten eingesetzt wurden/werden. Tcl/Tk und Pascal/Modula-2 finden nicht mehr statt. Von Logo und Forth habe ich seit Jahren nichts mehr gehört. Perl gibt es weiterhin als die Admin-Sprache für Unix-Systeme, verliert aber zusehends Boden gegen Python. Basic ist in seiner damaligen Form tot und hat mit dem heutigen VB ungefähr soviel zu tun wie JavaScript mit Java.

Fortran existiert weiterhin, aber auch hier geht zunehmend Boden verloren, bzw. müht man sich um würdige Nachfolger (Fortress).

Software ist heute viel komplexer als damals. Die Systeme sind ganz andere und der Computer hat in all seinen Spielarten so ziemlich jeden Winkel unserer Welt erreicht. Entsprechend vielfältig sind die Anforderungen an Sprachen, Bibliotheken, Tools und Entwicklern.

Manche Sprachen versuchen möglichst vielen Einsatzzwecken gerecht zu werden, andere besetzen Nischen. Domain Specific Languages gab es schon immer und wird es weiter geben, nur gibt es vielleicht heute viel mehr dieser zu besetzenden Domänen. Mit dem Web kam eine gewaltige Spielwiese hinzu, in deren Windschatten sich eine Vielzahl von Technologien entwickelt hat, die wiederum eigenen Anforderungen erstellen.

One Size doesn't fit it all und auch unter den Sprachen gibt es einen Wettbewerb. Ich finde es nur natürlich, dass sich mit all den neuen Möglichkeiten und Herausforderungen auch neue Sprachen entwickelt haben. Es ist ein ewiges Kommen und Gehen und das wird sich in abehbarer Zeit sicher nicht ändern.

Ich würde heute niemandem mehr raten mit Basic anzufangen, oder Assembler. Nur weil ein Ex-Chef von mir Maschinencode, Lochkarten und Ringkernspeicher gelernt hat, würde heute auch niemand auf die Idee kommen sich so ein altes Ungetüm ins Haus zu stellen, damit die Kids damit rumspielen, während sie in ihrem Handy mehr Rechenpower haben, als alle damaligen Rechenzentren zusammen 

Python und Ruby sind für mich derzeit am geeignetsten für Anfänger, weil sie einen auch zunächst einmal nicht damit nerven, dass man viel Ballastcode schreiben muss, um überhaupt was ausgeführt zu bekommen. Man braucht auch keine IDE, die einen erstmal nur verschreckt und überfordert. Man kann aber von der Picke auf auch lernen objektorientiert zu coden und wird sanft eingeführt (nicht alle mögen es hart  ). Dennoch sind beide Sprachen mächtig genug, um eine Vielzahl von Einsatzzwecken abzudecken, für Python gibts auch diverse Bindings zur Erstellung von GUIs, von Ruby in Rails hat mittlerweile wohl schon so ziemlich jeder mal gehört...

Besser als GW Basic und Assembler sind sie allemal und eben leichtverdaulicher als Java und .NET.


----------



## J.C. (12. Nov 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Es ist viel schwieriger einen Virus zu erstellen...



Nunja, es kommt drauf an, was man unter Virus versteht, im Endeffekt ist eine Endlosschleiße die den Stack vollhaut ja auch ein Virus. Soll das Virus getarnt werden und sich aktualisieren lassen ist das Schon schwerer, aber, wie gesagt, wenn ein Programm mal über Hobby-Größe hinausgeht und kommerziell vertrieben werden soll (ohne Fehler, im gegensatz zu MS ), ist das auf jeden Fall komplexer wie ein Virus. Das sagt dir jeder der mal in einer Softwareschmiede gearbeitet hat. Unser programm hat z.B. mehrere hundert packete die jeweils 5-30 klassen enthalten, a 500-5000 zeilen Programmtext. Zeig mir mal ein Virus dass da auch nur annähernd hinkommt.


----------



## The_S (12. Nov 2007)

Ich arbeite selbst bei einer "Software-Schmiede". Aber ich meine mich dunkel zu erinnern, dass ich irgendwo in diesem Thread schonmal darauf hingewiesen habe, dass ein Anfänger ohne Job in diesem Sektor wohl auch nicht mehr als ein "Hobby-Programm" erstellen wird.

Dass ein relativ professionelles Programm komplexer als ein Virus ist, sollte jedem hier klar sein und bedarf auch eigentlich keiner weiteren Erwähnungen. Aber der Threadsteller hat definitiv nicht vor so ein Programm zu erstellen. Von daher sollte  ein "Normales Anfängerprogr*ämmchen*" deutlich einfacher sein, als wenn er gleich einen kompletten Virus schreibt.

Das Programm, welches deutlich über Hobbygröße hinausgeht und völlig Bugfrei ist, will ich sehen. Ihr scheint ja eine wahre Wunderwerkstatt zu sein, wenn ihr soetwas hinbekommt. 

Die Anzahl der Klassen und Zeilen sagt weniger über die Komplexität eines Projekts aus, als du vielleicht denken magst  .


----------



## J.C. (12. Nov 2007)

Gut einer muss halt immer das letzte Wort haben, nicht wahr? Wenn wir uns einig sind das ein echtes programm schwieriger ist wie ein Virus, dann passt es ja.

Und: Ja unsere Software hat ein paar Bugs aber umsonst sind wir bestimmt nicht Marktführer


----------



## Michon (12. Nov 2007)

Hey Leute danke für die Hilfe...hab noch ein paar kurze fragen... 

1)Womit unterscheidet sich MySQL von SQL?
2)Womit unterscheidet sich htm3 von anderen html`s wie z.B. html5 oder so?
3)Womit unterscheidet sich Java2 von Java5?

 :bahnhof:  :bahnhof:  :bahnhof:

sry für die blöde frage...hat sich schon erledigt    das sind also auflagen


----------



## AlArenal (12. Nov 2007)

Du benutzt deutsche Wörter, doch welche Sprache sprichst du?


----------



## The_S (13. Nov 2007)

@... (warum auch immer ...) es ging mir nicht ums letzte Wort, sondern darum, dass du meine Aussage wohl fehlinterpretiert hast.

Außerdem fand ich es ein bisschen arg übertrieben zu behaupten, dass ihr fehlerfreie Software produziert und Microsoft nichts kann. das war alles  .

@Michon

warum schickst du mir eine PN mit genau den selben Fragen, bevor du die Fragen in das Forum stellst (nicht dass das jetzt ein Aufruf sein soll, dass du deine Fragen immer direkt an mich sendest, aber irgendwie ist die vorgehensweise etwas umständlich)?


----------



## Michon (15. Nov 2007)

hab dir ne pn geschrieben und hab dann nach einer stunde die fragen ins forum gestellt


----------



## Leroy42 (28. Nov 2007)

AlArenal hat gesagt.:
			
		

> Möchtegern-Nerds spielten mit Lisp und Prolog


 :shock: 
Hilfe! Ich war ein Möchtegern-Nerd!

(was man alles so über sich erfahren kann  :? )


----------



## AlArenal (28. Nov 2007)

Ich spielte mit Forth


----------



## Leroy42 (28. Nov 2007)

AlArenal hat gesagt.:
			
		

> Ich spielte mit Forth


Ich auch! 
Dann noch mit APL, Smalltalk und -- Schande über mein Haupt -- Cobol


----------

