Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Андрей Янпольский ([info]yanis)
@ 2005-04-13 22:40:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Alex "STL" Stepanov

In 1976, still back in the USSR, I got a very serious case of food poisoning from eating raw fish. While in the hospital, in the state of delirium, I suddenly realized that the ability to add numbers in parallel depends on the fact that addition is associative. (So, putting it simply, STL is the result of a bacterial infection.) In other words, I realized that a parallel reduction algorithm is associated with a semigroup structure type. That is the fundamental point: algorithms are defined on algebraic structures. It took me another couple of years to realize that you have to extend the notion of structure by adding complexity requirements to regular axioms. And than it took 15 years to make it work. (I am still not sure that I have been successful in getting the point across to anybody outside the small circle of my friends.) I believe that iterator theories are as central to Computer Science as theories of rings or Banach spaces are central to Mathematics.


Еще в тексте есть совершенно дебильные наезды на другие языки программирования (Джаву), как глупые, о влиянии на STL - эту вершину научной мысли - Оккама, францисканцев и хуй знает кого еще. То-есть это все даже не смешно. К старости захотелось почувствовать себя ученым, как тов.Сталину в "Вопросах Языкознания"? В 1993 году человек пишет порт говняной контейнерной библиотеки в templates, которые тогда были новинкой. Теперь-то мы понимаем, конечно, что это как Банах в функциональном анализе, скорее даже, как Ньютон или Галуа в математике или Туркменбаши в туркменологии. Ни малейшего намека на самоиронию в тексте интервью я не нашел.

Выражаясь языком Миши Вербицкого, нет ничего ничтожнее, подлее и гаже, чем computer scientist. Все, кто так себя называют, - недо-математики програмисты с комплексом неполноценности. Все-равно, как бляди из стриптиза, которые говорят, что они "танцовщицы".


(Читать комментарии) - (Добавить комментарий)


[info]ex_alexeile@lj
2005-04-17 17:35 (ссылка)
У меня был опыт работы с STLом, когда он стал популярен в 1997ом году. На мой взгляд, главная проблема STLа в том, что там не продумано с выборками.
У класса vector есть функция fill --

vector.fill(value),

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

fill(vector.ptr(0), vector.ptr(10), value);

Причём указатели (begin и end) можно случайно поменять местами, взять begin из одного массива а end из другого, и во всех этих случаях программа грохнется, потому что никакой защиты нет. Программист обязан сам всюду носить эти парочки итераторов. Куда правильней иметь класс типа array_ptr, который будет в точности, как вектор (в смысле набора функций), только без попытки размещать/освобождать блоки. Вот так:

vector.get_region(0,10).fill(value)

В STLе было несколько новых идей, которые мы тут же позаимствовали, но в целом на поверку он оказался unusable.

(Ответить) (Ветвь дискуссии)


[info]yanis@lj
2005-04-17 18:25 (ссылка)
Согласен. проблемная библиотека - алгоритмы туманные и очень сложно отлаживаются (это помимо их неэффективности), неоднородные имплементации на разных платформах, непоследовательное поведение. Да собственно даже синтаксис убогий совершенно и вымученный. Короче непонятно, с чего это он выебывается ...

(Ответить) (Уровень выше)


(Читать комментарии) -