Was haltet ihr von Mono/C#?

In Python habe ich mal reingeschnuppert und ich muss daniel Recht geben. Die Sprache ist wirklich cool. Man will sofort mehr damit machen.
 
Meine Firma ist vor ein paar Jahren komplett auf C# umgestiegen. Auf den Embeddedgeräten lieft WindowsCE. Ein schlauer Mitarbeiter hat dann irgendwann mal rausgefunden, dass Linux auch auf den Geräten läuft (handelt sich um ARM-CPUs). Die Teile der .Net-Klassenbibliothek, die unsere Software braucht ist schon seit Jahren in Mono implementiert (keine GUI).

Jetzt laufen die Geräte unter Linux mit Mono. Die ~11 Euro für die WindowsCE-Lizenz sparen wir gerne :-)

Die Anpassung ist übrigens recht trivial. 99% der Probleme enstehen durch falsche Pfadnamen (\ anstelle von /), sowie Groß- und Kleinschreibung.
 
Ada ist schon schlimm genug. Die Methoden sind nicht in den tagged records enthalten, sondern getrennt. Das ist schon verwirrend. Klassen gibt es zwar, der Begriff hat aber eine ganz andere Bedeutung.

Also mir gefällt, wie es bei Ada95 ist. Würde mir wünschen, dass mehr Leute damit arbeiten würden. Ada ist eigentlich eine sehr schöne Sprache.
 
@Athaba nenn sie einfach Geschweifte-Klammern-Und-Semikolon-Sprachen (GKUSS) :)
Muss ich mir merken.

Ich als Perlliebhaber verwende ja auch nicht gerade die modernste Sprache. Bei Perl gefallen mir vor allem drei Dinge:
Der Aufbau ist unlogisch und damit dynamisch und eher an menschlichen Sprachen dran.
Es gibt CPAN: Der "große Community"-Vorteil. Bei C entspricht das wohl den Libs und Cpmpileren.
Und vor allem: Es gibt für sehr vieles einen kürzeren Weg.

Der Nachteil ist, dass das meist dazuführt das Monsterprogramme sehr schwer einheitlich zu halten sind. Wobei man sich bei solchen Problemen auch auf ein Style einigen kann. Noch besser wäre es für das Projekt einfach eine passendere Sprache zu suchen.

Wobei Perl hier doch schon weit vom Thema entfernt ist.

Ich wollte noch erwähnen, dass zum Beispiel Ada und Pascal in meinen Augen für vieles, was in C# oder Java geschrieben ist besser geeignet wäre. Auch Smalltalk und Lisp, welche schon von danlei erwähnt wurden. Klar, Geschmack macht viel aus, aber so viel? Ist da wirklich nichts, was ich übersehe? (die Frage war ja eigentlich der Hauptgrund, warum ich mich hier eingemischt habe) Ich würde auch gern ein paar ganz subjektive Antworten von den C# und Javaprogrammierern hier haben. Ich krieg im IRC (nicht in #bsdforen.de) nichts aus den Leuten raus.

Um nochwas zur Anfangsfrage zu sagen: Ja, ich finde es gut, dass die Sprachen Open Source sind. Es gibt scheinbar einen Riesen Hype um sie. Es wäre schrecklich, wenn man Blobs für diese Sprachen einführen müsste.
 
Ist da wirklich nichts, was ich übersehe? (die Frage war ja eigentlich der Hauptgrund, warum ich mich hier eingemischt habe) Ich würde auch gern ein paar ganz subjektive Antworten von den C# und Javaprogrammierern hier haben. Ich krieg im IRC (nicht in #bsdforen.de) nichts aus den Leuten raus.
eine Sache fällt mir noch ein: die Entwicklungsumgebungen sprechen für Java.
Etwas auf dem Niveau von NetBeans oder Eclipse gibt es für die exotischeren Sprachen zumindest nicht gratis. Am besten fährt man meist noch mit dem Emacs.

Um nochwas zur Anfangsfrage zu sagen: Ja, ich finde es gut, dass die Sprachen Open Source sind. Es gibt scheinbar einen Riesen Hype um sie. Es wäre schrecklich, wenn man Blobs für diese Sprachen einführen müsste.
Gibt es überhaupt eine einigermaßen verbreite general purpose Spache ohne offene Implementierung? Mir fällt keine ein.


MfG
Michael Krauß
 
