C/C++ vs. Java/dotNet/Eiffel/Ada/Modula3/etc.

Hier können Sie auf Deutsch diskutieren. Bedenken Sie, dass Sie in den englischen Foren mehr Nutzer ansprechen.

Moderators: frik85, EmuandCo, Dr. Fred

RudBoy
Posts: 105
Joined: Sun Apr 02, 2006 2:02 pm
Location: Näher als Du denkst
Contact:

Post by RudBoy »

DonJosee wrote:Diese These halte ich für höchst spekulativ.

Bei der Installation von .net wird ein Windows Installer Version 3 benötigt, welcher bei der Installation eine Überprüfung der Windows Version auf Echtheit durchführt.

Da der Product Key alles andere als dem Orginal entsprecht, da ich mal davon ausgehe, dass dieser erst gar nicht vorhanden sein dürfte, so wird die Installation doch recht problematisch verlaufen. Zumal die .net Installation wahrscheinlich ebenso die Überprüfung durchführen dürfte -> Redmond Philosophie -> Vertrauen ist gut, doppelt kontrolliert hält besser. :wink:
Hallo DonJossee,

Falls Du ein Slipstream XP (Bsp. NLite) verwendest kannste den 3.0 Installer aber aushebeln. Ich verwende nur geslipstreamte XP Builds.

Ne andere Alternative wäre auch GNU Portable Net, allerdings ist deren Compiler in C++ programmiert, während beim Mono Projekt ein echter C# Compiler sein Werk verrichtet.

Wen schon C# dann aber richtig, sonst wäre das neuer Wein in alten Schläuchen.

Gruss der RudBoy

Ps: und jetzt werde ich erschossen 8)
Am Anfang war alle Software frei. (Georg Greve, FSFE)
Matthias
Posts: 496
Joined: Tue Dec 27, 2005 12:43 am

Post by Matthias »

RudBoy wrote:Wen schon C# dann aber richtig, sonst wäre das neuer Wein in alten Schläuchen.
Wtf? Ist doch völlig pillepalle ob der Compiler jetzt in C++ oder C# geschrieben ist, solange er ordentlichen Code ausspuckt...
RudBoy
Posts: 105
Joined: Sun Apr 02, 2006 2:02 pm
Location: Näher als Du denkst
Contact:

Post by RudBoy »

Matthias wrote:
RudBoy wrote:Wen schon C# dann aber richtig, sonst wäre das neuer Wein in alten Schläuchen.
Wtf? Ist doch völlig pillepalle ob der Compiler jetzt in C++ oder C# geschrieben ist, solange er ordentlichen Code ausspuckt...
Na ja habe keine andere Antwort von Dir erwartet, aber ein Fehler bleibt ein Fehler egal wie schnell dieser auch ist. soviel dazu.


mfg RudBoy
Am Anfang war alle Software frei. (Georg Greve, FSFE)
TiKu
Posts: 157
Joined: Wed Jan 05, 2005 9:09 pm
Location: Unterföhring, Germany
Contact:

Post by TiKu »

RudBoy wrote:
Matthias wrote:
RudBoy wrote:Wen schon C# dann aber richtig, sonst wäre das neuer Wein in alten Schläuchen.
Wtf? Ist doch völlig pillepalle ob der Compiler jetzt in C++ oder C# geschrieben ist, solange er ordentlichen Code ausspuckt...
Na ja habe keine andere Antwort von Dir erwartet, aber ein Fehler bleibt ein Fehler egal wie schnell dieser auch ist. soviel dazu.
Häh? Ich kann in C++ einen funktionierenden C#-Compiler schreiben, ich kann in C++ einen fehlerhaften C#-Compiler schreiben, ich kann in C# einen funktionierenden C#-Compiler schreiben, ich kann in C# einen fehlerhaften C#-Compiler schreiben.
Oder allgemein: Für alle Mainstream-Programmiersprachen X gilt: Ich kann in X einen beliebigen funktionierenden Compiler schreiben und ich kann in X einen beliebigen fehlerhaften Compiler schreiben.
Also wieso sollte es schlecht sein, einen C#-Compiler in C++ zu schreiben?
RudBoy
Posts: 105
Joined: Sun Apr 02, 2006 2:02 pm
Location: Näher als Du denkst
Contact:

