> ## Content Index
> Fetch the complete content index at: https://www.rozhkov.me/llms.txt
> Use this file to discover other available public pages before exploring further.

# Полиглотопроблемы
- URL: https://www.rozhkov.me/polyglot-problems/
- Published: 2019-10-02T17:49:34.000Z
- Updated: 2019-10-02T17:49:34.000Z
- Author: Vova Rozhkov

Я "знаю" кучу языков программирования. Начал с синей книжки по С которую отец мне дал читать когда у меня еще компьютера не было, потом в школе Basic, Pascal и немного JS, потом в университете Pascal, asm х86 и микроконтролерный, Java, Ada, потом на работе Java, SQL, Bash, потом на другой работе Python, JS, Bash, потом на третьей работе Objective C, PHP, Ruby, JS, SQL. Сейчас 60/20/10/10 это Ruby/JS/Java/Python (SQL не считаем).

Есть мнение что "jack of all trades master of none" и честно говоря оно имеет под собой некоторые основания. Когда постоянно переключаешься между языками, фреймворками и платформами то начинаешь забывать где `kek.toString()`, где `kek.to_s`, где `str(kek)`. Где `arr.length`, где `arr.size`, где `len(arr)`. Где какие сокращения для лямбд, fat arrow, обычная стрелка, вообще без стрелки.

За какими-то базовыми вещами нужно постоянно писать в гугл типа ruby merge arrays. Где-то можно `arr1 + arr2`, где-то `Arrays.merge(arr1, arr2)` где-то еще непонятно что.

Различия в базовых API языков здорово напрягают. Причем они часто мелкие и постоянно путаешься во всех этих вызовах и тратишь время на чтение документации. Забываю литералы для хешей и списков, путаюсь в `arr << el` и `arr.push(el)` короче полный бардак еще на уровне молотков и отверток, не то что станков.

Более-менее хорошо я уверен только в Java, потому что кодил на ней больше 10 лет и все простые вещи уже прочно засели в мозг чтобы среди ночи можно было ответить на вопрос "перечислите методы класса Object". Со всем остальным постоянно путаюсь и лезу в документацию. Через некоторое время уже что-то запоминается, но потом опять происходит переключение контекстов и снова забываешь как делать for: `for i in arr` или `for i of arr` или еще как-то и чем они отличаются?

И это я еще не зацепил конфигурацию, JSON, XML, YAML, HCL, но тут благо различия посерьезнее + IDE помогает.

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

Потому что без `to_s` ощущаешь себя как без рук, а это не очень приятно.

С другой стороны, может быть я пока что слишком мало покодил на отличных от Java языках и через 10 лет буду точно так же помнить все методы Iterable в Ruby.