Що мені дали різні мови програмування
Практично тиждень тому я писав про причини, що змушують мене продовжувати вивчення мов програмування. А сьогодні хочу коротко розповісти про те, що я виніс з кожної з мов, з якими мені довелось зіткнутись.
Першою мовою програмування в моєму житті стало Logo. Фактично ця маленька але досить потужна та цікава мова розкрила переді мною цей цікавий світ, з яким я стикаюсь кожного дня. Саме ця мова дала мені зрозуміти що це таке, навчитись вигадувати та реалізовувати прості алгоритми за допомогою списків, дала розуміння операторів, процедур, функцій, рекурсії. А чого тільки коштує "черепашка"
Далі в моєму житті з'явився Pascal. Традиційна мова для навчання в нашій країні. Завдяки цій мові я зрозумів, що таке типи та змінні, як це співвідноситься з розташування даних в пам'яті комп'ютера, навчився працювати з показчиками, а разом з тим самостійно навчився створювати списки, черги, дерева, стеки.
Потім в моє життя прийшло низькорівневе програмування. Асемблер, системні функції спочатку MS Dos, а потім і WinAPI. Для всього цього я використовував зв'язку asm + Pascal. Чого тільки коштувала спроба цілком переписати модуль graph для Pascal. І спроба була не провальною - дійшов до функцій зафарбовування областей, а потім торкнувшись WinAPI відмовився від подальшого розвитку ідеї.
А потім були C та С++. Синтаксис цих мов здався мені лаконічнішим, логічнішим, близьким. Виявилось, що можливості контролю за будь чим, наявні в асемблері, можна доволі ефективно суміщати з конструкціями високого рівня. Та й класи були потужнішим інструментом за те ООП, яким воно було в Pascal.
Prolog став для мене вікном у світ не імперативних мов програмування. Теж чудовий досвід, цікавий підхід до програмування, що базується на математичній логіці, та гарна вправа для розуму. Java. Завдяки цій мові я зрозумів, що таке справжнє ООП, саме тут я почав думати про проектування. Шляхом безлічі помилок я почав розуміти, вивів для себе декілька шаблонів розробки. Не хвилини не жалкую, що півтора роки я працював з Java. PHP. Багато в мене неприємних почуттів викликало знайомство з цим інструментом. Після логічних та структурованих С/С++/Java, ця мова здалась мені повною нісенітницею - жодної системи імен функцій, відсутність нормального ООП та багатьох інших речей.Проте наступне знайомство, а саме Ruby та framework Ruby on Rails дали мені зрозуміти свобода та простота можуть бути корисними. Взагалі чудова мова, про те в мене з нею якось не склались стосунки. Не знайшов тоді собі роботи для Ruby, запропонували зробити проект на php і я знову повернувся туди, однак вже з новим поглядом на php: при нормальному підході будь-яка мова програмування може бути доволі гнучкою, а проекти прозорими, структурованими та здатними до розширення. Інша справа в тому, що одні мови намагаються тримати програміста в рамках написання якісного, прозорого, стандартизованого коду, та максимальна "ступінь прозорості" коду обмежується мовою.
Ну і ось тепер Python. Теж чудова мова, яка мені дуже сподобалась. Фактично близька за лаконічністю до Ruby. Програми схожі більше на якийсь псевдокод (з позитивного боку) - практично відсутні зайві конструкції, добре видно сам алгоритм. Мова вчиться легко, є дуже потужною. А версія 3 обіцяє внести досить серйозні корективи стосовно деяких операторів, дещо зайве відкинути та додати нові можливості, що будуть корисними у проектуванні (наприклад, необов'язкова типізація, спрощене створення декораторів замість патерну декоратор).
А що буде далі? Хто його знає. Можливо час познайомитись з Haskel чи Erlang...
Дякую всім за увагу!
Коментарі:
Я починав вчити програмування з Бейсіка в школі. Правда, комп там був лише один (чи два) і то у вчительки. Тому програмували ми в зошиті, а синтаксис перевіряла вчителька ;) (хіба не кумедно).
З того досвіду я нічого не почерпнув. Тай, чесно кажучи, тоді бажання програмувати в мене не було взагалі.
Згодом в університеті нас вчили програмувати на Паскалі (стандартно). Стало цікавіше. З часом перейшли на Delphi.
І лише тоді для мене від обов'язку програмування почало перетворюватись в добровільну справу.
Там з'явилась Java, яку я вже встиг закинути. От, зараз бавлюсь в JavaScript, PHP.
Можливо далі буде :)
Не знайшов застосування у веб-сфері. А звичайні програми вже десь 2 роки, як не пишу :)
Якщо можна, GrAndSE, дам пораду щодо роботи вашої CMS. Спробуйте реалізувати таку фішку як "підписка на коментарі до посту", (яка є реалізована в якості плагіну на WordPress блоґах і не лише на них), щоб легше було слідкувати за діалогом.
Раджу якось глянути на Erlang - неймовірно цікава штука. Оскільки маєте досвід із Прологом, то має бути легше у вивченні Ерланґу. Пів-року тому мав робочий досвід із ним - це було весело:)
Щодо Пітона - респект:) До речі, декоратори у вигляді конструкції мови присутні ще з версії 2.4.
Зробіть, будь ласка, більш розумний валідатор URL у коментах. Коли у URLі вже присутній "http://", рушій все-одно додає його у початок строки.
правду говоришь - Logo - это вообще весчЬ тем более еще в школе как она рулила...теперь конечно java, и кстати python тоже четкий, пока мало пробовал но мне понравился...
Excieve, знаю про цю проблему "валідації". Спочатку зробив нерозумний варіант, тепер от все ніяк не можу нормально вирішити цю проблему, бо не можу себе змусити її вирішувати :(
В Python 3.0 синтаксис здається змінився в кращий бік - тепер все пишеться однієї аннотацією. Чи то я неуважно читав і такі моєливості присутні в 2.4+?
virua, як тільки доберусь до блога, одразу впишу такий функціонал - всі можливості скористатись для цього новорічними святами та вихідними дякуючи провайдеру я прогавив :( Ну нічого, час обов'язково знайду :)



