Geschwindigkeit vs. Sicherheit
-
Gregor schrieb:
finix schrieb:
Genau, ebenso kreativ wie zu übersehen das C/C++ an sich auch plattformunabhängig sind und dass es für den überwiegenden Teil der Aufgaben die man im Normalfall so bewältigen möchte plattformunabhängige Bibliotheken gibt.
Ich habe einmal eine Erfahrung mit Qt gemacht und das reicht mir praktisch schon, was diese plattformübergreifenden Bibliotheken betrifft: Die sind auch nicht so perfekt, wie man es vielleicht annehmen sollte. Gerade wenn man irgendwelche nativen GUI-Komponenten nutzt, die zum Beispiel auf anderen Plattformen nicht vorhanden sind. Resultat: Das Qt-Programm hat unter Windows funktioniert, unter Linux nicht. ...ich muss dazu sagen, dass das Programm nicht von mir war.
LOL
Natürlich ist eine plattformübergreifende nicht plattformübergreifend, wenn man sie mit Systemabhängigen-Code mischt. Man kann ja auch in Java System abhängigen Code schreiben (da reichen ja nur ein paar Pfadangaben oder einige Dinge bei Threads) und der ist dann zwar immer noch nicht Plattformunabhängig, aber er ist dann sogar davon Abhängig auf welcher Plattform die Plattform läuft.
Damit haben wir aber immer noch nicht gezeigt, warum wir uns ausgerechnet Java antun sollten, um sichere Programme zu schreiben.
-
rüdiger schrieb:
Damit haben wir aber immer noch nicht gezeigt, warum wir uns ausgerechnet Java antun sollten, um sichere Programme zu schreiben.
Gregor schrieb:
Zeig mir doch mal eine Meldung, dass in einem Javaprogramm eine Sicherheitslücke aufgetreten ist. ...die JVM ist kein Javaprogramm.
Du bist dran.
-
finix schrieb:
Wo sind denn die Unterschiede zwischen AWT und Swing, abgesehen davon dass beides GUI-Toolkits sind?
Das ist ja auch die Gemeinsamkeit.
AWT nutzt native Komponenten, Swing zeichnet selber. Aus diesem Grund hast Du bei AWT eine geringere Auswahl an Komponenten, dafür entspricht das L&F aber eher dem L&F, das auf der jeweiligen Plattform üblich ist. Bei Swing geht man genau andersherum an die Sache heran. Wenn man davon absieht, dass man da pluggable L&Fs verwenden kann, die das native L&F nachahmen, ist das Ziel eigentlich eher, auf allen Plattformen das gleiche L&F anzubieten. Insofern steht das SWT eigentlich auch eher in Konkurrenz zum AWT und nicht zu Swing.
Die Frage ist halt, welches Verhalten man für seine Anwendung lieber hätte. Ich halte den Ansatz von Swing für besser.
-
java anhänger schrieb:
Gregor schrieb:
Java vs. Groovy? Soetwas habe ich noch nicht gesehen. Wo gibt es denn solche Diskussionen?
Damit wollte ich eigentlich auf alle Diskussionen abzielen, die sich beispielsweise um Closures in Java drehen.
Ach so. Mal abwarten, ob die kommen. Ist schwer einzuschätzen, so lange noch kein JSR für Java 7 existiert.
-
rüdiger schrieb:
Natürlich ist eine plattformübergreifende nicht plattformübergreifend, wenn man sie mit Systemabhängigen-Code mischt.
Es ging um die Nutzung von Qt und nicht um irgendwelche plattformabhägigen Sachen. Qt stellt anscheinend Komponenten zur Verfügung, die es nicht überall gibt und entsprechend gibt es dann Fehler auf den anderen Plattformen. Das halte ich persönlich für eine merkwürdige Designentscheidung, wenn man eine plattformunabhängige Bibliothek zur Verfügung stellen möchte.
...so habe ich es zumindest in Erinnerung. Aber wenn Du was genaueres wissen möchtest, frag doch GPC nach seinen gtkmm-Erlebnissen. Das hat ja offensichtlich auch nicht so gut geklappt.
-
java anhänger schrieb:
rüdiger schrieb:
Damit haben wir aber immer noch nicht gezeigt, warum wir uns ausgerechnet Java antun sollten, um sichere Programme zu schreiben.
Gregor schrieb:
Zeig mir doch mal eine Meldung, dass in einem Javaprogramm eine Sicherheitslücke aufgetreten ist. ...die JVM ist kein Javaprogramm.
Du bist dran.
bitte, google kann doch wohl jeder selbst benutzen.
http://lists.grok.org.uk/pipermail/full-disclosure/2005-April/033208.html
uswAber zeig mir erst einmal ein paar Java-Programme, die in einem Bereich eingesetzt werden, wo Sicherheit überhaupt problematisch ist (also nicht Eclipse).
Aber ich sehe immer noch keinen Grund, warum ich dann nicht lieber in Common Lisp, Ada95 oder Ruby programmieren sollte, anstelle in Java.
-
rüdiger schrieb:
Aber zeig mir erst einmal ein paar Java-Programme, die in einem Bereich eingesetzt werden, wo Sicherheit überhaupt problematisch ist (also nicht Eclipse).
Huh? Ist Dir nicht klar, dass Java gerade im Enterprise-Umfeld eingesetzt wird? Also da, wo es um "Distributed Computing" geht? Was glaubst Du wo, die ganzen Java-Jobs herkommen? Aus der Spieleentwicklung vielleicht?
-
Gregor schrieb:
rüdiger schrieb:
Natürlich ist eine plattformübergreifende nicht plattformübergreifend, wenn man sie mit Systemabhängigen-Code mischt.
Es ging um die Nutzung von Qt und nicht um irgendwelche plattformabhägigen Sachen. Qt stellt anscheinend Komponenten zur Verfügung, die es nicht überall gibt und entsprechend gibt es dann Fehler auf den anderen Plattformen. Das halte ich persönlich für eine merkwürdige Designentscheidung, wenn man eine plattformunabhängige Bibliothek zur Verfügung stellen möchte.
Was hat das nun mit Sicherheit zu tun? Außerdem gibt es Qt auch für Java. Nach deiner Logik dürfte dann auch Java nicht portabel sein, weil Qt nicht portabel ist.
Gregor schrieb:
...so habe ich es zumindest in Erinnerung. Aber wenn Du was genaueres wissen möchtest, frag doch GPC nach seinen gtkmm-Erlebnissen. Das hat ja offensichtlich auch nicht so gut geklappt.
Das GTK auf Windows noch nie ein Lichtbringer war, wissen wir auch alle.
Aber hey, immerhin gibt es zahlreiche weit verbreitete C++ Software, die auf zahlreichen Plattformen läuft. Aber nenn mir mal eine weit verbreitete Java Software (das auf zahlreichen Plattformen lassen wir mal weg, Java hat ja eh nur eine Plattform auf der es läuft).
-
rüdiger schrieb:
Aber ich sehe immer noch keinen Grund, warum ich dann nicht lieber in Common Lisp, Ada95 oder Ruby programmieren sollte, anstelle in Java.
Du kannst in allem programmieren, in dem Du programmieren möchtest. ...auch in C++, wenn Du willst. Und meinetwegen sogar in "Chef". Hier wird keiner zu gar nichts gezwungen. C++ hat definitiv eine ganze Menge Eigenschaften, die bei einer Programmiersprache sinnvoll sind. In meinen ersten Beiträgen in diesem Thread habe ich ja auch explizit auf einige hiervon hingewiesen. C++ hat Stärken gegenüber Java, aber das gilt natürlich auch andersherum. Die Sprachen sind nicht gleich. Keine Sprache ist "besser", aber es ist IMHO sinnvoll, sich darüber klar zu sein, wo die Stärken und Schwächen der jeweiligen Sprachen liegen. Und Schwächen hat nicht nur Java, sondern auch C++. Da hilft auch kein "ein Programmierer könnte ja theoretisch...". Was relevant ist, ist die Praxis.
-
rüdiger schrieb:
Was hat das nun mit Sicherheit zu tun? Außerdem gibt es Qt auch für Java. Nach deiner Logik dürfte dann auch Java nicht portabel sein, weil Qt nicht portabel ist.
Wie schon weiter oben gesagt: Java hat nichts mit Portabilität zu tun. Javaprogramme werden nicht portiert und sind auch nicht portabel.
Wenn ich aber von Javaprogrammen rede, dann meine ich Programme, die abgesehen von der Java-Standardbibliothek an keiner Stelle auf nicht-Java-Code angewiesen sind. Das trifft nicht zu, wenn Qt genutzt wird und das trifft auch nicht zu, wenn das SWT genutzt wird. ...für mich zählt zum Beispiel Eclipse nicht zu den reinen Javaprogrammen.
Abgesehen davon: Qt für Java ist ein Witz. Das interessiert keinen und das wird auch nie jemand nutzen. Ok, vielleicht irgendeine abgedrehte Minderheit.
-
Das Problem ist doch das die meisten Programmierer C/C++ programieren und nicht C++.
-
bitte, google kann doch wohl jeder selbst benutzen.
http://lists.grok.org.uk/pipermail/full-disclosure/2005-April/033208.html
uswBeschäftigen wir uns eben mit dem Thema SQL-Injection. Nenn mir einfach etwas äquivalentes in C++ zum PreparedStatement, bzw. etwas abstrakter betrachtet eben beispielsweise JdbcTemplate aus dem Spring Framework?
Nach deiner Logik dürfte dann auch Java nicht portabel sein, weil Qt nicht portabel ist.
Nein, nach seiner Logik dürfte ein Java Programm nicht portabel sein, wenn es Qt verwendet und das stimmt ja, da stets native Bibliotheken mitgeliefert werden müssen (vergleichbar mit SWT).
Aber nenn mir mal eine weit verbreitete Java Software (das auf zahlreichen Plattformen lassen wir mal weg, Java hat ja eh nur eine Plattform auf der es läuft).
Nachdem es ja auch kein Vorzeigeexemplar einer .NET Anwendung gibt, besteht anscheinend lediglich nach C++ Entwicklern Nachfrage.
Aber das C++ die optimale Wahl ist, wird ja auch beispielsweise ersichtlich durch die überwältigende "Marktherrschaft" von C++ CGI Anwendungen gegenüber JSP, JSF, etc..
-
Gregor schrieb:
rüdiger schrieb:
Aber ich sehe immer noch keinen Grund, warum ich dann nicht lieber in Common Lisp, Ada95 oder Ruby programmieren sollte, anstelle in Java.
Du kannst in allem programmieren, in dem Du programmieren möchtest. ...auch in C++, wenn Du willst. Und meinetwegen sogar in "Chef". Hier wird keiner zu gar nichts gezwungen. C++ hat definitiv eine ganze Menge Eigenschaften, die bei einer Programmiersprache sinnvoll sind. In meinen ersten Beiträgen in diesem Thread habe ich ja auch explizit auf einige hiervon hingewiesen. C++ hat Stärken gegenüber Java, aber das gilt natürlich auch andersherum. Die Sprachen sind nicht gleich. Keine Sprache ist "besser", aber es ist IMHO sinnvoll, sich darüber klar zu sein, wo die Stärken und Schwächen der jeweiligen Sprachen liegen. Und Schwächen hat nicht nur Java, sondern auch C++. Da hilft auch kein "ein Programmierer könnte ja theoretisch...". Was relevant ist, ist die Praxis.
Das ich mit allem programmieren kann, wozu ich Lust habe, weiß ich (okay, das stimmt natürlich nicht ganz. Aber sagen wir so, das ihr hier keinen Einfluss darauf habt, das weiß icht).
Aber darum geht es ja nicht in dem Thread. Der Thread hat ja nicht das Thema "Hey, darf ich wirklich die Programmiersprache benutzen, die ich benutzen will?". Es geht doch hier darum, dass zumindest der Thread-Starter einem klar machen wollte, das wir lieber Java benutzen sollten, weil dadurch die Welt sicherer wird.
Nun, sind wir offensichtlich beide der Meinung, dass dies totaler Humbug ist und Java die Welt nicht sicherer macht. Damit hätten wir beide für unseren Teil natürlich den Thread zu einem Ende getragen. Ansonsten warte ich noch gerne darauf, das mir nun endlich jemand erklärt, wo Java hilft die Welt sicherer zu machen.
-
rüdiger schrieb:
Aber hey, immerhin gibt es zahlreiche weit verbreitete C++ Software, die auf zahlreichen Plattformen läuft. Aber nenn mir mal eine weit verbreitete Java Software (das auf zahlreichen Plattformen lassen wir mal weg, Java hat ja eh nur eine Plattform auf der es läuft).
Javaprogramme sind momentan zugegebenermaßen eher weniger auf Desktops von privaten Nutzern zu finden. Die meisten Javaprogramme laufen wohl in Firmen entweder auf Servern oder auch auf Desktops. Es gibt aber natürlich einige Javaprogramme, die sich auch an den privaten Nutzer richten. Zum Beispiel Filesharing-Programme, wie Limewire oder auch Azureus (das allerdings nicht 100% Java ist).
-
rüdiger schrieb:
Aber darum geht es ja nicht in dem Thread. Der Thread hat ja nicht das Thema "Hey, darf ich wirklich die Programmiersprache benutzen, die ich benutzen will?". Es geht doch hier darum, dass zumindest der Thread-Starter einem klar machen wollte, das wir lieber Java benutzen sollten, weil dadurch die Welt sicherer wird.
Nun, sind wir offensichtlich beide der Meinung, dass dies totaler Humbug ist und Java die Welt nicht sicherer macht. Damit hätten wir beide für unseren Teil natürlich den Thread zu einem Ende getragen. Ansonsten warte ich noch gerne darauf, das mir nun endlich jemand erklärt, wo Java hilft die Welt sicherer zu machen.
Wir sind uns darüber einig, dass der Thread-Starter ein Troll ist. Vielleicht sollte man den Threadverlauf etwas getrennt von den ersten paar Beiträgen sehen.
Wir sind uns aber nicht über die Sicherheitsfragen einig. Ich habe meine Sichtweise diesbezüglich schon dargestellt. Aber ich glaube, wir finden da nicht zu einer gemeinsamen Meinung, auch wenn der Thread noch 50 Seiten weiter geht: Du bewertest die Argumente anders als ich.
-
java anhänger schrieb:
bitte, google kann doch wohl jeder selbst benutzen.
http://lists.grok.org.uk/pipermail/full-disclosure/2005-April/033208.html
uswBeschäftigen wir uns eben mit dem Thema SQL-Injection. Nenn mir einfach etwas äquivalentes in C++ zum PreparedStatement, bzw. etwas abstrakter betrachtet eben beispielsweise JdbcTemplate aus dem Spring Framework?
Warum sollte ich in C++ kein "PreparedStatement, bzw. etwas abstrakter betrachtet eben beispielsweise JdbcTemplate aus dem Spring Framework" haben können?
Und obwohl Java so etwas hat, gibt es ja offensichtlich SQL-Injection-Angriffe.
java anhänger schrieb:
Nach deiner Logik dürfte dann auch Java nicht portabel sein, weil Qt nicht portabel ist.
Nein, nach seiner Logik dürfte ein Java Programm nicht portabel sein, wenn es Qt verwendet und das stimmt ja, da stets native Bibliotheken mitgeliefert werden müssen (vergleichbar mit SWT).
bei Java muss doch eh eine Systemabhängige Plattform mitgeliefert werden.
java anhänger schrieb:
Aber nenn mir mal eine weit verbreitete Java Software (das auf zahlreichen Plattformen lassen wir mal weg, Java hat ja eh nur eine Plattform auf der es läuft).
Nachdem es ja auch kein Vorzeigeexemplar einer .NET Anwendung gibt, besteht anscheinend lediglich nach C++ Entwicklern Nachfrage.
Es gibt mehr als Java, C# und C++. Aber es wundert mich nicht, das dein Horizont auf diese drei Programmiersprachen beschränkt ist.
java anhänger schrieb:
Aber das C++ die optimale Wahl ist, wird ja auch beispielsweise ersichtlich durch die überwältigende "Marktherrschaft" von C++ CGI Anwendungen gegenüber JSP, JSF, etc..
*gähn* wen interessieren irgend welche JSP oder JSF-Sachen. Die sind doch eh kaum verbreitet, wenn man sich mal anguckt wie viele Webseiten (leider) mit einem php-Enden. Selbst Perl dürfte ja noch weiter verbreitet sein.
Aber immerhin ist der Webserver in C geschrieben und auch fast die ganze andere Software auf dem Server (sogar die JVM mit der du das Zeugs laufen lassen musst).
-
java anhänger schrieb:
rüdiger schrieb:
Damit haben wir aber immer noch nicht gezeigt, warum wir uns ausgerechnet Java antun sollten, um sichere Programme zu schreiben.
Gregor schrieb:
Zeig mir doch mal eine Meldung, dass in einem Javaprogramm eine Sicherheitslücke aufgetreten ist. ...die JVM ist kein Javaprogramm.
Du bist dran.
gerne, aber wie ihr ja selbst sagt
java anhänger schrieb:
Aber das C++ die optimale Wahl ist, wird ja auch beispielsweise ersichtlich durch die überwältigende "Marktherrschaft" von C++ CGI Anwendungen gegenüber JSP, JSF, etc..
Gregor schrieb:
Javaprogramme sind momentan zugegebenermaßen eher weniger auf Desktops von privaten Nutzern zu finden. Die meisten Javaprogramme laufen wohl in Firmen entweder auf Servern oder auch auf Desktops. Es gibt aber natürlich einige Javaprogramme, die sich auch an den privaten Nutzer richten. Zum Beispiel Filesharing-Programme, wie Limewire oder auch Azureus (das allerdings nicht 100% Java ist).
müsste ich dafür ja irgend welche Firmensoftware oder Webseitencodes kennen. Das ist wirklich zu speziell um sich da nennenswert nach Sicherheitslücken umzugucken.
Also bitte, kommt mir nicht damit das ich eine Programmiersprache benutzen sollte, weil die nicht öffentlich vorhandene Software keine Sicherheitslücken hätte.
-
dabei hat php an meistens sicherheitslöcher
-
Es gibt mehr als Java, C# und C++. Aber es wundert mich nicht, das dein Horizont auf diese drei Programmiersprachen beschränkt ist.
Wie kann ich es mir auch nur anmaßen mich als Java Programmierer zu bezeichnen ohne fundamentale Kenntnisse von Lisp, Haskell, etc.. zu haben. Aber ich kann ja schon förmlich riechen, dass die nächste Aussage in etwa behaupten wird, dass man Programmierung lediglich verstanden hat wenn man ideologisch motivierter Lisp Anhänger ist, da ja auch sämtliche Mainstream-Sprachen immer mehr Konzepte aus dem funktionalen Paradigma übernehmen, blabla .. Derartig theoretisches und vor allem unbegründetes Gelaber interessiert mich nicht.
Ich geb gerne zu, dass ich mich von Marketing Strategien von Microsoft & Co. ein wenig blenden lasse, es stört mich allerdings überhaupt nicht, denn "ihr" werdet es ja genau so, nur eben anders.
-
@rüdiger: Um nochmal ein ganz anderes Thema anzuschneiden...
Du bist doch so ein OSS-Verfechter, oder? Wie stehst Du dann eigentlich zur Öffnung von Java? Ein großer Teil von Java wird wohl innerhalb von 2 Monaten unter der CDDL verfügbar sein. Die CDDL wird von der OSI als OSS-Lizenz angesehen, aber es gibt auch einige Stimmen, die darauf hinweisen, dass die CDDL nicht komplett zur GPL kompatibel sein soll. Würdest Du das als großes Hindernis ansehen?
...um das etwas in den Thread einzubetten: Weiter oben ging es ja darum, ob man im Java-Umfeld auf die Schwächen der Sprache reagiert. Es wurde in der Vergangenheit oft genug kritisiert, dass Java nicht OSS sei. Sun hat das gehört und hat es inzwischen wohl auch als Schwäche von Java erkannt, so dass dort ein Politikwechsel stattgefunden hat.