Python oder C#? Welche Sprache für einfache Programme?

SteigerMP

Banned
Registriert
Juli 2013
Beiträge
393
Guten Abend,
ich habe mir (mal wieder) vorgenommen das Programmieren einfacher Anwendungen zu erlernen. Ich arbeite im IT-Bereich, benötige aber nicht zwingend Programmierkenntnisse. Bereits während meiner Schulzeit habe ich es mit C# probiert aber schnell die Lust verloren da ich mit Schleifen und dem Syntax nicht zurecht kam. Während meiner Berufsschulzeit gab es dann auch Anwendungsentwicklung aber der Stoff war in den 3 Jahren nicht wirklich hilfreich. Viel Planung und ein wenig SQL und Java. Ich habe mich mehr oder weniger durchgeschlagen aber kein Gefallen gefunden. Wir haben auch nichts großartiges gemacht. Nicht mal einen Taschenrechner. :(

Nun bin ich wieder aus der Übung und möchte es nochmal probieren. Nun weiß ich auch, was ich machen möchte. Zur Auswahl stehen derzeit C# und Python.
Ich möchte einfache Programme schreiben, die nicht schick sein müssen sondern nur funktionieren müssen. Ich dachte zb. an ein Programm dass bestimmte Ordner oder die gesamte Festplatte nach Begriffen absucht und zu einer Art Datenbank zusammenfügt oder Listen anhand eines Wortes genieren, die ähnliche Begriffe enthalten.

Am geeigneten für solche Angelegenheiten erscheint mir Python, da es wohl einfacher ist als C# und dazu auch Plattform unabhängig. Dafür ist eine eigene IDE notwendig. Da ich eh Windows User bin, ist mir die Unabhängigkeit eigentlich nicht so wichtig. Und sollte ich doch einmal Gefallen finden, wäre C# wohl interessanter für größere Projekte mit GUI.

Was meint ihr? Oder kommt noch eine andere Sprache in Frage?
 
Würde C# auf Visual Studio 2012 nehmen. Damit kannst du dann auch für Windows RT und Windows Phone in einem Programmieren.
 
Da ich selbst C# benutze kann ich es nur empfehlen. Dadurch dass du auf eine Menge Windows Funktionen zugreifen kannst geht vieles sehr einfach. Ein Beispiel: FileSystemWatcher, du bekommst Meldung wenn eine Datei irgendwo verändert wurde und kannst gezielt den neuen Eintrag hinzufügen/löschen...
 
Fang ruhig mit Python an, es ist einfacher und universeller für den Anfang. Zum Beispiel lassen sich so einige Anwendungen über Python-Skripte steuern. Vermutlich wirst du die Grenzen von Python nie erreichen, denn hättest du Lust auf Monster-Projekte, dann wärst du schon längst Programmierer.

Auch für's Web ist Python gut brauchbar, über einen Umweg steht auch das Java-API zur Verfügung. Windows RT und Windows Phone wäre für mich keine Motivation, dann kann ich ja gleich für Symbian programmieren ;-)
 
Zuletzt bearbeitet:
Python hat einen REPL. Das ist eine komplizierte Abkürzung für man bekommt sofort Rückmeldung, was man tut. Für Anfänger finde ich sowas ganz schön und ich würde dich nach deiner Beschreibung mal für einen halten. Allgemein haben Skriptsprachen eine recht niedrige Schwelle für den Einstieg, was ich für eine gute Sache halte.

C# mögen hier viele und deshalb wirst du vermutlich einen gewaltigen Schwall von Empfehlungen dazu bekommen. Bei jeder Empfehlung würde ich aber dringend dazu raten, dir zu überlegen, ob die Gründe für dich überhaupt zutreffend sind. Was für eine Rolle spielt es zum Beispiel für dich, dass C# einen FileSystemWatcher hat?

