Здравствуйте, VladD2, Вы писали:
VD>Если для них быстрый цикл был важен, то почему они не сменили язык на тот который обладает более быстрым циклом?
А если уже быстрый цикл не важен? А если уже технология отработана и встал вопрос лишь об эффективной ее реализации?
VD>Это ведь полная бессмыслица исходя из этих сообрежения выбрать С++. Уж у него то цикл только длиннее.
Цикл чего, простите, длиннее? Цикл внесения серьезных изменений — да, длиннее. Цикл разработки по "устаканившемуся" ТЗ — ничуть.
VD>Сдается мне, что причина была банальнее. К управлению проектом пришел фанат плюсов который нашел фатальный недостаток в продутке. Ну, вы знаете какой.
Сдается мне, что причина была еще более банальной — в возросшем количестве пользователей.
VladD2 wrote:
> C>Не так: "Эта куча Лиспового кода уже давно не дает нам никаких > C>конкурентных преимуществ, а после .COM-коллапса мы уже не можем держать > C>штат из 30 лаурятов премии Тьюринга для его поддержки. Так что пора его > C>по кусочкам переписать, а у нас тут как раз крутые С++-программисты из > C>отдела поиска есть.". > И денег им платить не надо... готовы работать за идею и хлеб. А что с > них взять? Маньяки...
Тут возможно сыграла роль и личность Грэхема, его высокомерие по
отношению к остальным языкам (похоже, что это отличительная черта
лисповцев).
Здравствуйте, VladD2, Вы писали:
VD>Интересно как можно выразить мысль еще? Человек вообще не понял о чем идет речь или намерено подменяет тему разговора.
VD>Спорить с подобным бессысленно. А объяснять то что было написано двумя сообщениями выше нет никакого желания.
Gaperton wrote:
> C>Вот, кстати, надо было начинать именно со Схемы с забаненым set'ом. > Надо было вообще взять МИТовский курс SICP на основе Scheme за основу > . Материалы курса, как вы видите, открыты.
Все, сегодня нашел время его просмотреть. Курс классный, только вот явно
не для наших университетов — часов не хватит
Хотелось бы что-нибудь сосредоточенное на функциональном
программировании, чтобы шло параллельно с теорией лямбда-исчисления. С
НАМ (Нормальные Алгоритмы Маркова) это получилось очень хорошо, теперь
надо расширить до функциональщины.
Еще неплохо бы и по логическому программированию чего-нибудь. Хотя по
Прологу литература еще с советских времен осталась (причем местами очень
даже неплохая).
Здравствуйте, eao197, Вы писали:
E>Я сам сталкиваюсь с тем, что сейчас проще найти Java и C# программистов, чем C++. Поэтому...
Ой, правда что ли? А я тут один забавный фактик знаю. Сейчас поделюсь... Думаю, АВК и Вольфхаунд не дадут сорвать.
В одной не безызвестной конторе искали C#-программиста. Долго искали... упорно... и не то чтобы претендентов не было. Но все эти притенденты были... ну, как бы по мягче сказать... не очень высокой квалификации. Мноие из низ не могли список в обратную сторону развернуть... Так вот искали они искали и нашли. Как ты думашь кого? Правильно — С++-программиста который между делом немного изучил C#. Ну, чё? Малость подучил C# и теперь вроде как даже успешно трудится на благо той конторы. Думаю ты догадался кто был тем С++ программистом?
В чем мораль? Дело в том, что хороших программистов мало. И это слабо зависит от языка. Более того. Чем проще язык, тем сложнее найти грамотного программиста пишущего на нем.
E> начинать проект на C++ и держать в уме такой фактор риска, как сложность замены выбывающих по разным причинам участников команды, уже тяжело. А теперь попробуем заменить C++ на Lisp. Ситуация по этим параметрам ухудшается на порядок, если не больше.
Думаю, что хорошего программиста можно за относительно небольшой строк переучить на любой язык. Так что проблемы Лиспа скорее в нем самом. Это и ФЯ, и с очень спорным синтаксисом. И если в области метапрограммирования такой синтаксис просто находка, то в области тупой реализации ТЗ он может оказаться очень плохим выбором. Мне кажется проблема Лиспа в том, что его на нем намного проще что-то написать нежели прочитать. Тут он сроди Перлу.
E>Ну и еще один фактор, который лично меня смущает в этой теме. Имхо, здесь слишком часто делаются голословные утверждения о том, что Lisp лучше, Lisp понятнее, на Lisp-е требуется меньше строк и т.д. Сразу вспоминается американская пословица: "Если ты такой умный, то почему ты не миллионер"?
+10
E>Если Lisp так хорош, да еще и появился бог знает когда, да еще и развивался в лучшую сторону все это время, то почему мы работаем с C/C++, Java, C#, Perl, VB? Почему,
Боюсь Лисповцы ответят — потамучта ты мэйнстримовая мышевозила.
E>И давайте не будем вспоминать про "миллионов мух, которые не могут ошибаться".
А на это ответят — надо Федя, надо!
E> В идустрии разработки ПО этих мух действительно миллионы, но они нуждаются в инструментах, которыми они в состоянии воспользоваться. И выигрывает тот, кто такие инструменты предлагает.
И все же дело не в мухах. Лично я предпочту более длинный, но более понятный код. Не же ли хакирский (в лучшем смысле этого слова) выверт укладывающий 5 строк в одну. В конечном итоге грамотно написанный код все равно сведется к некой функции или классу который скроет от меня все эти 5 (500 или сколько угодно) строк и предоставит мне удобную абстракцию.
... << RSDN@Home 1.2.0 alpha rev. 578>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
E>>Я сам сталкиваюсь с тем, что сейчас проще найти Java и C# программистов, чем C++. Поэтому...
VD>Ой, правда что ли? А я тут один забавный фактик знаю. Сейчас поделюсь... Думаю, АВК и Вольфхаунд не дадут сорвать.
VD>В одной не безызвестной конторе искали C#-программиста. Долго искали... упорно... и не то чтобы претендентов не было. Но все эти притенденты были... ну, как бы по мягче сказать... не очень высокой квалификации. Мноие из низ не могли список в обратную сторону развернуть... Так вот искали они искали и нашли. Как ты думашь кого? Правильно — С++-программиста который между делом немного изучил C#. Ну, чё? Малость подучил C# и теперь вроде как даже успешно трудится на благо той конторы. Думаю ты догадался кто был тем С++ программистом?
Э...Неужели Карл Маркс? (из анекдота про советского археолога, которому показали найденый на раскопках череп и спросили: "Кто это? Ну вы же знаете, вас этому учили.")
Так эта история с тобой, AndrewVK и WolfHound-ом произошла?
VD>В чем мораль? Дело в том, что хороших программистов мало. И это слабо зависит от языка. Более того. Чем проще язык, тем сложнее найти грамотного программиста пишущего на нем.
+11
Но опять же, аналогия с анекдотом:
-- Мама, а правда, свою настоящую, единственную любовь в жизни нужно долго искать?
-- Да дочка, но чтобы скоротать время, можно пару раз выйти замуж.
Видимо сложность, с которой на собеседованиях сталкиваюсь я, состоит в том, что сейчас многие молодые ребята вообще не знают C++. Т.е. им дали что-то в течени одного семестра, но назвать это обучением С++ я не решусь. При этом они C# и Java хоть в какой-то мере владеют и поэтому в C#/Java проект могут быть включены сразу же (на сопровождение или на наименее ответственные направления). И если кто-то из них действительно окажется хорошим программистом, то это вскоре станет понятно.
А вот с C++-ом ситуация сложнее. Для того, чтобы нормально программировать на C++ и включится в большой, уже идущий проект, необходим уровень выше среднего. Для этого нужно прочитать несколько серьезных книг (Страуструпа, Саттера, Вандервуда, Джосьютеса, а может даже и Александреску) и набить достаточное количество собственных шишек. Вот как раз таких людей найти у нас не просто. А если новичка в C++ пустить в проект, то самый лучший исход -- это постоянный мониторинг его кода посредством частых codereview.
И еще хорошо, если человек действительно молодой, не очень опытный, понимающий это и без понтов. Такого можно и нужно учить. Если попадается обучаемый товарищ, и не раздолбай, то толк из него получается. При этом немаловажно, что он соглашается на время обучения на более низкую оплату (ну нет возможности сейчас практикантам платить больше, чем они реально стоят с расчетом на то, что в будущем это окупится). Хуже когда на роль C++ программиста приходит "матерый", "опытный" С/Java/VB (у меня был именно такой опыт) программист. Если человек вменяемый, без понтов и мозги нормально работают, то главная проблема в размере оплаты на время его обучения (когда он в production-коде практически не участвует). Если человек согласен начинать с оплаты, ниже средней, то проблем нет. А вот если не согласен, то... И ведь стимула к изучению C++, как такового, нет. Ну нужно освоить C++ для того, чтобы работать в нашей конторе, а вот в соседней конторе он на уже известной ему Java будет прямо сейчас получать устраивающую его зарплату. Так зачем же прилагать лишние усилия, если результат представляется одинаковым?
А теперь попробуем заменить C++ на Lisp, которого вообще никто не знает (тот небольшой процент знающих Lisp RSDN-овцев можно считать статичстической погрешностью). Как говорится, маразм крепчал.
VD>И все же дело не в мухах. Лично я предпочту более длинный, но более понятный код. Не же ли хакирский (в лучшем смысле этого слова) выверт укладывающий 5 строк в одну. В конечном итоге грамотно написанный код все равно сведется к некой функции или классу который скроет от меня все эти 5 (500 или сколько угодно) строк и предоставит мне удобную абстракцию.
+1
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>И еще хорошо, если человек действительно молодой, не очень опытный, понимающий это и без понтов. Такого можно и нужно учить. Если попадается обучаемый товарищ, и не раздолбай, то толк из него получается. При этом немаловажно, что он соглашается на время обучения на более низкую оплату (ну нет возможности сейчас практикантам платить больше, чем они реально стоят с расчетом на то, что в будущем это окупится). Хуже когда на роль C++ программиста приходит "матерый", "опытный" С/Java/VB (у меня был именно такой опыт) программист. Если человек вменяемый, без понтов и мозги нормально работают, то главная проблема в размере оплаты на время его обучения (когда он в production-коде практически не участвует). Если человек согласен начинать с оплаты, ниже средней, то проблем нет. А вот если не согласен, то... И ведь стимула к изучению C++, как такового, нет. Ну нужно освоить C++ для того, чтобы работать в нашей конторе, а вот в соседней конторе он на уже известной ему Java будет прямо сейчас получать устраивающую его зарплату. Так зачем же прилагать лишние усилия, если результат представляется одинаковым?
Все это здорово, но с дотнетом та же самая ситуация. Тот, кто раньше писал на С++, перейдя на дотнет, первое время просто не в состоянии писать нормальный код, потому что упорно пытается применить старые техники, которые, чаще всего, просто не работают. Единственное преимущество дотнета и джавы в этом плане — проект на них меньше страдает от некачественного кода, а если пострадал, то очень быстро находится кто есть ху.
Здравствуйте, AndrewVK, Вы писали:
AVK>Все это здорово, но с дотнетом та же самая ситуация. Тот, кто раньше писал на С++, перейдя на дотнет, первое время просто не в состоянии писать нормальный код, потому что упорно пытается применить старые техники, которые, чаще всего, просто не работают. Единственное преимущество дотнета и джавы в этом плане — проект на них меньше страдает от некачественного кода, а если пострадал, то очень быстро находится кто есть ху.
Имхо, именно в этом у Java/C# и есть огромное преимущество перед C++. Поэтому и вход новичка в Java/C# проект менее болезненный, чем в C++ проект (инкубационный период гораздо короче).
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
eao197,
> AVK> Единственное преимущество дотнета и джавы в этом плане — проект на них меньше страдает от некачественного кода, а если пострадал, то очень быстро находится кто есть ху.
> Имхо, именно в этом у Java/C# и есть огромное преимущество перед C++. Поэтому и вход новичка в Java/C# проект менее болезненный, чем в C++ проект (инкубационный период гораздо короче).
И эта же нацеленность на компенсацию некачественного кода и помощь новичкам является их слабостью, т.к. в погоне за простотой они урезают возможности, которые могли бы оказаться полезными более квалифицированному программисту, а иногда, организуя "защиту от дурака" теряют в выразительности, которая могла бы пригодиться для более точного контроля, чем встроенный. Вот такая диалектика, понимаешь, получается...
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Павел Кузнецов, Вы писали:
>> AVK> Единственное преимущество дотнета и джавы в этом плане — проект на них меньше страдает от некачественного кода, а если пострадал, то очень быстро находится кто есть ху.
>> Имхо, именно в этом у Java/C# и есть огромное преимущество перед C++. Поэтому и вход новичка в Java/C# проект менее болезненный, чем в C++ проект (инкубационный период гораздо короче).
ПК>И эта же нацеленность на компенсацию некачественного кода и помощь новичкам является их слабостью, т.к. в погоне за простотой они урезают возможности, которые могли бы оказаться полезными более квалифицированному программисту, а иногда, организуя "защиту от дурака" теряют в выразительности, которая могла бы пригодиться для более точного контроля, чем встроенный. Вот такая диалектика, понимаешь, получается...
Угу. Выбирай, но осторожно. Но выбирай... ((С) Жванецкий)
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, AndrewVK, Вы писали:
AVK>>Все это здорово, но с дотнетом та же самая ситуация. Тот, кто раньше писал на С++, перейдя на дотнет, первое время просто не в состоянии писать нормальный код, потому что упорно пытается применить старые техники, которые, чаще всего, просто не работают. Единственное преимущество дотнета и джавы в этом плане — проект на них меньше страдает от некачественного кода, а если пострадал, то очень быстро находится кто есть ху.
E>Имхо, именно в этом у Java/C# и есть огромное преимущество перед C++. Поэтому и вход новичка в Java/C# проект менее болезненный, чем в C++ проект (инкубационный период гораздо короче).
Этот тезис более чем спорный. На самом деле, C# и Java -- надувательские языки, они не столько помогают бороться с ошибками, сколько их банально скрывают.
Здравствуйте, eao197, Вы писали:
E>Так эта история с тобой, AndrewVK и WolfHound-ом произошла?
Почти угадал. Не со мней.
E>
E>-- Мама, а правда, свою настоящую, единственную любовь в жизни нужно долго искать?
E>-- Да дочка, но чтобы скоротать время, можно пару раз выйти замуж.
E>Видимо сложность, с которой на собеседованиях сталкиваюсь я, состоит в том, что сейчас многие молодые ребята вообще не знают C++. Т.е. им дали что-то в течени одного семестра, но назвать это обучением С++ я не решусь. При этом они C# и Java хоть в какой-то мере владеют и поэтому в C#/Java проект могут быть включены сразу же (на сопровождение или на наименее ответственные направления). И если кто-то из них действительно окажется хорошим программистом, то это вскоре станет понятно.
Хоть в какой-то мере можно владеть абсолютно любым языком. Вот только востребовнны такие программисты не очень сильно.
E>А вот с C++-ом ситуация сложнее. Для того, чтобы нормально программировать на C++ и включится в большой, уже идущий проект, необходим уровень выше среднего.
Полная ерунда. Чтобы нормально программировать нужно просто уметь нормально программировать. И человек поверхносно знающий С++ ничем не будет отличаться от человека поверхносно знающего C#.
Другое дело, что человек знающий и C# и С++ потенциально более ценеен, так как он попросту дольше и более разнообразно тренировался. Кстати, вот таких C# and C++ Developer процентов 15 от всех С++-ных вакансий. Т.е. людям нужны C#-программисты, но "пропитанные солью". А пропитаться как раз проще всего трахаясь с С++.
E> Для этого нужно прочитать несколько серьезных книг (Страуструпа, Саттера, Вандервуда, Джосьютеса, а может даже и Александреску) и набить достаточное количество собственных шишек.
Шишек и форумов достаточно. Хотя книги в любой области полезны. Вот только грош цена тому кто начитался Алексондреску и забыл прочесть базовые вщи о дизайне, безопасности качестве и т.п.
Александреску полезен просто тем, что это хорошее выворачивание мозгов. Гикость такое чтиво увеличивает. Но читать ли Александреску или что-то про Скамл разницы никакой нет. Так что я пожалуй скорее соглашусь с идеей, что хороших программистов (в том числе и С++-) нужно обучать разным ФЯ. Ну, чтобы мозги так раком встали, что потом С++ показался бы детской забавой.
E>И еще хорошо, если человек действительно молодой, не очень опытный, понимающий это и без понтов.
С понтами скорее те кто считает С++-ников высшей кастой. Понимать здесь точно нечего.
E> Такого можно и нужно учить. Если попадается обучаемый товарищ, и не раздолбай, то толк из него получается.
Как в прочем и везде (на любом языке).
E> При этом немаловажно, что он соглашается на время обучения на более низкую оплату (ну нет возможности сейчас практикантам платить больше, чем они реально стоят с расчетом на то, что в будущем это окупится). Хуже когда на роль C++ программиста приходит "матерый", "опытный" С/Java/VB (у меня был именно такой опыт) программист.
А у меня был опыт когда я просто хринел от тупого С++-ника который нихрена не мог вникнуть в те самые Java/VB. Надо признать и на С++ он писал не лучшим образом. Вернее тот самый средний С++ он понимал, но вот то что нужно еще изучить то самое MFC на котором пишеш программу до него не доходило. Но это уже детали.
E> Если человек вменяемый, без понтов и мозги нормально работают, то главная проблема в размере оплаты на время его обучения (когда он в production-коде практически не участвует). Если человек согласен начинать с оплаты, ниже средней, то проблем нет. А вот если не согласен, то...
Еще раз. Это везде так. С++ тут не причем. Хороший C# программист стоит не дешево и его еще поискать надо. К сожалению в жизни больше тех кого можно назвать ниже среднего.
E> И ведь стимула к изучению C++, как такового, нет. Ну нужно освоить C++ для того, чтобы работать в нашей конторе, а вот в соседней конторе он на уже известной ему Java будет прямо сейчас получать устраивающую его зарплату. Так зачем же прилагать лишние усилия, если результат представляется одинаковым?
Не льсти себе. Нет у вас никакой касты. И в соседней конторе он получит по началу минимум. Ну, и если он 0, то высоких окладов ему не видать.
Ява же просто терпимее относится к ошибкам. И там где ламер (которые и бывают обычно дешевыми) насажает в С++ ошибок которые потом бригадов за пол года не вычистить, то на яве он просто сделает не эффектинове и кривое решение которое с помощью рефакторинга и какой-то матери получится хоть как-то запустить.
E>А теперь попробуем заменить C++ на Lisp, которого вообще никто не знает (тот небольшой процент знающих Lisp RSDN-овцев можно считать статичстической погрешностью). Как говорится, маразм крепчал.
Причем тут лисп? Уж на нем то сможет писать тот самый ламер. И даже резултат будет куда более безопасным. А ламеров всегда можно найти. Лисп в первую очередь не нужен работодателям (не будем обсуждать почему, но это факт). А раз нет спроса, то не будет и предложения. Вот Гапертон все время повторяет "вот в MIT первым языком используется Лисп...". Ну, и что? Я вот в школе пение проходил чуть ли не в первом классе. И что я что петь научился? А как я изумительно знаю химию... Студент знает, что Лисп ему при выходе на рабту и на фиг не упадет. Наших форумов с агитацией он еще не читает. Ну, и пройдет он ... мимо этого лиспа в лучем виде. Так что менять нужно (если вообще нужно) не образование, а производство. Будут нужны Лиспари — будут люди его по ночам зубрить. Тоже самое и с С++-никами.
РСДН изначально был С++-ным сайтом. Почти все кто стоял у его истоков (и даже я) был С++-ником до мозга костей. Любое голосование тип "Ххх sv. C++" на этом сайте несколько лет назад был бы проигран с разгромным счетом. А теперь дивись
. И это только начало.
VD>>И все же дело не в мухах. Лично я предпочту более длинный, но более понятный код. Не же ли хакирский (в лучшем смысле этого слова) выверт укладывающий 5 строк в одну. В конечном итоге грамотно написанный код все равно сведется к некой функции или классу который скроет от меня все эти 5 (500 или сколько угодно) строк и предоставит мне удобную абстракцию.
E>+1 E>
Ну, хоть в чем то мы стоим на единых позициях.
... << RSDN@Home 1.2.0 alpha rev. 578>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>И эта же нацеленность на компенсацию некачественного кода и помощь новичкам является их слабостью, т.к.
Ага. Конкуренцию гады создают... зарплаты сшибают.
ПК> в погоне за простотой они урезают возможности, которые могли бы оказаться полезными более квалифицированному программисту, а иногда, организуя "защиту от дурака" теряют в выразительности, которая могла бы пригодиться для более точного контроля, чем встроенный. Вот такая диалектика, понимаешь, получается...
Ну, в то что возможностей хватает ты все равно не повришь.
... << RSDN@Home 1.2.0 alpha rev. 578>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Шахтер, Вы писали:
Ш>Этот тезис более чем спорный. На самом деле, C# и Java -- надувательские языки, они не столько помогают бороться с ошибками, сколько их банально скрывают.
Примеры скрытия ошибок языком можно поглядеть?
... << RSDN@Home 1.2.0 alpha rev. 578>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.