PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auswahl Sprache/Technologie > Zweck


Marscel
2007-01-29, 09:58:53
Tag zusammen,
gestern hab ich aus Langeweile und Aktionslust ein wenig das Internet nach allem, was
Softwareentwicklung angeht, durchforstet.
Etwas erstaunt war ich über die Vielfalt der Möglichkeiten, was man mit einigen Sprachen
schon machen kann, wo überall schon mehr oder minder auf .NET migriert worden ist und
was es alles für Bindings gibt (z.B. PHP-Qt, Java-GTK uvm.).
Fasziniert davon hab ich mich entschieden, anstatt alles frickelnd auszuprobieren, mich auf ein paar
Dinge für ein paar Bereich festzulegen. Dafür bräuchte ich eure Empfehlungen für Technologien und
Sprachen.

Ich suche etwas geeignetes für:

1.) Lokale, kleine Tools
Beschreibung: Dateisystemverwaltung, Rechenaufgaben lösen, ein paar Dinge automatisieren (vgl. mit Linux-Shell-Scripts)
Anforderung: möglichst auf Windows und Linux nutzbar; wenn es funktionierende Bindings zu einem GUI-Kit gibt, wäre toll (für Meldungen, kleine Fenster)
Python, Perl? GTK, wxW? ...?

2.) mittlere Tools
Beschreibung: Daten über Netzwerk verschicken, einfache Clienten, Server, Textparser, Datenbankbrowser
Anforderung: möglichst auf Windows und Linux nutzbar; ich brauche GUIs, die ich nicht unbedingt wie unter C++ mit WinAPI erstellen will; Datenbankanbindung (ODBC, ggf. JDBC); Stringfunktionen
Java? Swing? .NET? (Mono für Linux? Naja, ich weiß nicht) ...?

3.) Systemnahe Programme
Beschreibung: Herumspielen mit OpenGL/DX, Windows-Systemfunktionen
Anforderung: Das, was in der MSDN zu Windows steht, sollte durchführbar sein, möglichst
großes Feld an Libs

Hier habe ich, wenn es darauf ankam, mit C/C++ gearbeitet, das funktionierte auch ganz gut bisher. Was mich allerdings immer ein wenig genervt hat, dass es nicht gerade easy ist, "mal eben" eine GUI zu erstellen (mit der WinAPI und Resourcen), zudem ist mit Tutorials auch nicht allzu rosig in dem Bereich aussieht. Wenn man kein VC++ 6 hat, musste ich mir soweit OS-Quelltexte durchsuchen. Achja, bitte nichts mit MFC!
Ich suche also kompletten Zugriff auf die WinAPI ODER, wenn das .NET Framework etwas derartiges bietet, meinetwegen auch das. Und abhängig davon, welches GUI-Kit? (Nein, bitte nicht Qt.)

Und was Web-Anwendungen angeht: Da holt mich nichts von PHP5 mit eAcc weg, da hab ich Apache, muss ich nicht lange Bindings und Frameworks suchen und hab inzwischen alles, was ich brauche. Einzig JSP und Servlets könnten mich, wenn es einen guten Grund gibt, weglocken. Aber das bitte nicht weiter diskutieren. ;)

Und wenn, abgesehen von Punkt 3, auch noch was Mac-fähiges dabei ist, umso besser (kommt nämlich auch mittelfristig).

Für eure Ratschläge wäre ich dankbar, ich will raus aus dem Auswahldschungel. Ich bin für alles offen, solange es praktikabel, gut dokumentiert und eine Verbreitung hat, sodass ich im Falle von Fragen auch Antworten finden kann.

:)

Simon
2007-01-29, 10:59:47
Für alles, was du aufgelistet hast, eignet sich Python wunderbar ;) Hat auch verschiedene Bindings an GUI Toolkits (GTK, QT, wxWidgets, etc.), DB-Anbindung usw. Nur mit DX arbeiten kannst du damit nicht, aber OpenGL geht. IDEs gibt es auch etliche, teilweise sogar sehr gute IDEs (Eric, SPE).

Marscel
2007-01-29, 12:44:15
Ok, werd ich mir angucken. Andere Frage, weil ich, was Python im Webbereich angeht, nicht so die besten Erfahrungen gemacht habe: Welche Version?

Als ich damals mit 2.4 gearbeitet habe, funktionierten/existierten gut die Hälfte aller AddOns, die ich so brauchte, nicht für Windows. Es musste alles über 2.3 laufen, mittlerweile gibt es ja schon 2.5.

Simon
2007-01-29, 13:01:46
Ok, werd ich mir angucken. Andere Frage, weil ich, was Python im Webbereich angeht, nicht so die besten Erfahrungen gemacht habe: Welche Version?
Ich würde die aktuelle 2.5 nehmen.

Als ich damals mit 2.4 gearbeitet habe, funktionierten/existierten gut die Hälfte aller AddOns, die ich so brauchte, nicht für Windows
In welcher Sprache waren denn die Addons verfasst? :|

Marscel
2007-01-29, 13:09:38
In welcher Sprache waren denn die Addons verfasst? :|

Ich hab es irgendwann sein gelassen, pys manuell zu verteilen (wenn man Abhängigkeiten im Durchgehen/Zählen von Dateien klären muss, wird es mir zu heikel), ein Script oder Installer sind mir da lieber.

Ansonsten hast du Recht, ich werd mein Glück mit 2.5 dann mal auch so probieren. =)

Marscel
2007-01-29, 22:10:19
Hatte ich gesagt, dass ich mit Python AddOns schlechte Erfahrung gemacht habe?

Ich hab den halben Abend damit verbracht, aus der _mysql.c eine MySQL Library für Python 2.5 zu erstellen. Gut, dass ich nicht ganz unbewandert bin, was sowas angeht, nur leider hab ich nach allem Hin- und Hergehacke ganze 4 dlls produziert, die nicht sprechen wollen, wenn ich "import MySQLdb" ausführe, kommt keine Fehlermeldung aber auch sonst nichts.

Ob nun mit VC++ EE oder GCC, abgesehen davon waren 3 Fehler in der Datei drin, die ich irgendwie hingebogen habe (obs deswegen nicht geht?).

Kann mir irgendwer da helfen, hat sich vielleicht je unter Windows für Py2.5 das MySQL Modul gebaut? Oder irgendwelche anderen Tipps, ich wäre jedenfalls dafür dankbar. (Sowas hab ich bei PHP nie...) :ueye:

Simon
2007-01-29, 22:27:09
Also Python hat doch standardmäßig etliche Module für die Anbindung von DB dabei? :|

Suche hat ergeben: Installer für Python-MySQL (http://sourceforge.net/project/showfiles.php?group_id=22307&package_id=15775&release_id=408321)
Vielleicht hilft das: MySQL mit Python abfragen (http://www.linux-magazin.de/Artikel/ausgabe/2002/06/python-api/python-api.html)

Was spricht denn gegen Python DB-API v2 (http://www.python.org/dev/peps/pep-0249/)?

Ich hab bis jetzt nur PostgreSQL DB mit Python angesprochen und das ging wunderbar einfach mit den eingebauten Modulen...

Marscel
2007-01-29, 22:34:54
Suche hat ergeben: Installer für Python-MySQL (http://sourceforge.net/project/showfiles.php?group_id=22307&package_id=15775&release_id=408321)
Vielleicht hilft das: MySQL mit Python abfragen (http://www.linux-magazin.de/Artikel/ausgabe/2002/06/python-api/python-api.html)

Der Installer ist für Python 2.4. Und die darin enthaltene Library ist auch gegen 2.4 gelinkt worden, womit ich also nicht allzu viel anfangen kann.

Was spricht denn gegen Python DB-API v2 (http://www.python.org/dev/peps/pep-0249/)?

Das ist ein Link zu einer Spezifikation. Worunter auch das besagt MySQL-Modul aufgeführt ist, womit ich die Schwierigkeiten habe.

Ich hab bis jetzt nur PostgreSQL DB mit Python angesprochen und das ging wunderbar einfach mit den eingebauten Modulen...

Wo sind die denn (in meinem Fall)? Ich hab keinen derartigen Hinweis gefunden.

Simon
2007-01-29, 23:11:16
Der Installer ist für Python 2.4. Und die darin enthaltene Library ist auch gegen 2.4 gelinkt worden, womit ich also nicht allzu viel anfangen kann.
Dann nimm doch Python 2.4, wenn dir die Version eh egal ist ;)
Ich kann ja morgen mal auf Windows probieren (wenn ich es nicht vergesse ;D ).



Das ist ein Link zu einer Spezifikation. Worunter auch das besagt MySQL-Modul aufgeführt ist, womit ich die Schwierigkeiten habe.
Ops :redface:


Wo sind die denn (in meinem Fall)? Ich hab keinen derartigen Hinweis gefunden.
Wie gesagt, ich kenn nur PostgreSQL und da heißt das Modul "pgdb". Für MySQL scheint es aber nix derartiges zu geben, so dass du wohl diesen einen Treiber brauchst....

Marscel
2007-01-30, 17:52:22
Schon Ok, danke. Ich habs hinbekommen, irgendwo im Internet geistert eine inoffizielle Version rum.

Silpion
2007-01-31, 10:32:48
Bei kleinen und mittleren Tools würde ich es davon abhängig machen, ob du für die jeweilige Aufgabe externe Bibliotheken benötigst. Wenn du alles selbst machst oder die Bibliothek in Java verfügbar ist, würde ich die Programme mit Java erstellen, das läuft automatisch auf Windows und Linux, eine Oberfläche ist auch schnell zusammengeklickt und vor allen Dingen ist es recht unkompliziert.

Oft bleibt bei Bibliotheken aber nur C++ übrig, da muss ich zumindest oft ein wenig basteln, bis alles gefunden wird, dann läuft es aber auch gut. Bei Multiplatform-GUIs habe ich bisher auf Qt gesetzt, mit anderen habe ich keine Erfahrung.

Wenn du für Windows programmierst, bietet sich .NET natürlich an, der Einstieg ist recht leicht und es ist komfortabel wie Java. Als Sprache bietet sich C# an, aber ich habe es bisher nur mit C++ genutzt. Native Bibliotheken lassen sich problemlos in .NET einbinden.

darph
2007-01-31, 11:04:17
Wenn du für Windows programmierst, bietet sich .NET natürlich an, der Einstieg ist recht leicht und es ist komfortabel wie Java. Als Sprache bietet sich C# an, aber ich habe es bisher nur mit C++ genutzt. Native Bibliotheken lassen sich problemlos in .NET einbinden.
Und durch das Mono-Projekt sollte sich das mit der Plattformunabhängigkeit von .net auch relativieren. :)

Silpion
2007-01-31, 23:14:35
Schon, aber das ist die gleiche Sache wie mit nativen Bibliotheken und Bindings für andere Programmiersprachen, es hinkt zeitlich deutlich hinterher. :(