The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Анализ популярности языков программирования в 2012 году "
Отправлено Ordu, 09-Янв-13 03:44 
>[оверквотинг удален]
> GIL :) . GIL есть и в Ruby (это случайность?).
> 2. в один момент активная только одна нить (Thread) -- это правда,
> но только наполовину правда.
> предположим некая Пайтоновская нить читает байты из сокета/файла
>          b = fd.read(4096)
> в это время (пока нить читает данные) эта нить НЕ будет является
> GIL-активной, но данные-то сёравно БУДУТ читаться!
> [...]
> т.е.: внутри многонитевой Python-программы вся математичка остаётся последовательной,
> а ввод-вывод паралелльный
.

Это называется user-space cooperative threading. Такая хрень доступна и для C, например, через библиотечку libpth. Но почему-то, никто не использует libpth, предпочитая libpthread. Странно да? Вот несмотря на все преимущества кооперативной многозадачности, например, отсутствие необходимости в реентерабельности кода (что существенно упрощает синхронизацию нитей), несмотря на то, что при кооперативной многозадачности стоимость нити минимальна, и процесс легко может позволить наплодить себе десять тысяч нитей (на каждый открытый файловый дескриптор сокета по нити) и не положить систему... Несмотря на всё это почему-то в C кооперативная многозадачность непопулярна.

Странно при этом, что, например, Haskell, зачем-то в дополнение к юзер-спейс потокам, в библиотеках есть и ядерные потоки. Странно, что Microsoft, при создании Windows '95 отказалась от корпоративной многозадачности, используемой в предыдущих версиях Windows в пользу вытесняющей. Чего ж это им всем так не нравится корпоративная многозадачность, а?

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

А вы не сталкивались с такой фишкой, как опциональная типизация переменных? То есть когда язык позволяет создать как типизированную переменную, так и не типизированную. Помимо удобств отладки (рантайм исключения, при попытки записать int в переменную типа string), возникает офигенный простор для оптимизации, путём выпиливания из бутылочных горлышек тормозов порождённых динамической типизацией.

Python неплохой язык, для простеньких задач. Но он начался с идеологии, и до сих пор не может отказаться от этой идеологии "всё можно сделать единственным путём". Идеологию фтопку. Есть вполне определённые практические задачи, которые предъявляют вполне определённые требования к языку. Когда же язык, вместо того, чтобы удовлетворять этим требованиям, начинает швыряться лозунгами, и говорить что требования некошерны... Это как минимум странно.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру