July 18, 2013

Alıntı:

>

Bence, yaptığın şeyin hızını ölçmek için bu ve benzer olasılıkları düşünmene gerek yok. Yoksa hızı yavaşlatabilecek çok farlı olasılıklar da düşünülebilir. Öyleyse bu dili kullananın sorunudur. Yani neyin daha hızlı olduğunu görüp ona yönelebilir. Eğer tüm olasılıklara göre hızlı olabilecek bir dil yapmaya kalkarsan, toplamda bir yavaşlık olabileceği gibi işler bir yerden sonra Arap saçına dönebilir...:)

Hocam burada sadece 4 kere nesne oluşturmak ne kadar vakit alıyor onu hesaplatıyordum aslında :) Yoksa her ihtimal için yapmayacağım elbette nesne oluşturma süreleri bir dil için çok önemli ne kadar kısa o kadar iyi.

Alıntı:

>

Hatırlarsan farklı durumlar için "mode" önerim vardı. Örneğin bunu matematiksel işlemlerin çok daha hızlı çalıştığı bir şekle (daha sonra) çevirebilirsin. Anahtar sözcüğü ise "mathops" olur mesela. Yorumlayıcı başlangıçta bunu gördüğünde kişilik değiştirip o hizmete yönelik davranmaya başlar. Bence bunlar (mod'lar) dil tam oturduğunda düşünülecek iyileştirmeler; hatta renk katacak şeyler. Yani asıl yapıyı bozmadan alternatif şeyler geliştireceksin. Böylece geriye doğru mükemmel bir uyumluluk meydana getirebilirsin.

Mod fikri gayet güzel ama ben hala uygulanabilirliği konusunda emin değilim açıkçası :)

Alıntı:

>

MySQL için D kutuphanesi vardi sanirim oyle hatirliyorum :) github uzerinde gormustum. Bunlardan mi fayda ediyorsun testlerde yoksa MS-SQL vs. denemelerin olur mu?

İkinci dediğinizi analamadım ama evet D kütüphanesi var ama hatalı çalışıyordu son sürümü şu an nasıl bilmiyorum. Onları dile port edip kullanıyorum.

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 18, 2013

Alıntı (zekeriyadurmus):

>

Mod fikri gayet güzel ama ben hala uygulanabilirliği konusunda emin değilim açıkçası :)
Bu sefer farklı bir şekilde açıklayayım:

Farz edelim elinde 2 farklı parser ve lexer sınıfın olsun. Bakın şuna ki biri önceki sürüm ve desteklediği şeyler kısıtlı, diğeri ise yeni geliştirilen ama desteklediği özellikler fazla olduğu için biraz yavaş kalana yeni sürüm. O yüzden onu kullanmak için önbellekli ve biraz daha basite indirgenmiş bir yapıya geçmek gerekiyor...

Elimizde hepimizin bildiği gibi melez (hybrid) bir yapı (xHTML) var diyelim. Ayrıca yoğun kod üretecek kısımlarını, programcının işini kolaylaştırmak için farklı bir moda geçirebileceğimiz bir bölümü olduğunu varsayalım:

<html>
 <head>
   <title> <| print(mainTitle) |> </title>
 </head>
 <body>
<!-- ************ MENU YÜKLE ************ -->
 <| vt = mySqlConnect("mainTitle", "test", "test") |>
   <div id="navmenu1">
     <ul><! vt.load("anamenu")
       line = vt.tableLength
       ilkmenu = true
       while(line) { |>
               <li><a href="<| print(vt.get("url") |>" title="<| print(vt.get("title") |>"<|
               if(ilkmenu) {
                 print(" class=\"current\"")
                 ilkmenu = false
               }|>><span><| print(vt.get("title") |></span></a></li>
               <|
               vt.next
               line--
       }|>
     </ul>
   </div>
<!-- ************ ÖZEL UYGULAMA YÜKLE ************ -->
   <div id="mainpage">
     <| #MODE="extremlyFast"

       cachedResources {
         scene("640", "480", "Test Application", "#C0C0C0") {
           test = vt.load("testapp")
           scene.form(0x20, "Search Bar", "center", test)
           scene.dataGrid(0x40, "400", "400")
           scene.slider(0x10, "List Length", "center")
           scene.run("0x20->0x10->0x40")
         }
       }
     |>
   </div>
 </body>
</html>

Yukarıdaki kod tamamen hayali, o yüzden hatalı olabilir. Öyle aklıma geldiği gibi yazdım. Mutlaka daha iyisi yapılabilir ama demek istediğim anlaşılmıştır sanırım. Dikkat ederseniz veritabanından veri alan iki güncel uygulama örnek verdim...

Bunlardan ilki hepimizin bir döngü ve CSS ile yaptığımız için satırları. Yani çok standart ve neredeyse her sitede olan bir menü yapısı. Ama farkettiyseniz hazır bir form değil ve siz HTML'e uygun bir şekilde aralara RhS kodu eklemeniz gerekiyor. Tabi başka kötü teknikler de var, örneğin tüm HTML kodu veritabanına atmak gibi.

Sonraki uygulama ise basit bir arama ve listeleme kutusunun bulunduğu bir sahne oluşturuyoruz. Buradaki kodlar tıpkı Java gibi standart bir yapı döndürdüğü yine HTML olduğunu düşünün. Yaptığı ise bir form oluşturup Ajax kullanarak sayfa içi yükleme yapmak. Yani programcıyı hiç bir kodlama ile meşgul etmeyecek. Sadece belli nesneleri tanımlayıp son satırda birbirine bağlaması gerekiyor. Buna göre veri 0x20 kimlik numaralı nesneden alınıyor ve slider (0x10)'ın belirlediği sınırlar dahilinde sonuçlar dataGrid (0x40)'a aktarılıyor...:)

Ancak dikkat burada standart print, while gibi hiç bir komut çalışmıyor. Yani yorumlayıcımız oldukça hızlı bir kipe (#MODE="extremlyFast") sokuluyor. Buna ister plug-in deyiverin, isterseniz template, isterseniz de mode.

İşte böyle...:)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 18, 2013

Öncelikle bu güzel yazı için çok teşekkür ederim Salih hocam :) Demek istediğinizi şimdi daha iyi anladım. Şimdi buna da benim bir önerim olacak :)

#MODE="extremlyFast" demek yerine

extremlyFast{

}

şeklinde bir kullanım ile yapsak bence çok daha iyi olur (hız açısından diyorum) çünkü sistem başlangıcında #mode araması yapmamız gerek ve bu da yavaşlatır diye düşünüyorum onun yerine extremlyFast demek daha hızlı olacaktır :)

Bunun için baştan bir Lexer yapmaya da gerek yok parser'a ufak bir eklemeyle çok rahat yapılabilir. Hatta bu cachedResources gibi isimlerle modüller oluşturulabilir bu işlemler doğrudan o modüllere devredilebilir.

Ve bence bu sistemi mutlaka yapmalıyız çünkü profesyonel kullanıcılar makarna kod yazmak istemiyor. HTML e bulaşmak istemiyor onun yerine bu şekilde kullanmak çok güzel olacaktır.

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 18, 2013

Evet, bu daha da mantıklı. Sonuçta biz programcılar kümeleme mantığına alışığız...

Elbette işlemlerin mutfağında olan biteni sen daha iyi bilirsin ama tek satırda kipler arası (modes) geçiş de sempatik görünüyor. Hatta herhangi bir dilde (yorumlayıcı da olabilir) böyle bir şey var mı açıkcası merak ediyorum...:)

Düşünsenize...

#mode : "OpenGL"

(require sgl/gl
        sgl/gl-vectors)
(glBegin GL_TRIANGLES)
(glVertex3i 1 2 3)
(glVertex4fv (gl-float-vector 1 2 3 4))
(glEnd)

dediniz ve hemen arkasından, alıştığınız D kodlarıyla devam etmek istediniz:

#mode : "ClasicD"

bool isRunning = true;
auto display = new Display();
scope(exit) display.cleanup();

while(isRunning) {
 isRunning = display.event();
 display.clear();
 display.drawGLFrame();
}

şeklinde bitirdiniz. Çok mu saçma oldu ya da yorumlayıcının sapıtmasına ve işlerin karışmasına mı sebep olur?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 19, 2013

Hocam açıkçası mode işini kümeleme ile yapma taraftarıyım bu şekilde nasıl yapacağımı hiç bilmiyorum :)

Ama dilde tabiki lisp ve c sentaksındaki değişim kadar köklü bir şey yaparsak çok büyük bir karışıklık çıkar diye düşünüyorum. Phobos ve tango cular gibi :)

Ama önceki postta dediğiniz çok mantıklı ve mutlaka uygulamalıyız diye düşünüyorum. Bunun için bir standart ayarlamak ve bir kütüphane yazmak gerek.

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 19, 2013

O zaman senin şimdi bana bir görev vermen icap eder...:)

Bana deki; şu isimde bir sınıfımız için falanca üyeleri olsun ve nesneler, şu parametreler ile kurulsun...

Üye işlevler de şu kurallar dahilinde gelen veriyi şu şekilde işlesin ve ben de onu yapayım...:)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 20, 2013

Estağfurullah hocam görev olur mu :)

Hocam cachedResource içerisinde while for if çalışacak mı?

Çalışmayacak ise sistemin hızlı çalışması için RhS 2 den farklı bir sistem uygulamalıyız diye düşünüyorum. Adresleme işlemlerini parse esnasında yapalım ve ben sizin oluşturacağınız sınıfa çalıştırılacak komut listesini parserdan döndüreyim.

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 21, 2013

Bu konuyu etraflıca düşünmek lazım. Yani toplantılarda tüm arkadaşların düşüncelerini almak iyi olabilir.

Hatta dilin bir süre yaygınlaşmasını bekleyip kullanıcı yorumu almak, bizi daha isabetli sonuçlara götürür. Ayrıca bu kipler (modes) tek bir tane veya önbellekli bir şey olması gerekmiyor. Benim örneklediklerim sadece ilk aklıma gelenlerdi. Örneğin bir jQuery modellenebilir. Orada insanlar bir kaç satır kodlama ile kütüphanenin yeteneklerini ne kadar basit ve etkili kullanabildiklerini düşünsene; bir de aynı şeyleri RhS ile komut komut yapabilmek için harcayacağın emeği...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 31, 2013

Hocam bu sistem bence en iyi şekilde parsera entegre edilirse çalışır. Hem sentaks kontrolü de tamamen bu sisteme bırakılır. Ayrıca while for gibi ifadeler de rhs üzerinden çalışmak yerine eğer lazımsa daha hızlı bir şekilde bu özel sınıf tarafından çalıştırılabilir.

Hocam o halde bir parser tarafından yönlendirlecek bir parse fonksiyonu ve bütün parse işlemlerinden sonra çalıştırılma zamanı gelince execute fonksiyonu yapılması uygun olur.

Sınıf içerisinde dataGrid, form, slider gibi attribute ler oluşturulur ve bunların herbirinin varsayılan bir değeri olur. Parser bunlarla ilgili bir şeyle karşılaşınca direk sınıf içerisinde bu değerler değiştirilir ve execute kısmı bu değerleri dikkate alarak sonuç üretir.

Zekeriya

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

1 2
Next ›   Last »