Re[2]: плохой язык C++ :)
От: zzzale  
Дата: 06.03.06 09:11
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Автор (видимо в силу своей высокообразованности) плохо знает, во что выливается такая невинная строчка как



Ш>
Ш>printf("File %s has length=%d\n",file_name,length);
Ш>


Ш>или


Ш>
Ш>FILE *f=fopen("coolfile.txt");
Ш>


Касперски приводил пример, что-то вроде этого:

char str[size];
char user[size];
char pwd[size];
printf(str);


вводом %s вместо имени кода во многих случаях можно добиться имя пользователя,ну и пароль при желании.
А вообще — во что она может вылиться?
Re[3]: плохой язык C++ :)
От: zzzale  
Дата: 06.03.06 09:19
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Написать качественный код на С пожалуй по сложнее чем на С++. Да и на С++ можно писать как на улученом С. Так что аргумент сомнительный.


Всё же лучше на С++ писать как на С++. Просто С++ действительно предоставляет программисту много возмножностей для совершения ошибок. В этом с ним врядли какой язык сможет конкурировать.
Тот же ассемблер — сложный, требует знания множества технических подробностей, необходимо запоминать множество необязательных мелочей, уходит много времени на написание казалось бы простейших вещей, но зато всё работает строго так, как того ожидаешь.
Re[5]: плохой язык C++ :)
От: Left2 Украина  
Дата: 06.03.06 10:18
Оценка: +1
IT>Минуса это не стоит.

Ну, я думаю что если бы я высказался в духе "а вот все мои знакомые (умнейшие люди, кстати!) считают что технология SuperPuperWidgetsProXP — отстой" то был бы готов к тому чтобы отгрести кучу минусов — слишком мало конструктива в высказывании

IT>Тогда его надо было ставить автору топика. А вообще и ему не за что. Уж слишком часто стали ругать в последнее время плюсы, причём не только враги, но и доброжелатели.


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

IT>В экономике это можно было бы назвать кризисом, но в отличии от экономики пока путей выхода из этого самого кризиса не видно.


Ну насчёт кризиса — это чистая философия что считать кризисом а что нет. Не моя специализация, спорить не стану
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: плохой язык C++ :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 06.03.06 10:27
Оценка:
Здравствуйте, eao197, Вы писали:

E>Вообще-то с памятью у меня не важно, поэтому могу в чем-то ошибиться, но с 1992-го года, когда я начал изучать и использовать C++ изменений в самом языке было довольно много:

<...список...>

Еще про появление inline-функций забыл сказать.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: плохой язык C++ :)
От: Disappear  
Дата: 06.03.06 11:00
Оценка: 13 (3) +1
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>avva пишет


ЗХ>

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

[..skipped..]

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

[..skipped..]

ЗХ>медленно и неумолимо превращает программиста в шизофреника.


Работаю некоторое время в проекте, реализованном на чистом C + Java UI (около 5Mb С кода + Java примерно столько же), до этого всегда практиковался на С++ (в его истинном понимании — stl, исключения, безопасный код).
Как оказалось, поддерживать этот C код настолько трудно, как будто бы мы имели дело с 50 Mb С++ кода. Всюду эти указатели на неизвестный функции, переплетенные структурки, сырые указатели, непроинециализированные данные... вообщем кошмар. Тронешь тут, посыпится там.

Наше руководство уже приняло решение выкинуть этот C код на помойку и переписать все на С++. Без вских религиозных убеждений, внутренних комплексов, задетого самолюбия и пр... просто горький опыт заставил.
Re[5]: плохой язык C++ :)
От: Sinclair Россия https://github.com/evilguest/
Дата: 06.03.06 11:12
Оценка: 44 (5)
Здравствуйте, Left2, Вы писали:
L>Насколько я помню раскладка QWERTY появилась для того чтобы замедлить скорость набора текста — уж больно быстро стирались деревянные молоточки. Киньте камень кто скажет что такая раскладка "вымучена временем". Просто продали достаточно много машинок с такой раскладкой — и всё, назад пути нет, слишком дорого пытаться победить стандарт.
Это миф, не имеющий ничего общего с реальностью. Читать здесь.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[18]: плохой язык C++ :)
От: Кодёнок  
Дата: 06.03.06 11:22
Оценка:
Здравствуйте, igna, Вы писали:

VD>>static IEnumerable<T> Repeater<T>(IEnumerable<T> seq)

VD>>{
VD>> while (true)
VD>> foreach (T value in seq)
VD>> yield return value;
VD>>}
I><b>Там</b>
Автор: remark
Дата: 05.03.06
был зацикленный итератор.


Да. И что?
Re[6]: плохой язык C++ :)
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 06.03.06 11:53
Оценка: 4 (1)
Sinclair,

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

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

Qwerty неэффективна, отсюда и миф (не вызывающий подозрения прямо скажем).

Глянем, что выбирают профессионалы:

The key, so to speak, is in the keyboard design. Blackburn will type on nothing but the Dvorak keyboard ...


Очень легко обосновать преимущество недостатки QWERTY логически отсюда:

Problems with the Qwerty keyboard:
-- Of the nine most common letters in English (ETAOINHSR, in that order), only three are on home row (ASH), and only two, A and S, are home keys. Five (ETOIR) are on the upper row, and one (N) is on the lower row, making it especially difficult to press.
-- A disproportionate number of very common characters are found on the left side of the keyboard, giving the left hand a bigger workload. The common characters on the left (ETASRDCWGF) are 42.5% of characters in English, while those on the right (OINHLUMYP) make up only 32.6%.
-- ...


Наконец, самая крутая раскладка не Дворак, и уж тем более не Qwerty (хере)
' , . p y  f g c r l   Dvorak layout
a o e u i  d h t n s   32129548
; q j k x  b m w v z

q w e r t  y u i o p   Sholes' layout, with quote replacing /
a s d f g  h j k l ;   59514344
z x c v b  n m , . '

k , u y p  w l m f c   Best evolved layout
o a e i d  r n t h s   28281895
q . ' ; z  x v g b j
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[7]: плохой язык C++ :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 07.03.06 10:30
Оценка:
Здравствуйте, eao197, Вы писали:

E>-- отказались от ключевого слова override для перегрузки (имхо, оно еще описывалось в первом издании "Языка программирования C++");


Ошибся. Было ключевое слово overload, от него отказались, но в первом издании своей книги Страуструп его использовал.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: плохой язык C++ :)
От: Zuka Россия  
Дата: 07.03.06 10:34
Оценка:
Здравствуйте, Left2, Вы писали:


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


А толку от того что он портирован? Программа на С для Windows не будет в общем случае работать на стиральной машинке.
Платформы разные. Так что доступность языка на любой платформе имеет очень низкую ценность. Затраты времени на изучение нового языка программирования мизерны по сравнению с затратами времени на изучение новой платформы.
Re: плохой язык C++ :)
От: Pavel Dvorkin Россия  
Дата: 07.03.06 10:55
Оценка: +1
Здравствуйте, Зверёк Харьковский, Вы писали:

>Я всего лишь объявил переменную какого-то типа, написав "Typename varname;", но эта строчка может привести к вызову неизвестного мне конструктора, а за ним — кода сколь угодно, вообще говоря, сложности.


Ну и что ? А вызов функции в С не смущает ? По большому счету это то же самое. Вызов неизвестной (может быть) мне функции, а за ней когда сколько угодно. Если по F10 его проходить. Но есть еще и F11 .

>Я всего лишь применяю известный мне оператор к переменной — а он, оказывает, overloaded у этого класса, и черт знает что на самом деле там произойдет.


Вызов функции там произойдет и что будет — см. выше. Это просто иная форма записи вызова функции (метода)

>Я всего лишь вышел из функции, что может быть проще, написал }, а в рантайме на самом деле пошли плясать деструкторы всех автоматических объектов в этой функции.


И что ?

>И даже и не буду начинать говорить про copy constructor и прочие подобные прелести.


А зря. ИМХО как раз copy ctor — это лучшее, что есть в С++. Потому что он (да еще operator=) ставят именно под мой контроль создание объектов.

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


ЗХ>Он настолько много прячет за кулисами, чтобы навязать программисту режим работы "моя хата с краю": пиши свой код, не волнуйся насчёт того, что магически происходит вокруг него, всё хорошо, всё идёт по плану...



Не завидую тому, кто так пишет — на любом языке.

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


Ну тогда все серьезное ПО в мире сделано шизофрениками. Или , по крайней мере, большая часть серьезного ПО.

В целом — несерьезно. Наивные рассуждения человека, который с С++ реально не работал.
With best regards
Pavel Dvorkin
Re[4]: плохой язык C++ :)
От: Pavel Dvorkin Россия  
Дата: 07.03.06 10:55
Оценка: +1 :)
Здравствуйте, IT, Вы писали:

IT>Главное, что бы этот караван не превратился в караван неуловимых Джо


Не дождетесь!
With best regards
Pavel Dvorkin
Re[3]: плохой язык C++ :)
От: achp  
Дата: 07.03.06 11:06
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>Если ваша программа не способна утилизировать проц более чем на 1-2%, то вам стоит задуматься о своей профпригодности.


