python vs java

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
BlackJack

Beitragvon BlackJack » Donnerstag 7. Juni 2007, 15:01

@lunar: Dann solltest Du mal den entsprechenden Admins auf die Füsse treten, doch bitte so ein Partnerprogramm in Gang zu bringen. Es ist wichtig, dass aus unseren Schulen gut ausgebildetes und auf die Standardprodukte konditioniertes Humankapital auf den Arbeitsmarkt freigesetzt wird. :-)
lunar

Beitragvon lunar » Donnerstag 7. Juni 2007, 15:04

BlackJack hat geschrieben:@lunar: Dann solltest Du mal den entsprechenden Admins auf die Füsse treten, doch bitte so ein Partnerprogramm in Gang zu bringen. Es ist wichtig, dass aus unseren Schulen gut ausgebildetes und auf die Standardprodukte konditioniertes Humankapital auf den Arbeitsmarkt freigesetzt wird. :-)

Es gibt keinen wirklichen Admin an unserer Schule... da herrscht die "falsche Zeit, falscher Ort" Mentalität...

Zwei Jahre Infounterricht im Rahmen von G8 und es gibt immer noch keinen einzigen ausgebildeten Informatiklehrer an unserer Schule... kein Wunder, dass Excel und Word den Lehrplan beherrschen, für alles andere fehlen nämlich Kompetenzen...

Alles in allem: Gut, dass ich diesen Ort in einem Monat für immer verlasse :D
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Beitragvon BlackVivi » Donnerstag 7. Juni 2007, 15:57

lunar hat geschrieben:
BlackJack hat geschrieben:@lunar: Dann solltest Du mal den entsprechenden Admins auf die Füsse treten, doch bitte so ein Partnerprogramm in Gang zu bringen. Es ist wichtig, dass aus unseren Schulen gut ausgebildetes und auf die Standardprodukte konditioniertes Humankapital auf den Arbeitsmarkt freigesetzt wird. :-)

Es gibt keinen wirklichen Admin an unserer Schule... da herrscht die "falsche Zeit, falscher Ort" Mentalität...

Zwei Jahre Infounterricht im Rahmen von G8 und es gibt immer noch keinen einzigen ausgebildeten Informatiklehrer an unserer Schule... kein Wunder, dass Excel und Word den Lehrplan beherrschen, für alles andere fehlen nämlich Kompetenzen...

Alles in allem: Gut, dass ich diesen Ort in einem Monat für immer verlasse :D
Als ob es im Moment viele andere staatliche Schulen geben würde, die das haben oO...

Kenn keine.
rolgal_reloaded
User
Beiträge: 309
Registriert: Dienstag 24. Oktober 2006, 19:31

Beitragvon rolgal_reloaded » Donnerstag 7. Juni 2007, 18:47

Wie gut die Mailbenachrichtungen wieder funktionieren, kann man an diesem Thread hier sehen. Ab bzw. inkl. Leonidas Antwort habe ich nur durch Zufall jetzt gesehen.

Dabei funzte das wirklich mal gut :?

LG

r_r
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 8. Juni 2007, 13:12

BlackJack hat geschrieben:Die Frage ist, ob man als Schüler nicht sowieso legal an eine kostenlose Windowslizenz kommen kann.

Meiner Erfahrung nach: nein, zumindest nicht an meiner Schule. Eine Windows-Lizenz habe ich zwar nie gebraucht, aber das Visual Studio 6 und Visual Studio .NET 2003 musste ich mir als Schülerlizenz kaufen. Ok, zugegeben - es war im Vergleich zum Normalpreis *wesentlich* billiger.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
dst
User
Beiträge: 27
Registriert: Mittwoch 28. Februar 2007, 23:42

Beitragvon dst » Freitag 8. Juni 2007, 17:48

Ich habe nicht alles gelesen, da mir das meiste beim Überfliegen eher OT erschien,
daher verzeihung, falls ich etwas schreibe, was doch schon besprochen wurde.

