[]

c++ gibi bir program yazmak için

bu insanlar nereden başladı? programlama programı nasıl yazarım? yeni bir programlama dilini baştan yaratmak zor mudur?




 
yeni bir programlama dilini baştan yaratmak tabi ki çok zordur.


  • eksi sozlukte eksiyen adam  (09.12.14 12:52:40) 
822-1848 tarihleri arasında, Cambridge Üniversitesi matematikçilerinden Charles Babbage, Differential engine ve Analytical engine adıyla iki makina tasarladı. Bu makinalar teknoloji yetersizliği nedeniyle asla çalışmadı. Ama, özellikle, 1833 yılında tasarlanan Analytical engine bugünkü bilgisayarın atası veya atalarından birisi sayılır. Charles Babbage ve onun asistanı Ada Lowelace bazı problem sınıflarının Analytical engine ile çözümü için ortaya ardışık hesaplama yöntemleri koydular. Bu yöntemler programcılığın başlangıcıdır. Bunun anısına, çağdaş programlama dillerinden birisine ADA adı verilmiştir.

1944-1946 tarihleri arasında Pensilvanya Üniversitesinde Mauchly ve Eckert tarafından yaratılan ENIAC (Electronic Numeric Integrator and Computer) ilk bilgisayardır. Büyük enerji harcayıp büyük ısı yayan 30 ton ağırlığındaki bu heyula makinayı çalıştırmak için 18000 valfa kumanda edebilmek gerekiyordu.

1949 yılında Princeton Üniversitesi matematikçilerinden von Neuman tarafından EDVAC (Electronic Discrete Variable Computer) yaratıldı. Gerçek anlamda ilk bilgisayar bu oldu; çünkü program ve veri aynı anda bellekte saklanabiliyor, dolayısıyla, işlemleri istenen sırada kendiliğinden yapıyordu. Bellekte bilgi tutan birim BInary digiT (bit) idi. Bu birim elektronik sinyal var-yok (on-off veya 0-1) değerlerini alabilirdi. Bit'ler bir araya gelip byte'ları oluşturdu. Bellek, byte'ları içeren manyetik drumlardı. Her byte'ın belirli bir adresi vardı. Programın icra edilmesi demek, bellekte belirli adreslere byte değerleri yazmak ve okumak demekti. Bellekteki bir adreste bir veri kayıtlı olabileceği gibi bir komut da kayıtlı olabilirdi.

Adreslere yazma ve adreslerden okuma eylemi birer birer yapılabildiği için, bu işlemler bir şişe boynundan geçişe benzetilerek, makinaya von Neuman şişesi (şişe boynu) denilmiştir. O gün için çok büyük bir başarı olan bu makanizma, bugün bazı yazarlarca gerçek bir talihsizlik sayılmaktadır; çünkü çağdaş bilgisayarın gelişimi bu temele dayanmış, yani şişe boynuna sıkışıp kalmıştır.

Acaba, von Neuman olmasaydı, günümüz bilgisayarı şişe boynuna sıkışmaktan kurtulacak mıydı?

Valflı makinalar ilk kuşak bilgisayarlardır (IBM 600 serisi). İkinci kuşak bilgisayarlar transistör bilgisayarlardır. Beş yıl sonra bütünleşik devreli (integrated circuit technology) üçüncü kuşak bilgisayar yaratıldı. (Very) Large Scale Integration (VLSI) teknolojisinin yarattığı dördüncü kuşak bilgisayarlar günümüz bilgisayarlarıdır. Japonlar beşinci kuşak bilgisayarı yaratmaya uğraşmaktadırlar.

İyi bilindiği üzere, günümüz bilgisayarında, program ve veri belleğe binary digit olarak yüklenir. Bunu yapan bit dizilerine makina kodu denilir. Makina kodlarını kullanarak bilgisayara program yüklemek çok zor bir iştir. Kart okuyucu'ların ortaya çıkışı bu işlemi oldukça kolaylaştırdı. Tabii, makinaya, kart okuyucudan gelen sinyali algılayıp makina koduna çeviren bir program yerleştirildi. Bu program, günümüzün mükemmel işletim sistemleri'nin atasıdır.

