Welche Sprache kann C++ Konkurrenz machen?
-
@Mathuas sagte in Welche Sprache kann C++ Konkurrenz machen?:
Und was ist so toll an Pascal? Ich fands immer zu verbose, Begin/end stattKlammern ist sehr unpraktisch und dann dass man Variablen in nem eigenem Block deklarieren musst war jetzt auch nicht so toll.
Ich habe schneller "begin" geschrieben, als wen ich die {} mit einem Tastengewurstel suchen muss. Das "end" wird dann meisten selbst geschrieben.
Ernsthaft? 5 Zeichen sind schneller geschrieben als eins? Dann hast du IMHO die falschen Tastatureinstellungen.
Dafür entfallen bei Pascal die bei C immer notwendigen () bei if und while.
Eindeutiger Nachteil.
-
@Schlangenmensch sagte in Welche Sprache kann C++ Konkurrenz machen?:
Zwischen Pascal und C ist das nicht wirklich ein Unterschied und in C++ steht explizit da, was passiert, das ist doch das, was man von lesbarem Code erwartet, oder?
Naja, ich fand es sehr sehr unlogisch, dass man einen Typ einklammert, um zu casten, der Pascal-Style Cast ist doch viel logischer. Es gibt ja auch in C diesen functional-style Cast, sofern es ein einfacher Typ ist (also
int(float_var)
geht, aberint*(float_ptr)
nicht). Außerdem war ich überrascht, dass Type Casts was anderes alsreinterpret_cast
tun. Ich meine mich zu erinnern, dass man in Pascal nichtinteger(real_var)
schreiben konnte, um float nach int zu wandeln. Daher war ich sehr verwirrt, was casts in C wirklich tun. Mal scheinen sie zu reinterpreten, mal scheinen sie den Wert irgendwie sinnvoll in einen anderen Typ zu konvertieren. Das ist in C++ schön explizit mitstatic_cast
vsreinterpret_cast
.Überhaupt: versuch mal jemandem zu erklären, wie du den Typ für eine Variable schreiben musst, die eine Funktion mit Parametern zeigt... Es kann doch niemand wirklich behaupten, dass das in C (oder C++) irgendwie gut lesbar wäre?! Nicht umsonst gibt es cdecl.org, den "C gibberish English" Übersetzer.
-
@Tyrdal sagte in Welche Sprache kann C++ Konkurrenz machen?:
Dafür entfallen bei Pascal die bei C immer notwendigen () bei if und while.
Eindeutiger Nachteil.
Nö. Das ist Gewohnheitssache von dir. Ich mache viel mit Python und da brauchts diese Klammern auch nicht. Ist schön, wenn die da nicht sind und von der eigentlichen Bedingung ablenken.
-
@Schlangenmensch sagte in Welche Sprache kann C++ Konkurrenz machen?:
Ich habe Pascal als erste Sprache an der Uni gemacht und bin damit nie sonderlich warm geworden. Insbersondere die Pointer Syntax mit ^integer fand ich immer ziemlich hässlich.
Ich finde dies angenehm, in C ist doch mit & Und * das Gleiche. Und wen man sich an die Regel mit T und P hält, ist sofort übersichtlich ob es ein normaler Typ oder ein Zeiger ist.
Ausnahme sind die alten Urtypen wie Integer, String, Real, etc., da fehlt das T.
Aber unter dem Strich würde ich sagen, ist Pascal und C ebenbürtig, und schlussendlich ist es eine Gewohnheitssache, mit was man codet.
C ist einfach bekannter, weil für die mehr Werbung gemacht wird, ob in Schulen, UNIs und PC-Hefte.
Das verbreitete ist nicht immer das Beste, das sieht man auch zwischen Linux und Windoof.
-
@Tyrdal sagte in Welche Sprache kann C++ Konkurrenz machen?:
Das wäre noch schlechter zu editieren. Nein danke.
Was ist an
n dd
schwieriger als andi
in vim? Die Zahl der Zeilen sollte man ohnehin im überschaubaren Rahmen haben.Und Python mit seiner Einrückungstoefe ist völlig Banane. Da muss ich ja beim Schreiben schon auf die Formatierung achten anstatt das einfach den Formatter machen zu lassen.
Ich nutze nie einen Formatter bei eigenem Code, da es entscheidend für die Codequalität ist den Code gleich ordentlich zu formatieren.
-
@wob sagte in Welche Sprache kann C++ Konkurrenz machen?:
@Schlangenmensch sagte in Welche Sprache kann C++ Konkurrenz machen?:
Zwischen Pascal und C ist das nicht wirklich ein Unterschied und in C++ steht explizit da, was passiert, das ist doch das, was man von lesbarem Code erwartet, oder?
Naja, ich fand es sehr sehr unlogisch, dass man einen Typ einklammert, um zu casten, der Pascal-Style Cast ist doch viel logischer. Es gibt ja auch in C diesen functional-style Cast, sofern es ein einfacher Typ ist (also
int(float_var)
geht, aberint*(float_ptr)
nicht). Außerdem war ich überrascht, dass Type Casts was anderes alsreinterpret_cast
tun. Ich meine mich zu erinnern, dass man in Pascal nichtinteger(real_var)
schreiben konnte, um float nach int zu wandeln. Daher war ich sehr verwirrt, was casts in C wirklich tun. Mal scheinen sie zu reinterpreten, mal scheinen sie den Wert irgendwie sinnvoll in einen anderen Typ zu konvertieren. Das ist in C++ schön explizit mitstatic_cast
vsreinterpret_cast
.Functional style casts sind doof, weil schwerer zu greppen.
-
@wob sagte in Welche Sprache kann C++ Konkurrenz machen?:
@Tyrdal sagte in Welche Sprache kann C++ Konkurrenz machen?:
Dafür entfallen bei Pascal die bei C immer notwendigen () bei if und while.
Eindeutiger Nachteil.
Nö. Das ist Gewohnheitssache von dir. Ich mache viel mit Python und da brauchts diese Klammern auch nicht. Ist schön, wenn die da nicht sind und von der eigentlichen Bedingung ablenken.
Falsch, ist schlechter editierbar. Das hat nur am Randemit Gewohnheit zu tun.
-
@john-0 sagte in Welche Sprache kann C++ Konkurrenz machen?:
@Tyrdal sagte in Welche Sprache kann C++ Konkurrenz machen?:
Und Python mit seiner Einrückungstoefe ist völlig Banane. Da muss ich ja beim Schreiben schon auf die Formatierung achten anstatt das einfach den Formatter machen zu lassen.
Ich nutze nie einen Formatter bei eigenem Code, da es entscheidend für die Codequalität ist den Code gleich ordentlich zu formatieren.
Ich muss sowieso nach Firmenrichtlinien formatieren. Warum soll ich mir diese Arbeit nicht vom Computer abnehmen lassen? Schlechter wird der Code dadurch nicht. Der Inhalt ändert sich ja nicht.
-
@Tyrdal sagte
Functional style casts sind doof, weil schwerer zu greppen.
Hm. Ich finde, dass Lesbarkeit vor "Grepbarkeit" geht. In welchem Fall hat man denn in Pascal nicht
\bInteger\(
, wenn es um einen cast nach Integer geht? (gut, im Beispiel oben hatte jemand noch ein Space drin, aber das macht der Formatierer für die Codebasis gleich und somit wäre es kein Problem, dann noch ein Space (oder ein\s*
) einzufügen) - insbesondere im Vergleich zu(typ)
sehe ich keinen so großen Unterschied. Klar, wenn man C++static_cast
etc. nutzt, ist das deutlich besser (das habe ich aber oben auch schon so geschrieben).@Tyrdal sagte in Welche Sprache kann C++ Konkurrenz machen?:
Falsch, ist schlechter editierbar. Das hat nur am Randemit Gewohnheit zu tun.
Huch, wieso schlechter editierbar? Das finde ich überhaupt nicht. Woran hast du hier gedacht? Keine nervigen Klammern -> schneller geschrieben, einfacher zu lesen.
-
@wob sagte in Welche Sprache kann C++ Konkurrenz machen?:
Hm. Ich finde, dass Lesbarkeit vor "Grepbarkeit" geht.
Ich finde Grepbarkeit gehört zur Lesbarkeit, denn ich muss oft irgendwo was suchen.
Huch, wieso schlechter editierbar? Das finde ich überhaupt nicht. Woran hast du hier gedacht? Keine nervigen Klammern -> schneller geschrieben, einfacher zu lesen.
Klammern machen Codeteile gut editierbar, weil man halt die Klammern al Begrenzer hat. Da muss man nicht alles von Hand ansteuern sondern kann einfach auf die Klammer springen, ein ci( und dann den Inhalt ändern. Wenn es nur ein Klammernpaar gibt muss ich nichtmal mit dem Cursor da rein. Ohne Klammern ist das doch mehr Aufwand. Genauso kann ich einfach von öffnender zu schließender Klammer springen um an den Anfang oder das Ende zu kommen. Geht ohne schwieriger. Genauso mit markieren, löschen etc. Klar, heutzutage geht vieles auch über einen LSP-Server, aber ist doch besser wenn man den nicht zwingend braucht.
-
Also wenn es rein um Produktivität geht, finde ich Dart & Flutter sehr interessant. Unterstützt Desktop-, Smartphone- und Web-Apps. Und das alles mit einer Sprache und einem Framework. Außerdem kann man auch Plattform-spezifischen Code aufrufen.
-
@Tyrdal sagte in Welche Sprache kann C++ Konkurrenz machen?:
Ich finde Grepbarkeit gehört zur Lesbarkeit, denn ich muss oft irgendwo was suchen.
Ist
(int ) x
wirklich viel besser grepbar alsInteger(x)
?Klammern machen Codeteile gut editierbar, weil man halt die Klammern al Begrenzer hat. Da muss man nicht alles von Hand ansteuern sondern kann einfach auf die Klammer springen
Hä? Ich muss doch trotzdem auf die entsprechende Codestelle gehen, die ich ändern will? Das Ende der Bedingung ist in Python der :, das Zeilenende oder bei mehrzeiligen Bedingungen die Klammer zu (umbrechen und Klammern setzen macht
black
automatisch). Vielleicht arbeiten wir anders. Meistens gehe ich x-Mal in den Bedingungen hin und her, während ich darüber nachdenke, wie die Bedingung denn eigentlich sein müsste. In Klammern hin- und herzuspringen war für mich noch nie von irgendeiner Bedeutung - außer bei komplizierten Bedingungen zu gucken, wo das Klammernpaar gerade zusammengehört. Aber je komplizierter, desto eher sollte man da einen Teil der Bedingung in eine Variable rausziehen. Jedenfalls läuft es dann eher auf 1 Bedingung pro Zeile hinaus - sodass "Zeile verschieben", "Zeile löchen" viel relevanter sind als irgendwelches Klammernspringen. Aber ich will dir gar nicht absprechen, dass du das so machst. Bin nur fest überzeugt, dass das deine Gewohnheit aufgrund deiner Codebasis ist und nicht ein allgemeingültiges Ding, das Programmieren erleichtert.
-
@wob sagte in Welche Sprache kann C++ Konkurrenz machen?:
@Tyrdal sagte in Welche Sprache kann C++ Konkurrenz machen?:
Ich finde Grepbarkeit gehört zur Lesbarkeit, denn ich muss oft irgendwo was suchen.
Ist
(int ) x
wirklich viel besser grepbar alsInteger(x)
?Gibts eigentlich sowas wie ein
libclang-grep
? Das wär mal ein nützliches Tool ... reines Pattern Matching läuft ja gerade bei Code ziemlich oft vor die Wand.
-
@wob sagte in Welche Sprache kann C++ Konkurrenz machen?:
In Klammern hin- und herzuspringen war für mich noch nie von irgendeiner Bedeutung - außer bei komplizierten Bedingungen zu gucken, wo das Klammernpaar gerade zusammengehört.
Doch, ich spring auch sehr oft zwischen Klammern, und das sogar in VS. Finde ich sehr praktisch.
Hat aber alles irgendwie nur am Rande mit dem eigentlichen Thema zu tun.
-
@Finnegan sagte in Welche Sprache kann C++ Konkurrenz machen?:
@wob sagte in Welche Sprache kann C++ Konkurrenz machen?:
@Tyrdal sagte in Welche Sprache kann C++ Konkurrenz machen?:
Ich finde Grepbarkeit gehört zur Lesbarkeit, denn ich muss oft irgendwo was suchen.
Ist
(int ) x
wirklich viel besser grepbar alsInteger(x)
?Gibts eigentlich sowas wie ein
libclang-grep
? Das wär mal ein nützliches Tool ... reines Pattern Matching läuft ja gerade bei Code ziemlich oft vor die Wand.Nicht als grep, aber du kannst Teile vom AST matchen was auch zuverlässiger als regex ist. Da ist es dann nämlich egal wie der cast aussieht, das Parsen hat ja schon jemand anderes gemacht
-
@Mathuas sagte in Welche Sprache kann C++ Konkurrenz machen?:
Ich habe schneller "begin" geschrieben, als wen ich die {} mit einem Tastengewurstel suchen muss. Das "end" wird dann meisten selbst geschrieben.
Diese BEGIN END Orgien in Pascal empfand ich immer als abstoßend. Es mag auch daran liegen, dass ich zuerst Modula-II und dann anschließend Oberon-2 gelernt hatte, und in beiden Sprachen gibt es das nicht, und erst anschließend Kontakt zu Pascal hatte.
Was mir persönlich fehlt ist ein Vergleich zwischen Ada, C++ und FreePascal, insbesondere mit Blick auf den Vergleich Ada und FreePascal. Was spricht für FreePascal, wenn es doch Ada gibt?
-
@john-0 sagte in Welche Sprache kann C++ Konkurrenz machen?:
. Was spricht für FreePascal, wenn es doch Ada gibt?
Ich habe mal nach Ada gegoogelt.
Der Einstieg sieht recht komplex aus, so wie es aussieht, ist es ein rechtes Nischenprodukt.
https://gcc.gnu.org/onlinedocs/gnat_ugn/Running-a-Simple-Ada-Program.html
-
@Mathuas sagte in Welche Sprache kann C++ Konkurrenz machen?:
@john-0 sagte in Welche Sprache kann C++ Konkurrenz machen?:
. Was spricht für FreePascal, wenn es doch Ada gibt?
Ich habe mal nach Ada gegoogelt.
Der Einstieg sieht recht komplex aus, so wie es aussieht, ist es ein rechtes Nischenprodukt.
https://gcc.gnu.org/onlinedocs/gnat_ugn/Running-a-Simple-Ada-Program.htmlIst Pascal doch heutzutage aber auch. Ada war lange Zeit in der Flugzeugindustrie beliebt, weil es da so einen SubSet gibt mit dem die Korrektheit formal bewiesen werden kann.
-
@Tyrdal sagte in Welche Sprache kann C++ Konkurrenz machen?:
Ist Pascal doch heutzutage aber auch. Ada war lange Zeit in der Flugzeugindustrie beliebt, weil es da so einen SubSet gibt mit dem die Korrektheit formal bewiesen werden kann.
Das mit der Flugiindustrie stimmt, aber veraltet ist Pascal überhaupt nicht, dies wird mindestens genauso gut gepflegt wie C.
Auch die IDE (Lazarus) ist topaktuell.
-
@Mathuas sagte in Welche Sprache kann C++ Konkurrenz machen?:
Der Einstieg sieht recht komplex aus,
Das was Du verlinkt hast, ist nur der Compileraufruf. Was ist daran komplex?
so wie es aussieht, ist es ein rechtes Nischenprodukt.
Das sagt derjenige der FreePascal bewirbt.