Java int == garnichts?

Wie Whiz-zarD schon anführte, gibt es Gründe den ternären Operator in das Repertoir aufzunehmen...

Warum auch ich einen ternären Operator einem if else Konstrukt vorziehen würde? Zugegeben manchmal aus Faulheit, aber meist weil ich es einfach gewohnt bin, diesen auch zu verwenden, statt ihn von Anfang an abzulehnen. Er ist nicht böse, er tut nicht weh, also trau dich... ;) Im übrigen gibt es auch Entwickler, die mehrere Returns in einer Methode als schlechten Stil verpönen. Am Ende darf man so gut wie garnichts mehr, dann ist man gefangen und dreht sich nur im Kreis, während die Konkurrenz mit dem neuesten und besten Feature ever den Markt leer fischt...

Was ich sagen will, es gibt immer mindestens noch einen weiteren Weg um ein Problem zu lösen. Der eine macht es so, der Nächste macht es anders. Neulinge sollten jedoch erstmal anfangen, überhaupt etwas zu machen. Beschissen wenn gleich einer mit mehrjähriger Projekterfahrung den Finger hebt um auf irgend einen drecks Styleguide von irgendwem hinterm Wald zu verweisen und schreit: "Das gewöhn dir ganz schnell ab! Das mach niemals! Das ist schlecht!" Ganz schlechte Vorgehensweise um jemanden zu etwas zu animieren. Am Ende denkt sich der Neuling: "Ne, ne das ist nix für mich, aber der FunnyName, der - der ist nen ganz Großer" Ich sag da immer, hey probiers aus, wenns geht ists gut, wenn nicht, such nen anderen Weg...

Schon vor 15 Jahren sagte mein Info-Lehrer:
"Schreibs kurz und knackig und gib ihm dann nen schönen Namen!"
 
Zuletzt bearbeitet:
Rossibaer schrieb:
Wie Whiz-zarD schon anführte, gibt es Gründe den ternären Operator in das Repertoir aufzunehmen...

vielleicht 2-3. Variablen sparen um Speicherplatz zu sparen, wo ist das heute noch notwendig? (im JAVA Umfeld) Wir reden ja hier nicht über Assembler.

...aber meist weil ich es einfach gewohnt bin, diesen auch zu verwenden, statt ihn von Anfang an abzulehnen. Er ist nicht böse, er tut nicht weh, also trau dich... ;)

genau das hab ich geschrieben. auf Grund dessen dass er aber nur in wenigen Fällen wirklich Nutzen bringt, wird er aber nicht so oft benutzt, so dass er für viele eben nicht "gängig" ist. Ich war übrigends mal absoluter Fan von dem Teil in meiner Anfangszeit, das hatte sowas "professionell-kryptisches". Deshalb guck ich auch aus Interesse in die JAVA-Styleguides die mir so vor die Nase kommen (nicht weil ich ein Korinthenkacker bin ;) )

Am Ende darf man so gut wie garnichts mehr, dann ist man gefangen und dreht sich nur im Kreis, während die Konkurrenz mit dem neuesten und besten Feature ever den Markt leer fischt...

wann hat bitte die Art und Weise wie man programmiert 'nen Einfluss auf die Entwicklungszeit von neuen Features? Da mangelts dann wohl eher an Ideen als an Umsetzungsmöglichkeiten.

Neulinge sollten jedoch erstmal anfangen, überhaupt etwas zu machen.
jupp, richtig. Aber Neulinge sollten auch Hilfe bekommen wenn sie sie brauchen, oder?

Beschissen wenn gleich einer mit mehrjähriger Projekterfahrung den Finger hebt um auf irgend einen drecks Styleguide von irgendwem hinterm Wald zu verweisen und schreit: "Das gewöhn dir ganz schnell ab! Das mach niemals! Das ist schlecht!"

Erstens hab ich nie geschrieben er soll das lassen, sondern einfach nur darauf hingewiesen. Nebenbei ist dir vielleicht entgangen dass ich ein paar Zeilen mehr geschrieben habe (unter anderem dass es für nen Anfänger gar nicht schlecht war/ist), die durchaus konstruktiv waren. Zweitens handelt es sich nicht um EINEN Styleguide sondern doch um eine ganze Vielzahl aber anscheinend hast du ein recht gespaltenes Verhältnis zu Styleguides.
Wenn man irgendwann mal ein paar hunderttausend Zeilen Sourcecode von indischen Programmierern warten darfst, die zwar durchaus funktionieren, aber kein Mensch versteht, dann bist du froh drum ;)

