понедельник, 19 декабря 2011 г.

Bold Choice

Так как основной род моей деятельности связан таки с Ruby решил я освоить для себя чего нибудь новое, паралельно избежав проблем которые я вижу в рельсах, а проблем там придостаточно, даже не смотря на всю гибкость и несомненную простоту технологии. Не буду углублятся в холивор по поводу минусов платформы ROR а просто попытаюсь рассмотреть какие нибудь технологи которые сейчас есть на рынке, желательно конечно чтобы они были все из себя Опенсорс.



Первое что пришло мне на ум это Java, однако проработав с этой технологией уже не первый год хотелось чего-то нового, да и есть некоторые нарекания, взять хотябы непомерное потребление ресурсов. Даже при MBP с 8 ГБ памяти на борту и i7 процессором в 4 ядра эта штука умудряется тормозить и жрать память просто таки в эпических массштабах. Что самое интересное если взять другие подобные технологии они тоже как это не странно не блещут экономностью, тот же самый fcsh для компиляции flash приложений исправно кушает по 1.5 ГБ оперативной памяти и мне если честно не особо понятно под что он так жрет память. Однако вернемся таки в веб апликациям. JSP и сервлеты, enterprise beance и прочие громкие и змечательные вещи все это жудко гибко и замечательно однако кушает память и ресурсы как не в себя.

Далее пришлел на ум python, однако имея опыт работы с Ruby я что-то как-то не сильно доверял этой платформе, наверное зря, однако времени понять то извращение которое имеет место быть в этом замчательном языке у меня было не так много и я отчего-то не одолел его, бывает такое смотришь на язык и как-то нутро не принимает его, хотя Django показалось давольно весомым поводом чтобы простить недостатки этого языка.

Для меня, в давние вемена когда я работал над проектом тестирования ПО, Python стал палочкой-выручалочкой которая мне помогла сделать по сути скриптовую среду для самих тестов, которая делала много сама не прибегая к самой системе тестирования (что давало неплохой прирост производительности). Тестовая среда (Это был к слову сказать TestComplete) проводила тестирование, а скриптики питоновские по сути управляли процедурой запуска/прохождения/завершения тестирования собирали данные, обрабатывали их и выносили мусор :) Почему в данном случае Python? А просто до этого более другой человек пытался написать это все на .bat файлах и я после того как посмотрел туда - содрогнулся, благо времени было с лихвой в запасе и я переписал эту вакханалию на более удобочитаемый Python код. Вот на этом примере я и понял что Python для моего понимания схож именно что со скриптовым языком на котором хорошо писать shell скрипты. Не хочу обидеть фанатов Python однако для меня это именно так, не надо на меня спускать собак и писать мне разные гадости, мнение у меня такое, именно у меня и я его никому не навязываю.

Захотелось мне затем посмотреть на задачу по другому, более другому чем обычно ... захотелось паралелизма. Доколе нам людям живущим в эпоху многоядерных процессоров сидеть и мучатся с одним потоком. Снова Java, снова С++ снова те же яйца только в профиль. Задумался я и пошел читать про всякого рода Map Reduce и на чем и как по быстрому реализовать. Задачи все эти сложны с точки зрения того что они должны быть stateles. А так как в большинстве (я просто всего не знаю поэтому и допускаю что есть таки что-то другое) своем обьекты являются мьютабельными и требующими синхронизации, возникает странного рода код  изобилующий синхронизациями и прочими странными конструкциями.

Остается еще один авантпост C и C++ ну тут без коментариев, словоблудить не буду и так понятно чем это дело грозит с точки зрения реализации и рак мозгов обеспечен 100%.

Так вот знающие люди наверное уже поняли к чему я клоню и догадались о чем я сейчас буду вещать. Посмотрел я на это и решил ударится в функциональное программирование, посмотрел на своих старых знакомых Haskel, Lisp и мне захотелось удавится еще в зародыше от количества скобок и того что мои мозги отказывались понимать всю эту математику, сразу оговорюсь я ее понимаю, но напрягать мозг я таки не хотел. Однако на днях я был на конференции RailsClub Moscow и там прослушал замечательный доклад на тему одной замечательной vm под названием Erlang.

Почитал и подумал надо разузнать о том что это такое, почитал разузнал о чем и расскажу далее.

Комментариев нет:

Отправить комментарий