Haben die alten Widgets ausgesorgt?



  • Mechanics schrieb:

    Irgendein größeres bekanntes Programm in Java? Außer Eclipse und Netbeans fällt mir eigentlich überhaupt nichts ein, glaub auch nicht, dass da noch jemals was kommt.

    TV-Browser
    Project Zomboid (gilt AFAIK nur für die Linux und Mac Version)
    Minecraft
    das ganze Android gedöns

    bei Individualsoftware die irgendwo in Firmen laufen muss, dürfte diese Anzahl noch einmal wesentlich größer sein.



  • Das ist alles Kleinmist, außer vielleicht Android, aber bei dem Projekt ist auch einiges an C und C++ dabei.



  • Mechanics schrieb:

    Das ist alles Kleinmist, außer vielleicht Android, aber bei dem Projekt ist auch einiges an C und C++ dabei.

    Das Problem ist dann aber, dass Großprojekte nicht von heute auf Morgen entstehen,
    sondern lange gewachsen sind.

    Großprojekte wie z.B. Libre Office sind über 20 Jahre alt, die ersetzt man nicht einfach mal mit einem vergleichbaren Java Projekt und wenn der Bedarf durch alte Großprojekte gedeckt ist, dann gibt es auch keinen motivierenden Grund dafür, Alternativen in Java neu aufzusetzen.

    So fair muss man bei diesem Vergleich also schon sein.

    Deswegen nannte ich TV-Browser und Minecraft, denn die haben keine Altsoftware ersetzt, sondern eine noch vorhandene Lücke gefüllt.
    Und da wurde dann für Java und nicht für C++ entschieden.
    Das hat also schon etwas zu sagen.



  • Nur weil nicht jedes Mainstream-Desktop Programm in Java geschrieben ist sagt das mMn. nichts über die die Signifikanz der Sprache aus.
    Unsere Projekte sind groß genug und viele in Java. Allerdings kommt mit denen niemals ein Otto-Normal-User in Berührung.



  • Auskenner schrieb:

    Großprojekte wie z.B. Libre Office sind über 20 Jahre alt, die ersetzt man nicht einfach mal mit einem vergleichbaren Java Projekt und wenn der Bedarf durch alte Großprojekte gedeckt ist, dann gibt es auch keinen motivierenden Grund dafür, Alternativen in Java neu aufzusetzen.

    Ich weiß. Aber es gibt anscheinend auch keinen motivierenden Grund, neue Großprojekte in Java aufzusetzen. An solche Diskussionen kann ich mich persönlich seit mindestens 15 Jahren erinnern. Und in den letzten 15 Jahren hat sich nichts grundlegend zu Gunsten von Java verändert. Im Gegenteil, der Java Hype ist sehr stark abgeflacht.
    Und Minecraft hat man nicht in Java geschrieben, weil Java so toll wäre. Der Typ konnte halt nichts anderes und hat es damit in paar Monaten hingerotzt. Das ist jetzt wirklich kein Referenzprojekt.

    Ethon schrieb:

    Nur weil nicht jedes Mainstream-Desktop Programm in Java geschrieben ist sagt das mMn. nichts über die die Signifikanz der Sprache aus.
    Unsere Projekte sind groß genug und viele in Java. Allerdings kommt mit denen niemals ein Otto-Normal-User in Berührung.

    Nicht "nicht jedes", sondern kein einziges. Und die Diskussionen wurden wie gesagt schon vor 15 Jahren genauso geführt. Damals gabs einen viel größeren Java Hype und ganz neu war das auch nicht.
    Über die Relevanz der Sprache hab ich nicht direkt was gesagt. Du brauchst Java nicht zu verteidigen, ich habe wie gesagt auch lang genug mit Java und C# gearbeitet und habe damit kein Problem. Ich kenne diese "Individual Software" Branche ganz gut, und auch die Software, die da geschrieben wird. Ja, manchmal sind diese Projekte sehr groß und ab und zu auch teilweise interessant. Aber irgendwo auch sehr ähnlich, zu viele Standardteile, bei denen man nicht viel überlegen muss usw. Mir haben vier Jahre völlig gereicht, will damit erstmal nichts mehr zu tun haben.
    Darauf wollte ich jetzt aber auch nicht unbedingt hinaus. NiceJava kennt anscheinend einfach nichts anderes, und den will ich entschieden widersprechen. Es gibt sehr wohl sehr viele sehr große C++ Projekte und das ist keine "Ausnahme".



  • Mechanics schrieb:

    Auskenner schrieb:

    Großprojekte wie z.B. Libre Office sind über 20 Jahre alt, die ersetzt man nicht einfach mal mit einem vergleichbaren Java Projekt und wenn der Bedarf durch alte Großprojekte gedeckt ist, dann gibt es auch keinen motivierenden Grund dafür, Alternativen in Java neu aufzusetzen.

    Ich weiß. Aber es gibt anscheinend auch keinen motivierenden Grund, neue Großprojekte in Java aufzusetzen. An solche Diskussionen kann ich mich persönlich seit mindestens 15 Jahren erinnern.

    Großprojekte gibt es schon noch, es ist aber so wie Ethon gesagt hat.
    Der Normaluser wird die nicht zu Gesicht bekommen, es sei denn er arbeitet irgendwo, wo sie eingestezt werden.

    Ich bezog mich auf den einfachen Desktopuser Zuhause und da ist das dann halt so, dass es hier bereits gewachsene Projekte in anderen Sprachen meist gibt und deswegen keine neuen in Java entstehen, weil es schlichtweg nicht notwendig ist.

    Und in den letzten 15 Jahren hat sich nichts grundlegend zu Gunsten von Java verändert. Im Gegenteil, der Java Hype ist sehr stark abgeflacht.

    Der Hype ist abgeflacht, aber Java ist zur Normalität geworden.

    Und Minecraft hat man nicht in Java geschrieben, weil Java so toll wäre. Der Typ konnte halt nichts anderes und hat es damit in paar Monaten hingerotzt. Das ist jetzt wirklich kein Referenzprojekt.

    AFAIK entwickelte Notch schon länger Spiele, aber das war sein erstes dass er selbst entwickelte und nicht als Arbeitnehmer in irgendeiner Firma die ihm nicht gehört, wie es zuvor eben war.
    Ich gehe also davon aus, dass er mehr Sprachen als Java kennt. Aber es ist nunmal so, wie es hier im Thread herauszulesen ist.
    Wenn man ein sehr kleines Team hat und möglichst ohne großen Aufwand ans Ziel kommen will, dann nimmt einem Java so viel Arbeit ab, dass man mit seinem Projekt fertig werden kann.
    Deswegen hat er Java für Minecraft genommen.
    Er hätte auch C++ nehmen können, aber dann hätte er dafür wesentlich länger gebraucht. Insbesondere als 1 Mann Projekt, wie das am Anfang eben auch war.



  • Auskenner schrieb:

    Er hätte auch C++ nehmen können, aber dann hätte er dafür wesentlich länger gebraucht. Insbesondere als 1 Mann Projekt, wie das am Anfang eben auch war.

    Nö. Minecraft hat so viele Performaceprobleme, daß es schon nicht mehr ulkig, sondern bloß noch traurig ist. Die wenigstens so weit zu umschiffen, daß es halbwegs spielbar ist, hat den armen Mann sicher mehr gekostet. Auf meinem Rechner gehts immernochnicht. Der verfummelt die Mauspointerposition (vermute, er setzt immer wieder in die Mitte und bei jeder Mausmessage nimmt er die Differenz und setzt den wieder in die Mitte) und das klappt bei mir einfach nicht. Irgendwie ist er an der Java-Wand angekommen: Maschine zu weit weg, er kann die einfachsten Bugfixes nicht machen, weil er nur auf der VM dreht.
    Ja, man hat in Java sehr schnell einen grafischen Pythagorasrechner zusammen. Aber am Ende kanns Stocken. Hab mal 7 oder so Monate gearbeitet für 1 Monat Lohn, weils in Java nicht möglich war.

    Minecraft selber ist ein Kackspiel. Aber es ist durch Java unbeabsichtigt quasi Quelloffen und die Mods und Freeshards haben es grbracht. Klar mag man mal ein Atomkraftwerk bauen. 😃



  • Performance von Java für Dinge wie Spiele sollte sich gut verbessern wenn endlich Value-Typen kommen. Keine Ahnung warum man die jetzt erst bei C# klaut.
    Eine Katastrophe für einen Vektor den Heap bemühen zu müssen.



  • Zu der Minecraft Diskussion wollte ich mal diesen Link anbringen: http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1272953-optifine-hd-a4-fps-boost-hd-textures-aa-af-and?page=2125#c43757

    In C++ haette man die Positionsdaten schoen uebersichtlich in Objekte und auch noch auf dem Stack speichern koennen und die Geschwindigkeit gehabt. Es wundert mich, dass das nicht optimiert werden kann, denn vor ein paar Jahren habe ich schon gelesen, dass Java Objekte mit beschraenkter Lebensdauer auf den Stack verschieben kann.



  • Marthog schrieb:

    denn vor ein paar Jahren habe ich schon gelesen, dass Java Objekte mit beschraenkter Lebensdauer auf den Stack verschieben kann.

    Ich hab glaub ich 1997 gelesen, daß Java prinzipiell so schnell wie C IST und es nur noch ein paar Monate dauert. Kann auch 1998 gewesen sein.
    Dabei ist mir das fast Schnuppe, so schnell wie die Rechner heute sind. Als Endanwender muss ich halt den Windows-Rechner anmachen, um was zu benutzen, was Java braucht. Das mache ich ungern.



  • volkard schrieb:

    Dabei ist mir das fast Schnuppe, so schnell wie die Rechner heute sind.

    Aus irgendeinem Grund sind die paar wenigen Desktop Javaprogramme, die ich kenne, immer noch lahm. Eclipse geht mittlerweile tatsächlich halbwegs, mit den modernsten Rechnern, aber trotzdem machts keinen Spass, das alles zu bedienen. Kann sein, dass es mit JavaFx besser geworden ist, da hab ich noch keine Real Life Anwendungen damit gesehen.



  • Großprojekte sind doch eher Nischen. Das ist wie beim Handwerk, die ganzen kleinen bis mittleren Klitschen machen den Löwenanteil aus. Android hat z.B einen Marktanteil von 85% in Deutschland und was meiste in was die meisten Apps programmiert sind? Das ist eine große Industrie mittlerweile geworden. Das Entwickler-Tagesgeschäft besteht doch zum großen Teil aus Programmen die wirklich niemand so im Internet runterladen kann, sondern die individuell bei ein paar Kunden läuft. Ich persönlich kenne ein BusinessBasic und eine Hostel-Verwaltungssoftware in Delphi. Das sind alles kleine Firmen mit 1-5 Mann, aber ich denke schon, dass dies eher der Alltag ist, als große Sachen wie ein Firefox, Photoshop usw. und Firmen in denen gleich 50 Leute an einem Projekt arbeiten.

    Dass Java nur auf Windows läuft ist Unsinn, hier unter OSX läuft es auch wunderbar(wenn man nicht gerade auf Mavericks oder Yosemite geupdatet hat^^) Zumal man jede Javaapp mit zwei Klicks mit einem ausführbaren Starter versehen kann und die JRE einfach mit ins Projekt einkopiert wird, das frisst ja alles heute kein Brot mehr.

    Zu den geilsten Javaprogrammen, der letzten Zeit gehört für mich Bitwig. Da stinkt Cubase richtig gegen ab in meinen Augen.

    Welche Individual-Software muss denn schon so nah an der Maschine dran sein, dass Java nicht reichen würde, außer irgendein Grafikgedöns? Was nun wirklich kein Tagesgeschäft ist.

    Wenn ich eine neue IT-Firma aufmache und Projekt-X an den Kunden bringen will, werde ich dann C++ als erstes in Betracht ziehen, oder werde ich nicht eher erst einmal schauen, ob das nicht mit einer weniger anspruchsvollen Programmiersprache umgesetzt werden kann?



  • Was ist denn an der Arbeit mit C++ besser, als an Java und C#? Mal abgesehen von der Performance und Systemnähe.



  • C++ ist imho einfach eine sehr lustige Sprache. Da macht mir das Programmieren Spaß.
    Java finde ich stumpf, bin aber auch deutlich produktiver damit.



  • NiceJava schrieb:

    Zu den geilsten Javaprogrammen, der letzten Zeit gehört für mich Bitwig. Da stinkt Cubase richtig gegen ab in meinen Augen.

    Das mag auch damit zusammenhängen, dass Bitwig seine eigene Java-Runtime an Bord hat, die für die in Java programmierte Oberfläche der Suite zuständig zeichnet. Alle Oberflächenelemente reagieren gefühlt ohne jede Verzögerung. Die eigentliche Signalverarbeitung – man merkt ihr an, dass sie sorgfältig für Linux optimiert wurde – übernimmt nicht etwa Java-Bytecode, sondern ein klassisches Binary.

    http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2014/06/Bitwig-Studio-macht-Linux-zur-Musikworkstation

    Wenn ich was in C++ mache, fühle ich mich ehrlich gesagt 20-30 Jahre zurückversetzt. Nicht nur wegen Sprachelemente wie Header, sondern auch wegen dem rückständigem IDE-Support. (Intelligente) Codevervollständigung und Refactoring geht nirgends besser als in Java (und vll. noch C#). Auch die Libraries sind i. d. R. vielfältiger und moderner als in C++. Sowas wie Akka gab es für Scala/Java deutlich früher als das jetzige Prototyp in C++. Dafür ist die C++ Variante performanter...

    Ich hätte gerne die Performance von C++ und sowas modernes wie Scala. Ich denke rust ist so ein Kandidat. Wenn Apples Swift offen wäre, wäre es auch für die Welt interessant.

    L. G.,
    IBV



  • Artchi schrieb:

    XML/XAML ist jedenfalls nicht Human-readable.

    Es ist genauso lesbar/unlesbar wie HTML, und damit haben viele kein Problem. Des weiteren ist XAML kürzer als Sourcecode und kann sogar von der Implementierung unabhängig umgesetzt werden.

    Artchi schrieb:

    Ich kann an der XAML/FXML/HTML/XHTML-Seuche nichts tolles finden, wenn ich da als Mensch drauf schauen soll. Vorallem wenn bei XAML auch noch Code mit versteckt werden kann...

    Man kann Code einbetten, man muss es aber nicht (Es sei den du meinst mit verstecken das man den Code nicht sehen kann, das wäre aber nur typisch für Abstraktionsschichten - in meinem Fall ist der Code weitgehend* außerhalb der UI und unabhängig von der Oberfläche (ob nun WPF, Xamarin.Forms [Android, WP, iOS], WinRT...).

    * Ausnahmen sind ausschließlich die Initialisierung (Bootstrapper) und Code der rein von der UI abhängig ist, den bastle ich aber auch nicht in den XAML-Code.



  • Vor allem kann man doch das XML nutzen oder halt nicht. Man kann in FXML sogar Java direkt einbinden, oder auch Javascript. Man kann komplett auf FXML verzichten und es per Hand im Code mache, oder auch hier ein Teil XML ein Teil durch den Code generieren lassen oder oder oder. Man kann Propertys direkt mit Variablen im Java-Source-Code binden, oder es eben lassen und und und. Bei C++ wird doch immer hervorgehoben, dass man soviel Möglichkeiten hat eine Sache zu erledigen. Und wenn ein Teil in Java nicht schnell genug ist, dann lagert man diesen Teil halt in ein kleines Native-Binary aus. Wenn man nicht will, dass der Kunde was von Java mitbekommt, dann gibt man die JRE mit und wrappt alles und packt das in einen Installer. Der Kunde hat dann eine EXE als Installer und eine EXE um das Programm zu starten und muss kein Java installiert haben, aber es läuft. Und wenn mal der eine oder andere Entwickler, der noch C++ kann, weg stirbt, dann findet man schwer Ersatz. Bei Java kannst du sogar irgendeinen Entwickler nehmen und ihm in einem halben Jahr Java einprügeln, bei C++ ist das nicht möglich, da braucht es Jahrelange Erfahrung bis da mal jemand wirklich einsatzbereit ist.



  • NiceJava schrieb:

    Bei Java kannst du sogar irgendeinen Entwickler nehmen und ihm in einem halben Jahr Java einprügeln, bei C++ ist das nicht möglich, da braucht es Jahrelange Erfahrung bis da mal jemand wirklich einsatzbereit ist.

    na doch.

    Wieso auch nicht, was der neuling in einem halben jahr in java lernt hat er in einem halben jahr auch in C++ gelernt, nur dass er bei C++ sogar noch den Vorteil hat das OOP-Geschiss ignorieren zu können.



  • NiceJava schrieb:

    Bei Java kannst du sogar irgendeinen Entwickler nehmen und ihm in einem halben Jahr Java einprügeln, bei C++ ist das nicht möglich, da braucht es Jahrelange Erfahrung bis da mal jemand wirklich einsatzbereit ist.

    Was?! 😮 Wie kommst du darauf?! Was macht C++ so komplex, dass man Jahre braucht bis man einsatzbereit?



  • NiceJava schrieb:

    Bei Java kannst du sogar irgendeinen Entwickler nehmen und ihm in einem halben Jahr Java einprügeln,...

    Stimmt, dies ist auch ein wesentlicher Grund für die vielen tollen Anwendungen, die besonders träge sind oder gerne NullPointerExceptions produzieren...

    NiceJava schrieb:

    ...bei C++ ist das nicht möglich, da braucht es Jahrelange Erfahrung bis da mal jemand wirklich einsatzbereit ist.

    Ich habe bislang kaum eine Sprache erlebt wo ein wirklich gutes Ergebnis von Personen kommt, die mal eben eine Sprache gelernt haben. C++ mag komplex sein (selbst wenn man Templates nur nutzt und nicht selbst erstellt), doch man lernt mit C++ wenigstens auch etwas Interna, die einen Entwickler wenigstens weiterhelfen wenn er verwundert in anderen Sprachen so etwas wie NullPointerExceptions bekommt...


Anmelden zum Antworten