Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Может не новость, но я только сейчас наткнулся 
:(
    Опции темы
kemiisto
Дата 9.1.2013, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 2
Всего: 160



Цитата(baldina @  9.1.2013,  12:30 Найти цитируемый пост)
идея некоторого промежуточного представления кода и язык вещи сильно разные. сравните например Java, C#, F#, Scala.

Нет, нет. Мы сразу абсолютно однозначно (и я это подчёркивал) обсуждаем алголопожобные языки. То есть императивные. Поэтому не надо нам ни (никому ненужной smile ) функциАнальщины, ни монструозных гибридов. Вот и сравни Java и какой-нибудь другой императивный язык под JVM. Разница тут будет чисто синтасическая. Синтаксис в данном случае как раз будет вторичен.

Конечно, если включить в рассмотрении какой-нибудь функциАнальный язык, то синтаксис уже вторичен не будет. При таком сравнении уже нужно понимать, что синтаксис будет определять уже сам способ мышления программиста. Поэтому, повторюсь, мы ограничимся императивными языками, когда синтаксис (до какой-то степени) будет вторичен. Благо, мы можем наложить такое ограничение на дискуссию с чистой совестью и почти без последствий, ибо о(б)суждаемые ЯП (C, C++, Pascal, Oberon, Java) императивны.

Цитата(baldina @  9.1.2013,  12:30 Найти цитируемый пост)
идея язык+унифицированная платформа как единого целого интересна, не спорю, хотя (см. выше) на одной платформе может быть несколько языков.

Безусловно. Но мы говорим только за Java. Это один язык. То, что впоследствии (благодаря популярности Java) появилось множество языков под JVM не меняет дело. Изначально JVM писалась чисто и только под Java. И, кстати, многие идеосинкрозии JVM отсюда и растут. Поэтому, кстати smile , при разработке своей JVM с пасьянсом и куртизанками MS так сильно концентрировалась на том, чтобы платформа была максимально независима от (пускай и основного) языка, что отразилось даже в названии CLR.

Но, повторюсь, с JVM была совсем иная история.
 
Цитата(baldina @  9.1.2013,  12:30 Найти цитируемый пост)
заметьте, любой интерпретируемый язык имеет плаформу (часто индивидуальную), однако и такие языки сравнивают. языки, а не платформы.

Опять же, не думаю, что это имеет какое-то отношение к нашему разговору. Интерепретатор он на то и интерпретатор, что там не нужно ни промежуточное представление кода, ни виртуальная машина для его исполнения.

Цитата(baldina @  9.1.2013,  12:30 Найти цитируемый пост)
я полагал речь таки идет о сравнении языков без учета платформы, хотя бы потому, что С/С++ таковой не имеют, а программист, по большому счету, о платформе может и не быть в курсе.

Дык о том и речь, что не имеет. Это же ключевое различие, а Вы его сразу отметаете. И как Вы собираетесь сравнивать Java в отрыве от платформы? Это бессмысленно. Там останется только синтаксис. А он мало того, что вторичен, он банально (почти) одинаков. И сравнивать то особо нечего.

Цитата(baldina @  9.1.2013,  12:30 Найти цитируемый пост)
язык это идеология, подход. с такой точки зрения java и oberon, не говоря уж о pascal, весьма далеки. а java и C++ близки. имхо, конечно, так что с удовольствием выслушаю нечто конструктивное.

Нет, нет, нет и ещё раз нет. С точностью до наоборот. Java существенно ближе к Оберону, чем к С++ с точки зрения идеалогия, чтобы Вы под ней не понимали.

Вот, смотрите. Первой будет идти характеристика общая для Java и Oberon, затем характеристика C++.
  • Промежуточное представление кода и исполняющая его виртуальная машина против компиляции в машинный код на каждой платформе.
  • Раздельная компиляция (separate compilation) против независимой компиляции (independent compilation). Разница существенная, между прочим. Вот тут можете посмотреть, о чём речь. Впрочем, я именно Вам уже это пытался объяснить, как мне кажется.
  • Динамическое связывание против статического связывания.
  • Только процедурное и ОО программирование против всего, что пожелаете. Да, в Java есть процедурное программирование. Из-за того, что класс выполняет функции модуля оно просто скрыто. Каждый раз, когда Вы пишете статическую функции и, не зная куда её деть, создаёте какой-то недокласс - это и есть процедурное программирование на Java. smile 
  • Только полностью автоматическое управление памятью (сборка мусора) против ручного и (всё-таки) полуавтоматического (умные указатели).

Хватит для начала?


--------------------
PM MAIL WWW GTalk Jabber   Вверх
baldina
Дата 9.1.2013, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(kemiisto @  9.1.2013,  16:59 Найти цитируемый пост)
Это же ключевое различие, а Вы его сразу отметаете.

ну собственно все расхождение в этом.

я когда-то пытался (безуспешно) приобрести книгу по C#, где был бы описан в первую очередь язык, а CRL во вторую (или вообще не описан).
я понимаю, почему не нашел. понимаю, насколько сильна связь подобных языков с платформой. понимаю исторические причины вида java (как и C++).
но когда я пишу на языке, неважно каким образом исполняемым, я думаю на этом языке. а встроенные структуры/алгоритмы воспринимаю как прилагаемые библиотеки (что вполне естественно, т.к. часть структур и алгоритмов мы таки пишем сами).

что касается раздельной/независимой компиляции, я все безусловно понимаю. это, пожалуй, действительно серьезный аргумент, и я его пропустил. но опять же, на определенном уровне по большому счету неважно, что писать - import, #include или uses, точнее, что при этом думать.

Добавлено через 2 минуты и 54 секунды
 smile 
Цитата(kemiisto @  9.1.2013,  16:20 Найти цитируемый пост)
инженерная деятельность - деятельность не просто с предсказуемым, а с заранее определённым результатом

далеко не всегда предсказуемым, и уж не настолько определенным. боль-менее точно определены цели, а уж результат....  smile 
PM MAIL   Вверх
mes
Дата 9.1.2013, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(kemiisto @  9.1.2013,  15:59 Найти цитируемый пост)
 И как Вы собираетесь сравнивать Java в отрыве от платформы? Это бессмысленно. 

солидарен, платформы надо сравнивать вне сравнений языков ))
Цитата(kemiisto @  9.1.2013,  15:59 Найти цитируемый пост)
 Там останется только синтаксис.

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

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

