<
  • Главная
Статьи

Олег Калашников: "На Ассемблері писати дуже цікаво"

В "Комп'ютерних вістях" часто з'являються інтерв'ю з відомими програмістами, творцями цікавих інтернет-проектів, авторами комп'ютерної літератури. Олег Калашников об'єднує в собі цих трьох персонажів. Він програмує і володіє власною хостингової компанією, є творцем порталу RusFAQ.ru , А за його підручниками тисячі осіб вивчають Асемблер.


Про себе

Мені 31 рік, одружений, синові 7 років, народився в Мінську, живу в Москві. За останні 10 років спробував себе в різних областях: системне адміністрування, програмування, юриспруденція, продаж товарів, верстка і нарізка сайтів, веб-програмування, доводилося працювати супервайзером тоталізатора, а також обіймати посаду перекладача англійської та німецької мов. На даний момент є власником хостингової компанії "Московський хостер" і порталу RusFAQ.ru.


Як у Вас виникла ідея проекту RusFAQ.ru?

Ідея створення подібного порталу народилася трохи пізніше відкриття розсилки "Асемблер? Це просто! Вчимося програмувати ". Після декількох випусків мені на пошту стали приходити питання від передплатників. Багато з цих питань дублювалися. Я вирішив створити сайт, на якому викласти часто задаються по Асемблеру. В результаті вийшла якась елементарна система питань і відповідей: відвідувач задавав питання не безпосередньо на мою електронну адресу, а через спеціальну форму на сайті. Далі це питання з моєю відповіддю йшов в спеціалізовану FAQ-розсилку, яка вважалася додатком до основної розсилці. згодом відповідати на питання стали інші відвідав ки і читачі розсилки по Асемблеру. Приблизно через 6 місяців відвідувачів стало набагато більше, і я вирішив спробувати відкрити подібні FAQ-розсилки по інших напрямках: Delphi, Pascal, C ++, бази даних і т.д.

І ось уже до 2003 року на порталі було близько 50 різних розсилок. Далі проект почав розвиватися набагато інтенсивніше ...

Які технології в даний час Ви використовуєте для розвитку існуючих проектів? Які з них, на Вашу думку, найбільш вдалі?

Технології в даному випадку можна розділити на дві категорії: програмні засоби і технології роботи в команді.

Що стосується програм і мов програмування, то ми використовуємо в роботі мови програмування Perl, PHP, JavaScript; операційні системи Windows і FreeBSD.

Працюючи командою, ми, перш за все, виходимо з того, що кожна людина індивідуальна і сильний у своїй області. Єдине ціле більше суми його частин. Іншими словами, разом ми сила!

Також ми не ділимо технології на вдалі або невдалі. Правильніше було б сказати - ефективні і неефективні для виконання певного завдання. Кожна технологія має свої сильні і слабкі сторони. Наприклад, невеликі сайти краще писати на PHP , В той час як складні проекти - на Perl. Далі ми виходимо з здібностей членів нашої команди. Якщо наш програміст знає добре Perl, а PHP посередньо, то йому немає сенсу писати навіть маленький сайт на PHP, тому що в цьому випадку на Perl він буде написаний швидше.

Чи не плануєте найближчим часом почати нові проекти в дусі Web 2.0? Як взагалі ставитеся до буму Web 2.0 та соціальних мереж?

Будь-яка нова я завжди сприймаю з ентузіазмом. Світ розвивається, кількість інформації зростає щодня, користувачів Інтернету в усьому світі стає все більше. Перед людством вже постає завдання не просто "набити Інтернет інформацією", а групувати цю інформацію для більш швидкого пошуку. Я також бачу тенденцію зробити "все в одному". Наприклад, згадайте, яким був "Яндекс" в 2001 році, і подивіться, який він зараз. Це вже не банальна пошукова машина, а цілий комплекс послуг, який включає в себе величезну кількість додаткових сервісів: карти, словники, інтернет-магазини, блоги, новинні стрічки, кіноафіші, ТВ-програми, курси валют і т.д. Те ж саме можна сказати про mail.ru, google.ru та про інших популярних порталах. Тобто я бачу тенденцію створення гіперпорталов, як свого часу звичайні магазини доростали до супермаркетів. Це цілком природний процес, який буде постійно розвиватися в геометричній прогресії. Не встигнемо й оком моргнути, як з'явиться Web 3.0, 4.0 і т.д. Може, вони будуть називатися по-іншому, але суті це не міняє. Структура зберігання інформації буде інша, пошук і доступ до неї також може кардинально відрізнятися від сьогоднішнього.

Тому назвати бумом Web 2.0 я можу лише з великою натяжкою, тому що розвиток - це цілком природний процес. Адже, відповідно до закону Мура, кількість інформації в усьому світі подвоюється кожні 1,5 року. Сьогодні Web 2.0 успішно справляється з поточними обсягами, а завтра з'явиться більш досконала версія ...

Якби Вас попросили назвати найкращий проект Рунета, який би Ви назвали?

Yandex.ru, Google.ru, Mail.ru, Rutube.ru, RBC.ru, а також багато інших, які орієнтовані насамперед на відвідувача, які прагнуть зробити Рунет краще ...

А тепер давайте перейдемо до Ваших книг. Почнемо, напевно, здалеку: розкажіть, будь ласка, як Ви прийшли до програмування на Асемблері?

Повернемося трохи назад.

1989 рік. "Спектрум". Ігри. Бейсік. CP / M.

