Seite 2 von 5
Verfasst: Samstag 20. Februar 2010, 15:46
von snafu
Was für ein komischer Halbaffe. Sah den jetzt zum ersten mal live. "DEVOLOPERS! DEVELOPERS! DEVELOPERS!!!" (Muhar, die Stelle werd ich mir gleich zum dritten Mal ansehen, der Rest ist langweilig)
Verfasst: Samstag 20. Februar 2010, 15:50
von DasIch
@philistion Es gibt auch ein Patent auf den Doppelklick, für Ajax gibts sicherlich auch eins und das dürfte man ohne Probleme weiterführen können. Das Patentargument ist keins.
Verfasst: Samstag 20. Februar 2010, 16:05
von burli
Sicherlich gibt es gewisse Grauzonen, aber der Kern von Mono ist definitiv frei.
Und im Übrigen soll sich der Ballmer net so über Linux anpissen. Schließlich ist Microsoft inzwischen der drittgrößte Linux Anbieter nach Red Hat und Novell, was den Umsatz mit Linux Lizenzen angeht.
Und wie DasIch schon gesagt hat. Es gibt praktisch nichts in der EDV Welt, was nicht irgendwie patentiert ist. Praktisch jedes Element einer GUI dürfte irgend ein Patent haben. Und nur weil Python unter einer liberalen Lizenz steht heißt das nicht, dass Python nicht auch irgendwelche Patente oder Lizenzen nutzt. Nur bisher hat keiner danach gefragt.
Verfasst: Samstag 20. Februar 2010, 16:38
von Sr4l
snafu hat geschrieben:
Was für ein komischer Halbaffe. Sah den jetzt zum ersten mal live. "DEVOLOPERS! DEVELOPERS! DEVELOPERS!!!" (Muhar, die Stelle werd ich mir gleich zum dritten Mal ansehen, der Rest ist langweilig)
Ich auch. Dieses "Dev..." ist echt seltsam
*edit*
http://www.youtube.com/watch?v=wvsboPUjrGc Steve Ballmer going crazy
*edit*
http://www.youtube.com/watch?v=bb_9KXyejTU er mag das wort einfach
Verfasst: Samstag 20. Februar 2010, 18:02
von philistion
burli hat geschrieben:Und wie DasIch schon gesagt hat. Es gibt praktisch nichts in der EDV Welt, was nicht irgendwie patentiert ist. Praktisch jedes Element einer GUI dürfte irgend ein Patent haben. Und nur weil Python unter einer liberalen Lizenz steht heißt das nicht, dass Python nicht auch irgendwelche Patente oder Lizenzen nutzt. Nur bisher hat keiner danach gefragt.
Es besteht ein großer Unterschied dazwischen, ob es irgendwo ein absurdes Patent gibt, das vielleicht vor vielen Jahren die ein oder andere Funktionalität vom absurden US-amerikanischen Patentamt zugesprochen bekommen hat, aber niemals eingeklagt werden kann, da "jede" Firma der Welt, auch die ganz großen, auf diese Verfahren setzen und nicht gewillt sind hier noch nachzuzahlen.
Die Wahrscheinlichkeit, dass alle Firmen der Welt von einer einzigen Firma verklagt werden, weil diese angeblich die Fenstertechnologie entwickelt hätte, geht gegen null.
Ganz anders schaut es hingegen bei Produkten wie Mono aus, die von einer Firma dezidiert mit einer proprietären Lizenz entwickelt wurden.
Microsoft hat schon in der Vergangenheit bewiesen, wie sie zur Open Source Bewegung stehen.
Man verweise im Übrigen nur auf den Fall SCO. Die haben sich mit Unterstützung Microsofts mit den ganz großen Firmen wie IBM, etc. angelegt um angebliche Unix-Patentrechtsansprüche im Linux-Kernel einzuklagen.
Von SCO ist heute nicht mehr viel übrig außer Rauch und Asche.
Ich finde, es gibt so viele freie Projekte, die nicht von solchen Problemen betroffen sind und die mindestens genauso plattformunabhängig und meistens sogar noch um einiges ausgereifter sind als proprietäre Lösungen. Warum also eine Technologie eines Konzerns verwenden, der alles daran setzt, sein Monopol weiter auszubauen.
Kann mir irgendjemand Gründe nennen, warum man sich für C# , .Net bzw. Mono entscheidet und nicht für Python (+py2exe u. psyco) oder Java?
Wo liegen da die Vorteile?
snafu hat geschrieben:Was für ein komischer Halbaffe.
Dieses Ballmer goes crazy Video schlägt alles, aber es scheint anzukommen bei den Mitarbeitern, sonst wäre er vielleicht nicht mehr dort wo er jetzt ist.
Verfasst: Samstag 20. Februar 2010, 18:30
von DasIch
Du fragst nicht ernsthaft wo der Vorteil von C# - oder irgendeiner anderen nennenswerten Sprache - gegenüber Java liegt? Abgesehen davon ist Python Deployment unter Windows eine Katastrophe.
Verfasst: Samstag 20. Februar 2010, 18:41
von burli
philistion hat geschrieben:
Kann mir irgendjemand Gründe nennen, warum man sich für C# , .Net bzw. Mono entscheidet und nicht für Python (+py2exe u. psyco) oder Java?
Wo liegen da die Vorteile?
Ich will mal meine subjektive Meinung zusammenfassen.
Python: schlechte Unicode Unterstützung (nicht alle Bibliotheken oder 3rd Party Sourcen nutzen per Default Unicode. Deshalb häufig umständliche Konvertierung nötig), schlechte Performance, keine (schlechte) Unterstützung von Multicore CPU
Java: Alle mir bekannten Java Programme sind Speicherfresser. Eine simple Applikation mit einem Hauptfenster und 1-2 Dialogen frisst 40MB. Die Startzeit von Java Applikationen sind einfach zu lang. Ob das an Java liegt oder unfähigen Programmierern kann ich nicht beurteilen. Ob Java Multicore unterstützt ist mir nicht bekannt.
.NET/Mono: Unicode ist Standard, moderater Speicherverbrauch, hohe Ausführungsgeschwindigkeit, Threading auf Multicore Systemen, Common Type System, um nur die wichtigsten zu nennen.
Warum mir die Punkte wichtig sind? Unicode und Multicore gehört die Zukunft. Außerdem geht der Trend derzeit zu kleineren Systemen mit reduziertem Speicher und wenig Rechenleistung (im Vergleich zu normalen Desktop PCs), aber teilweise auch mit mehreren Kernen.
Was spricht gegen Mono? Eine MÖGLICHE Intervention seitens Microsoft, von der ich nicht wirklich überzeugt bin, dass sie wirklich jemals stattfindet. Was den Vergleich mit SCO angeht:
Microsoft hat die nötigen Technologien freigegeben. Ich bezweifle, dass dies bei den beklagten Technologien der Fall war. Die Panikmache gegen Mono ist Stallmann FUD
Verfasst: Samstag 20. Februar 2010, 18:59
von lunar
@philistion: Aus Deinem Beitrag sprechen Urteile vergangener Zeiten, als Microsoft noch böse(TM) war. So einfach ist das heute nicht mehr, wenn es das überhaupt je war …
.NET ist sicherlich patentbelastet, aber das gilt für jede größere Plattform, und ja, auch und insbesondere für Java. Sun hält diverse Patente an diversen Java-Technologien, und hat diese Patente auch schon rigoros eingesetzt, u.a. gegen freie Projekte (JBoss, iirc) und auch gegen Microsoft. .NET gibt es überhaupt nur deswegen, weil Sun mit der gezogenen Patentwaffe eine JVM-Implementierung durch Microsoft verhindert und Microsoft damit zur Entwicklung einer eigenen Plattform gezwungen hat.
Diverse, in der freien Welt verbreitete Standards sind auch patentbelastet, u.a. das so beliebte ODT. Auch daran hält Sun diverse Patente und nutzt diese, um diesen angeblich freien Standard strikt zu kontrollieren. In dieser ganzen Mono-Patent-Diskussion schwingen vor allem viele alte Vorurteile mit, auf beiden Seiten, auch und vielleicht gerade bei Stallman.
In der Realität aber ist die Benutzung von Mono wahrscheinlich nicht riskanter als die anderer Technologien … patentbelastet ist mittlerweile so ziemlich alles. Es gibt bestimmt eine ganze Anzahl an Patenten auf Bytecode-Interpreter-Technologien, die man wunderbar gegen CPython einsetzen könnte, gäbe es da viel zu holen.
Der Vergleich zwischen .NET und Python hinkt. Python ist eine Sprache, und CPython keine Plattform, sondern nur eine Laufzeitumgebung für diese, eine Sprache. .NET aber ist eine Plattform, und zwar nicht nur für C#, sondern für allerlei verschiedene Sprachen.
Verfasst: Samstag 20. Februar 2010, 19:08
von burli
lunar hat geschrieben:Der Vergleich zwischen .NET und Python hinkt.
Deshalb wollte ich ja einen expliziten Vergleich zwischen Boo und Python, da beide von der Syntax ähnlich sind.
Ansonsten sind die Unterschiede auch nicht so groß. Beide Sprachen steht eine umfangreiche Klassenbibliothek zur Seite, beide Sprachen können auf unterschiedlichen Implementierungen laufen (Mono/.Net vs CPython/Jython/was auch immer). Selbst einen JIT für Python gibt es. Boo kann sowohl interpretiert, compiliert als auch interaktiv genutzt werden.
Alles weitere wie das Common Type System und die unterschiedlichen Sprachen sind dann nur noch schöne Beigaben, die man bei .Net/Mono hat.
Verfasst: Samstag 20. Februar 2010, 19:44
von CM
burli hat geschrieben:Python: schlechte Unicode Unterstützung (nicht alle Bibliotheken oder 3rd Party Sourcen nutzen per Default Unicode. Deshalb häufig umständliche Konvertierung nötig), schlechte Performance, keine (schlechte) Unterstützung von Multicore CPU
Na ja, Punkt 1 dürfte mit 3k hinfällig scheinen, wobei es dauern wird bevor alle Libraries das nutzen. Punkt 2. und 3. hast Du leider recht, da können wir nur warten und hoffen. Allerdings ist das multiprocessing-Modul echt super und der Overhead hält sich in Grenzen. Und dann gibt es noch pyparallel und MPI-bindings. Also, soo schlecht ist es nicht bestellt. Threading allerdings in Python ist performancemäßig oft