Allgemein ist die Frage, welche Programmiersprache die beste für einen Einsteiger ist, die selbe, als würde man in einem Forum zu Rockmusik fragen, wer der beste Gitarrist ist. Oder welches Mobiltelefon das beste ist. Oder welche Religion denn jetzt die wirklich wahre ist.

TL;DR: Ich benutze weder Python noch C#. Rate zu ersterem. Gründe sind niedrigschwelligererererer Einstieg und klare Rückmeldungen.
 
So ist es, Windows Phone oder RT sind für mich kein Ansporn, genau so wenig wie Android.
Einerseits würde ich gerne auch etwas für Linux entwickeln wollen, wer weiß ob ich in ein paar Jahren immer noch Windows nutze.

Ich habe mich mit Absicht nicht in die Syntax beider Sprachen eingelesen aber vom Gefühl her sehe ich C# als schwieriger an. Es stimmt aber schon, das habe ich noch gar nicht bedacht. Da C# in erster Linie ja für Windows entwickelt wurde, daher sind auch entsprechende Bibliotheken für's Monitoring usw. vorhanden. Ob es dadurch einfacher wird, die ganzen Bibliotheken zu kennen, kann ich noch nicht einschätzen.
Und für C# gibt es weitaus mehr frei zugängliche Tutorials für Einsteiger in deutscher Sprache. Als erstes fällt mir da das Openbook Visual C# 2010 ein. Für Python finde ich nur abgehakte Hello World Einleitungen.
 
Der große Vorteil der starken Integration in Windows ist der große Nachteil von C# und anderen Sprachen, die auf das .NET Framework zielen.
Es gibt implementierungen des Frameworks für andere Plattformen, aber die sind immer nur Bürger zweiter Klasse und können im besten Fall
das nachbauen, was Microsoft vorgibt. Unterstützung für die neuesten Features gibt es immer erst verzögert, wenn überhaupt.

Du deutest an, auf andere Plattformen abzielen zu wollen und dann ist C# eine tendentiell schlechtere Wahl.

Und ob es viel Lehrmaterial gibt ist doch völlig egal. Du wirst ja keine 12 Bücher nebeneinander lesen, sondern höchstwahrscheinlich nur eines.
Wenn es jetzt zu C# eine Million und zu Python nur zweihundert Lehrbücher gäbe, ist es doch egal, so lange du von denen eins nimmst, mit
dem du gut zurecht kommst.

€: Ich finde nur hello world? Srsly? Ohne jemals etwas mit Python gemacht zu haben, wortwörtlich unter eine Minute Google:
http://learnpythonthehardway.org/book/
 
Zuletzt bearbeitet:
Wenn du Programmieren lernen willst solltest du dir schon ein, zwei Bücher gönnen, sei es in Papierform oder auf dem Tablet / eBook-Reader!


Neben einer Programmiersprache noch (als 2. Baustelle) in riesiges API vor sich zu haben, macht es nicht unbedingt leichter. Und später umsteigen könntest du immer noch, aber wie gesagt hab ich noch Zweifel, dass du je an die Grenzen stoßen wirst.
 
C# ist u.a. durch die syntaktische Ähnlichkeit zu Java beliebt. Da Java meistens eine der Sprachen ist die man an Hochschulen usw lernt ist der umstieg recht leicht und C# bietet eine wesentlich bessere Doku und viele Funktionen mehr.

Wenn du Plattform unabhängig programmieren willst würde ich aber auch Python oder eben Java nehmen, wobei Java mit GUI so eine Sache ist.
 
