python vs java

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

Freitag 1. Juni 2007, 19:48

I am baaaack!!

(zumindestens diese wochenende ueber ; )

also:
ich werd ein referat ueber python in informatik halten.


unserer lehrer hat java wohl noch als revulutionaere innovation mitgekriegt und besteht drauf das es DIE sprache is

deswegen muessen meine arme mitschueler jedes mal bei der deklarierung einer variable einen halben roman schreiben und klassen benutzen ohne ueberhaubt wichtige grundlagen der programmierung verstanden zu haben


deswegen wuerde ich gerne ihnen python vorstellen und mit meinen herausragenden deutsch-kentnissen argumentieren warum python zumindestens fuer anfanger besser geignet ist

darueber hinaus will ich einen python programm vortsellen, dass pythonisch eine real-world aufgabe loest und dabei moeglichst mit instancen, dicts und sowas manobriert


mein lehrer meint, dass typisierung wichtig fuers denken ist und klassen ein programm strukturieren und struktur wir jugendlichen sowieso brauchen (?)

als gegenargument wil ich folgende metapher anwenden:
in meinen zimmer ist auch nicht alles in schubladen organisiert - mein schlafanzug liegt unter mein kissen, stifft und papier sind auf mein tisch bereit gelegt und wenn ich etwas suche will ich auf keinen inhaltsverzeichneiss, meine zimmerDoc oder so nacguken,
ich will einfach nur mein zimmer benutzen koennen!
und nicht schubladen sortieren



was meint ihr?

danke
cp != mv
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Freitag 1. Juni 2007, 19:59

Costi hat geschrieben:mein lehrer meint, dass typisierung wichtig fuers denken ist und klassen ein programm strukturieren und struktur wir jugendlichen sowieso brauchen (?)
Ich kann deinem Lehrer in allen 3 Punkten nur zustimmen :) Dass Java allerdings hilft, Struktur ins Leben von Jugendlichen zu bringen, halte ich für eine etwas gewagte Annahme ;)

Mit deinen Deutschkenntnissen wirst du ihn übrigens nicht wirklich beeindrucken können :) (sorry)
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Freitag 1. Juni 2007, 20:18

Meine Meinung: versuch nicht Lehrer zu belehren ;-)

Klassen schaden wirklich nicht aber die nutzt du in Python doch auch ?!?
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

Freitag 1. Juni 2007, 20:22

Klassen schaden wirklich nicht aber die nutzt du in Python doch auch ?!?
klar, aber so wie ich will und und ich muss sie nicht in eine extra datei packen
Mit deinen Deutschkenntnissen wirst du ihn übrigens nicht wirklich beeindrucken können Smile (sorry)
hmmm, ich habe gedacht es waere nicht notwendig zu sagen das diese behauptung ironisch gemeint war :D [/code]
cp != mv
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 1. Juni 2007, 20:46

Costi hat geschrieben:als gegenargument wil ich folgende metapher anwenden: in meinen zimmer ist auch nicht alles in schubladen organisiert
Hallo Costi!

Versuche nicht etwas was deinem Lehrer lieb und teuer ist in den Dreck zu ziehen. Der schaltet sofort auf Stur und denkt sich: "Was weiß dieser Junge denn schon vom Leben!"

Das musst du anders angehen. Zeige die Vorteile und Möglichkeiten von Python auf -- und das ist jetzt ganz wichtig: -- ohne Java überhaupt zu erwähnen.

Zeige einfache Code-Strukturen, zeige mit wie wenig Codezeilen du zu einem Ergebnis kommst. Bleib auf jeden Falls sachlich.

So erreichst du extrem viel mehr als wenn du einen Vergleich machst.

Vielleicht kannst du dir hiervon ein paar Ideen raus suchen:
- http://www.python-forum.de/topic-9839.html
- http://well-adjusted.de/~jrschulz/paper ... bjekte.pdf
- http://well-adjusted.de/~jrschulz/talks ... tation.pdf

Edit:
Und hier noch die nie fertig gestellten Präsentationsunterlagen von mir: http://gerold.bcom.at/bilder/Python%20- ... /file_view


mfg
Gerold
:-)

PS: Und Hände weg von fremden Servern. ;-)
Zuletzt geändert von gerold am Freitag 1. Juni 2007, 21:34, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Freitag 1. Juni 2007, 21:21

Um Typisierung muss man sich auch in Python Gedanken machen, jedes Objekt hat einen Typ, wie man mit `type()` einfach zeigen kann. Python ist stark und dynamisch typisiert.

Klassen sind nicht das einzige Mittel um ein Programm sinnvoll zu strukturieren. Als `public static` deklarierte Methoden in Java sind letztendlich ja auch Funktionen und ohne käme man nur schwer aus.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Samstag 2. Juni 2007, 10:44

Du machst dir nur Probleme. Vor allem weil man auch in Python Klassen bis zum Umfallen verwendet was auch eine gute Sache ist. Das Java keine Funktionen hat ist auch kein wirkliches Problem, einfach eine statische Methode an eine Klasse binden und gut ist.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Samstag 2. Juni 2007, 11:39

Costi hat geschrieben:I am baaaack!!

(zumindestens diese wochenende ueber ; )

also:
ich werd ein referat ueber python in informatik halten.


unserer lehrer hat java wohl noch als revulutionaere innovation mitgekriegt und besteht drauf das es DIE sprache is

deswegen muessen meine arme mitschueler jedes mal bei der deklarierung einer variable einen halben roman schreiben und klassen benutzen ohne ueberhaubt wichtige grundlagen der programmierung verstanden zu haben


deswegen wuerde ich gerne ihnen python vorstellen und mit meinen herausragenden deutsch-kentnissen argumentieren warum python zumindestens fuer anfanger besser geignet ist

darueber hinaus will ich einen python programm vortsellen, dass pythonisch eine real-world aufgabe loest und dabei moeglichst mit instancen, dicts und sowas manobriert


mein lehrer meint, dass typisierung wichtig fuers denken ist und klassen ein programm strukturieren und struktur wir jugendlichen sowieso brauchen (?)

als gegenargument wil ich folgende metapher anwenden:
in meinen zimmer ist auch nicht alles in schubl[aden organisiert - mein schlafanzug liegt unter mein kissen, stifft und papier sind auf mein tisch bereit gelegt und wenn ich etwas suche will ich auf keinen inhaltsverzeichneiss, meine zimmerDoc oder so nacguken,
ich will einfach nur mein zimmer benutzen koennen!
und nicht schubladen sortieren
Costi hat geschrieben: deswegen wuerde ich gerne ihnen python vorstellen und mit meinen herausragenden deutsch-kentnissen argumentieren warum python zumindestens fuer anfanger besser geignet ist
Wäre toll wenn du die auch hier Anwenden würdest ;)

Ich würde nicht gegen Java Argumentieren. Zeig einfach was Python kann. Wie leicht es zu lesen ist, wie schnell man damit etwas einfaches erreichen kann, wie einfach Reflection funktioniert. Klassen/Module neuladen gibt je nach dem auch eine Hübsche Demo ;)

Java und Python sind zwei verschiedene Welten, die kannst du höchstens für einen bestimmten Anwendungsfall gegeneinander abwägen. Und selbst das halte ich für gewagt.
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

Samstag 2. Juni 2007, 11:51

genau, nur das man in java halt zu viele umwege gehen muss um alles in einen stricten klassen konzept zu ermoeglichen.
will man in java einfach nur eine funktion definieren, muss man extra sowas wie:

Code: Alles auswählen

static Utils{public Integer gimmi5(){return 5}}
in einer neuen datei packen.
waehrend man in python einfach "def gimmi5(): return 5" irgendwo einfuegt und dann schneller und mit weniger bugs gut ist.


edit:
aehhh,mit mein java snipset ist jetzt irgendetwas falsch oder?
cp != mv
BlackJack

Samstag 2. Juni 2007, 12:45

Ja da ist einiges falsch. `Utils` müsste als Klasse deklariert sein. Klassen sind bei Java von Natur aus statisch, also hat das ``static`` davor nichts zu suchen. Die Methode dagegen muss als ``static`` deklariert werden, wenn sie als "Funktion" verwendbar sein soll. Der Rückgabetyp `Integer` in Verbindung mit einem `int`-Literal funktioniert erst ab Java 1.5. Und es fehlt ein Semikolon.

Code: Alles auswählen

public class Test
{
    public static Integer gimmi5()
    {
        return 5;
    }
}
lunar

Samstag 2. Juni 2007, 19:05

blackbird hat geschrieben:Das Java keine Funktionen hat ist auch kein wirkliches Problem, einfach eine statische Methode an eine Klasse binden und gut ist.
Erst schafft man einen ausschließlich objektorientierte Sprache und lässt diese ganze altmodische funktionelle Programmierung hinter sich.


Dann bemerkt man, dass "new Sinus(30).doit()" doch keine so tolle Idee ist, um den Sinus eines Winkels zu berechnen...


Dann führt man Funktionen wieder ein, aber man nennt das Ganze "statische Methode", weil "Funktion" irgendwie ja voll altmodisch und überhaupt nicht "objektorientiert" ist...


Dann erfindet man noch das Konzept "statischer Imports", weil die strenge Anwendung der Objektorientierung bei "statischen Methoden" recht schreibintensiv ist...


Und dann tut man noch so, als wäre das die Innovation des Jahrhunderts und voll hip.


Während der ganzen Zeit programmieren tausende Programmierer mit Python, C++ oder C funktionell und fahren gut damit.


Sorry, aber manchmal ist Java einfach schizophren...
BlackJack

Samstag 2. Juni 2007, 19:34

Das "Problem" bei Java ist nicht, dass es eine ausschliesslich objektorientierte Sprache ist, sondern das es eine ausschliesslich klassenbasierte Sprache ist. Wenn Funktionen auch Objekte wären, gäb's das Problem nicht. Python ist viel objektorientierter. :-)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 3. Juni 2007, 10:58

BlackJack hat geschrieben:Python ist viel objektorientierter. :-)
Dafür ist Java viel OOP-Dogmatischer. Manche haben schon versucht mir anzudrehen, dass Java objektorientierter ist als Python, weil Python zum Beispiel keinen Syntaktischen Zucker für Interfaces hat.

So, das war jetzt aus der Meine-Sprache-ist-viel-objektorientierter-als-deine-Abteilung. :D
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Sonntag 3. Juni 2007, 14:24

Java will zuviel forcieren, was man in Python aus gutem Grund tun oder lassen kann. Das gilt für die genannten Punkte wie Funktionen, mehrere Klassendefinitionen in einer Datei und Interfaces als auch anderes.
rolgal_reloaded
User
Beiträge: 312
Registriert: Dienstag 24. Oktober 2006, 19:31

Sonntag 3. Juni 2007, 23:41

gerold hat geschrieben:
Versuche nicht etwas was deinem Lehrer lieb und teuer ist in den Dreck zu ziehen. Der schaltet sofort auf Stur und denkt sich: "Was weiß dieser Junge denn schon vom Leben!"

Das gilt natürlich für alle Lehrer und Lehrerinnen :roll:

:evil:
Antworten