Javacılar da Ruby Demeye Başladı

0
FZ
Chris Adamson Ruby the Rival başlıklı yeni yazısında Java dünyasının ağır topları Bruce Tate, James Duncan Davidson, Robert Cooper ve Bill Venners sohbet etmiş ve Ruby'ye nasıl baktıklarını ele almış.

Bir iki şüpheli bakış açısını, "acaba ...?"lı tereddüdü bir kenara bırakırsak görülen manzara şu ki Java programcıları da Ruby'nin çekiciliğine dayanamıyorlar. Her ne kadar "ya aslında bakın enterprise mevzular, çok elemanlı projeler, evet var böyle argümanlarımız ama..." filan deseler de Ruby'nin getirdiği üretkenlik kazancı, Ruby on Rails'in katalizör görevi üstlenmesi gibi durumların farkında olduklarını itiraf ediyorlar.

Görüşler

0
anonim
Hiç bir programlama dili sonsuza kadar kullanılacak diye bir kaide olmadığından bir gün Java'nın yerini daha kolay, daha esnek ve daha iyi dizayn edilmiş bir dilin alacağı daha bugünden belli diye düşünüyorum. O dil Ruby on Rails olabilir fakat ROR için zamanın daha çok erken olduğunu düşünüyorum, zaten makaleye konuk olanlarda aynı şekilde bunun için belirli bir süre beklemek gerektiğini düşünüyorlar.
Bir java programcısı olarak işlerimi kolaylaştıracak, daha performanslı, kolayca kütüphane bulabileceğim (Hibernate,Spring vs.) bir dile geçmeyi tabii ki isterim.
0
roktas
Hiç bir programlama dili sonsuza kadar kullanılacak diye bir kaide olmadığından bir gün Java'nın yerini daha kolay, daha esnek ve daha iyi dizayn edilmiş bir dilin alacağı daha bugünden belli diye düşünüyorum.

Yerinizde olsam şüpheyle bakardım bu yargıya. Bir programlama dilinin geleceğini tahmin etmek çok zordur (70'li yıllarda geliştirilen C hâlâ yaygın şekilde kullanılıyor; 80'lerdeki OOP, C++ ve müteakiben gelen Java dalgasına rağmen).

0
anonim
C'nin yaygın şekilde kullanılmasının sebebi *NIX sistemlerin geliştirilme dili olarak kullanılmasından dolayı. Ben daha yüksek seviyeli dilleri kastetmiştim nasıl python perl'in yerini aldıysa/alıyorsa, nasıl artık C++'da uzun uğraşlar vererek yazılan programları Java veya Python'da daha kolay yazıyorsak, aynı şekilde J2EE'nin yerine ROR alabilir. Zaten ROR'u desktop olarak düşünmüyorlar web kısmı için düşünüyorlar.
0
sundance
Recai hocam, ne güzel seni yine sık sık buralarda görmek, doktora kolayladı galiba ?
0
roktas
Galiba kolayladı, ama asıl şu: muhabbet güzel, konu çekici, dayanamıyo insan! Bir de net üzerinden şöyle çay/kahve servisi olsa...
0
o_ozardic
Fortran ve COBOL'u da unutmayalım bu noktada :)
0
roktas
Cobol'u bilmem ama Fortran önemli! Paralel bilgi işleme desteği ve native floating-point performansıyla bilimsel hesaplamada hâlâ çok önemli bir dildir. Özellikle yeni nesil Fortran dilleri (> Fortran 77) sahasında yabana atılır diller değildir. Sun firması bunu görmüş olsa gerek, Java'nın C/C++'a yaptığını Fortran'a yapacak yeni bir dil geliştiriyor şu sıralar, ismi Fortress. Bu dili çok tanıdık bir bilgisayar bilimcisi tasarlıyor: Guy Steele. Araştırmanızı tavsiye ederim.
0
FZ
Intel ve SUN bildiğim kadarı ile hala FORTRAN derleyicileri geliştirip satmaya devam ediyorlar. Çok fazla kod tabanı var.

