beldmit: (Программизм)
Dmitry Belyavskiy ([personal profile] beldmit) wrote2008-12-09 08:50 pm

О будущем языков программирования

Тут коллега [livejournal.com profile] juchkov рассуждает о технологиях (на самом деле - языках программирования) и их перспективах.

На самом деле, на мой взгляд, подход неоптимальный. Смотреть надо от ниш, а не от языков. Тогда станет понятно, что нужен язык с низким порогом вхождения (сейчас - PHP), нужен шаблонизатор (в записи фигурирует xslt), нужен язык под промышленную разработку (C#, Java). Нужны базы (SQL).

Есть ниша серверного скриптового языка, и не важно, Perl ее будет занимать, Python или Ruby. Есть портабельный асемблер.

Думать надо о немаргинальных нишах за пределами перечисленных. Асемблер непортабельный - маргинальная ниша.

Немаргинальной нишей являются различные графовые задачи. Есть ли там что-то, кроме Erlang?

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

[identity profile] juchkov.livejournal.com 2008-12-09 07:00 pm (UTC)(link)
в энергетике под промышленную мы пользоваль голый C и в некоторых случаях ASM
менее 1% было написано на паскале (о боже! но надежно и быстро).
но это было 7 лет назад. щас они переписали половину кода иначе и часть перевели на реал-тайм машины (что начинал еще я).


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

[identity profile] dph.livejournal.com 2008-12-09 09:14 pm (UTC)(link)
О, кстати, тоже хорошая ниша - язык (вместе со средой, понятное дело) для промышленной разработки реалтаймовых задач. Вещь крайне нужная, прорывов много обещает.

[identity profile] dph.livejournal.com 2008-12-09 09:15 pm (UTC)(link)
Тут под "промышленной" имеется в виду "программирование" как промышленность - т.е. массовое некустарное производство программных продуктов.

[identity profile] juchkov.livejournal.com 2008-12-09 09:22 pm (UTC)(link)
а я подразумевал проект под промышленность :)

[identity profile] dph.livejournal.com 2008-12-09 09:29 pm (UTC)(link)
Кстати, это тоже ниша, сейчас занятая C, но с ростом мощности среднего промышленного проца вполне может появиться и какая-нибудь Java-RealTime (благо, Sun в эту сторону работает, что-то даже выходило). Впрочем, тут лучше был бы какой-нибудь FORT с более человеческим лицом, подозреваю.

[identity profile] beldmit.livejournal.com 2008-12-10 08:45 am (UTC)(link)
А real-time не те же языки, но с более другой операционкой?

[identity profile] dph.livejournal.com 2008-12-10 12:26 pm (UTC)(link)
У меня есть странное ощущение, что специализированный язык (+среда) для RT был бы правильным решением. Впрочем, как-то обосновать не возьмусь, real-time проектов не делал.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2008-12-10 10:01 am (UTC)(link)
Под промышленной разработкой, насколько я понимаю, понимается не "разработка для нужд промышленности", а "разработка по бизнес-процессам, созданным по образу и подобию промышленных".
Именно эти разработки сейчас кормят 90% программистов и именно они ответственны за общее глючное состояние отрасли.
Поэтому у меня есть большие сомнения что эта ниша нужна. Скорее надо думать - чем её заменить.
Потому что эта бизнес-модель используется неправильно. Рабочий на конвейере не занимается обработкой деталей напильником. А программист в "промышленном программировании" именно этим и занимается.

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

[identity profile] beldmit.livejournal.com 2008-12-10 10:18 am (UTC)(link)
Под промышленной разработкой я подразумеваю скорее наличие хороших интегрированных сред, которые, например, автоматизируют рефакторинг.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2008-12-10 10:25 am (UTC)(link)
Какое-то странное определение "промышленной разработки". Никогда такого не встречал.

[identity profile] beldmit.livejournal.com 2008-12-10 01:15 pm (UTC)(link)
Это не определение, это ощущение.
stas: (Default)

[personal profile] stas 2008-12-11 09:17 am (UTC)(link)
Если мы не можем научить человека думать, как программист, то, пожалуй, лучше было бы предложить ему инструмент, который позволяет добиваться результата без программирования

"Думать, как программист" - это стокгольмский синдром. Т.е. необходимость как-то хитро по-особому думать - это не достоинство, а недостаток систем программирования. Не факт, что устранимый, но недостаток.
А инструмент "без программирования" - это, конечно, прекрасно. Но для этого создатель инструмента должен быть ясновидцем - иначе без некоторой доли программирования создать инструмент, покрывающий все потребности пользователя, не удастся. А насчет как это программирование будет выглядеть - мы как раз и возвращаемся к п.1
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2008-12-11 10:22 am (UTC)(link)
Я тут с вами с одной стороны абсолютно согласен, с другой - абсолютно не согласен.

Согласен в том, что большинство современных людей системному мышлению не обучены. Под "думать как программист" понимается именно системное мышление в рамках достаточно ограниченной системы. Но все же более широкой и более аккуратно выделенной, чем умеет большинство кодеров.

Поэтому нужны инструменты, которые позволят решать задачи людям без системного мышления. Во всяком случае на протяжении ближайшего поколения-двух.
И создатель такого инструмента вовсе не должен быть ясновидцем. Достаточно "вселить в компьютер бессметртную душу", т.е. научить его не тупо делать что сказали, а соотносить то что сказали с некой моделью окружающего мира и таким образом понимать, что имели в виду.

С другой стороны наличие системного мышления полезно не только для работы с компьютером. Меня вообще-то этому системному мышлению на географическом факультете научили. В современном сложно устроенном мире системное мышление выгодно практически в любой области деятельности. Поэтому ему надо учить.
Примерно об этом говорил Ершов еще 20 лет назад, выдвинув лозунг "программирование - вторая грамотность". О том же самом недавно говорил Вассерман. К этому же самому, только в применении к менеджменту сводятся наработки [livejournal.com profile] ailev про PraxOs.

О необходимости учить матчасть

[identity profile] cmike.livejournal.com 2008-12-11 09:46 am (UTC)(link)
Потому что эта бизнес-модель используется неправильно. Рабочий на конвейере не занимается обработкой деталей напильником. А программист в "промышленном программировании" именно этим и занимается.

Это ты старого камазовского конвейера не видел. ;) Хотя, конечно, конвейер без механизации называется мануфактуры; но мануфактуры тоже были вполне работоспособны.

Ну я поговорил в своё время с явистами в Люксофте (не из своего подразделения). Эта отрасль весьма насыщены всякими инструментами разработки, далеко не только integrated environment для написания кода. А, например, проектирование и документация тоже.
vitus_wagner: My photo 2005 (Default)

Re: О необходимости учить матчасть

[personal profile] vitus_wagner 2008-12-11 10:23 am (UTC)(link)
Вопрос не в инструментах. Вопрос в том что операция, выполняемая на конвейере - стереотипна. Операция, выполняемая программистом - уникальна. И чем лучше у него инструменты - тем более уникальна, потому что стереотипную часть берут на себя инструменты.

Re: О необходимости учить матчасть

[identity profile] beldmit.livejournal.com 2008-12-11 10:50 am (UTC)(link)
Витус, программистов, у которых уникальна хотя бы каждая 10-я операция - доли процента.

[identity profile] dimrub.livejournal.com 2008-12-09 11:44 pm (UTC)(link)
xslt - это не решение. Слишком высок порог вхождения, не соответствующий уровню задач. Что же касается точного определения ниши скриптового языка, то оно движется, захватывая куски у мэнеджед языков, которые, в свою очередь, отщипывают от надассемблерными (C/C++).

[identity profile] beldmit.livejournal.com 2008-12-10 08:44 am (UTC)(link)
Это пример из исходной записи. Шаблонизаторов на самом деле дофига.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2008-12-10 10:03 am (UTC)(link)
xslt - это уникум с точки зрения неюзабельности.
Для ниши, где требуется относительно низкий порог вхождения взяли парадигму, которой хуже всего умеют обучать (функциональную) и обернули её в наименее читаемый синтаксис из возможных (SG/X)ML-ный. Лучше бы DSSSL продвигали.

[identity profile] dimrub.livejournal.com 2008-12-10 10:08 am (UTC)(link)
Да, все именно так.

Несколько несвязаных замечаний

[identity profile] fdo-eq.livejournal.com 2008-12-10 05:39 am (UTC)(link)
Не забудем про Паскаль. Его ниша - начальное обучение программированию.

Скриптовые языки диктуются операционной платформой. Например, на ibm-овских майнфреймах это REXX.

Есть языки, захвативште свою нишу на определенном классе задач просто в силу исторических причин. И сохраняющиеся там просто потому, что легче подготовить немного специалистов для дальнейшего развития, чем готовить много для переписывания. Пример: ADA в авиастроении Впрочем, возможно этот пример попадает под термин "маргинальная ниша" - я, признаться, не совсем понимаю, что это такое

Re: Несколько несвязаных замечаний

[identity profile] beldmit.livejournal.com 2008-12-10 08:45 am (UTC)(link)
Да, я примерно это и имел в виду под маргинальными нишами.