Kart okuyucunun getirdiği kolaylıkla yetinmeyen programcılar biraz daha ileriye gidip assembler'i yarattılar. Assemblerin doğuşu program yazmayı oldukça kolaylaştırdı. Bunun kadar önemli olarak, assembler ile yazılan programlar okunabilir programlar oldu.

Bir Zamanlar FORTRAN

Assembler ile program yazmak kolaylaşmıştı ve assembler ile yazılan programlar okunabiliyordu. Peki ama assembler dili evrensel miydi? Yani makinadan makinaya değişmiyor muydu? Program okunabiliyordu, ama kimler anlayabiliyordu? Bu sorunları aşabilmek için yeni bir adım daha gerekiyordu. IBM bu adımı attı. Daha evrensel bir yöntem yaratmak için kolları sıvadı. Herkesin her makina için program yazabilmesine olanak sağlayacak bir dil geliştirdi: FORTRAN (Formula Translator). FORTRAN'ın programcılık kavramına getirdiği önemli yenilikler vardır: Değişken, adama deyimi (assignment statement), hesaplanabilir ifade (computable statement), array, veri işleme, kağıda döküm, GOTO, IF , iteration, subroutine...ve belki de en önemlisi taşınabilirlik...Yani kaynak programın makinadan bağımsızlığı ilkesi.

Bu yeniliklerle FORTRAN çok kolay kullanılır ve kolay okunur bir dil oldu. Daha sonra gelen ALGOL, PL1, PASCAL, C, ADA vb diller onun soyundan gelirler; dolayısıyla onun zayıflıklarını soyaçekim yoluyla taşır. FORTRAN başka türlü olsaydı, programcılığın evrimi de başka türlü olacaktı. LISP, PROLOG, APL vb diller FORTRAN soyundan değildir. Ama yazık ki bu diller FORTRAN ve onun soyu kadar yaygınlık kazanamadı. Böyle olmasında IBM'in ticari gücünün etkisi büyüktür. Birçok bilgisayar bilgini, bu olguyu gerçek bir talihsizlik sayar.

Macroprocessor Ferahlığı

FORTRAN programcıya rahatlık getirmekle birlikte, her soruna çare değildi. Gelişen bilgisayara ve çevre birimlerine egemen olabilmek için assembleri kullanmak zorunlu oluyordu. Sistem programlama işi FORTRAN ile yapılamıyordu. assembler dilini kullanarak teknoloji ile yarışa kalkan sistem programcıları giderek ya sinire ya ülsere yakalanıyorlardı. Tedavi için bulunan ilaç akış diyagramları ve macroprocessor'ler oldu.

SİSTEM ve COBOL Yılları

Gelişim durmuyordu. Her bir program için sistemi yönetecek macroprocessor yazmak yerine, bütün sistemi yönetecek bir program yazmak daha akıllıca olacaktı. Bu akıllıca işin ürünü işletim sistemi oldu. Büyük programlar modüllere ayrıldı; overlay kavramı geldi; arayüzler (interface) parçaları birleştirdi. Veri işleme (data processing) eylemi hızla gelişti. Yeni bir adım daha atma zamanı gelmişti. Ne yazık ki yanlış bir adım daha atıldı: COBOL.

Dijkstra der ki

"FORTRAN bir çocukluk hastalığı idi, COBOL bir afet oldu."

COBOL, tamamen ilkel (naive) bir dildir. Kolay okunabilmek uğruna, herkesin bildiği X = A + B aritmetik işlemini ADD A TO B GIVING X diye yazdıracak kadar genel kültürden sapan bu dil neden bütün zamanların en çok kullanılan dili olmuştur?

COBOL'un kolay bir dil olduğu iddia edilir. Gerçekte, FORTRAN soyundan gelen öteki dillerle karşılaştırıldığında, bazı işlemleri İngilizce ifade etmekten başka kolaylığı yoktur. Üstelik COBOL uzmanı olmak oldukça zordur. Bu nedenle, bilgisayar dünyasında "Çok yaşa COBOL !" diyen fanatikler türemiştir.

