Тайната на успеха се крие в комбинацията Езиците на високо ниво не са панацея
"Вместо програмиране на приложения с помощта на традиционни езици за програмиране като Cobol. Fortran, PL/1 и Pascal, трябва да се осъществи по-високо ниво на автоматизация. Работата на програмиста трябва да бъде автоматизирана." Джеймс Мартин пише в книгата си "Манифест на информационните технологии".

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