Исходя из текущей формулировки вопроса, скорость не повысится.
Количество физических головок от разбиения не поменяется.
Провода, по которым идет информация, тоже не меняются.
Может наблюдаться долгосрочный эффект, если система отдельно, медиафайлы отельно, но это влияет в основном на удобство.
Скажем так: зачем уметь собирать-разбирать двигатель от машины и понимать как он работает?
99% людей это не нужно в принципе. Но если вы это знаете, вы можете легко диагностировать какую-то проблему, понять как её решить. При этом, каждый день вы не производите двигатели на станке.
То же самое с ассемблером: чтобы понимать как работает программа, как её отладить, диагностировать, понять, что не работает — для этого и нужен ассемблер. Писать на нём что-то конкретное и большое сейчас абсолютно бессмысленно. Его надо знать и понимать, этого достаточно.
Если вам интересны плюсы, то ниже три ссылки: Первая(Тут именно boost) Вторая Третья
Также много литературы, не привязанной к конкретным языкам, список которой можно найти по первой ссылке в гугл.
Однако для хорошего ФП нужно понимание "внутренностей" ФП, а с этим ничего, лучше Хаскела не справится.
Да и плюсы для "Как на Хаскеле" не очень.
Главное преимущество и проклятие скриптовых языков - их динамическая природа. С одной стороны это даёт быстрый цикл разработки, а с другой утяжеляет поддержку крупных проектов. В строготипизорванной Java большая часть ошибок, особенно глупых, уходит на этапе компиляции. С другой стороны, чтобы запустить простой проект на Java придётся выполнить много лишних телодвижений. Ну и всем известная смешная картинка
Поэтому лучше выбирать инструмент под задачу, не забивать кувалдой шпильки и не стучать ювелирным молоточком по железнодорожному костылю.
Можно ещё воспользоваться Nashorn. Это позволяет вообще использовать скрипты JavaScript на Java, но надо приноровиться им пользоваться. Но штука офигенная.
itertools.cycle(key) возвращает итератор, в котором по очереди циклично выдаются символы из key (то есть, если итерация дойдёт до последнего символа из key, то следующим он вернет первый символ из key и так без конца).
zip(string, key) возвращает итератор кортежей, каждую итерацию берутся элементы из каждого аргумента (в данном случае string и key) и возвращается кортеж этих элементов до тех пор, пока во всех итераторах остаются элементы.
Внутри цикла берется один символ шифруемого текста, один символ ключа, берутся их коды, находится XOR этих кодов а в список добавляется символ с получившимся кодом.
В конце просто все символы списка склеиваются в одну строку.