Guy Steele'nin DDJ'deki röportajı, Fortress ile ilgili söyledikleri enteresandı.

Hatırlatmadan edemeyeceğim: Guy Steele aynı zamanda Common Lisp'in kitabını yazmış adamlardan biri.
0
FZ
20.000! :)
0
butch
voila! you made it
0
FZ
pis hırsız! itiraf et! arakçıı! yalançıı! :)
0
ttk
Otomobil mi kazandınız şindi ? :)
0
roktas
Çok fazla kod tabanı var.
Çok doğru... Özellikle netlib, daha da özellikle lapack.
0
librid
Paul Graham'da açıkça Ruby'yi öneriyor artık: http://www.paulgraham.com/college.html
Kendi işini kuracak yeni mezun "hacker"lara Lisp yerine Ruby'yi önermiş olması çok ilginç.
0
roktas
Graham öyle özel bir tavsiye yapmıyor (bağ verdiğiniz o makalede Ruby lafı geçmiyor bile). Paul Graham (diğer bütün yazıları da değerlendirildiğinde) Python/Ruby (Perl'ü de ekleyin buna) gibi yeni nesil dinamik betik dilleri hakkında olumlu görüşler ifade eder, (kapsamını dikkate almak kaydıyla) bunda haklıdır da. Fakat Java eleştirilerinde (o dili kullanmayan birisi olarak) dozu çok kaçırmıştır meselâ.

Üstadları (eleştirel bir kafayı da yedekte tutarak) dinleyin, istifade edin; ama şöyle bir uygulama nihaî bazı kararların oluşturulmasında veya programcılık ufkunuzun gelişmesinde daha etkilidir.

0
innaw
If you want to work at a cool little company or research lab, you'll do better to learn Ruby on Linux.
0
roktas
Tamam, şimdi gördüm. Firefox'da küçük/büyük harf duyarlı kipte "ruby" araması yapmışım.
0
ahmetaa
Ruby gibi dillerin sorunu da bu. "cool little company"'nin otesine gecmesi icin daha cok firin ekmek yemesi gerekir. Asil haberdeki konu ile ilgili olarak ise, genellikle bazi java yazilimcilari RoR'u hoc bir arac olarak gorse de Ciddi anlamda Ruby'i Java'nin yerine gececek bir teknoloji olarak gorup Java'yi birakan birisini gormedim. Bir kac heyecanli genc ya da java kullanmayan kisiler elbette istisna (Graham gibi.)
0
librid
Bu tepeden bakan yaklaşımınız çok itici ve kimseye de fayda sağlamaz açıkçası...
0
FZ
Ben bunu tepeden bakma yaklaşımı olarak görmüyorum da... Nasıl desem yani Linux çekirdeği ilk çıktığında TCP/IP ile bağlanamıyorduk. İnsanlar gülüp geçiyordu. Bir sürü programcı bununla uğraşmıyordu.

Sonra "sıradan" değil, gerçekten iyi programcılar uğraşmaya başladılar. TCP/IP geldi. Diğer şeyler geldi. 8-9 sene sonra artık GNU/Linux üzerinde milyon dolarlık sistemler çalışıyordu. Sebebi ne olursa olsun, MS'ye alternatif, sevgi, kendini ispatlama, vs. Her şeyin doğrudan para ile ilişkilendirilemeyeceğini gördük. Şimdi, Java, her yerde her şeye çare şeklinde sunuldu. Mainframe'i de hallederiz, cep telefonlarını da hallederiz dediler. Hakikaten çok para döküldü bu işe. Bazı şeyler tabii ki kolay değişmeyecek ama kimse de Java community processi beklemekle vakit kaybetmeyecek. Hayat devam ediyor ve içinde onbinlerce aktörün olduğu karmaşık bir sosyal sistem söz konusu olduğunda ben "iddialı" fikirlere hep şüphe ile baktım.
0
ahmetaa
Tepeden bakmiyorum. Eger bu sekil bir intiba versiysem ozur dilerim. Ogrenci degilim, is dunyasindayim. Java'yi biliyorum ve seviyorum (zayifliklari ve ustun noktalarini da). Java'yi bugun Ruby degil .Net'e karsi savunur buluyorum kendimi is yerinde. Bu aci cunku Java'nin teknoloji, cesitlilik, platform bagimsizligi ve olgunluk avantajlarini duymazdan gelip tamamen politik kararlar aliniveriyor. Bugun Ruby bulundugum ulkede, ve muhtemelen Turkiyede HIC kullanilmiyor. Bu konuda ne yapmami beklersiniz? Zaten yazimini sevmedigim Ruby tisortu giyip java dokumanlarini yakmami ve patronu ikna etmemi mi? Bugun Microsoft'un onunde durabilecek tek teknoloji olarak Java'yi goruyorum, elbetteki Ruby oyuncagini bir koseye koyup Java uzerinde yogunlasmayi tercih ederim. Eger bos vaktim olsa belki hem .Net'e hem Ruby'e bir goz atardim ama kusura bakmayin, aksamlairmi dolduran proje Ruby ile gelistirilmiyor.
0
FZ
Microsoft'un yaptıklarına dikkat etmenizi anlıyorum. Sevin ya da sevmeyin, adamlar sıkı çalışıyor. C# 3.0, LINQ, vb. projeler, Haskell, vb. şeylerden yola çıkarak yapmaya çalıştıkları yabana atılacak şeyler değil. Java rekabet etmeye çalışsa, onun için iyi olur tabii.

Ruby'ye gelince, oyuncak değil, tek kriteriniz dice.com olmasın. Türkiye söz konusu olunca ciddi Internet tabanlı projeler için Ruby ile ilgilenmeye başlayan ve ticari olarak işlere girişen insanlar biliyorum.
0
ahmetaa
Ruby'yi oyuncak olarak nitelememin nedeni benim icin is alaninda kullanilmamasidir. Yoksa dil olarak oldukca saglam bir yapisi oldugunu inkar etmiyorum
Java'nin gelisimi konusunda ise dil yapisinin surekli degistirilmesi, C#'a benzetilmesi degil var olan kutuphanelerin gelismesi yonunde olmasini tercih ederim.
0
yilmaz
java mı c# a benzetiliyor?
0
ahmetaa
Ruby'nin Java'nin yerine gectigi falan yok. Ruby fanatikleri bu konuda biraz bence dozu kaciriyorlar (Gerilla pazarlama taktikleri). Oncelikle karistirilan noktalardan biri RoR "uygulamasi" ile Java platformunun kiyaslanmasi. RoR ile Hibernate-Spring belki kiyaslanabilir, Java degil. Bugun icin Ruby platformu ise ile Java ayni ligde oynayacak teknoloji degil. Belki ozellesmis bazi uygulamalar icin (hizli prototip, kucuk olcekli uygulama gelistirme) Ruby, ya da RoR iyi bir secim olabilir ama otesine gulunur..

Bruce Tate'nin bu konuda biraz erken konustugunu dusunuyorum. Kendisini Java Dunyasinin agir topu olarak gormek ise buyuk bir abarti olur. Bu konuda asagidaki son derece uzun tartismayi okumanizi oneririm. ikinci baglanti ise Bile Blog'dan, eglence amacli okuyabilirsiniz.
Boyind Java Tartismasi
Bruce Tate in Bile Blog
0
librid
Anladığım kadarı ile bazıları Java'nın her zaman her yerde para kazandırdığı ve kazandıracağı fikrinin rahatlığına o kadar kapılmışlar ki, buna karşı tehdit oluşturabilecek her şeye şiddetle karşı çıkıyorlar. Bu tip yaklaşımlara anlayışla yaklaşıyorum şahsen. Pazarlama teknikleri ve sürü psikolojisi inanılmaz sonuçlar yaratabiliyor... Java akşamdan sabaha yerinden edilebilecek bir durumda değil. Yeni Cobol yakıştırmları da zaten bu yüzden. Endişelenmeyin, RoR gibi bir platform Java ağacını, zayıf olan bir kaç dalını budayarak güçlendirecektir en fazla.
0
FZ
COBOL hala bazı IBM Mainframe ortamında kullanılıyor ama hepsi o.

Ruby gibi yenilikçi yaklaşımların tepki görmesini de doğal buluyorum.

Çok az programlama platformunun reklamına Java'nınki kadar para dökülmüştür, bu kadar para dökünce tabii ilginin oraya dönmesi ve o platform için kod ve ürün ve kitaplık geliştirilmesi de gayet doğal. Ancak malun bilgi işlem dünyası gerçekten çok hızlı değişen bir dünya, bugünün kralı 6-7 sene sonra ortalıktan kaybolmuş olabilir.

İnsanlar "enterprise" uygulamalardan bahsededursunlar ve "tek kişilik proje... nedir ki..." diye düşünmeye devam etsinler, bazıları da güçlü araçların ve teknolojilerin farkına varıp sessiz sedasız ilerlemeye devam edecekler. Bunun işaretlerini çevremizde göryoruz. Bazı şeyler düşünülenden daha hızlı değişebilir.
0
ahmetaa
Ben Java'ya bugunun gelecegin C++'i yakistirmasini yapiyorum. Asil konuda se Belki RoR ile php, Ruby ile Python kiyaslansa daha mantikli olurdu. Diger konuda ise, Elbetteki Ruby kullanin, kim tutar sizi? Eger uygun zaman ve problem de Ruby isimi hizli gorecekse ben de kullanirim. Neden bir teknolojinin digerinn yerine gecmesi gerekiyor ki? beraber de yasayabilirler. Ama eger bugun Ruby ile kuyuya girecekseniz su noktalari dikkate amaniz gerekir: - Ruby'nin ciddi bir performas dezavantaji var. Cogu noktada kendinizi C programlarken bulabilirsiniz. Java platformunun bu sorunu yok - Cok islevli programlama (MultiThreading) Ruby'nin yumusak karni. Ciddi sekilde bu programlama tekniklerini kullanacksaniz daha basta takilabilirisniz. - Pazarda Ruby tecrubesine sahip kisi sIkintisi olacaktir. Java'nin bu problemi yok. Acikcasi Java ile gelirsitme yapan bir grubun Ruby'e gecmesini beklemeyin. - IDE ve yazilim gelistirme ortami sIkintisi yasarsiniz. Java dunyanin en gelismis IDE'lerine sahip. - Eger ruby yayginlasirsa bir sekilde, bu defa ayni isi yapan cok arac ve kalitesiz gelisitirici problemleri patlak verecektir. - Bir dil ya da platform uzerinde degisiklik yapmak o platformun popularitesi ile ters orantili sekilde kolaydir. Bugun Ruby diline ya da kutuphanelerine eklenti yapmak kolay cunku kullanan kisi sayisi cok az, arti ciddi isler icin nadiren kullaniliyor. ruby ilerde geriye uyumluluk problemleri yasayacaktir. - is, dice.com'a gidip arama yaptim. sonucta Ruby icin 61 is ilani var. bunlarin yarisi Java, cogu da perl-python karisik ilanlar. Java isin sonuc: 13.000 . Eger akademik dunyada iseniz, ya da uc bes kisilik bir grubunuz var ise Ruby'ye yogunlasabilirsiniz ama aksi halde sizi oldukca guc zamanlar bekliyor demektir. - kisisel not: Ruby yazimi Perl'e benziyor. o nedenle bana cok itici geldi. Java ile 4-5 satir fazla ama anlasilir kod yazmayi tercih ederim. Bir dilin ne kadar dinamik oldugu ya da modern oldugunun bugunun is - teknoloji dunyasinda cok az onemi var. Ruby'den daha iyi pek cok dil universitelerde tozlanmis disklerde yer aliyordur eminim. Java C++'in mirasina kondu, ve C++'in yerini aliyor. Cobol'un degil. Ruby belki sonraki Cobol olabilir, ama daha cok firin ekmek yemeleri gerekiyor.
0
librid
> Ruby'nin ciddi bir performas dezavantaji var. Cogu noktada kendinizi C programlarken bulabilirsiniz. Java platformunun bu sorunu yok - Cok islevli programlama (MultiThreading) Ruby'nin yumusak karni.

Görüyorum ki Ruby cephesine kayıtsız kalmamışsınız. Hakikaten de Ruby'nin ciddi teknik kısıtlamaları var şu anda. Bırakın Java'yı Python'dan bile yavaş hatta unicode desteği bile yok. Bunlara rağmen kendinden bahsettirmeyi başarıyor olması başka erdemlere sahip olduğunu gösteriyor. Kabul etmek lazım Ruby güzel tasarlanmış. Peki böyle bir değer teknik olarak da gelişirse ne olur? Örneğin yakında çıkacak olan Ruby 2.0 ile bahsettiğiniz thread problemi kalmaycaksa yeni bir regular expression motoru ile tam unicode desteği vermeye başlayacak olursa. Hatta yeni bir VM ile php ve Perl dahil bütün Unix betik dillerinden daha hızlı olursa? Cevap vereyim o zaman Ruby "patlar". Ve Ruby yakında "patlayacak" çünkü bütün bunların hepsi gerçekleşecek.

>kisisel not: Ruby yazimi Perl'e benziyor. o nedenle bana cok itici geldi. Java ile 4-5 satir fazla ama anlasilir kod yazmayi tercih ederim.
Bu tip Perl'e benziyor yorumlarını hakikaten aklım almıyor. Bir kere Ruby tamamiyle Nesne Yönelimli. Perl de ise OOP desteği basit bir -> operatörü ile geliyor desek çok abartmış olmayız. Birbirlerinden bu kadar farklı iki dili nasıl benzetiyorsunuz gerçekten aklım almıyor. Ruby'nin çok temiz Perl'le hiçbir ilgisi olmayan bir yazımı var. Hatta Python bile Ruby'ye göre çirkin ve kirli kalıyor (bana göre) (Örneğin her tarafta self yazmıyosunuz __main__, __init__ gibi göz zevkinize saldıran isimler yok). Ruby size Perl'ü hatırlattıysa sanırım yeterince kod yazmadığınız içindir, başka bir açıklaması olamaz. Ruby okunabilirlik açısından sadece Perl'den değil Javadan, Python'dan bile daha iyi. Kodları önyargısız incelerseniz aynı şeyi düşüneceğinize eminim.
Not: Benzer gelebilecek tek bir yapı var o da isterseniz tek bir statement için if, while, vd. kullanabiliyorsunuz. Örneğin:

Ekmek.al if Ekmek.bittiyse

Bu yapı bence şundan daha kısa ve anlaşılır

if Ekmek.bittiyse

    Ekmek.al

end

Ancak bu tamamen tercihe bağlı birşey, her iki stil de Ruby'de geçerli.
Ayrıca Ruby gibi dinamik bir dilde kod satırı kazancınız öyle 4-5 satırla kalmayacaktır. Kalıyorsa orada bir problem var belki yazdığın program zaten kısaydı :-) Bu konuda yapılmış araştırmalar Ruby gibi dillerin belirgin şekilde daha az sayıda satırdan oluştuğunu ve bu yüzden daha az sayıda hata içerdiğini gösteriyor.
0
yilmaz
java vs ruby belki ikiside tarih olur belli olmaz. FM de şöyle bir köşe açalım. herkes belli bir konu urun yada başka birşey hakkında 5 yıl sonraki tahminlerini yazsın. 5 yıl sonra kiminki gerçekleşirse diğerleriyle dalga geçer. çok da güzel bir proje olur. FM 5 senedir yayında 5 sene sonrada muhtemelen (inşallah) yayında olur.
0
librid
Ne yazık ki gerçekle uzaktan yakından ilgisi olmayan bir görüş...
Ruby Smalltalk benzeri bir dil. Hatta o kadar benzer ki bir Smalltalk programcısı tekerleğin yeniden icadına benzetecektir durumu ve haksız da sayılmaz. Smalltalk'un da bir şekilde Lisp'den türetilmiş olduğunu göz önüne alırsak Ruby'nin ALGOL temelli bir dil olduğu tezi aşırı derecede aptalca geliyor kulağa. Yazının basit bakış açısıyla bakarsak ve hatasını düzeltirsek Ruby aslında Lisp temellidir hatta macrolar dışında Lisp'den eksiği olmadığı gibi fazlası vardır. Ruby'yi diğer Unix betik dilleri olan Perl, Python, Tcl ile kıysalamanız gerekir. Fakat Ruby'nin iddiası bu dillerden fazladır çünkü bu dillerin yıllardır vaad ettikleri betik dili sınıfından genel amaçlı dil sınıfına geçme idealine en yakın dil Ruby'dir, çünkü bunların içerisinde en güçlüsüdür. Kısacası bugün Ruby ile Java kıyaslanıyorsa bu Ruby'nin dayandığı dil ailesinden falan değil betik dillerinin Lisp'in dinamik programlama, GC gibi özelliklerini genel amaçlı programlamaya taşıma iddilarının gün geçtikçe daha fazla gerçekleşmiş ve Ruby örneğinde olduğu gibi bunlara OOP ve FP konseptlerinin sıradan programcıya çekici gelen betik dili ambalajı içerisinde sunulmuş olmasıdır. Bunun ötesinde Ruby'yi kimler doğal olarak tercih eder? Bir kere Smalltalk progracıları Unix betik dillerinin güçlü yanları olan geniş kütüphane desteği, çok platformluluk, geniş camia desteği ve yüksek geliştirilme hızı avantajlarından yararlanmak isterse kendisine çok doğal gelen Ruby'ye geçecektir. İkinci olarak Perl 6'nın 2-3 seneden önce üretim ortamına gelemeyeceğini bilen Perl programcıları az çok kendilerini evlerinde hissettirecek özelliklere sahip olan Ruby'yi benimser. Ancak Ruby Perl gibi değildir. Örneğin tek satırlık betikler için $_ değişkenini istenirse aynı Perl gibi kullanabilir ancak bu değişkeni normal bir Ruby programnında hiç bir ciddi Ruby programcısı kullanmaz ve kullandırmaz.
0
FZ
Ruby aslında Lisp temellidir hatta macrolar dışında Lisp'den eksiği olmadığı gibi fazlası vardır.

Ruby'nin Common Lisp'e kıyasla getirdiği (iyi anlamda) fazlalıkları anlatabilir misiniz? Dil yapısı olarak anlatın lütfen, fonksiyon kitaplığı, vb. yan ürünleri işin içine katmadan. ANSI Common Lisp standardı ile Ruby standardına bakarak (hangisi ise o standart) yapın değerlendirmenizi yani.
0
librid
Öncelikle bir hatayı düzelteyim, > "... bunlara OOP ve FP konseptlerinin sıradan programcıya çekici gelen betik dili ambalajı içerisinde sunulmuş olmasıdır.". Doğrusu: "... bunlara birinci sınıf OOP ve FP konseptlerinin de eklenerek sıradan programcıya çekici gelen betik dili ambalajı içerisinde sunulmuş olmasıdır.

Amacım CL Ruby kıyaslaması yapmak değil aslında ama madem ısrar ediyorsunuz sadece standarda bakacak olursak örneğin Ruby'de continuation desteği çekirdek dilde var. Smalltalk tarzı OOP konsepti var vb. Ancak CL'de de çok güçlü makro desteği, CLOS var vb. Kısacası Ruby CL'den güçlü değildir ancak mütevazi görünümlü bir Unix betik dili olmasına rağmen oldukça sağlam OOP ve FP desteği ile Lisp'in altında da kalmayacaktır.
0
FZ
"Continuation" sevdalıları yine gayet sağlam bir standardı olan, kullanılan ve hatta Internet programlama için de faydalanılan (.NET platformu için de faydalı olabilen) bir Lisp varyantı olan Scheme dilini kullanmakta özgürler. Öte yandan bildiğim kadarı ile CL ortamında continuation da zor bir iş değil.

Smalltalk tarzı OOP değil CL'deki, evet CLOS diye farklı ve epey güçlü bir OOP yapısı söz konusu. Tabii kimisi bunu beğenmeyebilir ve "hayır OOP değil bu!" diye itiraz edebilir. Bakış açısına göre değişen bir şey.

Ruby'yi aşağılamak için söylemiyorum. Sadece Common Lisp'in ne olup ne olmadığını doğru betimlemekte fayda var. Evet, makrolar çok güçlü bir CL özelliği. Evet, Common Lisp de etkileşimli geliştirme yapısına sahip, derlenen, çok hızlı çalışan makina kodu üretebilen derleyicileri olan bir dil. Evet, MetaObject Programming gibi muazzam bir yapıya sahip (standardın bir parçası değil ama gayet net tanımlanmış durumda AMOP kitabı ile).

Tabii ki Common Lisp, Ruby kadar "trendy" değil. İnsanlara basit işler için cicili bicili RoR videoları çekici gelecektir, buna da bir itirazım yok zaten. Eğer programcılar Java'da 50.000 satırda yaptıkları bir işin benzerini Ruby'de daha az adamla 5000 satırda yaptıklarını söylüyorsa, ne mutlu onlara derim. Programlama dilinin getireceği soyutlama ne kadar sağlamsa işleri o kadar hızlı hayata geçirmek mümkün olacaktır. Alternatif platformların göz önünde bulundurulmasında fayda olduğuna inanıyorum. Bugün Smalltalk ve Common Lisp ile yapılan gayet ciddi ticari projeler söz konusu ise neden Ruby ile de yapılmasın?
0
librid
Somut örnek olması açısından, haydi şunu başka bir ALGOL temelli dilde de yapın da göreyim (Not: Sıradan bir Ruby programı değildir, bir fonksiyonel programlama örneğidir. Böyle programlar yazmak Ruby camiasında da tepki ile karşılanır :-) Tek satırda bir ALGOL temelli dilden beklenmeyecek şeyler olan anonim ve yüksek seviyeden fonksiyonlar ile "currying" ve if yapısının değer döndürmesi sergilenmiştir.):

