Заумные языки и мэйнстрим
От: quadrochups ЮАР  
Дата: 17.08.06 08:10
Оценка: 7 (5) +1 -2 :))
Доброе утро, господа!
Наваял вчера небольшое эссе по поводу языков. Интересно услышать ваше мнение.

Последнее время программистский мир довольно сильно трясут т.н. holy wars — священные войны
на тему "Какой язык лучше". Священные — потому что считается, что вроде как оппоненты не имеют
объективных аргументов, а используют лишь собственные убеждения.
Для меня эти войны всё же способны разложиться на объективные составляющие, после чего
спор быстро приходит к развязке.

Фактически, главная причина споров — отсутствие или сознательное зауживание ОБЛАСТИ ПРИМЕНЕНИЯ языков.
Точнее сказать, то, для чего сам программист применяет язык. Скажем, будучи студентом,
для меня не составляло труда написать лабораторку на Прологе или, прости господи, Рефале.
Но перейдя на коммерческие рельсы, я мгновенно обнаружил несостоятельность некоторых языков
для решения "общечеловеческих" задач (мой вариант перевода mainstream). Отсюда простой вопрос
спорящим: какой круг задач и в какой области они решают? Занимаются ли они поддержкой программ?
Сколько человек в их команде? Насколько интенсивно они развивают продукт? Подобные вопросы довольно
быстро отсеивают "теоретиков" и наколенников-одиночек.

Второе — это уведение спора в чисто академические или сильно специфические дебри. Например,
один решает математические задачи и ему Matlab хватает за глаза. Другой, постоянно обрабатывая строки,
пытается показать ущербность всего, что не называется Perl. Глупо опять же. Основная область, где
возникает проблема выбора языка — только mainstream, поэтому и сравнение должно идти в его пределах.

Третье, о чём "забывают" всевозможные маргиналы от программазма — это уровень программирующих.
Он варьируется от ПТУ-шников-самоучек до кибер-теоретиков и математиков-маньяков. Тем не менее,
значительная часть всех их занята ОБЩИМИ задачами. Соответственно, и база для всех них должна быть
(по возможности) общая и достаточно простая — чтобы написанное одним, было легко понимаемо остальными.

Отсюда и получается, что "примитивные" языки вроде Си или Паскаля являются как раз тем "ядром",
"усреднённым инструментом", которое способно объединить (и объединяло!) тысячи "разнокалиберных" разработчиков.
Я не спорю, у этих языков предостаточно проблем,
но решить их можно гораздо проще, чем выдумывать новые парадигмы/виртуальные машины/языки.
Самое главное, что они дают — это простота и понятность. Это важно как для других членов твоей команды,
так и для тех, кто будет программу развивать, скажем, года через два. Безусловно, эти же задачи можно
решить и на функциональных языках, и на объектных (и МОЖЕТ даже в 10 раз быстрее), но мы были и остаёмся
людьми и большинство из нас мыслит ИМПЕРАТИВНО: подготовил, обработал, выдал результат. Неважно, каким
дзэном программинга владеешь ты — важно, каким владеет БОЛЬШИНСТВО. Наверное, именно "индивидуализм"
и чужеродность природному человеческому мышлению оттолкнули от масс таких "зубров" как Смоллток,
Лисп, Хаскель, Пролог, Перл... Все они хороши ПО-СВОЕМУ, но для массовых задач, решаемых массовыми
программистами, каждое "хорошо" натыкалось на широкий класс задач, где оборачивалось неприемлемым "плохо".

Подобная "плоская простота" влекёт ещё одну полезную вещь — более простое реиспользование кода.
Нередко, вместо использования устаревших библиотек, берут лишь их часть и внедряют в новые библиотеки.
Будь это ветвистая ОО библиотека или функциональный кошмар, фокус так просто не прошёл бы.
Кроме того, "плоскость" позволяет "Сям" более просто и широко интегрироваться с другими системами.

Я ещё хочу заметить — не так сложны всякие парадигмы, насколько тщеславны их пользователи. Нет особого труда
написать замысловатый код, решающий всё одной строкой. А вот взять эту программу через годик и быстро изменить
в ней треть кода, когда половина уже была кем-то переписана — вот настоящая работа! И это должен быть способен сделать КАЖДЫЙ,
кто касается программы. Получается, чем проще язык, тем проще жизнь программиста! Что, собственно, и есть
наша цель.
Re: Заумные языки и мэйнстрим
От: SnowMan  
Дата: 17.08.06 09:53
Оценка: +1
Со многим в принципе согласен, но в то же время не совсем понятна мораль. Неужели это призыв всем дружно переходить в своих разработках на Си и Паскаль?.. По опыту могу сказать, что программы на Си гораздо сложнее сопровождать, чем, скажем, на Java или даже на C++ (не всегда, но как правило).

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

P.S. да, я знаю, что нет такого языка "ассемблер", есть совершенно разные "ассемблеры"
Re[2]: Заумные языки и мэйнстрим
От: quadrochups ЮАР  
Дата: 17.08.06 13:39
Оценка:
SM>Неужели это призыв всем дружно переходить в своих разработках на Си и Паскаль?

Я дал скорее теоретический подход к проблеме, нежели решение в виде конкретного языка. Конкретно, я показал, что на поле mainstream'а нет смысла в навороченных языках.
Если ваша команда уже пишет на Delphi или Java, то разумнее продолжать разработку на них, чем прыгать на разные Питоны-Хаскели-Немерлы.
Споры вокруг языков вызваны именно оторванностью от главной и наикрупнейшей области — десктоп задач.


SM> По опыту могу сказать, что программы на Си гораздо сложнее сопровождать, чем, скажем, на Java или даже на C++ (не всегда, но как правило).


Доверяю вашему опыту. Я и говорил, что у Си есть проблемы. Но сам по себе язык должен быть максимально простой. Фактически, все проблемы Сей — это строки и массивы. Их разумная реализация (как в .NET) могла бы сильно помочь языку.


SM>Такой непопулярный сейчас язык, как ассемблер...


Дальше не надо Слишком низкий уровень. Говоря о простоте я не имею ввиду "от объектов к регистрам CPU", а простоту механизмов языка, их лёгкое использование.
Re: Заумные языки и мэйнстрим
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 10.09.06 15:49
Оценка: 6 (3) +1
Здравствуйте, quadrochups, Вы писали:

Нет ни технологий, ни языков, ни платформ, ни операционных систем. Нет ни тебя, ни меня
Есть только течение камней, как сказал Кадзивара Такэо, который, по правде, программистом ни разу не был

Общие задачи, они разные. И всегда меняются. Базы данных конечно остаются — их писали еще наши прадеды, во время революции.
Все остальное меняется. С появлением более мощных компьютеров постоянно вводятся в строй новые задачи.

Происходит разделение труда. Вернее уже произошло. Мейнстрим уже мало что определяет. Кроме него столько ветвей, что просто нереально даже перечислить.

Сейчас наблюдается такая тенденция — языки теряют универсальность. Каждое семейство человеческиз проблем в будущем будет решаться одним из языков.

Это и есть причина споров. Можно проследить как это происходит(ахтунг, много текста)

Конечно, простые языки наиболее распространены. Однако что дает жизнь, то и убивает. Что убивает, то дает жизнь. Такая вот философия. С одной стороны универсальность дает жизнь, с другой стороны универсальность не дает возможности нарасть мощь конструкций и приводит к смерти.

Простота языков вроде С, Паскаля дала жизнь Перлу, Питону, Руби, Джаве и Дотнету. Что я еще упустил ?
Эта же простота похоронила многие языки. Паскаль ушел в кому благодаря своей же простоте. Тоже самое было с многими другими, популярными ранее языками.

Живут в полном смысле этого слова языки которые эволюционируют. С подрос до С++. Перл, Питон, C# так же развились. Джава и так развивается.

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

Такая же ситуация и с C#, Java и тд.

Итого, выходит так, что те свойства, которые дают силу-жизнть, ее же и отнимают. Т.е. язык самоограничивается.
Универсальность приводит к тому, что в некоторой области обязательно появится новый язык (или воскреснет старый).
Re[2]: Заумные языки и мэйнстрим
От: quadrochups ЮАР  
Дата: 13.09.06 10:20
Оценка: -2
Здравствуйте, Plutonia Experiment, Вы писали:

Я тебя понял. Нет никакой ложки — есть только камни и философы, пьющие на этих камнях пиво.
ОК, порассуждаем:


PE>Общие задачи, они разные. И всегда меняются. Базы данных конечно остаются — их писали еще наши прадеды, во время революции.

PE>Все остальное меняется. С появлением более мощных компьютеров постоянно вводятся в строй новые задачи.

Это только с виду. Задачи были всегда — не всегда были возможности их решать. Хуже того — благодаря мелкомягким (и прочим буржуйским) выродкам прогресс затормозился
и старые задачи В КОТОРЫЙ РАЗ решаются "новыми" инструментами — не забывайте только их покупать.
И что самое смешное, даже сейчас все эти инструменты оставляют желать лучшего.


PE>Происходит разделение труда. Вернее уже произошло. Мейнстрим уже мало что определяет. Кроме него столько ветвей, что просто нереально даже перечислить.


Вы так смешно говорите... Это как сказать: англоговорящие люди — их не так много, сейчас столько разных языков, что просто нереально даже перечислить.
Ошибку видите?


PE>Сейчас наблюдается такая тенденция — языки теряют универсальность. Каждое семейство человеческиз проблем в будущем будет решаться одним из языков.


Язык не может терять универсальность — он либо ею обладает от рождения, либо приобретает, коверкая изначальную архитектуру.
А проблемы — они не настолько уникальные, чтобы под каждую изобретать свой язык. Вот есть матлаб — да, это удобно и он себя оправдал. А есть Перл — как ЧИСТО обработчик текста он никому не нужен — и вот появился Перл 5, где уже можно даже писать в стиле ООП.
Я даже не рискуя скажу, что наоборот — будущее за парой основных языков + громадьё библиотек как раз для решения ваших семейств человеческих проблем. Т.е. сегодняшний зоопарк быстро вымрет — нерентабельно.


PE> Конечно, простые языки наиболее распространены. Однако что дает жизнь, то и убивает. Что убивает, то дает жизнь. Такая вот философия. С одной стороны универсальность дает жизнь, с другой стороны универсальность не дает возможности нарасть мощь конструкций и приводит к смерти.


Я тоже это покурил, не зацепило. Ошибка в том, что вы путаете дизайн языка и его неспособность наращивать мощь. Кроме того, я не вижу в чём будет преимущество языка с "мощными конструкциями" по сравнению с языком, уже имеющим стандартный набор необходимых конструкций. Уж не со стороны ли Немерлы дует ветер?


PE>Простота языков вроде С, Паскаля дала жизнь Перлу, Питону, Руби, Джаве и Дотнету. Что я еще упустил ?


Ерунда. Все эти языки рождались независимо, в основном от недостатка библиотек, а не концепции языка Си.


PE>Эта же простота похоронила многие языки. Паскаль ушел в кому благодаря своей же простоте. Тоже самое было с многими другими, популярными ранее языками.


Не простота, а экономическая нецелесообразность. Какой смысл писать на паскале, когда кругом 80% Сишников? (к примеру) И именно простота и мощь позволила "Сям" запросто переплюнуть языки-уродцы из 70-ых.


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


Вы опять путаете, на этот раз ЯЗЫК и СРЕДУ РАЗРАБОТКИ.


PE>Универсальность приводит к тому, что в некоторой области обязательно появится новый язык (или воскреснет старый).


В КАКОЙ области? Какие такие специфические задачи вы решаете, что им так необходимо "что-угодно-только-не-мэйнстрим-язык"?

Языки возникают "от балды" (у энтузазистов) или ради денег (у фирм). Языков — полно, ИХ ДОСТАТОЧНО для решения всех задач. Недостаёт только библиотек, а это уже не к языкам.
Re[3]: Заумные языки и мэйнстрим
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.09.06 06:57
Оценка:
Здравствуйте, quadrochups, Вы писали:

Q>Это только с виду. Задачи были всегда — не всегда были возможности их решать. Хуже того — благодаря мелкомягким (и прочим буржуйским) выродкам прогресс затормозился


