Autor Beitrag
step4step
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 23.11.07 17:24 
Hi,

ich möchte in die Objektorientierte Programmierung einsteigen, hab aber bisher absolut keine Ahnung davon.
Nun sthe ich vor der wahl, ob ich als Anfänger c# oder Java wählen sol. Bislang kenne ich aus der Schule nur Turbo-Pascal.

Warum will ich einsteigen?
a) einfach Interesse
b) suche Ausbildungsstelle zum Fachinformatiker, kann da wohl nicht schaden.

Also:
Was spricht aus eurer sicht für c# im Vergleich zu Java?

Danke schon mal für Tips.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Fr 23.11.07 18:35 
C# ist moderner.

_________________
Na denn, dann. Bis dann, denn.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 23.11.07 18:41 
:lol: 16 Zeichen für die Vorteile von C# gegenüber Java. Sooooo ausführlich wollte es step4step wahrscheinlich gar nicht wissen :mrgreen:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Fr 23.11.07 18:57 
user profile iconalzaimar hat folgendes geschrieben:
C# ist moderner.

C# ist primär noch nicht so alt und hat manche Dinge von anfang an die bei Java erst mit den letzten Versionen dazugekommen sind:

Vorteil C# (bzw. .NET):
- Alles aus einer Hand (Framework, IDE, ...)
- Optimal für Windows
- Soll *irgendwann* mal die API für Windows sein (sollt ja eigentlisch schon seit Windows 2003 der Fall sein)

Nachteil:
- Primäre Entwicklung (vom Ziehvater) ist nur für Windows. Alternative Implementierungen hinken immer hinterher
- Einige Teile von .NET unterliegen MS-Patenten (Damokleschwert über Mono wenn man das Amerikanische Patentsystem betrachtet)
- Geringere Plattformverbreitung
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Fr 23.11.07 20:59 
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 23.11.07 21:29 
Bei Wikipedia gibt es (natürlich ;) ) auch noch einen Vergleich. Hätte erwartet, dass dort ein ziemlich ausgeglichenes Ergebnis präsentiert wird, imho neigt sich die Waage aber deutlich zu einer Seite...
step4step Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 24.11.07 12:25 
user profile iconBernhard Geyer hat folgendes geschrieben:
Vorteil C# (bzw. .NET):
- Alles aus einer Hand (Framework, IDE, ...)
- Optimal für Windows

Vielen Dank schon mal für die Infos.
Lese ich daraus, dass c# für Anfänger einfacher zu handeln ist?
Konkret:
Bei c# mach ich eine Installation und alles ist dabei und läuft.
Bei Java dagegen muss ich mir einzelnen Komponenten zusammensuchen und dann selbst irgendwie zusammen ans Laufen bringen?
Zitat:
Nachteil:
- Primäre Entwicklung (vom Ziehvater) ist nur für Windows. Alternative Implementierungen hinken immer hinterher
- Einige Teile von .NET unterliegen MS-Patenten (Damokleschwert über Mono wenn man das Amerikanische Patentsystem betrachtet)
- Geringere Plattformverbreitung

Hmm, die geringere Plattformverbreitung ist ein Argument.
Allerdings mach ich im Moment eh unter Windows (hab bislang auch nur wenig Erfhrungen mit Linux, andere Plattformen kenne ich nicht).

Wenn ich das richtig sehe, ist die Funktionalität fürs Lernen bei c# und java gleichwertig, oder?

Wenn ich bei Wikipedia sowas lese wie
Zitat:
... konzeptionelle Unterschiede bestehen insbesondere in der Unterstützung von Delegaten, einem Konzept, das mit Funktionszeigern vergleichbar ist. Hierbei kommt ein Beobachter-Entwurfsmuster zum Einsatz

versteh ich das nicht :( und ist für mich wahrscheinlich nur am Rande wichtig. Ähnlich geht es mir bei der Übersicht Vergleich objektorientierter Programmiersprachen

Wichtig wäre für mich vor allem:
  1. möglichst einheitlich zu bedienende Oberfäche (damit ich beim Nachdenken über ein Programmproblem nicht durch Handlingprobleme abgelenkt werde)
  2. Editor mit guten Debugger-Funktionen
  3. vernünftige integrierte Online-Hilfefunktion


Kann man sagen dass bei den 3 Punkten c# deutlich gegenüber java punktet oder ist das eher gleich?

Dank schon mal!


Zuletzt bearbeitet von step4step am Sa 24.11.07 13:06, insgesamt 1-mal bearbeitet
step4step Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 24.11.07 12:30 
user profile iconChryzler hat folgendes geschrieben:
www.harding.edu/fmcc...harp_comparison.html könnte weiterhelfen. :)

Danke für den Hinweis!

Da sind ja im Prinzip keine so großen Unterschiede. Mir ist allerdings aufgefallen, dass es in Java wohl keine "Structs" gibt.
Wozu sind die gut?
Ist das überhaupt für eine Lernumgebung wichtig?
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Sa 24.11.07 17:42 
Structs sind in Delphi die records.
In Java kannst Du Structs als Klassen schreiben die keine Methoden sondern und Felder(also Variablen) enthalten.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 24.11.07 18:11 
user profile iconTilo hat folgendes geschrieben:
In Java kannst Du Structs als Klassen schreiben die keine Methoden sondern und Felder(also Variablen) enthalten.
Wie meinen? Warum sollte ein Struct keine Methoden enthalten dürfen (das können doch sogar Delphi-Records) und wie soll das dann eine Klasse zu einem Wertetyp machen können?

