По поводу будущего программирования

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

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


Отпишусь ещё раз по существу.

Я не верю в будущее без настоящего. То, что будет завтра, вовсю проявляет себя, так или иначе, уже сейчас. То, что будет через 10-20 лет, уже маячит где-то на горизонте, вызывает определённый интерес у энтузиастов и уже удивляет нас своими пусть пока наивными, но вполне осязаемыми возможностями.

Никаких предпосылок для появления визуального программирования на сегодняшний день не наблюдается вообще. Всё как раз совсем наоборот. От визуальных редакторов сегодня нередко отказываются. Взять тот же ASP.NET MVC, на мой взгляд, лучшая на сегодня среда для разработки веб приложений. Визуальный редактор в ней отсутствует совсем, хотя до этого на протяжении 10 лет ASP.NET навязчиво предлагал писать html не руками, а размазывать его по экрану мышкой.

Так что же с будущим? Неужели его нет? Есть. И мы можем наблюдать его проявления уже сейчас.

В первую очередь это DSL. В качестве примера возьмём Linq. Типичный встроенный в C# специализированный язык. В умелых руках в разы повышает производительность разработки приложений, работающих с БД. Эта вещь уже в мэйнстриме и очень неплохо себя зарекомендовала. Следующий пример тот же ASP.NET MVC со своим Razor. Результат при смешивании C# и html обычно выглядит крайне печально, а здесь всё получается очень аккуратно и читабельно. Не думал что такое вообще возможно. А если учесть, что связующим языком в данном случае является C#, а в нём есть Linq, то вот вам и привет из будущего — три языка в одном коде, удачно дополняющих друг друга.

Пока в этом направлении есть только одна проблема – относительная сложность разработки своих собственных DSL, т.к. сегодня недостаточно просто придумать язык и написать к нему компилятор. Нужна ещё поддержка средств разработки, таких как Visual Studio, Idea и т.п.

Вторым направлением является, конечно же, функциональное программирование. Здесь автор статьи прав. Рано или поздно оно будет в мэйнстриме. О нём много говорят, им интересуются, элементы ФП проникают в мэйнстрим языки и довольно неплохо там приживаются. О причинах этого я уже писал здесь. Всё теоретическое в программировании уже придумано лет 20-ть назад, если не больше. Теперь дело лишь за переосмыслением всего этого массами и реализацией в мэйнстриме.

Третья вещь – это метапрограммирование. Мы уже сейчас вовсю его используем, хотя можем этого и не замечать. В студии море скрытых генераторов кода. От визардов, до редакторов всяческих схем. Есть и более доступные вещи, вроде T4. Но мы пока не научились этим толком пользоваться. В результате одни пишут целые фреймворки для поддержки, например, баиндинга в WPF, тормознутые по своей сути, а другие берут T4 и за пол дня на коленке делают шаблон, который генерирует для их задачи всё, что может понадобиться, получая при этом гораздо более гибкий и производительный код.

Вообще возможности метапрограммирования пока плохо изучены. То, что мы имеем сейчас – это генерация кода либо до, либо после компиляции. А что если нам дадут в руки расширяемый компилятор? Microsoft что-то ковыряет в этом направлении, но похоже уже умудрилась сбиться с правильного пути. Но есть и другие альтернативы. И их можно попробовать и оценить уже сейчас.

Они уже есть и значит у них есть будущее. А то, о чём говорит автор статьи существует лишь в его собственном воображении.
IT
IT Будущее программирования - обсудим?
08.02.2012 04:41
Здравствуйте, IT, Вы писали:

IT>Они уже есть и значит у них есть будущее. А то, о чём говорит автор статьи существует лишь в его собственном воображении.


Кстати, забыл добавить сакраментальное "Казалось бы, причём тут Немерле?".
velkin
velkin Будущее программирования - обсудим?
08.02.2012 07:58
Здравствуйте, IT, Вы писали:

IT>А что если нам дадут в руки расширяемый компилятор?


Тогда вместо решения насущных задач программисты начнут расширять компилятор.
IT
IT
08.02.2012 08:35
Здравствуйте, velkin, Вы писали:

V>Тогда вместо решения насущных задач программисты начнут расширять компилятор.


Это стандартное заблуждение. Программисты и сейчас занимаются всякой фигнёй только дай волю. Строительство завода для производства гвоздя (одного!) является обычным развлечением большинства 'зи архитектов'.
m e
m e
09.02.2012 05:21
IT>Это стандартное заблуждение. Программисты и сейчас занимаются всякой фигнёй только дай волю. Строительство завода для производства гвоздя (одного!) является обычным развлечением большинства 'зи архитектов'.

в связи с этим надо помочь им это делать намного быстрее -- это сэкономит время, теряемое впустую, и значит принесет прибыль работодателю
GlebZ
GlebZ Будущее программирования - обсудим?
09.02.2012 08:13
Здравствуйте, IT, Вы писали:

IT>Отпишусь ещё раз по существу.

Фи, мужчина, вы какой-то приземленный. Нешогласная я!(с)ни я ни разу.

IT>Я не верю в будущее без настоящего. То, что будет завтра, вовсю проявляет себя, так или иначе, уже сейчас. То, что будет через 10-20 лет, уже маячит где-то на горизонте, вызывает определённый интерес у энтузиастов и уже удивляет нас своими пусть пока наивными, но вполне осязаемыми возможностями.


IT>Никаких предпосылок для появления визуального программирования на сегодняшний день не наблюдается вообще.

Ишь ты. Ты знаешь какие бабки крутятся в ERP, CRM???? А знаешь сколько сайтов сделано с помощью CMS??? Пекут как пирожки без всякого MVC. Сидят, рисуют и думают о чем то теплом. Например, о бабах.

IT>ASP.NET навязчиво предлагал писать html не руками, а размазывать его по экрану мышкой.

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

IT>В первую очередь это DSL. В качестве примера возьмём Linq.

Пример интересный. Однако следует напомнить о сложности интеграции. Нужно быть мазохистом в самой извращенной форме, чтобы добровольно реализовывать визитеров. Во вторых это язык трансформации данных. И не более того. А хотелось бы чтобы огогого и эгегей, что здесь и незаметно.

IT>Вторым направлением является, конечно же, функциональное программирование.

Рок&ролл — мёртв. ФП — мёртв. Мы — зловещие мертвецы. 30 лет назад, это тоже было перспективным направлением. Если на основе различных ФП мозгляки придумывали различные непотребные вещи, которые потом ввели в мейнстрим, это не значит что сам ФП станет мейнстримом. Некоторые средства — да. Само ФП — нет. И это следует считать доказанным, опытным путем, фактом.

IT>Третья вещь – это метапрограммирование.

Метапрограммирование вещь сама в себе. Метапрограммирование — может дать декларативность. Но в то же время, может и не дать. И тогда она чрезвычайно опасная штука, вводящая зависимости какие в ООП не снились, и сложность на уровне — перед тем как подойти к клавиатуре, давайте выучим Войну и Мир наизусть. Суперкомпиляция, IMHO, выглядит более перспективным. Однако его развитие с 60-ых было нулевым. В общем полное ХЗ в моем ИМХО.
dimgel
dimgel
09.02.2012 11:48
Здравствуйте, GlebZ, Вы писали:

GZ>Через 10-20 лет я вообще не хочу видеть html. Это язык для несложных презентаций времен телефонных модемов.


Через 10-20 лет я вообще не хочу видеть txt. Это язык для несложных документов времен до телефонных модемов.
Сложные веб-приложения — обсуждаемо (но не потому что html, а потому что js), а простой rich-formatted text по-любому нужен и будет нужен. Из мне известных, html — самый простой.
IT
IT
09.02.2012 04:11
Здравствуйте, GlebZ, Вы писали:

IT>>Никаких предпосылок для появления визуального программирования на сегодняшний день не наблюдается вообще.

GZ>Ишь ты. Ты знаешь какие бабки крутятся в ERP, CRM???? А знаешь сколько сайтов сделано с помощью CMS??? Пекут как пирожки без всякого MVC. Сидят, рисуют и думают о чем то теплом. Например, о бабах.

Мы тут говорим о программировании, а не о рисовании. Разве нет?

IT>>ASP.NET навязчиво предлагал писать html не руками, а размазывать его по экрану мышкой.

GZ>Через 10-20 лет я вообще не хочу видеть html.

А придётся.

IT>>В первую очередь это DSL. В качестве примера возьмём Linq.

GZ>Пример интересный. Однако следует напомнить о сложности интеграции. Нужно быть мазохистом в самой извращенной форме, чтобы добровольно реализовывать визитеров.

