Python Paradoksu

0
FZ
Paul Graham, geçenlerde (2004 Ağustos'unda) kısa bir makale yazmış, bakalım ne demiş:

"Kısa bir süre önce gerçekleştirdiğim bir konuşmada pek çok insanı hayalkırıklığına uğratan bir laf ettim: Python tabanlı bir proje için bulabileceğiniz programcılar, Java tabanlı bir projeye çekebileceğiniz programcılardan daha zeki olacaktır.

Kast ettiğim Java programcılarının aptal olduğu değil. Kast ettiğim şey, Python programcılarının daha akıllı olduğu. Yeni bir programlama dilini sıfırdan öğrenmek çaba gerektirir. Ve insanlar Python'u yeni bir iş bulabilirler diye öğrenmiyorlar; insanlar Python'u öğreniyor çünkü gerçekten programlamayı seviyorlar ve halihazırda kullandıkları dillerden memnun değiller.
Tam da yukarıda sayılan sebep onları şirketlerin gözünde değerli kılıyor. İşte bu sebepten ötürü, bu durumu isimlendirmek için daha iyi bir tabir bulamadım ve buna "Python Paradoksu" dedim: Eğer bir şirket göreli olarak az kullanılan bir dilde yazmayı seçerse daha iyi programcıları çalıştırabilecektir çünkü bu mantalitedeki bir şirket ancak o programlama dilini öğrenmek için gerekli çabayı sarf etmiş programcılarla muhatap olacaktır. Programcılar açısından ise paradoks şöyle özetlenebilir: Eğer iyi bir iş istiyorsanız öğrenmeniz gereken dil öyle bir dil ki insanlar o dili bir iş bulmak için öğrenmiyorlar.

Şimdiye dek bu durumun farkına varacak kadar akıllı davranabilen çok az şirket oldu. Ancak burada da bir tür doğal seçilim var: Bu akıllı şirketler programcıların nezdinde en çekici şirketler, söz gelimi Google. Bu şirket Java programlama ile ilgili iş ilanı verirken Python deneyimini de artı puan olarak belirtiyor.

Popüler dillerin hemen tümünü iyi bilen programcı bir dostum uzunca bir süredir pek çok projesi için Python kullanıyor. Dostumun dediğine göre temel sebeplerden biri kaynak kodun görüntüsü. Bir programlama dilini tercih etmek için bu garip bir sebep gibi görünebilir ancak biraz dikkatli düşünülürse durum daha iyi anlaşılır: Program yazarken kod okumak için harcadığınız zaman kod yazmak için harcanan zamandan çok daha fazladır. Tıpkı bir heykeltraşın elindeki malzemeyi şekillendirdiği gibi siz de kaynak kodu şekillendirmekle uğraşırsınız. O halde kaynak kodun çirkin görünmesi iyi bir programcı için çıldırtıcı ve korkunç bir durumdur tıpkı fazlalıkların bir heykeltraşı çıldırtması gibi.

Pek çok kişi kaynak kodun karmaşık görünmesi kavramı ile karşılaştığında öncelikli olarak Perl programlama dilini düşünür ancak Perl'ün yüzeysel karmaşıklığı değil bahsettiğim. Gerçek çirkinlik sert görünümlü bir sözdizim değildir, gerçek çirkinlik programları yanlış kavramlar ve yapılar üzerinden kurmaya kalkışmaktır. Perl küfreden bir çizgi film karakteri gibi görünebilir ancak kavramsal olarak Python'a basıp geçtiği yerler de yok değildir.

Neyse, bildiğiniz gibi iki dil de hareketli hedeftir. Bu dillerin Ruby (ve Icon, Joy, J, LISP ve Smalltalk) ile birlikte paylaştıkları bir şey vardır: Bu diller programlamayı seven ve bunu ciddiye alan kişiler tarafından geliştirilmiştir ve yine bu tür kişiler tarafından kullanılmaktadır. Bu programcılar da programlama işini genellikle daha iyi yapmaktadır."

Kaynak: http://www.paulgraham.com/pypar.html

Görüşler

0
lifesdkver0_1
Paul Graham'in javadan nefret etmesinin geçmişe dayalı bir sebebi olmalı :) daha önceki bir kaç makalesinde de buna benzer seyler soyluyordu. bu arada, aynı fikirde olup da java'ya da yakın olmak isteyenler, groovy [groovy.codehaus.org]'e göz atmalılar...
0
sundance
Bence ortada bir Java düşmanlığı yok. Üstadın özellikle 2002 tarihli yazısında [www.paulgraham.com] belirttiği; " Diyelim ki bir yazılım üretmeniz gerekiyor. Sivri saçlı patronunuzun [www.dilbert.com]
bu yazılımın nasıl çalışması gerektiği, ya da bir programlama dilinin diğerinden ne farkı olduğu konusunda en ufak bir bilgisi yoktur, yine dettam olarak hangi dille yazmanız gerektiğini bilir Java ile yazacaksınız

Niye böyle düşünür ? Gelin sivri saçlı patronun beynine bir bakalım. Java bir standarttır. Öyle olmalı çünkü devamlı basında bunla ilgili bir şeyler okuyorum [aslında okuyorum demek yanlış olur, zamanım yok teknoloji konusunda okumaya Ed.]Standart olduğuna göre onu kullanırsam başım derde girmez. Ayrıca bu demektir ki ortada da devamli birsürü Java programcısı olacak, öyleyse eğer şu an benim için çalışan programcılar işten çıkarsa ki ilginçtir benim için çalışan programcılar genellikle bir süre sonra ayrılırlar, her zaman için yerine yenilerini bulabilirim"



0
FZ
Bir ``yönetici´´nin bakış açısı gayet güzel özetlenmiş ;-)

Aslında tek bir cümleyle de özetlenebilir bu kategorideki insanların bilgi işleme ve teknolojiye bakış açıları: ``Kimse IBM aldığı için işten atılmamıştır.´´

Paul Graham´ın fikirleri elbette tartışılabilir ancak gerçekten çok güzel yazıyor ve çarpıcı örnekler veriyor, yukarıdaki kısa makalesinin sonunda ortaya koyduğu mantaliteye ise diyecek söz yok.

Üstadın Mayıs ayında yayınlanmış olan ``Hackers and Painters: Big Ideas from the Computer Age´´ isimli kitabına da bir göz atmak lazım (eğer kitaptaki makaleler daha önce Internet´ten okunmadıysa tabii ;-)

http://www.amazon.com/exec/obidos/tg/detail/-/0596006624/qid=1092904515/sr=1-1/ref=sr_1_1/002-6191629-7065665?v=glance&s=books
0
lifesdkver0_1
türkiye yazılım piyasasında gerçekten boyle patronlar var mı merak ediyorum. elindeki programcılarının bildiği dillerden bihaber mesela..
0
robertosmix
Herhangi bir dilin bir diğerinden daha üstün olduğunu savunan yada herhangi bir dile düşman gibi görünen insanları pek ciddiye almamak gerekir. Ciddiye almanın da "akıllı" bir yazılımcı için zaman kaybı olduğunu bilmek gerekir.



0
sundance
(sanırım bu söylediğini ciddiye alamayacağım)
0
skoylu
Ben derim ki LISP ile ugrasmak abesle istigaldir devirmizde..

Peki buna ne buyrulur ?
0
FZ
Profesyonel bir LISP programcısı olan Paul Graham´ın burayı takip ettiğini, takip etse de Türkçe bilmediği için tartışmaya katılabileceğini ya da bu soruya cevap verebileceğini sanmam ancak burayı zaman zaman takip ettiğini bildiğim bm takma isimli üyemiz bildiğim kadarı ile ``devrimizde´´ LISP ile profesyonel yazılım geliştiren birisi olarak buna bir şey diyebilir (eğer takip ediyorsa yani).

LISP ile geliştirilmiş, benim ve çevremin sık kullandığı enteresan bir program var bir tür görsel RegExp editörü, hata ayıklayıcısı, vs. görebildiğim kadarı ile türünün en iyisi, sanırım Perl´cilerle LISP´ciler arasında bir kapışma sonucu bir Alman programcı tarafından kısa sürede geliştirişmiş olan RegEx Coach: http://www.weitz.de/regex-coach/

Yine bildiğim kadarı ile bir hayli hacimli olan ticari bir havayolları bilet satış, vs. sistemi LISP ile yazılmış durumda.

