![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
||
|
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Ну, короче, сразу в холиварах!
![]() Утекло отсюда. Конкретно тут, отвечающих "Да", ласково проименовали дятлами. ![]() P.S. Сам - дятел. ![]() Это сообщение отредактировал(а) kemiisto - 8.6.2009, 17:23 -------------------- |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
А что такое сишные языки?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Ну я хотел было написать C-style based syntax languages. Но чёт сложно больно. Короче, языки, унаследовавшие синтаксические "нюансы" C. Добавлено @ 15:54
Так, ну эт был наш безошибочный NightmareZ. ![]() Это сообщение отредактировал(а) kemiisto - 8.6.2009, 15:58 -------------------- |
|||
|
||||
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: -1 Всего: 13 |
Давайте, например, вместо "+" писать "plus". А то какой-нить бедный несчастный ребёнок ошибётся.
Сделаем UberPascal:
-------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
NightmareZ, я тоже тебя минусую!
![]() -------------------- |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Было. Пару раз. Но это никак не повод менять что-то в синтаксисе.
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 2 Всего: 162 |
||||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
бывало....
|
|||
|
||||
mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Было, куда без этого. Теперь в случае выдачи ненормальных результатов прогой первым делом проверяю ифы, ибо потом забудешь и убьешь бешеное количество времени на поиск ошибок. Хотя отладка спасает все же в таких случаях всегда)
|
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Добавлено через 1 минуту и 6 секунд ну так об этом речь и не идёт... -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
Vasay |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 2 Всего: 73 |
А аналог такого кода скомпилит:
Java этот код скомпилит, но если a и b будут чем угодно, кроме boolean, то не скомпилит, так как if требует, что бы результирующее выражение в скобках было boolean. п.с. по САБЖу - бывало ![]() -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
||||
|
|||||
Void |
|
||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
На мой взгляд, проблема не столько в выборе символов для операторов присваивания и сравнения, сколько в том, что в Си assignment statement является expression (пишу по-английски, чтобы не было вопросов, под «оператором» подразумевается operator или statement).
Ради сомнительной возможности писать цепочки присваиваний вида
(чего, кстати, в Python добились, не превращая присваивание в выражение) и экономить одну строчку на условиях или циклах вида
ввели новый класс ошибок. Хотя опасность проблемы часто преувеличивают. Багов, связанных с указателями и управлением памятью, намного больше. Это сообщение отредактировал(а) Void - 8.6.2009, 20:22 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
![]()
Это сообщение отредактировал(а) kemiisto - 8.6.2009, 21:08 -------------------- |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
В принципе, это стандартное свойство C-подобных языков - компактность исходника превыше всего, в том числе читаемости и "ошибкоемкости". К сожалению, начинающие программисты обычно это любят, а понимание сложностей разработки и поддержки кода на таком языке приходит (если вообще приходит) намного позже, отсюда и популярность этих языков.
|
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 2 Всего: 181 |
Бывало. Но с нормальными компиляторами такие баги живут обычно до первой компиляции.
-------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
Severyanin |
|
|||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: нет Всего: 9 |
у меня жили дольше. долго ловил поначалу)))
-------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
меня в "школе" учили:
-------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: нет Всего: 44 |
nickless, угу. внимательно стоит читать предупреждения компилятора. Хотя я ответила "Да" но для меня это не становилось проблемой.
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Абсолютно не поддерживаю такой подход ![]() |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Было пару раз. Но ничего криминального при этом не происходило, т.к. такого рода ошибки я почему то быстро отлавливаю.
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 0 Всего: 88 |
Не было никогда. Не пишу на сабжевых языках.
-------------------- Обижено школьников: 8 |
|||
|
||||
zloyGamer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 24.2.2008 Где: аватар какает Репутация: нет Всего: нет |
было несколько раз.., и всегда почемуто их долго искал..
обычно после всяких фокспро и бэйсиков на которых иногда (против своей воли ![]() интересно.. пользовался ли кто нить из живых людей вижуал или просто бэйсиком в мс офисе? оч. советую - ощющение просто непередаваемое, когда после каждой незакрытой скобки появляется ненавящивое диалоговое окно, мол "незабудьте закрыть скобку", и это в момент когда я хочу скопирывать туда из другого места какоето выражение.., пока незакроешь это окно ничего у тебя невыйдет !! но эт так крик души ![]() ![]() Это сообщение отредактировал(а) zloyGamer - 13.6.2009, 17:20 |
|||
|
||||
Прибой94 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.5.2009 Где: Зеленоград. Репутация: нет Всего: нет |
было 2 раза.
Любитель ![]() |
|||
|
||||
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: нет Всего: 10 |
Раньше бывало, сейчас уже отучил себя вроде. Наоборот, случалось в MySql писать ==
![]() |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
ок. ткни мной в альтернативу, пожалста. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Альтернатива - писать обычные сравнения. Мест, где можно ошибиться всегда полно (x с y перепутать там..) - это не повод изменять синтаксис. Лично я, когда встречаю код с "обратным" сравнением - всегда мысленно ругаюсь.. Уж не знаю почему - всопринимается/читается такой код хуже.. Конечно, дело вкуса, но, думаю многие со мной согласятся.
|
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
понятно. на полном серьёзе хотел увидеть какое-то объективное преимущество. но если единственное что приходит на ум это "дело вкуса", то я остаюсь со своими тараканами ![]() -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Для меня (!) преимущество в том, что подобный код (сравнения с константой слева, макросы и пр.) я буду читать дольше. "Одним взглядом" оценить точно не смогу..
|
|||
|
||||
source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Неудивительно, подобные выверты нарушают семантику кода. Само утверждение "если константа равна чему-то" абсурдно, константа равна только сама себе, на то она и константа и никаких "если" быть по определению не может. Что касается макросов аля IS_SHAPE_EQUAL, то они затрудняют чтение кода а их названия являются мусором с семантической точки зрения. Да, часто имеет смысл в if вызывать функцию, но название этой функция должно показывать смысл условного выражения, простейший пример: is_odd(x) вместо тупого IS_INTEGER_EQUAL(x%2, 1) или ужасного 1==x%2. Так что рекомендации:
срочно в топку!!! А всех, кто безжалостно по отношению к коллегам применял данные рекомендации, лишить премии за антигуманное поведение! ![]() -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
kemiisto |
|
||||||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Вечер добрый!
Долго ли, коротко ли, дошли у меня руки до книжки по ++. Купил по совету людей добрых Х. М. Дейтел, П. Дж. Дейтел Как программировать на C++, 5-е издание. Объём книги 1500 страниц. Ну а что? "Шок - это по-нашему!" Так вот, там есть целый раздел: 5.9. Случайная подмена операции равенства (==) присваиванием (=). Начинается раздел какбэ с обращения к NightmareZ'у:
![]() ![]() Ну там дальше тыры-пыры, про особенности С++, которые ухудшают положение дел, ... А дальше совет по предотвращению ошибки:
И так большая часть книжки - сначала авторы расскажут про очередную приплюснутую чушь, потом гениальный совет (обычно из серии "Семь бед - один ответ", типа прислушивайтесь к сообщению компилятора, будьте внимательны, ...) ![]() Но! Это ещё не всё комрады. Во введении авторы жгут по полной:
Теперь, усядьтесь-ка поудобнее, вспомните Михал Николаича Задорнова... Вспомнили? Наберите воздуха в грудь... Уф... Эпиграф к предисловию книги:
Я плачу... ![]() -------------------- |
||||||||
|
|||||||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Было конечно, но сразу же находилось.
А вот в питоне этого нету, и я аж от злости поносом изошелся, когда искал варианты, как это можно похакать. Не нашел =\ |
|||
|
||||
Fin |
|
||||
![]() Дракон->Спать(); ![]() ![]() Профиль Группа: Участник Сообщений: 687 Регистрация: 4.1.2006 Репутация: нет Всего: 10 |
Не помню у кого. Но в статье была рекомендация. Заместо
Писать
Тогда уже на стадии компиляции будут отлавливаться такие ошибки. Хотя я каюсь ![]() -------------------- Пролетал мимо. |
||||
|
|||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
писал, и довольно часто
и отлавливалось это иногда довольно сложно согласен, что надо писать if(CONST==var) потому что от этого повышается ошибкоустойчивость кода то что оно "плохо читается" - это субъективный аргумент. аргумент из разряда "код С++ неудобно читать". кому то и классы плохо читаются. а вот то что вероятность появления такой ошибки значительно уменьшается - это объективный факт. |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |