Я "знаю" кучу языков программирования. Начал с синей книжки по С которую отец мне дал читать когда у меня еще компьютера не было, потом в школе 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.
Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred