На хвилі сьогоднішнього пошуку національної ідеї непогано згадати про те, що колись ми успішно конкурували в області IT-технологій з західними країнами. На жаль, дуже багато наших співвітчизників, можна сказати, з піною біля рота доводять, що ніколи не існувало мов програмування з командами російською мовою.
Наче ніколи не було в російській мові програмування таких команд, як «ЯКЩО», «ТО», «ІНАКШЕ» замість «IF», «THEN», «ELSE». Або, наприклад, замість «GO TO» начебто не було команди «ЙТИ НА», без третього слова, звичної для російського вуха ідіоми ...
Що цікаво, російські обчислювальні машини розуміли не тільки команду «ЙТИ», а й «іти», а також «ІЙТІ». Це не пов'язано з неписьменністю розробників, які створювали подібні мови програмування, а обумовлено тим, що транслятори і інтерпретатори російських мов програмування спрацьовували на першу букву команди, і вже було неважливо, які символи використовувалися далі.
Треба сказати, що розробники «російських» мов програмування зайшли набагато далі в розробці мов програмування, ніж їхні західні конкуренти.
Наприклад, існував мову програмування АНАЛІТИК, який працював на обчислювальних машинах СВІТ не тільки з чисельними, але і з аналітичними виразами. Як бачимо, назва «МИР» вдавалися для найменування космічної станції.
В усіх мовах програмування використовуються змінні величини, за допомогою яких, власне кажучи, і з'являється можливість програмувати. Однак абсолютно у всіх мовах програмування кожна змінна величина до моменту обробки виразу повинна мати конкретне значення (цифрове, текстове, логічне і т.п.).
Розробники аналітики зробили інакше. І це більше ніхто не зміг повторити, а саме. Вони встановили, що у відсутності значення змінної її значенням стає ім'я змінної!
Наприклад, якщо змінна B дорівнює 2, а значення змінної A не визначене, то у всіх мовах програмування вираз C = A + B автоматично призводить до помилки у виконанні програми. Але тільки не в аналітиків.
У цьому «російською» мовою програмування такий вислів надавало змінної C значення (A + 2). При цьому ніякої помилки не виникало. Програма продовжувала працювати з подібними аналітичними виразами.
Наприклад, вираз D = C + C надавало змінної D значення (2 * A + 4), так як:
якщо C = (A + 2), то D = C + C = (A + 2) + (A + 2) = (2 * A + 4).
Що цікаво, з подібними виразами можна було здійснювати і складніші операції. Наприклад, алгебраїчні вирази можна було приводити до однієї з 3-х форм:
- з розкриттям дужок,
- без розкриття дужок,
- з приведенням подібних членів.
Також були присутні команди мови програмування, які могли обчислювати первісну функції (команда «Інтегровані»), і визначати похідну функції (команда «ДИФЕРЕНЦІЮВАТИ»).
Скептики скажуть, що подібні аналітичні обчислення зараз не сильно затребувані завдяки бурхливому розвитку чисельних методів. Однак, по-перше, не будемо забувати, що це робилося в 1960-і - 1970-і роки, ще на зорі кібернетики. А, по-друге, створення трансляторів з подібних мов програмування як ніколи демонструвало істотну перевагу радянської кібернетичної школи програмування над західними конкурентами.
Не випадково до цих пір російські програмісти високо цінуються як в нашій країні, так і за кордоном, тому що вони продовжують бути носіями недоступних західним фахівцям підходів, набагато більш сміливих і креативних, часом порушують струнку картину стабільного непорушного миру західних стандартів програмування.
Звичайно, наша біда - дурні і дороги, які в питаннях кібернетики (і не тільки) походять від того, що ми не навчилися робити масові серійні продукти, легко продаються.
Один раз підкувати блоху - це не те ж саме, що масово серійно випускати багато однакових кібернетичних бліх. Це те, що ще нам належить навчитися робити в неминучою конкурентній боротьбі з Заходом.
Проте, той факт, що у нас були власні розробки мов програмування, на ті часи на порядок перевершують зарубіжні аналоги, до речі, на нашому власному «залізі», на нашій власній елементній базі, вселяє впевненість в тому, що ми ще побачимо кібернетичні системи виключно російського виробництва, які будуть бажаною здобиччю зарубіжних хакерів, оскільки вони будуть відрізнятися від західних систем, як небо відрізняється від землі.
Інші цікаві матеріали:
1. Топ-6 катастроф, що сталися «з вини» програмного забезпечення
2. Що таке змінна в програмуванні і чим вона відрізняється від константи
3. Платне і безкоштовне ПЗ: думки вголос
Автор: Юрій Воробйов