00:04 Чому я обрав веб-програмування |
Останнім часом у зв'язку з бурхливим
розвитком мережі Інтернет у програмуванні починає все більш різко виділятися
окрема галузь. Спочатку вона не могла навіть і зрівнятися за своєю складністю з
іншими областями програміського ремесла, не "дотягуючись" не тільки до системного, але
навіть і до прикладного програмування. Мова йде, звичайно, про
програмування сценаріїв для Web, або, як часто говорять, Web-програмування. У наші дні, однак, роль цієї галузі в
структурі Інтернету все більше зростає, відповідно зростає і середня оцінка складності
сценаріїв. Багато системи (наприклад, пошукові) за обсягом коду
наближаються до розміру вихідних кодів серйозних пакетів прикладних програм. Уявляю, як ці слова
тут же викличуть бурю протесту з боку прикладних і системних програмістів, лише
мигцем глянувших на програмування в Web. "Як, - заявлять
вони, - невже написання найпростіших програм на" бейсікоподібних"
інтерпретаторах взагалі можна назвати серйозним програмуванням? Та з цим же
впорається будь-який починайчий вивчати програмування студент, тому що ця
область не вносить і не може внести яких-небудь нововведень, не
"винаходить" алгоритмів, і, до речі, в ній немає нічого творчого. Та
й взагалі, нудьга-то, напевно, яка ... "Зазвичай з такими людьми можна
сперечатися годинами. Дійсно, яку б задачу їм не привели, вони починають
стверджувати, що вирішити її дуже просто, хоча насправді це в контексті Web,
м'яко кажучи, виявляється не зовсім так. Що ж, частково такі
люди мають рацію. Спочатку всі ми так вважали, поки не зіткнулися впритул з
тим, що називається Web-програмуванням. Так, в більшості своїй всі програми
дивують своєю уявною простотою. Але скрізь є "підводні камні", і
Web-програмування особливо яскраво це доводить. Зазвичай на написання сценаріїв
йдуть не місяці і роки, а дні і тижні. Але особливо складні сценарії можуть
вимагати значно більшого часу на розробку. Нарешті, на перший погляд робота
Web-програміста здається на рідкість нудною. Але ... Все це йде саме таким
чином, якщо ви програмуєте, що називається, "для себе", і при цьому не намагаєтеся
якимось чином "автоматизувати" і упростити цей процес. Дійсно, можна
отримувати задоволення від написання прикладних програм (особливо
нетривіальних), навіть якщо їх ніхто, крім автора та його найближчих знайомих,
потім не побачить. Тут привертає сам процес. Ось цим то і відрізняється
програмування в Web: не можна писати сценарії "для себе", це заняття
дійсно здасться (а можливо, так воно і є) нудним. Зате якщо ви створили
програму, яка прекрасно працює в Інтернеті, через яку "проходять"
сотні чоловік в день, і до того ж зі зручним і оригінальним інтерфейсом – ось
тут то і починає вам подобатися ваша професія. Лу Грінзо, один з
програмістів IBM, говорив: "Всі програмісти трохи чокнуті. Це як нескінченна
комп'ютерна гра: ми повинні отримувати задоволення від своєї роботи. Які б
гроші нам не платили, якщо в нашому ремеслі немає нічого захопливого,
ніхто з нас не стане працювати ". Думаю, нам усім іноді варто
замислюватися над цими словами. Чого хоче програміст від своєї професії Давайте спробуємо
розібратися, чого хоче Web-програміст, коли він обирає свою професію. Можливо,
він вважає, що ця стезя досить прибуткова? Але гроші приходять, що називається,
"самі собою" з накопиченням досвіду та отриманням певних навичок, у
міру того, як людина стає професіоналом. Так відбувається з будь-якою
професією, а не тільки з програмуванням. До речі, як я трохи вище згадував,
ніхто з професійних програмістів не працює виключно за гроші, основний стимул -
це все таки інтерес до роботи. Йдемо далі. Може,
йому потрібна популярність? Звичайно, цей фактор не стоїть на третьому місці,
враховуючи те, що популярність – гарантія того, що програміст завжди легко
зможе знайти роботу. Однак, як і гроші, слава і популярність також не бувають
самі по собі - їх необхідно заслужити. І, до того ж, чи багато ви знаєте
відомих імен програмістів, дійсно заслуживших своє визнання практикою (Білл
Гейтс не в рахунок, тому що він вже давно цим не займається)? Правильно -
жодного. Хіба що, може, хтось пригадає доблесних творців гри Doom, що стала вже
історією. Але є щось таке, на
що я вже натякав, і саме цим Web-програмування (та і взагалі будь-яка робота,
яка відбувається в Web) різко відрізняється в кращу сторону від всіх досі
відомих видів програмування. Ви можете бути дуже хорошим прикладним або
системним програмістом. Однак навряд чи ваші програми буде використовувати така
кількість людей, яка щодня відвідує навіть і не саму популярну сторінку в
Інтернеті, "підкріплену" Web-сценарієм. Навряд чи ви отримаєте таку
кількість відгуків, придбаєте таке число безкоштовних тестерів, завзято
відсилаючих вам гору листів з повідомленнями про неточності і помилки у вашому
продукті, а також з відгуками та пропозиціями. Адже, як відомо, помітити
помилку в програмі означає "відрубати їй голову". Нарешті, іноді
приємно відмітити для себе, що сценарій, написаний вами кілька років тому, про
який ви майже вже й забули думати, продовжує справно працювати "сам по
собі", без всякого людського втручання. Часові затрати Так, я вже чую
чергові протести "системщиків". Звичайно, операційна система -
безумовний "довгожитель" на безлічі комп'ютерів. Разом з тим,
погодьтесь, написати працездатну ОС, дійсно придатну для використання (без всяких там застережень) - досить важка робота,
якщо не сказати більшого. Чи під силу це одинакові? Сумніваюся, що з нею в
прийнятні терміни впорається не те щоб один, а десяток або навіть п'ятдесят
чоловік. Проведемо нескладні
розрахунки. На одній з конференцій представник фірми SunMicrosystems заявив
(мабуть, в якості осуду), що вихідний текст останніх версій Windows налічує
близько 50 мільйонів рядків. Думаю, він не дуже сильно помилився у своїй оцінці
(як ми побачимо, навіть якщо він завищив цифру хоч в 10 разів, все одно
результат буде невтішний). В сумі це складає близько 50 млн ×20 байт = 1000
Мбайт (з розрахунку в середньому 20 символів в рядку). Припустимо, програміст
може друкувати зі швидкістю 30 символів в хвилину (розуміється, швидкість друку
значно вища, але ж перш ніж щось набрати, потрібно спочатку все спланувати і
розробити). Таким чином, працюючи безперервно, він в цьому темпі створить ОС за
1000 Мбайт / (30/60 хв) // 3600 с = 555 555 годин, що складе 555 555/24 = 23
148 дня або 23 148/365 = 63 роки безперервної цілодобової роботи! А адже ми
значно завищили реальну швидкість друку, та й, до того ж, не можна 24 години
займатися тольки тим, що набирати програму на клавіатурі. До всього іншого,
потрібно ще компілювати програму, виправляти помилки, ще раз компілювати і так
до безкінечності (як це може здатися незвичній людині). Нарешті, "Немає
помилок в даній трансляції", але раптом – логічна помилка, і починай все
заново? .. Припустимо навіть ОС буде займати не 50 мільйонів рядків, а лише 5
мільйонів. Припустимо, що в команді не один, а 1000 чоловік. І нехай робочий
день програміста становить 6 годин безперервної роботи. Отже, ми отримаємо, що
на написання нашої ОС цією командою піде 555 555/10/1000 ×
(24/6) = 222 дня, або близько семи місяців. Що ж ... Цілком непогано, але якою
ціною ...? .. До того ж зовсім невідомо, чи вийде в кінці кінців система, яка
комусь буде потрібна. Уявляєте, півроку роботи - і все даремно?! Зрозуміло, в
системному і прикладному програмуванні існують і інші напрямки. Наприклад,
можна написати якусь корисну програму, на зразок текстового процесора або
браузера. До речі, ви знаєте достовірно, скільки людей писало Internet
Explorer? Краще б і я цього не знав ... І ось ми повернулися
до того, з чого починали: чим же так приваблива професія Web-програміста. Таки
зрозуміти це повною мірою можна, лише досить попрацювавши в цій області.
Найпривабливіше в ній те, що результат своєї роботи можна бачити через досить
короткий термін. Отже робіть
правильний вибір, обирайте те що більше до душі. (звичайно обирайте Web-програмування). |
|
Всього коментарів: 0 | |