Будущее программирования - обсудим?
От: LaptevVV Россия  
Дата: 07.02.12 22:09
Оценка: 12 (4) :)
http://ajc.su/koding/budushhee-programmirovaniya/

[Автор оригинального текста — Paul Chiusano, программист, работает в Capital IQ, пишет преимущественно на Scala. Один из разработчиков библиотеки scalaz — прим. пер.]

Как будет выглядеть программирование через 10-20 лет? В канун нового года самое время пофилософствовать о будущем нашей индустрии. Мы находимся на пороге значительных изменений в деле написания программ, по сравнению с которыми нынешние, 2011 года, техники и идеи будут выглядеть примитивными. Изменения будут происходить в нескольких важных областях: инструментария и инфраструктуры, языков и систем типов, систем времени исполнения.
...

Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Будущее программирования - обсудим?
От: fddima  
Дата: 07.02.12 22:39
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

Да что там обсуждать, кто ж его знает как оно будет на самом деле. Мир слишком многогранен, что бы зоопарк ушел в лес.

По сравнению с меинстримными языками, такими как Java, C# или Python язык Javascript не так и плох; в некоторых отношениях он даже лучше. Но Javascript не выдерживает сравнения с языками, имеющими хорошую систему типов и настоящую поддержку ФП, вроде Haskell, Scala и тех языков будущего, которые придут им на смену.

Яваскрипт перед всеми остальными имеет ровно одно преимущество — он действительно исполняется в реальных браузерах.
По всем остальным пунктам он сольёт. Тем не менее я лично считаю, что JS — язык действительно интересный, хороший язык — но — на нём дороговато разрабатывать. Лучшие средства разработки с трудом справляются с ним даже с обильно усеянными хинтами. Эффективность исполнения? Тоже сольёт и Java и C# и Python.
А про ФП — так это вообще судя по всему словечки ради дани моде.
Нет, конечно, если на каждый чих генерить страницы с сервера — то зачем и JS то нужен?! А для более-менее современной обвязки нужно как минимум около 300Kb JS кода, — фреймворка. Посмотреть на фреймворки поболее — так там счет на мегабайты. Может не в языке дело?

Предвижу будущее, в котором Javascript постепенно отходит на второй план, как уходят и специализированные плагины для браузеров вроде Flash, уступая место коду, написанному на произвольных, компилируемых языках, использующих для работы что-нибудь вроде NaCl.


NaCl как и Chromium платформа просто умрёт под собственным грузом. Да ну как и остальные html движки — кода много — ресурсов хавает дай бог каждому, а толку то реально мало. Продвигать насквозь однопоточные layouting engine с кучей ограничений лишь под флагом секурности и скорости и изоляции — это просто бред, при этом решая просто насущные проблемы однопоточного дизайна, и (опционально для разных движков) невозможность достоверно уничтожить js context без перезапуска процесса. Самое смешное, что исключительно все выходцы былых времен и страдают одними и теми же проблемами — а новых выходцев — нет, потому что потянуть всю эту ахинею осилит далеко не каждый, труд слишком велик. Тем не менее вся это богодельня мне кажется очень даже будет жить.
Re: Будущее программирования - обсудим?
От: Nuseraro Россия  
Дата: 07.02.12 22:46
Оценка: 1 (1) +3 -1
Здравствуйте, LaptevVV, Вы писали:

LVV>http://ajc.su/koding/budushhee-programmirovaniya/


Да уже лет 30 ничего в программировании толком ничего не меняется. Что будет еще через 10? Да ничего! То же самое подадут еще раз под несколькими соусами. Ну может и возникнет какая-нибудь мода, и станет популярным какой-нибудь PJMLScript&& для новой разработки, но суть останется той же да и большинство продолжит поддерживать кучу написанного кода и верно напоминать, что PJMLScript&& оно конечно да, но ни разу не панацея и мозг включать по любому придется.
Homo Guglens
Re: Будущее программирования - обсудим?
От: IT Россия linq2db.com
Дата: 07.02.12 22:46
Оценка: 11 (4) +16 :)
Здравствуйте, LaptevVV, Вы писали:

LVV>[Автор оригинального текста — Paul Chiusano, программист, работает в Capital IQ, пишет преимущественно на Scala. Один из разработчиков библиотеки scalaz — прим. пер.]


Первым существенным изменением будет уход от представления программ в виде текста, разделенного на файлы.


Первый посыл и сразу весьма сомнительный. Сомнительный практически до нереального. Короче, фантазёрство. Советские фантасты так представляли планету через 50 лет (как раз наше время). Везьде коммунизм, в небе кругом летательные аппараты, космические карабли бороздят просторы, а мониторы у компьютеров всё такие же зелёные и информация хранится в сейфе предварительно сброшенная на перфоленту. А на деле получилось интернет, карманные телефоны со встроенными видео камерами, навигаторами и музыкальными центрами, трёхмерное телевидение и терабайты семейных картинок и видео. Правда вот с коммунизмом и космосом как-то не всё получилось.
Если нам не помогут, то мы тоже никого не пощадим.
Re: Будущее программирования - обсудим?
От: licedey  
Дата: 08.02.12 04:54
Оценка: :)
Здравствуйте, LaptevVV, Вы писали:

LVV>http://ajc.su/koding/budushhee-programmirovaniya/

LVV>

LVV>[Автор оригинального текста — Paul Chiusano, программист, работает в Capital IQ, пишет преимущественно на Scala. Один из разработчиков библиотеки scalaz — прим. пер.]

LVV>Как будет выглядеть программирование через 10-20 лет?
LVV>...


Изменения в программировании происходят,когда назревает необходимость. Так было с С++ и Java. На данный момент, контроль над мейнстримными языками осуществляют те же компании, что и создают веяния в мире софта и железа. Так получается замкнутный круг — девайс->технология<->язык.
Лично я За — изменения самого образа программирования в сторону визуальности. Автор прав в том, что потеря продуктивности из-за кода в тексте, остается за пределами радаров программиста.
Re: Будущее программирования - обсудим?
От: m e  
Дата: 08.02.12 04:56
Оценка:
ок, обсудим

часть А, критика:

1. автор -- человек с завышенным чсв, рассказывает про то, что

> Эта проблема пользуется популярностью среди людей, которые предпочитают находить своему нежеланию учить Haskell и ФП рациональные объяснения


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

> А тем, кто предпочитает критиковать ФП, я считаю, не помешает заиметь немного скромности.


помешает

очень даже помешает критическому восприятию их понтов -- как ввели *недавно* в хаскеле (или его расширении) семейства типов (практически аналог плюсовых шаблонных типов, существующих х.з. сколько времени), уж столько помпы в вики -- это же почти зависимые типы!!1111

2. наезды автора на опциональную ленивость http://pchiusano.blogspot.com/2009/05/optional-laziness-doesnt-quite-cut-it.html встречают адекватную реакцию первым же комментом: automatic strictness inference/propagation, но автор как ничего кроме себя не слышит

впрочем, тема весьма интересная

3.

> Так, будут почти универсальные стандарты (вроде getAllLinks)


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

я думаю тут решение будет простое -- настоящим аппликухам нет смысла держать у себя шибко интересные гуглу урл-ки, урл-ки это атрибут документации (т.е. именно страницы с (гипер)текстом), а не аттрибут аппликухи
Re: Будущее программирования - обсудим?
От: m e  
Дата: 08.02.12 05:01
Оценка: 1 (1) +1
кстати -- html взлетел именно потому, что изобретатели следовали одному из юниксовых девизов -- емнип определяй форматы данных, а не апи

да, щас поверх него лепят аппликухи, но прям так и хочется сказать -- верните мне html3! мне нафиг не сдались ваши аппликухи!!!
Re: Будущее программирования - обсудим?
От: m e  
Дата: 08.02.12 05:07
Оценка:
теперь часть Б -- с чем я согласен

это язык для создания запросов к исходному коду и для трансформации исходного кода

что касается нетекстового и нефайлового хранения -- идея 50% на 50%; хотя мне честно говоря не хватает текстового представления языка, нетекстовое потребует затрат по адаптации к нему vcs
Re[2]: Будущее программирования - обсудим?
От: dimgel Россия https://github.com/dimgel
Дата: 08.02.12 05:23
Оценка: +1
Здравствуйте, licedey, Вы писали:

L>Лично я За — изменения самого образа программирования в сторону визуальности. Автор прав в том, что потеря продуктивности из-за кода в тексте, остается за пределами радаров программиста.


Попыток уйти от этого было дохрена и больше. И обсуждений причин гиблости затеи здесь тоже было дохрена и больше. Вот из последнего, где я участвовал.
Автор: dimgel
Дата: 21.04.11
Re: Будущее программирования - обсудим?
От: alexeiz  
Дата: 08.02.12 05:57
Оценка: 10 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>http://ajc.su/koding/budushhee-programmirovaniya/

LVV>

LVV>[Автор оригинального текста — Paul Chiusano, программист, работает в Capital IQ, пишет преимущественно на Scala. Один из разработчиков библиотеки scalaz — прим. пер.]