Post by RudBoy »

TiKu wrote:Häh? Ich kann in C++ einen funktionierenden C#-Compiler schreiben, ich kann in C++ einen fehlerhaften C#-Compiler schreiben, ich kann in C# einen funktionierenden C#-Compiler schreiben, ich kann in C# einen fehlerhaften C#-Compiler schreiben.
Oder allgemein: Für alle Mainstream-Programmiersprachen X gilt: Ich kann in X einen beliebigen funktionierenden Compiler schreiben und ich kann in X einen beliebigen fehlerhaften Compiler schreiben.
Also wieso sollte es schlecht sein, einen C#-Compiler in C++ zu schreiben?
Hallo Tiku,
selbst auf die Gefahr hin einen Flame zu riskieren, werde ich Dir darauf antworten.Ich lehne C oder C++ ganz entschieden ab, alle bekannten Sicherheitsprobleme bassieren auf dieser Sprache, schreibe komplett meine C und C++ Programme (und das sind nicht wenige) in die Sprache Ada um.

nachfolgend drei Links die sich mit dieser Sprache auseinandersetzen

# Die Programmiersprache C: Ein Scherz?
http://www.bernd-leitenberger.de/c-aprilscherz.html

# C-Hasser in 10 Tagen
http://www.math.uni-bremen.de/~thielema/CHater.html

# Die Programmiersprache C
http://www.wackerart.de/c.html

gruss RudBoy
Am Anfang war alle Software frei. (Georg Greve, FSFE)
hefner
Posts: 240
Joined: Fri Dec 16, 2005 11:49 am

Post by hefner »

aha alle deine Programme sind warscheinlich so sicherheitskritisch das man sich Ada antun müsste, aber ich bin der Meinung das für normale Anwendungen (auch Compiler) C, C++, C# oder gar Java ausreichen...
frik85
Developer
Posts: 829
Joined: Fri Nov 26, 2004 7:48 pm
Location: Austria, Europe
Contact:

Post by frik85 »

RudBoy wrote:Ich lehne C oder C++ ganz entschieden ab, alle bekannten Sicherheitsprobleme bassieren auf dieser Sprache, schreibe komplett meine C und C++ Programme (und das sind nicht wenige) in die Sprache Ada um.
ReactOS zu 95% in C geschrieben, der Rest in ASM und der Explorer (explorer.exe) in C++.

Ich persönlich bevorzuge C/C++ Programme.
Programme welche Runtime und/oder Virtual Machines (VMs) zur Laufzeit benötigen vermeide ich wo es geht (wann es allerdings Sinn macht habe ich aber nichts gegen den Einsatz von solchen Apps). Dazu gehören Java, .Net, etc.
Warum? Weil diese generell langsamer, mehr Ram benötigen und meistens nicht die native GUI von Windows verwenden im Gegensatz zu C/C++ Programme. Konsistenz und Usability ist mir besonders wichtig.

Und selbst Mozilla Firefox (welcher eigentlich vorbildlich für Win32 angepasst wird) bietet nicht alle GUI features welche ich von native WinNT GUI apps gewohnt bin. Viele von euch wissen es vielleicht noch nicht, aber Mozilla verwendet eine eigene GUI Engine mit unterschiedlichen Anpassungen für die unterstützten Systeme.
Beispiel: Schon mal mit der rechten Maustaste auf die Scrollleiste geklickt (z.B. Firefox)?

Natürlich haben runtime libs und VMs auch Vorteile (garbag colletor, etc.), diese bringen aber meist nur dem Programmierer Zeitvorteile, dem End-User aber wenig. Meistens sollte man sich nicht auf die gebotenen Sicherheits-Features der verwendeten Sprache verlassen, da diese nicht umbedingt Sicher sein müssen. Und schon hat man einen wichtigen Zeitvorteil verloren und muss erst recht es selbst implementieren.
Dominik2
Posts: 141
Joined: Sat Dec 03, 2005 7:45 pm

