Секрет успіху полягає в суміші Мови високого рівня не є панацеєю
"Замість програмування додатків з використанням традиційних мов програмування, таких як Cobol. Fortran, PL/1 і Pascal, повинен мати місце вищий рівень автоматизації. Робота програміста повинна бути автоматизованою", - написав Джеймс Мартін у своїй книзі "Маніфест інформаційних технологій".

Ніхто не сумнівається, що часи традиційних програмістів - асемблера, кодерів PL/1 або Cobol - відлічені. Ці мови просто непридатні для більшості комерційних програм. Семантичний рівень занадто глибокий, зусилля для тестування та обслуговування занадто високі. Але не сказано, що ці мови повинні вимерти. Вони все ще використовуються для виконання спеціальних завдань і самостійно розробляють інструменти. Крім того, стандартизовані мови, такі як Fortran, Cobol та Pascal, слугуватимуть мовами перекладу для генераторів.
Незважаючи на те, що визнання того, що побудова комерційних додатків на мові третього покоління вже не виправдане, далеко не можна сказати, що єдиною альтернативою має бути мова 4-го покоління. Ці мови мають свої обмеження, особливо коли мова йде про портативність систем. Іншим обмеженням є той факт, що вони підходять лише для окремих типів програм, зокрема для діалогів людина-машина та звітування. Вони непридатні для складних автоматизованих процесів через відсутність модульності та структури. Отже, є чотири причини, чому мови 4-го покоління не є панацеєю:
- Вони не є універсальними.
- Вони не стандартизовані.
- Вони не модулюються.
- Вони погано структуровані.
Але що залишається користувачеві з огляду на ці обмеження 4-го покоління та відомі недоліки 3-го покоління?
Відповідь полягає в тому, щоб розділити обчислювальні програми на два класи. Одна група включає диспозитивні завдання, деякі з яких програмуються самими кінцевими користувачами - такі завдання, як запити, прості зміни та створення звітів. Тут мови 4-го покоління вступають у свої права. Також метою кожної компанії має бути делегувати ці завдання спеціалізованим підрозділам та координувати їх через "інформаційний центр".
Інший клас включає оперативні завдання, розроблені професійними інженерами програмного забезпечення, - такі завдання, як заробітна плата, складування, управління замовленнями та контроль виробництва. Тут у користувача є три альтернативи:
- Він може придбати стандартну програмну систему.
- Він може розробити систему сам.
- Він може купувати та адаптувати стандартне програмне забезпечення.
Стандартизована мова як вихід
У випадку власної розробки він розробляє додаток мовою специфікації та генерує з нього програми. У разі коригування користувач документує та повторно вказує стандартне програмне забезпечення та генерує нові модулі.
Основним інструментом операційних систем є мова специфікації. Звичайні мови програмування формують лише стандартизований інтерфейс машини. Перевагами мов специфікації є недоліки мов 4-го покоління. Вони загальні, модульні та структуровані. Лише вимога стандартизації залишається незадоволеною. Тому доцільно створити стандартизовану мову 3-го покоління з мов специфікації.
Потім отримані програми також можна перевірити та перевірити за допомогою відповідних інструментів тестування. Формальна специфікація та перевірка занадто трудомісткі для простих, нетривалих програм. Метою тут є використання простих у користуванні інструментів, якими можуть керувати любителі, тобто мови 4-го покоління.
Для складних довготривалих програм мови 4-го покоління є недостатніми. Тут важливо використовувати мови формальних специфікацій, генератори коду та інструменти тестування, якими керують професіонали.
Звідси випливає, що панацеї для обчислень немає. Швидше рішення полягає в поєднанні
- Діалог мов з генераторами звітів,
- Мови специфікації з генераторами коду та тестовими інструментами
Ні в якому разі ми не повинні продовжувати розвиватися як раніше. Цей тип програмування є не тільки дорогим, він також призводить до програм, які не можна ні перевірити, ні підтримати. Сьогодні програмні технології пропонують достатньо альтернатив. Користувач повинен вибрати відповідну альтернативу конкретній проблемі. На жаль, ніхто не зможе зробити це за вас.