Welchhe Programmiersprache magst du mehr?

Das Ergebnis basiert auf 18 Abstimmungen

C# 56%
JavaScript 44%

7 Antworten

JavaScript

Ich mag JavaScript am liebsten, weil ich Algorithmen in JavaScript mit deutlich weniger Code umsetzen kann als in C#.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
FaTech  14.02.2024, 07:34

Kannst du das spezifizieren? Ich wüsste jetzt kein Beispiel, wo das zutrifft 🤔😅

1
MrAmazing2  17.02.2024, 20:50
@FaTech

Also ich wüsste jetzt kein Beispiel wo das NICHT zutrifft 🤔

Sagen wir du hast Daten die drei Ebenen tief verschachtelt sind.

So sieht der Code für diese Struktur in C# aus:

private Dictionary<string, Dictionary<string, Dictionary<string, string>>> myDict =
     new Dictionary<string, Dictionary<string, Dictionary<string, object>>>();

So sieht er in JavaScript aus:

const myDict = {};

Ein riesiger Unterschied sowohl im Zeit- als auch im Schreib-Aufwand.

Mal ganz zu schweigen davon, dass du beim Auslesen in C# nun immer den Typ casten musst.
Und dass auf den ersten beiden Ebenen nur Dictionaries im Dictionary sein können, und keine anderen Werte.

Wenn die Struktur der Daten fest und im Voraus bekannt ist kann man natürlich eine entsprechende Klasse dafür erstellen, aber dann wird der Code NOCHMAL länger / zeitaufwändiger, als er bisher schon ist.

Typ-Sicherheit frisst deutlich mehr Zeit als man denkt.

0
FaTech  17.02.2024, 22:36
@MrAmazing2

Naja gut, aber das würde ich nicht als ein gutes Beispiel bezeichnen, denn Typ Sicherheit ist wichtig. In JavaScript kann man super schnell etwas kaputt machen, weil es dem JavaScript super egal ist. Sicherheit sollte immer vorgehen.

0
MrAmazing2  17.02.2024, 23:59
@FaTech

Klar ist Sicherheit wichtig, aber in der Frage ging es darum was man persönlich mehr mag, und ich persönlich schreibe halt lieber kurz und knackig ein „unsicheres“ Programm als lang und umständlich ein sicheres.

Zumindest was einfache Aufgaben betrifft, bei größeren Projekten sollte man natürlich nicht zu JavaScript greifen.

Aber wenn ich beispielsweise auf LeetCode oder CodeWars Algorithmen programmiere, was dann vlt. 20 Zeilen Code sind die ich gefühlt 100 mal überarbeite, dann ist Typsicherheit ein absoluter Pain. Da würde ich niemals C# o.Ä. hernehmen. Ich sag‘s hier auch nochmal: Skriptsprachen gibt es nicht zum Spaß, sondern genau zu diesem Zweck. Um Anforderungen so schnell und mit so wenig Code wie möglich erfüllen zu können.

0
FaTech  18.02.2024, 00:25
@MrAmazing2

In meinem Kommentar ging es nicht um die Frage, sondern um deine Antwort. Du hast gesagt, es geht in JavaScript kürzer als in C#. Das ist nicht wirklich so. In C# ist es nun mal Good Practice Typen zu nutzen, um die Sicherheit zu bewahren. In JavaScript nicht. Das ist schlecht und schlechter Code kann NICHT als gut betrachtet werden. Jeder, der so denkt, sollte nicht als Entwickler arbeiten (sorry). Und Typen sind alles andere als umständlich. Wenn du es nicht kannst, musst du es lernen. In C# gibt es mittlerweile immer mehr Abkürzungen, wie [] ohne new oder new ohne Ctor Angabe oder var. Diese sind immer noch Typsicher, aber machen es einfacher. Hinzu kommt: Ein Programm entwickelt man selten allein (Aus Unternehmenssicht). Schreibst du const myDict = {}; sowas, wird es früher oder später auf die fre**e fliegen. Das ist Fakt. Ein fremder Entwickler weiß nicht, was du initial damit bewirken wolltest. Er müsste hier erst mal kompliziert eine Doku lesen, wo du es erklären musst oder deinen Code weit durchforsten, um herauszufinden, wie du es benutzt hast und selbst dann gibt es keine Garantie, dass er es richtig nutzt. Typen sind wichtig. const myDict = {}; ist keine Abkürzung. Auf Dauer ist es ein Fluch

0
MrAmazing2  18.02.2024, 00:41
@FaTech

Also die Beleidigung hättest du dir ehrlich sparen können.

Dass im Unternehmen oder bei großen Projekten Typsicherheit wichtig ist ist mir schon klar.

Aber bei eigenen kleinen Projekten, oder wenn man mal kurz einen Algorithmus für ein Problem entwerfen möchte (Coding Challenges) ist Typsicherheit einfach nur Zeitverschwendung und verlängert den Code unnötig.

Warum Wert auf Sicherheit legen wenn man keine braucht? Ist doch dämlich…

0
FaTech  18.02.2024, 00:45
@MrAmazing2

