Habt ihr eine Laufzeitumgebung (VM/.Net) installiert?



  • kingruedi schrieb:

    f) weil die Leute nicht wissen wie cool Templates sind

    Brainfuck und Perl-Einzeiler sind auch cool

    a) jo, leider arbeiten die alle bei Microsoft

    Lies mal das Unix-Haters' Handbook 😉

    b) für Java Programmierer sind die Programme idr "unabhängig" 🙂
    c) weil für die meisten Leute nur C++ und Java existiert (vielleicht noch PHP, Perl oder mittlerweile C# ;))

    Naja, es ging irgendwie um Informatiker, und nicht die meisten Leute.



  • Ich habe keine Laufzeitumgebung installiert.

    DB2 hat die Java-Kacke mitinstalliert (weiss aber nicht welche Version), weil das DB2-Controlcenter in Java geschrieben ist. Das reicht mir um um Java-Programme einen grossen Bogen zu machen...



  • zu f): Wart mal Java 1.5 ab. Java ist noch etwas jünger wie C++, es erweitert auch erst noch seinen Funktionsumfang. Ich glaube, C++ hat nicht von Anfang an Templates gehabt. :p
    Und dein e) überzeugt mich übrigens nicht.



  • Die Generics in Java 1.5 sind nur syntaktischer Zucker für das Casting- und Boxing-Spiel, was z.Z. in Java üblich ist. Mit C++ Templates kann man das nicht vergleichen.

    Ich glaube, C++ hat nicht von Anfang an Templates gehabt.

    Das Argument kann man wohl kaum gelten lassen. C++ hat klein angefangen und sich entwickelt. Templates waren zwar von Anfang an geplant, aber erst nachdem der Rest einigermassen stand, ging die Entwicklung an die Templates.
    Sun dagegen hat sich zu Anfang aktiv dagegen entschieden, Templates einzubauen, obwohl sie die technischen Möglichkeiten definitiv gehabt hätten.



  • Hi, ich habe das .NET-Framework in der aktuellen Version 1.1 installiert. Dafür gibts vier Gründe:

    • Ich hab XP, da ist es sowieso dabei 😉
    • Ich verwende das TablePC-SDK, welches das .NET-Framework benötigt
    • Ich verwende gelegentlich Elemente aus der neuen GDI+, welche erst ab dem .NET-Framework verfügbar sind.
    • Viele Beispielsourcen, grad zum TabletPC, sind in C# oder VB.NET geschrieben.

    VM hab ich vielleicht von Opera aus installiert, weiss ich aber nciht sicher ...



  • dEUs schrieb:

    Ich hab XP, da ist es sowieso dabei

    Das stimmt zum Glück nicht.



  • Ich habe Blackdown JRE/ JDK 1.4.1 installiert, Java im Browser (Galeon) jedoch aufgrund des Speicherverbrauchs diverser unnützer Applets deaktiviert. (Musste schon einige Java-Programme schreiben da hier in Wien an der TU teils leider Java für die obligatorische "Einführung in die Programmierung"-VOs benutzt wird.)
    dotNET-Runtime habe ich keine installiert da ich einerseits keine .NET-Programme verwende und andererseits die Implementierungen für GNU/ Linux bis jetzt - wie kingruedi schon sagte - nicht vollständig genug sind.

    Optimizer schrieb:

    - Weil Java/C# produktiver ist als C++ (das glaubt ihr natürlich nicht, aber ich habe es erst heute wieder festgestellt.)
    - Weil Java/C# schöner ist als C++ (man schaue sich z.B. DirectX Programmierung an)
    - Weil Java/C# sicherer ist als C++
    - Weil wahrscheinlich 95% des Codes einer Anwendung nicht so performancekritisch ist, dass man da unbedingt C++ nehmen muss
    - Weil es für die beiden Sprachen _wesentlich_ schönere, objektorientiertere, ausführlichere Libs gibt.
    - Weil ich Garbage Collecting liebe

    • Das sind die meisten Sprachen mit denen man auf einem höheren Level programmiert; so richtig toll fand ich allerdings diesbezüglich weder Java noch C#.
    • Igitt, das kannst Du doch nicht ernst meinen, oder? Ich meine die Syntax von Java und C# ist mindestens genauso umständlich wie die von C++ wobei mein Sinn für Ästhetik immer noch C++ lieber mag als Java & Co., aber das ist wohl Geschmackssache.
      Letztlich ist die Syntax dieser Sprachen aber der von C++ viel zu ähnlich als dass man sie als schöner bezeichnen könnte; sieh dir mal Ruby und Python an, sowas ist schön.
    • Auch nur so sicher wie die verwendete Runtime Environment.
    • Aber wie gesagt: Mit Java und C# steigt die Produktivität nicht so stark an dass sie einen echten Vorteil in der Entwicklung bieten würden, es gibt massig Sprachen die das sehr wohl täten.
    • Für C++ gibts auch einige schöne Libs und massig hässliche, kein echter Unterschied hier. (btw, was verstehst Du unter "ausführlicher"? Was kann ich mit C++ & ein paar Libs nicht was mit Java und C# schon geht?)
    • Bekommst Du in C++ mit externen Libs und haben auch Python und [INSERT YOUR FAVOURITE PROGRAMMING LANGUAGE HERE].

    Außerdem muckt es mich an, C++ Code von anderen lesen zu müssen, wo dann vor jeder Variable ein g_p_m_WHATEVER_INTBlaVariablenName steht. 🙄

    Und ich hasse Java-Code bei dem Klassen Memberfunktionen namens .add() haben statt einen überladenen operator+(). 🙄



  • Jo, das ist schlecht. 😃
    Aber C# kann das.



  • Also ich hab 2 Windows Installationen, eine wo ich alles mal testen kann (.NET) und eine, wo nur ausgewählte Profisoftware draufkommt. 😃



  • Optimizer schrieb:

    Jo, das ist schlecht. 😃
    Aber C# kann das.

    Ich weiß, ich musste mal für einen Job ein paar Monate C# programmieren. (Ich war jung und brauchte das Geld.(TM))
    Ich mag C# trotzdem nicht, ich sehe nach wie vor keine guten Gründe eine proprietäre Programmiersprache zu verwenden die mich noch dazu an eine Plattform bindet wenn sie nichts bietet was eine andere Programmiersprache nicht könnte. (Naja, mal von Zeiten abgesehen in denen ich schlecht bei Kasse bin und das Abhilfe verschaffen kann. 😉 )



  • nman schrieb:

    Und ich hasse Java-Code bei dem Klassen Memberfunktionen namens .add() haben statt einen überladenen operator+(). 🙄

    Wie stellst du dir das vor?

    myList + "Hallo";

    statt

    myList.add("Hallo");

    ??? 😕

    ...also ich finde das mit "add" schöner. 😕



  • Das ist Geschmackssache, aber spätestens wenn die Klasse zB myComplex oä heißt ist die add()-Variante einfach nur furchtbar ekelhaft.



  • Was für ne Zeit?



  • Hab beides nicht. Wozu auch, wenn ich's nicht brauch (ich programmiere größtenteils in C).

    Ach ja, nochwas zu Java: Ick find's scheise, dass die main da inner Klasse drinnesteckt. Man kann's auch übertreiben...



  • Gregor schrieb:

    nman schrieb:

    Und ich hasse Java-Code bei dem Klassen Memberfunktionen namens .add() haben statt einen überladenen operator+(). 🙄

    Wie stellst du dir das vor?

    myList + "Hallo";

    statt

    myList.add("Hallo");

    Kein Mensch braucht myList + "Hallo" oder myMenu + FileMenu.
    Operator-Überladung ist nicht primär als Obfuscator-Ersatz gedacht 🙂
    Es geht mehr um "natürliche" Anwdnungsgebiete. Also Gebiete wo man bestimmte Operatoren intuitiv verwendet oder wo es anerkannte Konventionen gibt (wie z.B. im mathematischen Bereich).
    James Gosling hat schon 2000 (?) sein Bedauern darüber ausgesprochen, dass Operator-Überladung in Java so strikt abgelehnt wird. Er ist (oder wahr?) der Meinung, dass Java damit unnötig die Community der Leute die Scientific-Computing betreiben vergrault. Die stehen nämlich wohl voll darauf ihre Mathematik in einer der Mathematik ähnlichen Sprache auszudrücken.

    Wenn ich mir allerdings so die Entwicklung von Java anschaue, schätze ich mal, dass Op-Überladung in den nächsten 5 Jahren dazu kommt. Und wenn dann irgendwann mal keiner so genau hinschaut, wird heimlich auch noch MI (in irgendeiner Form) hinzugefügt.



  • HumeSikkins schrieb:

    Und wenn dann irgendwann mal keiner so genau hinschaut, wird heimlich auch noch MI (in irgendeiner Form) hinzugefügt.

    Man kann MI heutzutage auch schon über Interfaces etc. zusammenbasteln. Naja, toll finde ich das aber nicht. Der Punkt der mich immer am meisten an Java gestört hat wurde auch schon angesprochen: Die Möglichkeit Operatoren zu überladen fehlt! Klassen wie BigInteger und BigDecimal sind zwar schön (wünsche ich mir ganz heimlich auch manchmal in der STL ;)) aber kaum zu benutzen, weil man immer add, subtract... aufrufen muss. Dazu kommt noch, dass die Klasse für jeden scheiß einen Konstruktor hat, aber nicht für die Ganzzahltypen wie int, long etc. Auch die vermeintliche Notlösung mit toString stinkt. Was nützt mir ein toString wenn ich nicht auch irgendwie die Möglichkeit habe ein toXYZ zu definieren? Vor allem gleichen die Java immer mehr an die Möglichkeiten von C++ an. Sun hätte wohl eher eine VM für C++ schreiben sollen 😃 .



  • Das toString() rockt doch. Das finde ich mal wirklich ne geniale Idee. 🙂

    Rational myRational = new Rational(17, 6);
    System.out.println("Wert des Bruches: " + myRational);
    

    Also zum Thema Operatoren überladen, ich finde es auch schade, dass das in Java fehlt, weil es für manche Anwendungsgebiete einfach natürlich ist.
    Was ich auch vermisse ist die Möglichkeit, primitive Datentypen als Referenz zu übergeben. C# bietet das und ich verwette wirklich meine Hand darauf, dass Sun das in Java auch noch einbaut. 😋

    Zum Thema "Das wünsche ich mir in der STL" fällt mir einiges ein:
    - String-Klasse wie in Java (würde aber nichts nützen, weil ein "Text" immer noch ein char* bleibt, noch dazu ANSI 🙄 )
    - BigInteger und BigDecimal
    - Socket
    - Form (<- aus C#, ka wie das jetzt in Java heisst)
    - Arrays wie in Java 🙄 Das sollte man eigentlich fast schon in die Sprache selber integrieren und wenns so unglaublich performancekritisch ist, dann halt im Release ohne Indexprüfung. Aber so ein Array als Parameter übergeben rockt in Java/C# einfach hart, da geht mir std::vector irgendwie auf die nerven mit seinem .at() 😋 Ihr wisst schon dass viele Sicherheitslücken in Programmen und Betriebssystemen auf Arrays, insbesondere char[] zurückzuführen sind?

    WebFritzi schrieb:

    Hab beides nicht. Wozu auch, wenn ich's nicht brauch (ich programmiere größtenteils in C).

    Ach ja, nochwas zu Java: Ick find's scheise, dass die main da inner Klasse drinnesteckt. Man kann's auch übertreiben...

    Ich finds überhaupt nicht scheiße, weil das halt einfach die MainClass ist - PUNKT. Ich find daran gar nichts, aber auch überhaupt nichts schlecht, dass Code ausschließlich in Klassen steht.

    Ich finde, jeder sollte sich seine eigene Programmiersprache schreiben. 😉



  • Optimizer schrieb:

    Was ich auch vermisse ist die Möglichkeit, primitive Datentypen als Referenz zu übergeben.

    Also, in C++ fällt mir nur eine Sache ein, wo man das braucht, bei der Überladung vom []-Operator. Ansonsten schafft man sich doch nur Probleme, wenn überall im Programm Referenzen auf die internen Daten einer Klasse rumliegen...

    Aber so ein Array als Parameter übergeben rockt in Java/C# einfach hart,

    In welcher Sprache kann man keine Arrays als Parameter übergeben? Was meinst du?

    da geht mir std::vector irgendwie auf die nerven mit seinem .at() 😋 Ihr wisst schon dass viele Sicherheitslücken in Programmen und Betriebssystemen auf Arrays, insbesondere char[] zurückzuführen sind?

    Kann ja das arme char[] nichts für, wenn die Programmierer zu unfähig sind. Nicht dass ich vor Fehlern gefeit bin, aber diese gefürchteten Indexüberschreitungen passieren mir eigentlich gar nicht. Und in den seltensten Fällen braucht man auch noch eine Überprüfung bei *jedem* Zugriff.



  • Optimizer schrieb:

    Ihr wisst schon dass viele Sicherheitslücken in Programmen und Betriebssystemen auf Arrays, insbesondere char[] zurückzuführen sind?

    Nein, das hast Du gerade frisch erfunden; hauptsächlich liegt es am Programmierer. C verlangt da wesentlich mehr Erfahrung als Java(TM), und etwas konsequenteres Arbeiten.



  • Nein, das hab ich nicht erfunden. Freilich kann der Programmierer *wenn er dran denkt* das verhindern. Aber offenbar kommt es ja oft genug vor, dass er nicht daran denkt. Stichwort Buffer Overflow

    DrGreenthumb schrieb:

    In welcher Sprache kann man keine Arrays als Parameter übergeben? Was meinst du?

    Ich meine sowas:

    void foo(int[][] array)
    {
    }
    
    void foo(int[] array)
    {
        for (int i = 0; i < array.length; ++i)
            array[i] = i%865 * 874356;
    }
    

    Das finde ich echt godlike.


Anmelden zum Antworten