COBOL öğrendiğim ilk dillerden biriydi - Basic'in sayısız versiyonunu, üç veya dört assembler dilini ve bir Forth değişkenini görmezden gelirseniz, o zaman ilk beşimdeydi ve Pascal ile aynı anda öğrendi. Şimdi, dili kullanarak kişisel deneyimlerime cevap veriyorum.
EDIT Ben eski deneyim söylemeliyim . 80'lerin sonundan sonra dili hiç kullanmamıştım, ancak yeni bir kitap aldım (eski olanı değiştirmek için tiksindirmeden attığım için), böylece korku hikayelerimin çarpıtılmaması için bir şeyler yazdım. Ancak dilin en azından son 20 yılda nasıl geliştiği hakkında hiçbir fikrim yok.
Açıkçası, pek çok insan için, bu ise ve aynı zamanda çok daha üçüncü el pass-me-down tutumları şey - "eski kötü" Sadece o jonsca zaten tarif etmiştir görüntülemek. Ancak bunun altında yatan gerçek sorunlar var.
Çok endişelenmek gerçek bir sorundur - kodu anlamada çok fazla karışıklık var. Bu şimdiye kadar en büyük konudur. Bakmak İnsanlar MOVE
, ADD
ve MULTIPLY
dehşet içinde vb ifadeler, gerçek bunun biraz abartılı görünüme sahip - COMPUTE
deyim diğer dillerdeki atamaları yakındır. Ancak tüm bu bölümlerde ve bölümlerde hala çok fazla karışıklık var. COBOL'de öğrendiğim ilk şeylerden biri, her zaman standart bir A4 uzunluğunda SKELETON.COB sayfası kopyalayarak başlamaktı.
COBOL yapar bazı ilginç özelliklere sahip, ancak bu özellikler (örneğin PIC
şey) DBMS ziyade programlama dili artık daha parçası olan şeyleri olma eğilimindedir ve bu bana göre genellikle bu sorumlulukları ayırmak için daha iyi bir yol olabilir. Ayrıca, diğer dillerdeki bazı kütüphaneler karşılaştırılabilir bir şey kullanır PIC
(örn. C standart kütüphanesinde printf ve scanf). Muhtemelen, en iyisi tutuldu, ama en kötüsü düştü.
Ayrıca, her hoş özellik için en az bir dayanılmazlık vardı. Örneğin, bir döngü ne kadar önemsiz olursa olsun, vücudu ayrı bir prosedüre taşımalısınız. PERFORM ... UNTIL ...
Ve benzeri ifadeler vardır tek ifadeleri - yapılarını engellemez. Orada - Bir anlamda, COBOL önce yapısal programlamadan yapısal programlama bir tat icat oldu oldu bir GO TO
, ama kullanım (ı COBOL kullanıldığında en azından), ancak özellikle döngü sadece iyi işlenmedi cesaretini var.
Aslında, COBOL'den sonra bana en çok hatırlattığım dil ... dBase idi. Ashton-Tate dBase III + 'te olduğu gibi. Bu günlerde, insanlar xBase jenerik ismine yol açan ölü ya da ölmekte olan klonların (Clipper, FoxPro vb.) Hatırlanması daha muhtemeldir - ve hala xHarbour'da yaşayan bir soyundan var. Mesele şu ki, bunlar veritabanı dilleriydi, fakat SQL gibisi yoktu.
O zaman bile, belirli bir veritabanında çalışan her COBOL programının, o veritabanının özelliklerinin bir kopyasını içermesi gerekir (ve kopyalar tutarsız olabilir), bu aslında veritabanının kendi yapısını bildiği xBase'deki durum değildir.
Bunu dikkate alarak, eğer öyleyse kabul ederseniz, COBOL o kadar da kötü değildir. Ancak , veri yapıları yazmak için bir dil değildir Bu yüzden COBOL, C ve Pascal kutsal savaşları sırasında çok fazla acı çekti - her iki taraf da COBOL'un ikili ağacı yeniden icat etmenin iyi olmadığı konusunda hemfikir olabilirdi.
Oh - ve asla unutamayacağım bir şey, ilk COBOL ders SORT
kitabımın komutu tanımlamadığını , kitabın kapsamı dışında olduğunu söylemesidir - görünüşe göre, yazar, sıralama fikriyle başa çıkamıyordu ya da COBOL öğrencilerinin başa çıkabildikleri minik küçük zihinlerden daha fazlası olduğu düşünülüyordu . Bu tür bir şey COBOL'u ciddiye almayı çok zorlaştırdı.
Bunun garip bir yanı da, aynı zamanda yaklaşık olarak öğrenmeye zorlandığım ve özellikle COBOL ile kullanım için zorlandığım Jackson Structured Programming idi. Bunun bir kısmı giriş için bir yapı şeması, daha sonra çıktı için bir yapı şeması, ardından kod için yapı-içi şema çiziyordu. Sıralamada zaten çözülmüş bir problem olması açıkça bekleniyordu - bu şekilde bir sıralama algoritması elde edemezdiniz. Bu yüzden, önerilen kitap tarafından, bütün tasnif etme kavramının benim küçük minik aklımın ötesinde olduğu ve aynı zamanda bir düzine farklı sıralama algoritması gibi bir şey öğretildiği ve bunları Pascal'da nasıl uygulayacağı anlatılması garipti.
JSP'nin kaldırabileceği problemler muhtemelen COBOL'un nispeten iyi yapabileceği şeyler için iyi bir rehberdir. Ancak o zaman bile, bu mutlaka ya JSP'nin ya da COBOL'un bu sorunları çözmenin iyi yolları olduğu anlamına gelmez.
30 Temmuz 2014 tarihinde EDIT
Daha yeni bir ün kazandım, bana burada olduğunu hatırlatıyor. Olduğu gibi, bazı nostalji destekli antik kitap koleksiyonculuğu nedeniyle, artık WRT SORT
komutunun bir noktasını düzeltirim .
Başlangıçta COBOL öğrenirken önerilen metin olarak kullandığım kitap Ray Welland tarafından "COBOL'de Metodik Programlama" idi. Bu COBOL 85'i kapsamıyor (daha önce hiç görmediğim "COBOL-85'te Metodik Programlama" adlı bir sonraki sürüm olmasına rağmen).
Aşağıda, "OS ile birlikte gelen sıralama yardımcı programını kullanarak giriş dosyalarını okumadan önce sıralamanız ya da oluşturduktan sonra çıktı dosyasını sıralamanız gerekiyordu" şeklinde yorumlar. Buna cevabımdan "OS ile geldi" noktasını özledim. Kindall, Unix felsefesi AFAICT'e benzer bir şey önerdi, COBOL, bunun için iyi olan bitler için kullanıldı, diğer şeyler için kullanılan bir sıralama aracı gibi işletim sistemi programları ve muhtemelen bitleri yapıştırmak için bir toplu iş / komut dosyası / kabuk dili kullanıyordu. Bu, etkileşimli yazılımın var olmayanlara nadir olduğu eski bir dünyada çok daha mantıklıdır, bu yüzden yine de bir sürü iş (dolayısıyla "toplu iş dili") gönderecektiniz.
Aşağıdaki "COBOL'de Metodik Programlama" nın 165-166. Sayfalarından alıntılanmıştır.
Sıralanmış seri dosyaların kullanılması, bir dosya içindeki kayıtları anahtarla belirtilen bir sıraya göre sıralamanın gerekli olduğu anlamına gelir. Daha büyük bilgisayar sistemlerinin çoğunda, anahtarı oluşturan her veri öğesinin konumu, türü ve boyutu verilen bir dosyayı sıralayan bir sıralama yardımcı programı bulunur.
Bir COBOL programındaki kayıtları sıralamak için bir tesis de bulunmaktadır, ancak bu iki nedenden dolayı bu kitabın kapsamı dışındadır:
(a) işletim sistemine olan arayüz genellikle oldukça karmaşıktır ve sistemden sisteme değişir,
(b) sıralama modülü, ANS '74 COBOL'un isteğe bağlı bir parçasıdır ve daha küçük bilgisayarlar için COBOL sistemlerinde uygulanamayabilir.
Bu nedenle, dosyaları belirli bir sıraya göre sıralamak için imkanların mevcut olduğu ve bu dosyaların güncellenmesi probleminin dikkate alınacağı varsayılacaktır.
Kısacası, tür doğru - varsayımlar genellikle COBOL dışında yapılacaktır. Küçük bilgisayarlar için 1974 yılındaki bir programlama dilden ayırmanın hariç tutulmasının gerçek bir gerekçesi bile olabilirdi.
Yukarıda söylediklerim temel olarak, kitabı atmadan dolayı gerçekleri kontrol edememekten yaklaşık 20 yıl sonra elde ettiğiniz şeydi.
Yine de 1988’de ve 1989’da 1974 standardını (1985 standardını değil) kapsayan bu önerilen kitaptan COBOL’ü resmen okuduğumu belirtmeliyim. “Öğrenciler İçin COBOL’nin üçüncü baskısı (Parkin, Yorke, Barnes) - COBOL 85'i kapsayan ilk baskı 1990'a kadar yayınlanmadı. Emin değilim, ancak "Metodik Programlama" nın COBOL 85 baskısının 1994'e kadar yayınlanmadığını düşünüyorum.
Fakat bu mutlaka ayağını sürükleyen COBOL dünyasını temsil etmiyor - pek de değil. Yeni standartların benimsenmesi, şimdi bile her dil için zaman alır.