Zum Inhalt springen
  • 0

C# oder Java


ITJim

Frage

Guten Abend,

bin immer noch in der Ausbildung wo wir Programieren mit C# und Java lernen. 

Nun kann ich mich allerdings nicht entscheiden ob ich  C# oder Java weiter verfolgen soll. 

Könnt ihr mir da einen Tipp geben wie ich das am günstigen entscheide. Worauf soll ich meine Entscheidung beziehen?

In unserer Klasse sind 8AE und genau die Hälfte steht auf Java, der stets auf C#.

wollte erst eine Umfrage erstellen, dies ging leider nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

16 Antworten auf diese Frage

Empfohlene Beiträge

  • 0
Gast Exception

Guten Abend,

das ist schwierig zu beantworten. Hängt letztendlich immer davon ab, wohin du genau möchtest, welche Sprachen deine Firma verwendet und ggf. persönlicher Geschmack. Grundsätzlich sind beide Sprachen sehr ähnlich und haben vieles gemeinsam. Wenn du einer dieser Sprachen gut beherrscht, so ist ein Umstieg auf die andere Sprache sehr leicht möglich. Schwieriger wird es dann eher beim Einstieg in die jeweiligen Frameworks - insbesondere im JavaEE Umfeld.

Viele Grüße

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Du kannst fünf Leute fragen und bekommt sechs Antworten. ;)

Ich persönlich habe früher mit Java entwickelt, weil ich damals plattformunabhängig entwickeln wollte und .net so ein auf Windows spezieller proprietärer Kram war. C# wollte ich daher nie anfassen. Erste C#-Erfahrung sammelte ich dann in meiner Ausbildung bezüglich einer Seminararbeit über die Spieleentwicklung mit dem XNA-Framework. Später landete ich dann in einer Firma, die mit C# arbeitet und heute muss ich sagen, dass ich lieber mit C# arbeite anstatt mit Java. C# bekommt auch immer mehr Einflüsse aus der funktionalen Programmierung, die das Leben schon erleichtern. Inzwischen liegt auch der Quellcode offen und lässt sich ohne große Mühe für andere Plattformen ausrollen.

Nicht desto trotz gibt es derzeit aber immer noch mehr Stellenangebote für Java-Entwickler und ich denke, das wird auch für einige Jahre so bleiben, da viele Business-Software damit entwickelt worden sind, die weiterhin laufen werden. Es ist also mehr eine persönliche Präferenz, ob man nun Java oder C# nimmt. Von der allgemeinen Syntax her sind aber beide Sprachen sehr ähnlich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Ich denke du kannst für dich eine Vorliebe entwickeln, und ggf. eine Firma suchen, wo du entweder mit Java oder mit C# arbeiten kannst. Die Problemlösungsstrategien, die du mit der Zeit entwickelst, wirst du auf andere Sprachen übertragen können. Mit der Zeit stellt sich die Frage nach einer Sprache oder einer Plattform/Framework weniger. Man ist eher dazu bereit auch mal was anderes zu probieren. Ich bin beispielsweise nach ca 7 Jahren .NET / C# und co. Richtung funktionaler Programmierung mit Elixir / Erlang gewechselt. Ich bin offen dem gegenüber, was kommen mag. Die Jahre davor sind nicht weggeworfen. Ich profitiere jeden Tag davon.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 33 Minuten schrieb allesweg:

Wie? Nach 11 Stunden noch kein "Lerne die Konzepte (von OO) - die konkrete Sprache ist nur Syntax"-Posting? :o

Hallo ITJim,

sobald Du die Konzepte der OOP verstanden hast, kannst Du sie auf jegliche Sprache anwenden. Oft unterscheidet sich nur die Syntax und das Wording für die gleichen Befehle. Jede Sprache hat so ihre positiven und negativen Seiten, oft kommt es nur auf die Anforderungen an für welche Programmiersprache sich entschieden wird. Soll die Anwendung auf vielen Geräten einsetzbar sein? Nutz Java. Möchtest Du eine native Windows-only Anwendung bauen? C# eignet sich gut dafür. Besteht Dein Entwicklerteam nur aus C++ Profis? Nutz C++.

Nimm die Sprache, womit du am meisten Spaß hast. Entwickler werden immer gesucht, egal in welcher Programmiersprache bewandt.

