2 puan yazan GN⁺ 2023-12-02 | 1 yorum | WhatsApp'ta paylaş
  • Borland’ın 1983 Kasım’ında tanıttığı Turbo Pascal, 2023 Kasım itibarıyla resmen 40 yaşına girdi
  • Turbo Pascal, Borland’ın çıkış noktası olan ürün ve sektörde yaygın biçimde kullanılan ilk entegre geliştirme ortamı (IDE) olarak değerlendiriliyor
  • O dönemde geliştirme deneyimi ve ürün olgunluğu açısından güçlü bir etki bıraktı ve büyük bir ticari başarıya dönüştü
  • Embarcadero, devam niteliğindeki derleyici ailesini geliştirmeyi sürdürüyor ve Delphi 12 Athens’in Win32 komut satırı derleyicisi 36.0 sürümünü kullanıyor
  • Mevcut sürüm numaralandırma sistemi ilk Turbo Pascal’a kadar uzandığı için, bu 40. yıl dönümü Delphi ailesinin tarihiyle de doğrudan bağlantılı

1983 Kasım’ında başlayan Turbo Pascal

  • Turbo Pascal, Borland’ın 1983 Kasım’ında piyasaya sürdüğü bir üründü
  • 2023 Kasım itibarıyla resmen 40 yıl oldu

Borland ve IDE tarihindeki yeri

  • Turbo Pascal, sektörün kilometre taşı ürünlerinden biri olarak görülüyor
  • Borland şirketini başlatan üründü
  • Yaygın olarak bilinen ilk IDE olarak anılıyor
  • Döneminin ölçütlerine göre çok üstün bir üründü ve başarısının ölçeği de çok büyüktü

Daha fazla okuma ve Pascal bağlamı

Embarcadero ile süren ardıl derleyiciler

  • Embarcadero, Turbo Pascal’ın ardıl derleyici ailesini geliştirmeyi sürdürüyor
  • Yakın zamanda bu derleyicinin 36. sürümünü yayınladı
  • Delphi 12 Athens’in komut satırı derleyicisinde Embarcadero Delphi for Win32 compiler version 36.0 sürüm ifadesi yer alıyor
  • Bu 36 numaralı sürüm, ilk Turbo Pascal’a kadar uzanan bir numaralandırma sistemi

40. yıl dönümü Easter Egg’i

  • Embarcadero, bu 40. yılı anmak için ürün içindeki Easter Egg’i Turbo Pascal yıl dönümüne adadı
  • Mesaj, “Happy 40th birthday, Turbo Pascal!” ifadesiyle sona eriyor

1 yorum

 
GN⁺ 2023-12-02
Hacker News yorumları
  • Sevdiğim bilgisayar oyunlarından biri, Turbo Pascal ile yazılmış ZZT idi. Epic Megagames’ten Tim Sweeney’nin yaptığı tuhaf bir metin modu oyunuydu; bulmacalar ve nişancı öğeleri karışıktı, ücretsiz shareware sürümünde bile bir oyun düzenleyici vardı ve ZZT-OOP adlı küçük bir programlama dili de içeriyordu.
    ZZT’nin özgün kaynak kodu kaybolmuştu, ama birkaç yıl sonra Adrian Siekierka özgün Pascal kodunu inatla tersine mühendislikle yeniden oluşturdu; öyle ki özgün Turbo Pascal sürümüyle derlendiğinde bayt bayt aynı çalıştırılabilir dosya ortaya çıkıyordu. Şaşırtıcı bir iş.
    https://blog.asie.pl/2020/08/reconstructing-zzt/
    https://news.ycombinator.com/item?id=22609474
    https://benhoyt.com/writings/zzt-in-go/

    • ZZT yüzünden bilgisayarımda Turbo Pascal kurulu duruyor.
    • Benim için de ZZT gerçekten özel bir yazılımdı; programlamayla doğru düzgün tanışmamı sağlayan şeydi. Daha önce dergilerdeki BASIC kod listelerini yazmış ya da okulun BBC Micro’sunda önemsiz şeyler denemiştim, ama ilk PC’mde ZZT-OOP ile istediğim şeyleri sıfırdan yaparak öğrendim.
    • ZZT, Frog Fractions 2’nin overworld’üne de ilham verdi.
  • Beni programlamaya başlatan Turbo Pascal oldu. Borland Pascal 7.0, sonra da Delphi 1.0 ve 2.0 lisanslarına yüzlerce Alman Markı harcadığımı hatırlıyorum; sonunda para karşılığında sattığım ilk “ticari” yazılımı da yapmış oldum.
    DOS döneminde Basic dışında programlamaya girmenin herhalde en kolay yolu Turbo Pascal’dı; Windows 3.1/95’te ise Delphi, GUI programlamanın bu kadar kolay olabileceğini gösteren, insanın gözünü açan bir araçtı.
    Birçok açıdan, o zamana göre geriye gitmişiz gibi bile geliyor. Turbo Pascal / Delphi derleyicileri eksiksiz GUI programlarını küçük ikili dosyalar olarak üretiyordu; bugün benzer performanstaki yazılımların nasıl birkaç büyüklük mertebesi daha büyük hale geldiğini merak ediyorum.

    • Turbo Pascal’ın ilk sürümlerinde, program ve kaynak kod RAM’e sığdığı sürece, o dönemin makinelerinde bile kodu değiştirip sonucu görme süreci fiilen anlıktı. Etkileşim de anındalık düşünülerek tasarlanmıştı; derleme hatası uçsuz bucaksız bir rapor ekranı püskürtmek yerine, hatanın olduğu satıra doğrudan götürürdü diye hatırlıyorum.
      Neden bir yazım hatasıysa, düzeltip yeniden derlemek ve çalıştırmak 1 saniye sürerdi. Günümüz araçlarının çoğu, geliştiriciden gereksiz ek hareketler isteyen farklı bir felsefeye sahip.
    • 90’lardaki “tam özellikli” GUI programları bugünün ölçütleriyle neredeyse kullanılamaz olurdu. Başka bir deyişle, bugünün framework’leri ve programları 90’ların ortasındakilerle benzer performansta değil; 25 yıl önceki bir uygulamayı bugünkü framework sürümüyle yalnızca yeniden derleseniz bile, teorik olarak Unicode, yerelleştirme, erişilebilirlik, ağ desteği gibi şeyler eklenmiş olur.
      İstisna SAP; nedense 90’lar kullanıcı arayüzlerinin kullanıcı düşmanlığını modern programların kaynak tüketimiyle birleştirmeyi başarmış gibi. BASIC’ten sonra kullandığım dil de Turbo Pascal’dı.
    • Ah, Mark demek; ne kadar eski. Sadece Birleşik Krallık’ta mı böyleydi bilmiyorum ama konuşurken ya da yazarken mark adını İngilizceye çevirmeyip her zaman Deutschmark derdik.
    • O çalıştırılabilir dosyada en azından odadaki koca fil eksikti: Unicode desteği. Muhtemelen o zamanki PC RAM’ine sığmazdı bile.
    • Turbo Pascal, o dönemde Pascal’ın genel yaklaşımı olan yukarıdan aşağıya prosedürel programlamanın yanı sıra, Breakout demosu üzerinden nesne yönelimli programlamayı da öğretti.
  • TP’de en akılda kalan şey, her fonksiyon için basit ve anlaşılması kolay kod örnekleri olması ve bunların mantıklı biçimde düzenlendiği için bulup kullanmanın kolay olmasıydı. Bu yüzden BASIC’i bile zar zor anlayan bir ergen olmama rağmen, internet olmadan yalnızca IDE ile Turbo Pascal’ı kendi kendime öğrenebildim.
    Günümüzdeki sistemlerin çoğunda buna yaklaşan bir şey bile yok. Bunun o dönemin basit x86 DOS tabanlı sistemlerinin doğasından mı kaynaklandığını, yoksa modern dünyanın hızlı değişim temposu, çapraz platform gereksinimleri ve karmaşıklığı yüzünden böyle bir şey yapmanın imkânsız hale mi geldiğini merak ediyorum.

    • Processing(P5)’te böyle bir özellik vardı. IDE’de bir metin dizgesini seçip belgelerde arayabiliyordunuz; yerleşik bir fonksiyon ya da sabitse, yazılımla birlikte kurulan statik HTML sayfası açılıyordu, internete de sunucuya da gerek yoktu. Çevrimdışıyken bile belgelerde gezinebiliyordunuz; günümüzde statik site üretiminde bu temel yetenek sanki kaybolmuş gibi geliyor.
      O dönem eksiksiz çevrimdışı belgelere sahip yaratıcı kodlama çatısının Processing olduğunu da eklemek isterim. Örneğin OpenFrameworks bugün bile çoğunlukla otomatik üretilmiş, boş bir kabuk belgeye yakın.
      Bence bu, Processing’in eğitim ortamlarında alternatiflerine karşı üstünlük kazanmasını sağlayan etkenlerden biriydi. p5.js’in bu geleneği tam olarak sürdürmemesi, belgeleri okumak için çevrimiçi olmayı gerektirmesi ve statik bir web sitesi yerine açıldığında metnin JavaScript ile render edildiği bir yapıya dönüşmesi epey üzücüydü. Yine de örnekler dâhil belgenin kendisi eksiksiz.
      https://processing.org/
      https://p5js.org/
    • Bunun nedeni günümüzde insanların belge yazmaması. Yeni dillerin çoğu açık kaynaklı ve “kaynağı oku” kültürü var; bence bu yanlış.
    • Ben de Turbo Pascal’ı kitap olmadan öğrendim. Bilgisayarla birlikte gelen bir BASIC kitabı vardı ama Turbo Pascal çok daha kolaydı. Piksel çizmek, çift arabellekli bir görüntüleme modu seçip sadece piksel çizmek kadar basitti; joystick portunu ya da fareyi okumak da sadece okumaktan ibaretti.
    • Turbo C de aynıydı. Bugünlerde örnek bulmak için şans dilemek gerekiyor.
    • Benim için de aynıydı. Birkaç yıl GFA Basic kullandıktan sonra Turbo Pascal’la tanıştım; kod blokları ve kayıtları içeren değişken tipleri, fonksiyonlar ve prosedürler, hatta referanslar olan bir BASIC sürümü gibi hissettirdiği için çok yardımcı oldu. Yardım belgelerini okuyup neredeyse her sayfada bulunan son derece açık ve kullanışlı örneklere bakarak Pascal’ı öğrendim.
      Üniversitede internetle tanışmamdan birkaç yıl öncesiydi, bu yüzden öğrenme materyallerine kolay erişmenin bir yolu yoktu. Ondan önce birkaç kez C öğrenmeye çalışmıştım ama pek iyi gitmemişti; TP’yi öğrendikten sonra Pascal’da öğrendiklerimi C’ye aktarabildim ve o sırada da bir başka harika Borland ürünü olan C++ Builder’dan yardım aldım.
  • 80’lerin sonunda 6809E assembly, yapısal BASIC türevleri ve batch/shell’den sonra öğrendiğim ilk “gerçek” programlama dili Turbo Pascal’dı. 90’ların başında bilgisayar bilimi bölümüne girdiğimde de birinci sınıf dersleri Borland Pascal ile öğretiliyordu, bu yüzden o deneyim epey işe yaradı.
    Birkaç yıl sonra Pascal geçmişim sayesinde Delphi ile özel uygulamalar geliştirdiğim yaklaşık 5 yıllık bir işe girdim; ardından Borland’da Kylix ve C++Builder IDE’lerini test etme işine uzandı. Güzel zamanlardı.
    Delphi’yi hâlâ özlüyorum. Günümüzde IDE eklentisi olmaması ölümcül bir kusur sayılacak kadar doğal karşılanıyor ama o zamanlar kendi diliyle kolayca genişletilebilen bir bileşen kütüphanesi ve kodlama ortamı fikri saf sihir gibiydi. VCL ile ve IDE’nin kendisiyle uğraşmak gerçekten çok eğlenceliydi.
    Borland’ın kurumsal pazarı kovalayıp tabandaki geliştiricileri geride bırakması ve topluluk benimsemesinin büyümesini fiilen öldürmesi üzücü. En azından Delphi 7 civarına kadar gerçekten harika bir paketti.

    • Bizim ülkede Delphi açık ara en popüler geliştirme ortamıydı. Dünyanın çoğu VB 5’e giderken bizim Delphi kullanmamız tuhaf bir durumdu. Dışarıdan bakınca harika bir ortam gibi görünüyordu ama nedense yalnızca bazı pazarlarda büyük başarı yakalamış gibiydi.
    • Ben de benzer bir yol izledim ama sonradan iş bulma nedeniyle mecburen Visual Basic 5’e geçtim. Yine de GUI geliştirmede Delphi ile boy ölçüşebilecek bir şeyin hâlâ olmadığını düşünüyorum. VCL dâhiyaneydi.
  • TP ile ilk karşılaşmam 1993 kışında, 14 yaşındayken bir warez BBS’ten korsan kopya indirdiğim zamandı. Sadece .BAS dosyası çalıştırmaktan farklı olarak kendi EXE’mi derlediğimde hissettiğim ilkel güç sarhoş ediciydi.
    Renegade BBS’i modifiye etmeye ve door programları yazmaya başladım; başarısız olsam da solucanlar, Truva atları ve virüsler yapmaya da çalıştım. Bu deneyim hayatımı değiştirdi ve bugün teknoloji alanında olmamı sağlayan yolu açtı. Üstelik ergenlikteki yoldan çıkmış eğilimlerimi de artık düzelttim. Borland’a çok şey borçluyum.

    • Derleyici ve yorumlayıcı gibi şeyleri doğru düzgün anlamayan bir ergen için TP4 ile doğrudan EXE dosyası oluşturabilmek süper güç kazanmış gibi hissettiriyordu. Gerçek bir programcı olmuş gibiydim.
      Birkaç yıl sonra, 16 yaşındayken babamın müşteri yönetimi için küçük bir uygulama geliştirdim ve gerçekten para aldım; o paranın bir kısmıyla yasal bir TP6 sürümü satın aldım. Güzel zamanlardı.
    • Eski güzel BBS günleri aklıma geliyor. 1989’da, 17 yaşındayken kesme tabanlı seri sürücü yazmayı öğrendikten sonra Turbo Pascal için bir door kütüphanesi yaptım ve shareware olarak dağıttım. 90’ların ortasında BBS dünyası hızla yok olmadan önce epey yaygın kullanıldı.
    • Ben de aynı dönemde benzer deneyimler yaşadım. Yaramaz şeylerin dışında, 386SX üzerinde “performansın önemli olduğu” kısımlarda inline assembly kullanarak grafik programlama ile uğraşıyordum. O deneyim bugün yaptığım işin temelini kesinlikle attı.
  • Free Pascal’da hâlâ özgün TP IDE’ye benzeyen bir mod var. Ancak kendilerinin de kabul ettiği gibi kod çürümeye yüz tutmuş durumda ve hâlâ özgün MS-DOS platformunun eski tuhaflıklarına büyük ölçüde bağımlı.
    neovim veya emacs gibi terminalde genel amaçlı düzenleyici olarak kullanılabilen, aynı zamanda LSP, tree-sitter ayrıştırıcısı, debug adapter protocol gibi modern IDE odaklı özelliklerle entegre olan benzer bir sürümün olmaması üzücü. SSH/terminal bağlantısıyla uzaktaki kodu düzenlerken oyunu değiştirebilirdi.

    • https://github.com/magiblot/tvision
    • Yaklaşık 10 küsur yıl önce Turbo Pascal hayranı olan birkaç arkadaşım Lazarus’a geçti. Turbo Pascal ve Free Pascal’ın mantıksal halefi gibi görünüyordu. Şahsen Pascal dilini pek sevmediğim için Emacs’ta C++ kullanmaya geçtim.
  • Turbo Pascal’ın rakip ürünlerden ne kadar hızlı olduğunu abartmak zor. O kadar hızlıydı ki sanki bir hile yapıyor olmalı diye düşündürüyordu; ürettiği programlar da daha hızlıydı.
    O dönem için bir başyapıttı ve aldığı övgüleri fazlasıyla hak ediyordu.

    • Üniversitedeki grafik dersinde, üstelik Jack Bresenham’ın verdiği derste, yeni Borland Turbo C’yi ödevde kullanıp kullanamayacağımı sordum. Demo için aceleyle yeniden derledikten sonra sınıftaki PC 80286 olmadığı için, kodumun Turbo Pascal v4 ile yazan diğerlerinin kodlarının ancak üçte biri hızında çalıştığını fark ettim.
      Böylece olgun bir derleyicinin 1.0 sürüm derleyiciden daha iyi olduğunu öğrenmiş oldum.
    • Doğru. O dönemin yavaş işlemcilerinde bile Turbo Pascal derleyicisi kodu gerçekten yıldırım gibi işliyordu. Aynı işi yapan bir programı derlemenin bile epey sürdüğü günümüzün karmaşık build sistemlerinden çok uzaktı.
    • Bugün bile Pascal hızlı derlenen bir dil olarak anılıyor. Go ve Rust tartışmalarında da sık sık bu şekilde gündeme geliyor.
      Birkaç yıl önce Windows PC’de, 512 MB RAM ile FPC’nin 2.0 serisi bir sürümünü derlediğimi hatırlıyorum; 5 dakika bile sürmemişti.
    • Halefi olan Delphi de hâlâ böyle. Bir milyondan biraz fazla satırlık gerçek bir proje hakkında bir yazı var; video da içeriyor ve yorumlarda Win64 derleme süresi de ele alınıyor.
      https://www.tmssoftware.com/site/blogold.asp?post=759
    • https://prog21.dadgum.com/47.html
  • Çocukken nazik bir bilgisayar dükkânı sahibi bana MS-DOS 1.25 çalıştıran yarı PC uyumlu bir makineyi iyi bir anlaşmayla satmıştı. Karşılığı aşağı yukarı yüz kez çim biçmek ve çocuk bakıcılığı yapmaktı.
    O dükkân sahibi, normal MS-DOS için olan Turbo Pascal’ı, yani PC BIOS varsaymayan sürümü 8 inç disketle satıyordu ve benim yarı uyumlu makinemin kullandığı 160 KB’lık 5.25 inç biçime aktarmıştı. Umarım o zaman da şimdi hissettiğim kadar minnettar olmuşumdur. Kariyerimi başlatan şey o oldu.

    • O zaman sorayım: Bahsettiğin yarı PC uyumlu tam olarak neydi?
  • 80’lerin başında Apple ][+ ve //e üzerinde Apple Pascal, yani UCSC p-system Pascal tabanlı ortamı kullandıktan sonra DOS’taki Turbo Pascal’a geçtim. Turbo Pascal gerçekten heyecan vericiydi. Çok hızlı derleyicisi, iyi geri bildirimi, renkli düzenleyicisi ve zaten alışık olduğum WordStar tuş atamaları sayesinde harika bir deneyimdi.
    Program yeterince büyüyüp overlay özelliğini kullanmak zorunda kaldığımı da hatırlıyorum. DOS’ta programın farklı bölümlerini fiilen sayfa gibi yüklemeyi sağlayan bir özellikti.
    80’lerde bir noktada, muhtemelen sonlarına doğru, Borland’ın harika elçilerinden David Intersimone ile tanıştığımı da hatırlıyorum. Üniversitemizin yerel ACM şubesinin davetiyle geldiğinde olmuştu.

  • Garip bir şekilde Turbo Pascal öğrendiğim ilk yüksek seviyeli programlama diliydi ve kullandığım ortam Macintosh Plus’tı. Ancak sonradan Turbo Pascal’ın daha çok PC tarafına ait bir şey olduğunu öğrendim.
    Üniversitedeyken öğrenci kredisiyle ilk Apple bilgisayarım olan Macintosh Plus’ı aldım ve tesadüfen üniversite gazetesinin ilanlar bölümünde Mac için Turbo Pascal’ın bir kopyasını gördüm. Bir profesör yaklaşık 40 dolara satıyordu, hemen aldım.
    Neyse ki kılavuzu vardı ama Macintosh geliştirme araçları son derece basitti. ResEdit yoktu; Macintosh kaynaklarını metin dosyalarıyla oluşturup sonra resource fork üretmesi için bir araçtan geçirmenizi isteyen garip bir R-Maker uygulaması vardı.
    İlk yaptığım birkaç uygulama, Scientific American’daki Computer Recreations köşesinde yer alan algoritmaların Turbo Pascal ile uygulanmış hâliydi. Neyse ki neredeyse hiç UI gerekmiyordu; genelde bir pencere ve birkaç düğme yeterli oluyordu.
    Daha sonra Mac’e çok daha odaklı bir IDE olan THINK Pascal’ı keşfedip ona geçtim; daha sonra da THINK C’ye atladım.
    Yine de Turbo Pascal bende hep sevgiyle hatırlanan bir anı olarak kalacak. Sert ve yeni bir dünyaya girdiğim o dönemde Turbo Pascal bana kapıyı açmıştı.