Zuletzt bearbeitet:
finde perl wesentlich angenehmer als python - aber bei deiner wahl würde ich python nehmen (ich arbeite selber mit c# aktuell). für dein Anwendungsgebiet ist perl/Python deutlich mehr geeignet.
 
SteigerMP schrieb:
Nun bin ich wieder aus der Übung und möchte es nochmal probieren. Nun weiß ich auch, was ich machen möchte. Zur Auswahl stehen derzeit C# und Python.

Warum?

Ich dachte zb. an ein Programm dass bestimmte Ordner oder die gesamte Festplatte nach Begriffen absucht und zu einer Art Datenbank zusammenfügt oder Listen anhand eines Wortes genieren, die ähnliche Begriffe enthalten.

Ich würde das in Perl machen. Perl ist "so ähnlich" wie Python, aber viel mächtiger, kompakter und wohl auch am Anfang schwieriger zu erlernen (aber dann!). Obige Problemstellungen benötigen in Perl jeweils höchstens 5 - 10 Zeilen Code. Man müßte natürlich genau wissen, was das Ziel konkret ist, dann könnte man eine kleine Lösung in Perl, Python und C# basteln und vergleichen. Für Perl gibt es ausgezeichnete Einstiegsliteratur und es ist auch überall verfügbar - bei Linux auch grundsätzlich vorinstalliert. Für Windows gibt es zwei "Systeme", einmal Activeperl (auch mit kommerziellem Support möglich) und Strawberry-Perl (frei, damit würdest Du starten). Die wichtigsten Editoren "können" Perl-Syntax anzeigen, mit Activestate Komodo steht eine mächtige (kommerzielle) IDE zur Verfügung (braucht man aber nicht unbedingt als Anfänger). Der sehr gute (freie) Komodo-Editor tuts auch.

Am geeigneten für solche Angelegenheiten erscheint mir Python, da es wohl einfacher ist als C# und dazu auch Plattform unabhängig. Dafür ist eine eigene IDE notwendig. Da ich eh Windows User bin, ist mir die Unabhängigkeit eigentlich nicht so wichtig. Und sollte ich doch einmal Gefallen finden, wäre C# wohl interessanter für größere Projekte mit GUI.

Für "GUI-Progamme" brauchst Du schon C# (oder VB) für den Anfang. GUI-Programme in Perl oder Python gehen zwar, sind aber sicher nicht der Weisheit letzter Schluss. Kleine Tools dagegen schreibt man idealerweise in Perl oder Python, das hat auch enorme Vorteile.

Python und Perl sind sich konzeptionell sehr ähnlich, unterscheiden sich aber natürlich in der Syntax. Mir liegt die Python-Syntax gar nicht, ist mir zu "weitschweifig" und "wortreich". Aber man kann sicher auch alles damit hinbekommen, wenn man Python mag. In Python gilt: einfache Dinge sind einfach, komplizierte Dinge sind fast unmöglich :D .

Was meint ihr? Oder kommt noch eine andere Sprache in Frage?

Wie gesagt: Stelle mal eine kleine konkrete Aufgabe aus dem Aufgabenbereich, der Dir vorschwebt. Dann sehen wir weiter.
 
Zuletzt bearbeitet:
Joa kommt wirklich auf den Aufgabenbereich an, wobei ich für Anfänger C# sehr angenehm finde.
- Man gewöhnt sich an eine Syntax die in vielen anderen Sprachen sehr ähnlich ist:
(Objective-)C/C++/Java/ActionScript/...
-> wenn man weiß was man will, kann man unter Umständen schnell umsteigen oder zumindest auch andere Sprachen schnell lesen.
- Große IDE hin oder her: Intellisense + Doku + F1 bzw. das Visual Studio Gesamtpaket ist doch hilfreich und für Anfänger evtl. schöner. Gibt auch immer was zu entdecken :p
- GUI: Ja du willst jetzt vllt. noch keine GUI machen, aber meiner Erfahrung nach brauch man, gerade wenn man komplett selbstständig Programmieren lernt, immer neue Anregungen und Ziele. Einfach eine Oberfläche hinzuzufügen könnte da eine schöne Sache sein die dich am Ball hält.
- Gerade wenn du doch größeres machen willst, erleichtert dir die Größe von .net die Arbeit. Und das sind nicht alles nur komische Windows Klassen =)
- theoretisch kannst du mit C# genauso gut plattformübergreifend entwickeln wie mit Java o.ä.. Dafür gibts Mono. Musst halt nur drauf achten keine Windows spezifischen Sachen einzubinden.

Generell sind aber alle hier vorgeschlagenen Sprachen eine gute Wahl. Eigentlich muss man es nur einmal durchziehen eine Sprache wirklich zu lernen und zu üben. Dann steht einem die Welt offen :) Dafür musste aber auch die richtigen Wege finden dich zu motivieren :)
 
Zuletzt bearbeitet:
blöderidiot schrieb:
Ich würde das in Perl machen. Perl ist "so ähnlich" wie Python, aber viel mächtiger, kompakter und wohl auch am Anfang schwieriger zu erlernen (aber dann!). Obige Problemstellungen benötigen in Perl jeweils höchstens 5 - 10 Zeilen Code. Man müßte natürlich genau wissen, was das Ziel konkret ist, dann könnte man eine kleine Lösung in Perl, Python und C# basteln und vergleichen.

Python und Perl sind sich konzeptionell sehr ähnlich, unterscheiden sich aber natürlich in der Syntax. Mir liegt die Python-Syntax gar nicht, ist mir zu "weitschweifig" und "wortreich". Aber man kann sicher auch alles damit hinbekommen, wenn man Python mag. In Python gilt: einfache Dinge sind einfach, komplizierte Dinge sind fast unmöglich :D .



Wie gesagt: Stelle mal eine kleine konkrete Aufgabe aus dem Aufgabenbereich, der Dir vorschwebt. Dann sehen wir weiter.

Boah, da kommt mir ja glatt die Suppe hoch. :rolleyes:

  • Mächtiger? Kompakter? Worauf willst du diese Aussage begründen?
  • :freak: In wie fern? Weil es sich in beiden Fällen um Programmiersprachen handelt?
  • Schwachsinn reinsten Wassers. Was ist denn bitte in Python fast unmöglich?