Meiner Ansicht nach hat dein Lehrer recht. Java ist die bessere Sprache zum lernen.
Natürlich ist der Schreibaufwand etwas größer, aber ich halte es nur für Vorteilhaft,
Typen usw. explizit anzugeben.

Die implizite Typisierung von Scriptsprachen hat zwar durchaus ihre Vorteile, aber
sollte erst dann erfolgen, wenn man dieses Konzept überhaupt verinnerlicht hat
und gewissenhaft genug arbeiten kann um Typfehler zu vermeiden.

Wenn Du eine Scriptsprache als Alternative vorstellen möchtest, würde ich dir
eher zu ActionScript 2 raten. Diese bringt die objektorientierte Art von Java
mit der Objektbasierten Weise von JavaScript (die ja durchaus Ähnlichkeiten
mit Python hat) zusammen.
Natürlich ist man etwas eingeschränkter was die Anwendungsfälle angeht, da
ActionScript (bzw. Flash) in erster Linie auf das Browserplugin ausgelegt ist,
aber für Übungsaufgaben dürfte sich da doch einiges finden lassen.

Als freie IDE kann ich FlashDevelop empfehlen. Das ist rein auf ActionScript
ausgelegt (bietet daher keine grafische Oberfläche für Zeitleisten, Tweens und
den ganzen Schnickschnack), bringt einen Compiler mit und ist ansonsten recht
schlank und einfach zu installieren. Basiert allerdings auf .NET und ist daher
Windows-Only (naja, vielleicht gibt es auch einen Mono-Port, weiß ich aber nicht).
lunar

Beitragvon lunar » Freitag 8. Juni 2007, 18:13

dst hat geschrieben:Meiner Ansicht nach hat dein Lehrer recht. Java ist die bessere Sprache zum lernen. Natürlich ist der Schreibaufwand etwas größer, aber ich halte es nur für Vorteilhaft, Typen usw. explizit anzugeben.

Die implizite Typisierung von Scriptsprachen hat zwar durchaus ihre Vorteile, aber sollte erst dann erfolgen, wenn man dieses Konzept überhaupt verinnerlicht hat und gewissenhaft genug arbeiten kann um Typfehler zu vermeiden.


Wieso? Bei Java merkt man die Typfehler bei der Kompilierung, bei Python eben bei der ersten Ausführung in Form von entsprechenden Exceptions. Alternativ helfen pylint & co. den Quellcode ohne Ausführung zu überprüfen.
Ich denke nicht, dass da ein großer Unterschied ist.

Ansonsten helfen während der Debugphase auch gezielte print oder assert Statements, um Typfehler zu finden...
dst
User
Beiträge: 27
Registriert: Mittwoch 28. Februar 2007, 23:42

Beitragvon dst » Freitag 8. Juni 2007, 20:51

Das kann aber, gerade für Einsteiger, ein großer Unterschied sein. Hast verschiedene
Objekte, bei denen sich ein Teil der Methodennamen überschneidet, kann es sein,
dass ein Script 99% der Zeit ohne Exceptions abläuft, möglicherweise hin und wieder
ein unerwartetes Ergebnis entsteht, möglicherweise aber nicht mal das.
Sowas ist selbst für einen erfahrenen Programmierer nicht immer leicht zu entdecken.
Einen Anfänger (und darum dürfte es sich im Informatikunterricht wohl hauptsächlich
handeln) auf eine umfangreiche Bugjagd zu schicken, dürfte wenig bringen.
Mag sein, dass pylint einem dabei hilft (habe ich noch nicht benutzt).

Aber darum ging es mir eigentlich weniger. Dynamische Typisierung setzt eigentlich
voraus, dass man das Prinzip der Typisierung überhaupt erstmal realisiert und
das geht sicherlich besser, wenn man explizit festhalten muss, was für ein Typ
an einer bestimmten Stelle erwartet wird.

Ich möchte Python damit nicht schlecht machen, oder Java preisen. Ich bin
aber der Ansicht, dass Python als Lernsprache kaum Vorteile, dafür aber einige
Nachteile, bietet und zwar sehr ähnlichen Gründen, warum ich es als Blödsinn
empfinde, irgendjemandem PHP als Einsteigersprache zu empfehlen (was ja
immer wieder gern gemacht wird).
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Beitragvon birkenfeld » Freitag 8. Juni 2007, 21:00