... na ja, das Thema GIL kommt oft genug.
edit: Hier vielleicht noch von Interesse:
http://www.python.org/dev/peps/pep-3146/
burli hat geschrieben:Ob Java Multicore unterstützt ist mir nicht bekannt.
Zumindest auf shared-Memory Systemen kann ich das bestätigen. Ansonsten sehe ich Java wie Du.
burli hat geschrieben:.NET/Mono: ...
Mono-Apps mit wine unter Linux ist eine Qual. Ok, das widerlegt Deine Liste nicht, ist aber ein Aspekt.
My € .02
edit: Die Diskussion ist zu weit fortgeschritten, als das ich noch eingreiffen möchte, aber zur Erklärung: Manche .NET-basierten Apps habe ich jedenfalls nicht mit einem nativen mono-Port zu laufen bekommen. Kann an meiner Unfähigkeit liegen ...
Verfasst: Samstag 20. Februar 2010, 20:04
von DasIch
CM hat geschrieben:burli hat geschrieben:.NET/Mono: ...
Mono-Apps mit wine unter Linux ist eine Qual. Ok, das widerlegt Deine Liste nicht, ist aber ein Aspekt.
Ein Glück dass man wine nicht braucht.
Verfasst: Samstag 20. Februar 2010, 20:04
von burli
CM hat geschrieben:Na ja, Punkt 1 dürfte mit 3k hinfällig scheinen, wobei es dauern wird bevor alle Libraries das nutzen.
Das ist der Knackpunt. Es ist zwar Besserung in Sicht, bis das aber flächendeckend verfügbar ist wird es wohl noch eine Weile dauern
CM hat geschrieben:
Punkt 2. und 3. hast Du leider recht, da können wir nur warten und hoffen. Allerdings ist das multiprocessing-Modul echt super und der Overhead hält sich in Grenzen. Und dann gibt es noch pyparallel und MPI-bindings. Also, soo schlecht ist es nicht bestellt. Threading allerdings in Python ist performancemäßig oft

