Програмування з чого розпочати, або Незамінний бейсик
Наші проекти:
Програмування: з чого почати або Незамінний бейсик
Я завжди тепло згадую свою першу мову програмування. Як, думаю, багато хто з захоплених комп'ютерами в 80-х і ранніх 90-х, я вивчив його ще до того, як доторкнутися до клавіатури (тим більше — до клавіатури власного комп'ютера!), і не підручників, не спецкурсів: по роздруківкам програм у популярних журналах. Синтаксично простий, семантично схожий з англійською мовою, з суперкомпактним набором команд, що дозволяє писати відразу, з ходу, не замислюючись про ініціалізація тощо, він був ідеальним рішенням для тих, хто нічого не розуміє в програмуванні, але хоче розібратися. Мені навіть немає потреби називати його ім'я, ви й так його дізналися, бо варіант лише один. А те, що сталося днями, змусило замислитися: а чи правда повік його минув? Чи правда він був, але не залишається?
Подією, яка підштовхнула до міркувань про давно забутий предмет, став випуск компанією Google програми Coder. Просто кажучи, це інструмент для веб-програмістів-початківців, що працює в тому числі (і в першу чергу) на наддешевому Raspberry Pi. Десять хвилин на установку — і ось ви вже в середовищі, яке готове до створення повноцінних HTML5-проектів (класична зв'язка HTML+Javascript+CSS). Певною мірою це сучасна реалізація ідеї восьмибітних машин: дешевих, гранично простих, максимально відкритих для вивчення та девелопменту. Одна проблема, Javascript і CSS і навіть сучасний HTML (який зовсім не той, що був п'ятнадцять років тому!), ще потрібно освоїти. А вже тут роздруківками не обійдешся, знадобляться мінімум довідники, швидше за все, підручники, а добре ще й знаючої людини для відповідей на дурні питання! В результаті сучасномудванадцятирічному пацану, який вирішив розпочати навчання з Coder'a, потрібно докласти значно більше зусиль, ніж прикладали свого часу ми, починаючи з BASIC'а.

BASIC - творіння 1964 року, світанкових років комп'ютерної доби. Американці Джон Кемені і Томас Куртц написали його, щоб полегшити знайомство з обчислювальною технікою своїм студентам (у ті роки якраз почалося поширення терміналів, і доступ до ВТ перестав бути долею тільки атомників і ракетників), але мова швидко зажила самостійним життям. У 70-х, з початком ери персональних комп'ютерів, BASIC негайно став стандартом де-факто як основна мова програмування, і навіть більше того — оболонкою користувача, середовищем, з якої керували машинами. Невипадково і Гейтс з Алленом для «Альтаїра» і Возняк для Apple I насамперед писали саме BASIC!

Зуміти зрозуміти вирішальне значення «слабкості», визнати його зовсім не жарт. Ризикну стверджувати, що навіть Куртц та Кемені так до кінця і не зрозуміли головної фішки створеної ними мови. У середині 80-х вони спробували продавити ринку своє нове дітище, True BASIC, заснувавши під нього компанію. Як комерційний продукт він ще існує, але як заміна BASIC у безсоромно провалився, бо виявився складнішим.

Говорячи про BASIC як найкращу мову для початківців, я звичайно маю на увазі не виправлених до невпізнанності виродків на зразок Visual Basic або Openoffice.org BASIC, де від оригіналу залишилася майже одна лише назва, а той базовий, універсальний для всіх мінімум з двох десятків команд, на якому писали вже півстоліття тому. Сьогодні його так само легко відшукати на будь-якій платформі для будь-якої архітектури — так само просто, як і десять, і двадцять, і сорок років тому, застосувати для вирішення нескладнихзадач. Пам'ятається, зовсім недавно, коли дружина засумнівалася у справедливості парадоксу Монті Холла, я за п'ять хвилин накидав програму, яка демонструвала його практично. І використовував не улюблений C, не скриптові мови, а старовину BASIC — писати якою можна, не замислюючись про власне програмування.
Однак часи змінюються. Інтернет та Інтернет перекроїли персоналку. Комп'ютер сьогодні - це Мережа, а оригінальний бейсик про мережі нічого не знає. Так що ж, настав час замінити «кращу мову для новачків» новим, більш сучасним, більш пристосованим до техніки та технологій нового сторіччя? Давно пора, вважають багато хто — і пропонують навперебій варіанти, найчастіше зупиняючись на Python (який навіть називають «бейсиком XXI століття») та Javascript. Вони різні, але ріднить їхню порівняльну простоту і легкість у поводженні з інтернет-механізмами. І людина, яка розпочала свою комп'ютерну освіту з них, звичайно, зможе потім застосувати отримані знання для серйозних справ. Ось тільки є одна нестиковочка: вони і близько не такі прості, як BASIC!
Нехай він примітивний, нехай неспішний. Але він недосяжно простий — отже, вже у перші півгодини — та що там, у перші десять хвилин! — новачок, для якого комп'ютер досі був магічним артефактом, зможе щось зробити своїми руками. Чи зможе сам змусити машину зробити щось для нього! Ви пам'ятаєте вперше? Пам'ятаєте захоплення, яке зазнали, коли ваші перші бейсиківські рядки змусили комп'ютер підкоритися вашій волі? І хіба ви, починаючи, мали на меті навчитися конкретним технологіям? Ризикну припустити, ви починали програмувати навіть не для того, щоб зрозуміти, як працює машина, а просто щоб отримати задоволення від керування нею!
Ну а змусивши машину прокатити вас, засвоївши базові концепціїпрограмування (для чого BASIC так само гарний, як і будь-яка інша мова), можна зістрибнути будь-куди. Моє покоління йшло в машинні коди та асемблер (ось, до речі, продовження особисто моєї історії: «Мій перший стартап: Україна, 94-й»). Сьогодні, мабуть, розумним вибором буде Python або Javascript.
Але починати? Руки геть від святині! BASIC ще послужить.