catpad: (Default)
[personal profile] catpad

Решил сам для себя сделать небольшое "концептуальное" обозрение истории программирования и языков. Нанёс на график основные вехи. По одной оси - время от 50-х годов до сегодняшнего дня, по другой - нечто, что можно описать как "степень интереса, надежд, тенденций и всего такого". Получился закономерный "колокол" нормального распределения с небольшими случайными отклонениями.

На втором графике я сделал прогноз на следующие 50-60 лет, учитывая получившийся паттерн.








Таким образом, я делаю вывод, что программирование (языки, технологии, концепции) будет находиться в упадке ещё лет 10, но в 20-х годах следует ожидать появления новых идей (о которых пока и догадываться невозможно), совсем новых парадигм программирования и на их основе новых языков. В 40-х годах - нового расцвета языков и исследований; появления совсем новой революционной технологии годах в пятидесятых, дальнейшего развития программирования на её основе; победу какого-то одного языка к середине 50-х; неизбежного его усложнения к началу 60-х; потерю интереса к новому программированию как к искусству и превращения его в индустрию в середине шестидесятых годов 21-го века.

Date: 2005-05-27 06:34 am (UTC)
From: [identity profile] dixi.livejournal.com
Хм. попробовать что-ли сделать что-то подобное для процессоров.
Должно быть интересно.

Date: 2005-05-27 06:41 am (UTC)
From: [identity profile] mopexod.livejournal.com
Доживём?

Date: 2005-05-27 06:47 am (UTC)
From: [identity profile] catpad.livejournal.com
Я вот подумал, что, может быть, все процессы будут идти раза в два-три быстрее, потому что очень много всего наработано в отличие от 50-х годов прошлого века. Тогда есть надежда :)

Date: 2005-05-27 07:10 am (UTC)
From: [identity profile] sashanep.livejournal.com
Очень интересно Миша!
Только как ты определял амплитуду "Надежд..."? На глаз?

Date: 2005-05-27 07:15 am (UTC)
From: [identity profile] catpad.livejournal.com
На глаз, конечно. Масштаб, как понятно, можно менять - там же нет делений.

Date: 2005-05-27 07:23 am (UTC)
From: [identity profile] jumpingrat.livejournal.com
Да, первая напрашивающаяся мысль - наложить на историю и перспективы развития вычислительных систем. Есть подозрение, что новая парадигма в программинге будет неразрывно связана с появлением новых концепций вычислительных систем, принципиально отличных от существующих сейчас.

Date: 2005-05-27 07:32 am (UTC)
From: [identity profile] catpad.livejournal.com
Я думаю, это не подозрение, а уверенность. Компьютер фон Неймана и бинарная логика, кажется, исчерпали возможности для возникновения новых моделей вычисления.
Вот, например, почему Аду Лавлейс называют "первой программисткой" ? (она же на самом деле не была уж совсем первой). А потому, что она первая написала, что компьютер может оперировать не только числами, но и символами, что и послужило началом всему остальному.
Я думаю, что компьютер следующего поколения должен будет оперировать не только числами и символами, но и какими-то неизвестными нам абстрактными категориями, которые в существующей архитектуре непредставимы. Если исследование мышления продвинется в какой-то серьёзной степени, тогда и компьютер можно будет моделировать по образу и подобию.

Date: 2005-05-27 07:37 am (UTC)
From: [identity profile] potan.livejournal.com
какими-то неизвестными нам абстрактными категориями
Особенно если гипотеза Пенроуза верна :-)).

Date: 2005-05-27 07:40 am (UTC)
From: [identity profile] catpad.livejournal.com
А что это за гипотеза ?

Date: 2005-05-27 08:07 am (UTC)
From: [identity profile] potan.livejournal.com
То, что мыслительная деятельность обусловлена физическими процессорами, которые принципиально не могут быть смоделированны на машине Тьюринга. Предположительно эти процессы описываются в рамках какой-либо теории квантовой гравитации.
Обосновывает он это тем, что человек способен понимать математику, не смотря на теорему Геделя о неполноте.

Date: 2005-05-27 08:12 am (UTC)
From: [identity profile] catpad.livejournal.com
Обоснование его я не понял, честно говоря, а вот с гипотезой полностью согласен.

Date: 2005-05-27 08:43 am (UTC)
From: [identity profile] potan.livejournal.com
У него несколько книг на эту тему есть. Не совсем строго, но достаточно убедительно.
На русском выходили "Новый ум короля" и половина "Теней разума". В электронном виде я не нашел, на на русском, ни на англисском.

Date: 2005-05-27 08:46 am (UTC)
From: [identity profile] catpad.livejournal.com
Да, у меня она есть, только я не читал. Начал читать его "The Road to Reality : A Complete Guide to the Laws of the Universe", но быстро перестал что-либо понимать :)

Date: 2005-05-27 08:49 am (UTC)
From: [identity profile] potan.livejournal.com
Те, что на русский перевели - очень просто написаны. Как начно-популятные. Хотя он и что-то более научное на эту тему писал.

Date: 2005-05-28 12:09 pm (UTC)
From: [identity profile] mataanin.livejournal.com
gy gy tak eto vihodit cto misle itelnaja dejatelnost' ne poddajetsia podscetu ili ne svoditsia k algoritmu:)

Date: 2005-05-27 08:19 am (UTC)
From: [identity profile] jumpingrat.livejournal.com
Читаете мои мысли, хе-хе (или я Ваши? ;) )

Date: 2005-05-27 07:35 am (UTC)
From: [identity profile] potan.livejournal.com
Prolog не совсем умер, скорее ушел в подполье. Visual Prolog используется в коммерческих разработках. Появились так же потомки - Mercury, Curry.

Зря Вы забыли отметить язык Miranda и ее современного наследника Haskell (который стал фактически стандартом в computer science).

Еще APL (компьютерный Ithkuil ;-)). Его потомки широко применяются в системах анализа данных.

Сейчас набирает популярность язык OCaml, возможно лет через 5 он серьезно потеснит C++.

Date: 2005-05-27 07:50 am (UTC)
From: [identity profile] catpad.livejournal.com
Говоря о гибели Пролога я имел в виду вот что. В середине-конце 80-х, когда в Японии была экономика "мыльного пузыря", говорили о том, что японцы строят какие-то компьютеры "пятого поколения" на основе Пролога. И вообще было много шума вокруг Пролога. Потом эта идея тихо умерла вместе с японским экономическим пузырём. Конечно, что-то от всего этого осталось, но это так ничтожно по сравнению с возлагавшимися надеждами, что и говорить не о чем.

Про Miranda я не знаю совсем, а Haskell - это, конечно, хорошо, но опять же: я говорю только о mainstream. Понятно, что и на Лиспе ещё пишут в университетах, и на Смоллтолке даже в промышленных масштабах, и я сам лично вёл последний курс по APL (это мой любимый язык) в израильском Технионе, правда, курс этот прикрыли году в 98-м за "ненадобностью".
Так что я говорю только о тенденциях, а не о том, что всё это вымерло окончательно.

Интересно, что вы сравнили APL с Ithkuil'ом. Я только сегодня об этом же подумал, потому что прямо сейчас перевожу интереснейшее интервью с создателем Ithkuil'а, и пожалел, что не задал ему этот вопрос. Хотя он может и не знать о программировании ничего.

Date: 2005-05-27 08:11 am (UTC)
From: [identity profile] potan.livejournal.com
Haskell можно отнести к mainstream, если не ограничиваться индустрией. В значительной части публикаций в области CS он используется для описания примеров.

APL зря они прикрыли. Язык K (его потомок) вполне мог бы многим пригодиться.

Date: 2005-05-27 08:14 am (UTC)
From: [identity profile] catpad.livejournal.com
Конечо зря! Моему возмущению не было предела!
А про К ничего не знаю, слышал только про J.

Date: 2005-05-27 08:41 am (UTC)
From: [identity profile] potan.livejournal.com
kx.com (http://www.kx.com/)
На нем написана (почти, да простит меня [livejournal.com profile] muchandr) полноценная СУБД kdb, весящая порядка 200К.

Date: 2005-05-27 08:58 am (UTC)
From: [identity profile] catpad.livejournal.com
Кстати, если интересно, тут вот я статейку написал про APL:
http://odzillazine.jot.com/WikiHome/Contents/Issue%202/APL.zip

Date: 2005-05-27 06:28 pm (UTC)
From: [identity profile] thedimka.livejournal.com
а как же биологические саморазвивающиеся мыслящие процессоро-сущесва

с ними железо не потягается и языки они уже будут сами доводить до ума

Date: 2005-05-28 12:30 pm (UTC)
From: [identity profile] mataanin.livejournal.com
prostite za translit...

a pocemu ne upomianuti AOP (http://en.wikipedia.org/wiki/Aspect-oriented_programming), Software patterns, pattents i FOSS ?:)

poslednije osobenno sposobstvujet programirovaniju kak remeslu, osobenno seicias kogda uvelicivajetsia interess k OSS. Jesli uzakoniat zhestkije patenti po otnosheniji k kodu, to eto esio usilitsia. Nedavno na /. obsuzhdalas' vozmozhnost' imet' polnocennij dohod ot vipolnenija bounties.

kstate, mozhno li posmotret' interv'ju s Jimbo Walles, kotoroje kakojeto vashe izdanije bralo?

Date: 2005-05-30 01:33 am (UTC)
From: [identity profile] catpad.livejournal.com
Я не считаю, что AOP это что-то сильно новое и важное. Некоторое улучшение ООП с помощью препроцессора, не более того. Design Patterns - хорошая штука, но интересная больше в концептуальном смысле, чем в практическом. Хотя я не отрицаю, что именно Design Patterns могут породить совершенно новые идеи в языках. Надо было их включить в график.
Что такое FOSS не знаю.

Интервью надо мне сначала перевести, потом покажу.

Date: 2005-05-30 09:25 am (UTC)
From: [identity profile] mataanin.livejournal.com
FOSS eto Free and Open Source Software, a 'bounties' eto oplacivajemije dopolnenija k programnomu oborudovaniju kotorije podnimajutsia liudmi/kompanijami kotorije ispolzujut FOSS. Obicno za nih platiat nebolshije, no dostatocnije summi.

Date: 2005-06-01 04:14 am (UTC)
From: [identity profile] sean-mcgregor.livejournal.com
Браво!
Я тоже вот до всех пытаюсь донести мысль об упадке программирования...

Date: 2005-06-01 04:19 am (UTC)
From: [identity profile] catpad.livejournal.com
Да разве ж кто-то в этом сомневается ?

Date: 2005-06-20 01:16 am (UTC)
From: [identity profile] rocket-surgeon.livejournal.com
Ошибка думать что язык - главное, что требуется для прогресса computer science. По большей части победили языки поддержаные деньгами корпораций (C/C++ это AT&T и HP, Java это Sun, C# - Microsoft). Т.е. эволюция языков из противостояния концепций переросла в противостояние продуктов. Превращение в индустрию - это коммодизация, что очень позитивно по большому счету. То что скоро произойдет, так это окончательная победа языков, когда аппаратная сторона дизайна будет на 100% диктоваться языком платформы. Несколько попыток создать Pascal процессоры, форт машины, Java чипы и сателлитные платы и т.д. наконец привели к такой вещи как IBM/Sony Cell CPU. Если учить что-то на перспективу, так это Cell технологию.

Date: 2005-06-20 01:17 am (UTC)
From: [identity profile] catpad.livejournal.com
Главное - это не язык и не деньги, а парадигмы, структуры и представление данных.
Язык в рамках успешной парадигмы может быть любым.
А печальный пример Ады и PL-I доказывает, что никакие деньги, комитеты и корпорации (и даже министерства обороны) ничего здесь не решают.
С стал успешным не потому, что за ним стояла AT&T, а потому что на нём был написан Unix, который в свою очередь объективно был лучше всего остального.
С++ стал успешным потому, что на него было удобно перейти с С, а парадигма была гораздо богаче.
Java стал успешным потому, что не него было удобно перейти с С++, а программировать было легче и безопасней.

Date: 2005-06-20 02:35 am (UTC)
From: [identity profile] rocket-surgeon.livejournal.com
Все же деньги это первопричина. График похож на NASDAQ чарт. С - это осколки от A, B и ADA. Unix - это плот сколоченый из обломков недостроенного Multix. Проект DARPA был не пустой тратой денег. Напрямую или косвенно, Unix и С, С++, Internet делали те же люди, чей опыт и время были оплачены из бюджетов так или иначе нацеленных на корпоративные или государственные цели. Никто не создаст новый успешный язык, если его не купят (не оплатят). Microsoft затеял C# ради денег.

А парадигмы и паттерны - это прорва. 70 тыс классов в J2EE это не достижение, а безобразие. Низкоуровневая машина CPU слишком универсальна и примитивна по сравнению с устоявшимися составляющими языков: стек, exceptions, threads, heap, locks, resources. 99% языков проэволюционировали до степени, когда отличаются друг от друга только синтаксисом. Т.е. эволюция кончилась победой универсального языка. Этот язык не какой-то конкретный, а набор выше перечисленных обязательных компонент.

Языки возникают как ответ на значительные для определенного этапа развития проблемы. В каждую эпоху свои. В годы структурного становления (Pascal, Modula), объектов (С++, Object Pascal), надежности и переносимости (Java, C#). Сейчас проблем просто не осталось. Крупных по крайней мере.

Date: 2005-06-20 02:50 am (UTC)
From: [identity profile] catpad.livejournal.com
Проблема осталась, одна и самая крупная: как программировать проще, быстрей и качественней. Очевидно, что этой области только 50 лет, поэтому все её основные достижения ещё впереди. Книгопечатанию понадобилось 500 лет, пока оно дошло до desktop publishing, а столярному и портному делу - тысяч, наверное 5, пока появились правильные станки. Так что придётся ещё подождать.

Date: 2005-06-20 03:15 am (UTC)
From: [identity profile] rocket-surgeon.livejournal.com
Иллюзия ожидания волшебной технологии простого, быстрого и безошибочного программирования в том что кажется что языки все еще имеют какой-то потенциал для этого. Да, два важных этапа развития: модульность и объекты были великими потрясениями. Но после, когда все ответы были получены, включая надежность и скорость разработки уже невозможно представить более простых языков чем Java и C#. В той же полиграфии и текстильной индустрии из всего многообразия оборудования выжили единицы предельно оптимального типа и революции кончились.

Что будет через 50 лет ? (а может и через 2-3 года если Cell победит). Я думаю железо будет очень простым, проще чем сейчас. Что-то вроде свободно перепрограммируемого FPGA. Софт OC будет грузиться как firmware в FPGA создавая поля из процессоров и памяти, а прикладное обеспечение будет на межплатформенном языке типа IL. Выбирая железо люди будут просто решать сколько им нужно килопроцессоров, мегаканалов и терапамяти, а программисты будут увлечены обсуждениями технологий IL-FPGA трансляции.

Date: 2005-09-23 01:37 pm (UTC)
From: [identity profile] potan.livejournal.com
пока появились правильные станки
А они уже появились? :-)))

Date: 2005-06-29 11:19 am (UTC)
From: [identity profile] ex-tetragra.livejournal.com
конечно очень спорный график.
я конечно не такой умный как другие, но пару центов добавить хотелось бы
-упадок какой-то есть, но скорее не в языках, а в новых алгоритмах вообще. с 70-х годов там мне кажется мало нового что сделано
-полносью пропущены языки баз данных. pl/sql как жил так и живет и java никакие его пока не съели и там все хорошо
-а самый популярный язык сейчас VB! А уж про Excel вообще молчу

Это как с фоторгафией - из удела профессионалов реализация безнес-логики растекается по обычнм людЯм
Page generated Feb. 6th, 2026 12:02 pm
Powered by Dreamwidth Studios