Gizmo
Anmeldungsdatum: 6. Januar 2005
Beiträge: 377
|
Hallo zusammen! Ich programmierte bis jetzt vor allem mit Java, aber Java scheint für die Programmierung unter Linux nicht unbedingt die beste Wahl zu sein (GUI, Lizenz). Nun bin ich auf der Suche nach einer Alternative. C++ zu lernen möchte ich vermeiden, da ich auf Dinge wie Garbage-Collection nicht verzichten will. Momentan denke ich vor allem an Python/Ruby. Allerdings gibt es dort noch einige Kleinigkeiten, welche mir Fehlen oder nicht so sind wie ich es gerne hätte. Ich will auf jeden Fall eine Objektorientierte Sprache (Was auf beide zutrifft). Auch hätte ich gerne eine Alternative zu den Interfaces bei Java. Bei Python gibt es dafür Mehrfachvererbung und ich glaube für Zope wurde auch sowas wie Interfaces implementiert. Für Ruby gibt es Mixins, geht aber soweit ich weiss in eine ähnliche Richtung wie Mehrfachvererbung. Auf die Garbage-Collection will auch nicht verzichten, sowas bieten auch beide Sprachen. Bei Reflection dasselbe. Was mir bei den Sprachen fehlt, bzw. ich noch nicht gefunden habe ist etwas wie http://java.sun.com/j2se/1.5.0/docs/api/. Wo ich die vorhandenen Klassen und deren Methoden sowie auch Kommentare dazu sehe. Auch eine Möglichkeit sowas selbst zu generieren wäre toll. Das ganze sollte dann noch in die IDE integriert sein (Wie bei Eclipse). Etwas anderes, das ich bis jetzt nicht gefunden habe, ist die Möglichkeit der Code-Completion. Wenn ich in Eclipse nach einem Objekt einen "." mache und ctrl + space drücke, sehe ich eine Liste mit Methoden/Attributen auf die ich zugreifen kann, sowie deren Datentypen/Parameter und auch eine Erklärung dazu. In Eclipse kann ich auch einfach bei einer Klasse/einem Attribut/einer Methode direkt zu implementation davon wechseln. Ich hoffe es eine Sprache/IDE welche wenigstens einen Teil meiner Wünsche erfüllt. Wenn ich meine Wünsche nochmals so lese, habe ich selbst das Gefühl, ich sei bloss auf der Suche nach einem besseren Java. Wichtig ist mir vorallem, in der IDE zu sehen, welche Methoden ein Objekt hat und von dort direkt zur Dokumentation springen zu können. Ausserdem will ich für KDE entwickeln. Als weitere Alternative sehe ich noch C# welches aber zumindest momentan wegfällt, da bei mir Mono - warum auch immer - nicht richtig funktioniert. Gambas gibt es auch noch, habe ich mir aber nicht genauer angeschaut, scheint nicht sehr verbreitet zu sein. Grüsse Gizmo
|
adun
Anmeldungsdatum: 29. März 2005
Beiträge: 8606
|
Tja am besten spielt du einbißchen mit Code und entscheidest dich dann. Bei Ruby muß ich dich allerdings warnen, nachdem du die Sprache beherrschst, wirst du jedesmal fluchen, wenn du eine andere benutzen mußt. (außer vll lisp oder smalltalk) Das Problem der Sprache war bis vor einiger Zeit die Dokumentation. Nicht jeder spricht fließend japanisch. Aber dann wurde uns eine Bibel geschenkt, das "pickaxe". Ungültiges MakroDieses Makro ist nicht verfügbar Die erste Version ist inzwischen frei erhältlich und wurde sogar ins deutsche übersetzt http://home.vr-web.de/juergen.katins/ruby/buch/index.htmlDie zweite Version gibt es für ~20 Eur als pdf oder für etwas mehr als Buch und ist definitiv ihr Geld wert. Über Symbole bis gems, alles super erklärt. Nix zu meckern. Ich würde das Pdf vorziehen. Eine Suchfunktion ist schon was feines. (achja richtig heißt das Buch "The Pragmatic Programmer's Guide, Second Edition") Vollwertige mehrfach Vererbung wurde mit Absicht nicht implementiert, da ist c++ abschreckend genug. Als Mittelweg zwischen c++ und Java wurde wie du schon richtig angesprochen hast die Mixins über Module gewählt. Ganz im Sinne des Ruby ways. Diese Api-Funktion heißt bei Ruby Rdoc (funktioniert haargenau so). Dieses wird, wenn du es willst, automatisch angelegt. Sehr praktisch, man ist fertig mit proggen und die Doku ist es auch. Ein Rdoc server kommt mit gems (der Rubypaketmanager, wie apt) gleich mit...
|
mawe
Anmeldungsdatum: 18. November 2004
Beiträge: 172
|
Hi! Ich empfehle Dir Python. Was bei Ruby Rdoc ist, heisst bei Python pydoc (wie überraschend 😉). Damit kannst Du die Doku als Text oder HTML durchstöbern, und genauso eigene Doku als Text oder HTML erstellen. Speziell für KDE-Programmierung gibts PyKDE ☺ Hier noch 2 Links für Dich: Python + KDE Tutorial, GUI Programming with Python: QT Edition Gruß, mawe
|
Apollon
Anmeldungsdatum: 27. Oktober 2004
Beiträge: 724
Wohnort: Darmstadt
|
mawe hat geschrieben: Hi! Ich empfehle Dir Python. Was bei Ruby Rdoc ist, heisst bei Python pydoc (wie überraschend 😉). Damit kannst Du die Doku als Text oder HTML durchstöbern, und genauso eigene Doku als Text oder HTML erstellen. Speziell für KDE-Programmierung gibts PyKDE ☺ Hier noch 2 Links für Dich: Python + KDE Tutorial, GUI Programming with Python: QT Edition Gruß, mawe
Und passend dazu: http://www.die-offenbachs.de/detlev/eric3.html Wieso eigentlich kein C++? Wenn man mit Qt/KDE programmiert, braucht man eher selten Zeiger. Die API der Libs ist mindestens so sauber wie die der JAVA und die Dokumentation ist auch ausfuehrlich: http://doc.trolltech.com/4.0/index.html. Aber Du wirst sicherlich deine Gruende haben und Python scheint wirklich gut geeignet.
|
Gizmo
(Themenstarter)
Anmeldungsdatum: 6. Januar 2005
Beiträge: 377
|
Danke für eure Antworten! Ich tendiere bisher eher zu Ruby, obwohl mir die Syntax bei Python besser gefällt. Ruby scheint bei der Entwicklung für KDE schon weiter zu sein, ist auch besser integriert in KDevelop. Mit ruby-doc.org habe ich auch ein gutes Nachschlagewerk gefunden. Auch gibt es bei Ruby Archive wie .jars bei Java. Dokumentation habe für Ruby habe ich auch in KDevelop integriert gefunden, ich bin froh, wenn ich die Entwicklung möglichst vollständig in der IDE abwickeln kann und dort auch Nachschlagewerke finde. Mir fehlt allerdings noch ein wenig die Unterstützung durch die IDE, welche ich mich von Eclipse gewohnt bin. Gibt es keine IDE, welche mir von einer Klasse/einem Objekt die Methoden/Attribute mit Kommentaren anzeigt? Bis jetzt hörte ich vor allem Empfehlungen, allerdings nicht viele neue Dinge. Gibt es vielleicht jemanden, der mit mehreren Sprachen Erfahrung hat und mir die Vor- und Nachteile aufzeigen kann? @Apollon Ich denke C++ ist zu kompliziert und ich muss dabei zuviel selbst machen. Mein Ziel ist es möglichst Schnell zum Ziel zu kommen, dies ist meiner Meinung nach (Auch wenn ich C++ eingentlich nicht kenne, bloss ein wenig C) mit Python/Ruby besser gewährleistet. Klar bietet C++ auch eine grosse Funktionalität, aber wenn ich die brauche, kann ich sie immernoch in C++ schreiben. Sollte kein Problem sein aus Python/Ruby darauf zuzugreifen. Eric habe ich mir schon angeschaut, erfüllt leider nicht wirklich meine Anforderungen - Auflistung von Methoden und Parametern - oder habe ich etwas übersehen? Vermutlich bin ich einfach zu verwöhnt. Ich habe halt gerne eine Sprache/IDE die mir zeigt, was sie kann und auch noch schreibt man es anwendet, dann muss ich nicht alles Nachschlagen und Auswendig wissen. Wie sieht es mit Gambas aus? Hat da jemand Erfahrung? Sieht eigentlich ganz gut aus. Wieso ist das nicht so verbreitet? Für C# scheint es nicht viel für KDE zu geben. Weiss jemand warum das so ist? Ich könnte mir vorstellen, dass .NET durch Mono für Linux zunehmend von Bedeutung sein wird. Unter Windows wird sich .NET vermutlich als Standard durchsetzen (Meine Ansicht), und für Firmen wird es einfach sein, die Applikationen auch unter Linux anzubieten. Vermutlich werden auch viele Umsteiger froh sein, wenn sie unter Linux mit der gleichen Sprache weiterarbeiten können. Leider scheint hier KDE momentan aussen vor zu bleiben, was ich sehr schade finde, da KDE (Meiner Meinung nach) ein sehr sehr guter Desktop ist. Allgemein habe ich das Gefühl, dass es für Gtk/Gnome viel mehr möglichkeiten zum Programmieren gibt. Ich meine damit vor allem Sprachanbindungen. Trotzdem scheint es (Meine Ansicht) für KDE mehr und bessere Software zu geben, wieso ist das so? Grüsse Gizmo
|
Mossi
Anmeldungsdatum: 6. Juli 2005
Beiträge: 381
Wohnort: Regensburg
|
Ob es für KDE mehr oder bessere Software gibt, will ich mal bezweifeln. Die Software wirkt irgendwie professioneller finde ich, wobei das auch nur ein Eindruck sein kann der oft täuscht. Wenn man allerdings sieht, was dahinter steckt, ist das ziemlich klar. QT als Framework ist ein mächtiges Werkzeug hinter dem eine Menge Geld steckt. Anders als GTK ist QT auf kommerzieller Basis entwickelt und erfüllt daher ganz andere Voraussetzungen. Ich will jetzt damit nicht sagen, dass das GTK-Framework schlecht oder minderwertig ist, das mit Sicherheit nicht. Aber QT hat einfach mehr Möglichkeiten zur Weiterentwicklung und man merkt das auch, wenn man die verschiedenen Versionen vergleicht, wie schnell es dabei voran geht. Die meisten KDE-Programme sind in C++ geschrieben. Durch das QT-Framework ist das auch relativ einfach finde ich. Ich persönlich bin eigentlich kein Freund von C++ aber für KDE-Anwendungen nehme ich es mittlerweile nur noch her. Man kommt recht schnell rein und an die Tücken durch Speicherlecks und solche Sachen gewöhnt man sich schnell und lernt sie zu umgehen. Mit C# würde ich noch warten. Ja. Unter Windows setzt es sich durch und verbreitet sich rasend schnell. Das sehe ich alleine schon bei meinem Arbeitgeber, der mittlerweile sogar vor hat eine Platform, die schon seit über 10 Jahren läuft auf C# zu portieren. Das ist keine Arbeit an der man mal einen Praktikanten hin setzt sondern hier redet man von einer Größenordnung von 1000 Manntagen. Also ein gewaltiges vorhaben, das durchgesetzt werden soll, weil in der Sprache Zukunft gesehen wird. Unter Linux wäre ich damit aber vorsichtig. Irgendwie hab ich ein dummes Gefühl dabei, wenn ich mir vorstelle, dass Microsoft etwas unterstützt, das kostenlos erhältlich ist. Da du speziell für KDE entwickeln willst, wie du geschrieben hast, würde ich dir eigentlich auch zu Phyton raten. Ich hab es zwar selber noch nicht ausprobiert muss ich zuegeb, aber was man so liest und hört, scheint es eine gute Wahl zu sein. Wichtig ist eigentlich vor allem meiner meinung nach, dass man eine Sprache verwendet, welche eine direkte Schnittstelle zur QT-Api aufweisen kann. Aber da hat man eigentlich auch schon so ziemlcih freie Wahl. Wenn man sich dann ein wenig mit der API auseinander gesetzt hat, will man dann meist eh das ganze etwas direkter machen und schon ist man wieder bei C++ ☺
|
Gizmo
(Themenstarter)
Anmeldungsdatum: 6. Januar 2005
Beiträge: 377
|
Ich denke nicht, dass es ein Problem ist, mit C# unter Linux zu arbeiten. Es wurde ja alles Standardisiert und wird neben Microsoft noch von anderen Herstellern kontrolliert. Das einzige Problem, das ich mir vorstellen könnte, wäre es, wenn MS etwas unternimmt weil Mono WinForms auch nachimplementiert. Die Meisten, die unter Linux mit C# programmieren werden wahrscheindlich eh nicht mit WinForms arbeiten. Und wenn ein Hersteller seine Software auf Linux portieren will, muss er nur das GUI auswechseln (Sollte bei einem gut programmierten Programm keine so grosse Sache sein). Viele empfehlen mir hier Python, nur weiss ich nicht genau warum, welche Vorteile hat Python gegenüber Ruby? Immerhin wurde Ruby nach Python entwickelt, somit sollte es auch einige Vorteile gegenüber Python haben. Gibt es für eine der Sprachen (Gambas mal ausgeschlossen) eine IDE die sowas http://gambas.sourceforge.net/2004-03-14.png unterstützt (automatic completion)? Dieses Feature finde ich sehr praktisch. Wie sieht es aus, wenn ich Methoden von C oder C++ Software verwenden will? Ich habe mich ein wenig umgeschaut, schien als sei dies mit Python einfacher. Weil es mehr Tools dafür gibt. Weiss jemand etwas über Gambas? Gibt es für C# eine Anbindung an KDE (Habe was von Kimono gelesen, war aber glaube ich ein Aprilscherz...)?
|
mawe
Anmeldungsdatum: 18. November 2004
Beiträge: 172
|
Hi! Gizmo hat geschrieben:
Immerhin wurde Ruby nach Python entwickelt, somit sollte es auch einige Vorteile gegenüber Python haben.
Interessante Theorie ☺ Wenn ich mir die Geschichte der Programmiersprachen so ansehe, bezweifle ich aber dass sie richtig ist ☺ Ich finde, wenn Du Dich zwischen Ruby und Python entscheiden willst, schau dir beide an und nimm die die Dir eher zusagt. Das ist grösstenteils Geschmackssache (und Diskussionen darüber werden meist schnell emotional, was Dir nicht sehr viel bringt 😉). Gizmo hat geschrieben:
(automatic completion)? Dieses Feature finde ich sehr praktisch.
DrPython. Ist überhaupt ein sehr nützliches Tool. Gruß, mawe
|
Gizmo
(Themenstarter)
Anmeldungsdatum: 6. Januar 2005
Beiträge: 377
|
mawe hat geschrieben: Gizmo hat geschrieben:
Immerhin wurde Ruby nach Python entwickelt, somit sollte es auch einige Vorteile gegenüber Python haben.
Interessante Theorie ☺ Wenn ich mir die Geschichte der Programmiersprachen so ansehe, bezweifle ich aber dass sie richtig ist ☺
Ich sage nicht, dass diese Theorie immer richtig ist und auch nicht, dass Ruby nur Vorteile gegenüber Python haben sollte. Der Erfinder von Ruby hat Ruby entwickelt weil er weder mit Perl noch mit Python vollständig zufrieden war. Momentan teste ich Ruby ein wenig, was ich bis jetzt gesehen habe gefällt mir. Vermutlich fällt die Entscheidung auf Ruby.
|
Apollon
Anmeldungsdatum: 27. Oktober 2004
Beiträge: 724
Wohnort: Darmstadt
|
Gizmo hat geschrieben: [...] Momentan teste ich Ruby ein wenig, was ich bis jetzt gesehen habe gefällt mir. Vermutlich fällt die Entscheidung auf Ruby.
"Gefallen" sollte im Idealfall nicht das Entscheidungskriterium sein. "Fuer jeden Zweck das richtige Tool", heisst die Devise. 😉
|
Gizmo
(Themenstarter)
Anmeldungsdatum: 6. Januar 2005
Beiträge: 377
|
Apollon hat geschrieben: "Gefallen" sollte im Idealfall nicht das Entscheidungskriterium sein. "Fuer jeden Zweck das richtige Tool", heisst die Devise. 😉
Wäre cool, wenns sowas gäbe, aber alle Sprachen haben ihren eigenen Anwendungsbereich. Höchstens wenn ich im Hexeditor arbeiten würde, hätte ich ein Werkzeug, welches alles kann. Dafür würden der Komfort und die Plattformunabhängigkeit wegfallen.
|
Apollon
Anmeldungsdatum: 27. Oktober 2004
Beiträge: 724
Wohnort: Darmstadt
|
Vielleicht haette ich besser "Fuer jeden Zweck das passende Tool" schreiben sollen. (Programmiersprachen sind auch "tools")
|
Gizmo
(Themenstarter)
Anmeldungsdatum: 6. Januar 2005
Beiträge: 377
|
@Appollon Ich habe die schon richtig verstanden. Ich bin allerdings der Ansicht, dass es kein "Für jeden Zweck passendes Tool" gibt. Die viele moderne Programmiersprachen bieten möglichkeiten um die Dinge zu programmieren, welche ich programmieren will. Die Frage ist halt welche Programmiersprache mir den höchsten Komfort bietet.
|
Apollon
Anmeldungsdatum: 27. Oktober 2004
Beiträge: 724
Wohnort: Darmstadt
|
Ok. Ich war mir halt nicht sicher. Deine Antwort war ein wenig diffus. Ansonsten: Use whatever you like. 😉
|
Gizmo
(Themenstarter)
Anmeldungsdatum: 6. Januar 2005
Beiträge: 377
|
Stimmt, meine Antwort war unklar. Versuche eben gerade herauszufinden was ich will. Dabei kann ich vermutlich nicht viel falsch machen, da beides coole Sprachen sind.
|