COBOL adalah salah satu bahasa pertama yang saya pelajari - jika Anda mengabaikan versi Basic yang tak terhitung jumlahnya, tiga atau empat bahasa assembler dan varian Forth, maka itu dalam lima bahasa pertama saya, dan belajar bersamaan dengan Pascal. TKI, saya menjawab dari pengalaman pribadi menggunakan bahasa.
EDIT Saya harus mengatakan pengalaman kuno . Saya tidak pernah menggunakan bahasa itu setelah akhir tahun 80-an, meskipun saya memang membeli buku baru (untuk menggantikan buku yang lama saya buang dengan jijik) sehingga saya memiliki sesuatu untuk dirujuk sehingga kisah-kisah horor saya tidak akan terlalu terdistorsi. Tapi saya tidak tahu bagaimana bahasa telah berkembang setidaknya dalam 20 tahun terakhir.
Jelas, bagi banyak orang, itu adalah hanya bahwa "tua buruk" pandangan bahwa jonsca telah dijelaskan - dan juga jauh lebih sepertiga tangan pass-me-down sikap hal. Tetapi ada masalah nyata yang mendasari hal itu.
Terlalu bertele-tele adalah masalah nyata - terlalu banyak kekacauan dalam memahami kode. Sejauh ini ini adalah masalah terbesar. Orang-orang yang melihat pernyataan MOVE
, ADD
dan MULTIPLY
lain - lain dengan ngeri memiliki pandangan yang sedikit berlebihan tentang hal ini, benar - COMPUTE
pernyataan itu lebih dekat dengan tugas dalam bahasa lain. Tetapi masih ada banyak kekacauan di semua divisi dan bagian itu. Salah satu hal pertama yang saya pelajari di COBOL adalah selalu memulai dengan menyalin halaman standar SKELETON.COB sepanjang A4.
COBOL memang memiliki beberapa fitur yang menarik, tetapi fitur-fitur itu (misalnya PIC
hal itu) cenderung menjadi hal-hal yang sekarang lebih merupakan bagian dari DBMS daripada bahasa pemrograman, dan yang menurut saya biasanya menjadi cara yang lebih baik untuk memisahkan tanggung jawab tersebut. Juga, beberapa perpustakaan dalam bahasa lain menggunakan sesuatu yang sebanding PIC
(misalnya printf dan scanf di perpustakaan standar C). Boleh dibilang, yang terbaik telah disimpan, tetapi yang terburuk turun.
Juga, untuk setiap fitur bagus, setidaknya ada satu fitur yang tidak dapat ditoleransi. Misalnya, tidak peduli seberapa sepele loop, Anda harus memindahkan tubuh ke prosedur terpisah. The PERFORM ... UNTIL ...
dan pernyataan serupa yang pernyataan tunggal - tidak struktur blok. Dalam arti, COBOL adalah rasa dari pemrograman terstruktur dari sebelum pemrograman terstruktur diciptakan - ada adalah sebuah GO TO
, tapi itu digunakan berkecil (setidaknya ketika saya menggunakan COBOL), tapi looping pada khususnya hanya tidak ditangani dengan baik.
Bahkan, bahasa yang saya gunakan setelah COBOL yang paling mengingatkan saya pada itu adalah ... dBase. Seperti pada Ashton-Tate dBase III +. Saat ini, orang lebih cenderung mengingat semua klon yang sekarang mati atau sekarat (Clipper, FoxPro dll) yang mengarah ke nama generik xBase - dan masih ada keturunan yang tinggal di xHarbour. Intinya adalah bahwa ini adalah bahasa basis data, tetapi tidak seperti SQL.
Bahkan kemudian, ketika setiap program COBOL yang beroperasi pada basis data tertentu perlu menyertakan salinan spesifikasi dari basis data tersebut (dan salinannya bisa berakhir tidak konsisten), itu tidak benar-benar terjadi di xBase di mana basis data mengetahui strukturnya sendiri.
Mempertimbangkan itu, COBOL tidak begitu mengerikan jika Anda menerimanya apa adanya. Tapi yang bukan adalah bahasa untuk menulis struktur data. Yang mungkin mengapa COBOL sangat menderita pada masa perang suci C vs Pascal - kedua belah pihak dapat setuju bahwa COBOL tidak baik untuk menciptakan kembali pohon biner lagi.
Oh - dan satu hal yang saya tidak akan pernah lupa adalah bagaimana buku teks COBOL pertama saya tidak menggambarkan SORT
perintah, mengatakan bahwa itu di luar ruang lingkup buku - tampaknya, baik penulis tidak dapat mengatasi gagasan menyortir, atau menganggap itu lebih dari pikiran kecil kecil siswa COBOL dapat mengatasi [lihat edit di akhir]. Hal semacam itu membuatnya sangat sulit untuk menganggap COBOL serius.
Aspek aneh dari hal ini adalah Pemrograman Terstruktur Jackson, yang saya juga dipaksa untuk belajar di sekitar waktu yang sama, dan khusus untuk digunakan dengan COBOL. Bagian dari ini adalah menggambar diagram struktur untuk input, kemudian diagram struktur untuk output, kemudian menggambar diagram struktur di antara kode. Penyortiran jelas diharapkan menjadi masalah yang sudah dipecahkan - Anda tidak bisa mendapatkan algoritme penyortiran dengan cara ini. Jadi aneh untuk diberitahu oleh buku teks yang direkomendasikan bahwa seluruh konsep penyortiran berada di luar pikiran kecil saya, sementara pada saat yang sama diajarkan sesuatu seperti selusin algoritma penyortiran yang berbeda dan bagaimana menerapkannya dalam Pascal.
Masalah-masalah yang dapat ditangani JSP mungkin adalah panduan yang baik untuk hal-hal yang dapat dilakukan COBOL dengan relatif baik. Tetapi meskipun begitu, itu tidak selalu berarti bahwa JSP atau COBOL adalah cara yang baik untuk menangani masalah tersebut.
EDIT pada 30 Juli 2014
Saya baru saja mendapat peningkatan reputasi dari ini, mengingatkan saya ada di sini. Seperti yang terjadi, karena beberapa koleksi buku kuno yang dipicu nostalgia, sekarang saya dapat memperbaiki titik WRT SORT
perintah.
Buku yang awalnya saya gunakan sebagai teks yang direkomendasikan ketika belajar COBOL adalah "Pemrograman Metodis dalam COBOL" oleh Ray Welland. Ini tidak mencakup COBOL 85 (meskipun ada edisi berikutnya "Pemrograman Metodis dalam COBOL-85" yang belum pernah saya lihat).
kindall berkomentar di bawah ini bahwa "Anda seharusnya mengurutkan file input sebelum membacanya, atau mengurutkan file output setelah membuatnya, menggunakan utilitas sortir yang menyertai OS". Dari jawaban saya untuk itu, saya merindukan titik "datang dengan OS". Kindall menyarankan sesuatu yang mirip dengan filosofi Unix AFAICT, dengan COBOL digunakan untuk bit yang baik untuknya, utilitas OS seperti utilitas sortir yang digunakan untuk beberapa hal lain, dan mungkin menggunakan bahasa batch / scripting / shell untuk merekatkan bit bersama-sama. Ini jauh lebih masuk akal di dunia kuno di mana perangkat lunak interaktif jarang ada, sehingga Anda akan mengirimkan kumpulan pekerjaan (karenanya "bahasa batch").
Berikut ini dikutip dari halaman 165-166 dari "Pemrograman Metodis dalam COBOL" ...
Penggunaan file serial yang diurutkan menyiratkan bahwa perlu memiliki alat untuk menyortir catatan dalam file ke dalam urutan tertentu dengan kunci. Sebagian besar sistem komputer yang lebih besar memiliki utilitas pengurutan yang akan mengurutkan file mengingat posisi, jenis, dan ukuran masing-masing data-item yang membentuk kunci.
Ada juga fasilitas untuk menyortir catatan dari dalam program COBOL tetapi ini di luar cakupan buku ini karena dua alasan:
(a) antarmuka ke sistem operasi seringkali cukup kompleks dan bervariasi dari satu sistem ke sistem lainnya,
(b) modul sortir merupakan bagian opsional dari ANS '74 COBOL dan mungkin tidak diimplementasikan dalam sistem COBOL untuk komputer yang lebih kecil.
Oleh karena itu akan diasumsikan bahwa ada fasilitas untuk menyortir file ke dalam urutan tertentu dan masalah memperbarui file tersebut akan dipertimbangkan.
Singkatnya, kebaikan itu benar - asumsinya adalah bahwa biasanya penyortiran akan dilakukan di luar COBOL. Bahkan mungkin ada justifikasi nyata untuk mengecualikan penyortiran dari bahasa pemrograman sekitar 1974 untuk komputer kecil.
Apa yang saya katakan di atas pada dasarnya adalah apa yang Anda dapatkan setelah sekitar 20 tahun tidak dapat memeriksa fakta karena membuang buku itu.
Saya tetap harus menunjukkan, bahwa saya secara formal mempelajari COBOL dari buku yang direkomendasikan ini yang mencakup standar 1974 (bukan standar 1985) pada tahun 1988 dan 1989. Edisi ketiga "COBOL untuk Siswa" (Parkin, Yorke, Barnes) - edisi pertama yang mencakup COBOL 85 - tidak diterbitkan sampai 1990. Saya tidak yakin, tapi saya pikir edisi COBOL 85 "Pemrograman Metodis" tidak diterbitkan sampai 1994.
Tapi itu tidak selalu mewakili dunia COBOL menyeret kakinya - yah, toh tidak terlalu banyak. Adopsi standar baru membutuhkan waktu untuk bahasa apa pun, bahkan sekarang.