Ты о чём?

IT>>Вторым направлением является, конечно же, функциональное программирование.

GZ>Рок&ролл — мёртв. ФП — мёртв. Мы — зловещие мертвецы. 30 лет назад, это тоже было перспективным направлением. Если на основе различных ФП мозгляки придумывали различные непотребные вещи, которые потом ввели в мейнстрим, это не значит что сам ФП станет мейнстримом. Некоторые средства — да. Само ФП — нет. И это следует считать доказанным, опытным путем, фактом.

Можно подробнее про опыты?

IT>>Третья вещь – это метапрограммирование.

GZ>Метапрограммирование вещь сама в себе. Метапрограммирование — может дать декларативность. Но в то же время, может и не дать. И тогда она чрезвычайно опасная штука, вводящая зависимости какие в ООП не снились, и сложность на уровне — перед тем как подойти к клавиатуре, давайте выучим Войну и Мир наизусть.

Я выше приводил пример про баиндинг. Написать шаблон на T4, который решает проблемы, которые решают некоторые навороченные фреймворки, у меня заняло пол дня.

Ну а хрен себе при желании отстрелить можно чем угодно. Не обязательно для этого использовать сложный, изощрённый механизм. Можно просто засунуть его в электрическую мясорубку. Нажимаем кнопку 'Вкл' до характерного звука 'счёлк' и вот тебе к столу фарш их хрена.
GlebZ
GlebZ
12.02.2012 09:16
Здравствуйте, IT, Вы писали:



IT>Мы тут говорим о программировании, а не о рисовании. Разве нет?

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

IT>>>ASP.NET навязчиво предлагал писать html не руками, а размазывать его по экрану мышкой.

GZ>>Через 10-20 лет я вообще не хочу видеть html.
IT>А придётся.
Думаешь он вечен как бэйсик?

IT>>>В первую очередь это DSL. В качестве примера возьмём Linq.

GZ>>Пример интересный. Однако следует напомнить о сложности интеграции. Нужно быть мазохистом в самой извращенной форме, чтобы добровольно реализовывать визитеров.

IT>Ты о чём?

О провайдерах LINQ. Делать их сложно. Даже на немерле

IT>>>Вторым направлением является, конечно же, функциональное программирование.

GZ>>Рок&ролл — мёртв. ФП — мёртв. Мы — зловещие мертвецы. 30 лет назад, это тоже было перспективным направлением. Если на основе различных ФП мозгляки придумывали различные непотребные вещи, которые потом ввели в мейнстрим, это не значит что сам ФП станет мейнстримом. Некоторые средства — да. Само ФП — нет. И это следует считать доказанным, опытным путем, фактом.
IT>Можно подробнее про опыты?
В каком году появился лисп? Практически полностью фп оформилось в 70-ых.

IT>>>Третья вещь – это метапрограммирование.

GZ>>Метапрограммирование вещь сама в себе. Метапрограммирование — может дать декларативность. Но в то же время, может и не дать. И тогда она чрезвычайно опасная штука, вводящая зависимости какие в ООП не снились, и сложность на уровне — перед тем как подойти к клавиатуре, давайте выучим Войну и Мир наизусть.

IT>Я выше приводил пример про баиндинг. Написать шаблон на T4, который решает проблемы, которые решают некоторые навороченные фреймворки, у меня заняло пол дня.

Т4 — система метапрограммирования? Ну можно и так сказать. С некоторым Ы. Только опять вопрос, сколько людей, хотя бы думают, что знают С#, а сколько Т4. Новым инструментом мы ввели излишнюю сложность. Но вопрос не об этом. Это низменное решение. Высокое решение состоит в том, чтобы человек ни разу не думал как у него проходит биндинг. Ему нужно знать что данные связаны по некоторым, управляемым законам, которые он может свободно менять. Желательно с рисованием, чтобы не сделать ошибку в тексте. И с проверкой семантики.

IT>Ну а хрен себе при желании отстрелить можно чем угодно. Не обязательно для этого использовать сложный, изощрённый механизм. Можно просто засунуть его в электрическую мясорубку. Нажимаем кнопку 'Вкл' до характерного звука 'счёлк' и вот тебе к столу фарш их хрена.

А вот в светлом будущем, все будут плеваться от нашей с тобой недоразвитости. Не нам одним плеваться на goto.