...wenns geht ists gut, ...
jaein. Als Anfänger in Maßen ja, als Fortgeschrittener nein!
 
Zuletzt bearbeitet:
Kannst du mal aufhören, mit deiner tollen Java-Welt?
Es ist scheißegal, obs Java, php, C, C++ oder sonst irgendeine Sprache ist. Wenn man Variablen einsparen kann, ohne dabei die Übersichtlichkeit kaputtzumachen, sollte man es machen.
Gerade in Java, wo jede Variable ein Objekt ist, was erstmal erzeugt werden muss.
Übrigens: In der php-Welt wird der ternäre Operator sogar sehr häufig verwendet.

Selbst mein Dozent (Prof. Dr.) in "Algorihmen und Datenstrukturen" und "OOP in Java" meint, dass der ternäre Operator sehr nützlich ist und wir ihn auch anwenden sollen. Ein Programmierer, der den ternären Operator nicht kennt, kennt sich schlicht und ergreifend nicht mit seinem Handwerk aus.
Zumindest sollte man davon ausgehen, dass ein Programmierer weiß, wo er nachschauen muss, um den ternären Operator zu vestehen.

Man sollte zwar den ternären Operator nicht bei komplexen Dingen verwenden, weil es tatsächlich sehr unübersichtlich und kryptisch werden kann, aber da, wo er nützlich ist, sollte man ihn auch anwenden.

Programmierrichtlinien in Firmen dienen in erster Linie dazu, dass der Code von mehreren Leuten einhaltlich aussieht. Es gibt Programmierer, die verwenden den ternären Operator nicht. Es gibt wiederrum welche, die verwenden ihn und andere verwenden ihn, aber falsch.
Gerade deswegen wird er oft in den Richtlinien verboten, weil dieser ein Stilbruch bedeutet, weil es unterschiedliche Parteien gibt, die ihn anders behandeln und nicht, weil er kryptisch aussieht.

FunnyName schrieb:
wann hat bitte die Art und Weise wie man programmiert 'nen Einfluss auf die Entwicklungszeit von neuen Features? Da mangelts dann wohl eher an Ideen als an Umsetzungsmöglichkeiten.

Die Art und Weise spielt eine extrem wichtige Rolle.
Darum gibt es die Programmierrichtlinien, damit die Art und Weise gleich bleibt.

Aus Erfahrung kann ich dir sagen, dass es ein Graus ist, wenn mehrere Leute an einem größeren Projekt arbeiten und es keine Richtlinien existieren und jeder programmiert, wie er meint*. Später ist das wirklich extrem schwer, da noch neue Features einzubauen, oder jemand ist krank und in seinem Teil wurde ein Bug festgestellt, der behoben werden muss. Man kann sich da nur sehr schwer in die Gedanken des jenigen versetzen, um nachzuvollziehen, was er da gemacht hat.

Und ich sags nochmal: Gerade deswegen gibt es die Richtlinien und nicht, weil die Syntax etwas kryptischer aussieht.

* Hab schon erlebt, dass wegen sowas eine Firma pleite gegangen ist, da jeder Programmierer seinen eigenen Stil hatte und der Kunde gefiel die Software nicht und wollte, dass sie verändert wird und das Verändern so schwierig wurde, dass die Firma die Deadline nicht einhalten konnte und die software voller Bugs war, sodass sie eine konventionalstrafe zahlen mussten und somit pleite waren.
 
Zuletzt bearbeitet:
Kleine Korrektur bezüglich Java:
Gerade in Java, wo jede Variable ein Objekt ist, was erstmal erzeugt werden muss.
stimmt so nicht.