PS: java rulez, C# is sh!t

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 13 Stunden schrieb r4phi:

 instance.getProduct().setName(„Name“);

 vs

 instance.product.name = „Name“;

 Das zweite finde ich einfach schöner

Ist aber auch nicht das selbe. Ersteres (instance.geProduct().setName(...)) sind zwei einfache Methoden, während letzteres (instance.Product.Name) zwei Properties sind (weshalb man sie auch groß schreiben sollte). Dadurch, dass es in Java keine Properties (in diesem Sinne) gibt und in C# Properties Setter und Getter haben, müssen in Java eben Methoden verwendet werden, um Setter und Getter zu implementieren. Wobei Java-Entwickler das gerne für jede Klassenvariable schreiben, egal ob der Setter und Getter noch irgendwelche besondere Logik enthält. Was nun besser ist, darüber kann man natürlich streiten. Ich finde hier C# etwas eleganter.

Allgemein finde ich, dass C# ein paar schöne Konstrukte hat, die es in Java nicht gibt wie z.B. Extension Methods, Object Inititalizer und sicher noch ein paar Dinge mehr.

Am 3.6.2019 um 21:47 schrieb ITJim:

Nun kann ich mich allerdings nicht entscheiden ob ich  C# oder Java weiter verfolgen soll. 

 Könnt ihr mir da einen Tipp geben wie ich das am günstigen entscheide. Worauf soll ich meine Entscheidung beziehen?

Ich mach schon lange kein Java und C# mehr, deshalb kann ich dir gar kein so guten Rat darauf geben. Sprachlich schöner als Java und C# finde ich Swift (Apple) und Kotlin (Java Runtime), diese wären vielleicht noch ein Blick wert. Ansonsten kommt es, wie bereits gesagt, auch häufig auf das verwendete Framework an.

Am 4.6.2019 um 09:02 schrieb Gooose:

Richtung funktionaler Programmierung mit Elixir / Erlang gewechselt.

Wie schwer war hier für dich der Umstieg bzw. wie lange hat es ungefähr gedauert? Die Denkweise ist ja dann doch eine andere. Ich spiele gerade auch mit dem Gedanken, mich mit Elixir auseinanderzusetzen.  

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 1 Stunde schrieb pr0gg3r:

Wie schwer war hier für dich der Umstieg bzw. wie lange hat es ungefähr gedauert? Die Denkweise ist ja dann doch eine andere. Ich spiele gerade auch mit dem Gedanken, mich mit Elixir auseinanderzusetzen.  

Da mit der Zeit immer mehr funktionale Elemente in C# eingeflossen sind, habe ich mich interessehalber mit Erlang, Haskell und F# beschäftigt. Das "dümpelte" so ein Jahr vor sich hin. Als ich die Möglichkeit bekam, in einem Elixir Projekt mitzuarbeiten, habe ich dann aus Neugier zugeschlagen. Mit meinen Vorkenntnissen habe ich ca. eine Woche benötigt, bis ich meine ersten produktiven Commit erstellt habe. Am Anfang sicherlich nichts Weltbewegendes, aber man kann mit Elixir relativ schnell Fahrt aufnehmen.

In Erlang/Elixir ist die funktionale Programmierung ein Mittel zum Zweck. Wichtiger ist es den Supervision Tree zu verstehen; zu verstehen, wie Prozesse miteinander interagieren. Es gibt hilfreiche Abstraktionen wie den GenServer und den Supervisor, der die Kommunikation zwischen den Prozessen ein wenig "normiert".

Ein guter Einstieg ist das Phoenix Framework, welches die Möglichkeiten der Sprache  ziemlich ausnutzt. Man muss am Anfang nicht alles verstehen. Die Dokumentation ist vorbildlich, und man kann aus fast allen Punkten direkt in den Code springen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 4 Stunden schrieb pr0gg3r:

Ist aber auch nicht das selbe. Ersteres (instance.geProduct().setName(...)) sind zwei einfache Methoden, während letzteres (instance.Product.Name) zwei Properties sind (weshalb man sie auch groß schreiben sollte). Dadurch, dass es in Java keine Properties (in diesem Sinne) gibt und in C# Properties Setter und Getter haben, müssen in Java eben Methoden verwendet werden, um Setter und Getter zu implementieren. Wobei Java-Entwickler das gerne für jede Klassenvariable schreiben, egal ob der Setter und Getter noch irgendwelche besondere Logik enthält. Was nun besser ist, darüber kann man natürlich streiten. Ich finde hier C# etwas eleganter.