And den OP: Python ist auf jeden Fall eine gute Wahl, und meiner Meinung nach eine deutlich bessere als dieses unglaublich kryptische Perl mit seinen 3000 magischen Variablen ($_*&§€@ ... um's mal übertrieben darzustellen). Die Syntax ist einfach und ohne Schnörkel (und trotzdem reich an Sprachfeatures), die Standard-Bibliothek hervorragend und umfangreich (inklusive Dokumentation) ... was will man mehr?
 
Zuletzt bearbeitet:
Hallo, um es nochmal klarzustellen. Ich möchte eigentlich nur ab und zu kleinere Programme oder Skripts entwickeln, um die alltägliche Arbeit zu erleichtern. Als Beispiel sollen alle Dateien, die mit 11 anfangen auf den Desktop kopiert werden. Oder alle Dokumente (Inhalt sowie Name) auf dem PC sollen nach dem Wörtern "Computer" und "Internet" durchsucht werden und inkl. Pfad in einer Word oder txt Datei gespeichert werden.
Die Programme oder Skripts müssen wie gesagt nicht schön sein und eine schicke Oberfläche bieten. Da schreibe ich dann lieber den Code immer wieder etwas um. Und zum Einsatz kommen die Programme auch nur bei mir Zuhause oder im Büro. Meine Kollegen werden damit schon klar kommen.

Sprich ich habe nicht vor ein erfahrener Programmierer zu werden, eher soll mir zumindest eine Sprache als Mittel zum Zweck dienen. Wenn ich doch noch wirkliches Gefallen dran finde, würde ich tiefer eindringen. Gestehen muss ich ja, leicht fällt es mir nicht. Ich glaube nicht die Logik zum Programmieren zu besitzen, wobei mir SQL nicht so schwer fiel.

Java kann ich seit der Berufsschule nicht leiden und da würde ich auch wieder bei 0 anfangen. C# finde ich auch schon etwas komplexer und sehr Windows-abhängig aber die Sprache gefällt mir irgendwie aufgrund der vielen Möglichkeiten wobei ich diese eh nicht nutzen werde. Perl sagt mir gar nicht zu. Es sieht, wie antred schon schrieb, sehr kryptisch aus.

An Python finde ich immer mehr Gefallen nur habe ich bisher noch keine schöne Einführung/Anleitung gefunden. Der Link von asdfman schaut schon mal umfangreicher als die ganzen deutschsprachigen Tutorials aus, die ich bisher gesehen habe, aber wenn dann muss der Text auf deutsch sein. Nicht dass ich mit englisch nichts anfangen kann aber da es mir schon so nicht leicht fällt alles zu verstehen, möchte ich nicht noch nach Fremdwörtern googlen und den Text 5 mal lesen bis ich's übersetzt habe und den Inhalt verstanden habe.

Könnt ihr mir vielleicht gute,ausführliche Python und C# Tutorials (gerne auch Bücher) empfehlen?
 
Das was du machen willst, macht man unter Linux z.B. mit shell commands bzw. mit einer Komposition aus solchen, also shell Skripten. Die starke shell macht aus meiner Sicht Unixoide auch so attraktiv für ein System, auf dem gearbeitet wird.

Wenn man nun aber an Windows gebunden ist, könnte man sich ja mal das Pendant, die PowerShell ansehen. Das dürfte für deine Belange vermutlich schon reichen.
 
Tumbleweed schrieb:
Das was du machen willst, macht man unter Linux z.B. mit shell commands bzw. mit einer Komposition aus solchen, also shell Skripten. Die starke shell macht aus meiner Sicht Unixoide auch so attraktiv für ein System, auf dem gearbeitet wird.

Wenn man nun aber an Windows gebunden ist, könnte man sich ja mal das Pendant, die PowerShell ansehen. Das dürfte für deine Belange vermutlich schon reichen.

Da würde ich aber trotzdem einer platformunabhängigen Lösung den Vorzug geben, also einer Skriptsprache wie Python, Tcl, Perl, etc. Klar könnte man sich natürlich auch auf Windows eine Unix-Tool-Sammlung wie cygwin installieren und dann trotzdem mit bash und Konsorten arbeiten.
Ergänzung ()

SteigerMP schrieb:
An Python finde ich immer mehr Gefallen nur habe ich bisher noch keine schöne Einführung/Anleitung gefunden. Der Link von asdfman schaut schon mal umfangreicher als die ganzen deutschsprachigen Tutorials aus, die ich bisher gesehen habe, aber wenn dann muss der Text auf deutsch sein. Nicht dass ich mit englisch nichts anfangen kann aber da es mir schon so nicht leicht fällt alles zu verstehen, möchte ich nicht noch nach Fremdwörtern googlen und den Text 5 mal lesen bis ich's übersetzt habe und den Inhalt verstanden habe.

Könnt ihr mir vielleicht gute,ausführliche Python und C# Tutorials (gerne auch Bücher) empfehlen?

Hier schon mal geschaut? :) http://tutorial.pocoo.org/
 
Vielen Dank für die Links. Die werde ich in den nächsten Tagen erst einmal durchforsten. :)
 
Vielen Dank nochmal für eure Tipps. Ich habe mich jetzt für Python entschieden. Es ist zwar nicht so schön und einfach zu nutzen aber die Syntax schaut sehr einfach aus. Kein Vergleich zu dem schrecklichen Java, womit ich mich 3 Jahre quälen musste.
 
C# kannst du auch Unter Linux arbeiten (Mono). MS .NET ist da natürlich vom Compiler her schneller, da Mono die Funktionalitäten vom MS meist nachbildet. Sicher gibt es auch einige Sachen in Mono was .NET nicht kann und umgekehrt.

Python ist auch Oft vertreten. Wenn du aber irgend wann Enterprise Anwendungen programmieren möchtest, dann nimm doch lieber C#. Mittlerweile gibt es schon VS 2013. Ich hatte sehr viel Frust mit VS 2012, daher für alle, lasst die Finger von der Ver-bug-te Version. Hatte nie einen Absturzt von VS 2010, aber 2012... nenene...
 
Zurück
Oben