Re[8]: С - зло... :)
От: Пацак Россия  
Дата: 10.01.11 20:41
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Это ты зря. Как извстно, Пилат спросил Иисуса : "что есть истина" ? И Иисус не ответил. Потому что он не знал языка C/C++


Корректный сишный ответ был 42?
Ку...
Re[5]: С - зло... :)
От: Пацак Россия  
Дата: 10.01.11 20:49
Оценка:
Здравствуйте, Пацак, Вы писали:

MZ>>От них тошнит только. Ещё претенденты есть ?

П>Java, например. В ней подобный фокус можно выкинуть только если переменная внутри условия будет булевской.

Upd: А в питоне подобное вообще вызывает синтаксическую ошибку:

>>> b = True
>>> if b = not True: pass
  File "<stdin>", line 1
    if b = not True: pass
         ^
SyntaxError: invalid syntax
Ку...
Re[6]: С - зло... :)
От: bkat  
Дата: 10.01.11 22:08
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>Но это не отменяет того факта, что в программировании накопилось дохрена идей,

A>(например функциональное программирование) которые в С++ уже не впихнешь.

Так, для справки...
Lisp появился в 1958 году.
Он всего лишь на годик-другой моложе Фортрана
Re: С - зло... :)
От: shasa  
Дата: 11.01.11 08:07
Оценка: +2
Здравствуйте, LaptevVV, Вы писали:

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


LVV>
LVV> if (counter =! 0 ) {
LVV>


Напиши пару-тройку нужных людям и работающих программ, а потом пиши такое. Я уверен что на других языках можно найти примеры похожего характера.
Re[4]: С - зло... :)
От: LaptevVV Россия  
Дата: 11.01.11 08:44
Оценка: 1 (1) -5
Здравствуйте, MasterZiv, Вы писали:

MZ>On 10.01.2011 14:02, LaptevVV wrote:


>> Более просты, наверное, нет. А вот простые и более надежные — есть. Компонентный

>> паскаль — Оберон. Там невозможно совершить подобных ошибок по по определению.

MZ>От них тошнит только.

Возможно, программирование — не ваша профессия?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: С - зло... :)
От: LaptevVV Россия  
Дата: 11.01.11 08:48
Оценка: -1
Здравствуйте, blackhearted, Вы писали:

LVV>>>>
LVV>>>> if (counter =! 0 ) {
LVV>>>>

Pzz>>>Ну ваше-то, любой нормальный компилятор в этом месте предупреждение напишет, если их (предупреждения) не отключать.
LVV>>Начинающие на этом этапе Debug от Release отличить не могут, не то, что предупреждения отключить...
B>Кто-то кроме студентоты таким страдает? А учеников нужно учить.
Никлаус Вирт при создании паскаля написал: Одним из главных побуждающих мотивов создания нового языка стало то, что ему надоело учить студентов не программированию, а особенностям языка (и транслятора) фортрана.
Язык НЕ ДОЛЖЕН позволять писать ошибочные конструкции, которые пропускаются компилятором.
Знаменитая ошибка в программе на фортране: вместо запятой была поставлена точка и оператор цикла превратился в оператор присваивания.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: С - зло... :)
От: LaptevVV Россия  
Дата: 11.01.11 09:00
Оценка: +1 -4 :)
Здравствуйте, ononim, Вы писали:

A>>>Это работало несколько лет, потом случайно нашли.

LVV>>Вот именно! Язык НЕ ДОЛЖЕН ПОЗВОЛЯТЬ писать подобные вещи.
O>вообще меня удивляет то что люди считают ошибки в стиле

if (counter =! 0 )

или даже проблемы с выделением/освобождением памяти корнем зла. На моей практике в достаточно больших проектах получить на руки баг с access violation это же просто кодерское щасте. 90% реальных (не учебных!) проблем — разборки с тн "бизнес" логикой.

