Übersetzung aus C++

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Der Vergleich mit den Enums hinkt meiner Meinung nach nicht besonders. Davon abgesehen hinkt jeder Vergleich, sonst wär's kein Vergleich.

Eine Enum ist eine Möglichkeit, reinen Zahlenwerte eine genauere Bedeutung beizumessen. Es gibt sogar typisierte Enums, wo es dann nicht erlaubt ist, Enum-Werte aus dem einen Enum irgendwo zuzuweisen, wo ein Wert eines anderen Enums erwartet wird. Das sorgt für Sicherheit, auch wenn Enums letztendlich komplett mit reinen Zahlen realisiert werden können - und doch eigentlich total überflüssig sein müßten, nicht wahr?

In meiner alten Firma waren wir ca. 25 Entwickler, und allein das Basis-Framework bestand aus ca. 1000 Klassen und Interfaces. Ich würde mal sagen, die Größenordnung kenne ich durchaus.

Im Übrigen ging's mir auch gar nicht so sehr um TEST und FEST, es geht nur einfach darum, daß man Variablen von einem Typ normalerweise nicht "einfach so" einer anderen Variable zuweisen sollte. Auch wenn's doch letztlich "nur Zahlen" sind. Siehe meinen Vergleich mit dem Autotanken, beidesmal ist es flüssiger Treibstoff. Aber es kann ganz schön böse enden. Wenn der Compiler das aber gar nicht erst zuläßt (im Falle der Tankstellen ist das vielleicht sogar eher der Linker ;) ), dann mußt Du nicht die üblen Laufzeitfehler erleben. Und wenn Du einen Dieselmotor hast, der so superkrass ist daß er auch mit Benzin fährt, dann caste einfach indem Du kurz 'nen Adapter draufsteckst. Wo ist das Problem?
Dank dieses "Features" haben wir nun sage und schreibe 4 (!) verschiedene Variablentypen: HWND, UINT, WPARAM und LPARAM.

Diese basieren aber alle auf LONG :!:
Da Du ja ebenfalls in der Branche tätig bist, müßtest Du ja auch wissen, daß ein LONG und eine FLOAT beide auf einem stinknormalen 32-Bit-Speicherbereich basieren :!:
Wozu also die ganze Aufregung?

Letztendlich kann man es dem Compiler nie übel nehmen, wenn er den Programmierer vor solchen Fehlern warnt. Solange man jederzeit die Möglichkeit hat, es explizit zu umgehen.

Und als "Haarspalterei Deluxe" würde ich es auch nicht bezeichnen. Trotzdem will ich mich mit niemandem "in die Wolle" kriegen, ich finde es nur allgemein sehr unüberlegt, wenn solche Features, die durchaus einen Grund haben (oder meinst Du der Compiler denkt sich das Verhalten selbst aus), als überflüssig hinzustellen, denn je nach Betrachtungsweise ist eh alles überflüssig. Um es in Deinen Worten zu sagen: Dank der Entwicklung von Hochsprachen haben wir C++, PureBasic, Delphi und Fortran. Diese erzeugen aber alle MASCHINENCODE!
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

ZeHa hat geschrieben:Um es in Deinen Worten zu sagen: Dank der Entwicklung von Hochsprachen haben wir C++, PureBasic, Delphi und Fortran. Diese erzeugen aber alle MASCHINENCODE!
Naja ZeHa, naja ... <)

* hinke, hinke * :mrgreen:
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

"Der Vergleich hinkt" ist halt ein besonders leichtes Werkzeug, um sich aus der Affäre zu ziehen ;)
Das Problem ist nur, daß das bei mir nicht zieht. Man kann gern auch Äpfel und Birnen vergleichen - selbst wenn der Vergleich noch so hinkt, wissen die meisten intelligenten Leute trotzdem, was gemeint ist ;)
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Der "Vergleich hinkt" war eine reine Nettigkeit von mir. Man kann natürlich auch "Schwachsinn" sagen. Die meisten nicht-so-intelligenten Leute wissen was damit gemeint ist. :wink:
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

Bild
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Fluid Byte hat geschrieben:Der "Vergleich hinkt" war eine reine Nettigkeit von mir. Man kann natürlich auch "Schwachsinn" sagen. Die meisten nicht-so-intelligenten Leute wissen was damit gemeint ist. :wink:
Ich wollte Dir nur zeigen, daß man die "Grenze" an jeder beliebigen Stelle ziehen kann. Du akzeptierst zwar noch Enums, aber verachtest Typedefs. Wer sagt nun, daß die Grenze, so wie Du sie festlegst, "richtig" liegt? Ein anderer findet auch Enums doof, weil es sowas in seiner Sprache halt nicht gibt und weil er den Sinn darin auch gar nicht sieht, sind doch letztendlich auch alles nur numerische Werte. Und wieder ein anderer hat was gegen OOP, weil er es halt auch immer nur von seinem Standpunkt aus betrachtet hat.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

ZeHa hat geschrieben:Ich wollte Dir nur zeigen, daß man die "Grenze" an jeder beliebigen Stelle ziehen kann. Du akzeptierst zwar noch Enums, aber verachtest Typedefs.
Ich "verachte" George W. Bush aber nicht Typedefs. :lol:

Enums sind halt nicht nur nützlich sondern notwendig. Wohingegen Typedefs die den gleichen Basistyp benutzen überflüssig sind.
ZeHa hat geschrieben:Ein anderer findet auch Enums doof, weil es sowas in seiner Sprache halt nicht gibt und weil er den Sinn darin auch gar nicht sieht, sind doch letztendlich auch alles nur numerische Werte.
Du vereinfachst das viel zu sehr und legst es dir zurecht wie du es haben möchtest. Ich meine Enumerationen sind so essenziell wie For/Next, Dim oder End. Sie sind auch nicht von der Projektgröße anhängig sondern immer zu verwenden. Außerdem reden wir ja nicht von ein oder zwei identischen Typen sondern es sind dutzende.
ZeHa hat geschrieben:Und wieder ein anderer hat was gegen OOP, weil er es halt auch immer nur von seinem Standpunkt aus betrachtet hat.
Tut mir leid aber das "hinkt" schon wieder vor sich hin. Erst waren es Enums, dann Tankstelle und jetzt ein Programmierparadigma. Diesbezüglich lass ich mich aber auf keinen Exkurs mehr ein. <)
Windows 10 Pro, 64-Bit / Outtakes | Derek
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

spielt doch lieber Skat, da hat es wenigstens eine Bedeutung, wer den letzten Stich macht... /:->
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Wuerdest du ueberall Long benutzen, sehe es nicht so rosig mit Portierungen
aus, ob nun nen anderer Compiler, OS oder weiss der Geier. HWND, WPARAM
und LPARAM sind schliesslich nicht ueberall Long ;)
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

edel hat geschrieben:HWND, WPARAM und LPARAM sind schließlich nicht überall Long ;)
Mal abgesehen von einer anderen Prozessorarchitektur, wo ist HWND kein LONG?
Windows 10 Pro, 64-Bit / Outtakes | Derek
Antworten