Какую роль играет «языковая культурная история» с платформой?

15

Я недавно наткнулся на этостатья несколько лет назад. В нем утверждается, что существенные различия в культуре, окружающей VB и C #, а не фактические различия в языке, способствуют тому, что C # -кодеры, как правило, более талантливы, чем VB-кодеры. Очевидно, что это вызвало много пламенных войн, и на вопрос о том, являются ли C # ers или VBers тупее, никогда не будет дан ответ. При этом авторы утверждают, что культура, окружающая определенную платформу, способствует повышению качества команды, все еще может быть правдоподобной. Например, несмотря на то, что на данный момент Java более эффективна для разработки приложений, команда разработчиков Google Go, вероятно, будет в среднем более высокого уровня, чем команда разработчиков Java, поскольку для изучения Go разработчик, вероятно, чтобы быть супер-ранним приемным и хакерский грабитель. Итак, в двух словах,Как культура, окружающая ту или иную платформу, влияет на качество среднего разработчика на этой платформе, если вообще влияет?

Морган Херлокер
источник
Это день C # против VB.NET?
@ DeveloperArt - Это не мое намерение. На самом деле, вопрос, который у меня возник, был интересен в связи с тем фактом, что статья кажется очень устаревшей сегодня, но концепция может быть уместна. Из статьи видно, что все разработчики C # - гении. Я один, так что я знаю из первых рук, что мы все можем быть такими же неряшливыми, когда бьет настроение.
Морган Херлокер
1
@Developer Art: я прочитал эту статью только вчера, и я почти уверен, что это была ссылка в ответе, которая привела меня к ней. Может быть, именно так и поступил профессор Плам - один вопрос C # против VB.NET приводит к другому. :-)
Carson63000

Ответы:

8

Действительно интересный вопрос. Мое личное мнение таково, что это тот вопрос, который задают слишком часто и на самом деле не держит воды вообще.

Сценаристы (и компании, которые их нанимают) позволяют языку выбора диктовать свой статус среди эшелонов «программистов». Хорошие инженеры могут не заботиться о выбранном языке, но сосредоточиться на решении данных проблем наиболее оптимальным способом (очевидно, что оптимальным является общее утверждение, и его можно применять ко многим различным факторам). Будь то C #, VB, C ++, Python или сборка, написанная от руки, это не имеет значения, поскольку есть очевидное преимущество использования этой технологии для решения проблемы.

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

Просто мои два цента на эту тему :)

Демиан Брехт
источник
2
+1: Кроме того, идея о том, что существует культура VB, которая каким-то образом выходит за границы компании, нелепа. Как эта культура сохранит себя? Секретные встречи среди программистов VB вне работы? «Объединение» или «гильдия» программистов VB для реализации этой «культуры»? Потратив 30 лет, пробираясь среди сотен IT-магазинов, я могу сказать, что единственная культура, которую я когда-либо видел, чисто локализована. Выбор языка не создает эту «другую» культуру, о которой идет речь в вопросе.
С.Лотт
1
Интересный. Если вы добавили +1, задайтесь вопросом, кто за что проголосовал и почему: P
Демиан Брехт
1
@ S.Lott: я исправлюсь тогда (должен любить побочный продукт предположений;)). В большинстве случаев я получал отрицательные отзывы по таким темам, не получая никакой обратной связи, которая иногда может оказаться полезной и предоставить мне информацию, о которой я раньше не замечал :)
Демиан Брехт
1
@prof: автоматизация ли на самом деле сделать один ниже, или вы думаете , выше , потому что они понимают , что ярлыки они могут предпринять , чтобы достигнуть того же самого выхода, но более эффективно? :) Конечно, это чрезмерное обобщение и почти невозможно ответить точно. Я как бы нахожусь на пути к тому, чтобы кодеры Go были более страстными. Вы все еще можете найти людей, которые так же увлечены Фортраном. Это было бы , однако, может привести меня к мысли , что программист Go более увлечен новой технологии и практике, которая является хорошей вещью имхо :)
Демьян Брехт
1
@Prof Plum: «выбор платформы / языка не имеет ничего общего со средним качеством разработчика». Верный. Как это может быть иначе? Культура организации важнее всего. Сами кодировщики Google Go - просто люди. Организация ограничивает людей VB или рекомендует их использовать Go. Люди все люди.
S.Lott
4

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

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

