balu: (Gene Kranz Луна - она вот там)
[personal profile] balu
Я почав використовувати мову програмування Python1 коли це ще не стало модним: років 10 - 12 тому. Тоді десь 80% розробників програм використовували продукцію Borland: Delphi або C++ Builder. Python, на пострадянських теренах не мав навіть свого сайту, а 30-40 пітонщиків користувалися службою розсилки і всі всіх знали. З англійською у мене тоді було тугувато, а з перекладеної літератури була тільки одна книжка любительського перекладу. Але у Python, на той момент було дві величезних переваги: по-перше, він був реалізований під кілька платформ, включаючи Лінукс, з яким я тоді почав вовтузитись, а цільова платформа Borland була тільки Win32. І, по-друге, але головне, Python був технологічним проривом оскільки був вдалим поєднанням невеликої кількості простих ідей. В результаті коду на Python виходило у 2-3 рази менше, ніж у Delphi чи Java, його було набагато легше читати, супроводжувати і розгортати. Колеги делфісти дивилися на мене як на дивака але дуже швидко ситуація змінилась: я створював робочі програми швидше, ніж вони. Це позитивно позначилось на моїй кар’єрі і не дуже на їхній.
Зараз Python, відповідно рейтингу TIOBE посідає 5-те місце за популярністю, ба демонструє її збільшення. Але я вважаю, що він зараз у ситуації Delphi 10-15-ти річної давнини, коли з’явились нові технологічні ніші, де Делфі була або недоречна, або її не можна було туди запхнути, змінилася коньюктура основних гравців і керівництво Borland почало метушитись і просерло всі полімери. По-перше, зараз теж з’явились технологічні ніші де Python недоречний - планшети і смартфони, чиї батарейки він просто жере. По-друге, Python перестав бути простим. Якщо до версії 2.4 він ще претендував на простоту, то потім з’явилась велика кількість простих і не дуже функцій, котрі потрібно просто тримати в голові. З’явились дві несумісні між собою гілки мови і постійна несумісність по бібліотекам навіть на рівні неосновних гілок. Через втрату простоти він втратив ще одну нішу - скриптування для вбудованих систем, котрі можна віддати непрограмістам. По-третє, він так і залишився повільним і з деякими родовими травмами. Але головне - з’явились нові конкуренти: прості і компактні але швидкі і без родових травм Python. Це Swift і Go, між якими і точитиметься основна боротьба2.

Я вважаю, що Python, як і всяка гарна технологія, вплинув на інші технології3 та надав кілька уроків, основним з яких, для мене, є те, що треба триматися подалі від динамічної типізації крім випадків, коли вона є технологічною основою вимог до системи4.

1 - Крім Python я використовую ще багато чого, але він був основним інструментом.
2 - Зараз складно сказати, як саме складеться доля у цих мов, але мені більше імпонує Swift.
3 - На тіж Swift та Go.
4 - Одним прикладом таких систем є Lisp.

Date: 2016-03-02 01:26 am (UTC)
bytebuster: (Default)
From: [personal profile] bytebuster
О, я тут якраз вожуся з Пітоном.

Скажіть пліз, є можливість у бібліотки multiprocessing (*не* threading) нормально передавати великі об'єкти, на зразок connection?

Моя мета — хочу написати щось на зразок прототипу веб сервера. Тобто, на сервері крутиться master process, який при отриманні запиту запускає окремий Process() і передає туди всю HTTP connection, отриману від клієнта.
І от у мене не виходить передати connection.

Шукав туторіали, напевне ж, мають бути. Але не знайшов.

Date: 2016-03-02 01:28 am (UTC)
bytebuster: (Default)
From: [personal profile] bytebuster
P.S. На бібліотеці threading все передається нормально, але ж це шарінг не тільки ресурсу, але й performance. Якщо один thread надовго висне, всі інші теж гальмують. Врешті-решт, навіть master не встигає обробляти запити.

Date: 2016-03-05 11:53 pm (UTC)
bytebuster: (Default)
From: [personal profile] bytebuster
Вибачте, що довго не відповідав.
Ні, веб фреймворк — це не зовсім те.
Коли я казав «щось на зразок прототипу веб сервера» — це метафора.
Мені головне — модель багатопотоковості намалювати.

Profile

balu: (Default)
от. Михайло

December 2025

S M T W T F S
 123 456
7 8910111213
14151617181920
21222324252627
28293031   

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 29th, 2026 10:33 pm
Powered by Dreamwidth Studios