LINUX.ORG.RU

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

 , ,


0

2

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

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

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

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

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

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

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



Последнее исправление: Erh (всего исправлений: 2)

Ответ на: комментарий от Oxdeadbeef

Гугление показало, что для спарка и гцц 4.7 можно скомпелять gccgo.

Shadow ★★★★★
()

С год назад перелез на Python. Смысл лично для меня был в едином ЯП для всего серверного, чтобы не скакать от Java к PHP

С такой мотивацией более разумным кажется начать писать вебовый бекэнд на Java. Там ведь вроде даже есть какие-то толковые фрэймворки для этого.

MrClon ★★★★★
()
Ответ на: комментарий от Yur4eg

Но ведь GIL не блокирует процессы. Он блокирует потоки
Описался
Я разве где-то утверждал что thread не подвержен GIL. Персонально я не подвержен GIL и Гвидо неподвержен GIL, нам обоим норм. Тут будет умесно еще раз за нас порадоваться.

Окай, как скажешь. Рекомендую прочитать учебник по Русскому, как минимум ты подвержен орфографическим ошибкам. Про Гвидо не уверен :)

А в джаве тоже байткод исполняется в виртуальной машине, а GIL нету, а все потому что бабла в ее разработку столько влито, что буду не сильно далек от истины, когда скажу ВМ джавы самая совершенная виртуальная машина в мире.

Ага, а ты думаешь что все виртуальные машины одинаковые? Там кагбе как минимум сборщик мусора сильно сложнее, не? А виртуалбокс это тоже виртуальная машина и там гила вообще нет, представляешь?!

Это приятно, но все таки, ты используешь tornado, но не можешь сказать почему его выбрал?

Ну почему же, могу. Насколько я понял его не портировали на третий питон.

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

Знаешь, судя по тому что ты написал выше - смысла нет. Поэтому отвечу тебе в твоей же манере письма - иди ты, Юра, в задницу, и свой хвастливо-указательный тон с собой забирай :) Раз уж не умеешь в нормальный разговор.

Erh
() автор топика
Ответ на: комментарий от MrClon

Тоже логично, но честно говоря мне было лень. Уж очень их много. Возможно меня можно назвать неосилятором конечно

Erh
() автор топика

Ни на нашей планете, ни в галактике и выше... нет универсальности. Универсальна только сама вселенная.

Поэтому у меня один принцип, от всего брать то немногое, чем оно хорошо. В О'Кей есть ближайший к дому банкомат. В пятерках бывает аптека норма, со средними ценами. В 7е картошка, не надо тащить далеко. В магните (в отличии от предыдущих) чисто, вменяемые цены, нет кричащих вывесок, никто не проверяет: твоя банковская карта или жены. Короче, все сделано для того, что бы люди приходили, покупали и ничего им не мешало.

В остальном, все то же.

Fedora Workstation не нужен. Ставится Fedora minimal install + gnome-shell и 4 его приложения (часть из которых можно убрать в будущем). Для text/plain используется gedit nano.

Не нужны сборки Eclipse, голый Platform Runtime Binary 66MB, дальше используемые плагины.

Ни идеальна реляционная база данных, так же как nosql. Частично можно использовать PostgreSQL, для одних задач. Частично, например, Mongo, для других.

Это касается и языков программирования, фреймворков, технологий, теорий, философий...

barberry ★★
()
Ответ на: комментарий от Erh

Знаешь, судя по тому что ты написал выше - смысла нет. Поэтому отвечу тебе в твоей же манере письма - иди ты, Юра, в задницу, и свой хвастливо-указательный тон с собой забирай :) Раз уж не умеешь в нормальный разговор.

Так и запишем, был прижат железными аргументами. Попыточки придираться к словам и поиск орфографических несоответствий литературного русского языка в моих постах, никак не опровергает, то что я пишу. И к тому же это не моя манера посылать людей в срамные места. Куда смотрят модераторы? На ЛОРе есть поиск по сообщениям.

Yur4eg ★★
()
Ответ на: комментарий от Yur4eg

буду не сильно далек от истины, когда скажу ВМ джавы самая совершенная виртуальная машина в мире.

И при этом она тормозит и жрет память, как не в себя.

anonymous
()
Ответ на: комментарий от Leron

Это пример для случая, когда тебе приходит неизвестно какой json. А так все отлично ложится в структуры и никаких кастов.

anonymous
()

java выполняется со скоростью на уровне C++

python как минимум в 10 раз медленнее

тоесть на простых проектах/вебсерверах можно и питон

а там где сотни баз данных и критично время выполнения-только джава

да пишу как разработчик и на питоне и на джаве и портировавший как с питона на джаву тк и с джавы на питон

anonymous
()

Смысл лично для меня был в едином ЯП для всего серверного, чтобы не скакать от Java к PHP

А зачем было скакать, что мешало использовать либо жабу, либо пых для всего?

симпатичнее чем жабьи фреймворки(от количества которых лично у меня глаза разбегаются). Как минимум потому что там есть четкое понимание на что смотреть

Так бы и сказал, что не осилил и пошёл искать былоязычок, где можно лабать на коленке. Питон подходит да, или бейсик.

зрелость технологии(хз что подразумевается под этим

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

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

Ты не прав в том, что поменял шило на мыло, если не хуже.

no-such-file ★★★★★
()
Ответ на: комментарий от Debasher

это показатель качества программного продукта

Увы. Это только показатель качества процесса разработки. Как качество процесса отражается на качестве результата - открытый вопрос. Со стороны пользователя программного продукта, обнарживается, скорее, обратная зависимость. Возможно, преимущества скрыты процесса скрыты от юзверей - например, они добиваются аналогичного качества с более дешёвыми разрабами, или вовремя.

DonkeyHot ★★★★★
()
Ответ на: комментарий от anonymous

java выполняется со скоростью на уровне C++

Вот прямо сейчас эксплуатирую 2 системы на одной задаче; явская потребляет CPU в 3.5 и памяти в полтора раза больше, делая работы раз в 7 меньше Сшной(правда, без плюсов - оно могло бы добавить сколько-то). Похоже, синтетические тесты немножко отличаются от реальных задач.

DonkeyHot ★★★★★
()
Ответ на: комментарий от anonymous

java выполняется со скоростью на уровне C++

нет, java выполняется быстрее ассемблера.

Oxdeadbeef ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.