Одна вещь это мало известно, состоит в том, что объединения могут быть шаблонами также:
template<typename From, typename To>
union union_cast {
From from;
To to;
union_cast(From from)
:from(from) { }
To getTo() const { return to; }
};
И у них могут быть конструкторы и функции членства также. Просто ничто, что имеет отношение к наследованию (включая виртуальные функции).
Производительность с языком не является ни единственным фактором, ни простым скаляром сама по себе. К важным вопросам относятся:
Несмотря на всю чепуху с заявленной миссией, которая должна звучать благородно и подчеркивать поддержку общества, настоящая цель каждого бизнеса - возвращение на инвестиции или, что эквивалентно, максимизацию акционерной стоимости . Если это государственное учреждение, это все тот же вопрос, но законные владельцы не будут иметь прямого влияния, и вместо этого у вас будут доверенные лица, такие как вышестоящие агентства или влиятельные отдельные должностные лица.
Однако решения почти всегда принимаются агентами , и поэтому возникает проблема принципала-агента (также называемая дилеммой агентств ); агенты (менеджмент) примут решение в своих интересах, а не обязательно в соответствии с акционерным интерес, как теоретически требуется. В государственном учреждении это почти 100% рассмотрения.
К сожалению, это мешает всем сложностям закона Дилберта и Паркинсона.
Лучшее, что вы можете сделать, это то, что решения будут оправданы на основе риска, стоимости , и выгода, но будет, как правило, основываться на том, какие заслуги и вины ожидают агента и понятны агенту, что представляет собой узкое рассмотрение риска, имеющее сомнительную ценность для принципала, но, по крайней мере, идентифицируемое. 12138] Итак, теперь мы должны применить это к языковому вопросу. Ваш руководитель, скорее всего, избежит угроз, рисков, скандалов и споров. Его заявление о проблемах руководителей будет в основном связано с ограничениями бюджета и ожиданий. Вот несколько примеров, которые в основном не требуют пояснений. и подразумевая отсутствие последующего признания и признания)
Если вы хотите использовать Clojure:
Что будет предлагать ваш новый язык, чего нет в существующем?
Сегодня у нас есть языки, которые позволяют делать практически все во всех смыслах. Поэтому, прежде чем вводить новый язык, убедитесь, что нет уже существующий, который делает все, что делает ваш новый язык. И убедитесь, что вы точно знаете, какие функции будет предлагать ваш новый язык, которые не предлагаются в той же комбинации или вообще другими языками.
Если, конечно, вы не делаете это только для своего собственного образования - в этом случае забудьте ответьте на этот вопрос!
Как это повысит мою продуктивность?
Если на этот вопрос нет ответа, пакуйтесь и идите домой.
Очень многое зависит от того, чем вы сейчас пользуетесь, на что переключаетесь и почему на это трудно ответить. Но они всегда важны:
Что такое бизнес-кейс?
Это сводится к ROI (окупаемости инвестиций).
Это касается не только производительности отдельного человека, но и:
всей команды
влияние на жизненный цикл продукта
ремонтопригодность
и т. Д.
Насколько легко поднять трубку? Я считаю, что это не то важно.
Есть ли поддержка IDE? Довольно важно, но вы можете работать и без него.
Доступен ли отладчик? Я думаю, что это самый важный вопрос, который я задам. Если у вас есть рабочий отладчик, вы обычно можете делать что угодно.
A good question to ask is what is the size of the community around the language/framework. For instance, ruby/rails has a significant community around it, which would make me more comfortable that I would not be "the first kid on the block" to have to deal with a particular problem.
Q1: Могу ли я нанять людей с этими навыками?
Q2: Когда я звоню нашим менеджерам по работе с клиентами аутсорсинга и спрашиваю, сколько будет стоить типичный проект с фиксированной стоимостью, если он будет реализован в обычным способом или с использованием языка X, множитель больше единицы?
Q3: Есть ли у всех в моем отделе любимый язык, который выполняет примерно ту же работу, что и мой любимый язык, и должны ли их любимые языки быть тоже используется? Каковы практические последствия этого?
Зачем ограничивать себя одним языком? Выясните, какие проблемы лучше всего решаются на каком языке, и предложите услуги. Если полоса пропускания между сервисами слишком высока, тогда перенесите проблемные сервисы вместе, исходя из того, какой язык лучше всего решает обе.