COBOL dili, atası FORTRAN'ın iyi yanlarını almıştır. Onun gibi değişken kavramına sahiptir. Koşullu deyimi kısıtlı olarak vardır. Iteration yapar. Yapısal programlama kavramını getirmiştir. Programı identification, environment, data ve procedure diye dört kısma ayırması iyidir. Ama her kısmın ayrı bir syntax kuralı vardır; aşırı derecede sözlüdür. Her kısım ancak bir kez yazılabildiği için bir programda bloklar ve alt bloklar yaratılamaz. Boolean deyimleri yoktur.

ALGOL ve PL1 Yılları

60'lı yıllarda programlama dillerinde şafak sökmeye başladı. Bilgisayarın gerçek bilginleri düşünmeye başladılar. Programcılığı yozlaşmaktan kurtaracak, onu bir sanat yapacaklardı. Uğraştılar ve başardılar: ALGOL60 (Algorithmic Language) yaratıldı. ALGOL60 dili COBOL'un yaptığı her şeyi yaptığı gibi; biraz sonra onun yapamayacağı her şeyi de yapıyordu. Algoritmik bir biçeme sahipti. Yapısal programlamayı kuruyor, blokları getiriyordu. Fonksiyon kavramını daha matematiksel biçimde tanımlıyordu. Iteration mükemmeldi.

Yazık ki ALGOL60 tutmadı. O sadece bilim adamlarının mükemmel bir eseriydi. Arkasında destekleyen büyük firmalar yoktu. Cobolistler onu okuyup anlayamadılar. Daha formal olması gereken sistemciler de, ALGOL60'ın yaptığı her şeyi assembler ile daha iyi yaptıkları havasına girdiler; ona soğuk davrandılar. Sonuçta ALGOL60 uygulamaya alınamadı. Yayınla öğrenilen bir dil oldu. Akademic çevrelerin gözde bir dili olarak ömrünü tamamladı.

ALGOL60'ın başarısız olduğunu söylemek belki de haksızlık olacaktır. Her şeyden önce, öğretimde büyük bir ağırlığa sahip olmuştur. Kendisinden sonra çıkan PL1, PASCAL, C, ADA dillerine ve hatta biraz yozlaşmış biçimiyle BASIC diline temel olmuştur. ALGOL68 adıyla geliştirilen yeni versiyonu ilginç yeni özeliklere sahiptir. SIMULA, SMALLTALK gibi object-oriented dillere öncülük etmiştir.

Bu dönemde adından söz edilmesi gereken PL1 dili, kuşkusuz COBOL'a göre çok üstündür. Getirdiği yenilikler arasında procedure, pointer ve depo sınıfı (storage classes) kavramları vardır.

MULTI ve PASCAL Yılları

Sisteme giriş/çıkış işlemlerinin sırayla yapılması, özellikle printerin yavaşlığı nedeniyle CPU'nun bazan boş durmasına neden olmaya başlamıştır. Bu boş zamanı değerlendirmek için, ilkönce printer yerine bir kayıt ortamına yazma ve iş bitiminden sonra kayıt ortamından kağıda döküme yöntemi düşünülmüştür. Daha sonraları, printer çalışırken CPU'nun başka bir iş yapması sağlanmıştır. Giderek bu düşünce çoklu(multi) işlemlere ve multitasking kavramına götürmüştür. Bu alanda macroprocessor'lar yeniden hizmete girmiştir.

60'lı yılların ortalarında çoklu-tasarım (multitasking) problemine yönelik araştırmalar büyük önem ve yoğunluk kazandı. Böylece, bilgisayar dünyasındaki aşamalardan birisi daha gerçekleşmiş oldu. Bugün büyük bilgisayar ağları yardımıyla eşanlı ve çoklu tasarım işlemleri, 20 yıl önce imkansız sayılan aşamalara varmıştır.