Stimmt, die Kombination Eclipse/SVN spricht echt für Java. Ich verwende Eclipse auch für C, PHP, VHDL und Python aber die Java-Unterstützung ist natürlich am vollständigsten.
 
Gibt es überhaupt eine einigermaßen verbreite general purpose Spache ohne offene Implementierung? Mir fällt keine ein.
Immerhin war Java lange Eine.

Entwicklungsumgebungen sind auch ein guter Grund. Ich glaube aber, dass das aber, dass auch das sehr Stark mit der Verbreitung zusammenhängt. Ich hab mal auf einen Blog oder in irgendeinem Newsportal so eine Serie zu großteils freien IDEs gelesen. Ich glaube, das wäre das nächste Thema, wo man sich über Geschmäcker streiten kann. Klar gibt es da die Grpßen, wie Eclipse, aber auch ein paar Kleine, die oft sehr interessante und wohl mehr oder minder experimentelle Ansätze haben. Mir ist da vor allem Eine im Gedächtnis geblieben. Die wollten die Maus zur zweiten Tastatur machen. Klang sehr faszinierend, auch wenn ich sonst der Typ bin der froh ist, wenn er die Maus nicht anfassen muss. Mal sehen ob ich die IDE oder den Newsartikel nochmal finde.
 
Gibt es überhaupt eine einigermaßen verbreite general purpose Spache ohne offene Implementierung? Mir fällt keine ein.
Immerhin war Java lange Eine.

Entwicklungsumgebungen sind auch ein guter Grund. Ich glaube aber, dass das aber, dass auch das sehr Stark mit der Verbreitung zusammenhängt. Ich hab mal auf einen Blog oder in irgendeinem Newsportal so eine Serie zu großteils freien IDEs gelesen. Ich glaube, das wäre das nächste Thema, wo man sich über Geschmäcker streiten kann. Klar gibt es da die Grpßen, wie Eclipse, aber auch ein paar Kleine, die oft sehr interessante und wohl mehr oder minder experimetelle Ansätze haben. Mir ist da vor allem Eine im Gedächtnis geblieben. Die wollten die Maus zur zweiten Tastatur machen. Klang sehr faszinierend, auch wenn ich sonst der Typ bin der froh ist, wenn er die Maus nicht anfassen muss. Mal sehen ob ich die IDE oder den Newsartikel nochmal finde.

Ich benutze D ganz gerne! Ist kompiliert, schnell, mit GarbageCollector und allem schnickschnak. wikipedia
Ich hab mal was drüber in, ich glaube OSNews wars, gelesen. Hab das gleich an ein paar IRC-Channels, in denen oft über C geflucht wird weitergeleitet (unter anderem DragonFly und Perl). Da wollte (selbstverständlich *g*) niemand umsteigen. Ich bring die Anekdote, wenn ich über Programmiersprachen plaudere immer wieder. Vor allem weil man damit den erfahrensten Programmierer zum Schwitzen bringen kann. Aus dieser Perspektive scheint die Sprache ganz gut zu sein. Ist es eigentlich möglich ein größeres Projekt auf eine andere Sprache umzustellen, wenn diese wirklich gute Vorteile bringt oder glaubt ihr eher, dass da die "Faulheit" siegt?
Klar, jedem Trend hinterherzuhüpfen ist blöd, aber ich frag nur nach der Möglichkeit oder gab es so etwas schon mal? Ich glaube, selbst bei Skriptsprachen wäre das sehr schwer. Wenn zum Beispiel Google zu Perl oder Amazon zu Python gehen würde. Wäre so etwas vorstellbar?
 
Ich programmiere auch sehr gerne in Perl, macht einfach spaß, und in 15min hat man ein Script welches funktioniert, dieser Effekt ist sehr befreidigend :).

Aber D halte ich für ein sehr gutes Konzept (obwohl ich mich nicht richtig auskenne). Es ist nämlich sehr frustrierend von Perl auf andere (non syntax-cany) Sprachen umzusteigen, und D hat wenigstens foreach() und so weiter. D hab ich angefangen, weil Perls Objektorientierung einfach grauenhaft ist.

Programmiersprache wechseln? -> warum sollte man in den Beispielen?
Wenn man vom Endprogramm ausgeht macht das wenig sinn, aber die Portierung von Libraries auf andere Sprachen löiegt nahe und wird viel gemacht. Für D gibt es einen Java2D compiler, und C libs können über ein Interface eingebunden werden, da gint es schon viele Wrapper für z.B. SDL, OpenGL, GTK ... .
 
