Unterschiede C++/C#



  • Moonlight schrieb:

    Das C# evtl. sich durchsetzt und C++ ablöst kann sein, widerspricht aber meiner vorherigen Aussage in keinster Weise.

    Dir ist aber klar, dass die Technik hinter C# und Java sich _sehr_ ähnlich ist?

    C# wird genauso gejittet wie Java, nur mit dem Unterschied, dass in Java mehr Entwicklungszeit drinnen steckt 😉

    Java wirkt lediglich wegen Swing so träge, wenn man keine GUIs mit Java macht, ist die Geschwindigkeit Top.

    Dennoch würde ich Java nicht für ein kommerzielles Spiel verwenden, weil man nicht vernünftig Systemabhängige Micro-Optimierungen hinbekommt, was gerade bei Spielen einmal doch nötig werden kann.

    Für 08/15 Spiele ist Java sicher gut geeignet. Wobei C# vermutlich unter Windows zukunftsträchtiger ist.



  • Moonlight schrieb:

    Du willst Handy-Programmierung doch wohl nicht mit PC-Programmierung vergleichen? Klar ist Java für Servlets die bessere wahl wen wunderts wenn Java für Server/Internet optimiert ist. 😉

    Ich hatte von Spieleprogrammierung gesprochen.

    [...]Es gäbe mit Sicherheit schon massig Spiele in Java wenn, Java im Spielebereich mit C++/DirectX mithalten könnte.
    Denn auch die Entwickler würden die mit Java wahrscheinlich etwas kürzere Enzwicklungzeit nutzen.Ich kenne kein Spiel das kommerzeil vermarktet wurde und in Java programmiert wurde ( vom Spiel Cube habe ich noch nie gehört und ich kenne ein ganze Menge spiele). :p

    Ok, sorry fuer den Ton, aber du bringst (vielleicht merkst du's auch gar nicht) eine Menge unqualifizierte Aussagen aufs Papier. 😉

    Handy-Spiele sind uebrigens auch Spiele. Mir war schon klar dass du von Spieleentwicklung fuer Computer gesprochen hast, aber ich wollte dich mal drauf hinweisen, dass es da noch mehr gibt 😉

    Und wie du bei Cube sehen koenntest, kann Java mit OpenGL halbwegs mit C++/DirectX mithalten. Ich hab dir extra den Link fuer Cube rausgesucht, damit du's dir anschauen kannst (offensichtlich kennst du naemlich nicht alle Spiele, sondern lediglich das, was du im Media Markt kaufen kannst. Unter Entwicklern ist Cube recht bekannt, da es eben ein Paradebeispiel fuer ein in Java geschriebenes Spiel ist).

    Java ist eine plattformübergreifende Sprache und alleine aus dem Grund schon langsamer.

    [...]

    Das C# evtl. sich durchsetzt und C++ ablöst kann sein, widerspricht aber meiner vorherigen Aussage in keinster Weise.

    Doch, tut es. Wie Shade schon gesagt hat, funktioniert C# gleich wie Java, und ist auch genau gleich plattforumuebergreifend. Muss deshalb wohl auch genau gleich "langsam" sein, meinst du nicht? 😉

    rgernha** schrieb:

    Nur weil eine Sprache nicht weiterentwickelt wird ist sie nicht tot oder sowas in der Richtung. Sie ist auch nicht perfekt, aber sie ist einfach für die Benutzung so weit,dass stehtige Weiterentwicklung nicht nötig ist.
    Außerdem kommt ja irgentwann der neue . (lang ists hin)

    Ist mir klar, die Anfuehrungszeichen sollten die Ironie meiner Aussage unterstreichen 😉



  • Java ist eine plattformübergreifende Sprache und alleine aus dem Grund schon langsamer.

    Oh du geheiligtes C++, du bist das schnellste auf Erden 🙄
    Java ist eine Sprache, und eine Sprache ist weder "schnell" noch "langsam".
    Wenn jetzt Intel einen Javacompiler rausbringen würde wären die damit generierten Executables wohl nur unwesentlich langsamer als von dem Intel C++ Compiler.
    Wird denn nicht immer damit Argumentiert dass C++ "platformübergreifend" sei?
    Und wer programmiert denn wirklcih damit komplett plattformübergreifend? Die Leute werden sicherlich bestätigen dass die ganzen "Wrapper" auch viel von der Perfomance nehmen. Ich bezweifele sehr dass ein durchschnittlicher C++ Programmierer ohne gute, optimierende Compiler (Intels, gcc usw) und (fast genauso wichtig) schnelle, optimierte Libs eine flotte Executable produziert. Ich hab nämlich schon genug VC++ 6.0 "Auswüchse" im Debugger gesehen und das ist nicht das schlimmste was es gibt. Nicht "C++" ist superschnell (nein, kein Flame 😉 ) sondern es ist so weit verbreitet dass sich viele die "Mühe" machen angepasste, bessere Compiler rauszubringen (Intel - macht Geld damit,direkt und indirekt)
    oder Libs zu optimieren. Wenn jetzt sich jemand Java annehmen würde und dafür einen "richtigen" Compiler mti allem drumherum schreiben, eventuell die Libs verbessern und besser an die Plattformen anpassen würde dann würde da vieles von der "C+++ Schnelligkeit" schwinden. Und überhaupt, wenn man von schnelligkeit spricht: dann müsste man auch immer C oder Assembly nehmen. Und ja: wenn mans kann, dann schlägt man in Asm immer noch jeden Compiler 🙄 Jedenfalls ist mir keine Mersenne-Twister Implementierung in C++ bekannt die nur 18 Ticks braucht.



  • Blue-Tiger schrieb:

    Ok, sorry fuer den Ton, aber du bringst (vielleicht merkst du's auch gar nicht) 😉

    Auf eine Aussage von mir bist du (mit Absicht) nicht eingegangen.
    Das es bei der Masse an kommerziellen PC-Spielen die es am Markt gibt keine einziges existiert (und ich kenne eine ganze Menge, nicht nur die bei Media Markt 🙄 ) welches auf Java basiert.
    Bevor du jetzt vielleicht ein Spiel von tausend raussuchst welches in Java programmiert wurde, ich rede von der Masse der kommerziellen Spiele.
    Wenn Java für die PC-Spiele genauso gut geeignet wäre wie C++ würden die Entwickler das auch aussnutzen, die hätten mit Java programmierten Spielen ein viel größeren Markt (nicht nur Windows User, sondern auch ander Plattformen).
    Von den schon oben erwähnten kürzeren Entwicklungszeiten mal abgesehen.
    Mit plattformübergreifend meinte ich verschiedene Betriebssysteme.

    Aber dir ist auch klar das letzte Wort in dieser Angelegenheit hat MS.
    Java ist nicht von dennen, sondern C#.

    Ich hatte den Thread aufgemacht weil ich wissen wollte welche Sprache besser für die Spieleprogrammierung geeignet ist.
    Die Frage wurde beantwortet.

    Mir war nicht klar das die Frage nacht der "richtigen" Sprache für viele auch eine Glaubensfrage darstellt.



  • Moonlight schrieb:

    Außerdem würde ich Java keine grosse Zukunft einräumen, da Sun die Sprache nicht weiterentwickelt und eine Sprache die nicht weiterentwickelt wird ist tot.
    Außerdem ist Java nicht von einem der grössten Softwarehersteller (Name kann man sich denken) und wird alleine aus dem Grunde es schwer haben sich richtig durchzusetzen. Das hat Java bis heute nicht ganz geschafft und wird es auch nie.

    Ok, ich liste hier mal die Firmen und Individuen auf, die an der Weiterentwicklung von Java beteiligt sind. Dir sollte dadurch klar werden, dass da eine enorme Marktmacht hintersteht und erhebliches Interesse von Seiten der Industrie daran besteht, dass Java erfolgreich ist. Natürlich wird Java massiv weiterentwickelt.

    Abbott, Michael
    Abramson, Nathan
    Access Co., Ltd
    Acero, Joseph
    Acharya, Praveen S.
    Adams, David
    ADC
    Adesanya, Tola
    Adobe Systems Inc.
    AElfweald, Malachi de
    AePONA
    Agarwal, Niraj
    Agarwal, Puneet
    Aggan, Wael
    Agilent Technologies
    Ajile Systems
    Alexandre, Vasseur
    Alkan, Ayhan
    Alkan, Kilinc
    Alpar, Aaron
    Altaworks Corporation
    Alticast Corp.
    Altova GmbH
    Alvarado, Gustavo Adolfo Ortega
    Ambekar, Vijay
    Amdocs Management Ltd.
    America Online (AOL)
    Andre, Francis
    Andrews, Barry W.
    Andrus, Ross
    Anjos, Luiz Carlos Bentes dos
    Antepo, Inc.
    Aonix
    Apache Software Foundation
    Aplix Corporation
    Apogee Software, Inc.
    Appeal Virtual Machines AB
    Appelgren, Johan
    Appium Technologies AB
    Apple Computer, Inc.
    Appnel, Timothy
    Araujo, Everton
    Argonne National Laboratory
    Arjuna Technologies Ltd.
    ARM Limited
    Armstrong, Charles
    Arocena, Pedro
    AromaSoft Corporation
    Arruda, Flavio Regis
    Art Technology Group Inc.(ATG)
    Arvidsson, Jimi
    Ascom Deutschland GmbH
    ASG Software Solutions
    Ashmore, Derek C.
    Askary, Sid
    Aspects Software, Ltd.
    AT&T Wireless Services, Inc.
    ATI Technologies Inc.
    Atique, Douglas
    Attachmate Corporation
    Autodesk, Inc.
    Avedal, Karl
    Avondolio, Donald
    Azul Systems, Inc.

    Babcock, Jeremy
    Babu, Karthik L.R.
    Bacinschi, Mike
    Badiozamani, Hamid
    Bajpai, Vinay
    Bajwa, Awais
    Ban, Bela
    Banash Jr., Stan
    Bank of America
    Barreto, Charlton
    Bartram, Scott
    Bayern, Shawn
    Baynes, A. Kevin
    BEA Systems
    Beacock, Andrew
    Beatnik, Inc.
    Bebout, Nicholas
    Beijing ZRRT Communications Technology Co. Ltd.
    Belliardi, Rudy
    Bellur, Umesh
    Bence, Nicholas
    BenQ Corporation
    Bergsten, Hans
    Berkovitz, Joseph
    Berlin, Volker
    Bernstein, Greg
    Berry, Chris
    Beryozkin, Genady
    Beryozkin, Sergey
    Besset, Didier
    Betrusted Inc.
    Bhat, Venkatesh
    Bien, Adam
    Bitfone
    Bits Corporation
    Blaak, Ray
    Blam!
    Blanton, Jay
    Bock, David W
    Boeing
    Boman, Jonny
    Bonhomme, Patrice
    Booth, Peter
    Borland Software Corporation
    Bosanac, Dejan
    Bossons, John
    Botelho, Mauro
    Bothner, Per
    Botti, Luca
    Bouteille, Cyril
    Bouygues Telecom
    Bowbeer, Joseph
    Bowstreet, Inc.
    Boynes, Jeremy
    Braun, Brian
    Bridgham, Phillip
    British Telecom
    Broadvision Inc.
    Brock, Karl
    Brown, Simon
    Brown, Stuart R.
    Bruin, Marc de
    Bull S.A.
    Bunder, Noam
    Burdick Jr., William R.
    Burkhardt, Detlef
    Burwell III, John S.
    Byrne, Steve

    Cable Television Laboratories, Inc.
    Cable, Laurence P.G.
    Cabrera, Daniel Molina
    Cadieux, Pierre
    Cambista Technologies
    Campbell, Charles E.
    Cantor, Scott
    Cap Gemini
    Cape Clear Software
    CapTech Ventures
    Caritos II, Eladio B.
    Carr, David M.
    Cartwright, Robert
    Castelli, Antonio
    CCL/ITRI
    Cellon France SAS
    Ceon Corporation
    Chaikin, Yaakov
    Chandrasekaran, Muralidharan
    Chandrasekaran, Rajeev
    Chapman, Bruce
    Charter Communications Holding, LLC
    Chee, Meng
    Chen, David
    Chen, Dong
    Cheng, Annie
    Cherryhomes, David
    Choong, Siong-Loong
    Chopra, Vivek
    Choreology Ltd.
    Choudhary, Parag
    Chu, Geoffrey
    Cingular Wireless
    Cisco Systems
    Citicorp Development Center, Inc.
    Citrix Systems
    Claus, Janek K.
    Coco, Steven
    Coetzee, Eric
    Coglio, Alessandro
    Collaxa
    Combs, Clinton L
    Comcast Cable Corporation
    Communology GmbH
    Compagnon, Guillaume
    Computer Associates
    Compuware Corporation
    Conversational Computing Corporation
    CoreMedia AG
    Corporate Intellect Ltd.
    Costa, Tito
    Cote, Michael
    Cotton, Benjamin
    Covad Communications
    Cox Communications, Inc.
    Craine, William R.
    Cramer Systems Europe Ltd.
    Cramon, Lasse
    Crawford, Scott
    Creative Labs, Inc.
    Crosman, Tom
    CSC Holding, Inc.
    Curdt, Torsten
    Cyberonix

    Daconta, Michael
    Daga, Anthony T.
    Daleen Technologies Inc.
    Dalton, Sam
    Danger, Inc.
    Darget, Stephane
    Darwin, Ian F.
    DataDirect Technologies
    Dauenhauer, Marc
    Dautelle, Jean-Marie
    Davis, Arthur
    Dawson, Peter
    Day Software, Inc.
    de Lima Junior, Hamilton Athanazio
    Deadman, Richard
    Dearle, Fergal
    Delagrange, Morgan
    Delgado, Christopher
    Delong, Kenneth
    Desai, Nikhil
    Desruisseaux, Martin
    Developmentor
    Dewsnip, John
    Dhonnchaoha, Maedhbh Nic
    Dialogika GMBH
    Digital Chocolate
    Dilbeck, Kenneth
    Dillon, Eric
    Distributed Systems Technology Centre (DSTC)
    Divakaran, Rejeev
    Documentum, Inc.
    DOD/DISA
    Dolan, Kieran
    Domenech, Diana
    Downtown Management
    DPWN SOP Group
    DST Innovis
    Du, Samuel
    Dubinsky, Daniel
    Dudney, Bill
    Dupuy, Olivier
    Dutta, Satadip
    Dynamicsoft, Inc

    E.piphany, Inc.
    Eden, Robert D.
    Edwards-Hewitt, Jim
    El Fouly, Jean-Francois
    elata Ltd.
    Electronic Data Systems (EDS)
    Ellebrecht, Mario
    Ellipsus Systems
    Elrod, Thomas M.
    Emmel, Michael
    Enterprise Computer Telephony Forum (ECTF)
    Entrust Technologies Inc.
    Environmental System Research, Inc
    Ericsson AB
    Esmertec AG
    Espial Group, Inc.
    ESRI
    Eternal Systems, Inc.
    Etkin, Dylan
    ETRI
    Evans, Damien
    Evidian
    EWA Systems, Inc
    Exadel, Inc.
    Ezzio, David

    Fair Isaac Corporation
    Falk, Alexander
    Faraj, Sair
    Fastenrath, Bernhard
    Fei, Xun
    Ferdinand, Matthias
    Ferreira, Carlos
    Fidelity Information Services
    Filenet Corporation
    Finger, Michael
    Flanagan, David
    Flores, Luis P
    Flowers, Andrew
    Ford, Peter
    Fornari, Stefano
    Fox, Brian
    Freels, David
    Freire de Albuquerque Junior, Herval
    Frosch, Jack
    FueTrek Co., Ltd
    Fujitsu Limited
    Full Sail Inc.
    Fung, Wai Kit Tony

    Gaffney, Michael
    Galbraith, Ben
    Gambhir, Simran
    Gangadharan, Hari
    Gardner, Robert
    Garnier, Philippe
    Geary, David
    Gemplus Corporation
    Gemstone Systems, Inc.
    Gibbs, Rick
    Giesecke & Devrient GmbH
    Gilbert, Jeffrey
    Gilberti, Roberto
    Gilday, Dr. Richard
    Girow, Andrew
    Giudice, Raphael B.
    Glahn, Kay Peter
    Glance, Dr. David
    Glass, Carroll D
    Goel, Neeraj
    Goetz, Brian
    Golding, Paul
    GoldPocket Interactive
    Goncalves, Alexandre
    Google Inc.
    Gordon, Rodney
    Govindaraju, Madhukar
    Goyal, Vikram
    Green, Todd
    Gregory, Nicholas
    Grev, Mikael
    Grob, Reto
    Gross, Christian
    Grubsch, Michael
    Gulfier, Marcelo
    Guner, Selda
    Guy, Romain

    Hafiz, Abdul
    Haiges, Sven
    Hall, Gregory C.
    Hameed, Siddique
    Hamlyn, Stephen
    Han, Min-gyu
    Harby, John
    Harris, Christopher
    Harrop, Robert
    Hars, Alexander
    Hart-Davis, Damon
    Hasse, Scott
    Hatcher, Erik
    Haustein, Stefan
    HCL Technologies Ltd.
    Hebert, Yoann
    Hebin, Yan
    Hedin, Mette
    Heiduk, Martin
    Heifetz, Andrew
    Hendrey, Geoffrey
    Henricson, Mats
    Hensley, David
    Henson, Howard Peter
    Herre, Peter
    Hewlett-Packard
    HI Corporation
    Hickson, Shaun
    Hitachi, Ltd.
    Hodgson, Siegfried
    Holland, Philip G.
    Holmes, David
    Huber, Serge
    Hudec, Vladimir
    Hudzina, John
    Hughes Software Systems
    Hui, Li
    Hummingbird Ltd.
    Hunter, Jason
    Hutchison 3G UK Limited
    Hybrid Graphics Ltd.
    Hyperion Solutions Corporation

    IAIK
    iaSolution Inc.
    IBM
    ILOG
    Impact Science & Technology
    In-Fusio SA
    Incomit AB
    Infineon Technologies AG
    Infospace, Inc.
    Infotec
    InQMy
    Inria
    Insignia Solutions
    Institute for Information Industry
    Institute of Software Chinese Academy of Sciences
    Instituto de Telecomunicacoes
    Intalio, Inc.
    Intel Corp.
    Interwoven
    IONA Technologies PLC
    Ionkov, Latchesar
    IOPSIS Software Inc.
    Iordanov, Borislav
    IP Value GmbH
    IPEDO, Inc.
    Ironflare AB
    Isbell, Britten Shane
    Itochu Techno-Science Corporation
    Ivanov, Nikita
    Ivov, Emil
    IXOS Software AG

    So. Die von J bis X spar ich mir hier. Kannst du selbst hier nachgucken.

    Zur Durchsetzung. Java hat sich schon längst durchgesetzt (zugegebenermaßen noch nicht bezüglich der Spieleprogrammierung).

    Hier sind Java-Desktop Programme mit Swing gelistet:
    http://java.sun.com/products/jfc/tsc/sightings/
    Du siehst da also einige hundert Destop Programme mit Java, von denen auch viele kommerziell sind. Java hat bei Desktop Programmen momentan allerdings tatsächlich einige Schwierigkeiten, die gerade die Integration der Programme in das jeweils laufende System betreffen. Daran wird gearbeitet und man kann wohl sagen, dass die nächste Javaversion sehr massiv auf die Bedürfnisse des Desktop-Marktes eingeht. Mit Java 6.0 ist übrigens innerhalb des nächsten Jahres zu rechnen. Der Desktop-Markt ist somit mit Sicherheit ein Markt, in dem Java in Zukunft deutlich stärker vertreten sein wird.

    Bezüglich Spielen gibt es bei Java noch nicht so allzuviel zu sehen. Die meisten Java-Spiele kann man als Experimente oder kommerzielle Spiele mit wenig Budget werten. Aber gerade bei den Indi-Games ist Java doch schon etwas im Kommen. Bezüglich kommerzieller Spiele mit großem Budget wird das noch etwas dauern. C++ ist für Spiele momentan sicherlich die Beste Wahl, Java wird bei denen aber teilweise schon für sehr spezielle Aufgaben eingesetzt (Skripting usw.). IL-2 Sturmovik ist hierfür ein Beispiel. Trotzdem kommen hier mal ein paar Java-Spiele:

    Law & Order 1 + 2
    Tribal Trouble (Du kannste ne kostenlose Demo ausprobieren.)
    Wurm Online (ein MMORPG)
    Alien Flux (kleines Arcade-Spiel)
    Puzzle Pirates (ist tatsächlich kommerziell und angeblich sehr erfolgreich, ein MMOARRRRPG) 🙂

    Du siehst also, es gibt schon ein paar, allerdings weniger im Mainstream.



  • Moonlight schrieb:

    Aber dir ist auch klar das letzte Wort in dieser Angelegenheit hat MS.
    Java ist nicht von dennen, sondern C#.

    Ich hatte den Thread aufgemacht weil ich wissen wollte welche Sprache besser für die Spieleprogrammierung geeignet ist.
    Die Frage wurde beantwortet.

    Mir war nicht klar das die Frage nacht der "richtigen" Sprache für viele auch eine Glaubensfrage darstellt.

    Diese Frage stellt sowohl für dich als auch für mich eine Glaubensfrage da. Die meisten deiner hier getroffenen Ausagen basiern auf purem Glauben: Du glaubst zum Beispiel an MS als allmächtigen Gott. Ich hingegen glaube, dass eine Diversifizierung bezüglich Software, IT-Firmen usw. der Branche und eigentlich auch der ganzen Welt ganz gut tun würde und setze mich deshalb eher für MS Konkurrenzprodukte ein. Solche Erwägungen sind zwischen C# und Java aus meiner Sicht durchaus relevant, da viele andere Kriterien wegen der Ähnlichkeit der Sprachen an Relevanz verlieren (jetzt kommt mir nicht mit Delegates und Properties).

    Ok, lassen wir das. Es geht dir um Spieleentwicklung, weil du ohne viel Ahnung zu haben gleich mal ne fette "Endschinnn" schreiben willst oder ähnliches machen willst. 😉 (Du hast mit Sicherheit von keiner der 3 hier genannten Sprachen wirklich Ahnung und solltest den Bereich der Spieleentwicklung für die nächsten paar Jahre erstmal vergessen, wenn du es ernst meinst. Du mußt erstmal ganz andere Sachen lernen.) In dem Bereich sind weder Java noch C# die angesagten Sprachen, sondern weiterhin C++. Das ist eigentlich das, was du aus diesem Thread an Information mitnehmen könntest und was hier wohl von den wenigsten wirklich angezweifelt wird. Die Frage ist natürlich, ob das immer noch so sein wird, wenn es für dich relevant werden könnte, aber wer kann schon so weit in die Zukunft sehen. Vielleicht gibt es dann längst was anderes.



  • CDW schrieb:

    Wenn jetzt sich jemand Java annehmen würde und dafür einen "richtigen" Compiler mti allem drumherum schreiben, eventuell die Libs verbessern und besser an die Plattformen anpassen würde dann würde da vieles von der "C+++ Schnelligkeit" schwinden. Und überhaupt, wenn man von schnelligkeit spricht: dann müsste man auch immer C oder Assembly nehmen. Und ja: wenn mans kann, dann schlägt man in Asm immer noch jeden Compiler 🙄 Jedenfalls ist mir keine Mersenne-Twister Implementierung in C++ bekannt die nur 18 Ticks braucht.

    Es gibt Native-Code-Compiler für Java, wie zum Beispiel Excelsior JET. Deine Annahme, dass in Java geschriebene Programme durch so einen Compiler deutlich schneller werden, stimmt aber nur sehr eingeschränkt. Sicherlich gibt es da ein paar Benchmarks, die entsprechendes zeigen sollen, ich denke aber nicht, dass da wirklich viel dran ist. Die Dinge, die Javaprogramme langsam machen, liegen woanders. Es gibt Beispielsweise einen enormen Overhead pro Objekt, was auch gerade deshalb problematisch ist, weil es die ganzen Collectionklassen in der Standardbibliothek nur für Objekte und nicht für primitive Datentypen gibt. Solche Dinge sind IMHO für die geringere Performance von Java verantwortlich und auch gewisse Einschränkungen der Sprache können teilweise zu nötigen Verrenkungen führen, die viel Performance kosten. Mich stört momentan zum Beispiel ziemlich stark, dass es kein "unsigned byte" gibt.

    Allerdings muss man bei diesen ganzen Performancefragen natürlich den menschlichen Faktor betrachten, da gebe ich dir Recht. Bei komplexeren Programmen wird in keiner Sprache die maximale Performance erreicht. Wie nah man da rankommt hängt in erster Linie von den eigenen Fähigkeiten und den Fähigkeiten der Leute ab, dessen Bibliotheken man nutzt.



  • @Moonlight: Ich will es mal versuchen Dir zu erklären.

    Also Java und C# sind sich sehr sehr ähnlich. Beide werden erst zur Laufzeit in Binärcode übersetzt. Beiden Sprachen gehört in einem riesigen Bereich der IT-Branche die Zukunft. Das sind nicht Spiele, sondern Unternehmenslösungen.

    In einem anderen riesigen Bereich, verteilte Systeme, hat Java die Nase sowas von weit vor anderen Sprachen, dass man darauf nicht näher eingehen muss.

    C++ ist schneller als Java. Aber dieser Unterschied ist je nach Anwendungsfall gering bis sehr gering und bei normalen Anwednungen nur bei GUIs(Swing) merkbar. Denn Java optimiert zur Laufzeit sogar auf den Prozessor. Das macht man bei C++ nicht, da man sonst unmengen an Binarys rausbringen muss.

    Machen wir weiter. Warum gibt es so viele Spiele in C++? Erstmal gibt es sehr viele Spiele/Engines in reinem C. IMHO werden die Id Spiele alle in C geschrieben. Der Hauptgrund für C++ liegt aber in der Vergangenheit. Früher spielte nur DirectX und Windows eine Rolle. Heutzutage gibt es OpenGL und andere Betriebssysteme die sich langsam aber sicher auch Marktanteile sichern werden. Gering sind diese nicht, sonst würden nicht viele Schmieden Linux Versionen rausbringen. 😉

    Java ist tot? Erklär das mal bitte. Es ist gerade erst 1.5/5.0 mit vielen Änderungen erschienen. Die Sprache ist so lebendig wie sonst vielleicht noch C#.

    Du glaubst MS ist die Macht? Dann guck mal über den Tellerrand. Es gibt auch andere Bereiche ausser Desktops!

    Um noch aus Gregors Posting ein wenig namenhafte Firmen zu nennen, die offiziell auf Java setzen sind: IBM, Oracle und SAP. Das sind ebenfalls IT-Riesen und sind auf gewissen Bereichen Marktführer.

    Jetzt denk nochmal über Deine Aussagen nach.

    Um zum Thema zurück zu kommen, ich würde C++ und OpenGL nehmen, dass liegt aber daran das ich bekennender C++ Fan bin. 🙂

    Bin auf Deine Anworten gespannt und bitte sachlich und mit Begründungen!



  • IT-Guru schrieb:

    Also Java und C# sind sich sehr sehr ähnlich. Beide werden erst zur Laufzeit in Binärcode übersetzt. Beiden Sprachen gehört in einem riesigen Bereich der IT-Branche die Zukunft. Das sind nicht Spiele, sondern Unternehmenslösungen.

    Wenn man mal weiterdenkt zu Windows Longhorn ( managed API ), denke ich, dass auch die Spieleentwicklung in .NET mehr werden könnte.
    Das ist aber nur meine Meinung bzw. mein Gedanke, da ich sonst nix mit Spieleprogrammierung am Hut habe.



  • Noodles schrieb:

    Wenn man mal weiterdenkt zu Windows Longhorn ( managed API ), denke ich, dass auch die Spieleentwicklung in .NET mehr werden könnte.
    Das ist aber nur meine Meinung bzw. mein Gedanke, da ich sonst nix mit Spieleprogrammierung am Hut habe.

    Achtung: Das ist IMHO ein Irrglaube. Gegen Java wurde bei der Spieleentwicklung bisher eigentlich folgendes Argument als absolutes Killerargument gebracht.

    "Java ist zwar plattformübergreifend, aber es gibt keine JVM für die Playstation"

    Das heißt, dass gerade im Spielesektor sehr viele Portierungen auf Spielekonsolen stattfinden und andersherum. C# wird hier zwar wegen der X-Box etwas besser als Java damals aufgestellt sein, aber auch für C# gilt, dass es keine VM für die Playstation gibt. Man sollte nicht vergessen, dass die Playstation im Prinzip DIE Spielekonsole schlechthin ist. Somit ist das durchaus auch für C# ein Killerargument. Naja, andererseits besitzt MS diverse Spielefirmen und kann da sicherlich teilweise mitbestimmen. Insofern stimmt da der Ausspruch mit dem letzten Wort.

    Zumindest denke ich nicht, dass die Integration von .NET in Longhorn für einen Spieleentwickler von Relevanz ist. Genauso, wie man benötigte DirectX-Versionen einem Spiel beilegen kann, kann man ihm auch eine benötigte VM beilegen. Man hat die entsprechende .NET-Infrastruktur, die für Longhorn vorgesehen ist, als praktisch auch jetzt schon und C#-Spiele sind meines Wissens nicht gerade in Massen in Sicht.



  • Ich glaube nicht, das Konsolen das Killer-Argument sind. Es gibt mehr als genug Spiele, die ausschließlich für den PC (und vielleicht Mac) erscheinen. Auch ist es nicht furchtbar geil, Strategiespiele wie Warcraft III auf einer Konsole zu spielen. Hier muss man wirklich ganz klar differenzieren.



  • Optimizer schrieb:

    Ich glaube nicht, das Konsolen das Killer-Argument sind. Es gibt mehr als genug Spiele, die ausschließlich für den PC (und vielleicht Mac) erscheinen. Auch ist es nicht furchtbar geil, Strategiespiele wie Warcraft III auf einer Konsole zu spielen. Hier muss man wirklich ganz klar differenzieren.

    Das Problem ist nur: du nimmst dir durch die Entscheidung pro Java einfach die Möglichkeit das Spiel vernünftig zu portieren. Das schreckt schon ab. Bei C++ hast du die Möglichkeit zumindest theoretisch, praktisch gesehen wird die Portierung eine Katastrophe werden, wenn das Spiel nicht von vornherein dafür geplant wurde.

    Aber wie man an ein paar Konsolen <-> PC Spielen sieht, man kann auch 1:1 das Spiel portieren. Da kommt zwar blödsinn raus, aber verkaufen tut es sich doch.

    Weiters legt man sich gerne auf eine Infrastruktur fest, also nicht einmal Java, einmal .NET und einmal C++, sondern wenn dann sind 90% der Software in dieser Sprache. Wenn man hier auch auf Konsolen abziehlt, wird man Java eher meiden.

    Sind also durchaus valide Punkte. Vorallem weil echte Plattformunabhängigkeit bei PC <-> Konsole sowieso nicht gegeben ist. Da muss man, wenn man es richtig machen will, mehr machen als 'nur' portieren.



  • An alle die sich viel Mühe gemacht haben und Listen mit Firmen rausgesucht haben:
    Euch ist schon klar das ich vom Desktop-Bereich und PC-Spiele gesprochen habe?

    Wer ist Marktführer für Betriebsysteme im Desktopbereich und könnte daher auch u.U. Einfluss auf damit verbundene PC-Spiele und indirekt auf Entwicklungssysteme/Programmiersprachen nehmen?

    Damit wir uns nicht missverstehen. Auch ich bin für Vielfalt und wie Ihr gerade selbst festgestellt habt gibt es im Computersektor eine grosse Vielfalt an Sprachen, Firmen usw.
    Für mich ist Programmierung ein Hobby. Ich habe daher die Freiheit mir den Bereich raus zu suchen welcher mich am meisten interessiert.
    Das war (siehe erster Beitrag):
    Desktop-Bereich und PC-Spiele

    Warum mich dieser am meisten interessiert ist meine Angelegenheit und nicht euer Problem.
    Natürlich ist es immer gut über den eigenen Tellerand zu schauen, aber man kann sich nicht mit allem beschäftigen, daher...

    Der Satz "Java ist eine tote Sprache" wird von mir präzisiert in
    "Im Bereich Desktop-Bereich und PC-Spiele habe die Sprachen C# und C++ wahrscheinlich eine grössere Zukunft als Java "
    ⚠ Meinung ⚠
    Das war es was ich damit hauptsächlich meinte. Man muß eine Aussage immer im Gesamtzusammenhang sehen und der war:
    Desktop-Bereich und PC-Spiele

    Hierauf wird es wieder viele Antworten geben, aber für mich ist die Anglegenheit damit erledigt.
    Ich hoffe das Forum ist genauso engagiert wenn ich mal Fragen zum Thema Programmierung habe.

    Zu guter letzt:
    Ich sprach vom Desktop-Bereich und von PC-Spielen



  • Shade Of Mine schrieb:

    Sind also durchaus valide Punkte. Vorallem weil echte Plattformunabhängigkeit bei PC <-> Konsole sowieso nicht gegeben ist. Da muss man, wenn man es richtig machen will, mehr machen als 'nur' portieren.

    Da stimme ich dir zu. Ist dir eigentlich ein Konsolenspiel bekannt, was sich auf dem PC gut anfühlt? Ich würde sagen, die Schwierigkeiten sind nicht nur technischer Natur.
    Vielleicht ist es bei GTA Vice City noch mit am besten gelungen, aber das Spiel wäre noch um einiges geiler geworden, wenn man es nur für den PC entwickelt hätte.



  • Moonlight schrieb:

    Für mich ist Programmierung ein Hobby.

    Für die meisten hier ist es der Beruf. Daher sollte man manchmal etwas glauben was einige hier schreiben.

    Moonlight schrieb:

    "Im Bereich Desktop-Bereich und PC-Spiele habe die Sprachen C# und C++ wahrscheinlich eine grössere Zukunft als Java "

    Wenn Du jetzt noch diesen abänderst in "Im PC-Spiele Bereich haben die Sprachen C# und C++ wahrscheinlich eine grössere Zukunft als Java " ist das IMHO alles korrekt.

    Denn wie ich schon schrieb sind der wahrscheinlich größte Teil an Desktopanwendungen Unternehmenslösungen.



  • Optimizer schrieb:

    Ist dir eigentlich ein Konsolenspiel bekannt, was sich auf dem PC gut anfühlt? Ich würde sagen, die Schwierigkeiten sind nicht nur technischer Natur.

    Das Problem bei mir ist: entweder habe ich es auf einer Konsole oder auf dem PC - ich habe kaum Spiele auf PC und Konsole gespielt. Wobei einem auf dem PC oft auffällt: ah, ja. Das ist ein Konsolenspiel.

    zB Pro Evolution Soccer 3 war soetwas. Die Steuerung im Spiel war dann OK, nur an den Menüs hat man die Konsole klar erkannt.

    Genau das wird nämlich viel zu oft übersehen: Plattformunabhängig geht weniger um Technik als viel mehr um Semantik.



  • IT-Guru schrieb:

    Für die meisten hier ist es der Beruf. Daher sollte man manchmal etwas glauben was einige hier schreiben.

    Wenn Du jetzt noch diesen abänderst in "Im PC-Spiele Bereich haben die Sprachen C# und C++ wahrscheinlich eine grössere Zukunft als Java " ist das IMHO alles korrekt.

    Denn wie ich schon schrieb sind der wahrscheinlich größte Teil an Desktopanwendungen Unternehmenslösungen.

    Wenn du von deinem arroganten Trip runterkommen würdest, wärst du vielleicht auch ganz korrekt.

    Kommst du noch klar?
    Das war eine Meinung. Willst du mir vorschreiben was ich für eine Meinung haben soll?



  • Moonlight schrieb:

    Das war eine Meinung. Willst du mir vorschreiben was ich für eine Meinung haben soll?

    Meinung kannst du haben welche auch immer du willst.
    Aber du solltest dich Tatsachen nicht verschließen.
    Und eine Tatsache ist, dass Java auf dem Desktop Bereich durchaus stark vertreten ist. Zwar weniger in herkömmlichen Anwendungen dafür aber, wie bereits genannt, bei Unternehmenslösungen.

    Du bekommst davon natürlich nicht viel zu sehen, aber das heißt nicht, dass da kein Markt ist, sondern du nicht die Zielgruppe bist.

    Vielleicht kommt IT Guru dir arrogant vor (mir nicht), aber das ändert nichts daran, dass er recht hat.

    Du kannst natürlich eine andere Meinung haben, keine Frage, das ist dein gutes Recht. Aber gerade im Hobby Bereich ist Java ziemlich ideal. Denn es ist einfach, hat eine umfangreiche Library und es tut nicht weh, wenn man von heute auf morgen das Windows durch Linux ersetzt, weil sich für das Hobby nichts ändert und man keinen Code wegschmeissen muss 😉



  • Moonlight schrieb:

    Wer ist Marktführer für Betriebsysteme im Desktopbereich und könnte daher auch u.U. Einfluss auf damit verbundene PC-Spiele und indirekt auf Entwicklungssysteme/Programmiersprachen nehmen?

    Ok, C# ist jetzt schon so 2 Jahre oder so draußen. Mal gucken, was die Jobbörsen dazu inzwischen sagen. MS setzt nun wirklich so manchen Hebel in Bewegung, dass mehr C# und .NET allgemein genutzt wird. Wenn das also etwas ausmacht, dann sollte man es langsam mal sehen.

    http://www.gulp.de/cgi-gulp/trendneu.exe/do_refresh?2005051301062039807199707031394533939

    Also für das letzte Jahr:

    Java-Fähigkeiten werden bei 14,7% der Projektanfragen bei Gulp benötigt.
    C++-Fähigkeiten werden bei 7,3% der Projektanfragen bei Gulp benötigt.
    C#-Fähigkeiten werden bei 1,8% der Projektanfragen bei Gulp benötigt.

    Zudem ist nicht ersichtlich, dass ein positiver Trend bei C# vorhanden wäre. Mit anderen Worten: In deiner Aussage steckte nur blinder Glaube und die Fakten sprechen eine andere Sprache.

    Ok, man mag argumentieren, dass Gulp nicht die allgemeine Realität in Deutschland wiederspiegelt, weil es da nur um Freiberufler geht. Trotzdem ist das doch ein sehr interessanter Anhaltspunkt bezüglich der am Markt gefragten Fähigkeiten.

    C# schneidet übrigens bei einigen ausländischen Jobstatistiken besser ab, aber immer noch deutlich hinter Java und C++. Was gefragt ist, entscheidet also offensichtlich nicht nur MS. Java ist einige Jahre vor C# erschienen und hat gegenüber C# deshalb einen enormen Vorsprung bezüglich vorhandenem Code, vorhandenen Fähigkeiten, vorhandener Infrastruktur usw.! In vielen Universitäten wird den Studenten die Objektorientierung anhand von Java beigebracht und C++ findet man auch oft in den Lehrplänen. C# findet man bei Universitäten allerdings eher weniger. Das heißt, dass auch in Zukunft nicht so viel C# Know-How vorhanden sein wird. Mit anderen Worten: MS hat da eine Sprache auf den Markt gebracht, die zwar geringe Verbesserungen gegenüber Java bietet (wobei auch diverse Verschlechterungen dabei sind, frag mal Optimizer), die sich aber im Großen und Ganzen nicht sehr stark von Java unterscheidet. Warum sollte eine Firma nun auf C# setzen? Weil MS sagt, dass das die Zukunft ist? Oder vielleicht doch nur, weil die Firma einfach zu viel Geld hat und es sich einfach so leisten möchte, alten Code wegzuwerfen, Mitarbeiter auf Schulungen zu schicken usw.? Java hatte damals für viele Unternehmen einen wirklichen Mehrwert und hat sich deshalb durchgesetzt. C# hat nur den MS-Stempel auf der Verpackung. Glaubst du, die Firmen sind wegen der Marke blind genug, es einzusetzen, wenn es um ihr Geld geht?

    Das erscheint vor allem in einer Zeit fragwürdig, in der Alternativen zu MS-Produkten immer populärer werden. Sicher: MS hat in diversen Gebieten einen enormen Marktanteil, ja teilweise sogar eine Quasimonopolstellung. Die Frage ist aber, wie lange das noch so ist. Der Firefox-Browser hat AFAIK in den letzten 9 Monaten 6% Marktanteil hinzugewonnen, mit anderen Worten: Im IT-Bereich sind relativ schnelle Entwicklungen möglich und innerhalb von wenigen Jahren kann sich etwas neues etablieren. Auch andere alternative Produkte sind sehr populär. Wenn du in diesem Forum eine Umfrage startest, wer alles OpenOffice einsetzt, dann wärst du vermutlich überrascht, wie hoch dieser Anteil ist. Auch der Anteil der Linux-Nutzer liegt in diesem Forum AFAIK über 30%. Zugegeben: Hier sind Leute, die sich viel mit solchen Dingen beschäftigen und deshalb spiegelt das nicht die Allgemeinheit wieder. Aber man könnte soetwas auch durchaus als Vorläufer eines Trends bewerten. Vor 5 Jahren haben viel weniger Leute Alternativen eingesetzt. Aus meiner Sicht ist es zumindest nicht so sicher, dass MS auch in Zukunft noch die Rolle spielt, die es jetzt spielt. Vielleicht ist es da gar nicht so gut, nur für Windows zu entwickeln, wenn man doch genauso leicht auch weitere Plattformen unterstützen könnte. Die Frage ist, was man von der jeweiligen Entscheidung hat und aus meiner Sicht ist das eine Entscheidung "bessere Integration vs. mehr unterstützte Plattformen". Wenn man Java und C# betrachtet, dann bietet Java momentan mehr unterstützte Plattformen, während C# eine bessere Integration unter Windows liefert (mit der nächsten Javaversion soll sich übrigens einiges bezüglich der Integration tun).

    Hmmm... ich bin wohl wiedermal vom Thema abgekommen, sorry(CNR).



  • Ich denke, dass man erst nach Longhorn richtig sehen wird wie sich .NET entwickelt. Das wird der Knackpunkt werden, so denke ich zumindest.

    @Gregor@Home

    Firmen werden nicht von heute auf morgen von Java zu C# wechseln. Aber es gibt einige Firmen, die von Java zu C# wechseln wollen. Es werden auch einige Firmen anders über .NET denken, wenn die 1. große dt. Firma ihr System auf .NET umstellt.


Anmelden zum Antworten