1971 yılında İsviçre Alplerinde yeni bir dil doğdu: PASCAL. Niklaus Wirth ve Kathleen Jensen tarafından öğretim amacıyla yaratılan bu dil ALGOL60'dan ferahlatıcı esintiler almıştır. PASCAL sabit ve değişken arasında keskin bir ayrım yapmıştır. Veri türlerine aydınlık bir bakış açısı getirmiş ve kullanıcı tarafından tür yaratılmasına izin vermiştir. Değişkenleri statik ve dinamik diye ikiye ayırmıştır. Pointer kavramını kullanmıştır.

PASCAL kendi soyunda mükemmel bir dildir; açık ve basittir. ALGOL'dan daha güçlüdür. Ama talihsizdir. Herkes PASCAL'ı konuşur, ama bilgisayarlar COBOL'u kullanmaya devam eder. Assembler ise sistem dünyasındaki tacını kaptırma niyetinde değildir. Böylece PASCAL dili de ALGOL gibi akademic çevrelerde kaldı, ticari hayata inemedi. MODULA, C, ADA dillerini etkiledi. Son zamanlarda, özellikle PC 'lerde ve okullarda önem kazanmaya devam etmektedir.

Yapısal Programlama Yılları

1968 yılının güneşli bir Mart gününde programcılık dünyası yaklaşan baharın tadını çıkarmak istiyordu. Bilgisayar dünyasında herşey o kadar güzeldi ki... Sistem analistler, programcılar ve hatta kullanıcılar memnundu. Tam bu havada iken Dijkstra, Communications of the Association for Computing Machinery adlı dergiye bir mektup yazdı. O güneşli güzel hava birden karardı. Dijkstra, o tarihi mektubunda, yazılan programların çoğunun kötü olduğunu söylüyordu. GOTO'suz program istiyor, yapısal programlamayı gerçek anlamda kurmak gerektiğini savunuyordu.

Bu noktadan sonra, baharın tadını çıkarmayı düşleyenler, yeniden programlama sanatının ne olduğunu, yapısal programlamanın temel taşlarının nasıl konulması gerektiğini tartışmaya başladılar. GOTO'yu dışlayan örnek programlar üretildi. Bütün bunlar programlama sanatını geliştirdi, iyi sonuçlar doğurdu. Peki ama GOTO deyimi gerçekten dışlanmayı haketti mi? Yoksa biraz insafsızca mı davranıldı?

O soylu, Uğursuz Recursion

Recursion'ın ne olduğunu liseyi okuyan herkes bilir. Bir önermenin sayılabilirsonsuz bir küme üzerinde doğru olup olmadığını denetleyen önemli ispat yöntemlerinden birisidir. Türkçe'de tüme varım yöntemi adıyla anılır. Acaba bilgisayarda bu yöntemi kullanma olanağı var mıdır? Kullanılırsa, sonsuz döngüye düşme tehlikesi yok mudur? Bu nedenle, çoğu programcı recursion kullanmaktan sakınır. Hiç bir dilde recursion yapısının gerçek tüme varım yöntemini temsil edebildiğini sanmıyorum.

C: Taht Kavgası

Dördüncü kuşak programlama dünyaya gelirken, üçüncü kuşak programlama yeni bir çıkış yaptı. Programlama dili üzerindeki bütün tartışmaları sona erdirmek amacıyla C ve ADA'yı yarattı.

1973 yılında Denis Ritche ve Kernighan, C yi ortaya koydular. C dili daha önce yazılan BCPL, B ve ALGOL68 dillerinin iyi yanlarını almıştır.

C dili doğuşunda bir sistem programı olduğunu iddia etmiştir; bugün hala bu iddiası yürürlüktedir. Hatırlanacağı üzere, sistem programcılığı assembler'in tekelinde kalagelmiştir. Her ne kadar bazı sistem üreticileri Pascal ya da PL1 yapısına benzeyen ve sistem programlama amacına yönelik diller geliştirmeyi denedilerse de, bu denemeler hiçbir zaman ticari boyut kazanamadı. Dolayısıyla, C dili ortaya çıkana kadar, sistem programlama dünyasında assemblerin tahtı hiç sallanmadı.

