Re[13]: плохой язык C++ :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 03.03.06 10:56
Оценка: +1
Здравствуйте, dmz, Вы писали:

dmz>
dmz>int count = 0;
dmz>ints.each( { |x| count++ if(5 < x && x <= 10) } );
dmz>


Ruby надолго оставляет следы в памяти и в сознании


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: плохой язык C++ :)
От: Cyberax Марс  
Дата: 03.03.06 10:57
Оценка: :))
last_hardcoder wrote:
> приемника C++
Это как "приемник Путина"?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[10]: плохой язык C++ :)
От: Cyberax Марс  
Дата: 03.03.06 10:59
Оценка:
Здравствуйте, eao197, Вы писали:
E>Хотя грусно это все, на самом деле. Здесь рядом
Автор: Cyberax
Дата: 02.03.06
Cyberax коротенький тестик привел для замера скорости работы FS, так к этому тесту нужно буст тащить, да еще версию из CVS. Уж на самом деле, на C в таких условиях писать спокойнее.

Проблема в том, что нет кроссплатформенных функций создания/удаления каталогов и #ifdef'ы ставить лень. Ну а CVSный Boost у меня был под рукой, вот и взял первое попавшееся
Sapienti sat!
Re[3]: плохой язык C++ :)
От: igna Россия  
Дата: 03.03.06 11:01
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>last_hardcoder wrote:

>> приемника C++
C>Это как "приемник Путина"?

Он его ночами крутит, ловит, контра, ФРГ. (C)

Re[13]: плохой язык C++ :)
От: Left2 Украина  
Дата: 03.03.06 11:05
Оценка:
int count = 0;
ints.each( { |x| count++ if(5 < x && x <= 10) } );

Clipper форева !
Хотя и не уверен что такой синтаксис лямбда-функций (в Clipper они назывались "блоки кода") пошёл именно от него
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: плохой язык C++ :)
От: r.oleg Россия  
Дата: 03.03.06 11:13
Оценка: -2 :)
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>avva пишет


ЗХ>

ЗХ>Следующие рассуждения в принципе мне кажутся очень простыми, но ни разу их не встречал.

ЗХ>Одна из главных причин, почему C++ плохой язык: для этого надо сначала понять, почему C хороший. В чем состоит то свойство C, из-за которого его называют "портабильным ассемблером"? Дело не в том, что "близко к машине", и всё низкого уровня. Дело в том, что почти всегда в C эффект любой строки кода локален и очевиден. Когда я что-то делаю в C, неважно что, я очень хорошо понимаю, что именно происходит. Если я пишу x=y, я знаю точно, что происходит. Если я пишу f(...), я знаю точно, какая конкретно функция будет вызвана, я могу указать на неё пальцем, и я знаю точно, что произойдёт в момент входа в неё и выхода из неё. Если я выделяю память, я знаю точно, что она не исчезнет, пока я её не освобожу. Итд. итп. Атомарные строки кода переходят в атомарные куски кода во время запуска, и никаких сюрпризов. Есть исключения: например, если я вызываю функцию через ссылку, я не знаю, что собственно я вызвал, до рантайма. Но этих исключений очень мало и они тоже "локализованы" и их легко понять.

ЗХ>Это необязательно хорошо. Но это — в C — выполняется последовательно, и то, что это последовательно — хорошо. Разные языки по-разному решают вопрос о том, как позволить программистам прятать информацию от самих себя. В объектно-ориентированных языках принцип полиморфизма, принципиального незнания мной того, объект какого класса я вызываю по ссылке (базового или наследника), является краеугольным; и это по-своему хорошо, если проведено последовательно.

ЗХ>C++ — смесь разных принципов отношения к информации и средствам её прятать или открывать, которые доступны программисту; смесь, кажется, очень плохо продуманная. С одной стороны, полностью сохранён "низкий уровень" C, в том числе отсутствие сборки мусора, т.е. очень важный пример того, что заставляем программиста за всем следить и обо всём помнить. Множественное наследование — другой пример: если практически оказывается возможным его воплотить, мы его воплощаем, пусть оно концептуально сложно, пусть оно заставляет программиста выслеживать порядок вызова конструкторов, всякие ужасные "ромбики" и прочую хренотень.

ЗХ>Но, с другой стороны: полностью нарушен (я бы сказал, низвергнут с пьедестала и подвержен особо извращенному поруганию) этот самый принцип локальности поведения системы в ответ на строчку моего кода. Я всего лишь объявил переменную какого-то типа, написав "Typename varname;", но эта строчка может привести к вызову неизвестного мне конструктора, а за ним — кода сколь угодно, вообще говоря, сложности. Я всего лишь применяю известный мне оператор к переменной — а он, оказывает, overloaded у этого класса, и черт знает что на самом деле там произойдет. Я всего лишь вышел из функции, что может быть проще, написал }, а в рантайме на самом деле пошли плясать деструкторы всех автоматических объектов в этой функции. И даже и не буду начинать говорить про copy constructor и прочие подобные прелести.

