C# Syntax Ähnliche Native Programmiersprache



  • Managed vs. Native flame war incomming



  • Was für ein Müll nur von dir rüber kommt.

    Einen War zwischen diesen zwei Sprachtypen wagen nur die, die sowieso nichts besseres zu tun haben.

    Beide haben ihre Vorteile und nachteile.

    Ich bin nur auf der Suche nach einer Sprache die den Flair und der Syntax von C# ähnelt nur halt ebend eine Native Sprache.

    Ich hab mir nun mal D genauer angeschaut. Es ähnelt der Sprache C# tatsächlich scheint aber noch nicht ganz so augereift zu sein. Aber eigentlich ist das der Springende Punkt warum D dann doch ganz Interessant ist. Es ist noch in der in der aktiven Entwicklung. Und das ist niemals schlecht. Denn dadurch das die Sprache noch nicht so alt ist sorgt einfach dafür, dass dort frischer Wind weht und diese einfach Moderner ist. Ich werde da ein Auge drauf behalten und einige Projekte mal einfach in ihr schreiben bereuen werd ich das bestimmt nicht.

    Um zu dem "Streit" zurück zu kommen ist es doch lediglich eine Diskussion die hier grad stadtfindet!

    Allgemein ist heutzutage Streit schon sehr albern da sehr, sehr oft in den meisten Programmen der heutigen Zeit beides findet. .net und native kombiniert. Ein Beispiel ist zum Beispiel Photoshop dort sind einige der Bibliotheken in .net Sprachen geschrieben.

    Falls noch wer eine Interessante Sprache nach den von mir genannten Bedürfnissen weiß, bin ich dankbar für den Tipp.

    Vielen Dank an alle die bereits etwas Produktives beigesteuert haben.

    mfg



  • Insult schrieb:

    Ich bin nur auf der Suche nach einer Sprache die den Flair und der Syntax von C# ähnelt nur halt ebend eine Native Sprache.

    Was genau meinst du mit Flair? Von der Syntax her dürfte der Großteil der im Forum vertretenen Sprachen recht ähnlich sein wie C# (C, C++, Java und deren Derivate), da hättest du die freie Auswahl.



  • Gemeint sind wahrscheinlich Ausdrucksstärke und Featurereichtum.

    MfG SideWinder



  • SideWinder schrieb:

    Gemeint sind wahrscheinlich Ausdrucksstärke und Featurereichtum.

    Aehm, leider hilft das nicht bei meinem Verstaendis. Wenn er C# moechte, dann soll er C# nehmen. Alles ander ist nur trollig.

    Es ist noch in der in der aktiven Entwicklung. Und das ist niemals schlecht.

    Blabla, das trifft auf ziemlich viele Sprachen zu.

    ... einfach Moderner ist

    Noch mehr Blabla. Naja, du willst doch einen Flame War provozieren. Genau das tust du, mit so allgemeinen, haltlosen Aussagen.



  • omg... Ich möchte gar nicht wissen wieviele deiner Posts hier im Forum einfach nur Sinnlos sind.

    Wer noch was weiß wär ich noch immer dankbar für. An alle anderen. Einfach mal die Fresse halten, diskutieren meinetwegen gerne, aber solche ads Typen wie Knivil das geht zu weit. Das ist missbrauch dieses Threads und des gesamten Forums...

    Mir solche Sachen zu erstellen ist wirklich frech. Und c++ ähnelt c# von der Syntax nicht wirklich.

    Jedenfalls Knivil krieg Niveau und "Trollig" ist kein Wort. Solltest du in deiner nächsten Antwort hier wieder nur irgendwelchen Streit anzetteln dann wäre es klüger, dir einen zu drehen und in die Ecke zum beruhigen zu verziehen.

    An alle die mir tatsächlich versuchen gute Ähnliche Sprachen zeigen danke ich hier nochmals sehr!



  • Deine Name ist Program oder?
    Während knivel Aussagen als "blabl" bezeichnet hat, wirst du dagegen persönlich - das ist nicht wirklich besser 😉

    Und ich geb knivil vollkommen Recht - das meiste ist nichts anderes als rumlabern ohne Fakten zu bringen.

    Es ist noch in der in der aktiven Entwicklung. Und das ist niemals schlecht.

    Das spricht wohl gerade für C# und die .Net Plattform. Bisher hat jede Version zahlreiche Neuerungen gebracht und der Entwicklungsprozess ist auch offen. Es gibt immer CTPs wo man die kommenden Neuerungen schon früh ausprobieren kann.

    Und c++ ähnelt c# von der Syntax nicht wirklich.

    Klar ist "Ähnlichkeit" relativ, aber wenn man die jeweils sprachspezifischen Eigenheiten der Sprachen sind sie sehr ähnlich. Egal ob nun die Schleifenkonstrukte oder z.B. Methodenaufrufe, die sehen in C# aus wie in C++ wie in Java wie in ...

    An alle anderen. Einfach mal die Fresse halten...

    Schön wie du hier erstmal sämtliche Leser beleidigst 🙄

    @huh:
    Mit Ada geb ich dir völlig recht, aber bei den viel verbreiteteren Sprachen wie C oder C++ hat man tierisch Probleme damit. Man muss sich nur die Release Notes zu den Software Hotfixes der großen Hersteller anschaun. Egal ob Microsoft, Adobe oder sonstwer - "Mögliche Sicherheitslücke durch Pufferüberlauf" ist die bei weitem häufigste Ursache und das liegt daran das Sprachen wie C oder C++ die Freiheit erlauben beliebig auf Speicher zuzugreifen und da Programmierer nunmal nicht perfekt sind, entstehen dann die Probleme. VMs wie bei Java oder .Net verbieten den direkten Zugriff auf den Speicher und damit ist die Gefahr falsch darauf zuzugreifen view geringer.

    Der Vergleich der Standardbibliotheken kam unter der Annahme das mit "Leistungsfähigkeit" die verschiedenste Aufgaben möglichst schnell zu erledigen. Damit mein ich nicht die Ausführung, sondern wie schnell lös ich eine Problemstellung mit mir zur Verfügung stehender Funktionalität und da bietet eine große Klassenbibliothek natürlich Vorteile.



  • Zwergli schrieb:

    Damit mein ich nicht die Ausführung, sondern wie schnell lös ich eine Problemstellung mit mir zur Verfügung stehender Funktionalität und da bietet eine große Klassenbibliothek natürlich Vorteile.

    Aufgabe: Erstelle einen std::vector/eine ArrayList mit 10 000 Zufallszahlen. Ziehe 2 weitere Zufallszahlen im Bereich [0, 10 000), ab der ersten bis (exklusive) der zweiten nimmst du alle Zufallszahlen und sortierst sie in absteigender Reihenfolge. Danach schreibst du alle Primzahlen aus der Sequenz in umgekehrter Reihenfolge in die Datei "foobar".

    Sagen wir, um den Primzahlentest zu vereinfachen, dürfen die Zufallszahlen nur im Bereich [2, 100) liegen.

    Löse die Aufgabe in C++ und in entweder Java oder C#. Viel Spaß in letzteren Sprachen.



  • Wie soll deine Aufgabe ein Argumentation darstellen. Bei der Lösung ist es sehr Abhängigkeit wie stark er seine Programmiersprache kennt. Also ich würde sie in Scala lösen und Spaß haben, dazu kommt noch der Aspekt, dass die Lösung hochstwahrscheinlich noch multithreaded sein würde. 😃



  • Meine Aufgabe stellt einen Gegenbeweis zu der Aussage über die einfacher verwendbare und praktischere Library von Java/C# dar. Ich hab die Lösung in C++ im Kopf, das wären ein paar Zeilen. über das Managed-Code-pendant möchte ich gar nicht nachdenken.



  • 314159265358979 schrieb:

    Zwergli schrieb:

    Damit mein ich nicht die Ausführung, sondern wie schnell lös ich eine Problemstellung mit mir zur Verfügung stehender Funktionalität und da bietet eine große Klassenbibliothek natürlich Vorteile.

    Aufgabe: Erstelle einen std::vector/eine ArrayList mit 10 000 Zufallszahlen...

    In der Regel setzt sich ein Projekt nicht aus Kleinstaufgaben zusammen, sondern ist eine Kombination aus vielen Bereichen (z.B. UI, Datenbankzugriffe, Berechnungen...).

    Wenn ich meine "üblichen" Projektumfelder betrachte, wäre C# was den Code- und Zeitaufwand (bezogen auf die Implementierung, nicht Laufzeit) betrifft immer C++ überlegen gewesen. Einzelne Teilaufgaben hätten sicherlich in C++ weniger Aufwand bedeutet, aber bezogen auf das Ganze hätte ich Schätzungsweise die Hälfte des Aufwandes in C# gespart.

    Das soll jetzt keine Wertung von C# versus C++ sein, beide haben ihre Vor- und Nachteile je nach Aufgabenfeld. Aber gerade was Implementierungsaufwand und Toolunterstützung (Refactoringwerkzeuge etc.) angeht sehe ich Vorteile in C#.



  • Das streite ich gar nicht ab. Aber Datenstrukturen und Algorithmen gehören zu den grundlegensten Dingen überhaupt, und da gibts massive Mängel sowohl in Java als auch in C#. Wenn ich möchte, finde ich immer einen Fall, in dem eine Sprache besser als eine andere ist. Mir kam die Aussage nur so rüber, als würde er meinen, dass das allgemein so wäre.



  • 314159265358979 schrieb:

    Löse die Aufgabe in C++ und in entweder Java oder C#. Viel Spaß in letzteren Sprachen.

    Ich löse sie dir in C# wenn du mir deine C++ Implementation zeigst. Da kann ich problemlos zugeben dass ich keine optimale Lösung in C++ hinbekommen werde.

    Wobei ich aber betonen möchte, dass die Aufgabe ja die reine Abbildung eines Algorithmus ist. Damit bildet man ja nicht den Umfang einer Klassenbibliothek ab. Abgesehen davon kann man so ne Aufgabe ja beliebig stellen. Würde sie lauten "Filtere den Inhalt einer Textdatei anhand eines regulären Ausdrucks xyz" dann hast du in C++ schon verloren weil die Standardbibliothek in der aktuellen Version keine regulären Ausdrücke kann. Oder wo ist das Pendant zur WCF in C++? Da gibts nichts vergleichbar umfangreiches, einheitliches.



  • Regex gibts sehr wohl, nämlich im TR1.
    Eine C++ Lösung bekommst du gleich.



  • Challenge accepted, let's fight 🤡



  • in ein paar minuten hingerotzt ohne viel nachzudenken.

    class Program
        {
            static void Main(string[] args)
            {
                string filepath = @"C:\test.txt";
    
                const int count = 10000;
                const int maxNumber = 100;
    
                Random rand = new Random(Environment.TickCount);
    
                var rands = Enumerable.Range(0, count).Select(r => rand.Next(maxNumber));
    
                int low = rand.Next(count);
                int high = rand.Next(count - low);
    
                var result = rands
                                .Skip(low)
                                .Take(high)
                                .Reverse()
                                .Where(i => i == 2 || i > 2 && Enumerable.Range(2, (int)Math.Sqrt(i))
                                .All(c => i % c != 0))
                                .Select(i => i.ToString());
    
                File.WriteAllLines(filepath, result.ToArray());
    
                Console.ReadKey(true);
            }
    
        }
    


  • Ideone will gerade nicht so richtig, dauert noch etwas.



  • 314159265358979 schrieb:

    Ideone will gerade nicht so richtig, dauert noch etwas.

    Hahahahaha 😃 👍



  • So, bitteschön: http://ideone.com/tV9w2

    #include <vector>
    #include <algorithm>
    #include <iterator>
    #include <iostream>
    
    #include <cstdlib> // rand(), srand()
    
    int main()
    {
            std::srand(42);
    
            const int n = 100; // Etwas weniger, damit die Konsole nicht ganz so voll wird.
    
            std::vector<int> v;
            std::generate_n(std::back_inserter(v), n, [](){ return rand() % 98 + 2; });
    
            // Hier wäre noch eine Zeile "std::ostream os("foobar");", da ich hier nur auf die Konsole ausgebe
            std::copy_if(v.rbegin(), v.rend(), std::ostream_iterator<int>(std::cout, "\n"), // Statt der Datei in die Konsole
                    [](int n)
                    {
                            return n == 2 || (n % 2 != 0 && n % 3 != 0 && n % 5 != 0 && n % 7 != 0 && n % 11 != 0); // Quick & Dirty
                    }
            ); 
    }
    

    Kürzer und flotter, wobei man da noch jede Menge optimieren könnte.



  • Fehlt bei Dir:

    "Ziehe 2 weitere Zufallszahlen im Bereich [0, 10 000), ab der ersten bis (exklusive) der zweiten nimmst du alle Zufallszahlen"

    Keine Dateiausgabe.

    Nur Zahlen bis 100.

    Deine Aufgabe war sowieso verbuggt. Das umgekehrte Sortieren am Ende macht das Sortieren der Teilfolge überflüssig, deswegen habe ich nur das erstmalige absteigende Sortieren drin.

    Dein Code ist scheiße-hässlich. Nichts für ungut. Ist ja nur Spaß 😉


Anmelden zum Antworten