Ünlü Bir Microsoftçunun Lisp Aşkı

0
FZ
Yazdığı kitaplarla Microsoft ortamlarında programlama yapanların yakından tanıdığı ve davet üzerine bir süredir Microsoft'ta çalışan Don Box, son yazılarından birinde "Scheme Is Love" başlığı ile konuya girmiş ve Scheme'e olan aşkını itiraf etmiş.
Her ne kadar bazıları yahu adam en nihayetinde yine C#, .NET ve MS reklamı yapıyor yazının sonunda diye burun kıvırsalar da Don Box'ın bu kısa yazısı ve eğlenceli üslubu okumaya değer.

Kaynak: Lambda the Ultimate - The Programming Languages Weblog

Görüşler

0
FZ
Gelen yorumlar arasında hoşuma gidenlerden biri (Scheme ile Common Lisp arasındaki ayrımı vurgulaması bakımından):

"Why Lisp" depends an awful lot upon to whom you talk. One possible answer is "because some dialects of Lisp get you really close to the most fundamental notions of what computation is," in which case Scheme is an excellent dialect, The Little Schemer is an excellent introduction, and Structure and Interpretation of Computer Programs is an even larger mind-expander.

At the other end of the spectrum, some folks appreciate having a built-in programmable parser, extraordinarily flexible object system, just about every data type you can shake a stick at, and even, if you care to use it, built-in support for formatting numbers as Roman numerals. That would be Common Lisp, and the best introduction to it that I know of is Practical Common Lisp.
0
ttk
Yani şimdi bu ne demek ?
Common Lisp daha işe yarar ama kötüleştirilmiş bir Lisp mi imiş ya da ne imiş ?
İngilizcem pek iyi değildir anlayamadım.
0
ttk
Yazıya bakınca, sonunda sahiden bu adam MS reklamı yapıyor dememek elde değil.
Özellikle SQL'e yaptıklarını kastettiği eklemeler (!) en azından programların veritabanı kısımlarını Standart SQL'den uzaklaştırmaya yönelik adımlar oluyor benim bildiğime göre (gördüklerimden çıkartabildiğim bu.)
Hani web standartlarının içine IE ve sadece ona yönelik web sayfaları ve bileşenleri kullanan dangalakları ortaya çıkartmaları gibi, bir ara Internet'e karşı MSN denemesi yapmaları gibi SQL'lerine bir yapışanın sorgularını kolay kolay başka yere taşınamaz duruma getirecek işler tasarlıyor gibiler.
Yaptıkları çok şerefsizce ayak oyunları ne yazık ki, can çıkar huy çıkmazmış.
0
FZ
Hemen her büyük veritabanı kendine özgü yapısal SQL dilleri ile birlikte gelir, misal Microsoft ve Sybase SQL Server T-SQL ile, Oracle PL/SQL ile gelirler. Benzer şey PostgreSQL için de söylenebilir. Veritabanı söz konusu olduğunda sineğin yağını çıkarmaya çalışırsınız, "portable" kod yazmanın bir manası yoktur, elinizdeki platformun tüm ince detaylarını bilip bunları zorlamaktır aslolan. Yazdığınız "stored procedure" kodları tabii ki veritabanınıza özgü olacaktır, bunun Microsoft ile bir alakası yok.

Sanırım bu "portability" meselesinin bazen yanlış anlaşılmasının sebebi pek çok insanın veritabanları ile MySQL aracılığı ile tanışmaları yani "stored procedure" gibi bir kavramdan çok uzun süre habersiz kalmış olmaları.

Tabii kast ettiğiniz SQL dilinin kendisi ise o zaman farklı bir şeyden bahsediyoruz (bunu mu kast etmiştiniz?).

"Şerefsizce ayak oyunları?" ???

Bu arada Lisp'e gelince, Scheme iyi, Common Lisp kötü anlamında değil o. Scheme tasarım itibari ile biraz daha sade bir dil. Common Lisp <b>büyük</b> bir dil. Endüstriyel uygulamalarda Common Lisp daha çok kullanılıyor ancak bu Scheme ile de bir sürü iş güç yapan insan yok değil.
0
ttk
Evet, SQL dilinin kendisini kastetmiştim. Her ne kadar bir platformu kullansam da o platformun altında kendi belli standartları olan bir şeyi kullanırken elimden geldiğince (en azından mesela programı yeniden yazsam da SQL standarttır bunu elden geldiğince taşınabilir durumda kullanayım diye düşünürüm) idealin çok dışına çıkmamaya çalışırım. M.Soft, MS SQL'in yenisinin içerisine C#kodları gibi kod yazılmasını da sağlayacak denildiğini duydum, ona kızmıştım (yanlış mı kızdım şimdi :).
MySQL'i ise hiç kullanmadım şimdiye kadar.

Bu arada Scheme ile yola devam etmeye çalışmak durumunda, piyasaya iş yaparken mesela, umulmadık bir yerde desteksiz kalmaya sebebiyet verebilir gibi bir durum mu var ?
0
darkhunter
Bu arada Scheme ile yola devam etmeye çalışmak durumunda, piyasaya iş yaparken mesela, umulmadık bir yerde desteksiz kalmaya sebebiyet verebilir gibi bir durum mu var ?

Kastettiğiniz "piyasa" TC piyasası ise bu durum Scheme içinde CL içinde aynı keskinlikte. Eğer daha geniş bir spektrum söz konusu ise CL ile ilgilenen insan sayısı bildiğim kadarıyla Scheme'den daha fazla, en azından içinde bulunduğumuz sanal akvaryumdan öyle görünüyor... Durum böyle olunca CL daha fazla destek ve dinamik bir kitleyle beraber geliyor desek yanlış olmaz sanırım.

Siz bunu sorunca benim aklıma P. Siebel'in scheme tarzıyla CL anlatması geldi. Anlayacağınız durum biraz karışık :)
0
ttk
Sözkonusu olan Lisp olunca, sorularıma cevap verebilecek insanların oldukça az olduğunu, onların da vaktinin az olduğunu gördüm özellikle de Türkiye'de. Gidip Comp.lang.Lisp'de soru sorabilmek için de bir seviye bir şeyler öğrenmeye başlamak lazım (az az başladım sayılır), hani sıkışacaksın da soru soracaksın, adamlar da cevap verecek "git adam gibi soru sormayı öğren de gel" ya da "bu soru cevaplanmaya değer" gibi gelen tepkilerden durumumuzu tartacağız vs :)

Şimdi başta Common Lisp mi Scheme mi seçimi yaparken zaten boş arazinin daha da boş tarafına tarla taban kurmaya kalmayalım komuşumuz olsun biraz derdim var :)

Gerçekten son derece işe yarar şeylerden çoğunluğu uzak durmaya iten şeyin ne olduğunu merak ediyorum bazen.
0
darkhunter
""git adam gibi soru sormayı öğren de gel" ya da "bu soru cevaplanmaya değer" gibi gelen tepkilerden durumumuzu tartacağız vs :)"

Yok canım, öyle şeyler olmaz. Tabi sorunun anlaşılır olması açısından a- iyi ingilizce b- temel CL bilgisi gerekli. Bu son şık ile ilgili FZ gidin onlara sorarak öğrenin diyordu son konuştuğumuzda. Orası size kalmış...

Ama yazmasınız bile CL ile uğraşacaksanız izlemeniz gereken bir kaynak.

Not: Bende bu aralar open-gl ile ilgileniyorum, bu konuyla ilgili paylaşacak birşeyleri olan herkesi dinlemeye hazırım (:
0
ttk
Keşke anlasaydım, bilgi paylaşmaya çalışırdım OpenGL hakkında.
"OpenGL iyi bir şeydir, DirectX'siz Google Earth görüntülerini epey bir hızlı çözümleyip gösterebiliyor vay be" den öte pek bir şey söyleyemiyorum hakkında :)
0
Ragnor
<a href="nehe.gamedev.net">nehe.gamedev.net</a> ' i biliyorsundur. O sitedeki dersler bayağı bir işine yarar (bilmeyenler için verdim bu bilgiyi de :)).
0
ttk
Bu bana mı, bana ha ..
Galiba diğer arkadaş idi mesaj :)
Yine de adres için teşekkürler.
0
FZ
Sözkonusu olan Lisp olunca, sorularıma cevap verebilecek insanların oldukça az olduğunu, onların da vaktinin az olduğunu gördüm özellikle de Türkiye'de.

Türkiye'yi kriter kabul etmeyin, daha dün ADSL sahibi olduk sayılır. Pek çok insanımız da bilgisini sır gibi saklamaya alışık. Bir kısmı çekingen, vs.

Gidip Comp.lang.Lisp'de soru sorabilmek için de bir seviye bir şeyler öğrenmeye başlamak lazım (az az başladım sayılır), hani sıkışacaksın da soru soracaksın, adamlar da cevap verecek "git adam gibi soru sormayı öğren de gel" ya da "bu soru cevaplanmaya değer" gibi gelen tepkilerden durumumuzu tartacağız vs :)

USENET sizin dostunuzdur, düşmanınız değil. Eğer giriş-orta seviye İngilizce biliyorsanız ve kendi anadilinizde de derdinizi anlaşılır şekilde, teknik detaylara özen göstererek tarif etme becerisi edinmişseniz o zaman yolunuz açık. comp.lang.lisp'teki insanların ters cevap verdiğini hemen hiç görmedim, bilakis 20-25 yıldır Lisp (ve başka dilleri) kullanan insanlar, Lisp derleyicisi geliştiren insanlar, ANSI standartlarını ortaya koymuş, MACSYMA gibi efsanevi sistemleri geliştirmiş insanlar, Lisp üzerine kitap yazmış insanlar vakit ayırıp en basit sorularınıza bile detaylı cevap veriyorlar. Başınıza gelebilecek en kötü şey, alabileceğiniz en ters yanıt, HyperSpec'e ya da CLtL2'ye ya da bir kitaptaki bir bölüme link verip "burada güzelce anlatmış, takıldığın bir yer varsa sor" demek olabilir.

Üstelik sadece problem olduğunda yazmanız da şart değil. En basitinden "yahu ben şöyle bir kod yazdım, güzelce de çalışıyor ama Lisp acemisiyim belki bu mevzunun Lisp ortamında çok daha güzel söylenişi vardır" gibi bir kod eleştirisi istiyorsunuz, bir bakıyorsunuz uluslararası çaptaki insanlardan, 5 kuruş para harcamaksızın, ders alıyor durumdasınız. Yine pek çok şey anlatıyorlar. Bu adamlar aptal mı? Bilmem, gidin onlara sorun :), bir kısmının gerçekten vakti var, bir kısmı üniversitede hoca, anlatmayı seviyor zaten her halükarda.

Şimdi başta Common Lisp mi Scheme mi seçimi yaparken zaten boş arazinin daha da boş tarafına tarla taban kurmaya kalmayalım komuşumuz olsun biraz derdim var :)

Araziniz Internet, yani tüm dünya. Pek boş tarafı yok.

Gerçekten son derece işe yarar şeylerden çoğunluğu uzak durmaya iten şeyin ne olduğunu merak ediyorum bazen.

Psikolojik ve sosyal etkenler. Mesela Internet'te pek ses çıkarmayan insanlarla bir araya geliyorsunuz bir bakıyorsunuz gayet meraklılar, hevesliler filan, allah allah diyorsunuz bunlar Internet ortamında, USENET ortamında niye bu kadar sessiz.

Ya da işte İngilizce bir kaynak gösteriyorsunuz, orta seviye İngilizce bilen ve anlayabilecek olan insanlar pek ilgilenmiyor, bir hafta sonra Türkçe çevirip aynı kaynağı koyduğunuzda aynı insanlar epey ilgileniyor filan.

Kimimiz tokatlanmaya pek alışık değil, ondan da korkan oluyor mesela. Bazen soru soran birine "yahu gidip #lisp kanalında sorsana" diyorum. Tavsiyemi dinleyen kaç kişi çıkıyor bilmiyorum, paste.lisp.org ile birleşince bence IRC değme "online learning" ortamına basar geçer ;-)
0
ttk
Türkiye'de insanlar açıkta hatâ yapıp ayıplanmaktan korkuyorlar, bu bende de fazlasıyla var. Her an hatâ yapabilirim, çünkü kötü bir özelliğim (belki ummadığım kadar çok kişide bu var olabilir bizim memlekette), bir işi o an için halletmem gerektiği kadarıyla öğrenip az ötesini hesap etmeden oldukça önemli ayrıntılarını kaçırarak yeterince öğrenmiş olduğumu düşünmem. Mesela yukarıda M.Soft'un SQL'in içerisinde değişik dil kullanmasına (aslında bunun normal bir şey olduğundan haberdar olmadan) kızmam gibi. Durum denk düşüp de uarı gelmese kendi kendime hâlen aynı düşünceyi taşımaya devam edecektim, üstüne bir de gerektiğince işe yarayabilecek bir kaynaktan gereksiz yere uzak kalacaktım.
Öğrenilen her ne ise eksik öğrenme zamanla insanda bir hayat tarzı hâline geliyor, üstüne bir eleştiriye tahammülsüzlük varsa insan güdük ucube bir şey oluyor uğraştığı dal açısından. Meşgul olduğu işin önündeki en büyük engellerden birisi farketmeden kendisi olabiliyor vs.

Comp.Lang.Lisp'i sahiden merak etmeye başladım bu kadar övgü üzerine.
Irc kanalına da bakmaya çalışayım bari, her ne kadar yazılanları anında anlamak için ingilizcem pek yeterli değilse de.
Bu kadar yardıma istekli ünlü yandaşları olan bir dilden sanırım o kadar çekinmeye de gerek yoktur :)
0
FZ
Korku insani bir duygu ancak korkunun üstüne giderseniz bir şeyler öğrenme ve başarma imkanınız var.

Bir sistemin sadece o an işe yarayacak kadar kısmını öğrenmek de kötü bir şey değil, işinizi görür ve devam edersiniz ama bir gün gerekirse tüm detayları bilmeden bazı şeyleri yapamacağınızı görürseniz, o zaman da oturur detayları öğrenirsiniz.

Psikolojik direncinizi ve kültürel önyargılarınızı kırdığınızda, hata yapmaktan korkmadan iletişim kurmaya başladığınızda çok kısa sürede çok şey keşfedebilirsiniz diye düşünüyorum, bu hemen hepimiz için geçerli.

Kolay gelsin. Takıldığınız yerler olursa yazın, orada bir yerlerde ABDlisi, Fransızı, Almanı, Portekizlisi, Türkü, Norveçlisi, vs. cümbür cemaat sizin yazdıklarınıza bir şeyler ekliyor olacaklar.
0
ttk
Teşekkür ederim bilgi ve moral dopingi için :)
0
FZ
Microsoft'un yaptığı acayip bir şey değil ki, PostgreSQL de "stored procedure" dili olarak birkaç farklı dil kullanmanıza izin veriyor (Perl var mıydı aralarında?).

SQL'nin kendisine gelince onun dışına çok çıkmıyor kimse zaten. Yani ANSI SQL-92 standardının büyük bir kısmını ve ANSI SQL-99 standardının bir alt kümesini destekliyor olmalılar, daha iyi bilen arkadaşlar daha çok detay verebilir elbette.

Scheme ve CL pek çok açıdan kıyaslanabilir, benim gördüğüm CL'nin piyasa programcısı için daha çok şey sunduğu. En azından 2 büyük ticari CL geliştirme ortamı biliyorum ama mesela hiç Scheme'i hedefleyen ticari geliştirme ortamı görmedim.
0
ttk
"Microsoft'un yaptığı acayip bir şey değil ki, PostgreSQL de "stored procedure" dili olarak birkaç farklı dil kullanmanıza izin veriyor (Perl var mıydı aralarında?)."

Tamam o zaman :) bilmediğimi öğrenmiş oluyorum, bazen insan cahilliğini sergilemeyince ortada hep cahil kalıyor. Bu durumda yanlış düşünmüyorsam çoğu SQL veritabanı üreticisine göre M.soft'un bir eksik yanı sadece kendi işletim sistemlerinde çalışan bir veritabanı sistemi ile belli bir işletim sistemi ile çalışmak zorunda bırakması. Zaten kendi işletim sistemi de olan bir firmadan içimi rahatlatması için de aksini beklemem epey bir garip kaçar herhalde :)

Çok ideale kaçmayıp CL'i tercih etmekte fayda var şimdiye kadarki verilen bilgilere bakınca.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

eXtreme Programming ve Bir Başarı Öyküsü

FZ

Bill Clementson son blog girdilerinden birinde birkaç gün önce gerçekleştirdikleri etkinlikte sunum yapan ve bir başarı öyküsü aktaran Ken Dickey'e yer vermiş.

Avustralya kökenli başarılı bir start-up olan Memetrics'in öyküsünü çarpıcı bir dille anlatan Dickey, eXtreme Programming metodolojisi ve Common Lisp'ten faydalanarak geliştirdikleri sistemi anlatan güzel bir sunum hazırlamış.

Keskin rekabetten ve gizli silahların gücünden hoşlananlar için incelenesi bir örnek. Afiyet olsun.

Bağlı Listeler, C, Lisp, Scheme...

FZ

Bağlı listeler programcıların kullanabilecekleri soyutlama araçları arasında önemli yer işgal ederler. Bu veri yapılarını kullanarak veri işleme süreçlerini kolayca yönetmek mümkündür.

Jonathan Bartlett, IBM developerWorks sitesindeki Techniques for using linked lists in C and -- smarter still -- Scheme makalesinde bağlı listelere dair önce C programlama örnekleri vermekte ve daha sonra liste yapısını dilin doğal parçası olarak ele alan Lisp benzeri Scheme dilinde benzer işlerin nasıl daha kolayca ve soyut seviyede yapılabileceğini göstermektedir.

ECLM '08 ve ELS '08'in Ardından

FZ

ECLM 2008 (European Common Lisp Meeting) ve ELS 2008 (European Lisp Symposium) tamamlandı. ECLM 2008'deki konuşmalardan birkaç örnek vermek gerekirse:
  • Marc Battyani, Lisp-based supercomputing
  • Juan José García-Ripoll, ECL - more than an Embeddable Common Lisp
  • Jeremy Jones, InspireData - how it was written in Lisp
  • Kristoffer Kvello, House Designer - using Knowledge Based Engineering and Lisp to automatically design buildings
  • Nicolas Neuss, Femlisp - solving partial differential equations with Common Lisp
  • Stefan Richter, Using Common Lisp for large Internet systems
  • Kilian Sprotte, PWGL - an environment for sound synthesis and computer aided composition

Land Of Lisp Çıktı

okanakyuz

İleri seviye sitesindeki lisperati (Tılsımlı Programlama) (http://ileriseviye.org/Makale/lisperati-tr/) metninin orjinalinin yazarı Conrad Barski en sonunda bir lisp kitabı çıkarttı. Kitap Lisp diline bir türlü alışamayan meraklılar ile yeni başlayan kullanıcılara hitap ediyor. Ayrıca lisp dilini komik hikayeler ve karikatürler ile anlatmakta. http://landoflisp.com/ sitesinden kitabın 8nci bölümünü okumak da mümkün.

Guy Steele'den John McCarthy röportaj

auselen

Guy Steele OOPSLA 2008'de Lisp'in babası John McCarthy ile bir telefon röportajı gerçekleştirdi.