command = "tripleadd"; sum = lambda {|x, y| x + y}; result = (if command == "tripleadd": (lambda {|x| lambda { |k,l,m| x[x[k,l], m] } })[sum][2,3,4] else "unknown command" end); puts result
0
librid
Pardon aslında şöyle yapacaktım ama fark etmez, yukardaki örnek zaten yeterli:

command = "tripleadd"; sum = lambda {|x, y| x + y}; result = (if command == "tripleadd": (lambda {|x| lambda { |k,l,m| x[x[k,l], m] } })[sum] else lambda { |*x| "unknown command"} end)[2,3,4]; puts result
0
librid
İnsanları biraz daha ürkütmek pahasına da olsa :-)


#!/usr/bin/ruby


(def rubyfu 

   (begin                       # no, it's not needed.

      (command = "tripleadd")   #sorry for the 

                                #infix notation :-)

      (sum = 

         (lambda {|x, y| x + y}))


      (if (command == "tripleadd"):

           ((lambda {|x| (lambda { |k,l,m| x[x[k,l], m] }) })[sum])

       else

         (lambda { |*x| "unknown command"})

       end)

    end)                        # just to show that begin 

                                # block returns the 

                                # the last expression.

end)


(puts (rubyfu[2,3,4]))

0
librid
> (if (command == "tripleadd"):
Fazladan konmuş ":" karakterini silebilirsiniz iki şekilde de çalışır.
0
FZ
Aman allahım, ne kadar çok (, ), {, } ve | var! :)
0
librid
Görüyorsunuz işte Lisp'den fazlası var ;-)
0
FZ
Benden size tavsiye, insanların Ruby denince arkalarına bakmadan kaçmalarını istiyorsanız lambdalı örnekler vermeye devam edin :) Arada fonksiyonel programlama filan da deyin ki kullanıcı sayısı kritik bir değerin üzerine çıkmasın ;-) (bkz. Lisp tanıtımı deneyimleri).
0
librid
"Currying" falan derken ben de konuya yabancılaşmaya başladım zaten. Şimdi Haskell öğrenmeye gidiyorum, hoşçakalın :-)
0
librid
Pardon burdaki örneğin "currying" ile ilgisi yok. "Currying" örneği şöyle bişi olmalıymış:

sum = lambda {|x, y| x + y}; curriedsum = lambda { |x| lambda {|y| sum[x,y] }}; plus_four = curriedsum[4]; puts plus_four[5]
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Rehber: ActiveRecord modellerini projeler arası paylaştırmak

murat

Günümüzde microservis, dağıtık uygulamalar.. vs popüler olmaktan ziyade, otomatik ölçeklenen uygulamalar geliştirmek için gerekli bir yaklaşım halini aldı. Geliştirdiğimiz uygulamanın farklı görevleri olan kısımlarını farklı uygulamalar olarak dağıtabilmek için projeleri bölmeye başladık. Ben de böyle bir ihtiyaçtan yola çıkıp kompleks bir yapısı olan ve refactor gerektiren bir rails...

Google Sonunda Ruby'yi de Kutsadı

anonim

Favori arama motorumuz Google'ın çıkardığı SketchUp isimli üç boyutlu modelleme yazılımı betik dili olarak Ruby'yi kullanıyor.

netSınav: Ruby On Rails Uygulaması Geliştirimi

anonim

Ruby On Rails ile internet üzerinden sınav sisteminin nasıl geliştirileceğine dair bölümsel halde ilerleyen bir tasarı netSınav.

Ne olduğuna dair detaylı bilgi burada yer alıyor.

