[object Object]

Руководство по программистским спорам

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

Прочитать это руководство, конечно же! Чтобы начать, нужно запомнить несколько простых правил.

Правило №1: язык — говно

Если бы собеседник был прав, разве вы бы стали спорить? Поэтому всегда можно исходить из того, что ваш собеседник не прав.

— Джава хороший язык.
— Да говно твоя джава!

Дальше возможно два исхода: либо собеседник нехотя признает вашу правоту, либо начнёт защиту. В первом варианте мы уже победили, и можно заняться более продуктивными вещами, например, настроить заново внешний вид редактора.

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

Первое правило задаёт темп дискуссии и позволяет создать видимость профессионализма. 1

Правило №2: бейте в слабые места

У каждого языка программирования есть ряд черт: бывают языки со статической типизацией, бывают с динамической; бывают компилируемые языки, бывают интерпретируемые. Секрет в том, чтобы выбрать свойство языка и подать это как недостаток.

— Чё это джава говно?
закатив глаза Статическая. Типизация. Кошмар, как так можно вообще в (подставить год)?

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

  • Джаваскрипт: интерпретируемый язык с динамической типизацией, прототипной моделью наследования, сборщиком мусора. ПРИДУМАН ЗА ДЕСЯТЬ ДНЕЙ!
  • Джава: компилируемый язык со статической типизацией, классовой моделью наследования, сборщиком мусора. ОЧЕНЬ МНОГОСЛОВНО, БЕЗ IDE НЕ РАЗОБРАТЬСЯ.
  • Раст: компилируемый язык со статической типизацией, с автоматическим управлением памяти без сборщика мусора.
  • Кложура: компилируемый и интерпретируемый язык с динамической типизацией, сборщиком мусора.
  • Хаскель: компилируемый язык со статической типизацией, сборщиком мусора. НУЖНО ПОНЯТЬ МОНАДЫ, ЧТОБЫ ВЫВЕСТИ HELLO WORLD.
  • Эликсир: компилируемый и интерпретируемый язык со статической типизацией, сборщиком мусора
  • Си: компилируемый язык со статической типизацией, ручным управлением памятью.
  • Сиплюсплюс: компилируемый язык со статической типизацией, ручным управлением памятью и иногда автоматическим управлением памятью.
  • Руби: интерпретируемый язык с динамической типизацией, классовым наследованием, сборщиком мусора.
  • Не перечисленные выше: ДА ОН ЖЕ НИКОМУ НЕ НУЖЕН.

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

— И что хорошего в джаве?
— На рынке полно разработчиков, легко найти работу.
— Тебе что ли десять тысяч кодеров нужно? Лучше уж найти двоих-троих, зато самых клёвых. Да и какую работу ты джавистом найдёшь? То-то же.

Правило №2 поможет вам продержаться на ринге дискуссии до тех пор, пока собеседнику не надоест — тогда-то и надо объявлять победу.

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

Правило №3: объявите, что объективности не существует

Конечно, вчера вы говорили одно, а сегодня другое — но это не потому, что вы не правы, а потому что это два разных спора! Контекст всегда очень важен (но упоминать его до этого не стоит — от вас могут потребовать подробностей). Секрет в том, что без контекста действительно нельзя однозначно сказать, нужна ли динамическая типизация, или сборщик мусора.

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

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


Ну вот и всё, вы восхитительны и готовы участвовать на равных в спорах про языки программирования!


  1. Обсценная лексика работает для этого ещё лучше, но не везде.