Ну это вряд ли. Замедлилось появление новых ОС и компьютеров. Это диалектика, а не буржуи ли мягкотелые. Прогресс не может идти с одной скоростью. Всякая область со временем становится консервативной.


PE>>Происходит разделение труда. Вернее уже произошло. Мейнстрим уже мало что определяет. Кроме него столько ветвей, что просто нереально даже перечислить.


Q>Вы так смешно говорите... Это как сказать: англоговорящие люди — их не так много, сейчас столько разных языков, что просто нереально даже перечислить.

Q>Ошибку видите?

Ошибка в твоей интерпретации моих слов. Компьютерные языки нельзя сравнивать с человеческими.
ПОтому как новых языков человеческих появляется не так и много самый новый — Эсперанто, которому уже 150 лет. А вот остальные продолжают вымирать. Так что ты перегнул.

Q>Язык не может терять универсальность — он либо ею обладает от рождения, либо приобретает, коверкая изначальную архитектуру.


А кто сказал что ктото что то теряет ? Я говорю что универсальность не абсолютная, а только в рамкох конкретной области и смежных областях.

Q>А проблемы — они не настолько уникальные, чтобы под каждую изобретать свой язык. Вот есть матлаб — да, это удобно и он себя оправдал. А есть Перл — как ЧИСТО обработчик текста он никому не нужен — и вот появился Перл 5, где уже можно даже писать в стиле ООП.


Перл-5 это слишком мало. Еще добавь сюда Питон, Руби. Есть еще SQL например — уникальный.
Но уникальность не нужна.

Q>Я даже не рискуя скажу, что наоборот — будущее за парой основных языков + громадьё библиотек как раз для решения ваших семейств человеческих проблем. Т.е. сегодняшний зоопарк быстро вымрет — нерентабельно.



Т.е. ты решил, что новые проблемы перестанут появляться ? Универсальность не дает языку быстро зянять новую нишу — тут и появляется новый язык. И от этого никуда не уйти.

Q>Я тоже это покурил, не зацепило. Ошибка в том, что вы путаете дизайн языка и его неспособность наращивать мощь. Кроме того, я не вижу в чём будет преимущество языка с "мощными конструкциями" по сравнению с языком, уже имеющим стандартный набор необходимых конструкций. Уж не со стороны ли Немерлы дует ветер?


При чем здесь неммерле ? Проблема в людях. Простой универсальный язык легко выучить. Если немного усложнить, то со временем прийдем к С++, который сложно учить. Сложно учить — люди будут придумывать что попроще, т.е. родится новый.

PE>>Простота языков вроде С, Паскаля дала жизнь Перлу, Питону, Руби, Джаве и Дотнету. Что я еще упустил ?

Q>Ерунда. Все эти языки рождались независимо, в основном от недостатка библиотек, а не концепции языка Си.

Недостаток библиотек и есть основная проблема связаная с языками С,С++. На этих языках невозможно реализовать библиотеки, которые могут быть понятны всем.

Q>Не простота, а экономическая нецелесообразность. Какой смысл писать на паскале, когда кругом 80% Сишников? (к примеру) И именно простота и мощь позволила "Сям" запросто переплюнуть языки-уродцы из 70-ых.


Си с плюсами далеко не простой язык. Потому и не смог препятствовать других.
Людям понадобилось одновременно и мощнее -Перл, Питон
И одновременно проще — Ява.

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


Q>Вы опять путаете, на этот раз ЯЗЫК и СРЕДУ РАЗРАБОТКИ.


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

Q>В КАКОЙ области? Какие такие специфические задачи вы решаете, что им так необходимо "что-угодно-только-не-мэйнстрим-язык"?


Какой язык ты называешь мейнтримом ? Уже сейчас на разных уровнях ПО разработка ведется на своем языке.

Ассемблер, — железо
C++, — ОС

вот здесь и начинается разветвление, выходит мейнстрим — это Ассемблер + С,С++

SQL, — БД — вот еще один мейстрим

Но море приложений десктопных, там нет БД.
Используется Паскаль, С++, Ява, Дотнет — где тут менйстрим ?

А есть и клиент-сервеные, там сейчас по большому счету рулят Ява и ДОтнет. — уже третий мейнстрим

