Велосипедостроение
От: b-3 Россия  
Дата: 02.03.12 21:49
Оценка: 76 (6) +3 -10
Не знаю, сюда или в КСВ. Из форума "О работе":

___>>"Кодеры-задроты", это как раз те, кто кидаются модными словечками, CRM, WCF, WWF, WPF, WTF, Sharepoint, MVP etc.

C> Откуда такая нелюбовь к дотнету, мне вот интересно?

Я немного недолюбливаю дотнет. Дотнет рождает евангелистов. Ну как "сон разума"...

А если без шуток, то какой инженер будет любить code monkey, выучившего "на сертификат" наизусть 800 функций API? Ну то есть, любить-то можно, если это супруга или щедрый заказчик, но признавать коллегой человека, который фактически занимается не разработкой, а деятельностью вроде конфигурирования один-цэ, только на сишарпе? Можно ли назвать коллегой человека, который пройдёт мимо свободной библиотеки со словами "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", только чтоб не думать о том, за что не платят?.. Как относиться к тем, кто, часто небесплатно, осуждает "низкотехнологический" подход?

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

В случае с фреймворками, неквалифированному потребителю лучше просто не давать возможности выбора между "1000 строк без фреймворка" vs "100 строк с использованием библиотеки WTF". И это не потому, что самым популярным языком в мире является Java. А потому что цена кода в основном объясняется его технической сложностью, а не числом велосипедов на километр. Цена проявляется, когда "100 строк на WTF" начинают требовать ста юнит-тестов, десятка часов в профайлере, покупки спец.тулзы для отладки под конкретно эту технологию — а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. Через десять лет код Петровича в неизменном виде предстанет глазу новорождённого фанбоя, который с криками "опять легаси-код!!!" попытается переделать это на новом WTF-е. Переделка займёт в три раза больше времени, чем заняло бы написание с нуля. А ещё через пол-года, как назло, возникнет задача перенести разработку на платформу, где нет новейшей технологии WTF, и переделанный код придётся окончательно выкинуть, ведь сделать столь сложную функциональность без WTF невозможно...

Безусловно, умение писать велосипеды не приносит пользы современному программисту. Как и умение клеить, резать, пилить и паять — потребителю современной бытовой техники. Однако без понимания, "как это устроено", "какого это требует обслуживания" и "чем это можно заменить", потребитель что фреймворков, что пылесосов будет оказываться в положении блондинки, купившей себе автополотёр-суперочиститель. Что же до человека с техническим образованием, евангелиста-продавца пылесосов, который ей эту ерунду впарил, так многие будут считать его мошенником и бить лицо — хотя он, ничего личного, просто деньги зарабатывает.

Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?
Забанен с формулировкой "клинический дисидент".
Re: Велосипедостроение
От: alex_public  
Дата: 02.03.12 22:48
Оценка:
Какая мегатема для флуда. )))

А как быть, если у меня такое же как у автора отношение к ява/c# кодерами, но при этом в своих проектах стараюсь не допускать велосипедов вообще (лучше найти готовую библиотечку)? )))
Re: Велосипедостроение
От: umnik  
Дата: 02.03.12 23:00
Оценка:
Здравствуйте, b-3, Вы писали:

b-3>словами "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", только чтоб не думать о том, за что не платят?.. Как относиться к тем, кто, часто небесплатно,

b-3>технологию — а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. Через десять лет код Петровича в неизменном виде предстанет глазу новорождённого

Ну так покажите нам чудеса велосипедостроения написав замену SQL Serverу за два вечера в своем проекте
Re[2]: Велосипедостроение
От: мыщъх США http://nezumi-lab.org
Дата: 03.03.12 02:01
Оценка: 15 (1) +1
Здравствуйте, umnik, Вы писали:

U>Здравствуйте, b-3, Вы писали:


b-3>>словами "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", только чтоб не думать о том, за что не платят?.. Как относиться к тем, кто, часто небесплатно,

b-3>>технологию — а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. Через десять лет код Петровича в неизменном виде предстанет глазу новорождённого

