Ruby veya Python? [kapalı]


24

Bu soru son derece öznel ve açık uçlu. Hatta kendim için araştırmam ve kendi kararımı vermem gereken bir şey gibi gelebilir. Ama onu ortaya koymak ve başkalarından bazı düşünceler almak istiyorum.

Uzun lafın kısası - Sıçan yarışıyla birlikte dışarı çıktım ve bu yıl kendi kendine finanse edilen bir sabotedayım. Bunların çoğu, kurumsal eziyetten bir mola vermek ve etrafta dolaşmak olmakla birlikte, aynı zamanda yeni teknolojilerle oynamak ve bazı kendi kendine öğrenme projeleri yapmak, programlamayı hızlandırmak için devam etmek istiyorum. programlama, baskı olmadığında!

İşte şey: Ben bir ömür boyu C / C ++ / Java programcısıyım. Programlama kariyerimin tamamı için bu dil ailesi ile birlikte çalıştığım için biraz eğri bir braket zekasıyım. Bu yüzden bu grupla sözdizimsel olarak yakından ilgili olmayan bir dil öğrenmek istiyorum. Temelde aradığım şey, göreceli olarak genel amaçlı, öğrenmesi eğlenceli, C ++ / Java'dan farklı bazı yeni kavramları ve iyi bir topluluğu olan bir dil. İkincil bir değerlendirme, iyi bir web geliştirme çerçevesine sahip olmasıdır. Üçüncül bir düşünce, tamamen akademik olmadığı yönündedir (okuma: orada gerçek dünya işleri var).

Onu Ruby ya da Python'a daralttım. Ruby benim izlenim benim son derece web odaklı olduğunu - bunun tek gerçek uygulama web şeyler yapmak için bir sunucu tarafı betik dili olarak (özellikle Ruby on Rails) olmasıdır. Tutkulu bir hayran kitlesine sahip olması ve oldukça çok yönlü bir dil gibi görünmesi dışında Python hakkında çok fazla bir izlenimim yok.

TL; DR ve mümkün olduğu kadar kısaca söylemek gerekirse: C ++ / Java çalışanlarının programlama konusunda yeni bakış açıları almayı öğrenmeleri bunlardan hangisi daha iyi olurdu? Hangisi daha açık ve genel amaçlı ve daha geniş bir uygulama grubuna uygulanabilir? Şu anda Ruby'ye yaslanıyorum, ancak bir sunucu tarafı web dili dışında hiçbir şey olarak kullanılmadığı için endişeleniyorum.


"Python için pek emin değilim"? Neyin? Bu nasıl alakalı?
S.Lott

StackOverflow'ta Ruby vs Python hakkında daha fazla şey bulabilirsiniz. Lennart'ın kendisinin henüz yorum yapmamasına şaşırdım. regebro.wordpress.com/2009/07/12/python-vs-ruby stackoverflow.com/questions/1113611/…
İş

@ S.Lott: Üzgünüm, açıkca net değildi. Sadece henüz Python hakkında çok ayrıntılı bir izlenimim olmadığı anlamına geliyor. Bunun dışında çok yönlüdür ve güçlü bir fan tabanına sahiptir.
Bobby Tables

9
Tabii ki Perl.
Bruce Alderman

Bu, "Hangi teknoloji daha iyi?" Sıkça Sorulan Sorular uyarınca konu dışı olarak kabul edilen soru kategorileri .
ChrisF

Yanıtlar:


35

Ruby'nin büyük ölçüde Rails (web uygulama çerçevesi) yüzünden sizi aldatmasından ötürü, ortak parka girmesine izin vermeyin. Genel amaçlı bir programlama dilidir ve başka herhangi bir dili kullanabileceğiniz herhangi bir şey için kullanabilirsiniz.

Ruby ile oynayın ve ona aşık olup olmadığınızı görün. Ya yapacaksın ya da yapmayacaksın. Grateful Dead'in müziği gibi bir şey; Ya seversin ya da dayanamazsın.

Ruby beynini uzatacak. Birçok bakımdan, C ++ / Java'dan olabildiğince uzaktır. Bir C ve C # geçmişinden geldim ve Ruby'nin dinamikliğini ve meta-programlama gücünü oldukça sarhoş edici buldum.

Olduğu söyleniyor, Python kesinlikle olağanüstü bir dil ve sizi brabrabraketinin dışına çıkarır.

Neden ikisini de öğrenmiyorsun? Her ikisini de düzenli olarak kullanıyorum: Ruby, Google AppEngine ile çalışmak için Rails ve Python ile programlama için.


2
Ölü referans için +1;;)
cschol

1
Teşekkürler. Önce Ruby'ye gidip bakıp aşık olup olmadığımı göreceğim. :)
Bobby Tables

8
Partiye biraz geç kaldım, ancak trypython.org ve tryruby.org dilleri denemek için harika yerler.
Michelle Tilley

17

Kuşkusuz Ruby'yi çok az kullandım, ama işte Python izlenimlerim:

  • Bir işlevi kaleme almak için sahte kod yazdığımda, pratik olarak yazdığım şeyin Python olduğunu ve bazen gerçek kod yapmak için çok az miktarda yeniden yazmanın gerekli olduğunu buldum . Sözde kodun tümünü birlikte atlayabilir ve düşüncelerinizi doğrudan Python ile ifade edebilirsiniz.
  • Ortak bir görev gibi görünen bir şey yapmam gerektiğinde, Python standart kütüphanesinde gerekli işlevleri (yüksek seviyede) kullanma eğilimindedir. Örneğin, bir dosyayı açmak ve satır satır taramak istediğimde cevap, 'myFile: dostuff (lines)' satırları için olduğu kadar basitti. Buna 'piller dahil' yaklaşımı diyorlar ve gündelik operasyonların çok daha fazla olduğu yerlerde kullandığım diğer dillerden farklı olduğunu düşünüyorum

Bu iki şey bana dikkat çekiyor.


Sanırım bunlar Ruby'yi tercih etmemin nedenleri. Ruby daha fazla OO ve daha az anahtar kelimeye sahip. Örneğin Ruby'de [[1,3,5] .length () "ve" [1..10] .each () ... "vs Python" len ([1,3,5]) "ve" aralık
dahilinde

6
@ Lenny - Ruby aslında daha fazla anahtar kelimeye sahiptir: krijnhoetmer.nl/stuff/ruby/keywords vs. zetcode.com/tutorials/pythontutorial/keywords - Python 2.6 için, bu Ruby'nin 38 için 31 anahtar kelimesidir. Her iki dilde de "her şey bir nesnedir" olduğu için her iki dilde de oldukça öznel olarak kullanılır (ve herşey alt sınıf olarak Python 3.x ile daha tam anlamıyla object). Ayrıca, len(obj)arama yapmak için kısayoldur obj.__len__()ve for i in rangeayrıca çalışan jeneratör nesnelerinin işletim ayrıntılarını da özetler. Bence / eşdeğer fakat farklı / daha doğru.
Wayne Werner

Lenny'nin tipik ifadenizde daha az anahtar kelime kullandığınız anlamına geldiğini hissediyorum, örneğin 'in i (1, 11) anahtar kelimesinde 3 anahtar kelime var (in için). Tabii ki, bazen daha fazla kelime daha iyidir.
Andrew M,

5
aralığı bir anahtar kelime değil, bir fonksiyonudur
Kugel

9

Eğer bir yılını başarılı bir şekilde alıyorsanız, bir ya da iki haftaını öğrenerek geçirmenizi ve sonra hangisini en çok seveceğinize karar vermenizi öneririm. Her ikisiyle de deneyimim var ve bence ikisi de öyle ki yetenekli ki hangisini tercih edeceğine gerçekten karar vermen gerekiyor.


+1, Her ikisi de oldukça kolay görünüyor. Clojure, diğer taraftan ... çok eğlenceli, ama aynı zamanda daha zor.
İş

7

IMO, Python ile gitmelisin. Bunun nedeni daha çok yönlü olması, hemen hemen her şey için kullanabilirsiniz. Ruby, fark ettiğiniz gibi, web çerçevelerinden dolayı web geliştirmede daha çok kullanılıyor. Python'un aksine, Ruby, GUI masaüstü uygulamalarının, sayısal, istatistiksel veya görüntü işleme programlarının geliştirilmesi için iyi değildir.


1
Ruby'nin "GUI masaüstü uygulamalarının, sayısal, istatistiksel veya görüntü işleme programlarının geliştirilmesi için iyi olmadığını" neyin ortaya çıkardığını gösterebilir misiniz? 2001/2002'de Ruby'de programlama yaparken, bütün bunları mutlu bir şekilde yapıyordum.
LennyProgrammers

7
Lenny222 @. Ruby'de numpy, scipy, sympy, PIL, matplotlib gibi kütüphaneler yoktur. Sayısal kütüphaneler ne olursa olsun, Python'dan çok geride kalıyorlar. Benzer şekilde gui uygulamalarının geliştirilmesi için dokümantasyon ve kütüphaneler.
Marcin

1
Python'un daha çok yönlü olduğunu söylüyorsunuz ve neden kütüphanelerden bahsediyorsunuz. Ruby'de bazı şeyleri iyi bir kütüphane olmadığı için yapmanın kolay olmadığını size söyleyeceğim, ancak bu Ruby'nin kendisinin bir şekilde daha az çok yönlü olduğu anlamına gelmez.
Twisol

@Twisol bu tam olarak Neden: Python'un çok basit (ve tutarlı) olması çok yönlü olmasının ve neden bu kadar çok sayıda yararlı kütüphanenin (IMO) bulunmasının nedenidir.
Nadir Sampaoli

6

Ruby, rayların olduğundan çok daha uzun süredir var, o yüzden dünyada bunu yapmama izin verin, bunu Ruby != webçok iyi yapmasına rağmen. Yapabilecekleri ve yapabilecekleri bir sürü sistem var. Görünüşe göre bütün Rails çerçevesi, Ruby dünyasının geri kalanını yutmuş gibiydi. Ve evet, ben bir Ruby hayranıyım.

Öte yandan Python'un buna çok ihtiyacı var ve Linux'ta neredeyse her şeyle bütünleştirildi. Bu bana daha büyük programlara dahil edilmenin oldukça kolay olduğunu söylüyor (Ruby, Java vb. İle karşılaştırıldığında). Python ile yazılmış çok miktarda Ubuntu Linux altyapısı var ve bu da Python'un sistem programlamasında uygulama olduğunu söylüyor. Web çerçevesinin gerçekten güzel olduğunu duydum, henüz oynamadım.

Bununla birlikte, hem Ruby hem de Python eşit derecede yetenekli dillerdir ve onların hayatınızı çok daha kolay hale getirdiğini göreceksiniz. Ruby topluluğunda çok daha fazla web yöneticisi var, ancak bu topluluğun tamamı değil. Birkaç altyapı projesinde de kullandım.


5

Bu, " İdeal Programlama Dili Öğrenme Dizisi" ve benzeri sorular için özel bir durumdur . İhtiyacınız olan şey "mükemmel bir dil" değil, zihninizi açmak için çoklu dil paradigmalarına ve çoklu öğrenme deneyimlerine ihtiyacınız var.

Onu Ruby ve Python'a daralttığını söylediğini biliyorum, ama Racket ile başlamanı öneririm (popüler bir Program). Öğrenme için inşa edilmiştir ve beyninizi işlevsel programlama, etkileşimli programlama ve dinamik yazmaya doğru güzel bir şekilde gerecektir. İş yok (kelimenin tam anlamıyla sıfır), çok küçük, parçalanmış bir topluluk ve büyük bir web çerçevesi yok, bu yüzden tam olarak neden sıkışıp kalmayacaksınız; beyinlerinizi bir süre kızartın ve devam edin.

İkincisi, olası işler için Ruby veya Python'u öğrenmek istersiniz. İkisini de öğrenmeni öneririm. Bu ikisinden ikincisini öğrenmek, farklılıklarına rağmen birincisinden çok daha kolay olacaktır. Muhtemel işlere gelince, içimdeki hisler, Rails nedeniyle daha fazla Ruby çalışması olduğunu, ancak bu alanda da bazı Zope çalışmaları olduğunu biliyorum. Bunlardan en az birine yatırım yapın, ancak diğerini küçük bir şey inşa etmek için yeterince uzun süre kontrol edin.

Dürüst olmak gerekirse, muhtemelen iş başında ilk haftanızı, kendi başınıza öğrendiğinizden daha fazla öğreneceksiniz; Her ikisinde de birçok araç, kültür ve deyimler içeren büyük ekosistemler var.

tl; dr: Her ikisi ve Şema.


1
+1 Tüm gördüğüm "mükemmel bir dil" ve "şema" idi. :)
dietbuddha

1

Ben de Java / C ++ geçmişinden geldim ve Python'da 4 ay boyunca Django çerçevesiyle programlama yaptım ve bu gerçekten harika. Ne zaman bir sorun veya sorum varsa, mevcut yayınlarla ilgili açıklamalar bulabilirim. Henüz kullanmadığım için Ruby'ye kefil olamam, ama biraz zamanım olduğunda kesinlikle deneyeceğim.

Şahsen Python ile çok hızlı bir şekilde yapabileceğiniz şeyleri çok seviyorum.


1

Ruby'ye oy ver. Net ve C # arkaplanından geldim, önce Python'u denedim, ama Ruby beni büyüledi =)
İçinde bir sürü sistem malzemesi yazıyorum, ve Rails biraz buna. Sistem programlamasında Python özelliği vardır ve web'de harikadır. Ve bana daha parlak hissettiriyor ..

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.