Для тех, кто, как я, не любит читать (кривые) переводы, вот ссылка на оригинал: http://pchiusano.blogspot.com/2011/12/future-of-programming.html
Re[2]: Будущее программирования - обсудим?
От: LaptevVV Россия  
Дата: 08.02.12 06:23
Оценка: :))
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, LaptevVV, Вы писали:

IT>

IT>Первым существенным изменением будет уход от представления программ в виде текста, разделенного на файлы.

IT>Первый посыл и сразу весьма сомнительный. Сомнительный практически до нереального. Короче, фантазёрство. Советские фантасты так представляли планету через 50 лет (как раз наше время). Везьде коммунизм, в небе кругом летательные аппараты, космические карабли бороздят просторы, а мониторы у компьютеров всё такие же зелёные и информация хранится в сейфе предварительно сброшенная на перфоленту. А на деле получилось интернет, карманные телефоны со встроенными видео камерами, навигаторами и музыкальными центрами, трёхмерное телевидение и терабайты семейных картинок и видео. Правда вот с коммунизмом и космосом как-то не всё получилось.
1. А вы читали вот эту книгу: http://www.ozon.ru/context/detail/id/2896278/
Автор(ы): К. Чарнецки, У. Айзенекер
Издательство: Питер
Цена: 868р.

Порождающее программирование (Generative Programming, GP) открывает перед разработчиками приложений глобальные перспективы. Оно реализует идею перехода от "одноразовых" программных систем к полуавтоматическому производству самых разнообразных

Там есть очень интересная глава про исследовательские работы в Микрософте.
2. Отец БлэкБокса Клеменс Шиперски работает в Microsoft Research: http://research.microsoft.com/en-us/um/people/cszypers/
А представление модулей в БлэкБоксе — не текстовое. Это было еще в 95-м году.
3. Программа — это мультиграф, вершинами которого являются модули.
В системе этот мультиграф может хранится в каком угодно виде.
И только для человека его нужно представить в текстовом виде. Но это не значит, что в текстовом же виде программу надо и обрабатывать.
И даже вводить можно не в текстовом виде.
Мы у себя делаем семантический редактор, который с текстами не работает.
Первая часть компилятора физически отсутствует — фактически требуют анализа только выражения.
Но на экране — текст, который читает человек.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Будущее программирования - обсудим?
От: LaptevVV Россия  
Дата: 08.02.12 06:26
Оценка:
Здравствуйте, licedey, Вы писали:

L>Изменения в программировании происходят,когда назревает необходимость. Так было с С++ и Java. На данный момент, контроль над мейнстримными языками осуществляют те же компании, что и создают веяния в мире софта и железа. Так получается замкнутный круг — девайс->технология<->язык.

Вот у нас (лично у нас в Астрахани) и назрела необходимость.
L>Лично я За — изменения самого образа программирования в сторону визуальности. Автор прав в том, что потеря продуктивности из-за кода в тексте, остается за пределами радаров программиста.
Нет. Мы — программисты. И должны сами сделать такой инструмент, который НАМ удобен.
Как в свое время сделали юникс — систему, которая удобна именно программистам.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Будущее программирования - обсудим?
От: dimgel Россия https://github.com/dimgel
Дата: 08.02.12 06:29
Оценка: +4
Здравствуйте, LaptevVV, Вы писали:

LVV>3. Программа — это мультиграф, вершинами которого являются модули.

LVV>В системе этот мультиграф может хранится в каком угодно виде.
LVV>И только для человека его нужно представить в текстовом виде. Но это не значит, что в текстовом же виде программу надо и обрабатывать.

Ну как бы что у Влада интеграция немерла для VS, что у Одерски интеграция скалы для Eclipse тоже всё перекомилирует на каждый чих программиста. Причём как минимум у одного из них — не полностью, а только необходимое поддерево. Небось, как раз и держит в памяти AST — тот самый нетекстовый вид. А вот фраза "для человека его нужно представить в текстовом виде" содержит ошибочку: надо не только "представить" (r/o), но и обеспечить возможность редактирования человеком в текстовом виде (r/w).
Re[3]: Будущее программирования - обсудим?
От: m e  
Дата: 08.02.12 06:32
Оценка:
LVV>Мы у себя делаем семантический редактор, который с текстами не работает.
LVV>Первая часть компилятора физически отсутствует — фактически требуют анализа только выражения.
LVV>Но на экране — текст, который читает человек.

читает, но не редактирует? а редактирует уже дерево/граф?

а парсить текстовые файлы ваша система умеет? или для переноса в нее кода требуется забивать его руками?

если так уж прям хочется окунуться в такую систему, рекомендую JetBrains MPS

она уже сделана
Re[3]: Будущее программирования - обсудим?
От: m e  
Дата: 08.02.12 06:34
Оценка:
LVV> которая удобна именно программистам.

а вот еще че забыл спросить -- грамматика для перевода дерева/графа в текстовое представление проверяется на однозначность? т.е. может возникнуть такая ситуация, что два *разных* графа выливаются в один и тот же текст?
Re[4]: Будущее программирования - обсудим?
От: LaptevVV Россия  
Дата: 08.02.12 06:36
Оценка:
Здравствуйте, dimgel, Вы писали:

D>Здравствуйте, LaptevVV, Вы писали:


LVV>>3. Программа — это мультиграф, вершинами которого являются модули.

LVV>>В системе этот мультиграф может хранится в каком угодно виде.
LVV>>И только для человека его нужно представить в текстовом виде. Но это не значит, что в текстовом же виде программу надо и обрабатывать.

D>Ну как бы что у Влада интеграция немерла для VS, что у Одерски интеграция скалы для Eclipse тоже всё перекомилирует на каждый чих программиста. Причём как минимум у одного из них — не полностью, а только необходимое поддерево. Небось, как раз и держит в памяти AST — тот самый нетекстовый вид. А вот фраза "для человека его нужно представить в текстовом виде" содержит ошибочку: надо не только "представить" (r/o), но и обеспечить возможность редактирования человеком в текстовом виде (r/w).

Редактировать надо не весь текст. Например, ключевые слова нафиг не надо редактировать.
Фактически создание модуля состоит из операций вставки-удаления конструкций + текстовое редактирование отдельных лексем — идентификаторов, констант и т.п.
Плюс операции рефакторинга вроде — преобразовать выделенную последовательность операторов в функцию. И наоборот — "раздеть" функцию.
Операции рефакторинга требуют исследования. Это вам не вставить — удалить символ.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Будущее программирования - обсудим?
От: LaptevVV Россия  
Дата: 08.02.12 06:40
Оценка:
Здравствуйте, m e, Вы писали:

LVV>>Мы у себя делаем семантический редактор, который с текстами не работает.

LVV>>Первая часть компилятора физически отсутствует — фактически требуют анализа только выражения.
LVV>>Но на экране — текст, который читает человек.
ME>читает, но не редактирует? а редактирует уже дерево/граф?
Редактирует. Но не весь. Ключевые слова нафиг редактировать.
Имена, константы, выражения — это требует редактирования ручного. А сама структура конструкции оператора редактирования не требует.
Он добавляется в модель одной клавишей. Одной же и удаляется.
ME>а парсить текстовые файлы ваша система умеет? или для переноса в нее кода требуется забивать его руками?
ME>если так уж прям хочется окунуться в такую систему, рекомендую JetBrains MPS
ME>она уже сделана
В смысле IntelliJ ?
Импорт — это естественно будет. Но задача не первоочередная.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Будущее программирования - обсудим?
От: dimgel Россия https://github.com/dimgel
Дата: 08.02.12 06:45
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>Фактически создание модуля состоит из операций вставки-удаления конструкций + текстовое редактирование отдельных лексем — идентификаторов, констант и т.п.


Для меня создание модуля в доброй половине случаев начинается с копипаста другого.
Re[5]: Будущее программирования - обсудим?
От: dimgel Россия https://github.com/dimgel
Дата: 08.02.12 06:48
Оценка: :)
Здравствуйте, LaptevVV, Вы писали:

LVV>А сама структура конструкции оператора редактирования не требует.

LVV>Он добавляется в модель одной клавишей.

Дык это и щас есть. Code snippets называется, что ли... Один хрен не пользуюсь — лениво запоминать горячую клавишу и настраивать удобные мне шаблоны с удобным мне форматированием.

LVV>Одной же и удаляется.


Гы. Я так понимаю, не дай бог нажать delete под словом "class".
Re: Будущее программирования - обсудим?
От: worobоw  
Дата: 08.02.12 06:52
Оценка: :))
Здравствуйте, LaptevVV, Вы писали:

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

Но для начала надо понять что плохо.

А плохо то что так и не создан язык, подобный математическому языку. Языку без ифов, языку без двоичной логики. Ну если хотите, для затравки/обьяснения — языку у которого иф как бы срабатывает на 0.5 То есть если уловие уже близко к истине он уже начинает выполняться.

Кстати кто будет участвовать в разработке?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.