U>Ну так покажите нам чудеса велосипедостроения написав замену SQL Serverу за два вечера в своем проекте

один из самых популярных языков программирования XXI века был спроектирован и реализован за 10 дней. и это не единственный пример. и, кстати, велосипед. и это нормально. а вот когда вместо велосипеда предлагают купить фабрику по производству самолетов -- это реальность наших дней. когда в ms sql загружают телефонную книгу -- мне становится страшно. как-то зашел спор с одним таким деятелем. я ему говорю -- ну напиши скрипт на питоне с ассоциативными массивами. на фига тебе sql? у тебя вообще полнотекстовой поиск, причем нечеткий (написали фамилию с ошибкой). ms sql этого не умеет в принципе, да и не для того он предназначен. деятель грит -- фигня с питоном. у него ограничение в полтора гига на словарь. я его спрашиваю -- а у тебя телефонная книга сколько занимает? сотня метров наберется? ах, надо писать на вырост... ну от сотни метров до полутора гиг это нужно очень долго расти, к тому времени у всех будет 64 бита, где таких ограничений уже нет.

...короче, так и не убедил. данные хранятся в ms sql. деятель делает запрос в стиле "select *" и дальше рулит алгос нечеткого соответствия, последовательно перебирающий все данные. ну вот на фига тут ms sql? только потому что так принято? или это фобия велосипедостроения?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re: Велосипедостроение
От: IT Россия linq2db.com
Дата: 03.03.12 03:31
Оценка: +8
Здравствуйте, b-3, Вы писали:

b-3>Я немного недолюбливаю дотнет. Дотнет рождает евангелистов. Ну как "сон разума"...


Такое хорошее начало. Приготовился уже к интересной дискуссии с серьёзным соперником, написавшим столь длинный опус...

b-3>А если без шуток, то какой инженер будет любить code monkey, выучившего "на сертификат" наизусть 800 функций API?


... и такой облом
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Велосипедостроение
От: Klatu  
Дата: 03.03.12 04:33
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>один из самых популярных языков программирования XXI века был спроектирован и реализован за 10 дней. и это не единственный пример.


какой?

М>когда в ms sql загружают телефонную книгу -- мне становится страшно. как-то зашел спор с одним таким деятелем. я ему говорю -- ну напиши скрипт на питоне с ассоциативными массивами.


Тоже оверкилл. Отсортированный по алфавиту текстовый файл — более чем достаточно. Проще, быстрее и можно положить файл под контроль версий.
Re[3]: Велосипедостроение
От: m e  
Дата: 03.03.12 04:56
Оценка:
М>...короче, так и не убедил. данные хранятся в ms sql. деятель делает запрос в стиле "select *" и дальше рулит алгос нечеткого соответствия, последовательно перебирающий все данные. ну вот на фига тут ms sql? только потому что так принято? или это фобия велосипедостроения?

в целом, так сказать стратегически, я с тобой согласен

но вот тактически, в ближайшие 5 лет, деятель будет прав, и вот почему

запрос надо писать так:

select * 
from phonebook 
where    last_name like "ivonov"
      or last_name like "_vonov"
      or last_name like "i_onov"
      or last_name like "iv_nov"
      or last_name like "ivon_v"
      or last_name like "ivono_"


да, работы базе добавится в несколько раз, но

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

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

собственно этим по идее и должны заниматься теоретики, а не хаскелем
Re[3]: Велосипедостроение
От: m e  
Дата: 03.03.12 04:58
Оценка:
М>у тебя вообще полнотекстовой поиск, причем нечеткий (написали фамилию с ошибкой). ms sql этого не умеет в принципе, да и не для того он предназначен.

да, и еще -- pgsql умеет подцеплять определенные юзером индексы (понятно, что они пишутся на си), и думаю умеет делать нечеткий поиск
Re[3]: Велосипедостроение
От: m e  
Дата: 03.03.12 05:09
Оценка:
а еще возможен вариант
select phonebook.*, levenshtein_distance(phonebook.family_name, "ivonov") as d
from phonebook
order by d
limit 10

