Wozu ist Python überhaupt fähig?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Shiva420
User
Beiträge: 12
Registriert: Dienstag 16. Februar 2016, 01:42

Hey Leute! :)

Ich habe vor einiger Zeit angefangen Python zu lernen, mich bis jetzt allerdings noch nicht damit auseinander gesetzt wozu Python überhaupt fähig ist.
Daher wollte ich euch einige Fragen stellen um der ganzen Sache ein wenig auf den Grund zu gehen. ;)

1. Kann ich mit Python komplett Grafische Programme herstellen? Also komplett weg von der Konsole und nur GUI?
2. Kann ich mich mit Python in fremde Seiten 'einklinken' um dann (im Hintergrund?) dort z.B. Text in Textfelder einzugeben, Buttons zu klicken, Formulare abzuschicken und Daten gezielt abzufangen? Ich denke da an etwas wie z.B. einen Account Generator für Webseiten bzw. einen Bot für ein Bitcoin Glücksspiel. :lol:
3. Kann Java/C#/C++ was Python nicht kann? Wie weiß ich zu welcher Sprache ich greifen soll?

Ich hoffe die Fragen sind nicht zu Panne. :roll:
Danke euch für jede Hilfe! ;)
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Shiva420 hat geschrieben:1. Kann ich mit Python komplett Grafische Programme herstellen? Also komplett weg von der Konsole und nur GUI?
Ja.
2. Kann ich mich mit Python in fremde Seiten 'einklinken' um dann (im Hintergrund?) dort z.B. Text in Textfelder einzugeben, Buttons zu klicken, Formulare abzuschicken und Daten gezielt abzufangen? Ich denke da an etwas wie z.B. einen Account Generator für Webseiten bzw. einen Bot für ein Bitcoin Glücksspiel. :lol:
Ja.

3. Kann Java/C#/C++ was Python nicht kann? Wie weiß ich zu welcher Sprache ich greifen soll?
Grundsätzlich ist es eher so dass bestimmte Dinge in einer Sprache einfacher sind als in einer anderen. Es ist selten dass man etwas in einer Programmiersprache gar nicht könnte, in einer anderen aber schon. Wenn du Programme für Windows schreibst macht es z.B. Sinn C# zu nehmen weil dass halt die Sprache ist die alle einschliesslich Microsoft dafür nehmen um Windows Anwendungen zu schreiben. Das muss man nicht tun aber man ist damit halt besser im Ökosystem integriert.

Grundsätzlich kannst du mit Python alles tun was du auch mit Java oder C# tun könntest. C++ erlaubt ein paar Dinge die man mit Python nicht machen könnte.

Welche Sprache du "nehmen" solltest hängt vom Projekt ab und die Antwort könnte durchaus sein nimm mehrere. Bei Web Anwendungen oder Computerspielen hast du mindestens 2-3 Programmiersprachen.
Shiva420
User
Beiträge: 12
Registriert: Dienstag 16. Februar 2016, 01:42

Das hört sich soweit ja schon einmal super an!
Ich habe irgendwo flüchtig gelesen dass es wohl möglich sein soll seinen Python Code fast problems in einem Zug in C(#/[++]) bzw Java Code übersetzen lassen zu können - Ist das soweit richtig oder stelle ich es mir vllt. einfacher vor als es ist?
So könnte ich im Notfall ja ein Python Programm für Windows User umübersetzen, oder? :)

Danke für die Hilfe soweit!
Greetz!
BlackJack

@Shiva420: Das ist nicht wirklich möglich. Python ist dazu zu verschieden zu C#, C++, und Java. Man kann das nicht einfach und sinnvoll komplett in eine dieser Sprachen übersetzen, weder manuell, noch automatisiert. Es sei denn man beschränkt sich auf Spracheigenschaften von Python die sich leicht in eine andere Zielsprache übersetzen lassen, allerdings stellt sich dann die Frage warum man nicht gleich in der anderen Sprache programmiert.

Es gibt Python-Interpreter für .NET (IronPython) und die JVM (Jython) und mindestens je einen Compiler der Python zu C oder C++ kompilieren kann, aber diese Ansätze in eine andere Sprache zu übersetzen haben dann entweder immer noch die Abhängigkeit zu CPython oder es ist nur eine Untermenge von Python verwendbar.

Man kann auch Python-Programme unter Windows laufen lassen. Dazu muss man die nicht in eine andere Sprache übersetzen.
Shiva420
User
Beiträge: 12
Registriert: Dienstag 16. Februar 2016, 01:42

Alles klar, dann halte ich mich in den anderen Sprachen ebenfalls Fit. :lol:
So wie ich das jetzt alles verstanden habe sollte es ja kein Problem sein wenn ich etwas kleineres wie z.B. einen Scraper in Python-Only umsetze.
Oder wenn ich Python-Only für Programme benutze die ausschließlich für mich gedacht sind.
Sollte ich etwas erstellen wollen was eher zum Verkauf gedacht ist bzw. größer/umfangreicher ist, so binde ich ebenfalls die C Reihe bzw Java mit ein bzw beschränke mich eher auf diese Sprachen.

Klingt ein bisschen schwammig, aber hoffe so in etwa könne man das ausdrücken. :)
Vielen Dank Leute! Mehr folgt ggf. nacher. :oops: :lol:
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Shiva420 hat geschrieben:So wie ich das jetzt alles verstanden habe sollte es ja kein Problem sein wenn ich etwas kleineres wie z.B. einen Scraper in Python-Only umsetze.
Oder wenn ich Python-Only für Programme benutze die ausschließlich für mich gedacht sind.
Sollte ich etwas erstellen wollen was eher zum Verkauf gedacht ist bzw. größer/umfangreicher ist, so binde ich ebenfalls die C Reihe bzw Java mit ein bzw beschränke mich eher auf diese Sprachen.
Python ist nicht Perl :twisted: .

Du solltest die Sprache für ein Projekt wählen, die am meisten Sinn für das Projekt macht und nicht pauschal sagen, Programme die in Python geschrieben taugen nicht für eine Projektgröße > X. Man kann auch Programme die in Python geschrieben sind verkaufen (Source: Hab ich schon gemacht).
the more they change the more they stay the same
Shiva420
User
Beiträge: 12
Registriert: Dienstag 16. Februar 2016, 01:42

Schon klar dass man keine genaue Aussage treffen kann :lol:
Was mir die Wahl der Sprache nur so schwer macht ist die Tatsache das ja wie bereits gesagt man im Grunde jedes Programm mit fast jeder Sprache lösen kann. :x
Wenn die Möglichkeit das Problem mit einer Sprache zu lösen kein Anhaltspunkt ist, was denn dann? :oops:

Danke euch!
BlackJack

@Shiva420: Die eigenen Vorlieben, Vorgaben vom Auftraggeber, bestehende Programme und Infrastruktur, irgendwelche Hypes, Kollegen und deren Können/Vorlieben, und so weiter. Und dann gibt es natürlich auch noch Probleme die tatsächlich nicht mit jeder Sprache sinvoll lösbar sind. Embedded/Mikroprozessor-Kram kann man je nach Hardware mit Assembler, C, BASIC-Dialekten vom Chiphersteller, oder Forth lösen, ein grösseres Programm für den Desktop würde man heute eher in keiner dieser Sprachen mehr angehen, auch wenn es theoretisch möglich wäre.

Man wird als Programmierer in der Regel mehr als eine Sprache lernen, sollte sich aber auch bewusst sein, dass das wirkliche beherrschen einer Sprache Jahre dauert und auch regelmässiges ”praktizieren” erfordert. Man kann also nicht beliebig viele Sprachen bis zu einem Level lernen wo man sagen kann, dass man in der Sprache zuhause ist.

Welche Sprachen man lernen soll(te), ist dann leider eine sehr schwierige Entscheidung, kommt letztendlich auch ein bisschen darauf an was man beabsichtigt zu programmieren. Webentwicklungen werden um JavaScript kaum herum kommen, andererseits gibt es Programmierer von Anwendungen oder hardwarenahen Sachen, die mit JavaScript nichts zu tun haben. Man kann prima mit C# auskommen, ohne sich jemals Java angesehen zu haben. Aber umgekehrt geht es natürlich auch. Und wenn man neu ist, muss man halt irgendwo anfangen. Vielleicht nicht gerade mit C++ oder VisualBasic. :-)
Shiva420
User
Beiträge: 12
Registriert: Dienstag 16. Februar 2016, 01:42

Alles klar, mit dieser Aussage kann ich arbeiten. :)
Dann werde ich mich mal ransetzen und gucken was so mein Ziel ist und mich noch ein wenig erkunden. :)
Vielen lieben Dank für eure schnelle Hilfe! :D
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

BlackJack hat geschrieben:Embedded/Mikroprozessor-Kram kann man je nach Hardware mit Assembler, C, BASIC-Dialekten vom Chiphersteller, oder Forth lösen, ein grösseres Programm für den Desktop würde man heute eher in keiner dieser Sprachen mehr angehen, auch wenn es theoretisch möglich wäre.
Da hast du grundlegend recht. Aber es gibt auch microPython: https://github.com/micropython/micropython

