logo
Вступ до спец

3. Розквіт та хаос програмного забезпечення

Розквіт програмного забезпечення припадає на 70-і роки, але для поборників якості програмного забезпечення вони виявилися далеко не кращими. Проблеми 60-х років – складніші завдання і менш кваліфіковані програмісти – в 70-х роках тільки посилилися. З іншого боку, недоступна та трудомістка компіляція пішла у минуле. Поява ПК змінила правила гри, знявши обмеження, які змушували досягати високої якості програм у 60-і роки.

Настільні обчислення перетворили комп’ютер на інструментарій, дійсно доступний для всіх, а не тільки для математиків, університетських вчених та військових. Нікому більше не доводилося годинами, днями та тижнями чекати, поки буде надана можливість скористатися компілятором, оскільки вбудований компілятор мав кожен ПК. Компілятор можна було запустити у будь-який час, коли програміст хотів швидко перевірити синтаксис. Навіщо, сидячи за столом, ретельно аналізувати кожен рядок, коли можна запустити компілятор – хай перевіряє він?

Можливо подібну «лінь» програмістів стимулював той факт, що змінився і вид завдань, для яких створювалося програмне забезпечення. Програмісти, в основному, більше не займалися кодуванням математичних алгоритмів. Вони створювали системи, які дозволяли працювати швидше і ефективніше. Вони писали програми, про які раніше не доводилося і мріяти.

У 60-х роках компетентні розробники самі виконували весь аналіз та тестування. Але у 70-х, коли почався бум у створенні автоматизованих рішень для нових завдань (і в додаванні нових можливостей до існуючих систем), з’явився великий попит на програмістів. Тому кожен, хто хоч щось знав про програми, почав займатися програмуванням, і в цьому ажіотажі про тестування просто забули.

Звичайно, організації, що займалися розробкою програмного забезпечення, не хотіли зовсім відмовлятися від тестування, але багато хто з них віддав його на відкуп нефахівцям, по суті перетворивши на тестувальників підсобний персонал. Зараз тестувальники, як і раніше, вимушені миритися з непрестижністю своєї роботи, коріння якої занурюється у ті роки.

Код, що був написаний у 70-х роках – найгірше, що є у сучасному програмуванні. Для нього навіть існує спеціальна назва: «успадкований код». Він лякає, він заплутаний, і з ним дуже складно працювати. Більшість фахівців прагнуть усіма можливими засобами уникнути необхідності його підтримувати. Врешті-решт, чужий код іноді зрозуміти дуже складно, і одна помилка, яка зроблена у модифікованому коді, може породити непередбачувані побічні ефекти, незалежно від того, наскільки ретельно цей код протестований.

Нарешті, ще одним важливим нововведенням 70–х років стали метрики – показники, що, як передбачалося, повинні характеризувати «якість» коду, але часто їх інтерпретували дуже суб’єктивно. Десятиліття хаосу виявилося не самим кращим часом для введення метрик. Ця теорія будується на кількісних аспектах початкових текстів – кількості циклів, розгалужень, умовних виразів, кількості перфорядків тощо. Замість того, щоб намагатися визначити, чи є дане програмне забезпечення функціонально коректним, розробники могли просто підрахувати кількість елементів у коді, щоб встановити його складність.

У 70-х роках це було цікаве заняття, і, можливо, давало багатьом розробникам відчуття задоволеності своїм кодом. Проте на даний час використання метрик залишається виключенням з правил. Більшість розробників ігнорують параметри, розуміючи, що хороші програмісти можуть створити дуже хороший код, у якого окремі метрики опиняться далеко не кращими, а погані програмісти можуть написати поганий код, який за своїми метриками буде просто блискучим. Отже, на жаль, «репутація» метрик була зіпсована, оскільки спочатку вони не відображали дійсність. Хороші, сучасні метрики функціональної коректності і зараз не користуються довірою через асоціації з метриками складності коду, які були запропоновані у 70–х роках минулого століття.

В цілому про це десятиліття розвитку програмного забезпечення можна сказати, що воно було орієнтоване на код, а не на якість. До кінця 70-х років стало зрозуміло, що зміни в галузі просто необхідні. І перші книги з тестування програмного забезпечення (Glenford Myers, The Art of Software Testing, Wiley, 1979; Р. Майерс, Надійність програмного забезпечення. М. “Мир”, 1980) з’явилися у кінці цього десятиліття. Це була вірна ознака того, що насуваються зміни.

У 1975 р. січневий номер журналу Popular Electronics розбурхав ентузіастів комп’ютерної техніки. У цьому номері була опублікована стаття, в якій був описаний перший у світі набір для зборки міні-комп’ютера, що був здатний конкурувати з комерційними моделями, – “Альтаїр-8800”. У наступні дні сотні чеків, кожен на суму 397 дол. (сьогодні це близько 1,5 тисяч доларів), прийшли на адресу компанії Micro Instrumentation and Telemetry System, яка розташована у м. Альбукерк, шт. Нью-Мексіко. “Альтаїр” побудували офіцер ВПС США з дипломом інженера-електронщика Едвард Робертс та Джим Байбі на основі мікропроцесора “Intel-8080”, поклавши початок цілій галузі – роздрібній торгівлі комп’ютерами для приватних та юридичних осіб. Мікропроцесор “Intel-8080” – перший 8-розрядний мікропроцесор, на якому було розміщено декілька інтегральних мікросхем на одному кремнієвому кристалі, створив у 1970 р. співробітник компанії Intel Едвард Хофф. Це революційний винахід кардинально перевернув уявлення про комп’ютери як про громіздких, ваговитих монстрів.

Перший ПК Altair-8800 фирми MITS Едвард Робертс

Ім’я “Альтаїр” вигадала дочка редактора журналу Popular Electronics Леслі Соломона, на честь зірки з улюбленого нею фільму “Зоряний похід”. Треба віддати цим хлопцям належне, вони старалися щосили, майже одразу відкривши для себе і попутно для всієї земної кулі раніше нерозвідану маркетингову нішу. Вони здогадалися пропонувати своїм покупцям не тільки готові комп’ютери, але й комплектуючі до них, заклавши базові основи сучасних принципів торгівлі ПК. Напевно, саме в їх офісі вперше прозвучало так добре знайоме всім нам слово «апгрейд» (upgrade – «модернізація»).

"Батько персонального комп’ютера" Генрі Едвард Робертс, винахід якого поклав початок створенню Біллом Гейтсом та Полом Алленом компанії Micro-Soft (тоді вона писалася саме так), помер у віці 68 років у лікарні від запалення легень 1 квітня 2010 р. (life.pravda.com.ua/private/). Один із засновників компанії Apple Стів Возняк заявив, що Робертс "зробив найважливіший крок, що привів нас до всього, що ми маємо зараз".

Перші "Альтаір-8800" керувались за допомогою вимикачів і не мали екрану. Проте зборка комп’ютера з комплектуючих, не дивлячись на його вельми обмежені можливості, була не простою справою. Навіть зібравши машину, її власник міг розраховувати тільки на власні сили, оскільки “Альтаїр” випускався без програмного забезпечення, і купити його було ніде. Програма для “Альтаїр” повинна була задовольняти двом вимогам. По-перше, бути досить короткою, оскільки об’єм оперативної пам’яті складав всього 256 байт. По-друге, склавши коротку двійкову програму, користувач міг ввести її в комп’ютер, маніпулюючи перемикачами.

Серед любителів, що не побоялися “викинути гроші” заради сумнівного задоволення, було немало тих, хто через десятиліття, опинився в рядах революціонерів комп’ютерної індустрії. Джон Бекус(один з творців Фортрану), говорив, що програміст повинен був стати майстерним винахідником, щоб пристосувати своє завдання до особливостей комп’ютера. Потрібно було зуміти розмістити програму та дані у мізерному об’ємі пам’яті і подолати труднощі, що були пов’язані з організацією введення та виведення інформації.

Для нового покоління програмістів, більшість яких складали студенти, нарешті можна було дістатися до комп’ютера та реалізувати свої можливості в області застосування комп’ютерів. Ці “комп’ютерні наркомани” не могли миритися з обмеженими можливостями системи пакетної обробки, тому вони шукали способи, які дозволили б їм дістатися до комп’ютера. Іноді студенти-любителі замовляли машинний час під ім’ям кого-небудь, хто мав доступ до комп’ютера, а то і таємно проникали в порожній машинний зал вночі.