А есть и чисто обработка текстов в веб — ПХП, Перл, Питон, Руби — не всем ведь нужны корпоративные сайты.
Вот еще мейнстрим.

Q>Языки возникают "от балды" (у энтузазистов) или ради денег (у фирм). Языков — полно, ИХ ДОСТАТОЧНО для решения всех задач. Недостаёт только библиотек, а это уже не к языкам.


Библиотеки — это к языкамю Объясняю. За все время существования С++ не появилась ни одной массовой библиотеки. Вот такие дела.
Проблема в сложности языка С++.
Re[4]: Заумные языки и мэйнстрим
От: Erop Россия  
Дата: 17.09.06 13:27
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Библиотеки — это к языкамю Объясняю. За все время существования С++ не появилась ни одной массовой библиотеки. Вот такие дела.

PE>Проблема в сложности языка С++.

Не понял!
А MFC, PowerPlant, и т. д. как же?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Заумные языки и мэйнстрим
От: absolute  
Дата: 18.09.06 14:18
Оценка: :)
Здравствуйте, Plutonia Experiment, Вы писали:

PE> ПОтому как новых языков человеческих появляется не так и много

PE> самый новый — Эсперанто, которому уже 150 лет.

Годом появления Эсперанто считается 1887.
Стало Быть, в следующем году будет юбилей лишь 120 лет.

Пару лет назад появились так называемые
"падонкаффский йезыг" и язык "медведа".
Другое дело, что это проекты финансируемые
США и лично Джорджем Соросом с целью уничтожения
Русской культуры методом размывания и
превращения России в колонию.
Re: Заумные языки и мэйнстрим
От: ma_okante http://okante.narod.ru/
Дата: 19.09.06 19:24
Оценка: :)
Здравствуйте, quadrochups, Вы писали:

Q>Доброе утро, господа!


Здравствуйте!

Q>Последнее время программистский мир довольно сильно трясут т.н. holy wars — священные войны

Q>на тему "Какой язык лучше".

* Это всё от того, чтобы имитировать для себя ощущения действия, прогресса, нужности. вместо того, чтобы истинно действовать люди сублимируют совю силу воли в слабость компьютерных сообщений в различных форумах.

Q>Священные — потому что считается, что вроде как оппоненты не имеют

Q>объективных аргументов, а используют лишь собственные убеждения.

Компьютеры стали до того разные, что кажды й из них напоминает человека. Какого рода объективные данные вы желаете? Рост и вес? Это ничего не решит.

Q>Для меня эти войны всё же способны разложиться на объективные составляющие, после чего

Q>спор быстро приходит к развязке.

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

Q>Фактически, главная причина споров — отсутствие или сознательное зауживание ОБЛАСТИ ПРИМЕНЕНИЯ языков.


Почему фактически. Где факты? Ниже были лишь рассуждения...

Q>Подобные вопросы довольно

Q>быстро отсеивают "теоретиков" и наколенников-одиночек.

Конечно отсеивают, ведь такие люди этим и не занимаются. А засем вам их отсеивать. Ведь не обязательно же обсуждается индустриалистичное программирование.

Q>всевозможные маргиналы от программазма


Почему вы так не любите людей, обзываете их недостойными именами и терминами. Может у вас депрессия?

Q>чтобы написанное одним, было легко понимаемо остальными.


Для этого нужен общий уровень культуры и умение внятно излангать свою мысль. Рекомендую читать русских классиков.

Q>Я не спорю, у этих языков предостаточно проблем,

Q>Я ещё хочу заметить — не так сложны всякие парадигмы, насколько тщеславны их пользователи. Нет особого труда
Q>написать замысловатый код, решающий всё одной строкой.

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

Q>А вот взять эту программу через годик и быстро изменить

Q>в ней треть кода, когда половина уже была кем-то переписана — вот настоящая работа! И это должен быть способен сделать КАЖДЫЙ,
Q>кто касается программы. Получается, чем проще язык, тем проще жизнь программиста! Что, собственно, и есть
Q>наша цель.

Непонятно как-то. То вы про качество человека, то про качетсво языка программирования. А вот цель указали правильно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.