C dili genel amaçlı evrensel bir dildir; yani her makinada çalışabilir (Bu iddia son yıllardaki bazı C derleyicileri tarafından çürütülmektedir). Yapısaldır. Syntax için kesin kuralları vardır, ama semantic kuralları oldukça serbesttir. Temel yapısı PL1 dilinde olduğu gibi procedur'lerden (fonksiyon) oluşur. Procedur'ler iç içe yuvalanamaz. Böyle oluşu, global ve local scope kurallarını tehlikeli olmaktan çıkarır. Blok dışında tanımlı değişkenleri görmek içinexternal olarak tanımlama yeteneği vardır.

Pascal dilindeki record ve variant kavramları C dilinde struct ve UNION adlarıyla vardır. Pointer kavramını kuvvetle kullanmış ve pointer aritmetiği yaratmıştır. Adama deyimlerini şaşırtıcı olabilecek kadar kısaltmıştır. Iteration (döngü) deyimleri yalın ve etkilidir. Dallanma için if-else ve switch-case yapılarına sahiptir. Boolean deyimlere sahiptir.

C dili başarılı bir dildir. Özellikle UNIX dünyasında assemblerin yerini büyük ölçüde alabilmiştir. Kesinlikle assemblerden daha iyidir ve program üretimini artırmaktadır.

Belki en büyük kusuru, istenirse assembler dilinde olduğu gibi disiplinsiz program yazmaya izin vermesidir. Tıkız yapısı, çok kısa kodlar yaratılmasına olanak sağlar. O kadar ki, bazan yaratılan kodları değil başkasının, bizzat programı yazanın bile anlaması olanaksız olabilir. Ama, C dilinde rahat okunur ve kolay anlaşılır programlar yazmak her zaman mümkündür.

BASIC: Dil mi? Oyuncak mı?

1963 yılında doğan ve 70'li yıllarda yenilenen BASIC (Beginners All Purpose Symbolic Instruction Code) dilinden sözetmemek belki de bir eksiklik olacaktır. BASIC dilinin yaratılış amacı PC kullanıcılarına yüksek düzeyli bir dilin yeteneklerini sunmaktı.

Genel çizgisiyle, BASIC dili FORTRAN'ın izlerini taşır: adama, GOTO, IF...THEN, IF...THEN GOTO, FOR yapıları vardır. Son versiyonlarında IF...THEN...ELSE yapısı da vardır. Makina düzeyinde sistem kontrol komutlarına sahip oluşu önemli bir avantajdır. Kolay kullanılır oluşu, profesyonel olmayan kullanıcılar arasında çekiciliğini artırmıştır. Bu açıdan çok yaygındır.

BASIC ile yapısal programlama yapılamaz. Veri türlerine sahip değildir. Procedure, scope kavramları yoktur. Bu nedenle günümüz programcısının gereksemelerine vevap veremez. Daha kötüsü, BASIC kullanmaya alışan bir kişiyi, çağdaş bir dilin gerektirdiği disipline sokmanın çok zor olduğu kanısı yaygındır.

ADA: Soyunun en üstünü mü?

1979 yılında CII'de Jean Ichbiah ve araştırma ekibi tarafından yaratılan ADA dili, kendi soyunun en gelişkin dili olduğu iddiasıyla ortaya çıktı. Genel olarak PASCAL'ın izindedir; ama onun eksiklerini gidermiştir. Soyut veri yapılarına sahiptir. Eşanlı (concurrent) programlama niteliği vardır.

Bilgisayar bilginlerinin çoğu, ADA dilini, FORTRAN soyunun ulaştığı son aşama olarak görürler. Bazıları, ADA dilinin çok karmaşık ya da çok büyük olduğu görüşündedir. Öğrenilmesi, öteki dillere göre daha zor olmasa bile daha çok zaman alıcıdır.

Deneyler dil öğrenimi için aşağıdaki zamanların gerekli olduğunu göstermiştir:

FORTRAN IV ( ya da FORTRAN 77) 6-12 ay

COBOL 6-18 ay

PL1 6-18 ay

ADA 6-24 ay

Kuşaklar Çatışması

60'lı yıllar programlama dillerinin harmanlandığı bereket dolu yıllardı. 70'li yıllar programcılığın kriz yıllarıdır. Kriz özeleştiriyi getirmiş, ortaya çıkan hastalıklar yayılmasın diye koruyucu aşılar yapılmıştır. Yapılan aşılar genellikle tutmuştur. Günümüzde olgunlaşan meyveler toplanmaktadır.

Programcılığın ortaya çıkışından bu yana aşılan yol büyüktür.

Bilgisayar donanımının gelişimini belirtmek için iyi bir sınıflama yapılmıştır. Benzer sınıflandırmayı yazılımın gelişimi için de yapmak olanağı vardır:

Birinci kuşak : Makina kodu

İkinci kuşak : Assembler ve autocode

Üçüncü kuşak : Procedural diller (FORTRAN, Algol, Cobol, Pascal, C, ADA vb).

Dördüncü kuşak : Non-procedural diller (LISP,SNOBOL, FORTH)

Bir başka sınıflandırma biçimi de şöyledir:

Birinci kuşak dil makina dilidir.

İkinci kuşaktaki assembler dili komut yöneltilidir (command-oriented).

Üçüncü kuşaktaki diller"Nasıl yapılmalı?" sorusuna yanıt arar.

Dördüncü kuşaktaki diller"Ne yapılmalı?" sorusuna yanıt ararlar.

String işleme, Formal Diller, Belirsizlik, Türing'in Makinası ve AUTOMATA, Liste İşleyen LISP, Yapay us, Uzman Sistemlere geçiş kavramları, klasik programcılığı aşan önemli gelişmelerdir. Burada bu kavramların ayrıntısına girmek için zamanımız elvermeyecektir. Ancak, geleceğin programcılığının bu yöne kaymak zorunda olduğunu belirtmeden geçemeyeceğim.

İnsanoğlu, belki, doğru programları yaratmayı başaramadı. Eğer programcılık insanoğlunun işi olarak kalacaksa, düşünen ve bilgi üreten programı yapmak zorundadır. Herhalde bu iş beşinci kuşak yazılımların asıl görevi olacaktır.

Veri Dünyası

Bir Zamanlar I/O Yoktu

Veri işlemenin korkulu rüyası giriş/çıkış (I/O) dır. Bugün harikulade bir tekniğe sahip olan I/O başlangıçta hiç yoktu. Pin-board'dan başlayıp typewriter, kart okuyucu, line printer, kayıt ortamları, kütük, console, kanal, buffer, interrupt, terminal, ağ vb araçları kullanan I/O işlemlerini tekrarlamanın yararını görmüyorum.

Kütük yılları ve veri-tabanları

Bilgi işlenmiş veridir. Veri işleme iş dünyasının temel problemidir. Veriyi işlemek için onu toplayıp depo etmek gerekir.

60'lı yılların sonunda veri kütüğe depo edildi ve donduruldu. İstenildiği an oradan istenen veri alınıp işlenebilecekti. Herşey burada noktalandı sanılırken, buzlar erimeye başladı. Kütüğün işlevi değişmeye başladı. Neydi kütük? Verilerin saklandığı depo mu? Programın kendi kendisini sakladığı yer mi? Programın dış dünya ile iletişim kurmasını sağlayan ortam mı? Yetmeyen ana belleği büyüten bir aygıt mı?

Bir kütük onu yaratan programa ne denli bağlı kalmalıdır? Programdaki değişiklik kütüğe nasıl yansıyacaktır? Kütüğün yapısı, programın geliştirilmesine (maintanence) ne ölçüde engeldir? Kütükteki kayıtlara erişim nasıl olmalıdır? Programın ve kütüğün iyileştirilmesi nasıl olur? Veri tekrarı (duplication) nasıl önlenir? Kütükten kütüğe aktarılan ve güncellenen verilerin güvenirliği nedir?

Bu ve benzeri binlerce sorun karşısında kalan veri işleyiciler uçtaki kullanıcıyı tatmin edebilmek için gece gündüz çalışmaya koyuldular. 10 yıl kadar süren bu kargaşa ortamında kimisi mide, kimisi kalp hastası oldu... Sonra bazı akıllı adamlar oturup düşünmeye başladılar: Veri nedir? Böylece ortaya veri-tabanı kavramı çıktı.

Üçüncü kuşak dillerle bile veri-tabanı yönetim sistemlerinde harikalar yaratılmıştır. Ama, olaya mantıksal açıdan bakıldığında, veri yapıları konusunun dördüncü kuşak dillerinin işi olduğu hemen anlaşılmaktadır.

70'li yılların sonunda IBM, veri-tabanı dünyasını sarsan bir ürünü açıkladı: SQL (Structured Query Language). İlişkisel (relational) dilin varabileceği son aşama olarak nitelendi. Ama, arayış hiç bir zaman durmadı; durmayacak. Recursive veri yapıları, verinin normallenmesi, object-oriented programlama vb kavramlar durmaksızın araştırıldı, geliştirildi.
  • solemio  (09.12.14 12:53:35) 
Genelde ihtiyaçtan çıktı. Sadece programlama dilleri değil, bugün bir çok kişinin kullandığı programlar da yine ihtiyaçtan ortaya çıkan şeyler. Kabaca bir şey yapmak isteyen ama var olan imkanlarla bunu yapamayan veya çok uğraşan birisi "ben bunun daha iyisini, istediğim şekilde yaparım" mantığıyla yola çıkıp yeni bir şey üretiyor. Hakikaten ürettiği şey diğerlerinden farklı, kolay ve daha işe yarar bir şeyse de zamanla benimseniyor.

Örnek: eksisozluk.com

2. entrydeki guru'nun entrysini okursan, başlıktaki adam benim verdiğim örneklerin canlı örneğidir mesela.
  • osurdum  (09.12.14 12:57:19) 
1 kisi yazamaz, baslarsin belli bi yere getirirsin, baskalari devam eder ve yillar sonra tam dil kivamina gelir. yeni bir dil yazmak uzun bir sürec gerektirir, yasayan bi canli gibi dogar büyür ama nereye gidecegini bilemezsin, belki de erkenden ölür. 1 kisi o dilin hayat döngüsünü basindan sonuna kadar göremez. Ayni konusma dili gibi, simdi otursan yeni bir konusma dili de yazamazsin, yillar icinde kendiliginden gelisir. Ama bu dil de mevcut dillerin cözemedigi önemli bir problemi cözüyor olmali.

Ama bunun yerine C dilini temel alip önce yeni bi kütüphane yazarsin, sonda o kütüphane kapsamli bir hale gelir ve yeni bir dil kivamina gelir.

Bundan önceki diller cok daha hizli gelisti, cünkü bir bosluk vardi, simdiki diller o kadar sansli olamayabilir. Cok yeni bi alan bulman lazim, mesela "big data" islemek icin yeni bir dil, yada "semantic web" icin yeni bir markup language
  • emrahday  (09.12.14 12:58:53 ~ 13:03:59) 
konuştuğumuz dile benzetiyorum ben bunu, sen birşey yapabilirsin fakat seninle beraber bu dili tamamlayacak, konuşacak kişiler lazım.

solemio'nun yazdığı yazıda programlama dillerinin sürekli bir ihtiyaç sebebi ile geliştiğini anlıyorum. benzer durum oyunlarda da var. bir çok firma kendi motorunu geliştiriyor. neden, sebep basit mevcut ihtiyacı karşılamıyor.

yeni bir programlama dilini baştan yaratmak zor mudur? evet çok zordur. Hangi iş kolay ki?
  • rhan  (09.12.14 18:18:15) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.