Как противостоять перспективе "одного истинного языка"?

Как вы работаете с кем-то, когда они не смогли увидеть, что существует целый ряд других языков вне "Единственного истинного пути"?

Я имею в виду кого-то, кто не понимал, что у современного профессионального профессионала есть набор инструментов в его панели инструментов. Человек, чья реакция на коленный рефлекс, например, "Мы должны сделать это, это С++!" "Все должно быть сделано на С++!"

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

Ответ 1

До тех пор, пока есть допустимые причины для этого в С++, я не вижу ничего плохого в этом монолитном подходе.

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

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

Это также верно при поиске правильного языка для задания. Да, хорошо, если вы делаете concurrency, вам может понадобиться функциональный язык, а не объектно-ориентированный язык, но каковы преимущества использования другого языка программирования?

Ответ 2

В конце дня; "Техническое обслуживание".

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

Если это будет выполнено, то дискуссия станет "Может ли она быть построена эффективно, чтобы быть экономически эффективной и не вызвать проблемы интеграции?"

Кроме того, это просто отвертка/построение домашнего аргумента.

Ответ 3

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

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

Ответ 4

Подведите пример, дайте им проекты, которые соответствуют их сильным сторонам, и поощряйте их учиться.

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

Вам также нужно внимательно изучить работу, которую они выполняют, и решить, действительно ли это очень важно или нет, если это было сделано на С++. Например, если у вас много сотрудников, которые знают этот язык, и они завершили задачу за достойное время, какой вред? С другой стороны, если язык, который они выбирают, замедляет их или ведет к долгосрочным проблемам обслуживания, они должны знать об этом.

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

Ответ 5

Не нанимайте их.

Ответ 6

Поместите их в команду команды программистов COBOL.

Ответ 7

Попросите их создать двоичный файл, который выводит бесконечную последовательность Фибоначчи.

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

Ответ 8

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

Я считаю, что противоположность " одного истинного языка" - это " программирование многоугольника", и я тогда буду ссылаться на другой ответ:

Я действительно сомневаюсь, что теперь кто-то может реализовать проект на одном и только одном языке (хотя возможны исключения). Самый простой способ показать им полезность конкретных инструментов и языков, затем показать им, что они уже используют несколько, например. SQL, файл сборки, различные диалоги XML и т.д.

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

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

Ответ 9

Отдайте им отвертку и скажите им построить дом?