при всем этом выразительность одного языка может быть неприемлимой/неудобной как для другой платформы, так и области программированния... потому это тоже должно быть уточнено перед спором.. 



--------------------
PM MAIL WWW   Вверх
Фантом
Дата 9.1.2013, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Цитата(mes @  9.1.2013,  21:39 Найти цитируемый пост)

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

У всякого тьюринг-полного языка (а все обсуждаемые к этой категории относятся) выразительность максимально возможная. Так что критерием это служить не может.
PM   Вверх
mes
Дата 10.1.2013, 00:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Фантом, может и служит )


--------------------
PM MAIL WWW   Вверх
drug007
Дата 17.1.2013, 06:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 3.11.2011

Репутация: нет
Всего: 1



Цитата(Фантом @  9.1.2013,  23:02 Найти цитируемый пост)
У всякого тьюринг-полного языка (а все обсуждаемые к этой категории относятся) выразительность максимально возможная. Так что критерием это служить не может.

Не уверен, но вроде как наличие миксинов в языке никак не влияет на полноту по Тьюрингу (ну если только в compile-time), однако в некоторых ситуациях позволяет элегантно решить задачу. Т.е. позволяет программисту выразить свою мысль просто и доступно, ближе к терминам прикладной задачи, а не языка. Т.к. программы пишутся для людей в первую очередь, это позволяет код сделать читабельным, а значит легким для сопровождения, а значит более эффективным. Ассемблер-то тоже тьюринг полный. Чем больше язык позволяет оперировать ближе к терминам прикладной задачи, тем он эффективнее - вот в этом я уверен на 100%. А тут тьюринг-полноты не достаточно.

Да и функциональщина имеет хорошие перспективы на мой взгляд. Это же замечательно, если компилятор будет знать, что данные функции чистые с функциональной точки зрения - он сможет оптимизировать порядок их вызова, возможно даже где-то закэшировать вызов (ну вот такой умный компилятор попался smile ) - чем не шаг к декларативному программированию? Держать под контролем все аспекты выполнения кода становится все труднее и дороже. На первый план выходит способность кода к сопровождению - в принципе, по этой же причине появились всевозможные убийцы плюсов. А наличие в языке возможностей к совместному невзаимоисключающему смешению различных парадигм - и императивщины, и функциональщины, например - дает возможность программисту использовать именно то, что наиболее оптимально для конкретной задачи. В части межпоточного взаимодействия функциональщина даст фору императивному подходу, имхо.
PM MAIL   Вверх
Фантом
Дата 17.1.2013, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Цитата(drug007 @  17.1.2013,  07:17 Найти цитируемый пост)
Не уверен, но вроде как наличие миксинов в языке никак не влияет на полноту по Тьюрингу (ну если только в compile-time), однако в некоторых ситуациях позволяет элегантно решить задачу. Т.е. позволяет программисту выразить свою мысль просто и доступно, ближе к терминам прикладной задачи, а не языка. Т.к. программы пишутся для людей в первую очередь, это позволяет код сделать читабельным, а значит легким для сопровождения, а значит более эффективным. Ассемблер-то тоже тьюринг полный. Чем больше язык позволяет оперировать ближе к терминам прикладной задачи, тем он эффективнее - вот в этом я уверен на 100%. А тут тьюринг-полноты не достаточно.