dst hat geschrieben:Das kann aber, gerade für Einsteiger, ein großer Unterschied sein. Hast verschiedene
Objekte, bei denen sich ein Teil der Methodennamen überschneidet, kann es sein,
dass ein Script 99% der Zeit ohne Exceptions abläuft, möglicherweise hin und wieder
ein unerwartetes Ergebnis entsteht, möglicherweise aber nicht mal das.

Ich denke, ich spreche hier für jeden Python-Programmierer, wenn ich sage: Das ist FUD, verbreitet von "static typing"-Anhängern.

Theoretisch ist das natürlich möglich, in der Praxis mir zumindest jedoch nie bewusst passiert.

Was dagegen hin und wieder passiert, sind Tippfehler bei Attributnamen oder lokalen Variablen, und genau da hilft pylint.

Sowas ist selbst für einen erfahrenen Programmierer nicht immer leicht zu entdecken.

Wenn es denn vorkäme.

Aber darum ging es mir eigentlich weniger. Dynamische Typisierung setzt eigentlich
voraus, dass man das Prinzip der Typisierung überhaupt erstmal realisiert und
das geht sicherlich besser, wenn man explizit festhalten muss, was für ein Typ
an einer bestimmten Stelle erwartet wird.

Dass man das Prinzip von Datentypen kapieren muss, ist klar, nur kann ich nicht verstehen, wie Typdeklarationen dabei helfen sollen. Wenn ich schreibe ``x = 1``, sehe ich genauso deutlich, dass hier ein Integer vorliegt.

Ich möchte Python damit nicht schlecht machen, oder Java preisen. Ich bin
aber der Ansicht, dass Python als Lernsprache kaum Vorteile, dafür aber einige
Nachteile, bietet und zwar sehr ähnlichen Gründen, warum ich es als Blödsinn
empfinde, irgendjemandem PHP als Einsteigersprache zu empfehlen (was ja
immer wieder gern gemacht wird).

Da sind wir uns ja einig ;)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
lunar

Beitragvon lunar » Freitag 8. Juni 2007, 21:26

dst hat geschrieben:Das kann aber, gerade für Einsteiger, ein großer Unterschied sein. Hast verschiedene Objekte, bei denen sich ein Teil der Methodennamen überschneidet, kann es sein, dass ein Script 99% der Zeit ohne Exceptions abläuft, möglicherweise hin und wieder ein unerwartetes Ergebnis entsteht, möglicherweise aber nicht mal das.


Und das kommt wie oft in der Praxis vor? Vor allem bei den eher einfach strukturierten Programmen von Newbies?

Richtig: fast nie (eigentlich wirklich nie)

Aber darum ging es mir eigentlich weniger. Dynamische Typisierung setzt eigentlich
voraus, dass man das Prinzip der Typisierung überhaupt erstmal realisiert

Das ist bei statischer Typisierung nicht anders...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 8. Juni 2007, 21:35

dst hat geschrieben:Dynamische Typisierung setzt eigentlich voraus, dass man das Prinzip der Typisierung überhaupt erstmal realisiert und das geht sicherlich besser, wenn man explizit festhalten muss, was für ein Typ an einer bestimmten Stelle erwartet wird.

Hallo dst!

Ich bin nicht deiner Meinung. Ich komme von Visual Basic und wie du vielleicht weißt, muss man dort auch jede Variable vorher mit ``dim <Variable> as <Variabletyp>`` dimensionieren bzw. zur Verfügung stellen. "Variant" mal ausgenommen. Aber wer in VB 6 viel "Variant" verwendet, kann zusehen, wie das Programm langsamer wird...