Das sollte keine Beleidigung sein (Wenn es so rüberkam, tut es mir leid). Ich arbeite in einem größeren Unternehmen. Ich könnte mir eine solche Denkweise nicht erlauben. Deshalb denke ich auch anders. Im privaten Rahmen kann man sagen ok, finde ich aber trotzdem schwierig.

Ich glaube, wir können die Diskussion auch lassen. Das führt zu nichts und hilft auch den Fragesteller nicht 😅

1
LUCKY1ONE  17.02.2024, 17:54

Schwachsinn...

1
MrAmazing2  17.02.2024, 20:40
@LUCKY1ONE

Was für Schwachsinn?

In JS musst du keinen Datentyp angeben, was den Code und die benötigte Programmierzeit deutlich verkürzt. Vor allem bei komplexeren Daten macht das einen großen Unterschied, in C# müsstest du da erstmal eine Klasse erstellen wo du spezifizierst wie genau diese Daten aussehen, was wie verschachtelt ist etc., in JS hast du einfach dein Objekt und fertig. JS ist dadurch zwar sehr unsicher, der Code jedoch um einiges kürzer, also ich sehe nicht wo das Schwachsinn sein sollte.

0
LUCKY1ONE  17.02.2024, 21:38
@MrAmazing2

In C# musst du ebenfalls keine Datentypen angeben.

Was in JS so aussieht:

x = 5; 

sieht in C# so aus:

var x = 5;

Ich erkenne da kein signifikantes Code-Ersparnis.

in C# müsstest du da erstmal eine Klasse erstellen wo du spezifizierst wie genau diese Daten aussehen, was wie verschachtelt ist etc., in JS hast du einfach dein Objekt und fertig.

Ach wirklich?

var v = new { Amount = 108, Message = "Hello" };

Console.WriteLine(v.Amount + v.Message);

Setz dich doch vielleicht mal C# auseinander, bevor du darüber urteilst.

1
MrAmazing2  17.02.2024, 22:01
@LUCKY1ONE

Ja wenn du die Daten schon im Code hast isses natürlich easy das so anzugeben, klar dass man dann keine Typ-Angabe braucht, dann kann C# den Typ ja direkt selbst ermitteln …

Aber was, wenn sie von wo anders kommen, z.B. aus einer Datenbank/API/Datei/… und du sie in eine Variable packen willst?

Dann kannst du das nicht einfach so ohne Typ-Angabe schreiben, oder?

Und was, wenn die Daten dazu noch mehrere Ebenen tief sind?

0
LUCKY1ONE  17.02.2024, 22:29
@MrAmazing2
Dann kannst du das nicht einfach so ohne Typ-Angabe schreiben, oder?
Und was, wenn die Daten dazu noch mehrere Ebenen tief sind?

Doch. Das geht zum einen über das Keyword var, sowie über objects und dynamics. Damit einhergehend ist natürlich eine gewisse Typunsicherheit, weswegen man in diesem Kontext lieber Klassen oder die kompakteren Structs verwendet.

1
MrAmazing2  17.02.2024, 23:34
@LUCKY1ONE

Ja super aber dann musste tausendfach casten wenn du die Daten auslesen willst…

Das meinte ich mit „in JS braucht man deutlich weniger Code“, daran ist nichts schwachsinnig, sondern halt einfach Fakt.
Es ist ein Trade-Off: Man verzichtet auf Typ-Sicherheit, muss dafür aber deutlich weniger Code schreiben.
Für Skripting (wofür JavaSCRIPT) ja ürsprünglich gedacht war, wie geschaffen.

0
LUCKY1ONE  17.02.2024, 23:36
@MrAmazing2

Ne. Brauchst du eben nicht. Bitte informiere dich dahingehend doch einfach, statt hier die ganze Zeit son Ramsch zu erzählen..

0
MrAmazing2  17.02.2024, 23:55
@LUCKY1ONE

Ja gut man KANN natürlich dynamic hernehmen, dann braucht man keinen cast, haste recht…

Aber macht niemand. Absolute bad practice. Das ist wie wenn ich TypeScript hernehme und dann alles als „any“ annotiere.

In einem NORMALEN Programm schreibt man in C# Typen, die oft sehr komplex werden können, und in JS nicht, daher sind JS Programme in der Regel um etwas kürzer.

Skriptsprachen wie JS und Python gibt es doch nicht zum Spaß, sondern eben genau aus diesem Grund.

0
LUCKY1ONE  18.02.2024, 00:03
@MrAmazing2

Ganz JavaScript ist mal nebenbei angemerkt "bad practice", wenn man es so nimmt. Ich sehe bei JS gegenüber dynamics keinen Vorteil.

JS ist, um ehrlich zu sein, auch nur so beliebt, da es keine wirklichen Alternativen gibt. Nicht umsonst hat man einen Transpiler für JS gebaut..

Mir würde auch nichts einfallen, was algorithmisch schneller in JS umgesetzt wäre, als in beispielsweise C#. Ganz im Gegenteil. Bei JS hast du ja noch zusätzlich eher Leistungseinbuße.

