Python и стек его технологий для pets-разработки

Несколько лет являюсь джава девелопером и нахожусь в типовой в общем-то ситуации. Это конечно же энтерпрайз и все дела, спринг-хибернет, удобные кресла с печеньками и лампами дневного света, скрам в его украинском понимании, эстимейты, митинги и ещё раз митинги, таски по багофиксу, либо разработка на умирающих технологиях, в общем тоскливое и мозгоэвтанирующее занятие.

Но так как бросать и менять сферу деятельности кажется опрометчивым, вижу путь развития в pets-разработках, и других технологиях, а впоследствии реализации фантазий о стартапах. В качестве направления способного вернуть романтику в разработку был выбран Python хотя бы в силу универсальности и синтаксического сахара (сравнительно с тем же javascript). Не новые, но новомодные scala, ruby и прочие swift были отброшены как хипстерские и пока малоприменяемые.

Интересно ваше мнение о таком выборе, а также роадмап с меил стоунами на что обратить внимание и в какой последовательности (помимо Django, конечно), так как в свое время сильно помог найденный здесь план обучения Java.

Вот тут он, для примера

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Не новые, но новомодные scala, ruby и прочие swift были отброшены как хипстерские и пока малоприменяемые.
Люто плюсую:)
вижу путь развития в pets-разработках, и других технологиях, а впоследствии реализации фантазий о стартапах
И как это связанно со сменой языка?

java традиционно пригодна не столько для небольших задач, сколько для реализации сложной логики. Да и для души что-то новое и удобное.

Тут вопрос честности с самим собой.
Если есть желание сделать некий продукт, то надо брать наиболее подходящий инструмент. Который зависит от контекста этого самого продукта.

Если есть желание просто потренировать мозг, покопавшись в чем то новом, то рассуждения о применимости языка не имеют смысла. Нравится копаться? Ну и отлично.

Хотите свалить в стартап? Ну тогда питон это крайне плохой выбор. С джавой и то шансов свалить больше.

В качестве направления способного вернуть романтику в разработку был выбран Python
вот же основной посыл (кстати, поддерживаю)

Таки второй пункт. И с этой точки зрения нет ни малейшего смысла задавать подобные вопросы. Все равно что спрашивать: «Надоел суп, решил купить яблок. Я сделал правильный выбор?»

Вроде он мнение + роадмап просит ;)

Полностью согласен, каждый инструмент пригоден для собстенных целей. для фанатичных приверженцев Java — подымите с нуля любой простенький сайтик на чистом Hibernate/Spring/JSP/jQuery — на это уйдет минимум 2 дня (если view-ки сделать SPA — в 2 раза дольше), патамушо все надо писать и конфигурить заново и есть куча неприятных вещей. Сравните это с Grails или Ruby on Rails где за час-другой можно подпидалить работающий сайтец и потом «натянуть» на него CSS-ку.

патамушо все надо писать и конфигурить заново и есть куча неприятных вещей
Spring boot? Не, не слышал

ну в комментарии предлагалось написать сайтик на спринге. Понятно что фреймворков куча других тоже. Тут я о том что уже ничего конфигурить и настраивать не надо в спринге. Boot настраивает и конфигурит все спринговые либы сам.

Если для души, для интереса- тогда да- питон хороший выбор. Но если смотреть со стороны денег\ кол-ва вакансий, то Java/ .Net в не конкуренции.

В общем, традиционно 3% ответа на поставленный вопрос, 97% срачей по технологиям и языкам, о которых и речь не шла ;)

Dive Into Python, Expert Python Programming, доки по Flask и потом уже разберетесь

Зря вы так про swift. Через 2 года на нем весь iOS писатся будет кроме низкоуровневых либ

Не знал раньше про него. Посмотрел в Википедии, на Apple’вском сайте, — совсем новенькое.
Синтаксис слегка напомнил Scala. Классно, буду иметь в виду на будущее. А то синтаксис Objective C — это какой-то адЪ.

к obj-c привыкаешь. Некоторые вещи там гораздо лучше тех же джава с с++ сделаны

Читай мой топик. Сам не знаю, бросать ли вебформс, и начинать прокачивать или нет.

Свифту не видел, но Objective C ИМХО самый простой язык из всех, на которых приходилось программировать.

Судя по вашему профилю на DOU, вы писали на C, C++ и Objective C. Ну в этом списке да — obj-c самый простой :)

Ну C та C++ це головні робочі мови. А додатковими були також Java, Phyton, Perl, Ruby, PHP, Javascript.. може й ще щось — це не згадуючи про хобі.
Добре, можливо класичні Lisp, Basic та усілякі Oberon’и простіши за Objective C. Але це доки ми пишемо Hello World, а не великий проект.

А то синтаксис Objective C — это какой-то адЪ.

Один из самых читаемых языков в мире. Адъ только у вас в голове.

Отпишись, что думаешь о свифте. Тебе все-равно виднее всех будет. Небось WWDC с замиранием сердца и жирными от чипсов пальцами смотрел.

Отпишись, что думаешь о свифте.

Objective-C без С и без Objective — это высокоуровневый тормознутый кал с каловым крестоподбным синтаксисом. Пока не вижу преимуществ. Лучше бы уже впилили Ruby или что-нить из функциональщины, чем очередной велосипед.

Небось WWDC с замиранием сердца и жирными от чипсов пальцами смотрел.

Я это макретоидное гуано не смотрел никогда и сейчас себе сделал услугу и тоже не смотрел. Угу. Фапал на Кука в чипсы, а потом ел их жирными руками.

Тебе все-равно виднее всех будет.

Я рад, что вы это признаете. Алаверды не будет, к сожалению.

migmit.livejournal.com/54465.html
stackoverflow.com/...-sorting-arrays

похоже, до этого “завтра” ещё очень далеко.

К слову, эпический тред на RSDN: www.rsdn.ru/...phy/5630929.all

смотрите. как у ябла обычно «не работают» абсолютно новые технологии.
1) показано на WWDC — вау, но бета не работает. вобще
2) сентябрьский релиз — пользоваться можно, но процесс часто напоминает fucking the bucket
3) выход след оси через год — этим уже можно пользоваться. все шишки обмусолена на дев. форуме, эпл закрыл бОльшую часть из них.
4) прошло 2 года — мейнтсрим и этим пользуются все разрабы.

так что через 2 года с языком будет все ок.

самое интересное что обычно воющие о кровавом ентерпрайзе люди не видели его в живую
такой что бы без скрама, с митингами по телефону на 15 человек, продуктами IBM для всего, включая майнфреймы и индусасми all the way around
тогда бы вы блть начали скучать по уютненькому скраму и спрингам с хибернейтами :З

Превратить в унылое бюрократическое болото можно любой проект хоть на Scala, Play, MongoDB с канбаном, хероку и украинцами.

Вибачте, а при чому тут українці?)

Это было в хорошем смысле, я думаю. Как преимущество. :-)

Вы плотно закрыли глаза и изо всех сил пытаетесь в это поверить?
Украинцы не лучше, а во многих случаях гораздо хуже индусов, причины:
1) инфляции тайтлов, senior за 2 года = индусы
2) куча случайных людей в IT — снижение общей планки знаний и навыков = индусы
3) отсутствие поддержки IT на уровне министерства образования и государства в целом = индусы обгоняют.
4) разгилдяйство и шапкозакидательство = индусы (отличий нет).

А теперь преимущества индусов:
1) готовы пидалить за тарелку Хари-кришны (2$/час)
2) поддержка ИТ, ПТУ на уровне государства
3) огромный опыт ИТ, огромное количество быдло-фирм крупных и малых (миру не обязательно нужны гении типа Джобса)
4) много, очень много людей, они могут насытить любую низкопробную нишу, если увидят ее.
5) у индусов нет звездной болезни, как у Украинцев = синдром из грязи в князи.

А теперь преимущества индусов:
1) готовы пидалить за тарелку Хари-кришны (2$/час)
2) поддержка ИТ, ПТУ на уровне государства
3) огромный опыт ИТ, огромное количество быдло-фирм крупных и малых (миру не обязательно нужны гении типа Джобса)
4) много, очень много людей, они могут насытить любую низкопробную нишу, если увидят ее.
5) у индусов нет звездной болезни, как у Украинцев = синдром из грязи в князи.
6) Носители английского языка.

согласен, уровень у них гораздо выше в этом плане.
ну не носители, сколее асимилированные + колониальное прошлое,

Надо сказать, что инфляцию грейдов я тоже замечаю у индусов, судя по аккаунтам в линкедин и их обсуждениям в группах. Огромное количество людей = п.2 в недостатках украинцев. Случайных людей после двухнедельных курсов там хоть отбавляй.

Ну джава это не только энтерпрайз, это еще и постоянно растущий рынок ведроида.