опять-таки, тут в человеческой БД будет возможность накатать levenshtein_distance на си, и 99% что это давно уже сделано
Re[3]: Велосипедостроение
От: m e  
Дата: 03.03.12 05:27
Оценка:
опять же, посмотрев стратегически -- я с тобой согласен, нефиг прыгать с инструмента на инструмент из-за каких-то мелочей

а тактически -- предоставляет ли питон что-то похожее на linq с приемлемой степенью удобства? или ты собрался ручками сортировать?
Re[4]: Велосипедостроение
От: Цыба Украина  
Дата: 03.03.12 06:20
Оценка:
Здравствуйте, Klatu, Вы писали:

K>Здравствуйте, мыщъх, Вы писали:


М>>один из самых популярных языков программирования XXI века был спроектирован и реализован за 10 дней. и это не единственный пример.


K>какой?


JavaScript
Re[5]: Велосипедостроение
От: Цыба Украина  
Дата: 03.03.12 06:24
Оценка:
upd

http://brendaneich.com/2011/06/new-javascript-engine-module-owner/

>> As you may know, I wrote JavaScript in ten days. JS was born under the shadow of Java, and in spite of support by marca and Bill Joy, JS in 1995 was essentially a one-man show.
Re: Велосипедостроение
От: Codechanger Россия  
Дата: 03.03.12 06:50
Оценка:
Здравствуйте, b-3, Вы писали:

b-3>Не знаю, сюда или в КСВ. Из форума "О работе":


___>>>"Кодеры-задроты", это как раз те, кто кидаются модными словечками, CRM, WCF, WWF, WPF, WTF, Sharepoint, MVP etc.

C>> Откуда такая нелюбовь к дотнету, мне вот интересно?

b-3>Я немного недолюбливаю дотнет. Дотнет рождает евангелистов. Ну как "сон разума"...


b-3>А если без шуток, то какой инженер будет любить code monkey, выучившего "на сертификат" наизусть 800 функций API? Ну то есть, любить-то можно, если это супруга или щедрый заказчик, но признавать коллегой человека, который фактически занимается не разработкой, а деятельностью вроде конфигурирования один-цэ, только на сишарпе? Можно ли назвать коллегой человека, который пройдёт мимо свободной библиотеки со словами "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", только чтоб не думать о том, за что не платят?.. Как относиться к тем, кто, часто небесплатно, осуждает "низкотехнологический" подход?


1.OpenSource не является синонимом лучшего. Равно как и платные библиотеки.

2. На сертификат не надо учить 800 функций API, всего лишь дампы.Впрочем, конкретно я считаю, что сертификация MS в нынешнем виде ничего не подтверждает и ничего не опровергает в плане уровня знаний конкретного человека.

3. Под любую задачу есть свой инструмент. В частности, если для разработки трехзвенки мне удобно использовать стек WCF+WPF+EF+SQL, то почему бы и нет, особенно если SQL Express хватает.

b-3>Важнейшим микрософтовском изобретением стал гибрид разработчика и продавца пылесосов Кирби. Домашняя техника это хорошо, но минимальное здравомыслие позволяет обеспечить уборку дома без ежеквартальной покупки запчастей на пылесос дороже, чем для автомобиля. В конце концов, кому нужен сложный моющий агрегат, ставит задачу, формулирует требования, идёт и приобретает разумное решение за разумную цену. То есть, выделяет проблему, производит исследование предметной области, разделяет существенные и несущественные требования, анализирует существующие предложения вендоров и так далее.


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

