Re[11]: Сложный язык для сложных срограмм.
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 01.02.07 03:18
Оценка: +1 :))
Здравствуйте, jazzer, Вы писали:

ГВ>>А какое отношение имеет "Вау!" от "всех программистов" к истории метапрограммирования вообще и истории квазицитирования в частности?


J>Абсолютно никакого.

Правильно!

J>Это имеет отношение исключительно к упреку в адрес С++ за то, что он не имеет такой "базовой вещи" как рефлексия. Во времена создания С++ это базовой вещью ("вау" от "всех программистов") не было. Также как и исчисление бесконечно малых не было базовой вещью во времена Зенона.

J>Смотри переписку с еао197, я уже устал по 10-му разу повторять.

Ёлки зелёные! Флейм на километр, ради того, чтобы вычислить апелляцию к коллективу в тезисе "рефлексия — это базовая возможность для языка программирования". Батенька, вы больше так не делайте.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[12]: Сложный язык для сложных срограмм.
От: jazzer Россия Skype: enerjazzer
Дата: 01.02.07 03:37
Оценка: +1 :))
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Ёлки зелёные! Флейм на километр, ради того, чтобы вычислить апелляцию к коллективу в тезисе "рефлексия — это базовая возможность для языка программирования". Батенька, вы больше так не делайте.


ну сам же знаешь, как это бывает

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

P.S. Мне все это напомнило известную хохму с цитатой из полн. соб. соч. В.И.Ленина.
Цитировалось следующее: "Было бы ошибкой думать". И ссылка на том, страницу, все как положено.
При этом в оригинале было: "Было бы ошибкой думать, что .....".

jazzer (Skype: enerjazzer) Ночная тема для RSDN
You will always get what you always got
  If you always do  what you always did
Re: Образование для решения сложных задач
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 01.02.07 05:04
Оценка: 7 (3)
Здравствуйте, remark,

Вот что хорошо чувствуется в его ответах, так это огорчение от повсеместного идиотизма и деградации образования. Вот это — действительно проблема. А всё прочее — чепуха.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[13]: Сложный язык для сложных срограмм.
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 01.02.07 05:55
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>С++ из 85-го. С теми концепцияи которые были хороши тогда.


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

Вот появились в C# 2.0 generics. А в C# 3.0 — LINQ. Из-за этого мы можем утверждать, что C# 3.0 — совсем другой язык? Или вот в C++ до определённой поры не было шаблонов. Почему же с добавлением такой значимой фичи его не переименовали в C++++?

Так вот, когда мы говорим о C++ с его проблемами, нужно помнить, что эти проблемы были заложены ещё в 70-е годы во время становления C. И C++ потому язык даже более старый, чем принято упоминать.
... << RSDN@Home 1.2.0 alpha rev. 672>>
Re[13]: Сложный язык для сложных срограмм.
От: Трурль  
Дата: 01.02.07 06:17
Оценка: +1
Здравствуйте, jazzer, Вы писали:

J>Ну если верить этой странице (http://en.wikipedia.org/wiki/Timeline_of_programming_languages), то Ада и С++ — ровесники: 1983 год.


С той разницей, что для Ады 1983 год — дата принятия стандарта, а для С++ — смены названия.
Re[11]: Сложный язык для сложных срограмм.
От: Трурль  
Дата: 01.02.07 06:41
Оценка: -2
Здравствуйте, jazzer, Вы писали:

J>Вот если бы в С++ не было поддержки ООП — такой упрек был бы корректным. Потому что в то время было четкое понимание, что языки должны поддерживать ООП в том или ином виде.

Это уже преувеличение. Ведь именно благодаря С++ идея "все должно быть объектным и ориентированным" овладела массами.
Re[14]: Сложный язык для сложных срограмм.
От: jazzer Россия Skype: enerjazzer
Дата: 01.02.07 06:48
Оценка:
Здравствуйте, Трурль, Вы писали:

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


J>>Ну если верить этой странице (http://en.wikipedia.org/wiki/Timeline_of_programming_languages), то Ада и С++ — ровесники: 1983 год.


Т>С той разницей, что для Ады 1983 год — дата принятия стандарта, а для С++ — смены названия.


Разница была еще и в том, что Ада не была объектно-ориентированной.

И для С++ это тоже была не просто смена названия:

New features were added including virtual functions, function name and operator overloading, references, constants, user-controlled free-store memory control, improved type checking, and a new single-line comment style with two forward slashes (//).

jazzer (Skype: enerjazzer) Ночная тема для RSDN
You will always get what you always got
  If you always do  what you always did
Re[8]: Сложный язык для сложных срограмм.
От: Tonal- Россия www.promsoft.ru
Дата: 01.02.07 06:57
Оценка: 3 (1)
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Tonal-, Вы писали:
T>>Чем этот код плох?
VD>Тем что его очень сложно понять. А ведь это совершенно примитивный пример. Реальные грамматики куда сложее.
Понять его не сложнее, чем Вариант на Немерле.
VD>Лично я предпочел бы полностью декларативную грамматику.
VD>Вариант на Немерле мне кажется хуже, но тирпим.
VD>Твой же просто не приемлем.
Может будешь аргументировать свои высказывания, иначе получается просто трёт.
Или тебе просто так трепаться по приколу, заваливая собеседников едкими ответами подкреплёнными только гонором и спесью?

Ты даже не заметил ошибок в моём коде, которые были бы невозможны в декларативном синтаксисе.
С моей точки зрения, проблемы здесь в другом: т.к. в С++ отсутствует рантаймовское сопоставление с образцом, эмуляция почти всегда проиграет синтаксису.
Вот несколько действительных аргументов:
  1. Не унифицированно, значит надо изобретать/изучать заново для каждого случая.
  2. Все таки многословность — примерно в 1.5 2 раза больше писать.
  3. Проверка синтаксиса компилятором затруднена или отсутствует.
  4. Невозможна оптимизация компилятором.
С другой стороны, у тебя всегда есть возможность подогнать решение под задачу.
Ну и можно создать двольно общую библиотеку.
Re[12]: Сложный язык для сложных срограмм.
От: Трурль  
Дата: 01.02.07 07:13
Оценка: +2 :))) :)))
Здравствуйте, eao197, Вы писали:

E>Поверьте, если не вестись на пропаганду местных .NET евангелистов и не зачитываться экстремалами от C++ (Александреску того же), то на C++ можно писать очень даже спокойно, качественно и не напрягаясь.


Верю. Имхо, современные проблемы C++ очень хорошо изложил Маршак

Ты старомоден. Вот расплата
За то, что в моде был когда-то.

Re[16]: Сложный язык для сложных срограмм.
От: CreatorCray  
Дата: 01.02.07 07:34
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>>>MFC входит в комплект VC, и по сути является стандартной библиотекой.

CC>>С каких пор VC стало стандартом С++ ?
VD>>>WinForms стандартной библиотекой не является. Он является частной библиотекой МС.
CC>>Равно как и MFC в таком случае.
VD>Значит ты согласен, что вхождение библиотеки в комплект поставки продукта от МС еще не означает, что библиотека становится стандратной?
Да. Тут у нас с тобой ничья

VD>Я тебе просто продемонстрировал твои же двойные стандарты. Ведь ты не считаешь С++ непереносимым в следствии того, что у него нет стандартной библиотеки ГУИ? Ну, так почему же точно такой же факт в CLI ты склонен считать основанием для не пререносимости?

Ну, потому как ошибочно считал что WinForms входит в стандартные библиотеки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[13]: Сложный язык для сложных срограмм.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.02.07 08:22
Оценка: 1 (1) +1
Здравствуйте, VladD2, Вы писали:

E>>не нужно оценивать астролябию с позиции пользователя GPS приемника.


VD>+1 Согасись, что так же глупо использовать астролябию в наше время для навигации по местности. Вот об этом люди и говорт. С++ из 85-го. С теми концепцияи которые были хороши тогда. Но используют его сейчас и с теми концепциями (плюс немного новых) что были тогда. Вот и выходит, что ты предлагаешь не говорить о том, что современные люди используют доисторические инструменты.


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