Die Properties in C# sind aber auch nur syntaktischer Zucker, da der Compiler die in Methoden umbaut, wie in Java. Also aus

public string Name { get; set; }

baut der Compiler dies:

private string _name;

public string _getName()
{
    return this._name;
}

public void _setName(string value)
{
    this._name = value;
}

Und somit sind Properties  das selbe, wie die Getter und Setter in Java. Es ist halt nur eine kürzere Schreibweise.

 

 

Bearbeitet von Whiz-zarD
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 2 Stunden schrieb Whiz-zarD:

Und somit sind Properties  das selbe, wie die Getter und Setter in Java. Es ist halt nur eine kürzere Schreibweise.

Danke euch beiden, aber nach X Jahren C# ist mir das mehr als klar. Es nennt sich übrigens Automatic Properties. 

 Ich habe mich auch lediglich auf die Schreibweise beschränkt. Nicht mehr und auch nicht weniger.. nicht dass das hier ausufert. Ändert aber nichts an der Tatsache das es in C# eleganter ist. 

Des weiteren fehlt mir bei Java die LINQ (ja, mit stream oder map ist es ähnlich aber nicht ganz so schön) sowie AutoFixture. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

@ITJim Letztendlich keine Frage, die sich in irgendeiner Form pauschal beantworten ließe. 

Es ist ein bisschen so als würdest du fragen, ob du dir eine Xbox oder eine PlayStation kaufen sollst, ob Bayern oder Dortmund der bessere Verein ist und ob Coke oder Pepsi besser schmeckt. Du musst am Ende also abhängig von deinen Präferenzen entscheiden:

  • Woran hast du mehr Spaß?
  • Mit welchen Entwicklerwerkzeugen (Eclipse, Visual Studio, o.Ä.) kannst du besser arbeiten?
  • Hast du aktuell einen Überblick über das, was die Sprachen eigentlich konkret bieten?
  • Hast du dir Gedanken darüber gemacht, ob du dich später z.B. in Richtung (für C# gesprochen, gilt für Java analog mit passenden Dingen) .NET Core, WPF, Xamarin spezialisieren möchtest - also irgendetwas, was dich besonders reizen würde?
  • Möchtest du am liebsten einfach für Windows, Mobile, whatever oder Multi-Platform entwickeln?
  • Gibt es für die Sprachen in deiner Region überhaupt einen Markt, sprich: Hast du da später theoretisch etwas von A zu lernen, wenn bei dir auf der Ecke aber ausschließlich B gesucht wird?

Und so weiter. Wäre zumindest das, was ich mir kurz durch den Kopf gehen lassen würde.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

@spix

Was ist bitte dieser "High Biz Bereich", welcher der exklusive Java-Einsatzbereich sei?

Wieso gibt es noch andere (auch kostenpflichtige) IDEs, wenn VS die beste und kostenlos ist?

Was ist eine vernünftige GUI? 

Hast du dafür irgend welche Argumente oder bin ich zu blind, dieses Offensichtlichkeiten nicht zu kennen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • -1

Java ist nur für den High Biz Bereich brauchbar und interessant.  Ansonsten ist C# Technisch besser und mit Visual Studio hast du die beste IDE überhaupt.  

Beide Sprachen haben ihre Altlasten, wobei diese Lasten bei Java leider größer sind.  Vernünftige GUI kannst du nur mit externen Tools bauen.  In VS geht das alles Wunderbar.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • -5
vor 2 Minuten schrieb allesweg:

@spix

Was ist bitte dieser "High Biz Bereich", welcher der exklusive Java-Einsatzbereich sei?

Wieso gibt es noch andere (auch kostenpflichtige) IDEs, wenn VS die beste und kostenlos ist?

Was ist eine vernünftige GUI? 

Hast du dafür irgend welche Argumente oder bin ich zu blind, dieses Offensichtlichkeiten nicht zu kennen?

Ua SAP Bereich und Konkurrenz.

Andere IDE als VS braucht man nicht. 

Visual Studio

Evtl Blind.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...