Как и религии, языки программирования, как правило, привлекают людей, которые уже имеют такую ​​же предрасположенность к основным принципам и философиям создателя языка.

Пример воспринимаемого качества решений

В одном лагере Microsoft у вас есть:

Философия C # заключается в том, что она является более чисто объектно-ориентированной, продвигает более современные идиомы и требует больше знаний, чтобы делать это правильно, и, следовательно, должна предоставлять более качественные решения. Это то, что привлекает людей к VB.

В другом лагере Microsoft:

Философия VB заключается в том, что я могу быстро и без особых знаний и усилий создать что-то, что позволит кому-то нажимать кнопку и делать что-то полезное и полезное для бизнеса, как это не так важно. Это то, что привлекает людей к C #.

Вот некоторые слова о языке и их философии:

Люди Perl, как правило, заботятся о совершенно противоположном, о чем заботятся люди Python.

Java люди заботятся о зарабатывании денег.

Языки JVM (Groovy, Scala) заботятся о JMV, а не о языке Java.

Все специфические языки Microsoft (VB, C #, F #, управляемый C ++) обычно заботятся о зарабатывании денег на Windows.

Люди Эрланга заботятся о вещах, о которых другим не нужно заботиться, и не ценят того, чего не знают.

Людям на Лиспе наплевать на то, что о них думают другие.

То, о чем заботятся эти группы, формирует язык, его развитие и сообщество.

Философия меняется с опытом и потребностями

Я принял 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.

Я до сих пор официально не принял Лисп, но в конечном итоге собираюсь! Я согласен с ним. Те, кто не знает шуток, обречены заново изобретать философию.


источник
0

Действительно интересный вопрос. Это один из тех, где вы понимаете ответ на подсознательном уровне, но стараетесь выразить его словами.

Лучше всего рассматривать его как причинно-следственную связь.

Культура отвечает за «этнический» состав разработчиков, привлеченных к платформе. Эта композиция, в свою очередь, определяет качества «среднего» программиста. Качество разработчиков, которые сейчас используют платформу, влияет на культуру или ее восприятие за пределами, что, следовательно, влияет на то, как разработчики приходят на платформу или покидают ее. Значение «качества» в результате изменяется.

Я пытался придумать конкретные правила, но мне сложно обобщать. Нам нужно отдельно исследовать каждую платформу. Несколько замечаний, которые я сделал:

  • Скорость, с которой разрабатывается, расширяется, совершенствуется конкретная платформа, напрямую связана с качеством разработчиков. Постоянный поток новых блестящих функций и инструментов привлекает разработчиков-энтузиастов (которые в среднем более способны к качественной работе) и отталкивает консервативных умов, которых раздражает постоянное обучение.

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

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


источник
Как эта культура выходит за границы компании?
S.Lott
1
@Lott Technology почти всегда выходит за рамки культурных границ. Между разными пользователями ОС существуют огромные культурные различия. Многие графические дизайнеры и звукорежиссеры, которых я знаю, подумают, что пойти в компанию, которая использовала что угодно, кроме Mac, было непростительно. Mac создал культуру вокруг этих двух групп, в частности, которая вполне осязаема. Языки программирования являются такими же инструментами, как Photoshop и GIMP, поэтому неудивительно, что вокруг них построены культуры. Если бы они этого не сделали, то у нас не было бы пламенных войн.
Морган Херлокер
@Prof Plum: Ваши примеры не соответствуют "культуре", основанной на инструментах. Ваши примеры с точностью до наоборот. Фактическая культура (аудиоинженеры) выбирает общие инструменты. Не то чтобы все пользователи Logic Pro были вынуждены стать аудиоинженерами, потому что каким-то образом Logic Pro создает культуру. Я думаю, что примеры в вашем комментарии (та же работа -> похожие инструменты) являются отличным доказательством того, что «языковой культурной истории» не существует. Скорее, существует общая культура использования или общая культура работы конечного пользователя.
S.Lott