А развешивание ярлыков вроде "доисторических" инструментов вызывает только неприятие как самого говорящего такие вещи, так и его идей.

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


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[14]: Сложный язык для сложных срограмм.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.02.07 09:18
Оценка: 1 (1) +1 -1
Здравствуйте, konsoletyper, Вы писали:

VD>>С++ из 85-го. С теми концепцияи которые были хороши тогда.


K>Повсюду вижу эту фразу и меня удивляет следующая вещь. C++ не на пустом месте возник. Он же прямой наследник C. Собственно, именно совместимость с C обеспечила ему такую популярность.


Это, имхо, спорное утверждение. Совместимость с C оказала очень серьезное влияние на дешевизну и распространение C++ на различные платформы. Ведь, во-первых, C++ просто напросто унаследовал всю готовую стандартную библиотеку из C (хотя на тот момент она еще и не была стандартом). И, во-вторых, C++ изначально существовал как Cpre, затем как Cfront -- т.е. препроцессор, который из C++ кода генерировал C-шный код, который затем обрабатывался C-ным компилятором и линкером.

Так что разработчики C++ в то время пошли по пути, по которому сейчас идут разработчики Scala и Nemerle -- использование готовых библиотек вместо написания собственных.

Что же касается популярности C и воздействие этой популярности на популярность C++ -- это, имхо, открытый вопрос. Ведь C всегда, и в то время так же, рассматривался как низкоуровневый системный язык. А C++ проектировался как более высокоуровневый, т.е. для другой ниши, как конкурент Simula, но настолько же эффективный, как C.

K>Ведь были и другие ОО-языки, так все выбрали именно C++.


Далеко не все выбрали C++. Был еще и Smalltalk, был Object Pascal для Apple, был Objective-C, был Eiffel.

K>Вот появились в C# 2.0 generics. А в C# 3.0 — LINQ. Из-за этого мы можем утверждать, что C# 3.0 — совсем другой язык? Или вот в C++ до определённой поры не было шаблонов. Почему же с добавлением такой значимой фичи его не переименовали в C++++?


А C++ и так переименовывали, ведь он был изначально C with Classes, затем было промежуточное название C84, и лишь потом, в 1983-м появилось название C++. Причем смена названия была вызвана именно необходимостью показать, что C++ собирается идти гораздо дальше, чем C with Classes. А желание добавить в C++ шаблоны возникло у разработчиков языка еще в 1986 (если не раньше). Так что можно считать, что шаблоны и исключения были изначально запланированы в языке. Поэтому и не нужно было менять название из-за их появления.

Тут, кстати, другое интересно -- механизм шаблонов и исключений был описан для C++ в 1988-1990 годах. Но в Java generic-и добавились только в 2003-м (если я не путаю дату выхода Java 1.5). А появившаяся в 2000-м первая версия C# так же не содержала generic-ов. И это не смотря на то, что шаблоны уже десять лет до этого демонстрировали свою полезность и востребованность! Так что еще совсем недавно C++ предоставлял разработчикам такие языковые возможности, которых не было у его конкурентов. Тем более, что даже в 2000-м и 2001-м у той же Java производительность ни шла ни в какое сравнение с производительностью C++.

K>Так вот, когда мы говорим о C++ с его проблемами, нужно помнить, что эти проблемы были заложены ещё в 70-е годы во время становления C. И C++ потому язык даже более старый, чем принято упоминать.


Если даже не брать историю C, то сам по себе C++ намного старше. Поскольку работы над C with Classes Страуструп начал в 1979-1980, а в 1980-м году первый Cpre был даже использован в реальном проекте (по воспоминаниям Страуструпа).

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


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[17]: Сложный язык для сложных срограмм.
От: Yuri Khomic  
Дата: 01.02.07 10:02
Оценка:
Hello, Cyberax!
You wrote on Wed, 31 Jan 2007 22:39:08 GMT:

C>>> Gen. GC в Java весьма сложно отключить

>> Сорри, incremental GC хотел написать.
C> Его как раз отключать не надо, так как он сильно помогает
C> уменьшить частоту полных сборок.

Разве я писал что его нужно отключать?
Меняем generational на incremental:

Если причиной тому был большой размер кучи, то возможно проблема решалась бы включением incremental GC и соответствующей настройкой размера young/old generations.




C>>> Механизм HotSpot напрямую к GC не относится.

>> Не совсем понял. Разве то, что понимается под HotSpot не включает
>> в себя generational GC?
C> HotSpot — это механизм перекомпиляции кода "на лету", по
C> результатам профилирования.

http://java.sun.com/products/hotspot/whitepaper.html

Chapter 2. The Java HotSpot VM Architecture

Overview

The Java HotSpot Virtual Machine is Sun's VM for the Java platform. It delivers the optimal performance for Java applications using many advanced techniques, incorporating a state-of-the-art memory model, garbage collector, and adaptive optimizer. It is written in a high-level, object-oriented style, and features:

— Uniform object modelInterpreted, compiled, and native frames all use the same stack
— Preemptive multithreading based on native threads
Accurate generational and compacting garbage collection
— Ultra-fast thread synchronization
— Dynamic deoptimization and aggressive compiler optimizations
— System-specific runtime routines generated at VM startup time
— Compiler interface supporting parallel compilations
— Run-time profiling focuses compilation effort only on "hot" methods

Скорее всего, проблема в том, что ты понимаешь под HotSpot механизм JIT-компиляции, а я имел в виду HotSpot VM. Строго говоря, наверное их стоит различать, хотя как ты сам видишь, даже в документах от Sun этого не делается: часто под HotSpot понимается VM полностью.

C> Непосредственно к GC он отношения не имеет, в JRE от SUN есть

C> несколько независимых алгоритмов GC.

Разумеется есть различные алгоритмы, только все они основываются на модели поколений. Это базовый подход к сборке мусора в HotSpot (HotSpot VM).
Posted via RSDN NNTP Server 2.0
Re[11]: Сложный язык для сложных срограмм.
От: dr.Chaos Россия Украшения HandMade
Дата: 01.02.07 10:22
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Здравствуйте, dr.Chaos, Вы писали:


DC>>Мощный — это как?


K>Это так, как мы себе и прдставить не можем. Вот рассказал бы кто-то про нынешние 3D-игры лет 20 назад, его бы психом посчитали.


Хм. Однако . Слышу звон, но не знаю где он.

DC>>ИМХО С++ довольно неплохо подходит для создания графических движков, это одна из тех задач, откуда его будет очень не просто вытеснить .


K>Да на ассемблере тоже можно неплохой движок написать.

Напиши . Я хочу на это посмотреть . Видел демки 200-300Кб с нормально 3D графикой и музыкой, но это не движок

K>Просто сейчас C++ — это лучшее, что подходит для данной задачи. Но надо понимать, что это не навсегда.


Да именно лучшее, на это есть объективные причины. Сам Страуструп никогда не считал C++ лучшим из языков, он просто его называет достаточно хорошим для решения практически любой задачи.

Мало того он признает что для прикладного программирования С++ не очень хорошо подходит именно из-за отсутствия GC и плохой компонентной модели.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[11]: Сложный язык для сложных срограмм.
От: dr.Chaos Россия Украшения HandMade
Дата: 01.02.07 10:31
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, dr.Chaos, Вы писали:


DC>>Мощный — это как?


VD>Мощьный — это значит фунциональный, удобный надежный и в меру быстрый.




DC>>ИМХО С++ довольно неплохо подходит для создания графических движков, это одна из тех задач, откуда его будет очень не просто вытеснить .


VD>Это заблуждение. С++ уже ни для чего кроме возни с битами не подходит хорошо.


Что именно? То что неплохо подходит или то что непросто вытеснить? Хм, а графический движок не с битами возиться? Или я чего-то недопонимаю?

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


VD>Обсуждение с ходу не нашел, но нашел ссылку на презентаху:

VD>http://www.cs.princeton.edu/~dpw/popl/06/Tim-POPL.ppt
VD>Вот мнение о С++ из нее:
VD>

Reliability
VD>Error-prone language / type system leads to wasted effort finding trivial bugs
VD>Significantly impacts productivity
VD>Concurrency
VD>Hardware supports 6-8 threads
VD>C++ is ill-equipped for concurrency


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

Полагаю что новый стандарт решит часть проблем в С++.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[14]: Сложный язык для сложных срограмм.
От: Gajdalager Украина  
Дата: 01.02.07 10:31
Оценка: 1 (1) :))) :))) :)
Здравствуйте, konsoletyper, Вы писали:
K>Или вот в C++ до определённой поры не было шаблонов. Почему же с добавлением такой значимой фичи его не переименовали в C++++?
Потому что С++ — это не lvalue, соответственно, (С++)++ не скомпилируеться
Re[2]: Поправьте название темы :)
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 01.02.07 13:23
Оценка: -1 :))) :))) :)))
Здравствуйте, SergeCpp, Вы писали:

SC>Модераторы, пожалуйста, поправьте-таки название темы...


А чё править-то? Всё нормально. Сложный язык, как раз для "срограмм"; причём не каких-то там простых срограмм, а самых настоящих сложнных срограммищь!
Re[6]: Сложный язык для сложных срограмм.
От: Константин Л.  
Дата: 01.02.07 13:32
Оценка:
Здравствуйте, VladD2, Вы писали:

[]

VD>Ну, нормальный человек и так прочесть может . Здесь очевидно разбирается некий язык токены которого лежат в списке decls.


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

[]
Re[4]: Сложный язык для сложных срограмм.
От: Константин Л.  
Дата: 01.02.07 13:38
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Константин Л., Вы писали:


КЛ>>Люди, но неужели вы до сих пор не поняли, что на с# нельзя писать программы с нетривиальной логикой просто потому, что он для этого не предназначен? Он просто убог для этого.

КЛ>>Simple data flow — да, но не больше.

КЛ>>Одно отсутствие const параметров методов — это убийство.


КЛ>>Я это говорю, исходя из личного опыта. У меня "эйфория" от него прошла довольно быстро.


VD>Как ты думаешь, чего стоит твой опыт после таких заявлений?


чего стоит мой — я знаю. А вот чего стоит твой? Кроме шапкозакидательства, хамства, снобизма, и т.п. пока ничего толкового не увидел.

На днях планирую посмотреть подробнее на немерле и написать о впечатлениях.
Re[17]: Сложный язык для сложных срограмм.
От: Андрей Хропов Россия  
Дата: 01.02.07 13:42
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Андрей Хропов wrote:

>> C>Это не сильно больше, чем в новом Стандарте С++.
>> В каком? который 0x? Так он еще когда выйдет.
C>Через два года.
Это они только

expressed a strong desire

.

C>Следующий ISO-стандарт для C# тоже еще не близко.

Так то, что я привел, уже стандарт и уже реализовано в MS.NET и Mono.

C>Ну это точно такая же ситуация, как и с С++. Необходимо будет

C>тестировать на совместимость со всеми средами так же, как и в случае с
C>С++ требуется тестировать с разными компиляторами.
Если у тебя портабельная библиотека, то это требует минимальных усилий (ну как с Java ситуация).

C>Ну так и в C# точно так же, используешь какой-нибудь системно-зависимый

C> контрол — и привет портируемости.
Ну естественно. Но это уж, что называется, сам виноват.

>> Стандарт должен обеспечивать возможность простой интеграции библиотек и

>> базовую функциональность. Все остальное — в портабельные библиотеки.
C>Если нет стандарта на библиотеки — то будет зоопарк (собственно, он УЖЕ
C>есть).
Стандартная библиотека не может охватывать все области человеческой деятельности. В ней должен быть необходимый минимум для интероперабельности.

Вот, например, возьмем тот же GUI. Каким он должен быть — на нативных контролах или одинаковый на всех платформах? Иконки растровые или векторные? Должен смену скинов поддерживать или нет? Слишком много разных требований, на всех не угодишь.

C>Вот в Java, фактически, такой стандарт есть — это Sun JDK, который есть

C>на куче платформ. А сейчас вообще открытым стал.
Да, ну так там тоже зоопарк. GUI на чем делать — на AWT или Swing?

MS заинтересована прежде всего в поддержке своей платформы поэтому они более высокие уровни (ASP.NET, ADO.NET, WinForms, WWF, WCF, WPF) не вносят в стандарт. Но в Mono первые 3 почти доделали их для совместимости, а также предлагают и свои портабельные альтернативы (тот же Gtk#).
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>