All Programming is Web Programming
Серпень 20th, 2009
Переклад статті з Coding Horror. Взагалі-то стаття непогано себе почуває на розробці, але, про всяк випадок, нехай ще й тут лежить.
Michael Braude пише про популярність веб-програмування
Більшість людей йдуть у веб-програмування просто тому, що у них замало мозку, щоб займатися чимось іншим. Вони не розуміють компілятори, проблеми гонок, 3D чи наслідування. До них не доходить, чому треба використовувати абстрактні класси чи інтерфейси. Ще вони не можуть осягнути: віртуальні методи, вказівники, посилання, сбір мусору, завершуючий код, передачу параметрів за посиланням та за значенням, віртуальні деструктори C++, або відмінності між класами та структурами у C#. Крім того, їм нічого не відомо про сам процес. Waterfall? Spiral? Agile? Забудьте ці страшні слова. Вони ніколи не писали технічні вимоги, вимоги до дизайну, навіть ніколи не намалювали жодної UML діаграми, не кажучи вже про діаграми послідовності. Все, що їм відомо, це як зібрати докупи ASP.NET сторінки, надіслати сяк-так зроблений SQL запит до БД, заповнити його даними та згенерувати відображення для таблиці. Це максимум, на що вони здатні. І, скоріш за все, більшому вони так і не навчаться.
Тому, вибачте за прямоту, але я не маю жодного бажання іти у “веб”. На це є дві причини. По-перше, це занадто легко, як на мене. По-друге, більшість Інтернет-компаній переповнена поганими інженерами — саме через те, що не треба багато знати, щоб називатися веб-девелопером. Наскільки я розумію, саме інтернет винен у зниженні загального інтелектуального рівня. Не треба бути занадто розумним, щоб зробити інтернет-сторінку.
Насправді, я сподіваюсь, що не все так погано, і не все ще “перейшло у веб”. Бо якщо так, мені лишається або приєднатися то цієї нудоти, або піти шукати іншу професію
На мить забудемо безглуздий агрумент про те, що веб-розробка є занадто простою і приваблює лише посередніх девелоперів. Навіть якщо це так, наразі це не важливо.
Мені не хотілося б повідомляти Майклові непрємні новини, але, для все більшої кількості користувачів програми для десктопів вже стали мертвими. Більшість десткопних програм, потрібних типовому користувачеві, вже давно витіснені веб-аналогами. І ще більше буде витіснено, бо браузери стають все більш швидкими та потужними.
Сподіваєтесь, що не все ще “пішло у веб”? Агов, прокиньтесь, всі уже давно там.
Будь який студент, що вивчає історію комп’ютерів, скаже вам, що домінування веб-програм є наслідком дії принципу мінімуму енергії:
Кібернетики провели останні сорок років, створюючи мови, які були б настільки потужні, наскільки можливо. Натомість зараз маємо багато причин вибирати не найбільш, а навпаки, найменш потужні. Чим менша потужність мови, тим більше можна зробити з даними, які за допомогою цієї мови описані. Візьмемо, наприклад, веб-сторінка з даними про погоду має RDF, що описує ці дані. Користувач може отримати їх у вигляді таблиці; можливо, узагальнити; намалювати графік; співвіднести з якоютсь іншою інформацією. Протилежний приклад — представлення даних у вигляді Java-апплету. Це може забезпечити надзвичайно класний інтерфейс користувача, але дані абсолютно непридатні до аналізу. Пошукова машина, яка оглядатиме сторінку, абсолютно не зрозуміє, що це за інформація і до чого вона тут. Єдина можливість дізнатися, що показує апплет — запитати у людини, яка спостерігає за його виконанням.
Веб — це таке місце, де порівняно легко можна зробити якусь найдурнішу найпростішу штуку, яка хоч як небудь буде працювати. Якщо це вас лякає (або непокоїть) — мабуть, вам краще не бути програмістом.
Чи мають всі програми ставати веб-програмами? Звісно що ні. Залишатимуться окремі класи та види програмного забезпечення, які не матимуть жодного відношення до мережі. Але таких програм небагато і вони досить спеціалізовані. Важливі, ясно, але не суттєві.
Якщо вам хочеться, щоб вашу програму оцінило якумога більше користувачів, немає нічого кращого за веб. Інтернет — найпотужніший, найшвидший, найпоширеніший спосіб для розповсюдження програмного забезпечення з усіх, які коли-небудь існували. Будь-який юзер з доступом до інтернету і браузером, будь-де у світі, за пару кліків може побачити те, що ви створили. Обсяги і багатство аудиторії найпростішого веб-сервісу є вражаючими, і вони зростають з кожним днем.
Закон Атвуда: усе, що можна написати на JavaScript, буде написано на JavaScript. Написання Photoshop’у, Word’у та Excel’у не має жодного конструктивного сенсу, але воно неминуче. Це станеться. Взагалі то, це вже сталось. Озирніться навколо.
Як розробник, я щасливий з того, що пишу софт, який використовується. Який сенс старатися, якщо результат вашої праці замкнено у бінарнику, який буде замовлено і ліцензовано, доставлено і скачано, встановлено і супроводжено, а потім оновлено? Дивно, як комп’ютерна індустрія примудрилася вижити з усіма цими бар’єрами між користувачами та програмістами. Але у новому класному світі веб-сервісів цих обмежень нема. Безмежність. Софт може бути всюди.
Веб програмування далеке від досконалості. Там довіга помилок. Правда, що будь-який Вася Пупкін може замутити жахливий сервіс, а тому 99% веб-програм є абсолютною фігнею. Але це також означає, що справжні генії програмування можуть донести свій код до сотень, тисяч, ба навіть мільйонів користувачів, яких би вони не могли досягнути у доінтернетну епоху. Нема нічого сумнішого, ніж код, що помирає, нікому невідомим і непотрібним. Переведення програм у веб дозволяє програмістам дати свої програми хоч кому-небудь куди-небудь. Навіть якщо це відстійні програми.
Якщо агрументи про аудиторію та цінність праці не справили на вас враження, спобуйте поглянути на справу з точки зору бізнесу.
Робите веб-програму? Зараз не вісімдесяті. Ваша корява, бозна-як зроблена веб-програма все одно стане більш успішною, ніж вилизаний і причесаний десктопний аналог.
Дуже скоро усе пограмування буде програмуванням для веб. І якщо ви цьому не раді, мабуть, вам варто шукати іншу професію
Категорії: програмування | Теґи:coding horror, javascript, програмування


