Gönderen Konu: gunaydın :)  (Okunma sayısı 9983 defa)

gunaydın :)

« : 22.02.2013 18:13:14 »
Hızlı düğmeleri aç

endo

İleti: 687

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.moldibi.com
bugun "Open Language" ile ilgili bir yazi gordum:

"Wouldn’t it be great if we had perfect English-like syntax for everything?
For example, if you want to take a photo with a device’s camera it would be much clearer to be able to write:
     take photo with front camera
rather than
     mobilePickPhoto “front camera”

Or, if you want to open a connection to an SQLite database, to be able to use:
     connect to sqlite database “mydatabase.db”
rather than
      get revOpenDatabase(“sqlite”, “mydatabase.db”,,,)

"

yaklasik 10 yildir kavgasini verdigim bi konu, REBOL'den haberleri yok sanirim, birileri daha ayni seyi dusunmeye baslamis ama, sevindim :)

iste bir REBOL kodu, klasordeki tum text dosyalarini ftp'ye upload ediyor ve dosya icerigini mail atiyor:

Kod: [Seç]
foreach file read %folder/ [write join ftp://example.com file content: read file send/subject test@test.com content file][/FONT][/COLOR]

bi okuyun, bir tane gereksiz/fazla kelime var mi ya da syntax'ta bi karisiklik var mi?

- endo of glance -

gunaydın :)

« Yanıtla #1 : 27.02.2013 11:00:25 »
Hızlı düğmeleri aç

endo

İleti: 687

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.moldibi.com
iste bahsettigim sey buydu: http://blog.nsbasic.com/?p=1112
- endo of glance -

gunaydın :)

« Yanıtla #2 : 27.02.2013 21:52:03 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
haklısın endo ancak adam sanki

Kod: [Seç]
send all text files located at [URL]ftp://hostname[/URL] to e-mail adress [EMAIL=test@test.com]test@test.com[/EMAIL]

gibi birşeyden bahsediyor. Bu durumda Rebol'de gereksiz/fazla kelime ve sembol var. ıngilizce konuşan kimse senin Türkçe'de "klasordeki tum text dosyalarini ftp'ye upload ediyor ve dosya icerigini mail atiyor" şeklinde tanımladığın şeyi "foreach file read %folder/ [write join http://ftp://example.com file content: read file send/subject test@test.com content file]" diye çevirmez, öyle değil mi? diğer bir şekilde ifade etmek gerekirse;

%klasör/ herbir dosyayı oku [http://ftp://example.com dosya içeriğini yaz birleştir: dosyayı oku dosya içeriğini gönder/konu test@test.com]

diye Türkçe konuşuyor muyuz? Rebol gayet okunaklı bir dil ve bu hedef düşünüldüğünde belki de ideale en yakınsıyan dil olabilir. Ancak;

take photo with front camera

bambaşka bir hedef bence. Bu yalnızca dil ile de sınırlı birşey değil, işletim sistemi, donanım, herşey buna uygun olmalı. Yani front camera denilen alet driver ismiyle değil de "front camera ulan işte, zaten bu cihazın üzerinde kaç tane var? anlasana!" şeklinde algılanacaksa o iş Rebol'ün tasarımını fazlasıyla aşıyor bana sorarsan. bir diğer mevzu

take photo using front camera

bu da aynı işlevi yerine getirecek mi/getirmeli mi? konu çok derin bence.

bu arada elbette ki ne demek istediğini çok iyi anlıyorum. Rebol'ü tasarlayanlar belki de aynı hedefle yola çıkıp mecburen bazı tanımlar, köşeli parantezlerden oluşan bloklar, semboller kullanmak zorunda kaldılar. Bir compiler, hadi olmadı en azından herhangi bir parser yazmayı hayatında bir kez denemiş birisi hiçbir özel karakter olmadığında birşeyleri parse etmek, algılatmak ne kadar zordur iyi bilir. Sanırım babelfish, google translate benzeri projelerde çalışanlar Visual Studio, XCode v.b. ekiplere göre bu tür bir dile compiler geliştirmek için daha uygun adaylar derim. Bunu yazan adamın az da olsa Rebol'ü biliyor olması dahi mümkün.

gunaydın :)

« Yanıtla #3 : 28.02.2013 16:24:13 »
Hızlı düğmeleri aç

endo

İleti: 687

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.moldibi.com
Selam, yazdıkların maalesef REBOL'ü bilmemenden kaynaklanıyor, daha doğrusu benim yeterince iyi bir örnek vermememden, açıklayım:
yukarıda verdiğim örnek son derece "low level" (evet rebol için gayet low level kalıyor, ftp'ye dosya upload edip mail atmak) bir örnek, ona rağmen "gereksiz" harf/sembol miktarı yok denecek kadar az.

Klasödeki tüm dosyaları ftp'ye upload edip içeriğini mail ile gönderen bir C, C#, Java, VB, Pascal örneği yazabilir misiniz? mümkünse yukarıdaki kadar "net" olsun.

ışte aşağıda tamamen valid, perfect bazı REBOL kodları:

Kod: [Seç]
Sell 100 shares of "Microsoft" at $47.97 per shareve
Kod: [Seç]
Reschedule exam for 2-January-1999 at 10:30veya
Kod: [Seç]
every 2 hours 3 times do [send test@example.com "Test mail"]
REBOL'ün "gücü" bunu mümkün kılması, bu gücü kullanmadığında sevimli, çok az yer kaplayan, runtime/framework gerektirmeyen, pratik bir programlama dili sadece (yine bile yeterince iyi oldu) ama asıl gücü bu verdiğim örnekler.

Buna göre

Kod: [Seç]
send all files in to test@example.com daha iyi bir örnek olurdu sanırım.
- endo of glance -

gunaydın :)

« Yanıtla #4 : 01.03.2013 09:03:25 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Ben rebol'ü cookbook'daki örnekleri kadar bilirim. Hiçbiri de proof of concept örnekleri kadar düz ıngilizce değil. Ya Rebol ekibi kendi oluşturdukları dili kullanmayı bilmiyor, ya da ideal koşullarda verilen örnekler iş gerçek programlamaya gelince uygulanamıyor.

http://www.rebol.net/cookbook/

Rebol:
Kod: [Seç]
foreach file read change-dir path [
    set-modes file [modification-date: time]
]

C# code
Kod: [Seç]
foreach (FileInfo file in DirectoryInfo(path).GetFiles()) {
    file.LastWriteTime = time;
}

Benim gözümde olay hala böyle. Küçük bir proje ya da tool bile desen, en azından 500 satır, 1000 satır tutuyor öyle değil mi? Bu durumda çoklu satırları tek satıra indirerek "işte bu" demenin de anlamı yok. 1000 satırı tek satıra mı indireceğiz? Yani diyelim ki sen buna foreach yerine daha pratik bir yöntem kullansan "all files in folder..." şeklinde, "set-modes file [modification-date: time]" kısmını ne yapacaksın? Ya bu bloğun tek bir işlem değil de onlarca işlem yapması gerekiyorsa ne olacak? Yoksa tek satıra indirelim dersek;

Rebol:
Kod: [Seç]
foreach file read change-dir path [set-modes file [modification-date: time]]

C# code
Kod: [Seç]
foreach (FileInfo file in DirectoryInfo(path).GetFiles()) file.LastWriteTime = time;

ıkisi de tek satıra indi. Daha mı okunaklı oldu? Yani ben bu güne kadar kaç tane rebol uygulaması gördüysem ya tek satırda yazıldığı için bana çok karmaşık gözüktü ya da bloklar halinde incelediğimde diğer dillerden farklı ya da acayip avantajlı gelmedi. Bu yüzden de seninle 10 seneyi aşkın süredir ara sıra bunu tartışıyoruz.

Rebol bilmediğim konusunda haklısın. Ama öğrenmem için geçerli bir sebep göremediğim için Rebol bilmiyorum. Bana hala Rebol'ün şu ıngilizce dilini olduğu gibi kullanabilen syntaxı biraz şişirme geliyor. Verilecek 3-5 örnek yerine 1000lerce satırdan oluşan bir Rebol uygulaması görmek isterim ıngilizce metin gibi yazılmış. Böyle bir source code örneği biliyor musun? Bunu "[evil laugh]! nasıl da köşeye sıkıştırdım" şeklinde algılama kardeşim, gerçekten soruyorum. Rebolle geliştirilmiş büyük bir proje olsun ve bu topic'in açılmasına neden olan okunaklıkta olsun. Böyle bir örnek verebilir misin? Kendi yazdıklarından da olabilir, Rebol'ü yapan takımdan çıkma da olabilir, communityden birinin yaptığı gerekirse yine proof of concept birşey de olabilir.
« Son Düzenleme: 01.03.2013 09:05:51 Gönderen: skate »