Als ich Python lernte, wollte ich alles mit irgendeinem Typ fixieren. Dann wollte ich wie mit "dim" alle Variablen, die ich benutze vorher fixieren. Mein Gedanke war, wenn ich die Variablenamen später falsch schreibe, dann können unerklärliche Fehler auftauchen. Wenn ich einer Variable einen falschen Typ zuweise, dann können später Fehler auftauchen.

Also habe ich mich am Anfang sehr schwer auf die Art von Python einstellen können. Es hat mir also absolut NICHTS gebracht, dass ich vorher von einer Sprache gekommen bin, in der nichts ohne fixe Typisierung geht.

Kein Vorteil durch die jahrelange Praxis mit Programmiersprachen, die eine fixe Typisierung erzwingen!

Was ist mit den Schreibfehlern bei Variablenamen? Die gibt es nicht. Ich hatte noch nie einen Fehler im Programm, der auf eine falsch geschriebene Variable zurück zu führen ist. Warum nicht? Ich verwende eine spitzenmäßige IDE --> WingIDE. Allein schon die automatische Codevervollständigung von WingIDE verhindert solche Fehler. Es fällt schon während dem Schreiben von Code auf, wenn eine Variable verwendet wird, die noch nicht zugewiesen wurde. Wenn ich zehn Zeilen vorher die Variable "hallo" definiert habe und ich schreibe "halo", dann reagiert die IDE anders als wenn ich wieder "hallo" hin schreibe. Es gibt also eine optische Unterscheidung -- schon beim Schreiben des Codes. Codevervollständigung sei Dank.

Ich muss mich jedes Mal dazu zwingen, Änderungen an alten VB 6 Programmen zu programmieren. Alles ist umständlicher. Für Probleme, die ich mit Python und wxPython in ein paar Stunden fertig habe, verbrate ich mit VB oft noch Tage.

Einziger Grund, weshalb man Python keinen Anfängern beibringen sollte: "Wer Python kennt, will mit nichts Anderem mehr programmieren." :P Jemandem Java nach Python beizubringen ist eine schwere Aufgabe. Es wird nicht viele Schüler geben, die darin einen Sinn sehen. Jede Java-Seite wird mit Python-Zeilen verglichen werden. :lol:

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
dst
User
Beiträge: 27
Registriert: Mittwoch 28. Februar 2007, 23:42

Beitragvon dst » Freitag 8. Juni 2007, 23:19

birkenfeld hat geschrieben:
dst hat geschrieben:Das kann aber, gerade für Einsteiger, ein großer Unterschied sein. Hast verschiedene
Objekte, bei denen sich ein Teil der Methodennamen überschneidet, kann es sein,
dass ein Script 99% der Zeit ohne Exceptions abläuft, möglicherweise hin und wieder
ein unerwartetes Ergebnis entsteht, möglicherweise aber nicht mal das.

Ich denke, ich spreche hier für jeden Python-Programmierer, wenn ich sage: Das ist FUD, verbreitet von "static typing"-Anhängern.

Theoretisch ist das natürlich möglich, in der Praxis mir zumindest jedoch nie bewusst passiert.

Was dagegen hin und wieder passiert, sind Tippfehler bei Attributnamen oder lokalen Variablen, und genau da hilft pylint.

Sowas ist selbst für einen erfahrenen Programmierer nicht immer leicht zu entdecken.

Wenn es denn vorkäme.

Also ich habe es schon mehrmals miterlebt (soweit ich mich erinnere aber noch nicht selbst produziert ;-)) und zwar genau nach dem Prinzip.

Code: Alles auswählen

sub foo(bar):
    if bar.pruefe_irgendwas():
      bar.normalerweise()
   else
      bar.selten()


Es wird ein Objekt übergeben, dieses hat zwar die Benötigten Methoden (die "selten" evtl. auch nicht, was die ganze Sache einfacher macht, aber auch ärgerlich ist, wenn das Programm in seltenen Fällen abstürzt), die haben aber nicht ganz das erwartete Ergebnis.
Bei größeren Geschichten werden dann schon mal mehrere Stunden in Ablaufverfolgungen gesteckt.
Aber ich halte dynamische Typisierung gar nicht für schlechter als statische, obwohl ich z.B. Type-Hinting in einer dynamisch getypten Sprache für eine nette Idee halte. Dadurch können nämlich wiederum einige Codezeilen gespart werden. Bei Python würde das aber wohl eher nicht ins Konzept passen.

