C++ vs. Java - Kleine Fallstudie gefällig?
-
Badestrand schrieb:
Das ist doch ein Thread, wo Java und C++ verglichen werden sollen. Ich glaube nicht, dass man eine Aufgabenstellung findet, die fair ist in Bezug auf gleichwertige Anforderungen an Java und C++.
doch, mein vorschlag von seite 1
-
Hey, stimmt, hatte ich nach den 9 Seiten glatt wieder vergessen
Also einen SQL-Server mit beiden Programmiersprachen oder wie? Auch als Dienst? Ist auch ne gute Idee, ich wäre dafürWas hältst du davon, Gast++? Schließlich ist das dein Thread und wär eigentlich mal cool, wenn was entschieden werden würde
-
Badestrand schrieb:
Hey, stimmt, hatte ich nach den 9 Seiten glatt wieder vergessen
Also einen SQL-Server mit beiden Programmiersprachen oder wie? Auch als Dienst?
Was hältst du davon, Gast++? Schließlich ist das dein Thread und wär eigentlich mal cool, wenn was entschieden werden würde@rapsoo; @Badestrand:
Hättet Ihr Interesse an der Java-Version mitzuentwicheln?
Würde mich sehr freuen!@all:
Meine Ideen zum Applikationsthema und zur Architektur habe ich ja bereits dargelegt; ein SQL-Server erschiene mir persönlich auch ohne Parser als zu aufwendig und auch Java gegenüber etwas unfair; Java ist nicht dafür ausgelegt OS-Ressourcen so effizient zu verwalten wie dies native Anwendungen können.Ein SQL Server hat ja
- eine eigene Threadmimik
- ein eigenes dediziertes Ressourcenmanagement (Caching, Shared Memeory...)
- ein eigenes Dateiformat; manche sogar ein eigenes Dateisystem ("RAW-Devices")
...Dieser Topos ist eher mit einem Betriebssystem denn mit einer "Business-Anwendung" zu vergleichen; und mir somit auch zu systemnah (s.a meinen Opener)
Wie schon in dem Fahrplan auf S.7 dargelegt fehlen Absichtserklärngen vor allem von Javaentwicklern; da liegt bislang nicht eine einzige vor. Es bringt nichts ohne ein Placet von jener Seite die Themen festzuzurren und deshalb werde ich diesen Fehler auch nicht machen.
Grüsse
*this
-
Gast++ schrieb:
Java ist nicht dafür ausgelegt OS-Ressourcen so effizient zu verwalten wie dies native Anwendungen können.
also ne, immer diese vorurteile...
--> http://java.sun.com/j2se/1.5.0/docs/api/java/nio/package-summary.html
--> http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/package-summary.html
-
Gast++ schrieb:
Wie schon in dem Fahrplan auf S.7 dargelegt fehlen Absichtserklärngen vor allem von Javaentwicklern; da liegt bislang nicht eine einzige vor.
frags du hier
http://www.java-forum.org/de/ oder hier http://forum.javacore.de/Nen SQL Server finde ich auch übertrieben. Da muss man schon sehr viel wissen um sowas richtig zu machen. Da gehts ja dann nur darum wer sich besser mit dem Thema auskennt und nicht welche Sprache er verwendet.
Sollte schon was einfacheres sein, wo man nicht vorher sich ewig einarbeiten muss.
-
Glaub ich nicht, dass das so schwierig ist. Das Programm muss doch nur intern eine Tabelle verwalten und per TCP/IP auf einem entsprechenden Port Anfragen entgegennehmen. Diese werden halt geparst, weil sie aus Text bestehen und die Operation ausgeführt, wovon es imho gar nicht sooo viele gibt; man könnte die Kommandos ja auch auf bestimmte begrenzen. Oder jemand listet mal alle auf, die es so gibt.
Mir fallen spontan nur "Datenbank-erstellen", "Tabelle-erstellen", "Spalte-hinzufügen", "Zeile hinzfügen", "Wert setzen mit 'Spalte A=Bla, Spalte B=Blubb', Wert=50'" und bissl mehr ein, wieviel gibts da so?Wir müssen ja nicht unbedingt Benutzer-Verwaltung usw dazunehmen, einfach nur ein Admin-Passwort.
Jo, ich könnte gerne bei der Java-Fraktion mitmachen, hätte aber nicht mehr als eine Stunde Zeit am Tag und bin hab in meinem ganzen Leben nicht mehr als 50 Stunden in Java programmiert
Aber wie gesagt, ich kanns versuchen
-
Badestrand schrieb:
Mir fallen spontan nur "Datenbank-erstellen", "Tabelle-erstellen", "Spalte-hinzufügen", "Zeile hinzfügen", "Wert setzen mit 'Spalte A=Bla, Spalte B=Blubb', Wert=50'" und bissl mehr ein, wieviel gibts da so?
Es gibt ne ganz Menge aufwendiger Statements die man bauen kann. Joins, inner selects,... und alles mit and or ... kombinieren
War die Idee ne eigene DB zu bauen oder die anfragen an eine vorhandene weiterzuleiten?
-
wie ich ebenfalls auf seit1 sagte waere das einfachste XML zu benutzen. da sollte es fuer jede sprache genug libs geben.
queries sollten auch etwas komplexer sein duerfen da das die sprache dann fordert (z.b. mehrere tabellen kombiniert )
-
Du willst also ne eigene DB bauen. Halte ich für viel zu aufwenig. Es gibt außerdem doch schon viele DBs in Java und C++ die man vergleichen kann.
-
Also ne DB entwicklen ist ja wohl der totale Blödsinn. Sorry das ich das sagen muß. Aber es geht in jedem Java vs. C++ Thread darum, das die Mehrheit der Entwickler schneller mit Java etwas fabriziert. Und da geht es nunmal eher darum, eine DB anzusprechen und nicht eine DB zu entwickeln. Ich bezweifel mal stark, das die Mehrheit der Informatiker DBs implementieren, oder? Die Mehrheit wird eher sogenannte Businessanwendungen designen und dann implementieren.
Und ob man mit C++ eine DB implementieren kann, steht außer Frage. Ich wette, 99% der heutigen DB-Systeme sind in C++ oder mit Legacycode noch in C. Da müssen wir hier im Forum bestimmt nicht noch Fallstudie machen.
-
Da muss ich Artchi recht geben. Java wird immer für Code-Monkey Aufgaben angepriesen. Es in ein anderes Umfeld zu schieben wäre unfair.
Aber im Grunde halte ich nicht viel von der Fallstudie...
-
Badestrand schrieb:
Glaub ich nicht, dass das so schwierig ist.
Jo, ich könnte gerne bei der Java-Fraktion mitmachen, hätte aber nicht mehr als eine Stunde Zeit am Tag und bin hab in meinem ganzen Leben nicht mehr als 50 Stunden in Java programmiertAber wie gesagt, ich kanns versuchen
@Badestrand:
Toll dass Du mitmachst!
Gilt Deine Zusage auch wenn sich die Teilnehmer mehrheitlich gegen eienen SQL-Server entscheiden?@all:
Wenn alle Stricke reissen würde ich bei Java mitcoden.
Aber wirklich nur wenn's sonst gar nicht geht!
(Eigentlich wollte sehr gerne ich beim C++-Team mitmachen)
Damit hätten wir jetzt in beiden Teams minimale Mannstärke für eine Minianwendung.Ein Problem ist aber dass meine Java-Praxis auch nicht die grösste ist; das Javateam bräuchte eigentlich zumindest auch einen Experten.
Grüsse
*this
-
Ich würde mich auch anbieten, bei der C++ Seite mitzumachen.
Allerdings kenne ich mich zwar in C++ aus, das heißt aber nur in Standard-C++ (keine großartigen anderen Bibliotheken für Sockets, GUI, Threads, etc.). Außerdem habe ich noch nie bei einem größeren Projekt (mit mehr als 2 Leuten
) mitgemacht.
Felix
-
Die Idee mit einer Fallstudie finde ich gut, da ich bisher in der Praxis noch nichts vergleichbares in der Art gesehen habe - bisher basieren die "Behauptungen" immer auf subjektiven Meinungen.
Ich denke ein Großteil der Software die heutzutage entwickelt wird, sind die klassischen Unternehmslösungen. Ich finde auch das dieser Bereich aus anderen Gründen repräsentativ für viele Sprachmerkmale ist, da moderne Enterprise System weit mehr können müssen als Daten aus SQL Datenbanken auslesen und in einer GUI darszutellen. Mein Vorschlag wäre ein klassisches modernes Enterprise System:
1.) Die Software muss mit mind. 2 versch. Datenbanksystemen lauffähig sein
- Ein freies OSS System wie Postgres oder MySQL
- Ein kommerzielles wie Oracle oder DB22.) Es soll mind. auf Linux und Windows System laufen(x86, x86-64). Sowohl die Clients, wie auch der Server.
3.) Es sollte eine Mehrschichtarchitektur zum Einsatz kommen, Web- und GUI Frontends sollen vorhanden sein. Kommunikation erfolgt über eine verteiltes Objektprotokoll der Wahl.
4.) Das System soll parallel auf mehreren Servern betrieben werden können(HA, Skalierbarkeit, etc.)
Das sind die typischen Randbedingungen die ein System heutzutage erfüllen sollte. Gleichzeitig werden auch verschiedene Bereiche abgedeckt: Datenbankenzugriffe, Netzwerkzugriffe, Objektverteilung, GUIs, etc..
Bemerkung: Durch das verteilen auf mehrere Schichten, lassen sich auch hervorragend automatisiert Tests und Benchmarks erstellen.
Bemerkung 2: Ein Baispflichtenheft halte ich für sehr wichtig, da es exakt festgelegt sein muss, was das System später können muss.Was haltet ihr davon?
-
Irgendwie ist es doch witzlos, Java und C++ anhand einer 0815-SQL-Applikation zu vergleichen. Angenommen, du hast dann 2 Lösungen, was willst du vergleichen? Die Performance hängt primär vom SQL-Server ab, die Implementierungszeit und Qualität von der Erfahrung des Authors im Umgang mit entsprechenden Libraries und Tools. Wobei anteilsmäßig eher wenige C++ - Entwickler sich täglich mit SQL-Anwendungen herumschlagen müssen (gibt schließlich genug interessante Arbeit) wärend die Javaleute fast nichts anderes tun als das.
-
Artchi schrieb:
Also ne DB entwicklen ist ja wohl der totale Blödsinn. Sorry das ich das sagen muß. Aber es geht in jedem Java vs. C++ Thread darum, das die Mehrheit der Entwickler schneller mit Java etwas fabriziert. Und da geht es nunmal eher darum, eine DB anzusprechen und nicht eine DB zu entwickeln. Ich bezweifel mal stark, das die Mehrheit der Informatiker DBs implementieren, oder? Die Mehrheit wird eher sogenannte Businessanwendungen designen und dann implementieren.
sorry, aber es ist ebenfalls bloedsinn zwei sprachen zu vergleichen indem man prueft wie gut man sie an externe libs koppelt. damit vergleicht man die sprachen kaum, eher die libs und am ende weiss man dann trotzdem nicht was die sprache zu leisten vermag. Es geht doch darum zu sehen ob die individuellen sprachvorzuege/-konzepte (z.b. gc oder eigenes memorymanagement) von vorteil oder nachteil sind, darum geht es bei den meisten flamewars.
Und ob man mit C++ eine DB implementieren kann, steht außer Frage. Ich wette, 99% der heutigen DB-Systeme sind in C++ oder mit Legacycode noch in C. Da müssen wir hier im Forum bestimmt nicht noch Fallstudie machen.
du darfst gerne vorschlagen wie man beide sprachen relativ unabhaengig von externen dingen gegeneinander testen soll.
Bei den meisten flamewars steht ja oft im raum, dass man mit java alles machen kann was c++ kann und java eine weiterentwicklung ist bzw behauptet die gegenseite dass java nie c++ ersetzen wird sondern nur in speziaellen rapiddev interfaces reinkommt.
da muss man doch eben auf diesem gebiet die alroundfaehigkeiten der sprachen testen... falls man es wirklich wissen will.
wenn man hingegen sagt "java ist fuer business DB-interfaces" und dann soll man das mit c++ vergleichen, wo c++ ueberhaupt nicht reinwill, ist das sinnfrei, weil am ende jeder sagt "hui, gut, java hat also vorteile in dem gebiet in dem es benutzt wird und niemand dran zweifelte, so wayne?"
-
rapso schrieb:
"hui, gut, java hat also vorteile in dem gebiet in dem es benutzt wird und niemand dran zweifelte, so wayne?"
Das kann zwar sein, dass das am Ende gesagt wird. Fakt ist aber, dass es hier genug Leute gibt, die sagen: "Das kann man mit C++ alles genauso gut, genauso einfach und genauso schnell." Falls es schief geht werden die natürlich nachher alle was anderes gesagt haben.
Interessant daran finde ich, dass man damit mal überprüfen kann, ob es stimmt, dass die Entwicklungszeiten kürzer sind und vieles einfacher ist. Und dazu gehört auch die Anbindbarkeit an Libraries. Aus der Anwendung einfach den (durchaus auch gelegentliche bestrittenen) Vorteil der großen Library rauszunehmen ist nicht wirklich fair. Imho geht es hier doch eher darum nicht nur die Sprachen zu vergleichen, sondern die komplette Infrastruktur und alles was eben mit dranhängt, wenn man sich entscheidet in Sprache xy zu implementieren.
-
Entwicklungszeiten sind aber stark abhängig von Software-Werkzeuge ;o
-
Zeus schrieb:
Entwicklungszeiten sind aber stark abhängig von Software-Werkzeuge ;o
Sehr gut erkannt!
-
Jester schrieb:
rapso schrieb:
"hui, gut, java hat also vorteile in dem gebiet in dem es benutzt wird und niemand dran zweifelte, so wayne?"
Das kann zwar sein, dass das am Ende gesagt wird. Fakt ist aber, dass es hier genug Leute gibt, die sagen: "Das kann man mit C++ alles genauso gut, genauso einfach und genauso schnell." Falls es schief geht werden die natürlich nachher alle was anderes gesagt haben.
ich habs in den vorherigen thread schon geposted:
für jeden zweck hat man längst eine Programersprache entwickelt (nicht in etwa so: wir bruchen eine neue sprace , egal wo zu sie gut sei! xD)
drum halt ich das für einen flamer-thread thread-ersteller meinte dazu "Dauerbrenner-Thread " ..
so ha ich mit meiner meinung recht ? ja,:
PHP zB sieht fast so as wie C++, hat aber diverse unterschiede. Was kann man damit Programieren - sher viel mit geringen aufwand. (ein Gästebuch hab Ich inner halb von 10h programiert). würde man für so etwas C++ nutzen?? nein da man einen eigenen Webserver Programieren müsste.
Hoffe mal das es keine zweifel mehr gibt, warum es verschiedene Programiersprachen gibt !
ich weis auch nicht ob es sin voll ist wegen 5% mehr usern etwas in C++ zu entwickel was dann ca 50% mehr kostet!
einlösung wäre das man seiten Kompilieren kann - aber dadurch wächst das Problem mit webspace anbietern und hackern!