Это совершенно правильно. Но это не "выразительность" в терминологии  mes, она определяется совсем не тем, описываются операторные скобки как begin..end или {..}.  smile 
PM   Вверх
mes
Дата 17.1.2013, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Фантом @  17.1.2013,  18:23 Найти цитируемый пост)
Но это не "выразительность" в терминологии  mes, она определяется совсем не тем, описываются операторные скобки как begin..end или {..}.

 smile позвольте уточнить, "выразительность" в терминологии mes, это описание операторных скобок через {...} ?  а то я русский подзабыл..


--------------------
PM MAIL WWW   Вверх
drug007
Дата 18.1.2013, 06:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 3.11.2011

Репутация: нет
Всего: 1



Цитата(Фантом @  17.1.2013,  19:23 Найти цитируемый пост)
Это совершенно правильно. Но это не "выразительность" в терминологии  mes, она определяется совсем не тем, описываются операторные скобки как begin..end или {..}.  

Как я понял, Вы считаете за выразительность способность языка каким-либо образом (не важно, каким - лишь бы был) выразить все возможные варианты - поэтому Вы и опираетесь на тьюринг-полноту. А мне показалось, что mes имел в виду, что выразительность языка это его способность кратко, емко и по существу выразить то, что нужно программисту (например, я именно так представляю выразительность).
Я правильно вас обоих понял?

И чтобы не писать второй пост - у меня сложилось впечатление, что именно из-за выразительности в понимании Фантом хвалят С++ его сторонники, когда говорят, что это мощный язык (и это так). И именно из-за не очень высокой выразительности в понимании Mes (в силу излишней сложности синтаксиса - тут,  я думаю, никто не будет спорить) ругают С++ его противники.
PM MAIL   Вверх
Фантом
Дата 18.1.2013, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Цитата(drug007 @  18.1.2013,  07:36 Найти цитируемый пост)
Как я понял, Вы считаете за выразительность способность языка каким-либо образом (не важно, каким - лишь бы был) выразить все возможные варианты - поэтому Вы и опираетесь на тьюринг-полноту. А мне показалось, что mes имел в виду, что выразительность языка это его способность кратко, емко и по существу выразить то, что нужно программисту (например, я именно так представляю выразительность).
Я правильно вас обоих понял?

С точностью до наоборот. 
PM   Вверх
baldina
Дата 18.1.2013, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(Фантом @  9.1.2013,  23:02 Найти цитируемый пост)
У всякого тьюринг-полного языка (а все обсуждаемые к этой категории относятся) выразительность максимально возможная

кажется все тут выразительность понимают по разному. если выразительность синоним возможности реализовать вычислимую функцию, то и brainfuck выразителен.
однако традиционно под выразительностью ЯП понимают его синтаксические возможности, т.е. удобство для человека.
PM MAIL   Вверх
Фантом
Дата 18.1.2013, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Цитата(baldina @  18.1.2013,  12:35 Найти цитируемый пост)
однако традиционно под выразительностью ЯП понимают его синтаксические возможности, т.е. удобство для человека. 

В том и проблема, что удобство для человека может быть разным. Можно сделать так, чтобы удобно было писать код, а можно так, чтобы его удобно было читать и поддерживать.
PM   Вверх
baldina
Дата 18.1.2013, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



можно пример, когда удобно писать, но неудобно читать и наоборот?
PM MAIL   Вверх
drug007
Дата 18.1.2013, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 3.11.2011

Репутация: нет
Всего: 1



Цитата(Фантом @  18.1.2013,  17:02 Найти цитируемый пост)
В том и проблема, что удобство для человека может быть разным. Можно сделать так, чтобы удобно было писать код, а можно так, чтобы его удобно было читать и поддерживать. 

По-моему это одно и то же. Как можно удобно писать код, который неудобно читать и поддерживать?

 smile  одно предположение - тупо фигачить наугад по клавиатуре десятью пальцами - писать удобно, но сопровождать...  smile 
PM MAIL   Вверх
Фантом
Дата 18.1.2013, 19:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Цитата(baldina @  18.1.2013,  18:47 Найти цитируемый пост)
можно пример, когда удобно писать, но неудобно читать и наоборот? 

Два классических примера: Perl и Ada.
PM   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0923 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.