birkenfeld hat geschrieben:
Aber darum ging es mir eigentlich weniger. Dynamische Typisierung setzt eigentlich
voraus, dass man das Prinzip der Typisierung überhaupt erstmal realisiert und
das geht sicherlich besser, wenn man explizit festhalten muss, was für ein Typ
an einer bestimmten Stelle erwartet wird.

Dass man das Prinzip von Datentypen kapieren muss, ist klar, nur kann ich nicht verstehen, wie Typdeklarationen dabei helfen sollen. Wenn ich schreibe ``x = 1``, sehe ich genauso deutlich, dass hier ein Integer vorliegt.

Klar, beim kleinen "Hello World!" oder 1x1. Wenn nur noch mit Namen, Referenzen oder wie immer es in der jeweiligen Sprache gearbeitet wird, nützt das überhaupt nichts.

birkenfeld hat geschrieben:
Ich möchte Python damit nicht schlecht machen, oder Java preisen. Ich bin
aber der Ansicht, dass Python als Lernsprache kaum Vorteile, dafür aber einige
Nachteile, bietet und zwar sehr ähnlichen Gründen, warum ich es als Blödsinn
empfinde, irgendjemandem PHP als Einsteigersprache zu empfehlen (was ja
immer wieder gern gemacht wird).

Da sind wir uns ja einig ;)

Das ist ja immerhin eine Basis ;)


Edit: Um das nochmal klar zu sagen: Ich will dynamisch typisierte Sprachen gar nicht verdammen (sonst würde ich mich wohl kaum mit Python beschäftigen ;-)), ich bin nur der Ansicht, dass sich das Typkonzept mit einer statisch typisierten Sprache besser verdeutlichen lässt.
Ich habe mittlerweilige einige Leute beim Einstieg in die Programmierung begleitet (jaja, klingt irgendwie bescheuert - habe keine Lust mir eine neue Formulierung auszudenken ;-)) und dabei beobachtet, dass das OOP-Denken dadurch wesentlich leichter fällt.
Erfahrene Programmierer haben das ohnehin im Kopf, wissen was sie tun und (so sollte es jedenfalls sein ;-)) warum sie es tun. Einsteiger sind eine ganze Weile nahezu völlig planlos, selbst wenn sie schon vorzeigbare Ergebnisse erzielen.
Gerolds Erfahrungen kann ich überhaupt nicht teilen. Ich bin mit dynamisch typisierten Sprachen angefangen (okay, meine ersten Programmiererfahrungen habe ich mit C64-Basic gemacht, aber das zähle ich nicht), nämlich mit Perl und einigen anderen.
Die Konfrontation mit Java hat mich das definitiv zu einem besseren Programmierer gemacht.
Python soweit zu verinnerlichen, dass ich mein erstes (kleineres) Python-Programm für den produktiven Einsatz schreiben konnte hat mich trotz meiner Begeisterung für Java keine 30 Minuten gekostet.

Ein guter Python-Programmierer bin ich deswegen natürlich trotzdem noch lange nicht, das kommt nur mit der Erfahrung (und bislang kann ich Python eigentlich nur für kleinere Insellösungen einsetzen, was ich sehr schade finde).
Die Erfahrung ist es aber, auf die es bei jeder Sprache ankommt. Ein erfahrender PHP-Programmierer kann trotz der mangelhaften Sprache gute Programme schreiben. Ein unerfahrener Python-Programmierer kann trotz der relativen Einfachheit viel Müll programmieren.
BlackJack

Beitragvon BlackJack » Samstag 9. Juni 2007, 09:45

Man kann auch in Java Müll produzieren und die statische Typisierung zwingt nicht unbedingt zum Nachdenken über Typen. Ich habe bei Java-Anfängern auch schon gesehen, dass einfach die Vorschläge der IDE eingesetzt wurden oder solange rumprobiert wurde bis der Compiler nicht mehr meckerte, ohne das sich wirklich *Gedanken* gemacht wurden.

Da muss man sich bei Python vielleicht sogar mehr Gedanken über Typen machen, weil einem das die IDE und der Compiler nicht abnehmen. Jedes Objekt hat einen Typ und wenn man das nicht beachtet, fällt einem das auf die Füsse. Eben zur Laufzeit und nicht zur Übersetzungszeit.

Da kommt jetzt das Argument, dass diese Fehler nur auffallen, wenn man den entsprechenden Code auch ausführt. Wenn das passiert, hat man bei den Tests geschlampt. Tests gehören heute bei nicht-trivialen Quelltexten zum guten Ton. Das sollte man auch Anfängern beibringen. "Typprüfung" ist auch nur ein Teil den Tests abdecken, weshalb sie in statisch typisierten Sprachen nicht einfach weggelassen werden dürfen. Die statische Typisierung verhindert nämlich nicht, dass in Quelltext, der nur in 0,1% der Fälle durchlaufen wird, logische oder semantische Fehler stecken, die im Gegensatz zu Typfehlern vielleicht gar keine Ausnahmen auslösen, sondern einfach nur still und leise falsche Ergebnisse produzieren. Das ist etwas was auch in statisch typisierten Sprachen erst nach dem 10000 Programmlauf auffallen kann. Obwohl es vielleicht schon 100 mal vorher auftrat, und man schon eine ganze Weile kaputte oder verfälschte Daten auf der Platte hat und damit vielleicht sogar weitergearbeitet und eine Menge Folgefehler produziert hat.

Ich finde Python ist eine bessere Sprache zum lernen als Java. Man kann mit Python mehr lernen, weil mehr Programmierkonzepte möglich sind. Es hat eine sehr einfache und übersichtliche Syntax, die nicht vom wesentlichen ablenkt. Das fängt mit dem viel zitierten "Hello World"-Vergleich zwischen Python und Java an. Man muss bei Python nicht sagen, dass dieser ganze Boilerplate-Quelltext drumherum erst später erklärt wird.

Ein weiteres Plus ist der Interpreter. Man kann Code "live" ausprobieren und damit herumspielen. Dabei kann man eine Menge lernen und wenn man Zweifel hat, seine Theorien über das Verhalten von Funktionen und Objekten direkt überprüfen. Und man kann auch jederzeit mit `type()` nachschauen welchen Typ man vor der Nase hat. Wobei sich natürlich noch die Frage stellt ob der Typ wirklich so wichtig ist, schliesslich zählt das Verhalten des Objekts mehr.

Man kann in Python mit Funktionen anfangen, prozedural und funktional programmieren und dann zu Klassen übergehen. Generische Funktionen wie `map()` und `filter()` sind in Java nicht machbar. Da stehen leider die "checked exceptions" im Wege. Python ist in gewissem Sinne "objektorientierter" als Java. In Python ist alles ein Objekt, inklusive Funktionen und Klassen. Und mit Generatoren kann man das Konzept von "lazy evaluation" mit relativ wenig syntaktischem Aufwand zeigen. "Closures" sind auch ganz witzig.

Bei Deinen Beobachtungen schreibst Du, dass das "OOP-Denken dadurch [Typkonzept] wesentlich leichter fällt." Leichter als was? Hast Du direkte Vergleiche zu Python, in ausreichender Zahl?

Was ist OOP-Denken? Ich habe jedenfalls die Erfahrung gemacht, dass Leute die Java gelernt haben, unter OOP einerseits nur das verstehen was Java kann. Andererseits aber zu OOP Sachen dazuzählen die nicht zwingend zu OOP gehören. OOP braucht minimal Objekte, Kommunikation zwischen diesen Objekten und Vererbung. Was nicht zwingend dazugehört sind Klassen, Interfaces, dass die Kommunikation auf synchrone Prozeduraufrufe beschränkt ist und Zugriffsschutz. Kapselung und Zugriffsschutz werden von Java-Adepten auch gerne als Synonym aufgefasst, dabei sind das unabhängige Konzepte.

