- Kişisel kod editörü Boo’nun geliştiricisi, projeye kısa bir ara verip yeni bir programlama dili yapma nedenini açıklıyor
- Boo, insan merkezli klavye gezinmesi ve LSP’nin yerine geçen bir sistem sunan Rust tabanlı bir editör; ticarileştirmeden çok kişisel kullanım amacı taşıyor
- Tekrarlayan geliştirme sürecinin yaratıcılığı azalttığını düşünüyor ve ilham veren yazılım üretmenin keyfini önemsiyor
- LEGO bloklarıyla kurma ve The Legend of Zelda: Breath of the Wild örnekleriyle, akılda kalan üretimlerin önemini vurguluyor
- Başarı formüllerini izlemek yerine kendi ilgisi ve öğrenme odaklı geliştirme felsefesini koruyor; gelecekte Boo’yu kendi yaptığı dille yeniden yazmayı planlıyor
Boo projesi ve geliştirme motivasyonu
- Boo, yazarın kendisi için yaptığı bir kod editörü projesi; kitlesel başarıdan çok kişisel faydaya odaklanıyor
- Boo, insan odaklı klavye gezinmesi özelliğine sahip ve LSP(Language Server Protocol) yerine daha hızlı, işletim sistemine daha az yük bindiren bir sistem kullanıyor
- Şu anda günlük işlerde kullanılabilecek kadar çalışıyor, ancak açık kaynak olarak yayımlama planı yok
- Boo ve Rio Terminal ikisi de Rust ile yazıldı ve benzer yapı ile dağıtım süreçlerine sahip
- Bu benzerlikler tekrarlayan iş gibi hissettirdiği için geliştirme keyfini azaltıyor
Üretim ve ilham arasındaki ilişki
- LEGO bloklarıyla oynama örneği üzerinden, her seferinde farklı bir şey yapabilme özgürlüğünün üretmenin keyfi olduğunu anlatıyor
- Aynı parçaları tekrar tekrar kullanmak yerine, dışarıdan unsurlar ekleyerek yeni sonuçlar üretme sürecinin ilginin asıl kaynağı olduğunu söylüyor
- Programlama ne kadar tekrarlı hale gelirse, “vay be” etkisi yaratan ürünlerin ortaya çıkma ihtimali o kadar azalıyor
- İlham veren yazılımlar yapabilmek için önce ilham almak gerektiğini vurguluyor
Akılda kalan yazılım örnekleri
- The Legend of Zelda: Breath of the Wild örneğiyle, oyun oynamayan insanlara bile konsol satın aldıran kalite düzeyinden söz ediyor
- Oynadıktan sonra da uzun süre akılda kalan bir deneyim sunan eserlerin gücünü vurguluyor
- Bu düzeyde özenle yapılan yazılımların insanlarda duygusal bir izlenim bıraktığını açıklıyor
Boo’ya ara verme ve yeni dil geliştirme
- Boo, iş amacı taşımayan bir hobi projesi; gelir ya da teslim tarihi baskısı yok
- VS Code gibi büyük bir proje yapma niyeti de yok ve kendini zorlayarak ilerlemiyor
- İlham geri geldiğinde devam etmek üzere Boo’ya geçici olarak ara veriyor ve şu anda kendi programlama dilini geliştiriyor
- Uzun vadede Boo’yu bu dille yeniden yazmayı planlıyor
Geliştirme felsefesi ve tutum
- Yeni bir dil geliştirmek çok iş gerektiriyor, ancak yazar bunu keyifli bir öğrenme süreci olarak görüyor
- Binary dosyalar ve derleyiciler konusundaki anlayışını genişletiyor ve kendi temposunda ilerliyor
- Dışarıdaki başarı formülleri veya tavsiyeleri yerine, kendi düşünce biçimi ve ilgisini merkeze alarak geliştirmeyi sürdürüyor
- Bu yazının kendisi de Boo kullanılarak yazıldı
1 yorum
Hacker News yorumları
Bugün uyanıp kahve içtiğini ve ailesi uyuyakaldığı için öğleden sonrasının boş geçtiğini yazan gönderiyi görünce, ailesiyle saat farkı nasıl var diye merak ettim. Öğleden sonra uyuyan bir aile ya da akşam kalkıp güne başlayan insanlar olabileceklerini hayal ettim
“Bu editör beni mutlu etmek için var” sözü tazeleyici geliyor. Bugünlerde her yan projenin open source ya da SaaS'a dönüşmesi gerektiğine dair bir baskı var ve bu çoğu zaman yaratıcılığı öldürüyor. Boo ya da Rio gibi deneysel projeler sanki bu özgürlükten doğuyor
“Kendim için yaptım” sözü birçok sanatçının yöntemi. Tolkien de öyleydi; çoğu insan önce kendisi için üretir, sonra dünyaya gösterir. Ama çoğu zaman kimsenin ilgisini çekmez ya da ancak öldükten sonra fark edilir. Yine de bu sorun değil. Önemli olan hayal gücünü dışa vurma yönündeki insan içgüdüsü
Programlama tekrar eden hale geldikçe 'wow' etkisi azalıyor. Ama yt-dlp gibi birçok farklı siteyi destekleyen projeler istisna. Sayısız veri ayrıştırıcısı yazmak sıkıcı ama sonuçta “her yerde çalışıyor” hissi veriyor
İnsanlarda duygu uyandıran yazılım yapıyorum — çoğunlukla öfke. Sonuçta yazılım ikiye ayrılıyor: ya kimse umursamıyor ya da insanlar şikayet edecek kadar çok kullanıyor
Emacs ve Emacspeak bana muazzam duygular veriyor. Her şey tek bir kılavuz gibi; sadece C-h m'ye basınca tüm komutlar hemen çıkıyor. Gizli hiçbir şey yok, HTML belgeleri eşelemek gerekmiyor. Bir şey çalışmazsa Codex'le düzeltip yine istediğimi yaptırıyorum
İdeal durumda yazılım geliştirme bir zanaat olarak ele alınmalı. Marangozluk gibi; hem faydalı olabilir hem de sanat olabilir. Ama birçok proje geliştiricilere fabrika işçisi gibi davranıyor. Sorun, kaliteden çok miktarı önceleyen kültür.
Aynı anda yazılımı yalnızca sanat olarak görmek de pratik değil. Kodun amacı takdir edilmek değil, çalışmaktır. Yine de “zanaatkarlık taşıyan yazılım” ifadesinin kulağa tuhaf gelmesi üzücü
Meta ve Google gibi FAANG şirketleri de insanlarda duygu uyandıran yazılımlar yaptı — öfke, depresyon, bazen de neşe. Ama bu, iyi niyetle başlayan teknolojinin nasıl çarpıtılabileceğini gösteriyor. “Cehenneme giden yol iyi niyet taşlarıyla döşelidir” sözündeki gibi, iyiyi hedeflerken kötüyü üretmek sık görülüyor.
Knuth'tan alıntıyla, “binlerce bilgisayar bilimcisinin özgürce istediklerini yapmasına izin verin” yaklaşımı ilerlemenin itici gücü. Bell Labs'te olduğu gibi, keşfetme özgürlüğü önemli.
Bugünlerde insanlar optimizasyona takıntılı ama matematikte zayıf; sonuçta keşfetmeyi bırakmış bir toplum olduk. Bu yüzden ilerlemenin yavaşladığını düşünüyorum
Casey Muratori ve Jonathan Blow'dan öğrendiğim bir alışkanlık var; ben de kendime ait küçük dünyalar kurmayı seviyorum. Tek kullanıcısı ve tek muhatabı benim olan projeler bunlar. Son teslim tarihi yok, istek yok, runtime yok; saf keyif alanı
Bugünlerde yazılımların çoğu bende güçlü duygular uyandırıyor
node_modulesgörünce sinir oluyorum. Electron tabanlı uygulamaları görünce de “Biz nerede yanlış yaptık?” diye düşünüyorum. Masaüstüne mobil UI koyulmasından da hoşlanmıyorum