Post by Dominik2 »

Hallo!
RudBoy wrote: Hallo Tiku,
selbst auf die Gefahr hin einen Flame zu riskieren, werde ich Dir darauf antworten.Ich lehne C oder C++ ganz entschieden ab, alle bekannten Sicherheitsprobleme bassieren auf dieser Sprache, schreibe komplett meine C und C++ Programme (und das sind nicht wenige) in die Sprache Ada um.
Also ich weiss nicht RudeBoy. Bei dir bin ich mir manchmal wirklich nicht sicher ob du uns nicht einfach bewusst veräppeln willst! Ada als aktuelle Programmiersprache??? Gibt es da überhaupt noch Compiler die weiterentwickelt werden für? Wenn es dir so auf Sicherheit ankommt, warum nimmst du dann nicht Java oder C#? Oder du lernst einfach wie man mit C/C++ sicheren Code schreibt, geht nämlich auch!

BTW: Ich bin sicher kein Befürworter solcher "Skriptsprachen" wie Java und C#! Man kann nämlich auch sicheren Code mit C/C++ schreiben, wenn man will. Dafür gibt es auch X Tools und Bibliotheken die einem dabei helfen.

MfG
Dominik
RudBoy
Posts: 105
Joined: Sun Apr 02, 2006 2:02 pm
Location: Näher als Du denkst
Contact:

Post by RudBoy »

hefner wrote:aha alle deine Programme sind warscheinlich so sicherheitskritisch das man sich Ada antun müsste, aber ich bin der Meinung das für normale Anwendungen (auch Compiler) C, C++, C# oder gar Java ausreichen...
hallo hefner,

also unterstelle einfach einmal das Du Dich nocht nicht mit echten Alternativen zu C C++ beschäftigt hast.
Zum Beispiel kann ich mit der Sprache Ada genau das gleiche und sogar noch mehr umsetzten wie mit den Sprachen C und C++ und das ganze mit erheblich weniger Code realisieren, was den Entwicklungszyklus drastisch verkürzt.
Also es ist kein Antun sondern Programmers Best Friend.

Sprachen wie Eiffel, Modula3 und Ada stehen in direkter Konkurenz und bieten dem Programmierer erheblich mehr Möglichkeiten auch Vorteile, auch sind sie C und C++ weit überlegen da viele Feature wie nur um ein Beispiel Multithreading zu nennen, als Sprachfeature integriert sind.

Diese Sprachen werden nicht ohne Grund in der Bankenwirtschaft oder der Raumfahrt eingesetzt.

Auch eine Portierung auf andere Betriebssysteme ist ohne Veränderung möglich.

Fakt ist aber das C und auch C++ kein ausgereiftes Sicherheitskonzept besitzen und immer wieder gepacht werden müssen was nachfolgende Links beweisen.

http://www.trl.ibm.com/projects/security/ssp/node2.html

http://www.trl.ibm.com/projects/security/ssp/

Solche Attacken sind in den o.g. Sprachen also Eiffel / Ada / Modula3 usw.
nicht zu realisieren.

Was auch ein Aspekt ist.

Dann schon mal tiefergründig darüber nachgedacht was NET Dir für Möglichkeiten bietet und warum Microsoft Net eingeführt hat, hätten doch ganz einfach bei C und C++ bleiben können.

Oder warum hat Manuel Icaza seinen C# Compiler nicht in C++ geschrieben, wäre doch der einfachere Weg gewesen.

Der Ansatz von NET ist ein ganz anderer ähnlich wie bei Java, zumindest was die Idee betrifft.

Oder warum gibt es unter MS diese Update Orgien genau Sicherheitsaspekte.

Ich schreibe niemand vor in was für einer Sprache er zu programmieren habe, ich verweisse nur auf Alternativen und C# oder sogar Java sind zum Beispiel welche da diese auch ein Sicherheitskonzept haben zwar nicht so ausgereift wie Ada oder Eiffel aber immerhin sie haben eins!

Später werde ich dann meine Ada Programme in ReactOS einfliessen lassen, allerdings wäre es jetzt einfach zu früh, weil es schlicht und ergreiffend den Zyklus stören würde, das hat explizit noch Zeit.

mfg RudBoy
Am Anfang war alle Software frei. (Georg Greve, FSFE)
RudBoy
Posts: 105
Joined: Sun Apr 02, 2006 2:02 pm
Location: Näher als Du denkst
Contact:

Post by RudBoy »

Dominik2 wrote:Hallo!
RudBoy wrote: Hallo Tiku,
selbst auf die Gefahr hin einen Flame zu riskieren, werde ich Dir darauf antworten.Ich lehne C oder C++ ganz entschieden ab, alle bekannten Sicherheitsprobleme bassieren auf dieser Sprache, schreibe komplett meine C und C++ Programme (und das sind nicht wenige) in die Sprache Ada um.
Also ich weiss nicht RudeBoy. Bei dir bin ich mir manchmal wirklich nicht sicher ob du uns nicht einfach bewusst veräppeln willst! Ada als aktuelle Programmiersprache??? Gibt es da überhaupt noch Compiler die weiterentwickelt werden für? Wenn es dir so auf Sicherheit ankommt, warum nimmst du dann nicht Java oder C#? Oder du lernst einfach wie man mit C/C++ sicheren Code schreibt, geht nämlich auch!

BTW: Ich bin sicher kein Befürworter solcher "Skriptsprachen" wie Java und C#! Man kann nämlich auch sicheren Code mit C/C++ schreiben, wenn man will. Dafür gibt es auch X Tools und Bibliotheken die einem dabei helfen.

MfG
Dominik
hallo Domminik2,

da warste wohl etwas zu schnell, und um Deine Frage zu beantworten ja es gibt aktuelle Compiler unter Eiffel die jetzt seit April ECMA standardtisiert ist ist es 5.7, schau Dir mal die GNU Tools an allles in C oder C++ aber ein Framework ist in Ada ganz aktuell und das aus guten Grund.

So ich habe den Thread nach Mono dahingehend beantwortet das ich C# den Vorzug vor C++ oder C gebe.

Allerdings widspreche ich Dir das es möglich ist in C oder C++ absolut sicheren Code zu schreiben trotz Bibliotheken.

Dann widerspreche ich Dir das C# oder Java Skriptsprachen sind.

Selbst diese sind C oder C++ überlegen, und zu Deiner weiteren Information hat Java die Sprache C und C++ als Lehrsprache Nr1 an der MIT abgelöst.

Den C++ ist eine Hybridsprache da sind wir uns ja wohl einig.

mfg RudBoy
Am Anfang war alle Software frei. (Georg Greve, FSFE)
Matthias
Posts: 496
Joined: Tue Dec 27, 2005 12:43 am

Post by Matthias »

RudBoy wrote:also unterstelle einfach einmal das Du Dich nocht nicht mit echten Alternativen zu C C++ beschäftigt hast.
Zum Beispiel kann ich mit der Sprache Ada genau das gleiche und sogar noch mehr umsetzten wie mit den Sprachen C und C++ und das ganze mit erheblich weniger Code realisieren, was den Entwicklungszyklus drastisch verkürzt.
Also es ist kein Antun sondern Programmers Best Friend.

Sprachen wie Eiffel, Modula3 und Ada stehen in direkter Konkurenz und bieten dem Programmierer erheblich mehr Möglichkeiten auch Vorteile, auch sind sie C und C++ weit überlegen da viele Feature wie nur um ein Beispiel Multithreading zu nennen, als Sprachfeature integriert sind.
So ein Humbug. Gerade Eiffel ist _wesentlich_ weniger umfangreich als C++. Keine Überladung von Funktionen und Operatoren, keine Zeiger, kein gar nichts. Und in C++ hast Du in Sachen Multithreading dank Bibliotheken wie Boost sehr gute Möglichkeiten was Multithreading usw. angeht. In C++0x werden viele solche Bibliotheken wahrscheinlich in die Standardbibliothek aufgenommen und es wird wahrscheinlich ein Garbage Collector dazukommen.
Daß es in C++ nicht möglich sei, sichere Programme zu schreiben, ist so auch nicht richtig. Es gibt Autopointer, ein strenges Typsystem mit sicherem Typcasting und noch einiges mehr.
Weiterhin beziehen sich Die von dir geposteten Links _ausschließlich_ auf C, und die allermeisten der dort aufgeführten Macken von C wurden in C++ schon korrigiert. Überhaupt zeugt es von einiger Unkenntnis, daß Du offensichtlich überhaupt nicht zwischen C und C++ differenzierst - dabei sind das völlig unterschiedliche Sprachen mit unterschiedlichen Konzepten und Paradigmen!
Dominik2
Posts: 141
Joined: Sat Dec 03, 2005 7:45 pm