Buna ek olarak teknoloji üretemesi ile ünlü MIT´de programlamaya giriş dersi olarak kullanılan yazılım geliştirme platformu da LISP kökenli bir dil olan Scheme. Herhalde bu adamlar bu tarz bir yaklaşımla yazılımın temel ilkelerini vermeyi abesle işgal etmek olarak görmüyor olacaklar ki hala buna devam ediyorlar ve pek çok üniversite de MIT benzeri yol izliyor.

Keza doğal dil işleme ilgili, özellikle ABD kökenli önemli kitaplara bakılacak olursa algoritmaların uygulanmasının LISP ile verildiği görülür (Avrupa´lılar ise bu konuda genellikle Prolog tercih eder).

Kaldı ki burada sonu gelmez ``efenim Assembler süperdir, hayır hayır efendim ben C ile makinayı uçururum hatta bakın Linux´un kaynak koduna bile müdahale ediyorum yaa, o da bi şey mi asıl sen benim C++ ve OpenGL ile alete nasıl göbek attırdığımı ne manyak optimizasyon yaptırdığımı gör, off be olm bak ben LISP ile ne biçin doğal dil işleme programı yazdırdım´´ tartışmalarını da (zevkli bulmakla beraber) artık pek de bir şey katıcı, fayda sağlayıcı bulmuyorum. Çalışılan konuya göre popüler olan diller, araçlar vardır, bunlarda ustalaşmanız ve verimli, hatasız şekilde iş çıkarmanız gerekir, konu ne ise ona göre bir tavır belirlersiniz. Misal bugün hala bilimsel ortamlarda FORTRAN´ın ciddi ciddi ve gayet performanslı bir şekilde kullanılması gibi. İşin dışındakiler için ölü bir dildir, işin içindeki binlerce insan içinse olmazsa olmazdır ve gayet de güzel iş görmektedir.

En nihayetinde, Graham´ın söz konusu makalesini çevirmiş olmamın sebebi Python, LISP, Java, C, vs. filan değil, adamın programlama, iş dünyası, bir işi yaparkenki ruh hali, vs. bu gibi konulara dair ettiği ve önemli olduğunu düşündüğüm laflar, iddialar.
0
malkocoglu_2
|| ... bir hayli hacimli olan ticari bir havayolları
||bilet satış, vs. sistemi LISP ile yazılmış durumda.

Yazilim muhendisligi abidesi Emacs'i de bu listeye eklemek isterim. Bu esnek editor'u kullandigim son 10 senedir cogu kez Stallman'a bu yazdigi saglam LISP kodu icin tesekkur etmisimdir. Son yaptigim sayima gore eklentiler, vs, toplam yazilmis LISP kodu 144,709 satirdir (find -name '*.el' | xargs wc -l). Az buz degil. Emacs buyuk bir proje olarak gorulebilir, ve bir LISP basarisidir.

0
mentat
bir sure oncesine kadar ben de ayni seyi dusunuyordum.

FZ'nin NLP ve Lisp uzerine soylediklerine ek olarak su tartisma gayet ilginc ve egitici gelebilir ilgilenenlere.
What's so great about Lisp

ozellikle SabreMan denen ukala kisiligin dediklerine dikkat etmek lazim.
0
FZ
Common Lisp Wiki (binlerce farklı Lisp uygulamasına dair bilgi):

- http://www.cliki.net/index
0
malkocoglu_2
Cok kisa bir sure icinde C++ ile binlerce satirlik bir finans (ya da baska bir bilgi islem) uygulamasi yazmak zorunda kalinca, dil dusmanligini daha iyi anlasiliyor. Zamaninda en ince ayrintisini bilmis oldugum C++ dilinden "nefret ederim". Cunku, is uygulamari icin gereksiz ozellikleri vardir. Fakat, durum oyledi ki, 80'li yillarda C bilen insanlarin nesnesel programcilik yapmak istemeleri butun piyasayi C++ yonune dogru itmistir (bu dalgadan daha sonra Java da yararlandi tabii) ama ortada piyasanin bir teknoloji secimini zorlamis olma durumu vardir. Bunu normal karsilamak lazim, ama bu, C++'a karsi memnuniyetimi belli etmeyecegim ve ilk sansi buldugumda bu dili kaldirip atmayacagim anlamina gelmez (ki oyle yaptim). Ayrica o zamanki sirketimiz icinde bu tur memnuiyetsizliklerin, genel olarak, Java'ya olan geciste cok buyuk etkisi olmustur. Kanimca Java'ya gecisin de, genel bilgi islem sektoru bazinda verimliligin (productivity) artisinda buyuk faydalari olmustur. Daha baska diller daha baska verimlilik arttirimi saglayabilirler. Bu yonde arayis durmamalidir.







Görüş belirtmek için giriş yapın...

İlgili Yazılar

GNU/Linux dergisi Penguence'nin 2. sayısı çıkıyor...

FZ

Daha önce yine FM'de duyurduğumuz Penguence dergisinin ikinci sayısı (beta) yayınlandı. Dergiye web tarayıcı ile erişmek mümkün. Henüz PDF hali tam hazırlanmamış olmakla birlikte çalışmaları devam ediyor.

Bu sayıdaki konu başlıklarından bir kaçı:

  • OpenOffice.org 2.0'a doğru - Rıdvan Can
  • Ses ve Müzik - Bülent Bolat
  • Aynı dili konuşuyor muyuz? - Yasin Kokarca
  • Açık Anahtarlı Kriptografi - A. Murat Eren
  • Kitap Eleştirisi : Hackers - Sıradışı Bir Dönemin Sıradışı Hikayesi - Ergin Sevinç
  • Oyun Köşesi : Pathological - Doruk Fisek
  • Çekirdek Derlemekten Korkmayın - Murat Koç
  • Kablosuz LAN Protokolleri - Mustafa Şahin
  • Debian Sosyal Sözleşmesi (Çeviri) - Debian Türk Grubu

Debian ile Mantıksal Hacim Yönetimi (LVM)

FZ

Türk Debian kullanıcıları camiasının çalışkan ve üretken bireylerinden Serdar Aytekin Debian GNU/Linux kullanarak mantıksal hacim yönetimi (LVM - Logical Volume Management) gerçekleştirmeye dair güzel bir yazı hazırlamış.

İçerik ve seviye olarak orta ve üst düzey sistem yöneticilerine hitap eden bu yazı, "7-8 adet 200 GB'lik SCSI diski bilgisayarıma bağlayıp bunları tek bir disk gibi görmek ya da 3'e bölüp 3 üç farklı disk gibi görmek, sonra istersem kolayca yeni disk takıp hacmi ve dosya sistemini büyütmek istiyorum" gibi cümleler kuran kişilerin işine yarayacak türden.

Bu tür cümlelerin çok değil 4-5 yıl öncesine dek ancak onbinlerce, yüzbinlerce dolarlık makinalar ve ticari UNIX türevi işletim sistemleri barındıran bilgi işlem merkezlerinde kurulduğu ve özel, pahalı yazılımlar gerektirdiği düşünülecek olursa bilgisayarla profesyonel olarak uğraşan bilgi işlemciler için GNU/Linux'un, Debian'ın kıymeti bir kez daha anlaşılır diye düşünüyorum. Bu kadar laftan sonra hadi artık makale adresini versene diyenler için, buyrun: Debian ile Mantıksal Hacim Yönetimi (LVM).

OpenGL ve GLUT İle Oyun Programcılığına Giriş

FZ

Bu ay çıkan ve Şerif Gözcü tarafından yazılmış "OpenGL ve GLUT İle Oyun Programcılığına Giriş" isimli eser, Türkçe bilgisayar kitapları dünyasında eksikliği hissedilen bir alanı doldurma iddiasında.

D. E. Knuth´tan Özel Dersler

malkocoglu

Dr. Bilgisayar Bilimi'nin kendisinden özel ders almak ister miydiniz? Donald Knuth'un bilgisayar bilim derslerini buradan izleyebilirsiniz.

Vpopmail Kullanım Kılavuzu

anonim

Vpopmail bir sanal domain ve sanal kullanıcı yonetim aracı olarak yazılmıştır, yazılmasında temel MTA (Mail Transfer Agent)olarak qmail ele alındığı için bu sadece bu MTA ile çalışır. Son zamanlarda postfix ile birlikte de çalışabilmesi için gerekli düzenlemeler yapılmıştır. Postfix ile çalıştırabilmeniz için yine aynı sitede bulunan vpopmail-postfix dökümanına göz atabilirsiniz.