Also als Fazit würde ich sagen, das man mit Python sehr viel erschlagen kann, wenn es nicht sogar die flexibelste Sprache überhaupt ist.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

@jens: Naja, microPython würde ich nicht wirklich als Python bezeichnen. Das ist eine Untermenge von Python und da würde ich glaube ich doch lieber eine andere Sprache verwenden, die besser auf wenig Ressourcen eingerichtet ist, als Python soweit zurechtzustutzen bis es auf das obere Ende von solchen kleinen Systemen passt.
LanX
User
Beiträge: 92
Registriert: Samstag 20. Februar 2010, 12:46

Dav1d hat geschrieben:Python ist nicht Perl :twisted: .
Mind to elaborate, please?
LanX
User
Beiträge: 92
Registriert: Samstag 20. Februar 2010, 12:46

Dav1d hat geschrieben:
Shiva420 hat geschrieben: Sollte ich etwas erstellen wollen was eher zum Verkauf gedacht ist bzw. größer/umfangreicher ist, so binde ich ebenfalls die C Reihe bzw Java mit ein bzw beschränke mich eher auf diese Sprachen.
Python ist nicht Perl :twisted: .
also ich wäre immer noch interessiert sachliche Argumente zu hören ... kommen die irgendwann?
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

LanX hat geschrieben:also ich wäre immer noch interessiert sachliche Argumente zu hören ... kommen die irgendwann?
Was gibts da zu argumentieren? Python ist nicht Perl.
the more they change the more they stay the same
BlackJack

@LanX: Du kommst zu einem Thema und fragst mit Beiträgen die nach Streit suchen klingen nach sachlichen Argumenten? :-D

Sachliche Argumente *wofür* überhaupt? Was hättest Du denn gerne belegt? Das Python nicht Perl ist? Das sollte offensichtlich sein… ;-)
LanX
User
Beiträge: 92
Registriert: Samstag 20. Februar 2010, 12:46

BlackJack hat geschrieben: Das Python nicht Perl ist? Das sollte offensichtlich sein… ;-)
Das weißt du doch dass, es in Python einfacher sei größere Applikationen zu schreiben.

wer PyPi mit CPAN vergleicht oder sich mit SysAdmins über die Versions Dependencies und Testqualität vieler Python "Module"
unterhält merkt schnell, dass es eher umgekehrt ist.

Aber hey ich fange ja an Argumente zu bringen, wo aus der Python "Community" meistens nur Dissing kommt ...

Proof me wrong!
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@LanX:

Warum Community in Anführungszeichen? Welches Dissing? Apropos Dissing - lies einfach nochmal Deinen letzten Beitrag ;)

Python ist nicht Perl -

Sachliche Gründe:
- andere Syntax
- verschiedene Interpreter/Implementationen
- unterschiedlicher Fokus der Sprachentwickler in puncto Lesbarkeit, syntaktischer Kompliziertheit (nicht Komplexität ;))

Unsachliche Gründe:
- Perl ist schöner
- Perl ist besser
- Perl ist schneller, weiter, höher
- mit Perl kann man Golf spielen

In puncto Codequalität und Sicherheitsproblemen ist die Standardlib von CPython ganz vorne mit dabei - also nicht alles glauben, was Leute, auch in Foren so von sich geben ;)
LanX hat geschrieben:Proof me wrong!
Ehm nein, nur weil Du das gerne hättest, muss das hier keiner tun.
LanX
User
Beiträge: 92
Registriert: Samstag 20. Februar 2010, 12:46

@Jerch:

Thema verfehlt!

die Aussage war "es sei in Python einfacher größere Applikationen zu schreiben"

Die von dir aufgestellten Behauptungen stammen nicht von mir,

Ich warte immer noch auf Belege zu Dav1d's Aussage

Vielleicht lerne ich ja was neues über Python?

Oder gehört es nicht hierher über Python Fragen zu stellen?
Zuletzt geändert von LanX am Dienstag 8. März 2016, 15:39, insgesamt 1-mal geändert.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@LanX:
Ah ich hab eine Leseschwäche - hilf mir bitte auf die Sprünge, wo das so behauptet wurde. Danke.
LanX
User
Beiträge: 92
Registriert: Samstag 20. Februar 2010, 12:46

jerch hat geschrieben:@LanX:
Ah ich hab eine Leseschwäche - hilf mir bitte auf die Sprünge, wo das so behauptet wurde. Danke.
viewtopic.php?f=1&t=38036#p291583
Antworten