Я недавно наткнулся на этостатья несколько лет назад. В нем утверждается, что существенные различия в культуре, окружающей VB и C #, а не фактические различия в языке, способствуют тому, что C # -кодеры, как правило, более талантливы, чем VB-кодеры. Очевидно, что это вызвало много пламенных войн, и на вопрос о том, являются ли C # ers или VBers тупее, никогда не будет дан ответ. При этом авторы утверждают, что культура, окружающая определенную платформу, способствует повышению качества команды, все еще может быть правдоподобной. Например, несмотря на то, что на данный момент Java более эффективна для разработки приложений, команда разработчиков Google Go, вероятно, будет в среднем более высокого уровня, чем команда разработчиков Java, поскольку для изучения Go разработчик, вероятно, чтобы быть супер-ранним приемным и хакерский грабитель. Итак, в двух словах,Как культура, окружающая ту или иную платформу, влияет на качество среднего разработчика на этой платформе, если вообще влияет?
источник
Ответы:
Действительно интересный вопрос. Мое личное мнение таково, что это тот вопрос, который задают слишком часто и на самом деле не держит воды вообще.
Сценаристы (и компании, которые их нанимают) позволяют языку выбора диктовать свой статус среди эшелонов «программистов». Хорошие инженеры могут не заботиться о выбранном языке, но сосредоточиться на решении данных проблем наиболее оптимальным способом (очевидно, что оптимальным является общее утверждение, и его можно применять ко многим различным факторам). Будь то C #, VB, C ++, Python или сборка, написанная от руки, это не имеет значения, поскольку есть очевидное преимущество использования этой технологии для решения проблемы.
Короче говоря, я думаю, что более ценно смотреть на сложность проблем, которые каждый решает на регулярной основе, а не на то, какой язык они используют для их решения.
Просто мои два цента на эту тему :)
источник
Качество кода, разработанного на каждом из этих языков, основано на этих фундаментальных принципах и в меньшей степени зависит от отдельных разработчиков.
У каждого языка есть культура вокруг него, потому что каждый язык был разработан по причине кем-то с повесткой дня и основополагающей философией того, почему их язык будет лучше чем- то, чем то, что существовало в то время, было создано.
Как и религии, языки программирования, как правило, привлекают людей, которые уже имеют такую же предрасположенность к основным принципам и философиям создателя языка.
Пример воспринимаемого качества решений
В одном лагере Microsoft у вас есть:
В другом лагере Microsoft:
Вот некоторые слова о языке и их философии:
То, о чем заботятся эти группы, формирует язык, его развитие и сообщество.
Философия меняется с опытом и потребностями
Я принял ASM и BASIC, потому что в 1983 году это было все, что у вас было. Я хотел писать игры и демоверсии, это были инструменты для этого. В основном ASM для демонстраций.
Я принял C, а затем C ++, когда это был единственный способ написать такие вещи, как 3D-рендеринг и почти все остальное, что было критично для пространства и времени. Это не было ASM, поэтому я научился этому.
Я использовал VB для заработка, это было ближе всего к Scala, Director и средам разработки CanDo, к которым я привык на Amiga. Я согласился с философией быстрого развития
Я принял Java на ранней стадии, чтобы заработать больше денег. Я зарабатывал на VB до 1999 года и оставил его, когда Java 1.2 стала стабильной и зрелой, и к тому времени веб-сайт полностью начал работать. У меня был 4-летний опыт работы с Java, когда люди действительно начали относиться к этому серьезно. Я согласился с записью один раз, где угодно , потому что чем больше мест в моем коде, тем легче будет его продать. философии.
Я принял Python поздно в его графике 2005 года, потому что он поцарапал зуд, которого не было в Java. Мне нужно было быстро написать код для использования некоторых библиотек, которые были доступны только в C, а также мне нужно было быстро создавать прототипы веб- сервисов. Python был быстрее и меньше кода, чтобы делать то же самое в Java. Что-то пошло в производство, так как Java осталась Python, многие вещи никогда не выходили на волю. Я согласился с включенными в него батареями, единой идиоматической философией и другими.
Я принял Lua, когда мне нужно было добавить легкий скриптовый движок в мои программы на C ++ и Java. Это было намного раньше, чем поддержка JSR233 в Java. Я согласился с тем, что встраивание полнофункционального языка сценариев, который прост в использовании, должно быть простой философией Lua.
Я принял Erlang в 2006 году, когда мне потребовалась огромная масштабируемость и относительно безболезненное многоядерное выполнение для высокопараллельных задач и кросс-платформенного исполнения. ** Я согласен с его отсутствием общего состояния, передачей сообщений, неизменной государственной философией. * 8
Я принял Objective-C, когда мне понадобилось создавать приложения для OSX и iOS. Я согласен с его добавлением правильного подхода к объектной ориентации в C, чтобы сделать его более подходящим . Также, чтобы заработать больше денег.
Я официально принял JavaScript в 2009 году, потому что я согласен с философией CouchDB, и он использует JavaScript. Все еще не люблю JavaScript, когда мне приходится иметь дело с DOM.
Я до сих пор официально не принял Лисп, но в конечном итоге собираюсь! Я согласен с ним. Те, кто не знает шуток, обречены заново изобретать философию.
источник
Действительно интересный вопрос. Это один из тех, где вы понимаете ответ на подсознательном уровне, но стараетесь выразить его словами.
Лучше всего рассматривать его как причинно-следственную связь.
Культура отвечает за «этнический» состав разработчиков, привлеченных к платформе. Эта композиция, в свою очередь, определяет качества «среднего» программиста. Качество разработчиков, которые сейчас используют платформу, влияет на культуру или ее восприятие за пределами, что, следовательно, влияет на то, как разработчики приходят на платформу или покидают ее. Значение «качества» в результате изменяется.
Я пытался придумать конкретные правила, но мне сложно обобщать. Нам нужно отдельно исследовать каждую платформу. Несколько замечаний, которые я сделал:
Скорость, с которой разрабатывается, расширяется, совершенствуется конкретная платформа, напрямую связана с качеством разработчиков. Постоянный поток новых блестящих функций и инструментов привлекает разработчиков-энтузиастов (которые в среднем более способны к качественной работе) и отталкивает консервативных умов, которых раздражает постоянное обучение.
Меньшее количество ограничений, предлагаемых платформой даже за счет более высокого риска выстрелить себе в ногу, одинаково привлекает восторженные экспериментальные умы
Чем сложнее вещи, которые нужно понять и освоить, чтобы использовать платформу, тем больше привлекают решительных людей и отпугивают ленивых разработчиков.
источник