Forum: Projeler Rhodeus Script RSS
Yeni Bir Dönem Günlüğü Eylül 2013
Sayfa:  1  2  sonraki 
Avatar
zekeriyadurmus #1
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Yeni Bir Dönem Günlüğü Eylül 2013
Başlık kötü dursada söylemek istediğim birkaç şey olduğu için ve onları da tek seferde yazmak istediğim için böyle bir isim verdim başlığa.

Perşembe günü Samsun'dan Ankara'ya daha sonra Cuma günü ise Ankara'dan önce Munich oradan da Prague ye gidiyorum inşallah. Şu an burada elimdeki broşürü bastırma derdine düştüm ve malum okullar açıldı muhtemelen izin alıp bu işleri halletmeyi düşünüyorum.

Buraya kadar olan kısım yarışma ile alakalıydı şimdi ise Rhodeus Script ten bahsetmek istiyorum. Biraz araştırmalar yaptım ve bir çok dilin hep farklı dillerde yazılmış implementasyonları gördüm ve şuanki hedefim Ruby dilini incelemek. Ruby 2 sürümü ile gerçekten diğer bütün script dillerine fark attılar ve ilk dikkatimi çeken şey ise integerlar için tekrardan bir nesne açmaması çok değişik bir metod kullanmışlar.

int adreslerini incelediğimde şöyle bir kuralla karşılaştım: (int değeri * 2) + 1
ama string gibi şeylere eriştiğimde ise 18695544 gibi bir ifade ile karşılaştım ve 2.kez string oluşturduğumda ise
18695268 şeklinde arada 24 fark olacak şekilde parçalara bölerek ayrıştırıyormuş meğerse. Yani her nesnede 6 int lik yer var. Ruby dilinden bu anlamda etkilenmeyi düşünüyorum.

Şimdi okul saatim geldi çıkıyorum geri kalan tespitlerimi haberlerimi :) buradan tekrar yazacağım.

Teşekkürler :)

Zekeriya
Bilgi meraktan gelir...
Bu mesaj zekeriyadurmus tarafından değiştirildi; zaman: 2013-09-16, 05:40.
Değişiklik nedeni: implementasyonlarını olacak :)
Avatar
Salih Dinçer #2
Üye Ock 2012 tarihinden beri · 1880 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Başlığın ismi şu şekilde olup devam edilebilir:

Yeni Bir Dönem Günlüğü(...)

Belki parantez içine (...) günlüğün kapsamını tarihlendirebilirsin. Örneğin bugünün tarihi (gerçi buna gerek yok zaten başlığın oluşturma tarihinde mevcut) ile Avrupa seyahatinin dönüş tarihi arası olabilir. Böylece, Türkiye'de okulların açıldığı bu dönemde edindiğin yeni bilgileri, izlenimleri ve belki proje ile alakalı duyurmak istediğin haberleri nakledersin. Zaten buna an itibariyle başlamış bulunmaktasın. İyi yolculuklar dilerim...

Ruby'e gelince, ismini sıklıkla duysam da çok yabancısıyım. Bu baba bir dilmidir, yoksa sadece script temelli bir şey midir çok bilmiyorum. Ama D zaten seni fazlasıyla açacak çünkü gelişen bir dil. Yoksa yaptıklarını elbette her dil ile yapmak mümkün. Önemli olan D'ye katkı sağlamak. Aslında bu karşılıklı bir şey olacak bizim için. D'de kazanacak, sen de...:)

Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
zekeriyadurmus #3
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Öncelikle başlık için teşekkürler :)

Dilin kesinlikle bir RUBY sürümünü yapmayı düşünmüyorum scripting dili çünkü. Sadece Java, C gibi dillerde DRhodeus CRhodeus JRhodeus gibi düşünebileceğiniz sürümler yapmayı düşünüyorum.

Mesela java ile böyle bir dil yapılsa ve java kütüphanelerinden yararlanılsa çok iyi olur.

Hocam yaptığım şu an JIT compiler oluyor ama sistemi tekrardan Sanal Makine(Virtual Machine) yapısına geri dönüş yapacağım. Bu şekilde sistemin daha kararlı olacağına inanıyorum. Zaten JIT Compilerı yaparken işlemci mimarisi hakkında az buçuk bilgim oldu memory olayları üzerinde biraz daha çalışıp bir sistem yapmayı düşünüyorum. Kafamda şu an birkaç şey var bir sorun çıkmaz ise inşallah uygulayacağım. Şunu gururla söyleyebilirimki sonunda Rhodeus Script'in kararlı bir sürümünü çıkartabileceğim :) Mükemmel bir şey olmasa da ki şu an için buna gerek yok şu an en çok önemli olan dilin güzel güzel çalışacka olması :) Parser kısmında bazı hatalar var onları da düzeltmeyi düşünüyorum. Malum IL yapısına geçince bir çok zorluk ortaya çıktı.

