October 10th, 2005

satyr

Долбанные фанатики :)

Что странно, сам я никогд^H^H^H^H^H^H вроде бы никогда не страдал фанатизмом какого-либо языка программирования. Да, некоторые языки мне нравяться больше, чем другие. Да, некоторые стили программирования для меня более логичны и понятны, и некоторые соглашения по форматированию кода мне кажутся наглядней других - это все естественно для любого человека, а, как известно, сколько людей - столько и мнений.

Поэтому меня расстраивают некоторые личности, которые орут на каналах и в форумах заученные лозунги: "C++ отжил свое, настало время Java!", "Лисп не нужен!", "Зачем вообще перл, если есть питон?" и прочую откровенную поебень... И это даже не упоминая священных войн =)

Давайте, например, просто пристально и безпристрастно обратим наш суровый взор на т.н. "Объектно-Ориентированное Программирование", которое, обычно, недалекие личности сокращают до трех букв.

Итак, Если поднапрячь что-нибудь вроде мозга, мы вспомним, что микропроцессор оперирует т.н. инструкциями, которые подаются ему конвеером и он их тупо выполняет одну за одной (OFF "ехидные замечания насчет Hyperthreading"). Эти инструкции мы можем записать на хард руками в двоичном виде и потом оттуда скармливать их процессору.

- А можно создать класс на джаве!!, тут же воскликнет индус.

Да, но смысл-то от этого не поменяется - процессор ведь питается только инструкциями. Короче, если отбросить умные математические определения и заглянуть в суть дела, то ООП - это всего лишь уровень абстракции, нацеленный на максимальное использование уже написанного кода: Code reuse. Ведь, по сути, зачем нужны все эти наследования, шаблоны, полиморфизм, виртуальные и даже чисто виртуальные функции как не для того, чтобы один и тот же кусок кода программер мог использовать и так, и сяк, и как ему захочется, делая всего-лишь небольшие пассы руками?

Оно, конечно, может кому-то и удобней и привычней представлять себе программу как набор объектов, у которых есть свойства, но это означает только то, что в тебе есть индийская кровь (пораспрашивай своих родственников). Ибо о какой глубокой оптимизации программы может идти речь, если настолько абстрагироваться от архитектуры системы?

Тут уж одно из двух

  • либо на хуй сесть
  • либо рыбку съесть

в смысле, либо ты сильнее напрягаешь очко и мозг в процессе написания кода, либо ты со счастливой улыбкой сдаешь проект на неделю раньше, указывая в его аппаратных требованиях P4-3200 2048 Mb ram.

Нет, разумеется, я передергиваю :) Если предстоит большой объем работы, я первый его побегу реализовать его с помощью ООП, но! Я-то представляю себе, как это работает и зачем это нужно, поэтому моя программа, в отличие от индуса, воспитанного с нуля на яве, скорее всего не будет содержать тупых ошибок и лагов в критичных местах (понт засчитан)

Мораль в этом опусе даже не одна, а несколько. Итак, запомните дети:
- Язык программирования - всего лишь инструмент (!!!)
- Стиль программирования - всего лишь инструмент (!!!)
- IDE - всего лишь инструмент для программирования (!!!)
- Первоначальней всего - платформа и процессы, происходящие в компьютере / ос. С этого и следует изучать программирование, а не с задрачивания постулатов из серии какая кнопочка в IDE какой элемент добавляет на форму.
  • Current Music
    Hieronymous Bosch / Artifical Emotions