Еще несколько размышлений о программировании...

Чтобы отправить комментарий — войдите.
  • L
    31 окт 05
    Кажется вы не поняли, ребята. Для человека написание и отладка кода nnm — это не столько работа, сколько удовольствие, настоящее творчество. Конечно, он хочет сделать все в лучшем виде — максимально удобно, красиво и безопасно.

    Леонардо писал картины, Trinux пишет код. Оба они творцы, оба стремятся к совершенству. Такой работе и такому отношению к работе можно только позавидовать.

    Даже если nnm — всего лишь хобби, то хобби достойное. Лучше уж в свободное время писать программы для других людей, чем жрать водку в подвоторнях, гонять монстров в кваке или тупо пялиться в телевизор.

    А лично мне приятно заходить на этот сайт, зная что он написан профессионалом и для души, а не алчным "вебмастером", судорожно пытающимся поиметь побольше денег на посетителях.
    Ответить
    • Trinux
      Trinux АВТОР
      luda 31 окт 05
      Кстати водку я действительно не пью =)))
      Ответить
    • Trinux
      Trinux АВТОР
      luda 31 окт 05
      Большое спасибо =) наконец-то меня поняли =)
      Ответить
  • sab0tage
    31 окт 05
    Напоминает басню, где лебедь, рак и щука тащили воз, каждый в свою сторону. Использовать или неиспользовать чужой код, зависит от туевой хучи различных факторов. Язык программирования, тип задачи, заказчик, сроки, и т.д. В вэбе использование "чужого" кода может быть и не так критично (хотя интерпретатор это опятьже чужой код). Вообще все программирование основано на уровнях, и неиспользуя чужого кода на своем уровне можно утверждать, что код твой. Приведу пример из Дельфи. Собрался чел написать свой вэб сервер, он может взять сорс поменять, откомпилировать и воаля — работает (быстрое исполнение и работоспособность). Что-то неработает, он поновой начинает проек, но использует компанент инди, все переделал, работает, но ему опять хочется исключить чужой код, в данном случае инди. Тратит кучу времени, работает напрямую с библиотекой винсок, и это уже гиморно, а ведь еще и интерфейс можно не через формс делать, а напрямую через апи, и т.д.

    Чужой код используется не только на одном уровне, но может быть привлечен и на других. Трин а ты думал как написаны и работают функции внутри интерпретатора? А ведь это уже чужой код, выходит проект не весь с нуля, тоесть колесо придумано уже кемто, а ты просто собираешь из них машину. А по поводу сони, у меня в ноуте: hdd-Fujitsu, видео-GeForce, dvd-Matshita, etc.
    Ответить
  • N
    31 окт 05
    Да, чего вы так к smarty привязались? Отличная штуковина! Разработка проекта с 0 гораздо дольше и утомительнее, чем при использовании смарти, причем ты уже не думаешь, как реализовать все эти низкоуровневые феньки с шаблонами, а работаешь только над проектом и для проекта! Но соглашусь с тем, что свой код гораздо приятнее и понятнее, и его легче отлаживать, но только в том случае если есть в этом экономическая обоснованность...
    Ответить
    • Trinux
      Trinux АВТОР
      NiCKO 31 окт 05
      Ну нет на ННМ шаблонов, нет!
      Ответить
  • A
    31 окт 05
    Чем меньше проект, тем более оправданы эти размышления :)
    Ответить
    • Trinux
      Trinux АВТОР
      Aelstan 31 окт 05
      Покажи мне где программисты НАСА используют ту же смарти для программирования спутников? Их софт вообще писан для их собственных операционок, с их собственным интерфейсом и дровами. Наса стало быть мелкий проект?
      Ответить
      • A
        Trinux 5 ноя 05
        SMARTY и спутники это круто. Ты работал в НАСА, чтоб рассуждать на чем они пишут? А вообще, возможно самому все писать не надо, но часто подглядеть как у других и воткнуть себе — вполне можно. Не всю же жизни велосипеды изобретать.
        Ответить
  • N
    31 окт 05
    Полностью согласен!!!! И одобряю!!!!! (сам такой)
    Ответить
  • F
    31 окт 05
    Интересная дискусия.. Во многом согласен с Trinux — ом.. Мое мнение — все это две стороны одной монеты. Почему программер стремиться писать все сам — положительные стороны:

    1. Наверное самое главное — идея — "Все это мое детище!". То есть огромное чувство морального удовлетворения и в какой то степени удовлетворение амбиций, что есть не маловажный фактор.

    2. Чувство того что все под контролем. Как написал автор — он знает все что находиться до мельчайших подробностей, и исправления ошибок проистекают более безболезненно и быстро. Плюс опять работает фактор — "то что я сделал теперь более стабильно".

    3. Тоже фактор — внутренее нехотение принимать условия другого в своей игре.. Если человек использует библиотеку, то в любом случае он подсраивает идеологию проекта под библиотеку.. Что в принципе неприятно.. теряеться идея — "Это мое детище".

    4. Как сказал автор. моральная сторона — нехотение использования библиотек которые поподают под ту или иную лицензию, если нету вариантов законно использовать их.

    Отрицательные стороны:

    1. Код пишеться долго, отлаживаеться долго, что в наше время являеться существенным минусом.

    2. Наличие многих ошибок, количество которых больше чем в среднстатистичеком прокте где используються сторонние библиотеки.

    Почему программер использует сторонние библиотеки — положительные стороны:

    1. На самом деле изучение другого проекта библиотеки отнимает меньше времени, чем вариант где это все пишеться с нуля.

    2. Быстрая разработка и быстрый релиз.

    3. Трата чужих (библиотека) ресурсов и возможность научиться новому (очень часто очень актоальному)..

    отрицательные стороны:

    1. Доработка требует иногда больше времени, чем при полностью "своем" коде.

    2. Меньше творческих ощущений и расплывчатая идея своего детища.

    3. Оч. часто проблеммы с лицензей..

    Сам я программер со стажем 10 лет и все что написал, основанно на личном опыте.

    А так полностью поддерживаю автора, хотя посмотреть что в том же SMARTY делаеться и как по моему стоит. Да и тренирует умение поимать чужые идеи.
    Ответить
    • Trinux
      Trinux АВТОР
      free_painter 31 окт 05
      С последнем заявлением не очень согласен. Попробую объяснить почему.

      Я не умею зажигать спичек. Друг показывает как это делать: Надо достать спичку, попрыгать на одной ноге 3 раза, провести правую руку со спичкой через обе ноги сзади, а левой поднести коробок и водить коробок чиркалкой вокруг спички, все сильнее и сильнее. Я буду делать это именно так, пока через определенное время ко мне не придет общее понимание.

      Я не работал с шаблонами не разу. Я смотрю как делает СМАРТИ, пытаюсь повторить. Через пару неудачных проектов я понимаю что мне шаблоны ну совсем не к чему, т.к. я еще и верстальщик и все равно сам верстаю все страницы. Но тем не менее те 2 неудачных проекта остануться. Их либо переделать, либо оставить на своей совести. Ну и где тут экономия времени.

      Мало того, неужели вы хотите сказать что SMARTY работает быстрее чем простое echo?
      Ответить
      • F
        Да нет конечно :) На самом деле я имел ввиду не конкретно идею использования SMARTY.. а просто идею развивания спосбности на ходу быстрого понимания чужого кода, и если надо приобщение чужих идей к своей базе знаний. Я знаю по личному опыту знаю что иногда это совсем не вредно, и даже полезно.. а с точки зрения твоего примера с спичками, я думаю что знание того что зажигать спичку при помощи кувырков и.т.д не правильно, это тоже необхдимое знание, так как многие зажигают именно так.. сказанно конечно не относиться к тривиальным понятиям, а к понятиям посложнее.:)

        А в остальном я тоже из того же теста. люблю все делать самому.. просто иногда сделав что то, вижу что у кого то это уже работает, и то что у кого то работает являеться моим следующим шагом.. Еслиб я был знаком с сделанным я бы с первого раза сделал бы намного лучше. Хотя данная ситуация не всегда верна.. иногда видишь что кто-то сделал хуже :) Так что резюмируя я думаю что просто ознакомление есть правильный выбор.
        Ответить
  • D
    31 окт 05
    И кстати про Гугел. Они-то может и не используют ни какие SMARTY в своем коде, но это не потому, что им нравится по итогу бить себя пяткой в волосатую грудь и говорить: "вот они мы какие — сами все сделали, а оно работает и не ломается". Мне представляется, что у них там такая туева хуча разработчиков и кодеров, что они изобретают велосипеды практически без затрат времени, так сказать, — со сверхзвуковой скоростью. И для их действительно критично отсутствие неуправляемого чужого кода (масштабы потому что огромные).

    Кроме того, мне кажется, что и они не все сами делают — у них просто смарти эти других, опять же, масштабов (сорри за туфтологию) 8)
    Ответить
    • Trinux
      Trinux АВТОР
      DeusIrae 31 окт 05
      Вот, все же ты признаешь, что чужой код "Действительно критично неуправляемый"? =)
      Ответить
      • D
        Trinux 31 окт 05
        Нет, я лишь признаю сущетсвование масштабов информационной системы, при которых использование чужого кода породжает риск неуправляемости. Но, во-первых, этот риск управляем (поддается оценке и корректировке), во-вторых, когда система разрастается до таких масштабов, тогда и человеческий ресурс, силами которого она разрастается, увеличивается соразмерно. И в этом случае тоже происходит использование чужого кода, только сторонними производилеми становятся разные отделы и группы разработчиков, а не разные юр. лица.

        Кстати, про пользу повторного использования кода и использования общих библиотек можно почитать например у Страуструпа, он очень толково разжевывает эту тему в своем толмуде про С++.

        А "критично" относится к "отсутствию", а не к "неуправляемости".
        Ответить
        • D
          Вот я чо еще подумал — получается, что отказ от чужого кода полностью исключает возможность коллективной разработки. А разве это хорошо? Нет по моему, ни фига не хорошо
          Ответить
          • Trinux
            Trinux АВТОР
            DeusIrae 31 окт 05
            Ну не знаю. Насчет твоего первого заявления — ты не прав. Yahoo.com писали 2 челавека, насколько я знаю. А масштабы у них огромнейшие.
            Ответить
            • D
              Trinux 31 окт 05
              Категоричное "ты не прав" надо еще доказать =)

              Хочешь сказать и сейчас в яхуком эти два чипыздрика кодят, не признавая чужих разработок? Бред... Виндовоз вон тоже на заре веков два самоделкиных сочинили, но это не значит, что и сейчас их там двое. Написать — не главное, главное начинается потом. Главное в поддержке и эволюции, а тут чем дальше, тем больше ресурсов (всех ресурсов) требуется, по скольку масштабы и "область определения" информационной системы меняются постоянно и быстро, если эта система востребована и работает.
              Ответить
              • Trinux
                Trinux АВТОР
                DeusIrae 31 окт 05
                Ну, скажем так. Моя жизнь дана мне для того, чтобы доказать обратное твоих слов =)
                Ответить
  • D
    31 окт 05
    Просто хлопцы, которые пишут этот самый код сторонних производителей тоже ведь не пальцем деланы, они так же как и ты заботятся о стабильности и безопастности, только в большинстве случаев их больше одного и тестированием они занимаются тоже не в полевых условиях.

    А твой софт не станет чужим от использования чужого кода, тем более, если код используется легально. Равно как и изобретатель велосипеда не потерял прав на свое изобретение, не смотря на то, что колесо изобрел не он...
    Ответить
    • Trinux
      Trinux АВТОР
      DeusIrae 31 окт 05
      Колесо? Начнем с того что окружность и круг это самое экономическивыгодная форма на земле и изобрела ее мать природа. Мой софт возможно для остальных не станет чужим, если я буду использовать чужие наработки в нем, он станет чужим для меня.
      Ответить
      • D
        Trinux 31 окт 05
        Либо ты и кода не писал софт на заказ (с соблюдением сроков), либо это были программы типа телефонного справочника.

        В больших системах (тем более, если эти системы рассчитаны на то, чтобы приносить прибыль) практика написания "с нуля" является порочной, поскольку это будет заведомо дольше чем ЛЮБЫЕ предложения конкуррентов, исполующих этот самый код сторонних производителей.

        Время — самый ценный ресурс, поскольку его не купишь ни при каких обстоятельствах, но тартить его приходится, таким образом, его можно только сэкономить, для этого и придуманы общие библиотеки и тому подобные весчи.

        К слову, еще года 3 тому назад я думал так же как и ты, но с опытом пришло понимание, что нет смысла тратить талант, время и силы на написание того, что уже написано 8)

        ЗЫ Какая мать природа? Ты о чем?
        Ответить
        • Trinux
          Trinux АВТОР
          DeusIrae 31 окт 05
          О том что колесо придумал не человек. Я писал проекты и под заказ и на скорость и все это хорошо получалось. ННМ второй двиг был написан за 2 недели. Из них неделя примрено ушла на написания системы кеширования и прочей оптимизации. Возможно (хотя врядли) ко мне через 3 года придет понимания того что можно пользоваться чужим кодом (можно брать чужих детей из приюта) и доделывать проект (и оспитывать их), вместо того чтобы делать все самомоу (жениться). Ты знаешь. пусть на это даже уходит больше времени, но сейчас я просто получаю удовольствие от процесса. Мне пофиг на конкурентов, я знаю что я всегда смогу найти работу. Пока в этом мире есть люди, ценящие уникальность и удивидуальность, у меня работа будет.
          Ответить
          • D
            Trinux 31 окт 05
            Я вот тебе и пыьаюсь намекнуть на то, что "просто получаю удовольствие от процесса" — это и есть причина по корой ты пишешь все самостоятельно. А твои разговоры про ошибки и прочую безопасность — a kind of самообман или просто пыль в глаза 8)

            Правильная жизненная позиция, уважаю 8)
            Ответить
            • Trinux
              Trinux АВТОР
              DeusIrae 31 окт 05
              Возможно =) Только до цвеб программинга я увлекался веб безопасностью и насмотрелся на "чужие разработки", типа phpBB, SMARTY и прочих. Хватило. Например тот же великий SMARTY до какой-то версии позволял выполнять php код на удаленном серваке, использующий SMARTY в качестве системы кеширования. Про phpBB я вообще молчу =))) А в своем софте я уверен на 100%. Даже если кто-то найдет где-то багу, я ее поправлю и снова буду уверен.
              Ответить
  • D
    31 окт 05
    Ты на 100% уверен, что если бы ты использовал код сторонних производителей, то, например, глюк с повторным добавлением каментов все равно существовал бы?
    Ответить
    • Trinux
      Trinux АВТОР
      DeusIrae 31 окт 05
      Начнем с того что это не глюк кода, а экономия ресурсов сервера. Конечно, это неверно, когда человек после коммента рефрешит страницу и добавляет еще один коммент и это будет исправлено, когда руки доберутся. Но я так же на 100% уверен что используя чужие разработки в этом направлении был бы точно такой же результат.
      Ответить
      • D
        Trinux 31 окт 05
        можт это почимушта у меня последняя бетка Оперы, но у меня после доавления камента ни чего не отображается — белая страница, это нормально?

        Зы, видя в такой ситуации пустую страницу рефрешь жмется уже на уровне инстинктов 8)
        Ответить
        • Trinux
          Trinux АВТОР
          DeusIrae 31 окт 05
          Странно, проверю.
          Ответить
          • Trinux
            Trinux АВТОР
            Trinux 31 окт 05
            Кинь линку откуда оперу тянул
            Ответить
            • D
              Trinux 31 окт 05
              Да прям от сюда
              Ответить
  • У
    Aspid прав, ну пишешь ты на пхп к примеру — это ты называешь чистым кодом? Чистый код — машинный, и то, как исключить аппаратные ошибки? а в микросхемах дохера транзисторов — че делать, если какой-нить транзистор заглючит? собирать свои микросхемы? если возьмешся за серьезный проект, тогда и поймешь почему надо использовать стандартные библиотеки
    Ответить
full image