Re: Зачем нужен язык программирования
От: _Obelisk_ Россия http://www.ibm.com
Дата: 22.03.04 12:56
Оценка: +1 :)
Здравствуйте, INTP_mihoshi, Вы писали:


INT>В идеале Программа – это не способ управления машиной.


В идеале — проблема более общая и уже затронутая классиками

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

(c) Ф.Тютчев.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[5]: Зачем нужен язык программирования
От: _Obelisk_ Россия http://www.ibm.com
Дата: 23.03.04 06:40
Оценка: 16 (1)
Здравствуйте, Воронков Василий, Вы писали:

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


_O_>>Как раз ошибаетесь. UML-ю недоставало текстового представления, мы (Telelogic) его придумали. Customer-ам нравится.


ВВ>А можно ссылочку? Не нашел на сайте


http://www.telelogic.com/products/tau/tg2.cfm



Душа обязана трудиться! (с) Н.Заболоцкий.
Re: Зачем нужен язык программирования
От: thebeard Россия  
Дата: 22.03.04 13:04
Оценка: 4 (1)
Вспоминается Literate Programming
(http://www-cs-faculty.stanford.edu/~knuth/lp.html) Кнута
Posted via RSDN NNTP Server 1.8 beta
Re: Зачем нужен язык программирования
От: _Obelisk_ Россия http://www.ibm.com
Дата: 22.03.04 14:46
Оценка: 4 (1)
Прежде чем придумывать новый язык программирования подумайте над тем

— как писать парсер для него
— как писать run-time и кодогенератор для него
— как интегрировать программы на этом языке с библиотеками написанными на других языках
— какова будет поддержка компонентной разработки на этом языке
— можно ли импортировать код написанный на других языках в данный язык.
— будет ли язык иметь возможности для параллельного программирования.
— какова сложность создания IDE и библиотек для этого языка.
— насколько язык будет способен уживаться с системами контроля версий (Diff/Merge текстов и т.п)
— кто будет писать стандартные библиотеки



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[5]: Зачем нужен язык программирования
От: _Obelisk_ Россия http://www.ibm.com
Дата: 23.03.04 06:54
Оценка: +1
Здравствуйте, BUran, Вы писали:

_O_>>Не, не как С с С++, а скорее как Java с С++ или С# с ассемблером БЭСМ-6 . А интеграция жизненно необходима потому как у customer-ов будут куча библиотек с сотнями тысяч функций которые они захотят зареюзить.

BU>У тебя только богатые американские клиенты? Или ты пессимист по жизни?

1. Богатые клиенты не у меня, а у компании, на которую мы работаем.

2. Да, я пессемист и иногда (очень редко) реалист . Данные о куче библиотек с сотнями тысяч функций и типов взяты из опыта. Более того, переучить гигантские корпорации на использование нового языка или методологии черезвычайно трудно. Обычно на все попытки приучения к хорошему стилю моделирования/программирования они заявляют, что они делают так как делали и будут так делать впредь.

BU>Одно дело, язык с научной стороны, а другое дело — с коммерческой.


Язык программирования призван все же решать практические задачи бизнеса и производства.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[7]: Зачем нужен язык программирования
От: _Obelisk_ Россия http://www.ibm.com
Дата: 23.03.04 07:05
Оценка: :)
Здравствуйте, Miem, Вы писали:

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


_O_>>>>Как раз ошибаетесь. UML-ю недоставало текстового представления, мы (Telelogic) его придумали. Customer-ам нравится.


M>Когда .NET поддерживать будете?


Тогда, когда .Net станет работать под Linux-ом и Solaris-ом.



Душа обязана трудиться! (с) Н.Заболоцкий.
Зачем нужен язык программирования
От: INTP_mihoshi Россия  
Дата: 22.03.04 12:28
Оценка:
В продолжение тем других топиков.
IMHO.


Основное назначение языка – донести информацию с минимальными искажением и потерями.

Смысл использования языка (назовем это общением) обусловлен субъектами общения, т.е. теми, кто “говорит” и “слушает”. Нет смысла передавать информацию, которую не способен понять говорящий или слушающий. Традиционные языки программирования ограничивают языковые средства до уровня понимания слушателя (компилятора) и говорящего (программиста). И это неплохо работает пока слушатель и говорящий неизменны.

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

Одним из проявлений этого является пресловутый закон Брукса, по которому добавление разработчика в команду замедляет процесс разработки. Это происходит в основном потому, что все то, что “отрезано” компилятором и осталось в документации и головах разработчиков, нужно “загрузить” в голову нового члена команды.

