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

Kısıt Koşul Programlama

FZ

Roman Barták'ın "On-line Guide to Constraint Programming" (Kısıt Koşul Programlamaya Giriş) kılavuzu farklı bir yazılım geliştirme paradigması için öenmli bir kılavuz niteliğinde.

Kısıt koşul programlama, kabaca istenen çözümün sağlaması gereken şartların (kısıt koşulların) sunulduğu ve çözümün adım adım tarif edilmediği programlama şekli olarak tanımlanabilir.

Kısıt koşul programlama gitgide popülaritesini artırmaya başladı, Mozart Programming System gibi somut uygulamalar pek çok problemin çözümünde kullanılıyor. NP-zor problemler, yapay zekâ, mantık, elektronik, bilgisayar grafikleri gibi konularda çalışan yazılımcıların kısıt koşul programlama konusunda bilgi sahibi olmalarında fayda var.

Kaynak: Computer Science Daily News

Fazla mesai süründürür!

ErdemDemir

Geçen gün kitaplığımı düzenlerken, 10 yıl kadar önce okumuş olduğum Paul Lafargue'ın yazdığı "Tembellik Hakkı" kitabını yeniden okuma şansı buldum. Bir defa daha ezberimi bozan bu kitabı fazlamesai (!) camiasıyla paylaşmak istedim.

Paul Lafargue İnternet Arşivi

"Tembellik Hakkı"

Ve alıntılar, sadece fikir verebilmek için...

Diff ve Patch Kullanımına Giriş

Armish

Bu araçlar programlama veya program kodları ile uğraşanlar için bazen hayat kurtarıcı olabilyor. diff ve patch'i kullanmak konusunda az da olsa bilgim olsun diyorsanız bu yazı size yardımcı olabilir.

Temel C kültürü

gencbeyin

Steve Maguire'in Hatasız Kodlama isimli kitabını elime aldığımdan itibaren ön kapağında Microsoft Press yazıyor olması hiç rahatımı bozmadı. Bana harika bir kitap gibi gözüküyordu ve gerçekten öyle çıktı. C programlamayı çat pat biliyor, bilgilerimi derinleştirmek için bir kaynak arıyordum, ve tam istediğimi bulmuşum. Burda yazılanların çoğunun open source projelerde uygulandığı da gözümden kaçmadı. Kısacası ANSI C hakkında temel kültür kazandıran bir kitap arıyorsanız, Arkadaş Yayınları'ndan Hatasız Kodlama'yı şiddetle tavsiye ederim.

Free as in Freedom

FZ

Sam Williams'ın GNU hareketi ve Richard Stallman üzerine, bu yılın Mart ayında kaleme aldığı "Free as in Freedom" adlı kitabın tamamına Internet üzerinden de erişebilirsiniz.

Kitabın belki de en zevkli bölümü 1. bölüm: Bu bölümde 80'li yılların başında MIT yapay zekâ laboratuvarında çalışan Stallman'ın bozuk bir XEROX yazıcının yazılımına düzeltmek için müdahale etmek istemesi ama XEROX'un kaynak kodunu vermemesi ve sonrasında gelişen olaylar anlatılıyor. Önce efendi ve nazik bir dille derdini anlatmaya çalışan Stallman, insanların "hadi len, biz burada ticari iş yapıyoruz, yok sana kaynak kod, mod, ne halin varsa gör!" demesi üzerine ufaktan bir şok geçiriyor ve "sizin allahınız, kitabınız var mı üleennn!" diye elini kolunu sıvıyor ve GNU isimli organizasyonu kuruyor. (Ve bugün çoğumuzun bu organizasyona ait olduğunu bilmeden, Linux ve benzeri sistemler üzerinde kullandığımız bir ton çok önemli yazılım geliştirilmeye başlanıyor.)