Дело в том, что данный оператор присваивания был написан начинающим в учебной программе. И он спрашивал на Винграде, почему среднее арифметическое не вычисляется. То есть, ЭТО ПРОСТО ОПИСКА. Чел правильно разобрался в алгоритме, правильно написал всю функцию, то есть ПРАВИЛЬНО РАЗОБРАЛСЯ с бизнес-логикой вычисления среднего арифметического последовательности чисел. И сделал ДУРАЦКУЮ ОПИСКУ. Естественно, поиски ошибки в логике программы ничего не дали.
Поэтому для начинающих язык С — зло! Причем в сочетании с со студией — зло практически АБСОЛЮТНОЕ!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: С - зло... :)
От: LaptevVV Россия  
Дата: 11.01.11 09:09
Оценка:
Здравствуйте, bkat, Вы писали:

B>В любом языке есть свои подводные камни и типичные ошибки новичков.

B>С/С++ мы любим не за это
Вы знаете, я с С познакомился по первому изданию K&R. C TurboC++ — еще году то ли 87, то ли 88ю С С++ я познакомился по первому изданию Страуструпа в 91 году. Я любил этот язык настолько, что написал аж 3 книжки, причем для студентов. Четвертую — не дописал еще (там все программы — на С/С++).
Больших прог на С/С++ мне писать не довелось (ну, не более 15000 операторов), но опыт программирования у меня большой — порядка 20 лет. От кодов ЭВМ, до PL-1 и С++, от операционной системы (как раз на ЭВМ типа pdp-11) до зарплаты. И членом команды и руководителем команды.
Обвинить меня в ненависти к С/С++ — нельзя. Но после того, как я познакомился в Блэск-боксом (2009 год) + Компонентный Паскаль, я все более убеждаюсь, что С/С++ — для начинающих — это ЗЛО. Никлаус Вирт — гораздо опытнее Страуструпа в обучении, поэтому абсолютно несомненно, что языки Вирта абсолютно лучше С/С++ для обучения.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: С - зло... :)
От: LaptevVV Россия  
Дата: 11.01.11 09:13
Оценка: -1
Здравствуйте, Ops, Вы писали:

A>>С альтернативами пока плохо.

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

Ops>Ну в питоне мне не хватает много чего из хотя бы С. Задачи такие.
Ops>А вот полноценной альтернативы нет и пока не предвидится.
А попробуйте Оберон...
Вполне себе альтернатива.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: С - зло... :)
От: LaptevVV Россия  
Дата: 11.01.11 09:16
Оценка: -7
Здравствуйте, shasa, Вы писали:

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


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


LVV>>
LVV>> if (counter =! 0 ) {
LVV>>


S>Напиши пару-тройку нужных людям и работающих программ, а потом пиши такое. Я уверен что на других языках можно найти примеры похожего характера.

Я писал пару-тройку полезных программ еще в то время, когда вас даже в проекте не было. Яйца курицу — не учат.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: С - зло... :)
От: MescalitoPeyot Украина  
Дата: 11.01.11 09:41
Оценка: 1 (1)
Здравствуйте, LaptevVV, Вы писали:

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


B>>В любом языке есть свои подводные камни и типичные ошибки новичков.

B>>С/С++ мы любим не за это
LVV>Вы знаете, я с С познакомился по первому изданию K&R. C TurboC++ — еще году то ли 87, то ли 88ю С С++ я познакомился по первому изданию Страуструпа в 91 году. Я любил этот язык настолько, что написал аж 3 книжки, причем для студентов. Четвертую — не дописал еще (там все программы — на С/С++).
LVV>Больших прог на С/С++ мне писать не довелось (ну, не более 15000 операторов), но опыт программирования у меня большой — порядка 20 лет. От кодов ЭВМ, до PL-1 и С++, от операционной системы (как раз на ЭВМ типа pdp-11) до зарплаты. И членом команды и руководителем команды.
LVV>Обвинить меня в ненависти к С/С++ — нельзя. Но после того, как я познакомился в Блэск-боксом (2009 год) + Компонентный Паскаль, я все более убеждаюсь, что С/С++ — для начинающих — это ЗЛО. Никлаус Вирт — гораздо опытнее Страуструпа в обучении, поэтому абсолютно несомненно, что языки Вирта абсолютно лучше С/С++ для обучения.

Вот именно. Программистом не являетесь, больших программ не писали, однако напозволяли себе тут уже выше-ниже по топику кучу высказываний типа "курица с яйцами" и "программист — это не ваше". Хоть сколько-нибудь неначинающий разработчик оперирует не с ифами и даже не с классами, а с конкретными задачами. (У самого под рукой плюсовый проект, где и обжектив си ифоновское, и ява с йни андроидовские и как-то пофигу какие где там ифы и наследование, главное уметь переключаться и ловить волну).
Засим предлагаю переехать в КСВ.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138>>
Re[5]: С - зло... :)
От: Lorenzo_LAMAS  
Дата: 11.01.11 10:18
Оценка: +1 -1
LVV>Дело в том, что данный оператор присваивания был написан начинающим в учебной программе. И он спрашивал на Винграде, почему среднее арифметическое не вычисляется. То есть, ЭТО ПРОСТО ОПИСКА. Чел правильно разобрался в алгоритме, правильно написал всю функцию, то есть ПРАВИЛЬНО РАЗОБРАЛСЯ с бизнес-логикой вычисления среднего арифметического последовательности чисел. И сделал ДУРАЦКУЮ ОПИСКУ. Естественно, поиски ошибки в логике программы ничего не дали.
LVV>Поэтому для начинающих язык С — зло! Причем в сочетании с со студией — зло практически АБСОЛЮТНОЕ!

у нас есть кхм.... коллега — он регулярно путает <, >, <=, >=, чем реально доставляет всем остальным. означает ли это, что С++ — плохой язык?
нет, это означает, что чел — неряха и невнимательное чмо. и никакой язык с таким бардаком в башке не поможет.

язык си для начинающих — зло, но вовсе не по причине того, что человек элементарно операторы путает.
Of course, the code must be complete enough to compile and link.
Re[4]: С - зло... :)
От: LaptevVV Россия  
Дата: 11.01.11 10:22
Оценка: -1 :)))
Здравствуйте, MescalitoPeyot, Вы писали:

B>>>В любом языке есть свои подводные камни и типичные ошибки новичков.

B>>>С/С++ мы любим не за это
LVV>>Вы знаете, я с С познакомился по первому изданию K&R. C TurboC++ — еще году то ли 87, то ли 88ю С С++ я познакомился по первому изданию Страуструпа в 91 году. Я любил этот язык настолько, что написал аж 3 книжки, причем для студентов. Четвертую — не дописал еще (там все программы — на С/С++).
LVV>>Больших прог на С/С++ мне писать не довелось (ну, не более 15000 операторов), но опыт программирования у меня большой — порядка 20 лет. От кодов ЭВМ, до PL-1 и С++, от операционной системы (как раз на ЭВМ типа pdp-11) до зарплаты. И членом команды и руководителем команды.
LVV>>Обвинить меня в ненависти к С/С++ — нельзя. Но после того, как я познакомился в Блэск-боксом (2009 год) + Компонентный Паскаль, я все более убеждаюсь, что С/С++ — для начинающих — это ЗЛО. Никлаус Вирт — гораздо опытнее Страуструпа в обучении, поэтому абсолютно несомненно, что языки Вирта абсолютно лучше С/С++ для обучения.

MP>Вот именно. Программистом не являетесь, больших программ не писали, однако напозволяли себе тут уже выше-ниже по топику кучу высказываний типа "курица с яйцами" и "программист — это не ваше".

Вот именно!
1. Я имею большИй опыт программирования, чем поучающие меня программисты. Не писал больших программ на С/С++, на остальном — писал. Операционная система — большая программа? И имею 18-тилетний опыт преподавания программирования. Чего поучающий меня программист явно не имеет вообще. Страуструп, между прочим, учил начинающих программистов всего 6 лет. Результат — он написал ОЧЕНЬ ХОРОШУЮ КНИЖКУ для ОБУЧЕНИЯ.
2. Профи, если он профи, не может тошнить от инструмента.

MP>Хоть сколько-нибудь неначинающий разработчик оперирует не с ифами и даже не с классами, а с конкретными задачами. (У самого под рукой плюсовый проект, где и обжектив си ифоновское, и ява с йни андроидовские и как-то пофигу какие где там ифы и наследование, главное уметь переключаться и ловить волну).

Вот именно! А то вы невнимательно читаете. Начинающий — РЕШАЛ ЗАДАЧУ! И все с логикой и алгоритмизацией у него было в порядке. А язык подложил ему БОЛЬШУЮ СВИНЬЮ! И это — ЗЛО!
Больше спорить не буду.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: С - зло... :)
От: Lorenzo_LAMAS  
Дата: 11.01.11 10:32
Оценка: 1 (1) +5
LVV>Вот именно! А то вы невнимательно читаете. Начинающий — РЕШАЛ ЗАДАЧУ! И все с логикой и алгоритмизацией у него было в порядке. А язык подложил ему БОЛЬШУЮ СВИНЬЮ! И это — ЗЛО!
LVV>Больше спорить не буду.

И не надо, так как пример ваш — дрянь. Ладно бы человек нахреначил чего-то там с памятью или указателями, а тут он тупо операторы путает. Этак он и плюс с минусом или -= с =- попутает а вы будете орать, какое С — лютое зло.
Of course, the code must be complete enough to compile and link.
Re[6]: С - зло... :)
От: LaptevVV Россия  
Дата: 11.01.11 10:48
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

LVV>>Вот именно! А то вы невнимательно читаете. Начинающий — РЕШАЛ ЗАДАЧУ! И все с логикой и алгоритмизацией у него было в порядке. А язык подложил ему БОЛЬШУЮ СВИНЬЮ! И это — ЗЛО!

LVV>>Больше спорить не буду.

L_L>И не надо, так как пример ваш — дрянь. Ладно бы человек нахреначил чего-то там с памятью или указателями, а тут он тупо операторы путает. Этак он и плюс с минусом или -= с =- попутает а вы будете орать, какое С — лютое зло.

Он не путает. Это — простая описка. Бывает, что при наборе слова буквы наоборот напечатаешь. Здесь именно тот случай...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: С - зло... :)
От: blackhearted Украина  
Дата: 11.01.11 11:12
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

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


LVV>>>>>
LVV>>>>> if (counter =! 0 ) {
LVV>>>>>

Pzz>>>>Ну ваше-то, любой нормальный компилятор в этом месте предупреждение напишет, если их (предупреждения) не отключать.
LVV>>>Начинающие на этом этапе Debug от Release отличить не могут, не то, что предупреждения отключить...
B>>Кто-то кроме студентоты таким страдает? А учеников нужно учить.
LVV>Никлаус Вирт при создании паскаля написал: Одним из главных побуждающих мотивов создания нового языка стало то, что ему надоело учить студентов не программированию, а особенностям языка (и транслятора) фортрана.
Фортран — это, конечно, вещь. С ним можно всё что угодно сравнивать, всё равно никто не сможет аргументировано доказать.

LVV>Язык НЕ ДОЛЖЕН позволять писать ошибочные конструкции, которые пропускаются компилятором.

Treat warnings as errors и никаких гвоздей. Получишь палки в колёса от компилятора.
Или нужно полагаться полностью на дизайн языка и голову вообще не включать?
Так мы докатимся до того, что в языке вообще не может быть никаких side-effects и всё иммутабельно — есть такой подход в обучении, начинать с подобных языков. Только вот Виртовский Паскаль под это описание ну не подходит никак.

LVV>Знаменитая ошибка в программе на фортране: вместо запятой была поставлена точка и оператор цикла превратился в оператор присваивания.

И опять он — великий и ужасный. Где сейчас начитают учить с фортрана, в ПТУ? В моё время учили как раз с Паскаля. И ошибки делали на Виртовском творении еще покруче, чем на в будущем на Сях.

Можно еще Аду вспомнить — вот она, безопасность. Но это уже оффтоп.
Re[7]: С - зло... :)
От: Lorenzo_LAMAS  
Дата: 11.01.11 11:16
Оценка:
LVV>Он не путает. Это — простая описка. Бывает, что при наборе слова буквы наоборот напечатаешь. Здесь именно тот случай...

