Кажется вы не поняли, ребята. Для человека написание и отладка кода nnm — это не столько работа, сколько удовольствие, настоящее творчество. Конечно, он хочет сделать все в лучшем виде — максимально удобно, красиво и безопасно.
Леонардо писал картины, Trinux пишет код. Оба они творцы, оба стремятся к совершенству. Такой работе и такому отношению к работе можно только позавидовать.
Даже если nnm — всего лишь хобби, то хобби достойное. Лучше уж в свободное время писать программы для других людей, чем жрать водку в подвоторнях, гонять монстров в кваке или тупо пялиться в телевизор.
А лично мне приятно заходить на этот сайт, зная что он написан профессионалом и для души, а не алчным "вебмастером", судорожно пытающимся поиметь побольше денег на посетителях.
Напоминает басню, где лебедь, рак и щука тащили воз, каждый в свою сторону. Использовать или неиспользовать чужой код, зависит от туевой хучи различных факторов. Язык программирования, тип задачи, заказчик, сроки, и т.д. В вэбе использование "чужого" кода может быть и не так критично (хотя интерпретатор это опятьже чужой код). Вообще все программирование основано на уровнях, и неиспользуя чужого кода на своем уровне можно утверждать, что код твой. Приведу пример из Дельфи. Собрался чел написать свой вэб сервер, он может взять сорс поменять, откомпилировать и воаля — работает (быстрое исполнение и работоспособность). Что-то неработает, он поновой начинает проек, но использует компанент инди, все переделал, работает, но ему опять хочется исключить чужой код, в данном случае инди. Тратит кучу времени, работает напрямую с библиотекой винсок, и это уже гиморно, а ведь еще и интерфейс можно не через формс делать, а напрямую через апи, и т.д.
Чужой код используется не только на одном уровне, но может быть привлечен и на других. Трин а ты думал как написаны и работают функции внутри интерпретатора? А ведь это уже чужой код, выходит проект не весь с нуля, тоесть колесо придумано уже кемто, а ты просто собираешь из них машину. А по поводу сони, у меня в ноуте: hdd-Fujitsu, видео-GeForce, dvd-Matshita, etc.
Да, чего вы так к smarty привязались? Отличная штуковина! Разработка проекта с 0 гораздо дольше и утомительнее, чем при использовании смарти, причем ты уже не думаешь, как реализовать все эти низкоуровневые феньки с шаблонами, а работаешь только над проектом и для проекта! Но соглашусь с тем, что свой код гораздо приятнее и понятнее, и его легче отлаживать, но только в том случае если есть в этом экономическая обоснованность...
Покажи мне где программисты НАСА используют ту же смарти для программирования спутников? Их софт вообще писан для их собственных операционок, с их собственным интерфейсом и дровами. Наса стало быть мелкий проект?
SMARTY и спутники это круто. Ты работал в НАСА, чтоб рассуждать на чем они пишут? А вообще, возможно самому все писать не надо, но часто подглядеть как у других и воткнуть себе — вполне можно. Не всю же жизни велосипеды изобретать.
Интересная дискусия.. Во многом согласен с Trinux — ом.. Мое мнение — все это две стороны одной монеты. Почему программер стремиться писать все сам — положительные стороны:
1. Наверное самое главное — идея — "Все это мое детище!". То есть огромное чувство морального удовлетворения и в какой то степени удовлетворение амбиций, что есть не маловажный фактор.
2. Чувство того что все под контролем. Как написал автор — он знает все что находиться до мельчайших подробностей, и исправления ошибок проистекают более безболезненно и быстро. Плюс опять работает фактор — "то что я сделал теперь более стабильно".
3. Тоже фактор — внутренее нехотение принимать условия другого в своей игре.. Если человек использует библиотеку, то в любом случае он подсраивает идеологию проекта под библиотеку.. Что в принципе неприятно.. теряеться идея — "Это мое детище".
4. Как сказал автор. моральная сторона — нехотение использования библиотек которые поподают под ту или иную лицензию, если нету вариантов законно использовать их.
Отрицательные стороны:
1. Код пишеться долго, отлаживаеться долго, что в наше время являеться существенным минусом.
2. Наличие многих ошибок, количество которых больше чем в среднстатистичеком прокте где используються сторонние библиотеки.
Почему программер использует сторонние библиотеки — положительные стороны:
1. На самом деле изучение другого проекта библиотеки отнимает меньше времени, чем вариант где это все пишеться с нуля.
2. Быстрая разработка и быстрый релиз.
3. Трата чужих (библиотека) ресурсов и возможность научиться новому (очень часто очень актоальному)..
отрицательные стороны:
1. Доработка требует иногда больше времени, чем при полностью "своем" коде.
2. Меньше творческих ощущений и расплывчатая идея своего детища.
3. Оч. часто проблеммы с лицензей..
Сам я программер со стажем 10 лет и все что написал, основанно на личном опыте.
А так полностью поддерживаю автора, хотя посмотреть что в том же SMARTY делаеться и как по моему стоит. Да и тренирует умение поимать чужые идеи.
С последнем заявлением не очень согласен. Попробую объяснить почему.
Я не умею зажигать спичек. Друг показывает как это делать: Надо достать спичку, попрыгать на одной ноге 3 раза, провести правую руку со спичкой через обе ноги сзади, а левой поднести коробок и водить коробок чиркалкой вокруг спички, все сильнее и сильнее. Я буду делать это именно так, пока через определенное время ко мне не придет общее понимание.
Я не работал с шаблонами не разу. Я смотрю как делает СМАРТИ, пытаюсь повторить. Через пару неудачных проектов я понимаю что мне шаблоны ну совсем не к чему, т.к. я еще и верстальщик и все равно сам верстаю все страницы. Но тем не менее те 2 неудачных проекта остануться. Их либо переделать, либо оставить на своей совести. Ну и где тут экономия времени.
Мало того, неужели вы хотите сказать что SMARTY работает быстрее чем простое echo?
Да нет конечно :) На самом деле я имел ввиду не конкретно идею использования SMARTY.. а просто идею развивания спосбности на ходу быстрого понимания чужого кода, и если надо приобщение чужих идей к своей базе знаний. Я знаю по личному опыту знаю что иногда это совсем не вредно, и даже полезно.. а с точки зрения твоего примера с спичками, я думаю что знание того что зажигать спичку при помощи кувырков и.т.д не правильно, это тоже необхдимое знание, так как многие зажигают именно так.. сказанно конечно не относиться к тривиальным понятиям, а к понятиям посложнее.:)
А в остальном я тоже из того же теста. люблю все делать самому.. просто иногда сделав что то, вижу что у кого то это уже работает, и то что у кого то работает являеться моим следующим шагом.. Еслиб я был знаком с сделанным я бы с первого раза сделал бы намного лучше. Хотя данная ситуация не всегда верна.. иногда видишь что кто-то сделал хуже :) Так что резюмируя я думаю что просто ознакомление есть правильный выбор.
И кстати про Гугел. Они-то может и не используют ни какие SMARTY в своем коде, но это не потому, что им нравится по итогу бить себя пяткой в волосатую грудь и говорить: "вот они мы какие — сами все сделали, а оно работает и не ломается". Мне представляется, что у них там такая туева хуча разработчиков и кодеров, что они изобретают велосипеды практически без затрат времени, так сказать, — со сверхзвуковой скоростью. И для их действительно критично отсутствие неуправляемого чужого кода (масштабы потому что огромные).
Кроме того, мне кажется, что и они не все сами делают — у них просто смарти эти других, опять же, масштабов (сорри за туфтологию) 8)
Нет, я лишь признаю сущетсвование масштабов информационной системы, при которых использование чужого кода породжает риск неуправляемости. Но, во-первых, этот риск управляем (поддается оценке и корректировке), во-вторых, когда система разрастается до таких масштабов, тогда и человеческий ресурс, силами которого она разрастается, увеличивается соразмерно. И в этом случае тоже происходит использование чужого кода, только сторонними производилеми становятся разные отделы и группы разработчиков, а не разные юр. лица.
Кстати, про пользу повторного использования кода и использования общих библиотек можно почитать например у Страуструпа, он очень толково разжевывает эту тему в своем толмуде про С++.
А "критично" относится к "отсутствию", а не к "неуправляемости".
Вот я чо еще подумал — получается, что отказ от чужого кода полностью исключает возможность коллективной разработки. А разве это хорошо? Нет по моему, ни фига не хорошо
Хочешь сказать и сейчас в яхуком эти два чипыздрика кодят, не признавая чужих разработок? Бред... Виндовоз вон тоже на заре веков два самоделкиных сочинили, но это не значит, что и сейчас их там двое. Написать — не главное, главное начинается потом. Главное в поддержке и эволюции, а тут чем дальше, тем больше ресурсов (всех ресурсов) требуется, по скольку масштабы и "область определения" информационной системы меняются постоянно и быстро, если эта система востребована и работает.
Просто хлопцы, которые пишут этот самый код сторонних производителей тоже ведь не пальцем деланы, они так же как и ты заботятся о стабильности и безопастности, только в большинстве случаев их больше одного и тестированием они занимаются тоже не в полевых условиях.
А твой софт не станет чужим от использования чужого кода, тем более, если код используется легально. Равно как и изобретатель велосипеда не потерял прав на свое изобретение, не смотря на то, что колесо изобрел не он...
Колесо? Начнем с того что окружность и круг это самое экономическивыгодная форма на земле и изобрела ее мать природа. Мой софт возможно для остальных не станет чужим, если я буду использовать чужие наработки в нем, он станет чужим для меня.
Либо ты и кода не писал софт на заказ (с соблюдением сроков), либо это были программы типа телефонного справочника.
В больших системах (тем более, если эти системы рассчитаны на то, чтобы приносить прибыль) практика написания "с нуля" является порочной, поскольку это будет заведомо дольше чем ЛЮБЫЕ предложения конкуррентов, исполующих этот самый код сторонних производителей.
Время — самый ценный ресурс, поскольку его не купишь ни при каких обстоятельствах, но тартить его приходится, таким образом, его можно только сэкономить, для этого и придуманы общие библиотеки и тому подобные весчи.
К слову, еще года 3 тому назад я думал так же как и ты, но с опытом пришло понимание, что нет смысла тратить талант, время и силы на написание того, что уже написано 8)
О том что колесо придумал не человек. Я писал проекты и под заказ и на скорость и все это хорошо получалось. ННМ второй двиг был написан за 2 недели. Из них неделя примрено ушла на написания системы кеширования и прочей оптимизации. Возможно (хотя врядли) ко мне через 3 года придет понимания того что можно пользоваться чужим кодом (можно брать чужих детей из приюта) и доделывать проект (и оспитывать их), вместо того чтобы делать все самомоу (жениться). Ты знаешь. пусть на это даже уходит больше времени, но сейчас я просто получаю удовольствие от процесса. Мне пофиг на конкурентов, я знаю что я всегда смогу найти работу. Пока в этом мире есть люди, ценящие уникальность и удивидуальность, у меня работа будет.
Я вот тебе и пыьаюсь намекнуть на то, что "просто получаю удовольствие от процесса" — это и есть причина по корой ты пишешь все самостоятельно. А твои разговоры про ошибки и прочую безопасность — a kind of самообман или просто пыль в глаза 8)
Возможно =) Только до цвеб программинга я увлекался веб безопасностью и насмотрелся на "чужие разработки", типа phpBB, SMARTY и прочих. Хватило. Например тот же великий SMARTY до какой-то версии позволял выполнять php код на удаленном серваке, использующий SMARTY в качестве системы кеширования. Про phpBB я вообще молчу =))) А в своем софте я уверен на 100%. Даже если кто-то найдет где-то багу, я ее поправлю и снова буду уверен.
Ты на 100% уверен, что если бы ты использовал код сторонних производителей, то, например, глюк с повторным добавлением каментов все равно существовал бы?
Начнем с того что это не глюк кода, а экономия ресурсов сервера. Конечно, это неверно, когда человек после коммента рефрешит страницу и добавляет еще один коммент и это будет исправлено, когда руки доберутся. Но я так же на 100% уверен что используя чужие разработки в этом направлении был бы точно такой же результат.
Aspid прав, ну пишешь ты на пхп к примеру — это ты называешь чистым кодом? Чистый код — машинный, и то, как исключить аппаратные ошибки? а в микросхемах дохера транзисторов — че делать, если какой-нить транзистор заглючит? собирать свои микросхемы? если возьмешся за серьезный проект, тогда и поймешь почему надо использовать стандартные библиотеки
Комментарии
Леонардо писал картины, Trinux пишет код. Оба они творцы, оба стремятся к совершенству. Такой работе и такому отношению к работе можно только позавидовать.
Даже если nnm — всего лишь хобби, то хобби достойное. Лучше уж в свободное время писать программы для других людей, чем жрать водку в подвоторнях, гонять монстров в кваке или тупо пялиться в телевизор.
А лично мне приятно заходить на этот сайт, зная что он написан профессионалом и для души, а не алчным "вебмастером", судорожно пытающимся поиметь побольше денег на посетителях.
Чужой код используется не только на одном уровне, но может быть привлечен и на других. Трин а ты думал как написаны и работают функции внутри интерпретатора? А ведь это уже чужой код, выходит проект не весь с нуля, тоесть колесо придумано уже кемто, а ты просто собираешь из них машину. А по поводу сони, у меня в ноуте: hdd-Fujitsu, видео-GeForce, dvd-Matshita, etc.
1. Наверное самое главное — идея — "Все это мое детище!". То есть огромное чувство морального удовлетворения и в какой то степени удовлетворение амбиций, что есть не маловажный фактор.
2. Чувство того что все под контролем. Как написал автор — он знает все что находиться до мельчайших подробностей, и исправления ошибок проистекают более безболезненно и быстро. Плюс опять работает фактор — "то что я сделал теперь более стабильно".
3. Тоже фактор — внутренее нехотение принимать условия другого в своей игре.. Если человек использует библиотеку, то в любом случае он подсраивает идеологию проекта под библиотеку.. Что в принципе неприятно.. теряеться идея — "Это мое детище".
4. Как сказал автор. моральная сторона — нехотение использования библиотек которые поподают под ту или иную лицензию, если нету вариантов законно использовать их.
Отрицательные стороны:
1. Код пишеться долго, отлаживаеться долго, что в наше время являеться существенным минусом.
2. Наличие многих ошибок, количество которых больше чем в среднстатистичеком прокте где используються сторонние библиотеки.
Почему программер использует сторонние библиотеки — положительные стороны:
1. На самом деле изучение другого проекта библиотеки отнимает меньше времени, чем вариант где это все пишеться с нуля.
2. Быстрая разработка и быстрый релиз.
3. Трата чужих (библиотека) ресурсов и возможность научиться новому (очень часто очень актоальному)..
отрицательные стороны:
1. Доработка требует иногда больше времени, чем при полностью "своем" коде.
2. Меньше творческих ощущений и расплывчатая идея своего детища.
3. Оч. часто проблеммы с лицензей..
Сам я программер со стажем 10 лет и все что написал, основанно на личном опыте.
А так полностью поддерживаю автора, хотя посмотреть что в том же SMARTY делаеться и как по моему стоит. Да и тренирует умение поимать чужые идеи.
Я не умею зажигать спичек. Друг показывает как это делать: Надо достать спичку, попрыгать на одной ноге 3 раза, провести правую руку со спичкой через обе ноги сзади, а левой поднести коробок и водить коробок чиркалкой вокруг спички, все сильнее и сильнее. Я буду делать это именно так, пока через определенное время ко мне не придет общее понимание.
Я не работал с шаблонами не разу. Я смотрю как делает СМАРТИ, пытаюсь повторить. Через пару неудачных проектов я понимаю что мне шаблоны ну совсем не к чему, т.к. я еще и верстальщик и все равно сам верстаю все страницы. Но тем не менее те 2 неудачных проекта остануться. Их либо переделать, либо оставить на своей совести. Ну и где тут экономия времени.
Мало того, неужели вы хотите сказать что SMARTY работает быстрее чем простое echo?
А в остальном я тоже из того же теста. люблю все делать самому.. просто иногда сделав что то, вижу что у кого то это уже работает, и то что у кого то работает являеться моим следующим шагом.. Еслиб я был знаком с сделанным я бы с первого раза сделал бы намного лучше. Хотя данная ситуация не всегда верна.. иногда видишь что кто-то сделал хуже :) Так что резюмируя я думаю что просто ознакомление есть правильный выбор.
Кроме того, мне кажется, что и они не все сами делают — у них просто смарти эти других, опять же, масштабов (сорри за туфтологию) 8)
Кстати, про пользу повторного использования кода и использования общих библиотек можно почитать например у Страуструпа, он очень толково разжевывает эту тему в своем толмуде про С++.
А "критично" относится к "отсутствию", а не к "неуправляемости".
Хочешь сказать и сейчас в яхуком эти два чипыздрика кодят, не признавая чужих разработок? Бред... Виндовоз вон тоже на заре веков два самоделкиных сочинили, но это не значит, что и сейчас их там двое. Написать — не главное, главное начинается потом. Главное в поддержке и эволюции, а тут чем дальше, тем больше ресурсов (всех ресурсов) требуется, по скольку масштабы и "область определения" информационной системы меняются постоянно и быстро, если эта система востребована и работает.
А твой софт не станет чужим от использования чужого кода, тем более, если код используется легально. Равно как и изобретатель велосипеда не потерял прав на свое изобретение, не смотря на то, что колесо изобрел не он...
В больших системах (тем более, если эти системы рассчитаны на то, чтобы приносить прибыль) практика написания "с нуля" является порочной, поскольку это будет заведомо дольше чем ЛЮБЫЕ предложения конкуррентов, исполующих этот самый код сторонних производителей.
Время — самый ценный ресурс, поскольку его не купишь ни при каких обстоятельствах, но тартить его приходится, таким образом, его можно только сэкономить, для этого и придуманы общие библиотеки и тому подобные весчи.
К слову, еще года 3 тому назад я думал так же как и ты, но с опытом пришло понимание, что нет смысла тратить талант, время и силы на написание того, что уже написано 8)
ЗЫ Какая мать природа? Ты о чем?
Правильная жизненная позиция, уважаю 8)
Зы, видя в такой ситуации пустую страницу рефрешь жмется уже на уровне инстинктов 8)