LINUX.ORG.RU

Сообщения Erh

 

Стек технологий

Форум — Web-development

Всем доброго времени суток. Любопытно узнать мнение знающих людей. В общем программистом я работаю не первый год. Занимаюсь в основном внутренними корпоративными системами(erp, crm и т.д.). Раньше использовал PHP и Yii/Symfony2(исторически в команде так сложилось) для веб морд и Java для всего фонового и долгоиграющего. С год назад перелез на Python. Смысл лично для меня был в едином ЯП для всего серверного, чтобы не скакать от Java к PHP. И я таки оказался прав.

Сейчас слышу вокруг себя что все это не айс и на самом деле следует использовать что-нибудь компилируемое типа Java/C#. Основными аргументами были скорость работы, зрелость технологии(хз что подразумевается под этим и почему джанга менее зрелая, никто так нормальных аргументов и не привел), статическая типизация, многопоточность.

Т.к. на слово я никому не верил - начал гуглить. Вот что вышло по лично моим наблюдениям (сразу скажу - полтора хэллоуворлда. поэтому и интересуюсь тут):

  • Да, из коробки скорость больше. На прямых числодробилках
  • Асп.нет показался симпатичнее чем жабьи фреймворки(от количества которых лично у меня глаза разбегаются). Как минимум потому что там есть четкое понимание на что смотреть.
  • Статическая типизация это классно. В питоне мне ее до жути не хватает(в 3.5 вошел модуль typing и я его использую везде где только можно. беда в том что его не используют в либах, выпущенных ДО этого)

Ну и суть вопроса - какие профиты со всего этого? По пунктам что вижу лично я:

  • Питон тормоз, что есть то есть. Но его можно сильно ускорить. Например, был у меня дико долго генерировавшийся отчет. Я переписал его на cython и подключил к проекту. Все счастливы. Да и настолько ли важна скорость именно языка? Узким местом обычно является база данных. Если с ней будет затык - тормозить будет все что угодно. На мой взгляд все в архитектуру упирается
  • Как уже писал, под зрелостью и энтерпрайзностью я вообще хз что подразумевается. На Python написана OpenERP, например. Куча крупных муждународных контор использует его как основной язык в проектах.
  • Вот тут да. Хоть typing и исправляет многое.
  • Тут своя шиза из-за GIL. Имхо именно потоки в питоне(третьем, во всяком случае) это скорее асинхронность чем паралеллизм. В один момент времени выполняется одна инструкция, на io блокировки нет. А вот процессы это параллельность. Экзекьюторы есть, feature есть. Shared memory тоже есть, межпроцессное общение можно пайпами сделать. Отдельные асинхронные фреймворки тоже есть. И все это не считая того что а) сишный код под гил не попадает и б) есть реализации питона без него.

Покритикуйте, в чем я не прав?

 , ,

Erh
()

RSS подписка на новые темы