Нужно добавить условие: "Если ваша программа не способна утилизировать проц более чем на 1-2%, но при этом сильно подкачивает..."

В моей работе это очень актуально.
Re[10]: плохой язык C++ :)
От: Sheridan Россия  
Дата: 07.03.06 11:37
Оценка:
Здравствуйте, igna, Вы писали:

VG>>Что такое предмет первой необходимости?


I>- GUI

vcl
I>- GUI
qt
I>- GUI
gtk
I>- Database access
qt
I>- XML
qt сотоварищи

[RSDN@Home][1.2.0][alpha][645]
[Hе будь у меня чувства юмора, я давно бы покончил с собой. [М. Ганди]]
Matrix has you...
Re[6]: плохой язык C++ :)
От: Left2 Украина  
Дата: 07.03.06 12:46
Оценка: +1
Z>А толку от того что он портирован? Программа на С для Windows не будет в общем случае работать на стиральной машинке.
Z>Платформы разные. Так что доступность языка на любой платформе имеет очень низкую ценность. Затраты времени на изучение нового языка программирования мизерны по сравнению с затратами времени на изучение новой платформы.

Не скажи, толк есть.

1. Есть довольно много базовых библиотек написаных на чистом C которые с минимальными усилиями прикручиваются на любую платформу — jpeglib, libzip, и т.д. Наличие таких вещей очень сильно облегчает (и удешевляет) разработку.

2. Наличие стандартизованного языка позволяет довольно большие части системы, не завязанные на платформу, тестировать и отлаживать на программерском PC. Это тоже порядком ускоряет разработку.

Ну и в целом наверное ноги у пунктов 1 и 2 растут из одного и того же места
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: плохой язык C++ :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 07.03.06 12:57
Оценка:
Здравствуйте, Zuka, Вы писали:

Z>А толку от того что он портирован? Программа на С для Windows не будет в общем случае работать на стиральной машинке.


Смотря какая программа. Если программа не обращается к WinAPI, то почему бы и нет.

Z>Платформы разные. Так что доступность языка на любой платформе имеет очень низкую ценность.


Заблуждение.

Z>Затраты времени на изучение нового языка программирования мизерны


Еще одно заблуждение.

Z>по сравнению с затратами времени на изучение новой платформы.


Если платформа поддерживает стандарт POSIX, то ее изучение может существенно упроститься.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: плохой язык C++ :)
От: IT Россия linq2db.com
Дата: 07.03.06 13:02
Оценка: :))
Здравствуйте, Pavel Dvorkin, Вы писали:

IT>>Главное, что бы этот караван не превратился в караван неуловимых Джо


PD>Не дождетесь!


Потом не говорите, что я не предупреждал
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: плохой язык C++ :)
От: Left2 Украина  
Дата: 07.03.06 13:04
Оценка:
E>Ошибся. Было ключевое слово overload, от него отказались, но в первом издании своей книги Страуструп его использовал.

Во как!
Что-то я не помню такого в "как я рожал ёжиков"... А почему отказались — он не говорил?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: плохой язык C++ :)
От: IT Россия linq2db.com
Дата: 07.03.06 13:07
Оценка: :)
Здравствуйте, Sheridan, Вы писали:

VG>>>Что такое предмет первой необходимости?


I>>- GUI

S>vcl
I>>- GUI
S>qt
I>>- GUI
S>gtk
I>>- Database access
S>qt
I>>- XML
S>qt сотоварищи

Забавно, но за много лет писанины на плюсах, я ничего из этого не использовал Интересно как другие. Я, конечно, понимаю, что незнание не освобождает, но, с другой стороны, талант всегда пробьёт себе дорогу, а об этих талантах мне не часто приходилось слышать, а видеть я их вообще никогда не видел. Всё больше приходилось пользоваться более популярными, но менее стандартными и переносимыми вещами, как MFC, ADO, MSXML.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: плохой язык C++ :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 07.03.06 13:11
Оценка:
Здравствуйте, Left2, Вы писали:

E>>Ошибся. Было ключевое слово overload, от него отказались, но в первом издании своей книги Страуструп его использовал.


L>Что-то я не помню такого в "как я рожал ёжиков"... А почему отказались — он не говорил?


Да потому, что и без него все замечательно работает
Его просто посчитали избыточным.

Кстати, под "как я рожал ежиков" понимается "Дизайн и эволюция языка C++", да?
Жаль, но я не смог эту книгу приобрести И в peer-to-peer сетях не нашел в электронном виде (если не считать варианта то ли на китайском, то ли на японском языке, в иероглифах).


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.