Garbage Collection işleminden biraz bahsetmek isterim.
Şu anki sistem referans sayma ile çalışıyor.
Elimde şu anki nesneleri tutmak(usedList) için ve boş alanları tutmak için(freeList) 2 dizi var.
Yaptığım işlem freeList ten alıp usedList'e atmak diyebilirim aslında.
Ara ara (her 50 işlemde 1) usedList i tarayıp referans sayısı(refCount) 0 olan nesneleri bulup freeList e atıyorum.

a = 1_000_000
a = [1,2,3]
a = "talha"

Bu tarz bir rhs kodunda
1.satır: a değişkeni üzerinde değer olmadığı için hiçbir işlem yapılmaz sadece nesnenin refCount 1 arttırılır.
2.satır: a değişkenindeki int nesnesinin refCount 1 azaltılır ve eğer refCount 0 ise freeList e nesne atılır. Dizi üzerindeki her nesnenin referans sayısı 1 arttırılır. Dizinin referans sayısı 1 olur, aynı şekild elemanların referans sayısı da 2 olur (sistem nesnesi oldukları için çöp toplayıcı tarafından yanlışlıkla silinmemeleri için nesnelerin referans sayıları 0 olarak değil 1 olarak belirtilir).
3.satır: a değişkenindeki dizinin üyelerinin ve dizinin kendsinin referans sayısı 1 azaltılır ve dizinin refCount 0 olduğu için dizi freeList e gider. "talha" nesnenin referans sayısı 1 arttırılır.

Tabi artık RUBY dilinin intler için ramden yer ayırmadığını görünce oldukça ilham kaynağı oldu bana ve sistemi kafamda kurgulayıp aynısını uygulamayı düşünüyorum ki buda matematiksel işlemleri hızlandıracak :)

baba bir dilmidir, yoksa sadece script temelli bir şey midir çok bilmiyorum.
Script dili python gibi ve gerçekten harika hızlı bir dil.

Zekeriya
Bilgi meraktan gelir...
agora #4
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ruby gayet guzel dil :)

Acikcasi Python ogrendim ama Ruby'e de basladim ben. Kisa surede bitirip bilhassa Rails'e bakmak istiyorum :)

Bu dillerde uzman olmayi isterdim Ruby gercekten gelisim kaydeden bi dil. Ama hala Python'ın eline su dokecegine inanmiyorum ben.

Aslinda universitelerimizde de Python ogretiliyor :)

Python ve Ruby syntax yapisina bakinca hemen hemen ayni yapilarda olduklari gorunuyor fakat Ruby kimi zamanlarda daha komplex. Programlama paradigmalari konusunda, syntax gibi konularda cok benzerler.

Ruby dilini inceledigimde ilk gozume carpan, (senin de carpmistir mutlaka) Ruby'de her sey class olarak tanimliyoruz yani her sey OOP olarak yapiliyor, primitive tipler dedigimiz tipler Ruby'de yok. Ilkel veri tipleri yani bunlar.

Python ise 3 farkli tipte kullaniliyor biliyosundur zaten. OOP, Fonksiyonel ya da scripting.. Bu scripting olayı server'larda da çalıştırılabilirlik sağlıyor. Yani server sistemlerinde bir avantajı da o. Aslında Ruby de çalıştırılabilir.

Python ayrica cogu ozellikleriyle ki bu ozelliklerden birisi unicode, Ruby diline gore daha geliskin. Ben Linux altinda neler cektim :(

Ruby aslinda atilimini RoR ile yapti. Bildigimiz Rails ile yani. Bu web framework'u ayni django gibi populer. Genelde insanlarin Ruby kullanma tercihi RoR tabanli. Ruby takimi da belli ki bunun uzerine yogunlasmis durumda.

Python ise cok farkli bi duzeyde

Robotik sistemlerde kullaniliyor(sinyal yollama islemi yaptim). Biyoenformatik sistemler(bu konuda hic tecrubem olmadi) kullaniliyor fakat parantezde de belirttim tecrubem olmadi :)

PiSi Linux, Ubuntu, Gentoo gibi cogu dagitimin Boot ekranindaki grafik arayuzlu yukleyici ve paket yoneticileri de yine Python ile yazildi.

Ben yillar once Pardus icin yazilimlari paketliyordum. Burada pspec.xml ve actions.py gibi 2 dosya sartti :) Yine python bilgisi sart oluyordu yani. (Pisi Linux)

Dokumantasyon sorunu da var tabii Ruby icin. Ruby robotik alaninda kullaniliyor evet. Ama Python kadar kolay degil. Fakat hatirlarsan IronRuby kullanip bir editor yazmistim ben :)

Sadece ruby ile kalmayip Python'ın fonksiyonel yonlerini de alirsan guzel olur :)

Mesela RhS scripting, oop ve fonksiyonel olarak calisabilirse mukemmel olur. Bu sayede aslinda sadece web dili olmaktan da cikar. Python pip, Ruby gem kullaniyor belki bu tip bir de paket yoneticisi yazildi mi mukemmel olabilir :)

gonul ister ki Lisp dialektigi olabilsin ama onun da syntax'i cok karmasik yahu :) okulda gosterdilerdi de zordu baya.

Python'a devam edecek olursak yine cogu buyuk sistem Python kullaniyor fakat bu klise artik :) diller kisisellestirilebilir olduklarindan bu kurumlar onlari kendilerine gore dallandirdilar degistirdiler.

Ornek CPython implementasyonu gibi. Ya da PyPy gibi. Ruby'nin eksik noktalarindan birisi bu. Ruby henuz taninirligini artirirken PyPy, CPython gibi implementasyonlar hazirlanmisti. Yazanlari google gibi kurumlarda is sahibi olmuslardi. Blender'ı belki duymussundur. Yine o da Python kullanilan yazilimlardan. Tabii ki tek basina Python degil :)

Sen yine de Python'dan da etkilen derim :)

Ozellikle CPython ve PyPy implementasyonlarına bakıp onların hızı nasıl sağladığını görebilirsin normal Python'a göre hızlarında performanslarında artış var çünkü.

Ayrica NumPy ve PiL de esgecilmemeli :)
Bu mesaj agora tarafından değiştirildi; zaman: 2013-09-16, 09:51.
acehreli (Moderatör) #5
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4391 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ne güzel haberler! :) Sana Münih'te ve Prag'da başarılar.

Ali
Avatar
zekeriyadurmus #6
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Dil konusunda etkilenmeyi düşündüğüm şey sanal makine mimarisi açıkçası ruby nin sanal makinesine kimse su dökemez.

Python sanal makinesinin bana sorulursa oldukça eksiği var geliştirilmesi gerekiyor php nin sanal makinesi ise tam bir facia.

Python da çok fazla kaynak ve kütüphane var onu güçlü kılan o yoksa sanal makinesi dediğim gibi çokda iyi değil

Ruby dilini inceledigimde ilk gozume carpan, (senin de carpmistir mutlaka) Ruby'de her sey class olarak tanimliyoruz yani her sey OOP olarak yapiliyor, primitive tipler dedigimiz tipler Ruby'de yok. Ilkel veri tipleri yani bunlar.
Script dillerinin tipleri çok değişik yani ilkel demek ne kadar doğru bilmiyorum ama şöyle bir olay var ruby 2.0 da python ve rhs nin aksine integer, none, true, false gibi nesneler primitive veriler gibi tutuluyor yani verinin bulunduğu yerde başka bir yere adres yok sayılar için i *2 + 1 kuralını unutmamak gerek. O halde bu veriye primitive diyebiliriz bence çünkü diğer veri türlerini aksine adres taşımıyorlar üzerlerinde.

Bu yazıyı yazmadan önce baya bir araştırma yaptım bu primitive türler ruby çalışma mantığı hakkında ve şu an tarayıcıda bir ton sekme var gözlerim kapanıyor hepsini inceleyemiyorum geniş bir zaman aralığında incelemeye çalışacağım.

Ne güzel haberler! :) Sana Münih'te ve Prag'da başarılar.
Teşekkür ederim hocam yanlız yanlış anlaşılmasın Münihe sadece aktarmalı olduğu için gidiyorum :)

Zekeriya
Bilgi meraktan gelir...
Avatar
zekeriyadurmus #7
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ayrıca şunu belirteyim. CPython = Python yanlışlık olmasın muhtemelen Cython ı kastediyorsunuzdur ama o da eklentiler ile alakalı bir şey yani farklı bir implementasyonu değil.

Ve şunu düşünüyorum D dili ile bir OS yapılsa eminim ki çok daha performanslı olurdu.

Zekeriya
Bilgi meraktan gelir...
agora #8
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet evet. Kendim bu Cython ya da CPython sourceforge'daki ilk gordugum adiyla simdi 2 farkli proje mi bilmiyorum :) Ama dallandilar yani

İkinci dedigine gelirsek D ile OS yapilabilir. Yani sonucta amac makine ile iletisime gecmek degil mi? C olanaklari hic kullanilmadan yapilabilir diye dusunuyorum. Ama soyle bisi var kernel da mi D ile yazilacak? Her sey sifirdan D ile yazilacaksa baya kulfetli bi is olabilir belki :)
acehreli (Moderatör) #9
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4391 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
D ile bir işletim sistemi çekirdeği:

  http://ddili.org/forum/thread/893

Ali
agora #10
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Bu basligi gecenlerde forumda arama yaparken gormustum 4 sayfayi da okumustum :)

Sifirdan sadece

.di, .d gibi ornegin dosyalariyla da yapilabilir.

Oradaki biraz C olanagi da iceriyor galiba.

C'nin en ufak olanagi dahi kullanilmadan da yapilabilir bence.
Avatar
zekeriyadurmus #11
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #8
Şöyle ki linux un bir çok yeri python ile yapıldığı için çokta performanslı değil ama bunun yerine D kullanılsa daha iyi olurdu :) Tabi derleme süresi ne kadar olurdu bunu bilemiyorum :) Fark ettiğim kadarıyla dmd çok fazla ram yiyor.

Ayrıca bir konuda özür dilerim ruby ile yaptığım testte ruby nin int veri türünün primitive gibi olmasından dolayı çöp toplayıcıya ihtiyaç duymaması ve array içerisini intlerle doldurmam yanıltıcı sonuçlar doğurdu. Aslında bu duruma da çok sevindim :)

Bu arada test sonuçlarım:
Perl: 35.36
PHP: 21.19
Ruby: 11.31
Python: 2.29
Rhodeus Script: 1.58

Kafamda sistemi iyice kurguluyorum biraz iddalı konuşuyorum ama bu scripting dillerinden daha iyisini yapabileceğimi inanıyorum. Tabi bir topluluk(community) kurulmasına ihtiyacım var.

Zekeriya
Bilgi meraktan gelir...
Avatar
zekeriyadurmus #12
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
http://stackoverflow.com/questions/664334/does-rubys-objec… adresinde yazdığı üzere
In "normal" ruby (MRI 1.8.x and 1.9.x) it's just a unique value.

This is also the case in IronRuby
Ruby dilinin integerları bazı durumlarda primitive olarak saklanıyor ve 2.0 sürümünde bu özellik eklenmiş. Zaten test sonuçlarına bakıldığında 2 sürümü ile 1.9 sürümü arasında ciddi farklar var.

Zekeriya
Bilgi meraktan gelir...
agora #13
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #11
zekeriyadurmus:
Kafamda sistemi iyice kurguluyorum biraz iddalı konuşuyorum ama bu scripting dillerinden daha iyisini yapabileceğimi inanıyorum. Tabi bir topluluk(community) kurulmasına ihtiyacım var.



bunun icin istersen gnome gibi acik kaynak sitelerine, linux forumlarina vs. dili tanitabilirsin.

Yabanci forumlardan gelen topluluk destegi bambaska bise olur :)
Avatar
zekeriyadurmus #14
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ama yazınca ne olacak tam olarak onu bilmiyorum. Projeyi bir çok insana tanıttım ve bir çoğu sadece bakmakla yetindi bense birşeyler anlatmaya çalışmakla yoruldum. Biraz daha ciddi bir şey olsun istiyorum açıkçası.

Zekeriya
Bilgi meraktan gelir...
agora #15
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Burada eksik nokta dokumantasyon sorunu. bitbuckets, github gibi sitelere yeni yeni uretilen diller ekleniyo cok ilginctir insanlar sirf o dilin ilk kullanan uzmani olmak istedikleri icin yazilimlar gelistiriyo. tabii burada onemli olan dokuman bollugu.

Yoksa proje cok guzel mesela ben RhS ile blog, forum gibi sistemler gelistirmek isterim ama PHP hakkinda dahi bilgim yok :) belki dokuman olursa RhS ile gelistirebilirim de :)

Mesela Django, Rails biliyosun bu gibi frameworkler python, ruby'den turediler.

RhS'den de guzel framework'ler tureyebilir. Istenilen buyuk olcekli sitelerin yukunu kaldirabilecegini anlatabilirsin mesela. :)
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  1  2  sonraki 
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-04-24, 00:25:33 (UTC -07:00)