Özgür Yazılım

Yeni bir “özgür” dil: Fortress

Salı, 16 Ocak, 2007

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]

ve Sun yola gelir: Özgür Java

Salı, 14 Kasım, 2006

Sun’ın özgür bırakması ile Java ticari şirketlerin yazılımlarını özgürleştirme sürecinin en ilginç örneklerinden biri olarak tarihe geçti.

Kısa bir tarihçe:
1991 Haziran: Gosling yapacak işi olmadığından Oak’a başladı
1995 Çıkmaz ay: Java’nın 1.0′ı
1997 Ekim: Sun’dan Microsoft’a 35 milyon dolarlık “Java’yı mıncıklama” davası
1998 Eylül: Cygnus’dan GCJ’nin ilk başları
2001 Ocak: Microsoft’tan Sun’a “al şu 20 milyon doları”
2002 Ocak: Microsoft’tan “.net gösterecek Sun’a Anya’yı Konya’yı”
2003 Nisan: Yazar’dan Sun’a “Salak mısın açsana” çağrısı
2004 Şubat: IBM’den Sun’a “dinle şu Yazar’ı”
2004 Nisan: Sun ile Microsoft’un “barış” anlaşması
2004 Haziran: Novell’den “özgür” .net (Mono’nun 1.0′ı)
2005 Mart: Yazar’dan Sun’a “Ya açarsın ya kaçarsın” çağrısı
2006 Kasım: Novell ile Microsoft’un ile patent anlaşması
2006 Kasım: Sun’ın (kitaplık hariç) Özgür Java’sı

(Aslında yazar, “Özgür yazılım dünyayı şekillendirmiyor da kim şekillendiriyor” gibi abuk soruları geçip, bu güne kadar özgür olmamasını savunan Java geliştiricilerinin “yeni dünya”daki tutumlarını merak etmektedir.)

Sen de mi Emacs?

Cumartesi, 15 Temmuz, 2006

Harvard Square (Cambridge)’de bir köşk[ing] manzarası[ing]

Tabii biz sorunun ne Emacs‘ten ne de “aptal uçbirim”inden kaynaklanmadığını biliyoruz. Kedidir kedi…

Türkçe Emacs Viki açıldı

Pazartesi, 10 Nisan, 2006

Tamamen Cafer‘in marifeti.
Henüz boş denebilir. Gidin, görün, geliştirin

Ana sayfa artık vikiye yönlendirildiğinden, halen yeni sayılabilecek eposta listesi bilgileri:
kayıt, arşiv.

Webpostalarda Türkçe yazım denetimi

Pazar, 26 Şubat, 2006

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.

XGL

Pazar, 12 Şubat, 2006

Novell’in çocuğu sayılabilecek XGL (OpenGL üzerinde X) kodları açıldıktan[ing] kısa süre sonra şov yapmaya başlamış(Xvid-avi,58M)[ing].

Viki Bağlaç: Wordpress için Vikipedi (ve Sözlük) bağlantı eklentisi

Cumartesi, 11 Şubat, 2006

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.

emanet = Emacs @ Firefox @ GNU/Linux

Çarşamba, 25 Ocak, 2006

Zemberek’in Debian depolarına girmesi ile uğraşırken, daha önceden yaptığım bir yamayı internette arıyordum (tamamen tembellik). Neticede yamayı bulamasam da, Emre Sevinç’in Mozex ile Firefox’taki textarea metinlerini düzenlemekten bahseden günlük girdisini gördüm.

Evet, Firefox’un Türkçe yazım denetimi desteği var (en azından Debian için), fakat düzenleyicisi ciddi işler için tam bir işkence olduğundan haklı olarak biz emacs severler makul bir çözüm yolu arıyoruz. Mozex ise utf-8 sorunlu (yaması var o ayrı). Daha ciddi sorun Firefox’ta dışardan bir uygulama çalıştırdığınızda bu uygulama sonlanana kadar Firefox kitleniyor. Bu bir yandan Emacs kullanırken, bir yandan da Firefox da gezmenize engel oluyor.

İkinci soruna (XPCOM tabanlı) güzel bir çözüm bulamadım ama bu Posix tabanlı bir çözüm bulmama engel olmadı (Posix derken Windows’u katmıyorum).

Ve karşınızda: emanet

Dışarıdan düzenleyici kullanılmasına yarayan bu uzantı engerek uzantısının üzerinde oynanmış hali. UTF-8 ve kitlenme sorunundan etkilenmiyor. textboxlarda (textarea ve textinput) sağ tuş menüsüne “Xedit” veya “Düzenle” şeklinde yerleşiyor.

Türk Emacs kullanıcılarına alt-not: Öntanımlı düzenleyici “emacs -q”, bunu hızlı olması ve parametre verilebildiğini gösterebilmesi için yaptım. Fakat bilindiği üzere bu kişisel Türkçe (ya da UTF-8) ayarlarını tanımayacaktır. Bunun emacs ile ya da daha güzeli emacsclient ile değiştirilmesini öneririm (M-x server-start’dan sonra). Ayar değişiklikleri her zamanki gibi about:config ya da uzantı tercihlerinden yapılabilir.

Yama gelir hoş gelir!