андроид имет мало общего с ентерпрайз разработкой, там кроме базовой жабы почти ничего общего.

смотря что считать «базовой джавой»))
я работал с андроидом + энтепрайзом, имхо вполне так комплементарные области.
паттерны общие, много общего.

Тоже специализируюсь на Java и тоже хочу взять на вооружение Python.
Scala изучаю потихоньку, и сейчас мне она даже важнее, чем Python.

Pyramid, Sqlalchemy + всякие обертки для mongo

Попробуй остаться на джава и поюзать dropwizard или ninjaframework, продуктивность будет на уровне, и все в привычной среде.

Scala очень даже применяемый язык. Хотя бы как better java. А уж Play уделывает Django просто по всем статьям.

А применим ли Play на high-load проектах?

В хайлоаде фреймворк как таковой не играет большой роли. Здесь камнем преткновения является архитектура приложения. Например SOA — пример гибкой и легко масштабируемой архитектурной концепции. Впрочем платформа здесь все таки играет роль, в современных хайлоад-приложениях ( особенно реалтаймовых ) рулит node.js и jvm за счет поддержки асинхронной модели вычислений.

рулит node.js и jvm за счет поддержки асинхронной модели вычислений
o_O
tornado, twisted, asyncio...

Не, ну есть же вещи типа когда на каждый запрос/ответ создаётся отдельный thread или не создаётся. Во втором случае нагрузку бОльшую можно держать.

Не, ну есть же вещи типа когда на каждый запрос/ответ создаётся отдельный thread или не создаётся. Во втором случае нагрузку бОльшую можно держать.
А в джаве кто-то создает на каждый запрос отдельный тред?

Не знаю, но подозреваю, что это обычное явление. Я пока не копал подробно этот вопрос, но собираюсь.

Да, покопай прежде чем высказывать экспертное мнение.

Это просто мнение, не экспертное. :-)

не знаю как в Java, в .NET можно создавать по отдельному треду на запрос, можно и не создавать

«В .NET» и «в Java» можно всё. Вопрос в том, как поступает конкретный сервер web-приложений при обработке HTTP-запроса.

Thread — легковесная штука и как правило в не EE web-контейнерах типа Tomcat/Jetty создается 1 поток на 1 реквест, у сервлетов вызывается service() и поток умирает. Можно использовать SingleThreadModel для сервлетов, но в этом случае все клиентские запросы будут ждать в очереди. Новый поток создается элементарно например так (используя concurrent пакет):
ExecutorService executor = Executors.newFixedThreadPool(WORKER_POOL_SIZE); for (int i = 0; i < WORKER_POOL_SIZE; i++) { Runnable worker = new UnitWorker(param1, param2, param3); executor.execute(worker); }
Где UnitWorker — класс, реализующий run из Runnable.
ну и потом ждем завершения всех потоков и «схлопываем пул»
executor.awaitTermination(500, TimeUnit.MILLISECONDS); executor.shutdown();
Развели панику на пустом месте!

Как это работает для EE контейнеров и EJB не в курсе.

как правило в не EE web-контейнерах типа Tomcat/Jetty создается 1 поток на 1 реквест
Звиздишь, дефолтно используется пул потоков

Спасибо, Gabriel. Есть и другие техники обработки клиентских запросов на базе NIO и NIO2 решений. О них хорошо написал в своем блоге Паша Самолисов (суровый челябинский программист): Сравнение производительности механизмов ввода-вывода в Java: классического (блокирующего), неблокирующего и асинхронного.

я не настолько суров пока что (снимаю шлемшляпу)

Ниже вобщем ответили.

добавлю что в Java еще и можно в стиле Node.js — например Vert.x
на основе асинхронного IO

уделывает
за якими параметрами?

поддерживаю, и вообще нада раздел на доу создать с роадмапами для разных языков и технологий.

Причем в игровой обертке. Типа ветки прокачки.

Кстати, было-бы интересно запилить на доу голосовалку вида: язык программирования и список актуальных технологий которые применяются в продакшине нашими девелоперами.

Тільки відразу нарізати по «світах» (за Joel’овською Five Worlds), інакше отримаємо суміш коней з апельсинами. В мене особисто це «консультаційний» софт і ніякі Hibernate не пройдуть.

язык программирования и список актуальных технологий

Актуальные технологии? ЭТо вы под технологиями фреймворки подразумеваете? Бггг...

Подписаться на комментарии