Не знаю, сюда или в КСВ. Из форума "О работе":
___>>"Кодеры-задроты", это как раз те, кто кидаются модными словечками, 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, раз уж имеется таковая?
Здравствуйте, WolfHound, Вы писали:
WH>Его популярность основана только на одном факторе. Какой-то очень не хороший человек засунул его в браузеры.
Мне кажется, это была диверсия со стороны инопланетян. Чтобы мы не развивались слишком быстро. Объяснить это умопомешательство другими причинами я не могу.
Здравствуйте, b-3, Вы писали:
b-3>Я немного недолюбливаю дотнет. Дотнет рождает евангелистов. Ну как "сон разума"...
Такое хорошее начало. Приготовился уже к интересной дискуссии с серьёзным соперником, написавшим столь длинный опус...
b-3>А если без шуток, то какой инженер будет любить code monkey, выучившего "на сертификат" наизусть 800 функций API?
... и такой облом
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Цыба, Вы писали:
М>>>один из самых популярных языков программирования XXI века был спроектирован и реализован за 10 дней. и это не единственный пример. K>>какой? Ц>JavaScript
Его популярность основана только на одном факторе. Какой-то очень не хороший человек засунул его в браузеры.
Если бы не это о нем давно бы забыли.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Вы забываете, что сейчас програмистами зовут широкий круг людей , от программы на екселе до ассемблера и т.п. В зависимости от решаемых задач и квалификация требуется разная , и даже способности разные.
Например, написать клиент к БД это один класс задач со своими отработанными решениями.
А написать embeded 3д GIS просмотрщик типа GoogleEath это совсем другая задача.
b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?
Велосипеды не строим, используем готовое по максимуму. Конечно анализируя и тестируя.
Здравствуйте, 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.
A>Вообщем, мнение, что "раньше были титаны а сейчас обезьяны" преувеличено чуть более чем полностью.
Кто-то сказал такую фразу, мол, все, что было придумано, пока вам не исполнилось 15 — было всегда и воспринимается как данность.
Все, что было придумано, когда вам было до 30 — круто, интересно и с этим хочется связать свою жизнь.
Все, что придумано после 30 — глупость, ересь и этого быть не должно
Здравствуйте, мыщъх, Вы писали:
WH>>А если чувак при помощи вот этой фичи засунет нечеткое сравнение строк в MSSQL то все будет совсем круто. М>а в чем крутость-то?
Это способ засунуть любую функциональность в SQL сервер.
Те можно будет написать
select * where MyStringCmp(Name, 'khazanov')
М>строить собачью будку при помощи подъемного крана из бетонных плит? это не только дорого, но и монументально. в смысле непортабельно.
Портабильность не нужна чуть менее чем всегда.
М>данные, которыми мы оперируем, в нашем случае целиком умещаются в оперативную память (причем с огромным запасом прочности на вырост).
В этом случае SQL сервер будет летать.
М>в случае с базой данных, чувак делает SELECT * и обрабатывает результат скриптом.
Вот и покажи чуваку ту ссылку, которую я тебе дал.
Код будет исполняться в контексте SQL сервера. Причем не питонячая интерпретация, а оптимизированный машинный код.
М>скажите, в чем разница между 'SELECT *' и массивом/словарем? ms sql в данном случае был нужен лишь для предотвращения одновременного доступа на запись. ms sql разруливает такую ситуацию самостоятельно. впрочем, в питоне есть поддержка очередь, куда можно ставить запросы на запись.
MSSQL делает еще кое-что. Он сохраняет то, что в него записали на диск.
Причем с поддержкой ACID в полный рост.
Попробуй сделать ACID на питоне ручками.
Удачи.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
b-3>а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку.
... уходит в стабильную ветку в твоих розовых снах. В реальности же, 1000 строк, написанных за 2 вечера, не уходят дальше отдела тестирования, который первый раз вернёт, потому "не стартует", потом будет много раз в возвращать, потому что любая попытка проверить этот код на граничных условиях будет его заваливать с невразумительной ошибкой. Петрочич будет будет суетиться вокруг, приговаривая "у меня всё работает" или "вы, наверное, не так запускаете" или "а зачем вы в имя ввели апостроф, у нас здесь что, Ирландия?"
Вообщем, мнение, что "раньше были титаны а сейчас обезьяны" преувеличено чуть более чем полностью.
Здравствуйте, avpavlov, Вы писали:
A>Мне вот почему-то кажется, что при использовании фрэймворка труднее прострелить себе ногу, потому что фрэймворк ограничивает варианты использования себя.
Зато как только потребуется сделать что то, что во фреймворке не предусмотрели (а предусмотреть всё просто нереально) то результат иногда напоминает внезапный взрыв гранаты в заднице.
A>>>Вообщем, мнение, что "раньше были титаны а сейчас обезьяны" преувеличено чуть более чем полностью. b-3>>Ну вообще-то понятие code monkey появилось именно в последние 15 лет A>Ну т.е когда появились фрэймворки. И "титаны", не пожелавшие их изучать, обозвали тех, кто их использует, обезьянами"
Нет. Обезьяна это кто без фреймворка даже пописать сходить (кроме как под себя) не сможет.
Здравствуйте, oldjackal, Вы писали:
b-3>>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?
O> У вас крайне странные представления о промышленной разработке. Никто никогда новейшие WTF-ы не использует. За новейшими супер-пупер-фреймворками пожалуйте в провальные стартапы, а в мире технологий Microsoft здоровый консерватизм ценится более всех прочих достоинств.
Конечно, именно здоровый консерватизм привёл к Metro UI, Aero, Managed C++, C++/CLI, OLE DB и множеству других технологий, которые ну очень органично вошли в популярные средства разработки?
Здравствуйте, b-3, Вы писали:
b-3>В случае с фреймворками, неквалифированному потребителю лучше просто не давать возможности выбора между "1000 строк без фреймворка" vs "100 строк с использованием библиотеки WTF". И это не потому, что самым популярным языком в мире является Java. А потому что цена кода в основном объясняется его технической сложностью, а не числом велосипедов на километр. Цена проявляется, когда "100 строк на WTF" начинают требовать ста юнит-тестов, десятка часов в профайлере, покупки спец.тулзы для отладки под конкретно эту технологию — а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. Через десять лет код Петровича в неизменном виде предстанет глазу новорождённого фанбоя, который с криками "опять легаси-код!!!" попытается переделать это на новом WTF-е. Переделка займёт в три раза больше времени, чем заняло бы написание с нуля. А ещё через пол-года, как назло, возникнет задача перенести разработку на платформу, где нет новейшей технологии WTF, и переделанный код придётся окончательно выкинуть, ведь сделать столь сложную функциональность без WTF невозможно... b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?
Тратим и строим. Только Петровича мы с приятелем в чём-то и постарше. По крайней мере один из нас :o).
Проблема уже в другом. Уже почти нет задач, требующих хорошего, надёжного кода. Они есть — но только в оборонке и космосе, которые умирают, как не нужные управляющей компании из жидовской Америки. Так, нет теперь производства материальных вещей, которые достанутся Вашим внукам. Задача — впарить то, что принципиально будет требовать переделки из-за сверхбыстрого изменения окружающей среды. Той-же микрософтовской операционки, которая перестаёт признавать 16 битовые программы, например.
Здравствуйте, b-3, Вы писали:
b-3> который фактически занимается не разработкой, а деятельностью вроде конфигурирования один-цэ, только на сишарпе?
А что такое, по вашему, разработка?
b-3> Можно ли назвать коллегой человека, который пройдёт мимо свободной библиотеки со словами "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", только чтоб не думать о том, за что не платят?..
Думать — занятие высокорисковое и дорогостоящее. Если коммерческая библиотека, с поддержкой и прибамбасами, стоит дешевле чем думать самому, то почему бы ее и не выбрать?
b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?
У вас крайне странные представления о промышленной разработке. Никто никогда новейшие WTF-ы не использует. За новейшими супер-пупер-фреймворками пожалуйте в провальные стартапы, а в мире технологий Microsoft здоровый консерватизм ценится более всех прочих достоинств.
Здравствуйте, b-3, Вы писали:
b-3>Не знаю, сюда или в КСВ. Из форума "О работе":
___>>>"Кодеры-задроты", это как раз те, кто кидаются модными словечками, CRM, WCF, WWF, WPF, WTF, Sharepoint, MVP etc. C>> Откуда такая нелюбовь к дотнету, мне вот интересно?
b-3>Я немного недолюбливаю дотнет. Дотнет рождает евангелистов. Ну как "сон разума"...
b-3>[bullshit skipped]
b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?
А что из перечисленного выше может быть заменено опенсорсной библиотекой или свои велосипедом? (WTF и MVP — нерелевантно).
Здравствуйте, мыщъх, Вы писали:
М>на самом деле, тут проблемы в другом. нужно обеспечить сериализацию и доступ из нескольких потоков (т.к. это работает на серверной стороне), юзер может добавлять свое имя, а другой юзер в это время его искать. на питоне для этого нужно приложить немного усилий, чтобы не получить непредсказуемое поведение. чувак возложил эту задачу на ms sql.
И правильно сделал.
А если чувак при помощи вот этой фичи засунет нечеткое сравнение строк в MSSQL то все будет совсем круто.
А если чуваку понадобится делать выборку не только по имени, но и по полям, по которым можно построить индекс то питон будет порван на мелкие кровавые ошметки.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, мыщъх, Вы писали:
М>>на самом деле, тут проблемы в другом. нужно обеспечить сериализацию и доступ из нескольких потоков (т.к. это работает на серверной стороне), юзер может добавлять свое имя, а другой юзер в это время его искать. на питоне для этого нужно приложить немного усилий, чтобы не получить непредсказуемое поведение. чувак возложил эту задачу на ms sql. WH>И правильно сделал.
то есть вы считаете, что 'SELECT *' это правильно?
WH>А если чувак при помощи вот этой фичи засунет нечеткое сравнение строк в MSSQL то все будет совсем круто.
а в чем крутость-то? строить собачью будку при помощи подъемного крана из бетонных плит? это не только дорого, но и монументально. в смысле непортабельно.
WH>А если чуваку понадобится делать выборку не только по имени, но и по полям, по которым можно построить индекс то питон будет порван на мелкие кровавые ошметки.
данные, которыми мы оперируем, в нашем случае целиком умещаются в оперативную память (причем с огромным запасом прочности на вырост). в случае с базой данных, чувак делает SELECT * и обрабатывает результат скриптом.
скажите, в чем разница между 'SELECT *' и массивом/словарем? ms sql в данном случае был нужен лишь для предотвращения одновременного доступа на запись. 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.
Здравствуйте, мыщъх, Вы писали:
М>согласен с вами, что есть к базе прикрутить нечеткий поиск, то все будет замечательно (хотя и расточительно), но тут встает вопрос как это к базе прикрутить. к тому же ошибка может быть больше, чем в одной букве. особенно в английском. допустим, вы помните, что человека зовут френсис айдисо. или ахисо. или родико. даже тупой ms аутлук (не в курсе какой версии) мгновенно находит все варианты -- достаточно начать набирать фио как вы его помните. и рядом с ним высвечиваются его данные -- кто он, в каком городе живет... это _очень_ упрощает работу с телефонной книгой.
Не буду говорить за все СУБД, но применительно к SQL Server:
1. В MSSQL есть встроенный full-text search engine.
2. В T-SQL есть встроенная функция SOUNDEX, которая как раз и предназначена для сравнения степени схожести строк (конечно, алгоритм не очень мощный, но справляется со случаями типа Smith vs Smythe).
3. Прикрутить новый алгоритм нечеткого поиска к базе совсем несложно.
Варианты на выбор:
— через DLL (extended stored procedure)
— через COM (OLE automathion — sp_OACreate, sp_OAMethod)
— через .NET сборку
Естественно, никто не запрещает реализовать этот алгоритм на SQL.
Здравствуйте, avpavlov, Вы писали:
b-3>>а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. A>... уходит в стабильную ветку в твоих розовых снах. В реальности же, 1000 строк, написанных за 2 вечера, не уходят дальше отдела тестирования, который первый раз вернёт, потому "не стартует", потом будет много раз в возвращать, потому что любая попытка проверить этот код на граничных условиях будет его заваливать с невразумительной ошибкой. Петрочич будет будет суетиться вокруг, приговаривая "у меня всё работает" или "вы, наверное, не так запускаете" или "а зачем вы в имя ввели апостроф, у нас здесь что, Ирландия?"
Не согласен. В течение первых 10 лет стажа человек приучается либо всё покрывать тестами, либо думать над кодом. Либо уходит из отрасли )
Вопрос-то в другом: "100 строк на WTF" абсолютно не исключают: > "не стартует" > потом много раз возвращать > у меня всё работает > вы, наверное, не так запускаете
И в чём тут выигрыш в плане тестирования — не ясно. Зато TDD вместо мозга+новейшая технология WTF вредят проекту глобально, порождая кривую непродуманную архитектуру. В отличие от хорошо локализованного велосипеда Петровича.
Выделять же время под "мы должны переписать нашу кривую архитектуру" намного более печальное занятие, чем под "мы должны заменить наш велосипед"
A>Вообщем, мнение, что "раньше были титаны а сейчас обезьяны" преувеличено чуть более чем полностью.
Ну вообще-то понятие code monkey появилось именно в последние 15 лет
Здравствуйте, WolfHound, Вы писали:
Ц>>JavaScript WH>Его популярность основана только на одном факторе. Какой-то очень не хороший человек засунул его в браузеры. Если бы не это о нем давно бы забыли.
Здравствуйте, netch80, Вы писали:
O>> У вас крайне странные представления о промышленной разработке. Никто никогда новейшие WTF-ы не использует. За новейшими супер-пупер-фреймворками пожалуйте в провальные стартапы, а в мире технологий Microsoft здоровый консерватизм ценится более всех прочих достоинств.
N>Конечно, именно здоровый консерватизм привёл к Metro UI, Aero, Managed C++, C++/CLI, OLE DB и множеству других технологий, которые ну очень органично вошли в популярные средства разработки?
Вы бы различали саму Microsoft и разработчиков, пользующихся их технологиями. Microsoft этих самых разработчиков еще убеждать надо переходить на новые WTF-ы. И далеко не всегда у них это получается сделать. Это совершенно нормальная ситуация. Было бы хуже если бы Microsoft стояла на месте и ничего бы не делала, как это с Java происходит. А так получается здоровая эволюция — Microsoft рожает уродцев и выбрасывает их в реальную жизнь, и немногие из уродцев выживают и становятся полноценными членами общества. Это прогресс. Хороший такой, сдержанный консерватизмом публики. А вот когда консерватизм исходит не от публики, а от хозяев технологии, тогда все плохо, тогда смрад и тлен.
А как быть, если у меня такое же как у автора отношение к ява/c# кодерами, но при этом в своих проектах стараюсь не допускать велосипедов вообще (лучше найти готовую библиотечку)? )))
Здравствуйте, b-3, Вы писали:
b-3>словами "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", только чтоб не думать о том, за что не платят?.. Как относиться к тем, кто, часто небесплатно, b-3>технологию — а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. Через десять лет код Петровича в неизменном виде предстанет глазу новорождённого
Ну так покажите нам чудеса велосипедостроения написав замену SQL Serverу за два вечера в своем проекте
Здравствуйте, мыщъх, Вы писали:
М>один из самых популярных языков программирования XXI века был спроектирован и реализован за 10 дней. и это не единственный пример.
какой?
М>когда в ms sql загружают телефонную книгу -- мне становится страшно. как-то зашел спор с одним таким деятелем. я ему говорю -- ну напиши скрипт на питоне с ассоциативными массивами.
Тоже оверкилл. Отсортированный по алфавиту текстовый файл — более чем достаточно. Проще, быстрее и можно положить файл под контроль версий.
М>...короче, так и не убедил. данные хранятся в 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. ошибка здесь менее критична
теперь, чтобы деятель оказался неправ, необходимо уметь из алгоритма генережа вот такого текста как выше генерить тот алгоритм, что ты будешь писать руками
собственно этим по идее и должны заниматься теоретики, а не хаскелем
М>у тебя вообще полнотекстовой поиск, причем нечеткий (написали фамилию с ошибкой). ms sql этого не умеет в принципе, да и не для того он предназначен.
да, и еще -- pgsql умеет подцеплять определенные юзером индексы (понятно, что они пишутся на си), и думаю умеет делать нечеткий поиск
Здравствуйте, Klatu, Вы писали:
K>Здравствуйте, мыщъх, Вы писали:
М>>один из самых популярных языков программирования XXI века был спроектирован и реализован за 10 дней. и это не единственный пример.
K>какой?
Здравствуйте, 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. Если технология удобна, почему бы и нет.
Здравствуйте, m e, Вы писали:
ME>а тактически -- предоставляет ли питон что-то похожее на linq с приемлемой степенью удобства? или ты собрался ручками сортировать?
Здравствуйте, umnik, Вы писали:
U>Ну так покажите нам чудеса велосипедостроения написав замену SQL Serverу за два вечера в своем проекте
Я вам лучше покажу пример невелосипедостроения:
Я вполне допускаю, что, рассмотрев в своё время пару альтернатив "Microsoft WTF", в роли которого фигурирует SQL server Compact Edition, ребята могли сейчас не иметь подобной проблемы.
Или же это была б опенсорц-либа а-ля sqlite, которую можно отучить требовать прав админа для чтения из базы данных)
Здравствуйте, m e, Вы писали:
ME>опять-таки, тут в человеческой БД будет возможность накатать levenshtein_distance на си, и 99% что это давно уже сделано
Ну, то есть, например, в том же SQL Server, для которого есть и бесплатный вариант.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, мыщъх, Вы писали:
М>...короче, так и не убедил. данные хранятся в ms sql. деятель делает запрос в стиле "select *" и дальше рулит алгос нечеткого соответствия, последовательно перебирающий все данные. ну вот на фига тут ms sql? только потому что так принято? или это фобия велосипедостроения?
Ты наверное умолчал детали что адресная книга является маленькой частью большой задачи, и другие части прекрасно используют БД для работы, а расстояния левенштейна по случайности отсуствует в MS SQL. Хотя если присмотреться то никто не мешает его туда записать и использовать прямо в тексте запроса.
Более того это позволяет в дальнейшем использовать более сложные запросы, например дополнять поиск фамилий поиском по категориями\отделам\еще каким-то параметрам. И тут начитает ms sql в какшки рвать любое наколеночное решение на любом прикладном языке.
Ты сейчас напоминаешь Шеридана из КСВ, который предлагал для каждого сетевого взаимодейстсвия писать свой протокол.
ЗЫ Фобия велосипедостроения — прекрасная вещь. Ибо велосипеды == говнокод почти всегда.
Здравствуйте, b-3, Вы писали:
0>>Ты что-то путаешь, дотнет не рождает евангелистов b-3>Хочешь сказать, он как отчизна, — требует героев?
Дотнет — это всего лишь технология, она не может кого-то там рожать или требовать.
Здравствуйте, WolfHound, Вы писали:
Ц>>JavaScript WH>Его популярность основана только на одном факторе. Какой-то очень не хороший человек засунул его в браузеры.
А ещё у него изначальное название забавное. WH>Если бы не это о нем давно бы забыли.
И правильно бы сделали.
Здравствуйте, b-3, Вы писали:
b-3>Не знаю, сюда или в КСВ. Из форума "О работе": ___>>>"Кодеры-задроты", это как раз те, кто кидаются модными словечками, CRM...
Здравствуйте, gandjustas, Вы писали:
G>А что из перечисленного выше может быть заменено опенсорсной библиотекой или свои велосипедом? (WTF и MVP — нерелевантно).
Здравствуйте, Klatu, Вы писали:
K>Здравствуйте, мыщъх, Вы писали:
М>>один из самых популярных языков программирования XXI века был спроектирован и реализован за 10 дней. и это не единственный пример. K>какой?
livescript, позднее переименованный в javascript.
М>>когда в ms sql загружают телефонную книгу -- мне становится страшно. как-то зашел спор с одним таким деятелем. я ему говорю -- ну напиши скрипт на питоне с ассоциативными массивами. K>Тоже оверкилл. Отсортированный по алфавиту текстовый файл — более чем достаточно. Проще, быстрее и можно положить файл под контроль версий.
смысл сортировки по алфавиту? как будет искать? например, вы ищите hazanov, а в телефонной книге он khazanov. или вы ищите cylemanjaru, а в телефонной книге он kilimanjaro.
по любому, имена нужно перебирать _все_ какие есть.
кстати, отсортированный список с бинарным поиском и добавлением/удалением новых элементов -- на питоне писать вручную. и это будет жуто тормозить, т.к. на питоне нет нормальных списков, а только гибрид списка с массивом.
на самом деле, тут проблемы в другом. нужно обеспечить сериализацию и доступ из нескольких потоков (т.к. это работает на серверной стороне), юзер может добавлять свое имя, а другой юзер в это время его искать. на питоне для этого нужно приложить немного усилий, чтобы не получить непредсказуемое поведение. чувак возложил эту задачу на 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.
Здравствуйте, m e, Вы писали:
М>>...короче, так и не убедил. данные хранятся в ms sql. деятель делает запрос в стиле "select *" и дальше рулит алгос нечеткого соответствия, последовательно перебирающий все данные. ну вот на фига тут ms sql? только потому что так принято? или это фобия велосипедостроения?
ME>в целом, так сказать стратегически, я с тобой согласен
ME>но вот тактически, в ближайшие 5 лет, деятель будет прав, и вот почему
ME>запрос надо писать так:
ME>select * ME>from phonebook ME>where last_name like "ivonov"
согласен с вами, что есть к базе прикрутить нечеткий поиск, то все будет замечательно (хотя и расточительно), но тут встает вопрос как это к базе прикрутить. к тому же ошибка может быть больше, чем в одной букве. особенно в английском. допустим, вы помните, что человека зовут френсис айдисо. или ахисо. или родико. даже тупой ms аутлук (не в курсе какой версии) мгновенно находит все варианты -- достаточно начать набирать фио как вы его помните. и рядом с ним высвечиваются его данные -- кто он, в каком городе живет... это _очень_ упрощает работу с телефонной книгой.
ME>да, работы базе добавится в несколько раз, но ME>1. нагенерить этот бойлерплейт легче, чем правильно написать свой алгоритм перебора
есть куча библиотек для нечеткого поиска, которые в том числе учитывают и контректные лингвистические заморочки (в частности, в русском можно писать "х" и как 'h' и как 'kh').
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.
Здравствуйте, b-3, Вы писали:
b-3>А если без шуток, то какой инженер будет любить code monkey, выучившего "на сертификат" наизусть 800 функций API? Ну то есть, любить-то можно, если это супруга или щедрый заказчик, но признавать коллегой человека, который фактически занимается не разработкой, а деятельностью вроде конфигурирования один-цэ, только на сишарпе? Можно ли назвать коллегой человека, который пройдёт мимо свободной библиотеки со словами "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", только чтоб не думать о том, за что не платят?.. Как относиться к тем, кто, часто небесплатно, осуждает "низкотехнологический" подход?
Конь в вакууме. Берешь свободную библиотеку — фактически берешь на себя ей майнтетанс и багфикс. Опаньки !
b-3>В случае с фреймворками, неквалифированному потребителю лучше просто не давать возможности выбора между "1000 строк без фреймворка" vs "100 строк с использованием библиотеки WTF". И это не потому, что самым популярным языком в мире является Java. А потому что цена кода в основном объясняется его технической сложностью, а не числом велосипедов на километр.
Цена кода без указания сроков жизни проекта смысла не имеет. Для разового проекта до года-двух можно наворотить всё что угодно и родить сколько угодно велосипедов, это обычно взлетает.
Зато проблемы с велосепидами и порогом сложности начинают выплывать примерно после этого срока — требования имеют свойство меняться. А если проект никакой не проект а долгосрочный продукт то требования часто меняются совершенно непредсказуемо для девелопера и не просто мешают, на них уходит основное время.
>Цена проявляется, когда "100 строк на WTF" начинают требовать ста юнит-тестов, десятка часов в профайлере, покупки спец.тулзы для отладки под конкретно эту технологию — а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. Через десять лет код Петровича в неизменном виде предстанет глазу новорождённого фанбоя, который с криками "опять легаси-код!!!" попытается переделать это на новом WTF-е. Переделка займёт в три раза больше времени, чем заняло бы написание с нуля. А ещё через пол-года, как назло, возникнет задача перенести разработку на платформу, где нет новейшей технологии WTF, и переделанный код придётся окончательно выкинуть, ведь сделать столь сложную функциональность без WTF невозможно...
Это пример вроде коня в вакууме. Велосипеды имеют крайне высокую сложность майнтенанса. Хаос начинается тогда, когда изменение требований затрагивает велосипед такого петровича.
b-3>Безусловно, умение писать велосипеды не приносит пользы современному программисту.
Приносит. Когда нужно быстро и дешево — велосипед самое эффективный вариант. На долгосрочных продуктах (sic!) это уже не пройдет и велосипеды дохнут пачками.
b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?
Строим. Тратим. Используем. Тут дело не только в дотнете. Язык и плафтформа должны давать вохможность хорошей декомпозиции модулей даже если требования могут менять когда попало, сколько угодно и абсолютно непредсказуемо. Если язык(и платформа) дает возможность легко и просто бить код на компоненты, то велосипеды легко выпиливаются и заменяются на нормальные компоненты.
Для того что бы это достичь, необходимо что бы
1 язык парсился очень легко
2 язык компилировался очень быстро
3 язык был заточен под фреймворки (фичи + если фича есть, то она работает всегда)
4 платформа умела качественную декомпиляцию
5 кривая обучения как можно более плавная
b-3>>а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку.
A>... уходит в стабильную ветку в твоих розовых снах. В реальности же, 1000 строк, написанных за 2 вечера, не уходят дальше отдела тестирования, который первый раз вернёт, потому "не стартует", потом будет много раз в возвращать, потому что любая попытка проверить этот код на граничных условиях будет его заваливать с невразумительной ошибкой. Петрочич будет будет суетиться вокруг, приговаривая "у меня всё работает" или "вы, наверное, не так запускаете" или "а зачем вы в имя ввели апостроф, у нас здесь что, Ирландия?"
Не, реальность гораздо прозаичнее. На проверку оказывается что 1000 строк петровича были первый раз написаны за два вечера, а потом еще 10 раз переписаны и суммарно в них вложен человеко-год работы.
Когда приходит "молодой специалист" (независимо от возраста) и пробует за два дня переписать его код с использованием современных средств за два дня, то естественно у него ничего не выходит.
Через два месяца в итоге получается код, который более адекватен текущей ситуации. Вот только через два месяца уже есть устойчивое мнение что "молодой специалист" еще молод и наивен, а технология — сырая. Хотя все метрики говорят что и технология получше, и программисты не хуже.
b-3>В течение первых 10 лет стажа человек приучается либо всё покрывать тестами
Ты противоречишь сам себе. В первом собщении темы ты увтерждал, что Петровичу не нужны тесты ("Цена проявляется, когда "100 строк на WTF" начинают требовать ста юнит-тестов...")
b-3>Вопрос-то в другом: "100 строк на WTF" абсолютно не исключают: >> "не стартует" >> потом много раз возвращать >> у меня всё работает >> вы, наверное, не так запускаете
Но "100 строк на фрэймворке, заточенного на работу с БД" исключили проблему экранирования апострофов (ну и, как следствие, SQL injection threat)
b-3>И в чём тут выигрыш в плане тестирования — не ясно. Зато TDD вместо мозга+новейшая технология WTF вредят проекту глобально, порождая кривую непродуманную архитектуру. В отличие от хорошо локализованного велосипеда Петровича.
Хорошо локализованный велосипед хорошо локализован только для Петровича. Тогда как использование фрэймворка предполагает, что код будет выглядеть знакомым большему числу программистов
b-3>Выделять же время под "мы должны переписать нашу кривую архитектуру" намного более печальное занятие, чем под "мы должны заменить наш велосипед"
Мне вот почему-то кажется, что при использовании фрэймворка труднее прострелить себе ногу, потому что фрэймворк ограничивает варианты использования себя.
A>>Вообщем, мнение, что "раньше были титаны а сейчас обезьяны" преувеличено чуть более чем полностью. b-3>Ну вообще-то понятие code monkey появилось именно в последние 15 лет
Ну т.е когда появились фрэймворки. И "титаны", не пожелавшие их изучать, обозвали тех, кто их использует, обезьянами"
Здравствуйте, gandjustas, Вы писали:
b-3>>>а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. A>>... уходит в стабильную ветку в твоих розовых снах. В реальности же, 1000 строк, написанных за 2 вечера, не уходят дальше отдела тестирования, который первый раз вернёт, потому "не стартует", потом будет много раз в возвращать, потому что любая попытка проверить этот код на граничных условиях будет его заваливать с невразумительной ошибкой. Петрочич будет будет суетиться вокруг, приговаривая "у меня всё работает" или "вы, наверное, не так запускаете" или "а зачем вы в имя ввели апостроф, у нас здесь что, Ирландия?"
BTW, это как раз вероятнее с молодым специалистом с фреймворком. Потому что тот Петрович уже собаку съел на подобных проблемах и везде, где надо, или подстелит, или сразу пометит "тут надо улучшить при ближайшей возможности".
G>Не, реальность гораздо прозаичнее. На проверку оказывается что 1000 строк петровича были первый раз написаны за два вечера, а потом еще 10 раз переписаны и суммарно в них вложен человеко-год работы.
Вполне возможно, но при этом переписка происходила не потому, что написано плохо, а потому, что требования менялись (причём большинство — в ту сторону, которую предложенный молодым специалистом WTF 3.0 или вообще не умеет, или с адскими костылями).
G>Когда приходит "молодой специалист" (независимо от возраста) и пробует за два дня переписать его код с использованием современных средств за два дня, то естественно у него ничего не выходит.
Верно, потому что "молодой специалист" в принципе не умеет работать с чужим кодом. А ещё потому, что он вместо того, чтобы сделать код сопровождаемым в соответствии с современными правилами, думает о том, чтобы "переписать с использованием современных средств".
Не поверите, но в профильной литературе нет ни слова про "переписывание с использованием современных средств", хотя разделяется несколько видов seam'ов, mock'ов и прочего.
G>Через два месяца в итоге получается код, который более адекватен текущей ситуации. Вот только через два месяца уже есть устойчивое мнение что "молодой специалист" еще молод и наивен, а технология — сырая. Хотя все метрики говорят что и технология получше, и программисты не хуже.
Если "молодой специалист" по Вашему описанию сделает код лучше, то он не будет считаться молодым и наивным (а если так, то из этой конторы надо плавно уходить). Но это слишком невероятная ситуация. Вероятная — это когда он потребует месяц на переделку с нуля и через год выкатит кривой и сырой аналог.
Здравствуйте, b-3, Вы писали:
b-3>Не знаю, сюда или в КСВ. Из форума "О работе":
___>>>"Кодеры-задроты", это как раз те, кто кидаются модными словечками, CRM, WCF, WWF, WPF, WTF, Sharepoint, MVP etc. C>> Откуда такая нелюбовь к дотнету, мне вот интересно?
b-3>Я немного недолюбливаю дотнет. Дотнет рождает евангелистов. Ну как "сон разума"...
Вы преувеличиваете. Во всяком случае тогда уж уместно говорить о дотнете и жабе. Ибо разница только в названиях этих модных словечек))
b-3>А если без шуток, то какой инженер будет любить code monkey, выучившего "на сертификат" наизусть 800 функций API? Ну то есть, любить-то можно, если это супруга или щедрый заказчик, но признавать коллегой человека, который фактически занимается не разработкой, а деятельностью вроде конфигурирования один-цэ, только на сишарпе? Можно ли назвать коллегой человека, который пройдёт мимо свободной библиотеки со словами "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", только чтоб не думать о том, за что не платят?.. Как относиться к тем, кто, часто небесплатно, осуждает "низкотехнологический" подход?
Ну вовсе не обязательно SQL Server, у меня на работе к примеру больше любят Oracle)) А если быть совсем честным то свободные библиотеки это конечно очень мило, но:
1. GPL иногда кусается. О свободе как раз говорить не приходиться.
2. Поддержку порой хочеться. А то вместо использования библиотеки дописываешь её, вместо программы.
3. Иногда качество кода оставляет желать лучшего. Много лучшего. Не факт что аналог лучше, но там есть хоть надежда))
4. Не все свободные открытые библиотеки имеют хорошую совместимость с виндой (ну типа собрать студией или вообще использовать на win api). А для клинского ПО это ну очень востребовано.
5. Если по в котором используется библиотека приносит доход, то почему нельзя часть этого дохода тратить на "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", снижая собственные издержки (пункт 2)? Просто экономика и ничего более.
ну и так далее. В общем причин использовать не одно, а другое может быть куча. Но это ведь не повод обвинять в сознательном пренебрежении свободными открытыми библиотеками или наоборот использовать только их.
Ну а с "низкотехнологический" подход-ом я не согласен.
b-3>Важнейшим микрософтовском изобретением стал гибрид разработчика и продавца пылесосов Кирби. Домашняя техника это хорошо, но минимальное здравомыслие позволяет обеспечить уборку дома без ежеквартальной покупки запчастей на пылесос дороже, чем для автомобиля. В конце концов, кому нужен сложный моющий агрегат, ставит задачу, формулирует требования, идёт и приобретает разумное решение за разумную цену. То есть, выделяет проблему, производит исследование предметной области, разделяет существенные и несущественные требования, анализирует существующие предложения вендоров и так далее.
Аналогия немного оторвана от реальности. Не понятно, что мешает быть продуктам майкрософта приобретаемым "разумное решение за разумную цену". Разумеется не во всех ситуациях.
b-3>В случае с фреймворками, неквалифированному потребителю лучше просто не давать возможности выбора между "1000 строк без фреймворка" vs "100 строк с использованием библиотеки WTF". И это не потому, что самым популярным языком в мире является Java. А потому что цена кода в основном объясняется его технической сложностью, а не числом велосипедов на километр. Цена проявляется, когда "100 строк на WTF" начинают требовать ста юнит-тестов, десятка часов в профайлере, покупки спец.тулзы для отладки под конкретно эту технологию — а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. Через десять лет код Петровича в неизменном виде предстанет глазу новорождённого фанбоя, который с криками "опять легаси-код!!!" попытается переделать это на новом WTF-е. Переделка займёт в три раза больше времени, чем заняло бы написание с нуля. А ещё через пол-года, как назло, возникнет задача перенести разработку на платформу, где нет новейшей технологии WTF, и переделанный код придётся окончательно выкинуть, ведь сделать столь сложную функциональность без WTF невозможно...
Все описное имеет отчасти место. Но тогда программировать надо на чистом Си без всяких плюсов)).
b-3>Безусловно, умение писать велосипеды не приносит пользы современному программисту. Как и умение клеить, резать, пилить и паять — потребителю современной бытовой техники. Однако без понимания, "как это устроено", "какого это требует обслуживания" и "чем это можно заменить", потребитель что фреймворков, что пылесосов будет оказываться в положении блондинки, купившей себе автополотёр-суперочиститель. Что же до человека с техническим образованием, евангелиста-продавца пылесосов, который ей эту ерунду впарил, так многие будут считать его мошенником и бить лицо — хотя он, ничего личного, просто деньги зарабатывает.
Я вас в этом абзаце не понял.
b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?
Да. Да. Нет. Но пользую WPF, LINQ, ASP.NET и очень этому рад. И кстати собственные велосипеды и открытые библиотеки вещи немного противоположные друг другу))
Подозреваю я немного не уловил суть ваших мыслей. Дотнет как таковой близнец жабы — так что претензии должны быть в обе стороны. C# вполне себе удачный язык, я лично уже пару лет как все программки для автоматизации пишу на нем, а не на C++. Ну и если честно то мне нравиться дотнет, за LINQ и кучу встроенных библиотек. Если вы знаете SQL и познакомитесь с этой библиотекой/расширением C#, то может статься будете менее критичны. А по поводу встроенных библиотек — XML, в дотнете работать можно из коробки с вполне приемлемым api, а вот хорошая открытая библиотека того же для C++ это вопрос. Выбор то богатый, но то что работает с XML мне лично прошу будет написать на дотнете))