Ayrıca 1. bölüm , 2. bölüm , ve 3. bölüm bağlantıları.

Ruby'yi Özelleştirmek

anonim

Ruby'yi gördünüz beğendiniz. Onunla kod yazmaya uygulama geliştirmeye başladınız. Ama gün geldi Ruby size yetmedi. Daha fazlasını istiyorsunuz veya varolan eklentileri NIH sebebiyle kullanmıyorsunuz. O zaman sizi Ruby için eklenti geliştirme kılavuzuna alalım. Ruby'nin kendisini veya arkasındaki büyük gücü kullanarak sizde Ruby için eklentiler yazabilirsiniz. Tabi ki her zaman ki Ruby kolaylığı ve eğlencesiyle. Code Ruby Be Happy...

Rails 2.0 ve hatta 2.0.2 çıktı

butch

İlgilenen üye kalmamış olacak ki bu haber FM'e ulaşmadı. Yabancı olduğum bir konu olmakla beraber meraklılarının bu sürümü heyecanla beklediklerini biliyorum. 7 Aralık tarihinde 2.0 sürümü ile arenaya dönen Ruby On Rails'deki yenilikler için buraya, bu duyurunun hemen ardından gelen 2.0.2 sürümü için de burayı ziyaret edebilirsiniz. Rails 2.0 ile ilgili Türkçe bir yorumu da bildirgec.org'da bulabilirsiniz.