The OpenNET Project / Index page

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



"Анализ популярности языков программирования в 2012 году "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Анализ популярности языков программирования в 2012 году " +/
Сообщение от Orduemail (ok), 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 неплохой язык, для простеньких задач. Но он начался с идеологии, и до сих пор не может отказаться от этой идеологии "всё можно сделать единственным путём". Идеологию фтопку. Есть вполне определённые практические задачи, которые предъявляют вполне определённые требования к языку. Когда же язык, вместо того, чтобы удовлетворять этим требованиям, начинает швыряться лозунгами, и говорить что требования некошерны... Это как минимум странно.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Анализ популярности языков программирования в 2012 году , opennews, 08-Янв-13, 13:03  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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