Post by Dominik2 »

Ich sehe schon, wir werden wohl nie auf einen Nenner kommen. Macht aber nichts, jeder darf ja seine Meinung haben!
RudBoy wrote: Allerdings widspreche ich Dir das es möglich ist in C oder C++ absolut sicheren Code zu schreiben trotz Bibliotheken.
Wenn man will geht es schon! Es gibt genügend Compiler-Erweiterungen und Bibliotheken die C++ auf die Features von Java "anheben". Außerdem sieht es doch zur Zeit eher aus als würde Java mit jeder Version wieder C++ ähnlicher (Stichwort: Enums, Templates). Wurde vorher alles verteufelt und als "böse" abgetan – aus welchen Gründen auch immer – und jetzt wurde es in Java 1.5 oder 5.0 (währe ja auch zu leicht mal konsistente Versionsnummern zu benutzen) reingepatcht.
RudBoy wrote: Dann widerspreche ich Dir das C# oder Java Skriptsprachen sind.
Ja, war ja auch in Anführungszeichen. Aber von der Idee her wird der Code eben interpretiert, ob man das nun Interpreter oder Virtual Machine nennt ist doch vollkommen egal. Aber das ist eine andere Geschichte...
RudBoy wrote: Selbst diese sind C oder C++ überlegen, und zu Deiner weiteren Information hat Java die Sprache C und C++ als Lehrsprache Nr1 an der MIT abgelöst.
"Überlegen" ist so ein dehnbarer Begriff. Wenn es darum geht Ressourcen zu fressen bzw. der Langsamste zu sein, gebe ich dir natürlich vollkommen recht.
Ich finde es natürlich auch bedauerlich, dass man in Zukunft von einem MIT-Absolventen wenn man in etwas zu Speicherverwaltung und Pointern fragt nur noch ein Schulterzucken zu erwarten hat (delete? Was man muss auch aufräumen hinterher?).
RudBoy wrote: Den C++ ist eine Hybridsprache da sind wir uns ja wohl einig.
Äh, ja, ich finde es aber eher positiv die Wahl zu haben.

MfG
Dominik
Matthias
Posts: 496
Joined: Tue Dec 27, 2005 12:43 am

Post by Matthias »

Dominik2 wrote:Ja, war ja auch in Anführungszeichen. Aber von der Idee her wird der Code eben interpretiert, ob man das nun Interpreter oder Virtual Machine nennt ist doch vollkommen egal. Aber das ist eine andere Geschichte...
Lies mal hier:
http://de.wikipedia.org/wiki/JIT-Compiler
Dominik2 wrote:Überlegen" ist so ein dehnbarer Begriff. Wenn es darum geht Ressourcen zu fressen bzw. der Langsamste zu sein, gebe ich dir natürlich vollkommen recht.
Wie gesagt, ein Java-Programm kann zur Laufzeit optimiert werden, was bei einem C++-Programm nicht so einfach möglich ist.
Dominik2 wrote:Ich finde es natürlich auch bedauerlich, dass man in Zukunft von einem MIT-Absolventen wenn man in etwas zu Speicherverwaltung und Pointern fragt nur noch ein Schulterzucken zu erwarten hat (delete? Was man muss auch aufräumen hinterher?).
Naja, zumindest im Bereich der Applikationentwicklung bringt manuelle Speicherverwaltung heute kaum noch einen Vorteil gegenüber einem GC. Man muss mit der Zeit gehen, und C++0x wird hoffentlich genau das tun.
Dominik2 wrote: Äh, ja, ich finde es aber eher positiv die Wahl zu haben.
MfG
Dominik
Es gibt nunmal leider viele schlechte Programmierer die mit den Tücken von C++ und besonders C nicht zurechtkommen. Und da ist es eigentlich sehr gut, wenn eine Sprache wie Java zur Verfügung steht, mit der man sich nicht allzusehr ins Knie schießen kann.
Last edited by Matthias on Tue May 30, 2006 6:26 pm, edited 2 times in total.
RudBoy
Posts: 105
Joined: Sun Apr 02, 2006 2:02 pm
Location: Näher als Du denkst
Contact:

Post by RudBoy »

Matthias wrote: Weiterhin beziehen sich Die von dir geposteten Links _ausschließlich_ auf C, und die allermeisten der dort aufgeführten Macken von C wurden in C++ schon korrigiert. Überhaupt zeugt es von einiger Unkenntnis, daß Du offensichtlich überhaupt nicht zwischen C und C++ differenzierst - dabei sind das völlig unterschiedliche Sprachen mit unterschiedlichen Konzepten und Paradigmen!
hallo matthias,

nun gut dann gebe ich Dir mal ein Beispiel:

Es gibt C++-Programmierer, die wegen der gezeigten Sonderlichkeiten von den integrierten C-Feldern abraten und einem die C++-Template-Klasse vector empfehlen. Ich möchte durchaus unterstellen, dass durch geeignete Code-Optimierung die Vektorklasse genauso speicher- und zeiteffizient sein kann, wie die originalen C-Felder, aber man wird mit dieser Implementierung niemals statische Fehler sofort aufdecken können. Wenn man beispielweise

int a[10];
a[20] = 34;

mit der Vektor-Klasse implementiert, etwa so:

vector <int> a(10);
a[20] = 34;

dann wird sie den Fehler bestenfalls entdecken, wenn dieser Programmteil ausgeführt wird, obwohl der Fehler schon beim Übersetzen offensichtlich ist. Da aber Wertebereiche von C auch bei den einfachen C-Feldern nicht statisch überprüft werden, verlieren C-Programmierer damit nichts.
Außerdem zählt einmal mehr der Vorwurf, dass Sprachfehler nicht durch Hinzufügen weiterer Lösungsansätze aus der Welt zu schaffen sind. Die C-Felder gibt es weiterhin in C++, dürfen benutzt werden und werden auch fleißig genutzt. C++ bietet unter dem Strich zwei Varianten von Feldern an: Eine unzulängliche und eine völlig unzulängliche. Der Programmierer muss sich jedesmal neu für das jeweils kleinere Übel entscheiden.

So also ich bin froh das es NET gibt, auch das mit deinen genannten Zeigern würde ich eher als Nach als den Vorteil bezeichnen.

Gerade Zeiger beinhalten ein Risikio, denke da brauchen wir uns nicht zu streiten.

Zweifelsohne bietet C aber auch C++ das Maximum an Freiheit für den Programmierer.

Allerdings nur für diesen, ein Admin sieht das ganz anders, und um seinen Horizont zu erweitern sollte man vielleicht mal als solcher gearbeitet haben,das erweitert das gedankliche Spektrum ungemein.

Bleib Du nur bei C++ und C, das mache ich niemanden Vorschriften sowas mase ich mir nicht an.

Der Thread lautete Mono wann für ReactOS sinngemäß und ich antworte hier je eher umso besser am besten noch gestern !!

Den Ada Taliban werde ich nicht raushängen lassen.

mfg RudBoy
Am Anfang war alle Software frei. (Georg Greve, FSFE)
frik85
Developer
Posts: 829
Joined: Fri Nov 26, 2004 7:48 pm
Location: Austria, Europe
Contact:

Post by frik85 »

Topic wurde vom original Thread "Mono unter ReactOS 0.3 ?" ( http://www.reactos.org/forum/viewtopic.php?t=2193 ) abgesplittet.
Locked

Who is online

Users browsing this forum: No registered users and 19 guests