В идеале Программа – это не способ управления машиной. Это формализация знаний программиста о задаче и способах ее решения. Основное назначение современного языка программирования – позволить ему и _провоцировать_ его сделать это с минимальными искажениями и потерями. И язык должен позволять работать с собой на произвольном уровне понимания программиста. Поэтому он должен по крайней мере в основе своей быть независимым от “говорящего» и “слушающего”. Только тогда он сможет адаптироваться под каждого конкретного “пользователя”. Я сейчас пытаюсь изобразить что-то подобное на основе логики предикатов...

Кстати, предлагаю тест на “годность” языка. Дается задача. Берется некоторое кол-во программистов примерно одного уровня. Они пишут ее по очереди каждый один день, причем до “своего” дня он не знает о программе ничего. Параллельно один программист решает ту же задачу. Отношение времени решения вторым и первым способом потраченного в обоих вариантов и будет коэффициентом эффективности языка
Re[2]: Зачем нужен язык программирования
От: INTP_mihoshi Россия  
Дата: 22.03.04 13:30
Оценка:
Здравствуйте, thebeard, Вы писали:

T>Вспоминается Literate Programming

T>(http://www-cs-faculty.stanford.edu/~knuth/lp.html) Кнута

О, спасибо Literate Programming — хорошая идеология, вот только изменение одного словав Literature части может соответствовать перелопачиванию половины Programming. И что-то при этом обязательно забывают перелопатить. И чем больше изменений, тем больше различия между тем, что программа делает и тем, что она делает на самом деле Классика...
Re: Зачем нужен язык программирования
От: King Oleg Украина http://kingoleg.livejournal.com
Дата: 22.03.04 13:59
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:

INT>Кстати, предлагаю тест на “годность” языка. Дается задача. Берется некоторое кол-во программистов примерно одного уровня. Они пишут ее по очереди каждый один день, причем до “своего” дня он не знает о программе ничего. Параллельно один программист решает ту же задачу. Отношение времени решения вторым и первым способом потраченного в обоих вариантов и будет коэффициентом эффективности языка

Интересная идея. Я бы поучаствовал.
King Oleg
*Читайте DOC'и, они rules*
Re[3]: Зачем нужен язык программирования
От: thebeard Россия  
Дата: 22.03.04 14:02
Оценка:
Нашёлся аж целый сайт об этом: http://www.literateprogramming.com/

Всё-таки LP ужасно нетехнологично. Требует практически религиозного
отношения к исходному коду. Поэтому, думаю, и не прижилось в широких
масштабах.
Posted via RSDN NNTP Server 1.8 beta
Re[2]: Зачем нужен язык программирования
От: INTP_mihoshi Россия  
Дата: 22.03.04 15:42
Оценка:
Здравствуйте, _Obelisk_, Вы писали:

_O_>Прежде чем придумывать новый язык программирования подумайте над тем


О, спасибо за списочек... Щас подумаем...

_O_>- как писать парсер для него

Текстовый язык хорошим быть не может Стандарт надо описывать без оглядки на текстовое представление.
Вообще у меня получается что-то похожее на MDA, но с исчислением предикатов вместо UML как базовой знаковой системой. И с понятиями вместо имен.

_O_>- как писать run-time и кодогенератор для него

Ну, сначала паразитировать на готовых рантаймах, а там-как получиться...

_O_>- как интегрировать программы на этом языке с библиотеками написанными на других языках

Примерно так же, как ассемблерные вставки с C или C с C++ или C++ с макросаим или шаблонами
Т.е. не навязывать свои правила, а приходить на помощь, когда исчерпаны средства основного языка программиста.

_O_>- можно ли импортировать код написанный на других языках в данный язык.

Нужно. И импортировать, и агрегировать. И вообще, каждый язык представляет какой-то образ мыслей и способы их представления.

_O_>- какова будет поддержка компонентной разработки на этом языке

Как основной модели разработки Т.е. любой кусок кода будет всеми силами пытать стать компонентом

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

А как без этого?

_O_>- какова сложность создания IDE и библиотек для этого языка.

Порядка const*(сложность формулировки того, что они должны делать)

_O_>- насколько язык будет способен уживаться с системами контроля версий (Diff/Merge текстов и т.п)

Я как раз хочу избавиться от артефактов текстового представления... Соответственно, "родное" представление не должно быть текстовым...

Кстати, как с этим обстоит дело в MDA?

_O_>- кто будет писать стандартные библиотеки

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


Раз какой-то интерес есть попытаюсь завтра более внятно описать что же у меня собственно получается...
Re[3]: Зачем нужен язык программирования
От: _Obelisk_ Россия http://www.ibm.com
Дата: 22.03.04 16:10
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:

INT>Текстовый язык хорошим быть не может Стандарт надо описывать без оглядки на текстовое представление.

INT>Вообще у меня получается что-то похожее на MDA, но с исчислением предикатов вместо UML как базовой знаковой системой. И с понятиями вместо имен.

Как раз ошибаетесь. UML-ю недоставало текстового представления, мы (Telelogic) его придумали. Customer-ам нравится.
Скажем гораздо проще написать
Integer Sum (Integer A, Integer B) { return A+B; }
чем рисовать диаграмму.
Текстовое представление тут же парсится во внутреннее представление, являющееся обычной UML 2.0 моделью.


_O_>>- как писать run-time и кодогенератор для него

INT>Ну, сначала паразитировать на готовых рантаймах, а там-как получиться...

Для того что вы хотите это не совсем хороший путь. Могут быть проблемы с трансформациями. Скажем станет их сложность порядка O(N^2) где N — число конструкций в программе на вашем языке.

_O_>>- как интегрировать программы на этом языке с библиотеками написанными на других языках

INT>Примерно так же, как ассемблерные вставки с C или C с C++ или C++ с макросаим или шаблонами
INT>Т.е. не навязывать свои правила, а приходить на помощь, когда исчерпаны средства основного языка программиста.

Не, не как С с С++, а скорее как Java с С++ или С# с ассемблером БЭСМ-6 . А интеграция жизненно необходима потому как у customer-ов будут куча библиотек с сотнями тысяч функций которые они захотят зареюзить.

_O_>>- можно ли импортировать код написанный на других языках в данный язык.

INT>Нужно. И импортировать, и агрегировать. И вообще, каждый язык представляет какой-то образ мыслей и способы их представления.

Тоже множество проблем. Скажем попытайтесь создать модель одинаково подходящею для С++ и Java.

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

INT>А как без этого?

А как с ними ? Вариантов ведь множество.


_O_>>- насколько язык будет способен уживаться с системами контроля версий (Diff/Merge текстов и т.п)

INT>Я как раз хочу избавиться от артефактов текстового представления... Соответственно, "родное" представление не должно быть текстовым...
INT>Кстати, как с этим обстоит дело в MDA?

Проблематично, пытаемся найти приемлимое решение. В общем случае Diff/Merge деревьев имеет сложность O(N^2).



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[4]: Зачем нужен язык программирования
От: Воронков Василий Россия  
Дата: 22.03.04 19:13
Оценка:
Здравствуйте, _Obelisk_, Вы писали:

_O_>Как раз ошибаетесь. UML-ю недоставало текстового представления, мы (Telelogic) его придумали. Customer-ам нравится.


А можно ссылочку? Не нашел на сайте
... << RSDN@Home 1.1.3 stable >>
Re[4]: Зачем нужен язык программирования
От: BUran Россия http://www.buriy.com/
Дата: 23.03.04 05:41
Оценка:
_O_>Не, не как С с С++, а скорее как Java с С++ или С# с ассемблером БЭСМ-6 . А интеграция жизненно необходима потому как у customer-ов будут куча библиотек с сотнями тысяч функций которые они захотят зареюзить.
У тебя только богатые американские клиенты? Или ты пессимист по жизни?
Одно дело, язык с научной стороны, а другое дело — с коммерческой.
/bur
Re[6]: Зачем нужен язык программирования
От: Miem Россия  
Дата: 23.03.04 06:58
Оценка:
Здравствуйте, _Obelisk_, Вы писали:

_O_>>>Как раз ошибаетесь. UML-ю недоставало текстового представления, мы (Telelogic) его придумали. Customer-ам нравится.


Когда .NET поддерживать будете?
... << RSDN@Home 1.1.3 beta 1 >>
ICQ: 446240
Re[2]: Зачем нужен язык программирования
От: INTP_mihoshi Россия  
Дата: 23.03.04 09:32
Оценка:
Здравствуйте, King Oleg, Вы писали:

INT>>Кстати, предлагаю тест на “годность” языка. Дается задача. Берется некоторое кол-во программистов примерно одного уровня. Они пишут ее по очереди каждый один день, причем до “своего” дня он не знает о программе ничего. Параллельно один программист решает ту же задачу. Отношение времени решения вторым и первым способом потраченного в обоих вариантов и будет коэффициентом эффективности языка

KO>Интересная идея. Я бы поучаствовал.

Это надо еще придумать как организовать Например, как обеспечить честность "играющих".

Можно попробовать "блиц" — одна задача, пять часов, пять програмистов по очереди. Плюс добавление требований функционалу при каждой смене программистов IMHO было бы тренировкой Tean Work покруче стандартных правил ACM
Re[3]: Зачем нужен язык программирования
От: _Jane_ Украина  
Дата: 23.03.04 11:55
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:

INT>Можно попробовать "блиц" — одна задача, пять часов, пять програмистов по очереди. Плюс добавление требований функционалу при каждой смене программистов


при таких условиях каждый будет заново начинать переписывать
Jane
Re[2]: Зачем нужен язык программирования
От: mihailik Украина  
Дата: 23.03.04 17:14
Оценка:
INT>>Кстати, предлагаю тест на “годность” языка. Дается задача. Берется некоторое кол-во программистов примерно одного уровня. Они пишут ее по очереди каждый один день

KO>Интересная идея. Я бы поучаствовал.


Ага. Пишем объявление "Требуется программист" и высылаем это дело как тестовое задание. Дёшево и сердито — социологическое исследование
... << RSDN@Home 1.1.3 stable >>
Re: Зачем нужен язык программирования
От: mihailik Украина  
Дата: 23.03.04 17:14
Оценка:
INT>Основное назначение языка – донести информацию с минимальными искажением и потерями.

Во первых не вообще информацию, а алгоритм.

Во вторых не с минимальными, а с допустимыми. Рекорды не нужны никому.
... << RSDN@Home 1.1.3 stable >>
Re[2]: Зачем нужен язык программирования
От: BUran Россия http://www.buriy.com/
Дата: 24.03.04 04:17
Оценка:
Здравствуйте, mihailik, Вы писали:

INT>>Основное назначение языка – донести информацию с минимальными искажением и потерями.

M>Во первых не вообще информацию, а алгоритм.
А вот нетушки, иногда не только алгоритм, а иногда не столько алгоритм.
/bur
Re[2]: Зачем нужен язык программирования
От: INTP_mihoshi Россия  
Дата: 24.03.04 06:32
Оценка:
Здравствуйте, mihailik, Вы писали:

INT>>Основное назначение языка – донести информацию с минимальными искажением и потерями.

M>Во первых не вообще информацию, а алгоритм.
Программа = Алгоритм + Структура данных (С)Кнут
А еще "Идеология" и "Практическое применение"

M>Во вторых не с минимальными, а с допустимыми. Рекорды не нужны никому.

Рекорды — это если вообще без искажений
Например, формулировка "с как можно меньшими искажениями" искажает мою мысль меньше, чем "с минимальными искажениями", но тоже не передает мысль абсолютно точно
Re[4]: Зачем нужен язык программирования
От: INTP_mihoshi Россия  
Дата: 24.03.04 06:45
Оценка:
Здравствуйте, _Jane_, Вы писали:

INT>>Можно попробовать "блиц" — одна задача, пять часов, пять програмистов по очереди. Плюс добавление требований функционалу при каждой смене программистов


_J_>при таких условиях каждый будет заново начинать переписывать


О! Надо как раз не по времени менять программеров, а по фичам.

Т.е. дается сначала одно задание. Первый программер пишет, сдает. Когда первая фича сделана(пройдены все тесты) — садится следующий и ему сообщается какую фичу он должен добавить (при этом сохранив старые). Разумеется, новые фичи должны опираться на старые.

Параллельно все то же самое, но программист после каждой сданной фичи не меняется.

Кто-нибудь подкинет идею для заданий?
Re[5]: Зачем нужен язык программирования
От: Banch  
Дата: 24.03.04 11:27
Оценка:
INT>О! Надо как раз не по времени менять программеров, а по фичам.
по времени тоже хорошо, потому как в жизни не редкость случаи когда нужно садиться и доделывать за кем то ...
Re[3]: Зачем нужен язык программирования
От: mihailik Украина  
Дата: 25.03.04 16:50
Оценка:
INT>>>Основное назначение языка – донести информацию с минимальными искажением и потерями.
M>>Во первых не вообще информацию, а алгоритм.

INT>Программа = Алгоритм + Структура данных (С)Кнут

INT>А еще "Идеология" и "Практическое применение"

Такое впечатление, что ты пыхнул и на своей волне. К чему эти цитаты?

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

M>>Во вторых не с минимальными, а с допустимыми. Рекорды не нужны никому.

INT>Рекорды — это если вообще без искажений

Ты вообще хорошо понимаешь смысл слова "рекорд"?

INT>Например, формулировка "с как можно меньшими искажениями" искажает мою мысль меньше, чем "с минимальными искажениями", но тоже не передает мысль абсолютно точно


Языки программирования нужны для того, чтобы писать работающие программы. Никто не ставит цели написать идеальную программу, поэтому никому не нужны наименьшие искажения. Просто нужно, чтобы искажения были достаточно маленькими, и всё.
... << RSDN@Home 1.1.3 stable >>
Re[3]: Зачем нужен язык программирования
От: mihailik Украина  
Дата: 25.03.04 16:50
Оценка:
INT>>>Основное назначение языка – донести информацию с минимальными искажением и потерями.
M>>Во первых не вообще информацию, а алгоритм.
BU>А вот нетушки, иногда не только алгоритм, а иногда не столько алгоритм.

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

Пример: HTML. Предназначен для интерактивных и статических страниц, обычно содержит скрипты. Не считается языком программирования и именно потому, что не относится к способу записи алгоритма.

В общем, чем более сильно предназначение для записи алгоритмов, тем более можно называть такой язык языком программирования.
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.