Foreach hat eigentlich fast jede Sprache. In manchen sprachen nennt man es bloß Iterieren.
 
Ja, in ner for-schleife, hab aber kein bock (int i = 0; i > 100; i++) zu schreiben.

Und wenns um Arrays geht, muss man auch noch die länge irgwndwo weg holen, macht einfach keinen Spaß.
 
Ich dachte eher an while (iterator = datenstruktur.getNext()).

@oenone
Aua, habe ich gar nicht gesehen. :)
 
Kann ja sein, dass ich kein Plan hab... trotzdem.

Wo wir grade dabei sind, ich habe immer Bedenken bezüglich der Performance beim benutzen von solchen Datenstrukturen, man liest viel, aber nie etwas über die Kosten solche zu benutzen.

Muss man diese Bedenken haben oder ist dies eher vernachlässigbar.
 
Ich dachte eher an while (iterator = datenstruktur.getNext())

Ach sowas ist doch heutzutage nicht mehr schön...zumindest in C++ Kreisen :)

container<T> data;
for(containter<T>::iterator it = data.begin(); it != data.end(); ++i) {
// ....
}


STL-Style...(auch wenn es viele Argumente *gegen* generische Iteratoren gibt)...schönes modernes C++ bietet IMHO die perfekte Symbiose zwischen althergebrachtem Schrott, der Vermeidung von tiefen Klassenhierarchien und eleganter (natürlich *sehr* subjektiv) und ausdrucksstarker Syntax.
 
Ach sowas ist doch heutzutage nicht mehr schön...zumindest in C++ Kreisen :)

container<T> data;
for(containter<T>::iterator it = data.begin(); it != data.end(); ++i) {
// ....
}


STL-Style...(auch wenn es viele Argumente *gegen* generische Iteratoren gibt)...schönes modernes C++ bietet IMHO die perfekte Symbiose zwischen althergebrachtem Schrott, der Vermeidung von tiefen Klassenhierarchien und eleganter (natürlich *sehr* subjektiv) und ausdrucksstarker Syntax.

Warum so umständlich?

Code:
std::for_each(data.begin(), data.end(), func);

Ganz davon abgesehen, das for_each durch Template-Specialisierung (oder waren es doch Type-traits?) auch für bestimmte Iteratoren optimiert werden kann, ohne das ich als for_each-Anwender darüber nachdenken muß. C++ rulez! :D

Ab C++0x gibts auch ein echtes foreach, unabhängig von Iteratoren.
 
container<T> data;
for(containter<T>::iterator it = data.begin(); it != data.end(); ++i) {
// ....
}
Achja, muß noch was zu C++0x sagen. ;) Geht dann auch kürzer:
Code:
for(auto it = data.begin(); it != data.end(); ++it) {
    // ....
}
Mit auto braucht man keinen Typ mehr hinschreiben, wenn er durch den Compiler ersichtlich wird. :)

Achja, du meinst sicherlich ++it.
 
Zum Thema Java-Fraktion.

Man kann mit Java wirklich schön sauber programmieren. Ich mag die Syntax und komme mit der Sprache prima klar. Leider sind die meisten verfügbaren Frameworks mit denen so üblicherweise gearbeitet wird, meiner Meinung nach ziemlich grottig.
 
Hmm, eher auf das erstere ;) .

Ist halt aus der Sicht eines Perl-Skripters.... und gelegenheits Nutzer von "ordentlichen" Sprachen.

Was würdet ihr mir empfehlen, Ich möchte seit langem mal mehr mit den besagten "ordentlichen" Sprachen machen, habe mit D angefangen, aber die Libraries sind so rar, dass es einfach so große Hürden gibt etwas zu bewerkstelligen welche man als Anfänger nicht überwinden kann. Java ist nicht drin, so gern es mir leid tut, nein. C++?
 
Zuletzt bearbeitet:
Dann ist ja gut. ;)

Obwohl ich finde, dass die Schreibweise mit std::for_each doch schon sehr praktisch ist. Man spart sich das definieren der Iterator Variablen.

Und mit Hilfe von boost::lambda geht dann auch sowas. ;)
Code:
std::for_each(data.begin(), data.end(), std::cout << *_1);

Und das finde ich schon praktischer und einfacher... ;)
 
Zurück
Oben