ЗХ>Так вот, поэтому C++ — плохой язык.

ЗХ>Он настолько много прячет за кулисами, чтобы навязать программисту режим работы "моя хата с краю": пиши свой код, не волнуйся насчёт того, что магически происходит вокруг него, всё хорошо, всё идёт по плану... И в то же время того же программиста заставляет следить за всеми malloc()'ами и new, рассчитывать ужасные иерархии наследования и дикие функции-"френды", не говоря уж о темплейтах. По сути дела, медленно и неумолимо превращает программиста в шизофреника.


согласен, но не совсем, да с++ позволяет очень много, но ведь остается право выбора пользоваться ли этим или нет, при строгом соблюдении договоренностей по кодированию многих таких проблем можно избежать. А вот то что в этом языке много рутинной обязаловки я порлностью согласен, программистких сил этот язык не жалеет. Поэтому, его уже давно никто и не воспринимает как язык для создания серьезных бизнес-приложений.
Re[3]: плохой язык C++ :)
От: last_hardcoder  
Дата: 03.03.06 11:14
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>last_hardcoder wrote:

>> приемника C++
C>Это как "приемник Путина"?

Возможно, в каком то смысле. Просто языков то много появляется. Среди них есть и довольно прогрессивные. Но кроме авторов они никому не интересны. А нужен язык, от которого невозможно отказаться.
Re[4]: плохой язык C++ :)
От: Cyberax Марс  
Дата: 03.03.06 11:30
Оценка:
last_hardcoder wrote:
> C>last_hardcoder wrote:
>> > *приемника C++*
> C>Это как "приемник Путина"?
> Возможно, в каком то смысле. Просто языков то много появляется.
Это я просто не могу удержаться — достало уже слово "приемник" вместо
"преемник", эта ошибка уже на всех сайтах.

> Среди них есть и довольно прогрессивные. Но кроме авторов они никому не

> интересны. А нужен язык, от которого невозможно отказаться.
Вот я и говорю — "преемник Путина"
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[14]: плохой язык C++ :)
От: Трурль  
Дата: 03.03.06 11:41
Оценка: +2 :))
Здравствуйте, igna, Вы писали:

I>Хорошо еще бы count спрятать.


+/(5<ints)&(~ints>10)
Re[3]: плохой язык C++ :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.03.06 12:38
Оценка:
Здравствуйте, Left2, Вы писали:

L>Влад, ну зачем же так

L>C живёт только потому что он уже есть везде — для любой платформы. Да, он убогий, да, в нём море граблей — но он стандарт де-факто. Вы бы ещё возмутились неудобной раскладкой клавиш на клавиатуре — 100% уверен в том что можно было сделать лучше, но я бы не стал кричать что QWERTY-раскладка обусловлена глупостью и костностью мышления.

Как раз раскладка на клаве это что называется вымучиный временем стандарт. Вариаций было очень много но выжил именно этот вариант.

Что до стандарта, то реальной необходимости в таком стандарте нет. Более того две самые популярные ОС, написанные на С (Винда и Линух), начинали писаться в 1991-1992 годах. В это время выбор был уже очень велик, но видимо кактусы так заманчивы...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: плохой язык C++ :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.03.06 12:38
Оценка:
Здравствуйте, Denis2005, Вы писали:

D>С++ ориентрован на сильных умом (experts only), и надо заметить, что в программировании далеко не все этим качеством обладают.


Написать качественный код на С пожалуй по сложнее чем на С++. Да и на С++ можно писать как на улученом С. Так что аргумент сомнительный.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: плохой язык C++ :)
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 03.03.06 12:43
Оценка: :)
Здравствуйте, Denis2005, Вы писали:

D>Перед программистом стоит достаточно трудоемкая задача, по сути нахождение оптимального решения по следующим критериям (первое что пришло на ум):


D>(Список можно продолжать).


Хватит, он и так слишком детален. Ведь на самом деле задача одна — написать эффективную программу, то есть ту которая утилизирует все доступніе ресурсы. Например, программа под дос — может использовать только 640К (я немножко упрощаю, конечно) и один проц. А у нас есть 2 проца и один гиг. Значит это малоэффективная программа. А эффективной, в данных условиях, была бы программа, которая утилизировала оба проца, весь гиг физической памяти, и пару — виртуальной. При том, если программа утилизирует каждый проц меньше чем на 100% это минус программисту, и на этот процент и должна уменьшаться его зарплата. Если ваша программа не способна утилизировать проц более чем на 1-2%, то вам стоит задуматься о своей профпригодности.
http://www.smalltalk.ru | << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[4]: плохой язык C++ :)
От: Left2 Украина  
Дата: 03.03.06 13:09
Оценка: +2
VD>Как раз раскладка на клаве это что называется вымучиный временем стандарт. Вариаций было очень много но выжил именно этот вариант.

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