b-3>В случае с фреймворками, неквалифированному потребителю лучше просто не давать возможности выбора между "1000 строк без фреймворка" vs "100 строк с использованием библиотеки WTF". И это не потому, что самым популярным языком в мире является Java. А потому что цена кода в основном объясняется его технической сложностью, а не числом велосипедов на километр. Цена проявляется, когда "100 строк на WTF" начинают требовать ста юнит-тестов, десятка часов в профайлере, покупки спец.тулзы для отладки под конкретно эту технологию — а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. Через десять лет код Петровича в неизменном виде предстанет глазу новорождённого фанбоя, который с криками "опять легаси-код!!!" попытается переделать это на новом WTF-е. Переделка займёт в три раза больше времени, чем заняло бы написание с нуля. А ещё через пол-года, как назло, возникнет задача перенести разработку на платформу, где нет новейшей технологии WTF, и переделанный код придётся окончательно выкинуть, ведь сделать столь сложную функциональность без WTF невозможно...


Мне кажется, тут вы немного смешиваете понятия. Давайте сразу договоримся о терминах и определениях.

1. Любой код стоит делить на кросс платформенный и не кроссплатформенный. Скажем, криптографические алгоритмы — пример типичного кроссплатформенного кода.UI — пример кода не кроссплатформенного(тут могут начаться возражения,но,в принципе, это нормально).

2. Код Петровича хорош тогда, когда он работает и когда его внезапно не надо переписывать, а Петрович заболел/умер/уволился. Также Петрович любит делать коммиты раз в полгода, что приводит к мерджам в ветках по два месяца (это так, пример более приближенный к реальной жизни).Но Петрович хороший алгоритмист.

b-3>Безусловно, умение писать велосипеды не приносит пользы современному программисту. Как и умение клеить, резать, пилить и паять — потребителю современной бытовой техники. Однако без понимания, "как это устроено", "какого это требует обслуживания" и "чем это можно заменить", потребитель что фреймворков, что пылесосов будет оказываться в положении блондинки, купившей себе автополотёр-суперочиститель. Что же до человека с техническим образованием, евангелиста-продавца пылесосов, который ей эту ерунду впарил, так многие будут считать его мошенником и бить лицо — хотя он, ничего личного, просто деньги зарабатывает.


Тут оставлю без комментариев.

b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?


1. Нет, не строю.
2. Да, трачу, если мне необходим определенный функционал(например, те же графы).
3. Если технология удобна, почему бы и нет.
Re[4]: Велосипедостроение
От: FR  
Дата: 03.03.12 07:03
Оценка:
Здравствуйте, m e, Вы писали:

ME>а тактически -- предоставляет ли питон что-то похожее на linq с приемлемой степенью удобства? или ты собрался ручками сортировать?


Если в языке есть нормальные ФВП, то это не проблема.
В питоне к тому же есть и альтернатива в виде итераторов http://docs.python.org/library/itertools.html
Ну и если уж совсем похоже на linq хочется то есть сторонние библиотеки, например https://github.com/JulienPalard/Pipe
print fib() | take_while(lambda x: x < 1000000) \
    | where(lambda x: x % 2) \
    | select(lambda x: x * x) \
    | add
Re: 300dpi, переход кол-ва в кач-во?
От: Географ Россия нет
Дата: 03.03.12 07:40
Оценка: 1 (1)
Здравствуйте, b-3, Вы писали:

b-3>В случае с фреймворками, неквалифированному потребителю лучше просто не давать возможности выбора между "1000 строк без фреймворка" vs "100 строк с использованием библиотеки WTF". И это не потому, что самым популярным языком в мире является Java. А потому что цена кода в основном объясняется его технической сложностью, а не числом велосипедов на километр. Цена проявляется, когда "100 строк на WTF" начинают требовать ста юнит-тестов, десятка часов в профайлере, покупки спец.тулзы для отладки под конкретно эту технологию — а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. Через десять лет код Петровича в неизменном виде предстанет глазу новорождённого фанбоя, который с криками "опять легаси-код!!!" попытается переделать это на новом WTF-е. Переделка займёт в три раза больше времени, чем заняло бы написание с нуля. А ещё через пол-года, как назло, возникнет задача перенести разработку на платформу, где нет новейшей технологии WTF, и переделанный код придётся окончательно выкинуть, ведь сделать столь сложную функциональность без WTF невозможно...

b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?

Тратим и строим. Только Петровича мы с приятелем в чём-то и постарше. По крайней мере один из нас :o).

Проблема уже в другом. Уже почти нет задач, требующих хорошего, надёжного кода. Они есть — но только в оборонке и космосе, которые умирают, как не нужные управляющей компании из жидовской Америки. Так, нет теперь производства материальных вещей, которые достанутся Вашим внукам. Задача — впарить то, что принципиально будет требовать переделки из-за сверхбыстрого изменения окружающей среды. Той-же микрософтовской операционки, которая перестаёт признавать 16 битовые программы, например.
Re[5]: Велосипедостроение
От: m e  
Дата: 03.03.12 08:08
Оценка:
FR>Если в языке есть нормальные ФВП, то это не проблема.
FR>В питоне к тому же есть и альтернатива в виде итераторов http://docs.python.org/library/itertools.html
FR>Ну и если уж совсем похоже на linq хочется то есть сторонние библиотеки, например https://github.com/JulienPalard/Pipe
FR>
FR>print fib() | take_while(lambda x: x < 1000000) \
FR>    | where(lambda x: x % 2) \
FR>    | select(lambda x: x * x) \
FR>    | add
FR>


ну может я и погорячился, и может и правда можно че-то замутить в виде

print_phonebook() | partial_sort(10, lambda x: -levenshtein(x.family_name, "ivonov"))


но я (как не знающий питон) в реальности не стал бы заморачиваться с питоном вместо sql -- профита мало

скажем, есть partial_sort в питоне?

если позарез нужно быстродействие и управляемость в с++ -- заморочился бы
Re[2]: Велосипедостроение
От: b-3 Россия  
Дата: 03.03.12 08:17
Оценка:
Здравствуйте, umnik, Вы писали:

U>Ну так покажите нам чудеса велосипедостроения написав замену SQL Serverу за два вечера в своем проекте

Я вам лучше покажу пример невелосипедостроения:

rsdn: Как правильно бороться с UAC?
Автор: AlexNek
Дата: 29.02.12


Я вполне допускаю, что, рассмотрев в своё время пару альтернатив "Microsoft WTF", в роли которого фигурирует SQL server Compact Edition, ребята могли сейчас не иметь подобной проблемы.
Или же это была б опенсорц-либа а-ля sqlite, которую можно отучить требовать прав админа для чтения из базы данных)
Забанен с формулировкой "клинический дисидент".
Re: Велосипедостроение
От: minorlogic Украина  
Дата: 03.03.12 08:59
Оценка: +3
Здравствуйте, b-3, Вы писали:

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

Например, написать клиент к БД это один класс задач со своими отработанными решениями.
А написать embeded 3д GIS просмотрщик типа GoogleEath это совсем другая задача.

b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?

Велосипеды не строим, используем готовое по максимуму. Конечно анализируя и тестируя.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re: Велосипедостроение
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.03.12 09:25
Оценка: :)
Здравствуйте, b-3, Вы писали:

b-3>Не знаю, сюда или в КСВ. Из форума "О работе":


___>>>"Кодеры-задроты", это как раз те, кто кидаются модными словечками, CRM, WCF, WWF, WPF, WTF, Sharepoint, MVP etc.

C>> Откуда такая нелюбовь к дотнету, мне вот интересно?

b-3>Я немного недолюбливаю дотнет. Дотнет рождает евангелистов. Ну как "сон разума"...


b-3>[bullshit skipped]


b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?


А что из перечисленного выше может быть заменено опенсорсной библиотекой или свои велосипедом? (WTF и MVP — нерелевантно).
Re[4]: Велосипедостроение
От: Sinclair Россия https://github.com/evilguest/
Дата: 03.03.12 10:13
Оценка:
Здравствуйте, m e, Вы писали:

ME>опять-таки, тут в человеческой БД будет возможность накатать levenshtein_distance на си, и 99% что это давно уже сделано

Ну, то есть, например, в том же SQL Server, для которого есть и бесплатный вариант.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.