Welche Sprache



  • asc schrieb:

    Ich halte C# und .Net für durchdachter als Java ...

    das merkt man ja schon daran, dass C# pointer und ein 'unsafe' keyword hat.
    🙂



  • berniebutt schrieb:

    K&R kamen aber von ASSEMBLER.

    Schonmal von B und BCPL gehört? Mal ganz davon abgesehen, dass in den 60er Jahren so unbedeutende Sachen wie ALGOL passiert sind.

    Zu dem Rest deines Postings kann ich ohne Recherche nichts sagen, vermute aber nichts gutes :p



  • +fricky schrieb:

    asc schrieb:

    Ich halte C# und .Net für durchdachter als Java ...

    das merkt man ja schon daran, dass C# pointer und ein 'unsafe' keyword hat.
    🙂

    Und warum merkt man daran dann was? Java hat überhaupt keine Pointer und dass C# sie zulässt, sie jedoch weniger zugänglich macht, ist doch gut?



  • LOLAlter schrieb:

    +fricky schrieb:

    asc schrieb:

    Ich halte C# und .Net für durchdachter als Java ...

    das merkt man ja schon daran, dass C# pointer und ein 'unsafe' keyword hat.
    🙂

    Und warum merkt man daran dann was?

    die durchdachtheit von C# zeigt sich dadurch, dass offenbar der bedarf besteht, direkt im speicher rumzuwuseln. aber vielleicht hat C# auch nur pointer, um sich von Java abzuheben.
    🙂



  • C# ist nicht besser durchdacht als Java, nur aufgeblasener. Man hat zwar einige Schwächen von Java nicht übernommen (was gut ist), aber dafür viele neue eingeführt.
    Aber Featureritis gibt es ja auch bei anderen Produkten aus dem Hause MS.



  • +fricky schrieb:

    LOLAlter schrieb:

    +fricky schrieb:

    asc schrieb:

    Ich halte C# und .Net für durchdachter als Java ...

    das merkt man ja schon daran, dass C# pointer und ein 'unsafe' keyword hat.
    🙂

    Und warum merkt man daran dann was?

    die durchdachtheit von C# zeigt sich dadurch, dass offenbar der bedarf besteht, direkt im speicher rumzuwuseln. aber vielleicht hat C# auch nur pointer, um sich von Java abzuheben.
    🙂


    Keines weiteren Kommentares würdig.



  • LOLAlter schrieb:


    Keines weiteren Kommentares würdig.

    aha, LOLAlter hat keine ahnung und findet sich deswegen unwürdig, weitere kommentare zu schreiben. respekt!



  • tfa schrieb:

    C# ist nicht besser durchdacht als Java, nur aufgeblasener.

    Also zumindest von der Installationsgröße her würde ich dem widersprechen - das nimmt sich nicht viel (Ich glaube sogar das .Net 3.5 kleiner ist als ein aktuelles Java).

    tfa schrieb:

    Man hat zwar einige Schwächen von Java nicht übernommen (was gut ist), aber dafür viele neue eingeführt.

    Beide Sprachen haben ihre Schwächen (Ein Fehlgriff von MS war z.B. Worflow Foundation - zumindest in dem aktuelle Stand) und nehmen sich nicht viel (wobei ich C# zumindest in meinen Bereich - hauptsächlich Cliententwicklung unter Windows, für weitaus besser halte).

    cu André



  • tfa schrieb:

    Man hat zwar einige Schwächen von Java nicht übernommen (was gut ist), aber dafür viele neue eingeführt.

    z.b. das eingebaute kryptosystem, im volksmund auch 'operatorüberladung' genannt, macht garantiert jeden obfuscator überflüssig. dagegen kann Java nicht anstinken.
    🙂



  • asc schrieb:

    Also zumindest von der Installationsgröße her würde ich dem widersprechen - das nimmt sich nicht viel (Ich glaube sogar das .Net 3.5 kleiner ist als ein aktuelles Java).

    Das meinte ich nicht mit aufgeblasen, sondern die Sprachen selbst. Die Downloadgröße ist völlig egal.



  • tfa schrieb:

    Das meinte ich nicht mit aufgeblasen, sondern die Sprachen selbst. Die Downloadgröße ist völlig egal.

    Dann führ das bitte mehr aus. Meine Javakenntnisse sind leider nicht auf dem aktuellen Stand, um einen fairen Vergleich zu machen - zumindest auf den Stand von Java 1.4 sehe ich hier nicht wirklich einen großen Unterschied.



  • Was willst du denn hören? Eine Liste der Features, die Java nicht hat im Gegensatz zu C#?



  • tfa schrieb:

    Was willst du denn hören? Eine Liste der Features, die Java nicht hat im Gegensatz zu C#?

    Nein, sondern welches Feature den fälschlich in C# eingeführt wurde (Sowohl Java als auch .Net haben versucht eine mächtige Bibliothek zur Verfügung zu stellen, schlagen imho daher in die selbe Quelle).



  • Z.B.: Structs, implizite Type Conversions, Indexers, Operatorüberladung (selten sinnvoll, oft gefährlich), LINQ, "unsafe"

    Sachen, die in Java fehlen: Reifed Generics, ARM-Blöcke
    Sachen, die in Java überflüssig sind: checked Exceptions
    Bei Closures bin ich mir nicht sicher, wie ich sie (in einer statisch typisierten Sprache) finden soll.

    (Sowohl Java als auch .Net haben versucht eine mächtige Bibliothek zur Verfügung zu stellen, schlagen imho daher in die selbe Quelle).

    Sprache!=Bibliothek. In Sachen Bibliotheken gibt es nicht viel, was ansatzweise an Java heranreicht. Aber darum geht es nicht.



  • @Bashar: Dann hast Du in dieser Zeit noch nicht programmieren müssen. ALGOL war sogar besser als FORTRAN, nur leider aus Europa, nicht aus USA. Ich finde überall die wesentlichen Grundlagen der Programmierung auch heute noch wieder. Meine heutige Wahl ist C++. Das wollte ich dem Fragesteller sagen.



  • berniebutt schrieb:

    @Bashar: Dann hast Du in dieser Zeit noch nicht programmieren müssen. ALGOL war sogar besser als FORTRAN, nur leider aus Europa, nicht aus USA.

    Ich meinte das nicht ironisch. Kernighan und Ritchie kamen nicht von Assembler, sondern standen wie viele andere auf den Schultern von Riesen, im Falle von C sind die Vorgänger B und BCPL. Und ALGOL ist natürlich der Stammvater aller modernen blockstrukturierten Sprachen.
    Es hörte sich bei dir so an als gäbe es nur FORTRAN und dann hat jemand mit C etwas völlig neues geschaffen, worauf die FORTRAN-Programmierer alle umgestiegen sind.



  • Hi,

    schau Dir auf alle Fälle auch mal Delphi an, für einen reinen Hobbyprogrammierer der eventuell nebenbei mal was für sienen Job programmieren will ist das aus meiner Sicht nicht die schlechteste Alternative und man hat mit der dazu gehörenden mitgelieferten VCL ein recht mächtiges Werkzeug für Oberflächen und Datenbankanbindung dabei.

    Gruß Mümmel



  • muemmel schrieb:

    schau Dir auf alle Fälle auch mal Delphi an, für einen reinen Hobbyprogrammierer der eventuell nebenbei mal was für sienen Job programmieren will ist das aus meiner Sicht nicht die schlechteste Alternative und man hat mit der dazu gehörenden mitgelieferten VCL ein recht mächtiges Werkzeug für Oberflächen und Datenbankanbindung dabei.

    Warum würdest du Delphi zB C# oder Java vorziehen?



  • Hach, wunderbar dieser Thread. 😃
    Programmiersprachen sind, wie so viele Dinge, auch eine Glaubensfrage. Es lässt sich objektiv enorm schwer einschätzen was wirklich "besser" ist. Die meisten Sprachen haben Vor- und Nachteile und sind somit, für jeweils andere Zwecke, besser oder schlechter geeignet.
    Mein ganz persönliche Meinung:
    Visual Basic: Sehr leicht zu lernen und zu benutzen, man erziehlt schnelle Erfolge, habe ich aber seit VB 5 und 6 nicht mehr benutzt. (Habe mit 3.0 angefangen).

    Java: Mag ich garnicht. Nein, Java ist NICHT schlecht, ich mag es einfach nicht. Es ist ziemlich sicher und man kann wenig falsch machen. Recht leicht zu lernen da rein Objekt Orientiert (zumindest 95%). ^^
    Ich mag Java nicht, da es einfach vieeeeeeel zu langsam ist. Ausserdem ist es schwer damit tief in Systeme einzugreifen. Vieles, das im Hintergrund passiert, ist nicht greifbar.

    C: Mag ich sehr gerne, leider nicht Objekt Orientiert... ^^ Stroustup sagte es ist sehr leicht sich damit in den Füß zu schießen... ^^

    C++: Mein Favorit! Sehr Hardwarenah, klasse Performance, es ist schwerer sich in den Fuß zu schießen, aber wenn man es schafft, reißt es einem das ganze Bein ab (Stroustrup). Unterstützt OOP, Strukturiertes Programmieren, Event gesteuertes Programmieren, etc...
    Aber: Man sollte wissen was man tut!

    C#: Ich war so doof diese Sprache zu verurteilen bevor ich gezwungen war sie zu benutzen (Man hat leider nicht immer die freie Wahl der Programmiersprache bei Projekten...). Was soll ich sagen: Java recht ähnlich, ich hab es trotzdem sehr lieb gewonnen. Macht es trotz allem recht einfach Hardwarenah zu gehen. Sehr leicht zu lernen und zu benutzen und auch gut dokumentiert. Eignet sich bedingt für Spiele dank ManagedDX (wird aber wohl nicht weiter unterstützt in Zukunft). Der allergrößte Nachteil ist imho das es sich zu schnell Entwickelt! Ja, richtig gelesen. Kaum hat sich eine Technologie etabliert, .NET 3.5, da kommt schon die nächste. Ich möchte nicht wissen wie viele gerade mal .NET 2.0 installiert haben.

    😨 Einfach toll, leider kaum verbreitet, ich hoffe die Sprache findet viel mehr Anklang. Vereint die Vorteile von C#, C, C++, Java etc... Anschauen lohnt sich gewiss!

    Assembler: Macht unheimlich viel Spass und hat den "Aufregungsfaktor". Das liegt wohl auch daran, dass ein Professor, den ich hatte, immer davor gewarnt hat, wie leicht man sein Betriebssystem unbrauchbar machen und Hardware (ältere Hardware, neuere hat meistens Sicherheitsfunktionen) zerstören kann. (Einer hat einen Röhrenmonitor im Labor zerlegt in dem er einen "unpraktischen" Wert für die Hz Zahl eingeben hat...)
    Programmiert habe ich hier x86 und HC12. Alleine das zusammenbauen eines Mainboards für den Prozessor und das Gestalten und Bauen einer Aufsteckplatine hat unheimlich viel Spass gemacht! Wer gerne Lötkolben nutzt hat hier sein wahre Freude! Man MUSS wissen was man tut!!!

    PHP (HTML) : Spassig, ich habe sogar mal einen IRC Bot in PHP geschrieben. Tolle Sprache für Serverseitige Webandwenungen, bedingt auch für Clientseitige Programme geeignet (ohne Verbindungs zum Server, Standalone (wie der IRC Bot)). Auch besser als ich erst dachte, aber hat viele Lücken und Probleme...

    Ganz ohne Sprache programmieren: Hehe, es geht... macht aber wenig Spass, und ist sehr unpraktisch und gefährlich. Um mit einem Hex Editor Programme schreiben braucht auch viel Erfahrung mit Assembler, aber einmal vertippt und man hat was kaputt gemacht. Vorteil und Nachteil: Man braucht keinen Compiler 😉

    Esotherische Sprachen (Brainfuck, Java2k): *kicher* Spassig, aber unheimlich unpraktisch. Nach meinem Versuch mit Java2k ein "Hello World" zu schreiben habe ich nach "Hel" (mit 96%iger Wahrscheinlichkeit) aufgegeben. Ich hab den Überblick verloren und in einem Quellcode, ohne Zeilenangaben, der kaum lesbar ist bringt die Fehlermeldung "SYNTAX ERROR SOMEWHERE" garnix. 😉

    Wenn man eine Sprache gelernt hat und halbwegs beherrscht ist es kein Problem eine andere auch zu lernen da die Grundlagen alle gleich sind. Je mehr man jedoch eine Sprache nutzt, desto besser wird man in ihr. Man lernt dann die ganzen tollen Tricks und Kniffe kennen.

    Anhang ^^ :
    "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off." - Bjarne Stroustrup

    Links:
    😨 http://www.digimars.com/d/index.html
    Java2k: http://de.wikipedia.org/wiki/Java2K

    Das sollte erstmal reichen 😉



  • Shade Of Mine schrieb:

    Warum würdest du Delphi zB C# oder Java vorziehen?

    Da gibt es viele gute Gründe.

    • Deployment. Die Java-Runtime ist mehr oder weniger unkompliziert, aber .NET 2.0, 3.0, 3.5 und 3.5 SP1 ordentlich zu installieren, kann in größeren Umgebungen schlichtweg ein Ding der Unmöglichkeit sein. Mit Delphi kann man Anwendungen ohne externe Abhängigkeiten erstellen.
    • Klassenreferenzen und virtuelle Konstruktoren/virtuelle Klassenfunktionen. Weder in .NET noch in Java gibt es direkt Vergleichbares - dort muß man sich entweder mit einer manuell erstellten Metaklassenhierarchie oder mit RTTI behelfen.
    • Bessere COM-Unterstützung. Das meiste (implizite Speicherverwaltung, safecall, Dispinterfaces) unterstützt C# auch, aber implements, indizierte Properties und dynamische Methodenaufrufe gibt es noch immer nur in Delphi. (Immerhin will Microsoft die letzten beiden in C# 4.0 als "Innovation" einführen. 😉 )
    • resourcestring.
    • Konstruktoren haben Namen. Anstelle von
    std::vector <int> vec (5);
    

    kann man

    vec := TVector<Integer>.CreateWithSize (5);
    

    schreiben. Für so etwas bräuchte man in Java oder C# eine Factory-Funktion, und in C++ zudem die Move-Semantik.

    • Gegenüber Java: Delphi unterstützt nichtvirtuelle Methoden, call by reference, Operatorenüberladung für Werttypen (record), objektgebundene Methodenzeiger und Closures.
    • Verschachtelte Funktionen. Das schränkt den Sichtbarkeitsbereich kleiner Helferfunktionen ein und dient außerdem als äußerst effizienter Closure-Ersatz.
    • Saubere Trennung zwischen Interface und Implementierung. In Delphi-Code kann ich auf einen Blick das Interface einer Klasse überschauen. Bei Java und C# (und bei C++-Code, der fast alles in Headerdateien implementiert) benötigt man für etwas derart Essentielles zusätzliches Werkzeug.
    • Wie alle nativen Anwendungen benötigen Delphi-Anwendungen üblicherweise weniger Speicher als verwaltete Umgebungen, außerdem ist die Speicherverwaltung deterministisch. Auf Wunsch kann dennoch, wie in C++, ein GC eingesetzt werden.
    • Die direkte Verwendung von WinAPI-Schnittstellen und die Interaktion mit C-Code ist viel unkomplizierter. Das weiß man besonders dann zu schätzen, wenn man mal etwas Zeit mit JNI verbracht hat 😉
    • Ein natives UI-Framework, das vom Hersteller voll unterstützt wird. Die Zukunft von WinForms ist ungewiß, und WPF hat auch seine Schwächen (Performance).
    • DFM-Dateien. WinForms benötigt Hacks wie Regions und partielle Klassen, damit man sich im Code überhaupt zurechtfindet.

Anmelden zum Antworten