... na ja, das Thema GIL kommt oft genug.
Hier gilt das gleiche. Es geht zwar irgendwie, aber es ist mühsam und die Resultate sind unbefriedigend im Vergleich zu anderen Systemen.
CM hat geschrieben:
Mono-Apps mit wine unter Linux ist eine Qual. Ok, das widerlegt Deine Liste nicht, ist aber ein Aspekt.
Wieso wine? Mono gibts nativ für Linux. Und das funktioniert wunderbar
Verfasst: Samstag 20. Februar 2010, 20:59
von Darii
Dann lies den ersten Artikel mal genauer. Ballmer stört sich an der GPL, nicht an Open Source an sich und daran hat sich vermutlich auch nichts geändert.
Verfasst: Samstag 20. Februar 2010, 21:43
von DasIch
Die Aussage ist nicht gegen Open Source und/oder Freie Software gerichtet sondern gegen die GPL. Desweiteren mag die Formulierung heftig sein aber die grundlegende Aussage findet auch genug Anhänger unter FOSS Leuten, wie sich bei den ganzen BSD/MIT vs. (A)GPL Diskussionen zeigt.
Verfasst: Sonntag 21. Februar 2010, 00:22
von philistion
Na gut, es mögen Vorurteile dabei sein.
Den Artikel habe ich natürlich genau gelesen, ich glaube aber wir brauchen nicht darüber zu diskutieren wie oft sich Palmer in früheren Zeiten schon gegen Open Source im Allgemeinen gewendet hat.
Zugegeben mein zitierter Link war nicht das beste Beispiel, da es sich hier nur um die GPL dreht, er diente hauptsächlich zur Veranschaulichung seiner Radikalität.
Aber es ist noch nicht so lange her, da wurde von seitens Microsoft nicht im geringsten an Open Source gedacht. Das kam erst ins Rollen, als absehbar war, dass das klassische Modell allein keine Zukunft hat.
Du fragst nicht ernsthaft wo der Vorteil von C# - oder irgendeiner anderen nennenswerten Sprache - gegenüber Java liegt?
Nein, meine Frage ist die, inwiefern es im Allgemeinen Vorteile bringt sich für diese ursprünglich von Microsoft ausgehende Plattform zu entscheiden:
Brauche ich Plattformunabhängigkeit und Performance immer zur gleichen Zeit?
Ich habe meist Projekte, die entweder reine GUI-Apps darstellen (wunderbar mit Python realisierbar -> plattformunabhängig), andererseits sehr rechenintensive Applikationen, die schreibe ich dann aber sowieso ganz in C oder zumindest den entscheidenden Teilbereich und dann mittels Swig einbinden.
Habt ihr Anforderungen die beides, also Performance und Plattformunabhängigkeit zur gleichen Zeit fordern, so dass für euch nur Mono am Markt als mögliche Plattform übrig bleibt?
Es spielt natürlich auch ne Menge Sympathie mit, ich selbst bin (wie viele vielleicht nun nicht glauben werden) nicht abgeneigt, mir Mono einmal näher anzusehen, tendiere aber wenn ich die Wahl habe natürlich zu reinen Open Source Projekten die immer frei waren und daher anzunehmen ist dass sich an diesem Status auch weiterhin nichts ändern wird.
Verfasst: Sonntag 21. Februar 2010, 00:39
von DasIch
@philistion Du vergisst die dritte Möglichkeit: Ich nutze Mono weil ich Zugriff auf die Bibliotheken, die ich über die Plattform nutzen kann, haben will und mir die einzige Alternative, die JVM, nicht gefällt.
Deployment für Python Anwendungen ist nicht so toll und der einzige Grund wieso man ausgerechnet zu C greift wenn man mehr Geschwindigkeit haben will ist doch letztendlich das CPython eine API dafür bietet.
Verfasst: Sonntag 21. Februar 2010, 01:37
von Leonidas
DasIch hat geschrieben:@philistion Du vergisst die dritte Möglichkeit: Ich nutze Mono weil ich Zugriff auf die Bibliotheken, die ich über die Plattform nutzen kann, haben will und mir die einzige Alternative, die JVM, nicht gefällt.
Naja, wenn ich Destopapplikationen unter Linux schreiben will dann ist Mono der JVM haushoch überlegen. Gerade heute meinem Vater bei der nutzung von F-Spot zugesehen und es bediehnt sich weitaus besser als Java-Programme es üblicherweise unter Linux tun. Startet schnell, arbeitet flott, integriert sich gut... ne, kann mich jetzt echt nicht beschweren.
Und dieses "Open Source Projekte die immer frei waren" verstehe ich nicht. Mono war eigentlich auch immer frei, sogar in dem Sinne freier als viele GPL-lizensiere Programme. Zudem, Mono ist weitaus länger frei als die Java-Platform. Die ganzen freien Compiler, VMs und GNU Classpath wurden irgendwie nie als vollwertige Umgebung gesehen, da musste erst das OpenJDK kommen. Und auch da gibt es momentan mit dem OpenJDK 7 und der Übernahme durch Oracle Trubel. Bei Mono hingegen ist alles klar: nach Mono 2.6 kommt Mono 2.8 und bringt wieder neue Features/Fixes etc.
Fürs kommende Bachelorpraktikum habe ich übrigens auch geplant Mono einzusetzen. Weil es frei ist. Weil die Sprachauswahl (C#, F#, Fantom) durchaus brauchbar ist. Weil die Integration ins Linux-System gut ist. Weil es viele Features hat.
Und dabei vermeide ich Microsoft-Sachen wirklich ziemlich konsequent. Aber Mono sehe ich nicht als Microsoft-Technologie sondern als gelungene Umsetzung einer guten Idee. Da hat Microsoft halt eben etwas weitergedacht als Sun.
Zum Thema Monkeypatching: finde ich nicht gut und das macht auch unter Ruby öfters Probleme. Wenn man so etwas unbedingt haben will, dann finde ich das Konzept der Impliziten Konvertierungen in Scala schon sinnvoller.
@sma: ``def ()()`` würde ich jetzt einfach ``def apply()`` nennen. Fällt zwar etwas aus dem Rahmen, aber ``__call__`` ist jetzt auch nicht so berauschend.
Verfasst: Sonntag 21. Februar 2010, 08:38
von burli
Mono/.Net hat den Vorteil, dass man nur eine Sprache lernen muss. Dann hat man alles. Man kann ja sogar Webseiten damit programmieren (ASP.NET, ASP.NET MVC). Das MVC Framework finde ich sogar ziemlich gut. Nimmt man Boo kann man sogar Scripte schreiben (weiß nicht, ob das in einer anderen .Net Sprache geht)
Mit Python kann man auch alles machen... bis ihm die Puste ausgeht. Dann braucht man Kenntnisse einer zweiten Sprache. Klar, wenn man es schon kann ist es egal. Aber ich gehe jetzt mal von einem Programmieranfänger aus.
Bleibt nur noch eins. C# ist als .Net Sprache weit verbreitet und ist gut dokumentiert, aber IMHO nicht einsteigertauglich. Boo ist einfacher, aber schlecht dokumentiert. Aber das ist ein Zustand, der sich ändern kann.
Deshalb meine einleitende Frage: ist Boo das bessere Python? Ich finde schon. Es bietet die Vorteile von Python (einfache, aber mächtige Syntax, umfangreiche Klassenbibliothek usw) und bügelt die Nachteile aus (Unicode, Ausführungsgeschwindigkeit, Multicore usw).
Verfasst: Sonntag 21. Februar 2010, 12:02
von BlackJack
@burli: Du widersprichst Dir selbst. Wenn man bei Mono/.NET nur eine Sprache lernen muss, dann wähle ich mal spontan Python (IronPython) -- aber nein, dem geht ja irgendwann die Puste aus, und ich muss doch noch eine zweite Sprache lernen.
Man kann auch nur Java lernen und damit alles machen. Du wirst es nicht glauben -- sogar *Webapplikationen*. Wow. Wer hätte das gedacht.
Deine Gegenüberstellungen sind teilweise auch etwas schief. Beispiel: .NET kann Multicores per Threads benutzen, bei der JVM weisst Du nicht ob's geht, und das kommt bei Dir so rüber als wenn's ein Vorteil von .NET wäre. Tja, auch die JVM kann mehrere Kerne nutzen. Wäre also Gleichstand in diesem Punkt.
Letztendlich geht allen drei Plattformen irgendwann "die Puste aus". Irgend etwas gibt es immer, das man nicht in einer VM machen "kann", entweder weil's nicht geht -- man kann ja nicht einmal alles in C machen wenn's zu nah an die Hardware geht -- oder weil man vielleicht das Eine oder Andere für die jeweilige VM neu schreiben müsste, was es eigentlich schon gut getestet als Bibliothek gibt. Da kann dann CPython IMHO wieder punkten, denn mit `ctypes` eine "shared library" unter Windows und Linux zu "wrappen" ist relativ schmerzlos.
Bei .NET vs. JVM "gewinnt" bei mir die JVM. Mono hängt immer hinterher. Und eine freie Alternative zu den wirklich guten Java-IDEs sehe ich auch nicht.
Das sich Mono-Anwendungen angeblich besser in Linux integrieren, wie hier jemand behauptete, hat IMHO nichts mit der Plattform oder Sprache zu tun, sondern mit dem verwendeten GUI-Toolkit. Man kann bei der JVM ja auch etwas anderes als Swing nehmen. F-Spot sieht unter KDE auch "fremd" aus.
Verfasst: Sonntag 21. Februar 2010, 12:06
von lunar
@BlackJack: .NET hat mit PInvoke ein brauchbares Äquivalent zu ctypes, das nicht schwer zu benutzen ist, und die einfache Einbindung von C-Bibliotheken möglich macht.