1992 рік. ЄС-1840/1849. MS-DOS 3.30. Комп'ютерні центри. Ігри на п'ятидюймових дискетах. Відсутність літератури. Norton Commander з "самопальної" русифікацією.

1995 рік. IBM PC / AT 386/486. Windows 3.11 / 95. Інтернет по модемів.

Думаю, що багато людей, яким зараз від 27 до 35 років, прекрасно пам'ятають ці часи. Кожен по-своєму витрачав десятки і сотні годин перед монітором: хтось грав в Wolf3D, хтось вчився справлятися з операційними системами, хтось освоював мови програмування.

У той далекий час мені на очі потрапляє книга Р. Джордейн "Довідник програміста IBM PC / XT / AT", яка змінює моє ставлення до багатьох речей, в тому числі і до комп'ютерів. Маючи невеликі знання в області програмування на Асемблері для "Спектрум", ідея писати програми на цій мові для "серйозних машин" мене захопила цілком. Оскільки мнемоніка мови - це скорочення англійських слів, я паралельно читав багато "самовчителів англійської мови". Я захотів створити щось своє, що стоїть. Тоді не було Інтернету, не було стільки інформації, скільки зараз. Джордейн був моїм єдиним вчителем.

На Ассемблері писати дуже цікаво. Програміст як би проникає всередину процесора і безпосередньо керує його діями, віддає прямі команди. Це і є найнижчий рівень програмування. У ньому є щось захоплююче. Уявіть, що ви можете змінювати хід роботи практично будь-яких програм. Тобто, наприклад, "змусити" Norton Commander не копіювати файли, а просто видаляти їх. А замість видалення файлу - замінювати в ньому всі букви "о" на "а". Створюється відчуття деякої влади над роботою машини. Тобто саме те, що не здатні зрозуміти програмісти, які пишуть на мовах високого рівня: Бейсік, Паскаль і т.п.

Асемблер цікавий не тільки цим. Всі програми, написані на мовах високого рівня, переводяться в машинний код. Дороги назад немає і бути не може. Але весь інтерес в тому, що машинний код легко "на льоту" перекладається в Асемблер. Це дає можливість вносити зміни безпосередньо в скомпільовані файли типу exe. Саме таким чином раніше зламувалися програми.

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

Як тільки я зіткнувся з Ассемблером і зрозумів всю його міць, я почав експериментувати, читати додаткову літературу, яка в ті часи стала потихеньку з'являтися на прилавках ...

Щоб коротко відповісти на питання про те, як я прийшов до програмування на Асемблері, досить назвати ту найпершу книгу Роберта Джордейн, з якої все й почалося ... Але це не вважалося б повним відповіддю, якби я попередньо НЕ постарався передати атмосферу тих років, коли я почав свій шлях в пізнання Ассемблера ...

Скажіть, а чи важко було писати книгу по Асемблеру, і як взагалі з'явилася її ідея?

Після того, як я усвідомив можливості Ассемблера, спробував його на практиці, отримав досвід роботи з ним, я захотів поділитися цим з іншими людьми. У 2000 році я почав випускати безкоштовну масову розсилку "Асемблер? Це просто! Вчимося програмувати ". На неї було підписано близько 18000 чоловік. Такого інтересу з боку передплатників я, звичайно ж, не очікував і був дуже радий тому, що люди готові приймати інформацію, вони вчаться чомусь новому, починають щось робити, і у них виходить!

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

32 випуск став останнім, який завершував цикл публікацій можливостей Ассемблера. Після цього всі розсилки були істотно перероблені, додалося багато нового матеріалу, включаючи додатки до книги, на компакт-диск були записані вихідні коди кожної програми, яка розглядалася в цьому курсі, а саме: файлова оболонка типу "Norton Commander", вірус, антивірус, резидентні програми тощо. Так і вийшла в світ книга з однойменною назвою розсилки.

Чи легко було писати цю книгу? З огляду на, що розсилки я став випускати в 2000 році, а книга вийшла в 2005, то на все це пішло 5 років. Зрозуміло, всі п'ять років я не сидів день і ніч перед монітором. Але, в цілому, на написання книги у мене пішов рік безперервної роботи.

Чи плануєте ще книги, і якщо так, то які?

Це буде інший напрямок, робота багатьох людей одночасно. Матеріал буде заснований на питаннях і відповідях порталу RusFAQ.ru. Але зараз рано говорити про це, тому що матеріал тільки готується ...

Раз книги по Асемблеру затребувані, значить, затребуваний і сама мова. А яка, як Вам здається, зараз позиція Ассемблера на ринку засобів програмування?

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

А програмісти на Асемблері зараз затребувані?

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

Дякую за цікаве інтерв'ю!

Інтерв'ю провів Вадим СТАНКЕВИЧ

Ru?
Ідея створення подібного порталу народилася трохи пізніше відкриття розсилки "Асемблер?
Які технології в даний час Ви використовуєте для розвитку існуючих проектів?
Які з них, на Вашу думку, найбільш вдалі?
А соціальних мереж?
Якби Вас попросили назвати найкращий проект Рунета, який би Ви назвали?
Почнемо, напевно, здалеку: розкажіть, будь ласка, як Ви прийшли до програмування на Асемблері?
Скажіть, а чи важко було писати книгу по Асемблеру, і як взагалі з'явилася її ідея?
У 2000 році я почав випускати безкоштовну масову розсилку "Асемблер?
Чи легко було писати цю книгу?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью