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

Özgür Yazılım, Özgür Toplum: Richard M. Stallman'ın Seçme Yazıları

hcg

Richard Stallman'ın denemelerinden oluşan Free Software, Free Society: Selected Essays of Richard M. Stallman adlı kitabın çevirisi olan "Özgür Yazılım, Özgür Toplum: Richard M. Stallman'ın Seçme Yazıları" adlı kitap TMMOB Elektrik Mühendisleri Odası tarafından yayınlandı.

Nasıl Programcı Olunur

yalcink01

Robert L. READ tarafından yazılmış olan ve ESR'nin "Nasıl Hacker Olunur?" kılavuzunda da bahsi geçen "How to be a programmer" kılavuzunun "acemiler" için olan kısmının çevirisi bitti. Hem çevrilen kısmın imla, yazım, mantık ve bilumum hatalarının kontrolü için hem de programlamaya merak saran acemi vatandaşlara yol yordam göstersin diye bu kısmı yayınlamaya karar verdik. Çevrilmiş kısım hakkındaki fikir ve eleştirilerinizi bekliyorum. Hata ayıklama konusundaki yardımlarınız için şimdiden teşekkürler.

Saygılarımla,

Yalçın KOLUKISA
yanmasın diye kaz çevirmeye giden adam

Akıllı Ev Nasıl Yapılır?

anonim

Eric Faulkner ve Tony Northrup yazdığı bu kitap evinizde yapabileceğiniz ilginç projeleri anlatıyor. Kitaptan bir kaç örnek konu başlığı şöyle;

# Uzaktan evcil hayvanınızı gözetleyin
# Evinizi konuşturun
# Uzaktan bilgisayarınızın MP3 çalarını kontrol edin
# Zaman gecikmeli FM radyo yaratın
# Ağ üzerinden evinizi izleyin
# Ev güvenlik sistemi kurun

Bu ilginç projeler ilginizi çektiyse kredi kartlarınızı, tornavidalarınızı ve lehim aletlerinizi hazırlayıp O'Reilly'nin sitesine tıklayın.

Bilgi İşlem Tasarım Kalıpları

anonim

Tasarım Kalıpları (Design Patterns) adı verilen akım, özellikle bilgi işlem yazılımcıları tarafından son yıllarda çok ilgi görmüştür. Bir tasarım kalıbı basit bir açıklama ile bir nevi reçetedir. Bu reçete, sürekli karşımıza çıkan bir sorun tipine karşı bulunmuş, gene sürekli verilmiş olan ve işe yarar bulunmuş bir çözümdür.

Yazının devamı için buraya tıklayın.

İnce bir LaTeX2ε Elkitabı

innaw

Mustafa Akgül Hoca'mız, linux-sohbet listesine geçtiği ileti ile Tobias Oetiker'in ünlü The not so short intro to Latex isimli kitapçığının Prof. Dr. Bekir Karaoğlu tarafından Türkçe'ye çevirildiğini duyurdu. Kitapçığa buradan erişebilirsiniz.