• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Phyton oder Ruby?

rethus

Advanced Hacker
Hallo Leute,
ich versuche mir ein Bild davon zu machen, welche Sprache ich besser erlernen sollte.

Also ich bin schon über 10 Jahre Programmierer komme aus der Ecke PHP, Java etc.
Nun möchte ich gerne auch eine agile Sprache hinzunehmen, die OS-Nah ist.

Welche würdet Ihr empfehlen, und warum.

Wo liegen die Vorteile von der einen Sprache gegenüber der anderen (Ruby und phyton)?

Ich freu mich auf eure Rückmeldungen
 

nbkr

Guru
Also OS-Nah ist weder Ruby noch Python. An und für sich gibt sich Pyhton und Ruby nicht besonders viel. Python ist in Europa und den USA stärker verbreitet. Ruby-Entwickler findet man eher in Japan. Ruby bietet mit Ruby on Rails wohl ein gutes Gerüst für Webanwendungen. Für Python gibts einen guten Applikationsserver, dessen Name mir gerade entfallen ist. Mit Python kann man hübsche GUIs entwickeln. Viele kleinere Gnomeanwendungen sind z.B. in Python geschrieben. Leider war die PyGTK Doku bisher nicht besonders. Das könnte sich aber inzwischen geändert haben. Ruby-Gui Programme sind mir bis jetzt keine bekannt.
 

Wizzzard

Member
Genau, OS-Nah ist keine von beiden. Der Vorteil ist gerade, dass man fast systemunabhängig wie bei Java programmieren kann, nach dem Prinzip, write-once-run-anywhere.

Man sagt bei python sei der Schreibaufwand gegenüber funktional gleichen Java Programmen deutlich reduziert, weshalb man damit wesentlich schneller Aufgaben erledigt bekommen soll. Allerdings muss man sich dann einige Java-Ismen abgewöhnen, z.B. keine getter- und setter-Methoden benutzen, nicht immer explizit die Exceptions abfangen, sondern nur an den Stellen, an denen das Sinn macht.

Von Ruby habe ich keine Ahnung. Mit Ruby on Rails lässt sich wohl Django vergleichen. Der Applikationsserver in Python heißt Zope.
 

abgdf

Guru
Hallo rethus,

leider kenne ich mich auch mit Ruby nicht aus.
Inzwischen ist Python meine bevorzugte Sprache. Kann ich nur empfehlen: Leicht zu lernen, akzeptable Geschwindigkeit, GUIs (auch Qt). Viele bevorzugen wohl wxWidgets, dokumentiert durch das Buch "wxPython in Action". Ich nehme gern Tkinter.
Sauberer, kurzer Code, objektorientiertes Sprachkonzept, man wird aber nicht zu OOP gezwungen.

Zum schnellen Einstieg ist

http://abop-german.berlios.de/

ganz gut sowie

http://wiki.python.de/

Viele Grüße
 

ws1964

Hacker
abgdf schrieb:
leider kenne ich mich auch mit Ruby nicht aus.
Inzwischen ist Python meine bevorzugte Sprache. Kann ich nur empfehlen: Leicht zu lernen, akzeptable Geschwindigkeit, GUIs (auch Qt). Viele bevorzugen wohl wxWidgets, dokumentiert durch das Buch "wxPython in Action". Ich nehme gern Tkinter...
Hallo,

Hier kann ich mich nur anschliessen. Ich unternehme allerdings zur Zeit erste Schritte mit PyQt.
Python ist wirklich einfach zu lernen (allerdings komme ich aus der VisualBasic-Ecke und da ist der Umstieg wirklich easy) und bringt eine grosse Anzahl an Bibliotheken mit, mit denen man schon OS-nah programmieren kann. Und fuer einen interpreter ist Python echt schnell.
Python kann ich nur empfehlen.
Und in der Industrie gehen Geruechte um dass Siemens in CNC-Steuerungen auch Python einsetzen will. Da ist natuerlich fuer mich Python erste Wahl.
Wolf
 

Mumie

Hacker
Hier wird ein paarmal behauptet, Python sei leicht zu erlernen. Dem möchte ich doch widersprechen. Ich habe hier mal einen fehlerhaften Code:

Code:
class neu:
	i = 12
	def f(self):
		print 'f wird ausgefuehrt: i wird 123'
		#self.i = 123      
		neu.i = 123           #Fehler
		
	
x = neu()
print 'i ist ',x.i       # x.i hat den Wert 12
x.f()                    # x.i hat den Wert 123
print 'i ist ',x.i
print 'Hauptprogramm aendert i auf 456'
x.i = 456                # x.i hat den Wert 456
print 'i ist ',x.i
x.f()                    # x.i hat wieder den Wert 123
print 'i ist ',x.i       # ganz klar 123 und nicht 456

Noch einmal das gleiche mit einem Fehler weniger:
Code:
class neu:
	i = 12
	def f(self):
		print 'f wird ausgefuehrt: i wird 123'
		self.i = 123      
		#neu.i = 123          #Fehler
		
	
x = neu()
print 'i ist ',x.i       # x.i hat den Wert 12
x.f()                    # x.i hat den Wert 123
print 'i ist ',x.i
print 'Hauptprogramm aendert i auf 456'
x.i = 456                # x.i hat den Wert 456
print 'i ist ',x.i
x.f()                    # x.i hat wieder den Wert 123
print 'i ist ',x.i       # ganz klar 123 und nicht 456

Meiner Meinung nach ist das eine richtige Falle.
 

Wizzzard

Member
Ich sehe da keinen Fehler.

Wenn du neu.i schreibst ist das eine Klassenvariable, die für die alle Objekte der Klasse gilt, solange du in der Klasse nicht self.i aufrufst. Wenn dann irgendwo self.i aufgerufen wird, wird das zu einer Instanzvariable, also eine Variable, die nur für ein Object gilt.

(Du hast vergessen, welche Python-Version Du meinst. Nested-Scopes gibt es ,glaube ich, erst seit 2.2.)
 
Oben