avva: (moose)
[personal profile] avva
The Most Important Software Innovations

Некто составил и пополняет список самых важных новых идей в программировании. За все 2000-е годы у него вышла одна новая идея :(

Это к вопросу о том, что нового вообще происходит в программировании как дисциплине, чему мы коллективно учимся.

Если вам кажется, что он упустил что-то очень важное - предлагайте ваши варианты. По-моему в целом список ценный и осмысленный, хотя видно, что планку важности он водрузил довольно-таки высоко.

Date: 2013-03-11 12:48 am (UTC)
From: [identity profile] strangeraven.livejournal.com
раз уж там есть мышь, то должен быть и тачскрин
еще шаблоны и обобщенное программирование

непонятно, почему туда сортировка Хоара попала - ну да, ее все повсеместно используют
но она не является какой-то прям важной для мира софта инновацией, ее появление ни на что не влиет. не было бы ее, использовали бы другую, и всего то
Edited Date: 2013-03-11 12:54 am (UTC)

Date: 2013-03-11 01:35 am (UTC)
From: [identity profile] ygam.livejournal.com
Странный список: где типы данных? Рефлексия? Генерики?

Date: 2013-03-11 01:38 am (UTC)
From: [identity profile] archaicos.livejournal.com
КМК, инновации/технологии/методы попроще и поменьше не менее важны.

То же сжатие (и серьёзные результаты типа mp3) - в аппендиксе есть.

Рекурсию в аппендиксе упомянули, а машин состояний в явном виде, на которых, кстати, всё построено, не видно. Разве что, Flowcharts.

Ещё что-то не вижу в явном виде эмуляции и виртуализации.

Алгоритмы кодирования упомянуты, а security в целом - не очень.

AI упомянут только в контексте LISP. Neural nets? Genetic algorithms? Anything?

Так же что-то отсутствуют всякие полезные штуки из областей DSP, адаптивных алгоритмов.

Map-reduce - хорошо. Но тогда надо и FFT дать медальку.

Date: 2013-03-11 01:52 am (UTC)
From: [identity profile] msh.livejournal.com
если есть make и аж два version control - должен быть и IDE
есть rsync - нужно включить VoIP (куда как важнее концепт)
Secure Mobile Code - оказался никому не нужным hype, выкинуть, заменить на виртуализацию

вообще непонятно смешаны достижения CS (почему именно quicksort? Почему не самый первый алгоритм сортировки?), странно отобранные технологии (почему DNS?) и популяризация до того существовавших явлений (refactoring и design patterns - они, конечно же, существовали задолго до того, как про них написали)

Date: 2013-03-11 02:16 am (UTC)
From: [identity profile] ygam.livejournal.com
Сортировку слиянием изобрёл Джон фон Нейман в 1945 году.

Date: 2013-03-11 03:20 am (UTC)
From: [identity profile] amarao-san.livejournal.com
Интересно, но однобоко. Полностью пропущена вся p2p часть сети. Ни самого p2p, ни DHT, ни вытекающих из DHT энтерпрайз решений (наподобие swift'а). А ведь DHT - это минимум революция. Причём ещё не расцветшая до конца (т.к. пока что СХД на DHT только-только пишутся).

Date: 2013-03-11 03:34 am (UTC)
From: [identity profile] potan.livejournal.com
Про lambda-исчисление, десларативное программирование и DSL ни слова...

Date: 2013-03-11 04:10 am (UTC)
From: [identity profile] dmzlj.livejournal.com
Наличие "шаблонов программирования", но отсутствие вывода типов или хотя бы работ Карделли по ОО (если уж мы считаем ОО чем-то важным) делает этот список очень странным.

Date: 2013-03-11 04:11 am (UTC)
From: [identity profile] dmzlj.livejournal.com
Вот. Виртуализация, конечно же.

Date: 2013-03-11 04:13 am (UTC)
From: [identity profile] burrru.livejournal.com
Это список волка-одиночки. На сой взгляд, Agile нужно добавить.

Date: 2013-03-11 04:17 am (UTC)
From: [identity profile] larubin.livejournal.com
Про графику ни слова, а там были прорывы так прорывы, и в 2000х тоже

Date: 2013-03-11 04:29 am (UTC)
From: [identity profile] justy-tylor.livejournal.com
Список - случайная помойка. Многие вещи в нём являлись не инновациями, а серьёзной деградацией на тот момент времени, включая: ASCII (перенос на компьютеры телеграфной кодировки с отсутствием символов умножения и деления), regular expressions (после такого то SNOBOL), да и всю похабную деятельность Тима Б-Л. Проходные случаи вроде книги "заплатки для Java" (поминаемой как Design Patterns) на инновации не тянут.

О действительном развитии технологий - языков, компьютерной графики, пользовательских интерфейсов, САПРов, etc - почти ничего.

Date: 2013-03-11 04:33 am (UTC)
From: [identity profile] spamsink.livejournal.com
Отсутствие text compression в основном списке я расценил как ложную скромность: он ведь W в BWT, поэтому, возможно, на сжатие вовсе не смотрел. А что эмуляция и виртуализация не упомянуты совсем - действительно, безобразие.

Date: 2013-03-11 04:35 am (UTC)
From: [identity profile] spamsink.livejournal.com
"Некто составил"! Ну ты даешь!

Date: 2013-03-11 04:54 am (UTC)
From: [identity profile] msh.livejournal.com
Он другой W - и из его сайта мне как-то неочевидно что же пишет кроме статей

Date: 2013-03-11 04:56 am (UTC)
From: [identity profile] vanja-y.livejournal.com
Это не тот, который в BWT. Он сам об этом пишет в строке про попдрограммы. Тот Wheeler, который тот, умер 9 лет назад.

Date: 2013-03-11 04:57 am (UTC)
From: [identity profile] watertank.livejournal.com
Огромная (интересная) работа.

Кроме идей в программировании (он их почему-то называет инновациями) еще очень хорошо видно его редукционное мышление (reductionism). Выдающийся человек совершенно не видит возникновение новых систем. Для него части абсолютно важнее целого.

Date: 2013-03-11 05:20 am (UTC)

Date: 2013-03-11 05:24 am (UTC)
From: [identity profile] spamsink.livejournal.com
Да, middle name я и не приметил.

Date: 2013-03-11 05:42 am (UTC)
From: [identity profile] nalivalovo.livejournal.com
Ну логика видна - мышка принципиально изменила подход к интерфейсам, как с точки зрения программиста, так и с точки зрения юзера. А тачскрин, при всем том, что позволил нормальную мобильность, и все такое прочее, принципиально подхода к интерфейсам не менял.

Date: 2013-03-11 07:13 am (UTC)
From: [identity profile] plakhov.livejournal.com
А мне кажется, что такой список не объективен и по нему можно угадать специализацию и даже (с какой-то вероятностью) место работы его составителя. Почему именно регулярные выражения? Это же просто DSL для часто встречающейся задачи. Какой-нибудь сборщик мусора гораздо важнее (для тех, кто поспешит меня просвящать - я знаю, в каком языке он появился, и знаю, что пункт про этот язык есть, но пункт этот все-таки о другом, и GC там даже не упомянут). Pipes - инновация того же уровня, что и компиляция? ORLY? Почему есть мышь, но нету, скажем, OpenGL? Потому что игры "менее важны"?

А с "единственной инновацией из двухтысячных" я не согласен вообще (хотя ежедневно с её клоном работаю). Это, во-первых, не инновация вообще. До неё буквально те же вычисления везде делались, только, условно, на shell-скриптах. MapReduce - попытка увидеть общие проблемы этих процессов и решить "раз и навсегда", не самая лучшая притом (хотя и самая известная). Основной и принципиальный недостаток известен - у модели MapReduce очень плохо с "маленькими частыми апдейтами", т.е. с любым риалтаймом, и это не лечится без смены модели вычислений. Также никакими ногами в неё не утрамбовываются: многоитерационные приближения, графовые вычисления, кластеризация. За бортом из постоянных проблем остались: многодатацентровость, автоматизация графа зависимостей данных и вычислений. Альтернативные подходы (в т.ч. и в Гугле применяемые), решающие в том числе и эти задачи, существуют и описаны в литературе.

Если смотреть по ближайшим родственникам, то он бы хотя бы BigTable тогда взял, что ли.

P.S. Но да, статья интересная, и работу автор проделал большую, за что ему спасибо. Неинтересные статьи не хочется комментировать.
Edited Date: 2013-03-11 07:30 am (UTC)

Date: 2013-03-11 07:16 am (UTC)
From: [identity profile] plakhov.livejournal.com
Ничего себе не изменил. У менеджеров Windows 8 аж мантра целая "desktop is legacy", которой они Metro оправдывают.

Date: 2013-03-11 07:23 am (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Ну, эта... Я еще не видел кубикожителя, который бы слышал про Карделли. Хиндли с Милнером еще туда-сюда.
Edited Date: 2013-03-11 07:23 am (UTC)

Date: 2013-03-11 07:25 am (UTC)
From: [identity profile] huzhepidarasa.livejournal.com
Не может быть такой список осмысленным в принципе, по-моему.

Date: 2013-03-11 07:31 am (UTC)
From: [identity profile] strangeraven.livejournal.com
разница по сравнению с мышкой на самом деле довольно существенная
кроме тачскрин открыл для софта целые новые платформы: планшеты и киоски
Edited Date: 2013-03-11 07:33 am (UTC)

Date: 2013-03-11 08:37 am (UTC)
From: [identity profile] norian.livejournal.com
имхо это дело пошло экстенсивным путём на волне улучшения железа - когда после экономии битов и извратов с адресацией появилась более-менее стандартная 32/64битная архитектура и флет-модель памяти охренительного по сравнению с размера, необходимость улучшения проектирования больших систем превысила необходимость виртуозного кодирования

это как после изобретения железобетона акцент сместился от проблем выкладывания кирпичами сводов к планировке больших помещений

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

Date: 2013-03-11 08:40 am (UTC)
From: [identity profile] krasin.livejournal.com
Я не увидел в списке инструментов статического и динамического анализа программ. Вот эти все clang, valgrind, tsan, asan и прочие штуки, без которых большие проекты (миллионы строк) превращаются в сборище багов.
Edited Date: 2013-03-11 08:56 am (UTC)

Забыли пару игрушек !

Date: 2013-03-11 08:45 am (UTC)
From: [identity profile] michael moser (from livejournal.com)
Забыли пару игрушек включить в список

test driven development
continuous integration
high availability / clustering ( старое, однако )
Hardware virtualization (очень старое, однако )
JIT - just in time compilation
Type systems / duct typing
?
Edited Date: 2013-03-11 12:11 pm (UTC)

Date: 2013-03-11 10:39 am (UTC)
From: [identity profile] ztarlitz.livejournal.com
Мне одному показалось что компьютерную графику он обошел стороной? Или он считает это не важным, но тогда при чем тут мышь? Серьезные инновации случились в comp. vision буквально вот всего несколько лет назад в микрософте.

Date: 2013-03-11 01:14 pm (UTC)
From: [identity profile] a-konst.livejournal.com
И что? Это подтверждение мысли, что "не изобрели бы quick-sort, использовали бы другую"?

Date: 2013-03-11 01:53 pm (UTC)
From: [identity profile] migmit.livejournal.com
Хрен с ними с генериками, это уже многие считают rocket science. Где эксепшены???

Date: 2013-03-11 01:55 pm (UTC)
From: [identity profile] migmit.livejournal.com
Есть word processors и spreadsheets, но нет presentations. Между тем для Типового Юзера они весьма важны.

Date: 2013-03-11 03:05 pm (UTC)
From: [identity profile] ygam.livejournal.com
До изобретения быстрой сортировки использовали иной O(n log n) алгоритм.

Date: 2013-03-11 06:19 pm (UTC)
From: [identity profile] watertank.livejournal.com
P.S. Значительных идей за 2000-10 в списке мало, потому что вся классификация составлена "задним умом" (hindsight bias). Мы просто не знаем, что какая-то разработка сегодня окажется великой через 20 лет. Точно так же люди не знали, что работа Тьюринга в 1930-е произведет революцию 70-е. И даже эта революция не произошла бы, если бы в конце 1950-х не изобрели и потом не научились делать Silicon-based Integrated Circuits.

Date: 2013-03-11 07:39 pm (UTC)
From: [identity profile] http://users.livejournal.com/_iga/
Subroutines в списке есть, а coroutines почему-то нет.

Отсутствует JPEG и вообще lossy compression.
Edited Date: 2013-03-11 07:41 pm (UTC)

Date: 2013-03-11 10:45 pm (UTC)
From: [identity profile] cryinstone.livejournal.com
А разве Agile совершил революцию?

Date: 2013-03-12 04:58 am (UTC)
From: [identity profile] burrru.livejournal.com
Как я понял, это список не революционных идей, а самых важных идей в программировании.

Date: 2013-03-12 06:58 am (UTC)
From: [identity profile] asox.livejournal.com
разница по сравнению с мышкой на самом деле довольно существенная

Не замечал, откровенно говоря.

кроме тачскрин открыл для софта целые новые платформы: планшеты и киоски

Если под "киосками" понимаются всяческие "терминалы" типа оплатных - то их интерфейс изначально базировался на "военном" - кнопочки по бокам экрана.
Он, собственно, у нас и посейчас так базируется.

Date: 2013-03-12 07:20 am (UTC)
vlad_suh: Glider in the sky (Default)
From: [personal profile] vlad_suh
мультитач же. Мышкой многопальцевые движения не сделать.
У большинства платёжных терминалов интерфейс ничего общего с боковыми кнопками давно не имеет.

Date: 2013-03-12 07:31 am (UTC)
From: [identity profile] asox.livejournal.com
А. ну если мультитач только. Кстати не упомянут в списке.

За "большинство" терминалов я ничего не скажу - но "открылись" они именно с боковых кнопок, а не с сенсорных экранов.

Date: 2013-03-12 09:25 am (UTC)
From: [identity profile] winpooh.livejournal.com
Ни разу не встречал платёжного терминала, в интерфейсе которого использовался бы мультитач.

Date: 2013-03-12 10:14 am (UTC)
vlad_suh: Glider in the sky (Default)
From: [personal profile] vlad_suh
Имелось в виду, что у терминалов уже давно интерфейс похож на web-страницу, а не на банкомат с аппаратными кнопками.

Date: 2013-03-12 10:19 am (UTC)
From: [identity profile] cryinstone.livejournal.com
Ну Agile - это не совсем программирование. Даже совсем не программирование, а управление проектами. У автора в списке все же вещи из области компьютерных наук, а не менеджмента.

Да и при всем рациональном зерне, которое есть в Эджайл - реальность все равно часто оказывается богаче на выдумки любых теорий и методологий, а серебрянной пули не существует в принципе. Скажем, мода на Аджайл сегодня повсеместна, но можем ли мы сказать, что в последние годы произошел прорыв в области качества софта, производительности, и соответствии ожиданию клиентов?

Date: 2013-03-12 06:23 pm (UTC)
From: [identity profile] burrru.livejournal.com
Согласен, это ближе к управлению. Но, на мой взгляд, для производства софта Agile никак не менее важен, чем, скажем, refactoring.

...

Date: 2013-03-13 08:23 am (UTC)
From: [identity profile] michael moser (from livejournal.com)
Кстати, автор этого сочинения придумал очень замечательный проект

http://sourceforge.net/p/readable/wiki/Solution/
http://readable.sourceforge.net/

Lisp можно отформатировать как Python - индентация становится заменителем скобок.
Просто и гениально.

Date: 2013-03-17 08:30 pm (UTC)
From: [identity profile] rezdm.livejournal.com
Довелось мне где-то в конце 90ых ~ начале 00 книжку по программированию какую-то (по-моему, что-то про Пролог, сейчас уж не помню, что именно за книга была), на то время относительно свежая была. Так вот в предисловии было "с 70ых годов — застой в программировании, кардинально ничего нового".

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 09:31 pm
Powered by Dreamwidth Studios