VD>Что до стандарта, то реальной необходимости в таком стандарте нет. Более того две самые популярные ОС, написанные на С (Винда и Линух), начинали писаться в 1991-1992 годах. В это время выбор был уже очень велик, но видимо кактусы так заманчивы...


Хм.. Сейчас на дворе 2006-й — но я не вижу реальной альтернативы — покажите мне хотя бы один язык, который доступен (не "может быть портирован" — а реально доступен, здесь и сейчас) для всех платформ — начиная от стиральных машинок и заканчивая mainframe?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: плохой язык C++ :)
От: dshe  
Дата: 03.03.06 13:22
Оценка:
Здравствуйте, Left2, Вы писали:

VD>>Как раз раскладка на клаве это что называется вымучиный временем стандарт. Вариаций было очень много но выжил именно этот вариант.


L>...Киньте камень кто скажет что такая раскладка [QWERTY] "вымучена временем". Просто продали достаточно много машинок с такой раскладкой — и всё, назад пути нет, слишком дорого пытаться победить стандарт.


+1

...а вот раскладка Dvorak целенаправленно проектировалась для того, чтобы ускорить набор текста. Но она все равно не смогла вытестить QWERTY.
--
Дмитро
Re[5]: плохой язык C++ :)
От: Cyberax Марс  
Дата: 03.03.06 13:25
Оценка:
Left2 wrote:
> Хм.. Сейчас на дворе 2006-й — но я не вижу реальной альтернативы —
> покажите мне хотя бы один язык, который доступен (не "может быть
> портирован" — а реально доступен, здесь и сейчас) для всех платформ —
> начиная от стиральных машинок и заканчивая mainframe?
Хм... C++?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[6]: плохой язык C++ :)
От: Left2 Украина  
Дата: 03.03.06 13:29
Оценка:
C>Хм... C++?

Не уверен.
Взять тот же Symbian (чтоб ему пусто было). Там С++ — это как бы родной язык для их API. Только вот от С++ там только название — нет exceptions, соответственно нет STL и т.д. и т.п. С++ слишком всеобьемлющ — выделить из него подмножество которое гарантированно будет работать на всех компиляторах наверное можно, но тогда это будет не более чем С с классами
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[15]: плохой язык C++ :)
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 03.03.06 13:32
Оценка:
Трурль,

I>>Хорошо еще бы count спрятать.


Т>
+/(5<ints)&(~ints>10)


и ints заменить на i
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[7]: плохой язык C++ :)
От: Cyberax Марс  
Дата: 03.03.06 13:33
Оценка: +1
Left2 wrote:
> Не уверен.
> Взять тот же Symbian (чтоб ему пусто было). Там С++ — это как бы родной
> язык для их API. Только вот от С++ там только название — нет exceptions,
> соответственно нет STL и т.д. и т.п.
В новой версии добавили. Я вообще не понимаю зачем они сделали
самодельную систему исключений вместо нормальной их поддержки.

> С++ слишком всеобьемлющ — выделить

> из него подмножество которое гарантированно будет работать на всех
> компиляторах наверное можно, но тогда это будет не более чем С с классами
Однако, есть Comeau C++ — он компилирует код на С++ в код на С. Хотя
результирующий код и получается некроссплатформенным, но Comeau можно
адаптировать для любого компилятора С.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[8]: плохой язык C++ :)
От: Left2 Украина  
Дата: 03.03.06 13:48
Оценка:
C>В новой версии добавили. Я вообще не понимаю зачем они сделали
C>самодельную систему исключений вместо нормальной их поддержки.

+100. Было бы куда проще если бы они просто использовали коды возврата а не городили свою систему исключений — по крайней мере за деструкторы стековых обьектов можно было бы быть спокойным.

C>Однако, есть Comeau C++ — он компилирует код на С++ в код на С. Хотя

C>результирующий код и получается некроссплатформенным, но Comeau можно
C>адаптировать для любого компилятора С.

Ну вот, и в итоге всё равно приходим к pure С, как ни крути
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: плохой язык C++ :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.03.06 14:03
Оценка: +1
Здравствуйте, Left2, Вы писали:

L>Хм.. Сейчас на дворе 2006-й — но я не вижу реальной альтернативы — покажите мне хотя бы один язык, который доступен (не "может быть портирован" — а реально доступен, здесь и сейчас) для всех платформ — начиная от стиральных машинок и заканчивая mainframe?


Таких языков море. Как не достал этот Оберон, но и он тоже входит в их число. Тот же Ричи создал такой язык. К сожалению я не помню как он называется, но думаю, если глянуть Википедию на Ричи, то быстро найдешь его имя. Просто народ слишком привязан к привычкам и плохо воспринимает новое.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.