@Benutzerfreundlichkeit: Viele meinen, Java sei zu akademisch ausgelegt, was dann auf Kosten der Benutzerfeundlichkeit ginge. Beispiel, das ich hoffentlich richtig hinbekomme, ohne jemals eine Zeile Java geschrieben zu haben:
ausblenden C#-Quelltext
1:
2:
3:
string s = "Hallo";
if (s == "Hallo")
  ... // ich werde niemals ausgeführt
Wenn du auf den Grund kommst, warum der Vergleich immer false ergeben könnte, bist du ziemlich gut ;) .

user profile iconChryzler hat folgendes geschrieben:
www.harding.edu/fmcc...harp_comparison.html könnte weiterhelfen. :)
Syntaktische Unterschiede sind wohl das Uninteressanteste, wenn die eine Sprache direkt von der anderen abstammt :zwinker: .


Zuletzt bearbeitet von Kha am Sa 24.11.07 18:32, insgesamt 1-mal bearbeitet
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Sa 24.11.07 18:20 
user profile iconTilo hat folgendes geschrieben:
Structs sind in Delphi die records.
In Java kannst Du Structs als Klassen schreiben die keine Methoden sondern und Felder(also Variablen) enthalten.

nein kannst du nicht!
das sind immer noch klassen -> heap + garbage collector
structs = elementare datentypen -> stack

@Khabarakh
dein code würde nicht mal compiliert werden^^( ein " vergessen :P )

und wenn man dein " nicht vergisst funktioniert es manchmal und manchmal nicht in java
s und "Hallo" hätten die selbe referenz und die wird mit == verglichen.
Allerdings spinnt diese methode hin und wieder. Ich hab leider ein Jahr lang in java programmieren müssen(schule) und hatte einige programme wo ich die strings direkt mit == verglichen hab und nicht mit der equals methode. in 90% der Fälle hat es funktioniert in den restlichen halt nicht.

lg
green
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 24.11.07 18:35 
user profile iconGreenberet hat folgendes geschrieben:
dein code würde nicht mal compiliert werden^^( ein " vergessen :P )
Huups, das ist aber peinlich :oops: . Hab schon fast befürchtet, dass irgendetwas wie String Interning oder Compiler-Optimisierungen greifen könnten, wenn das aber gar nicht wirklich berechenbar geschieht, wird es ja noch lustiger :mrgreen: .
blackbirdXXX

ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1077
Erhaltene Danke: 1

Ubuntu Dapper

BeitragVerfasst: So 25.11.07 21:15 
user profile iconKhabarakh hat folgendes geschrieben:
@Benutzerfreundlichkeit: Viele meinen, Java sei zu akademisch ausgelegt, was dann auf Kosten der Benutzerfeundlichkeit ginge. Beispiel, das ich hoffentlich richtig hinbekomme, ohne jemals eine Zeile Java geschrieben zu haben:
ausblenden C#-Quelltext
1:
2:
3:
string s = "Hallo";
if (s == "Hallo")
  ... // ich werde niemals ausgeführt
Wenn du auf den Grund kommst, warum der Vergleich immer false ergeben könnte, bist du ziemlich gut ;) .


ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
mitsuhiko@nausicaa:~/Development/werkzeug$ cat test.java 
import java.io.*;

class test {
        public static void main (String[] args) {
                String s = "Hallo";
                System.out.println(s == "Hallo");
        }
}
mitsuhiko@nausicaa:~/Development/werkzeug$ javac test.java 
mitsuhiko@nausicaa:~/Development/werkzeug$ java test
true

Und jetzt?



user profile iconGreenberet hat folgendes geschrieben:
Allerdings spinnt diese methode hin und wieder.

Nein. Das ist genau definiert, wann das geht und wann nicht. "==" vergleicht Speicheraddressen, die .equals Methode vergleicht Objekte.

Moderiert von user profile iconChristian S.: Beiträge zusammengefügt

_________________
Klein, schwarz und ärgert Techniker? Jumper!
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Mo 26.11.07 01:15 
user profile iconblackbirdXXX hat folgendes geschrieben:


user profile iconGreenberet hat folgendes geschrieben:
Allerdings spinnt diese methode hin und wieder.

Nein. Das ist genau definiert, wann das geht und wann nicht. "==" vergleicht Speicheraddressen, die .equals Methode vergleicht Objekte.

ja das dachte ich auch. nur irgendwie hat das nicht immer funktioniert. vl hatte die vm was kA. is halt eine Erfahrung die ich gemacht hab.
step4step Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 28.11.07 21:59 
Vielen Dank für die Infos.
Ich habe mich jetzt für C# entschieden.

user profile iconBernhard Geyer hat folgendes geschrieben:
Vorteil C# (bzw. .NET):
- Alles aus einer Hand (Framework, IDE, ...)
- Optimal für Windows


Das war für mich entscheidend gemeinsam mit der Bedienerfreundlichkeit und den Hilfen, die das System liefert.

Falls es jemand interessiert: An der Uni Trier habe ich einen - soweit ich das nach den ersten knapp 50 Seiten einschätzen kann - guten Einführungskurs (PDF-Format und Übungsdateien) gefunden.