Так и в вашем славном Обероне можно описаться и вместо + использовать -, а вместо * — /.
С — и правда не самый лучший язык для начинающих, но его и создали не для этого.

Впору задуматься, скорее, хорош ли преподаватель и программа обучения, что в качестве первого
выбирают такой язык.
Of course, the code must be complete enough to compile and link.
Re[3]: С - зло... :)
От: Vzhyk  
Дата: 11.01.11 11:16
Оценка: 1 (1) +2 -1
11.01.2011 11:16, LaptevVV пишет:

> S>Напиши пару-тройку нужных людям и работающих программ, а потом пиши

> такое. Я уверен что на других языках можно найти примеры похожего характера.
> Я писал пару-тройку полезных программ еще в то время, когда вас даже в
> проекте не было. Яйца курицу — не учат.
Мда-с, жалко мне твоих студентов.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: С - зло... :)
От: blackhearted Украина  
Дата: 11.01.11 11:16
Оценка:
Здравствуйте, Ops, Вы писали:

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


MZ>>On 10.01.2011 14:02, LaptevVV wrote:


>>> I>Интересно, какие языки могли бы войти в эту пару-тройку более простых чем C

>>> языков в 2011 году?
>>> Более просты, наверное, нет. А вот простые и более надежные — есть. Компонентный
>>> паскаль — Оберон. Там невозможно совершить подобных ошибок по по определению.

MZ>>На самом деле я-то знаю более простые языки, на которых нужно учиться

MZ>>программировать. Но только ПОСЛЕ них уже на С программировать не захочется.
MZ>>Так что вопрос о первом языке очень интересен (мне).

Ops>А можно озвучить "более простые языки, на которых нужно учиться программировать"? Желательно, настолько же близкие к низкому уровню.


А зачем низкий уровень?

Как-то нормально прошло обучение Архитектура/Паскаль -> С -> Asm/С++ -> microAsm.

ИМХО, проще микро ассемблера вообще ничего нет и ниже тоже мало кто существует.
Re[5]: С - зло... :)
От: blackhearted Украина  
Дата: 11.01.11 11:25
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:


LVV>Дело в том, что данный оператор присваивания был написан начинающим в учебной программе. И он спрашивал на Винграде, почему среднее арифметическое не вычисляется. То есть, ЭТО ПРОСТО ОПИСКА. Чел правильно разобрался в алгоритме, правильно написал всю функцию, то есть ПРАВИЛЬНО РАЗОБРАЛСЯ с бизнес-логикой вычисления среднего арифметического последовательности чисел. И сделал ДУРАЦКУЮ ОПИСКУ. Естественно, поиски ошибки в логике программы ничего не дали.

LVV>Поэтому для начинающих язык С — зло! Причем в сочетании с со студией — зло практически АБСОЛЮТНОЕ!

Студия даже ворнинг не показала? Не верю.
А если у вас ребята учатся писать на уровне ниже /W4 игонорируя вывод компилятора — то флаг им в руки.


bool counter = false;
if (counter =! 0)
{
}


warning C4706: assignment within conditional expression

Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.