Was das lernen von Algorithmen angeht, abstrahiert Python weiter von der Maschine als Java. Oft kann man den Kernalgorithmus aus dem Lehrbuch nahezu 1:1 in Python-Quelltext übersetzen. Es gibt ja auch den Spruch "Python ist ausführbarer Pseudocode". Man kann bei der Formulierung einer Problemlösung näher am Problem bleiben und muss sich nicht so sehr auf die Ebene der Maschine herunter bewegen. Was hat man davon den Pseudocode aus dem Buch nochmal als Python vorliegen zu haben? Man kann ihn ausprobieren, variieren und im Interpreter inspizieren. Erfahrbar machen.
rolgal_reloaded
User
Beiträge: 309
Registriert: Dienstag 24. Oktober 2006, 19:31

Beitragvon rolgal_reloaded » Samstag 9. Juni 2007, 09:59

Mit input() und raw_input() kann man gut demonstrieren wie wichtig es ist sich über den Datentyp Gedanken zu machen bzw. die Unterschiede an sich gut demonstrieren.

Sie konnten dann eigentlich selber schon ganz gut erkennen, wo wir echte Zahlen brauchen, die der Benutzter eingeben soll und wo wir eigentliche nur das Zeichen davon brauchen - z. Bsp. Auswahl in einem Menü.

Freilich setze ich mittelfristig dann nur auf raw_input() und wir wandeln den Typ entsprechend um.

Aber das ist so eine Sache, das ist eine gute Gelegenheit mal was los zu werden.

Auch hier im Fourm habe ich schon des öftereren einen Tipp für Anfänger wie diesen gelesen: Nimm niemals input() .....nur raw_input() und wandel den Typ entsprechend um,

Ahja, aber wenn der/die Gute keine Ahnung hat was der Unterschied zwischen 5 und "5" ist, ist dieser Vorschlag Nonsens.

LG

rolgal_reloaded
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 9. Juni 2007, 12:32

dst hat geschrieben:Wenn Du eine Scriptsprache als Alternative vorstellen möchtest, würde ich dir eher zu ActionScript 2 raten. Diese bringt die objektorientierte Art von Java mit der Objektbasierten Weise von JavaScript (die ja durchaus Ähnlichkeiten mit Python hat) zusammen. Natürlich ist man etwas eingeschränkter was die Anwendungsfälle angeht, da ActionScript (bzw. Flash) in erster Linie auf das Browserplugin ausgelegt ist, aber für Übungsaufgaben dürfte sich da doch einiges finden lassen.

Die Objektorientierte Weise von JavaScript ist definitiv aus dem Punkt aus interessant, weil sie eben nicht Python oder Java ähnelt. Sie funktioniert Prototypenbasiert, womit sich zu beschätigen sicher auch keine schlechte Idee ist. Aber damit anfangen?

dst hat geschrieben:Als freie IDE kann ich FlashDevelop empfehlen. Das ist rein auf ActionScript ausgelegt (bietet daher keine grafische Oberfläche für Zeitleisten, Tweens und den ganzen Schnickschnack), bringt einen Compiler mit und ist ansonsten recht schlank und einfach zu installieren. Basiert allerdings auf .NET und ist daher Windows-Only (naja, vielleicht gibt es auch einen Mono-Port, weiß ich aber nicht).

Du empfiehst eine freie IDE füür eine unfreie Skriptsprache, deren Interpreter proprietär ist, deren Entwicklungsmodell ebenso proprietär ist? Davon abgesehen gibt es Flash nur für eine geringe Anzahl von Platformen und die Unterstützung für andere Platformen ist bisweisen sehr schwach - man beachte wie lange es gedauert hat, bis ein halbwegs aktuelle Flashplayer für Linux verfügbar war.

Wenn schon etwas JavaScript-ähnliches dann besser JavaScript selbst. JavaScript hat auch so seine Nachteile, aber im meinen Augen überwiegen die Vorteile gegenüber ActionScript.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder