Goto Geçmiş;
Pazar, 23 Ağustos, 2009Şu hata girdisini görüp de gözleri dolmayan varsa beri gelsin. PHP sonunda kendi öz ve öz “goto”suna kavuşmuş, gençler de geyiğini yapıyorlar.
Şu hata girdisini görüp de gözleri dolmayan varsa beri gelsin. PHP sonunda kendi öz ve öz “goto”suna kavuşmuş, gençler de geyiğini yapıyorlar.
Sun Java’dan sonra Fortress’i de serbest bırakmış[ing](önsürüm).
Çiçeği burnunda dil, “yüksek başarımlı hesap-kitap işlerine” el atma amacıyla tasarlanmış. Java’ya misafir olması sebebiyle yüksek başarım umudumuz pek olmasa da matematikten anladığına şüphe yok. (bkz. Fortress Fortran isim benzerliği)
Dil, sosyetik ve işlevsel dillerden (ML ailesi, Eiffel, Scala vb.) ne bulduysa araklamaktan utanmamış.
Nesne yapısı, istisnalar, tür çıkarımı, n’liler, parametrik türler, birinci sınıf işlevler, kuyruk özyineleme eniyilemeleri, sentetik geliştirilebilirlik, sözleşmeler, bölünmez işlemler ve elbette ki matris ve kayıpsız sayı desteği ile göz kamaştırıyor. (Bakış açısına göre baş da döndürebilir.)
Parametrik çokşekillilik iddiası biraz tartışmalı bölgede. Gelişmiş bir şablon desteğinden öte gitmiyor gibi. Öte yandan fazla yükleme desteği de var görünüyor (Java da ucundan bulaşmış yani). Bu ikisi ışığında tür çıkarımı da ne kadar başarılı olabilir merak konusu.
Aslında dilin sentetik ilginçlikleri de yok değil; sapına kadar “Unicode” desteği (ASCII dışı işleç (operatör) ve tanımlayıcılar), çarpma işlecinin seçeneksel olması, rastgele boyut ve derinlikte matris girişi vb.
Örneğin “15 a” ifadesi “15 * a” ile aynı anlama geliyor. Fakat “a 15″ ifadesi a(15) anlamına da gelebiliyor (a işlevinin 15′e uygulanması). Kağıt kalem alışkanlıklarını yaşatma çabaları gibi görünen bu “çeşitliliğin” getirdiği karışıklık yanında ML tadında sade bir “Curry”leme[ing] desteğini de imkansız kılması birinci sınıf işlevlerini yaya bırakabilir.
Dilin değişken tanım ve atamaları da tartışmaya açık nitelikte.
isim = ifade
şeklinde bir kod parçası yerine göre “sabit değişken” tanımlarken (mesela “let” tadında, yerel etki alanında), yerine göre Bool veritüründe eşitlik sorgu ifadesi olabiliyor.
Dil, değişmez nesneleri normal nesnelerden ayırıyor. Böyle bir nesnede, programcı nesnenin alanına yeni bir atama yapmak isterse:
değişmez_nesne.alan := ifade
derleyici hata vermek yerine sessiz sedasız bildiriyi değiştiriyor;
değişmez_nesne := Değişmez_nesnenin_yapıcısı(alan=ifade, diğer_alanlar=değişmez_nesne.diğer_alanlar)
Bir başka deyişle, “değişmez_nesne” tanımlayıcısı yeni bir nesneye bağlanıyor ve eski “değişmez_nesne” gölgeleniyor.
Her ne kadar nesneleri (belirli bir alan hariç) kolayca kopyalayabilmek çok yararlı bir yeti olsa da, dilin her fırsatta mevcut yapılarına fazla yükleme yapması, zaten “her özellik olsun” yaklaşımından dolayı tehlikede olan sadelik zarafetine bir darbe daha vuruyor.
Maymun iştahlılıktan ve Java bağımlılığından çok çekeceğe benzeyen dil, akademisyenlerin, Sun ismiyle gözü kamaşan Java programcılarının ve nesne güdümlü/işlevsel paradigmalarının her türlü deneysel birlikteliğini merakla izleyen Defter yazarlarının ilgisini çekebilir.
Kaynakça: Fortress Tanım Belgesi[2.2 MB PDF][ing]
Bildiğim kadarıyla ilk örneğini Cafer yaptı. Oldukça da hoş olmuş.
Olayın güzel tarafı adı geçen webposta uygulamasının aslında aspell ya da ispell komut satırı uygulaması yerine aspell kütüphanesini pspell yoluyla kullanıyor olması. Bu örnekte görüldüğü gibi yazım denetimi yapabilen (nerdeyse) her türlü PHP uygulaması, küçücük yamalarla Türkçe yazım denetimi de yapabilir.
Vikipedi’nin iç bağlantı sistemi oldukça rahat ve kullanışlı olduğundan, benzer bir işlevselliği Wordpress‘de de arıyor insan.
Viki Bağlaç, bu işi yapan küçücük bir eklenti.
Örnekler:
[[Emacs]] → Vikipedi’de Emacs
[[es:Debian|]] → İspanyol Wikipedia’da Debian
[[ek:Linux|GNU/Linux]] → Ekşi Sözlük‘de GNU/Linux
[[#:366|Viki Bağlaç]] → Defter‘de Viki Bağlaç
Renklendirilmiş kaynak kodu ve indirilebilir kaynak kodu mevcut. Uzantısının php yapılıp wp-content/plugins dizinine atılması ve yönetim panelinden etkinleştirilmesi yeterli.
Güzel kitap[ing]…
(digg’den…)
(MÜKS dizisi hakkında genel bilgi, yasal uyarılar, vesaire için şuraya bakılabilir)
(Bu yazının Defter standartlarına uymaması gerekçesiyle, tekrar gözden geçirilmesi gerekmektedir. Yazarın aşk sarhoşluğundan sapıttığı varsayılabilir. Başınıza bir şey gelirse Defter sorumlu değildir.)
MS, Özgür Yazılım camiasını çekebilmek için nokta-net komut satırı arayüzü geliştiriyor. Arstechnica da benim gibi Windows’tan uzak yaşayanlar için oldukça ayrıntılı bir belge hazırlamış[ing].
(Arkası Burası…)
İşlevsel programlama konferansı ICFP’nin programlama yarışması sonuçları açıklanmış[ing]. Yarışmacılar eskiden kalite ve performans açısından değerlendirilirken, bu sene mantıklı bir şekilde çalışma hızı geri plana atılmış[ing]. İlk olarak bir ICFP ile adını duyduğum (C’den sonra) en hızlı programlama dili olarak görünen OCaml’ı güçsüz bırakan bu durum Haskell’ın ve Dylan’in en önemli 4 ödülü 2-2 paylaşmasına imkan vermiş.
ICFP’lerin şimdi hatırlamadığım bir tanesine, takımlardan biri bash ile katılmış ve oldukça iyi sayılabilecek bir başarı yakalamıştı.
Böyle de bir bakış açısı var[ing].
Ki zaten kendimizin zorlandığı işleri yapsın diye program yazdığımız düşünülürse, tembellik ile program yazma arasındaki ilişkiyi görmemek zor olsa gerek.
Engerek şimdilik doğal dillerden sadece Türkçe’yi destekliyor. Ahmet Akın‘ın Zemberek’i esnekleştirme çalışmaları meyve vermeye başladığında, Engerek de diğer Türki dilleri de desteklemeye başlayacaktır.
Fakat programlama dilleri açısından, Engerek projesi oldukça zengin bir yapıya sahip olacak gibi görünüyor. Zemberek Java’da yazıldığından, engerek komut satırı da Java’da yazıldı. GCJ sağ olsun, C++ ile de doğrudan kullanmak mümkün.
(Arkası Burası…)