Code:
Boolean result = true;
und
Code:
boolean result = true;
sind nicht identisch. Native Datentypen sind keine Objekte, können aber per autoboxing in solche verpackt werden (großgeschriebene Variante).
Die Erzeugung eines booleans wie z.B. hier result, bevor die Zuweisung geschieht kostet quasi nichts (Erzeugung auf dem Stack) und daran rumoptimieren zu wollen ist völlig sinnlos und es wird mit Nachdruck davon abgeraten.

Damit will ich aber keineswegs dem Rest widersprechen. Ich bin Befürworter des ternären Operators (allerdings nur von dem ohne Zeilenumbruch).
 
Zuletzt bearbeitet:
@Funny Name:
... Zweitens handelt es sich nicht um EINEN Styleguide sondern doch um eine ganze Vielzahl aber anscheinend hast du ein recht gespaltenes Verhältnis zu Styleguides.
Wenn man irgendwann mal ein paar hunderttausend Zeilen Sourcecode von indischen Programmierern warten darfst, die zwar durchaus funktionieren, aber kein Mensch versteht, dann bist du froh drum ...
Gespaltenes Verhältnis zu Styleguides? Warte mal, in der Firma in der ich jetzt arbeite gibt es nen Styleguide, jedoch ist er nicht so sehr ausgebufft, dass man gleich einen Operator strikt untersagt. Sicher hat das Vor- und Nachteile. Und wenn ich so auf die Million Quellcodezeilen schaue, die ich dann betreuen muss, wünsche ich mir sicher auch ein ums andere Mal, dass da mehr die Regeln befolgt werden sollten. Aber so ist nun mal die reale Welt, es gibt keine Regeln ohne Ausnahme. Und gescheitert bin ich auch noch nicht an den Anpassungen.

Aber ich frage mich gerade, warum ich hier mit diskutiere, schließlich gibts in der von der Firma verwendeten Programmiersprache den ternären Operator gar nicht (VB.Net 2005). :D Nur ab und zu bekomme ich halt Code von den Kollegen aus Übersee, die da teilweise mit C# die Sachen umsetzen und da gehört der ternäre Operator zum üblichen Handwerkszeug.

@Whiz-zarD: Du schriebst, dass man den ternären Operator falsch anwenden kann. Nur für mich aus Interesse. Wie kann man den ternären Operator falsch verwenden? Dachte immer das es so schön an der natürlichen Sprache angelehnt ist. D.h. zuerst kommt eine geschlossene Frage mit einem Fragezeichen als Abschluß und dann beide möglichen Antworten mit einem Doppelpunkt getrennt, wobei die erste Antwort das positive/zutreffende darstellt und die 2. das negative/nicht zutreffende. Wenn ich nun eine der Antworten weglasse, kann ich noch nicht mal den Code kompilieren. Ich seh da momentan den Wald vor lauter Bäumen nicht.
 
Zuletzt bearbeitet:
Rossibaer schrieb:
@Whiz-zarD: Du schriebst das man den ternären Operator falsch anwenden kann. Nur für mich aus Interesse. Wie kann man den ternären Operator falsch verwenden?

Naja, ich meinte es eigentlich so, dass es Programmierer gibt, die den ternären Operator auch bei komplexen Dingen benutzen und man dann eine Zeile zu Gesicht bekommt, die über 100 Zeichen lang ist und zig Funktionen geschachtelt sind und man dann horizontal scrollen muss, um ans Ende der Zeile zu gelangen.
Der Code ist zwar kompakt, aber nicht leserlich.

edit:
huch? :D
 
Zuletzt bearbeitet:
@Whiz-zarD:
Ok, dann bin ich beruhigt. Ich lese/verwende Ihn nur dann wenn es um eine Fallentscheidung geht bei der meist nur 2 Zahlen zurück gegeben werden, z.B. nen Index auf irgendetwas oder ein Summand bei einer Addition... Sprich bei Zahlen.

PS: Korrigiere mal dein Quote im letzten Post über mir, schließlich hatte ich die Frage gestellt... ;)
 
Erstmal danke für alles. Ich werde unseren Lehrer in Anwendungsentwicklung mal auf den "ternäre Operator" ansprechen und ihn fragen, ob er uns den beibringen will :). Mein Projekt musste ich schon lange abgeben und ich habe jetzt keine möglichket den Code umzugestalten.

Gruß Kai
 
Zurück
Oben