1
MrAmazing2  18.02.2024, 00:32
@LUCKY1ONE

Tatsache, für große Programme ist JS definitiv Bad Practice. Aber bei kleinen Programmen, wofür JS ja gedacht ist, ist Typsicherheit so ziemlich egal.

Nö, ich denke eher JS ist beliebt weil es mit simpelsten Bausteinen alles ermöglicht. Objekt, Liste, Primitive Datentypen, fertig. Man muss nicht tausende verschiedene Array-Typen auswendig lernen, welchen man in welchem Fall besser hernimmt, sondern kann einfach drauf los starten. Und JSON-Objekte finde ich auch wunderbar, vor allem im Vergleich zu dictionary an dictionaries an dictionaries etc.. Und die Abwesenheit von Typsicherheit macht den Code schön kurz, das mögen vlt. auch noch manche (z.B. Ich). JS bei der Beliebtheit mit Sprachen die einen komplett anderen Sinn haben zu vergleichen ist aber auch frech. Ich finde wenn, dann sollte man es mit anderen Skriptsprachen wie Python vergleichen. Und da ist mir persönlich JS deutlich lieber, aber da hat wohl jeder seine persönliche Preferenz.

TypeScript gibt es halt für die größeren Programme. Nicht unbedingt weil JavaScript an sich schlecht ist, sondern weil das halt einfach ein komplett anderer Anwendungsfall ist, ob ich eine 5-Minuten-Webseite bastle, wo auch mal ein Bug drinnen sein darf, oder ein Enterprise-Level-Ding.

Und ja, schneller ist eine interpretierte Sprache natürlich nie, aber hab ich ja auch nicht behauptet.

0
LUCKY1ONE  18.02.2024, 00:40
@MrAmazing2

Um das Ganze hier mal abzuschließen. Ich verstehe deine Punkte. Allerdings muss man sagen, dass JS heutzutage für weitaus mehr, als für kleine Skripts verwendet wird.

Dahingehend bleibe ich außerdem bei der Meinung, dass solche Skripts (in C#) mit gleichem Arbeitsaufwand geschrieben werden können.

Und ne. JS ist beliebt, weil es keine Alternativen gibt. WebAssembly ist mit Abstand nicht so weit verbreitet und clientseitig gibt es nunmal nur JS und WASM.

1
MrAmazing2  18.02.2024, 00:49
@LUCKY1ONE

👍🏼 Wenn man es für mehr verwendet, dann sollte man TypeScript verwenden, fertig.

Könnte man Python oder C# im Frontend hernehmen, denkst du die Leute würden es JS gegenüber bevorzugen?
I doubt it. Ich finde JS (und bei größeren Webseiten TS) eine wunderschöne Sprache. Aber egal, jedem das seine.

0
LUCKY1ONE  18.02.2024, 00:53
@MrAmazing2

Jepp, jedem das Seine. C# verwenden btw. viele gerne als JS- "Ersatz" in Blazor.

1
C#

Seit Jahren nutze ich C#. Auch für mein Windows Rechner. Am Anfang etwas mit C++. Es reicht für mich vollkommen aus wenn ich die Basic etwas beherrsche. Mit Java und Python usw komme ich da überhaupt nicht so gut zurecht. Wenn ich etwas sinnvolles programmiere im Form einer App also ein kleines Minispiel, dann nutze ich das von Microsoft dieses Arcade Coding. Weil da macht das lernen so richtig Spass. Das ist so ein Art Klemmbaustein Programmierung in deutsch. Weil dort bekomme ich tolle Schulungen, Tutorials und noch vieles mehr. Umsonst. Aber Nobody its perfect. Fehler ist halt menschlich.

Woher ich das weiß:Berufserfahrung – Systemadministrator im Bereich Spiele, Softwares usw
C#

Ich finde JS zu kaugummiartig. C# ist einfach schön, ordentlich und stabil aber auch flexibel.

Woher ich das weiß:Berufserfahrung – Softwareentwicklerin
GuteFrageUse795  14.02.2024, 00:38

typescript löst ; )

0
Lamanini  14.02.2024, 00:41
@GuteFrageUse795

Jaa, das stimmt schon. Benutz ich ja auch auf der Arbeit dann immer. Aber ich ärger mich viel zu viel darüber, als das ich es mehr mögen könnte als C#😂

0
GuteFrageUse795  14.02.2024, 00:42
@Lamanini

Wird nur schwierig Frontend ohne Js umzusetzen ; ) also im Browser. War unter C# mal großer Fan von WPF.

0
Lamanini  14.02.2024, 00:54
@GuteFrageUse795

Das geht ohne Probleme mit Blazor, sowohl serverside rendered, als auch als hybrid oder ganz getrennt.

Webassembly sei dank.

1

SPA Web-Apps mit C# zu schreiben ist eher schwierig.

Allerdings bevorzuge ich TypeScript gegenüber JavaScript für diesen Zweck.

Woher ich das weiß:Berufserfahrung – Tätigkeit als Webentwickler in einer Digitalagentur
JavaScript

Man braucht nur einen Editor und einen Browser um anfangen zu können!