Что вы наиболее противоречивое мнение программирования?

__ cplusplus

В C ++ 0x макрос __cplusplus будет установлен в значение, которое отличается от (больше) текущего 199711L.

blockquote>

C ++ 0x FAQ by BS

363
задан 6 revs, 4 users 61% 23 May 2017 в 12:10
поделиться

407 ответов

«Жемчуг программирования» Джона Бентли больше не является полезным томом.

http://tinyurl.com/nom56r

1
ответ дан Jim G. 23 May 2017 в 12:10
поделиться

Мнение: большая часть кода там дерьмовая, потому что именно этого хотят программисты.

Косвенно, мы взращивали культуру чрезвычайного творчества. Дело не в том, что я не думаю, что решение проблем имеет творческие элементы - оно есть - просто это даже отдаленно не то же самое, что рисование (см. Знаменитое эссе Пола Грэма «Хакеры и художники»).

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

Запутанные, сложные, уродливые вещи, которые становятся все хуже и нестабильнее. Если бы мы строили что-то физическое, все на планете говорили бы нам о том, насколько ужасно уродливы и испорчены эти вещи, но, поскольку они более или менее скрыты, будучи виртуальными, мы можем сойти с рук с некоторыми из худших производственных процессов. что наш вид когда-либо увидит. (Можете ли вы представить себе автомобиль, в котором четыре разных человека сконструировали четыре разных колеса четырьмя различными способами?)

Но грустная часть, противоречивая часть всего этого, состоит в том, что нет абсолютно НИКАКОЙ причины для этого будь таким образом, за исключением исторической культуры культура была направлена ​​на большую свободу и меньшую организацию, поэтому мы остались такими (и, вероятно, стали намного хуже). Разработка программного обеспечения - это шутка, но это шутка, потому что программисты хотят, чтобы это было (но никогда бы через миллион лет не признали, что это правда, «заговор со стороны руководства» - лучшая причина для большинства людей).

Как долго мы будем продолжать стрелять себе в ногу, прежде чем мы проснемся и поймем, что мы единственные, кто держит пистолет, направляет его и также нажимает на курок?

Пол.

4
ответ дан 2 revs 23 May 2017 в 12:10
поделиться

Проворный отстой.

1
ответ дан tsilb 23 May 2017 в 12:10
поделиться

«XML и HTML являются« языком ассемблера »в сети. Зачем его взламывать?

Кажется довольно очевидным, что в наши дни очень немногие разработчики изучают / пишут код на языке ассемблера по причине его примитивности и уводит вас далеко от проблемы, которую вы должны решить на высоком уровне, поэтому мы изобрели языки высокого уровня, чтобы инкапсулировать эти объекты уровня, чтобы повысить нашу производительность через языковые элементы, с которыми мы можем иметь дело больше на более высоком уровне. делайте больше с компьютером, а не только с его материнской платой или процессором.

Мне кажется, что в Интернете разработчики все еще читают / пишут и взламывают HTML, CSS, XMl, схемы и т. д.

Я рассматриваю их как эквивалент «языка ассемблера» Интернета или его субстратов. Должны ли мы с этим покончить? Конечно, нам иногда нужно взламывать его, когда что-то идет не так. Но, конечно, это исключение. Я утверждаю, что мы заменяем язык ассемблера более низкого уровня на машинном уровне его эквивалентом на веб-уровне.

1
ответ дан user209182 23 May 2017 в 12:10
поделиться

Когда на сцене появляется много новых технологий, я узнаю о них достаточно, чтобы решить, нужны ли они мне прямо сейчас.

Если нет, я откладываю их в сторону до тех пор, пока «ранние последователи» не выбивают неровные края, а затем проверяю снова каждые несколько месяцев / лет.

1
ответ дан Ash 23 May 2017 в 12:10
поделиться

Не беспокойтесь о том, какой язык выучить, используйте такие тяжеловесы, как c # или python. Такие языки, как Ruby, забавны в спальне, но не стоит приседать в сценариях на рабочем месте. Такие языки, как c # и Java, могут обрабатывать небольшие и очень большие программные проекты. Если кто-то говорит иначе, тогда вы говорите о языке сценариев. Период!

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

Вы не можете публиковать сообщения на форуме и ожидать ответа, пока ваш начальник спрашивает вас, как проходит кодирование. Что ты скажешь? «Я жду, чтобы кто-нибудь помог мне на этом форуме»

Выучи один язык и выучи его хорошо. Изучение нескольких языков может повлечь за собой навыки и практики, но вы все будете в порядке даже на всех из них. Будь хорош в одном. Есть целые книги, посвященные Threading в Java, которые, если подумать, представляют собой только одно пространство имен из более чем 100.

Совершенствуйся или будь в порядке.

0
ответ дан Vince Panuccio 23 May 2017 в 12:10
поделиться

Спор с самим собой, потому что некоторые вещи лучше оставить недосказанными, чтобы другие не рисовали вас как слишком эгоистично . Тем не менее, вот оно:

Если это так, то начинается со мной

0
ответ дан Hao 23 May 2017 в 12:10
поделиться

Если это не нативное, то это не совсем программирование

По определению, программа - это объект, управляемый компьютером. Он говорит напрямую с процессором и ОС. Код, который не взаимодействует напрямую с процессором и ОС, но вместо этого запускается какой-либо другой программой, которая напрямую взаимодействует с процессором и ОС, не является программой; это сценарий.

Это было просто здравым смыслом, совершенно не спорным, еще до появления Java. Внезапно появился язык сценариев с достаточно большим набором функций для выполнения задач, которые ранее были исключительно областью программ. В ответ Microsoft разработала платформу .NET и некоторые языки сценариев для работы на ней, и ей удалось еще больше затопить воды, медленно уменьшая поддержку истинного программирования среди их инструментов разработки в пользу сценариев .NET.

Несмотря на то, что он может выполнить множество задач, для которых ранее вам приходилось писать программы, управляемый код любого вида все еще остается скриптом, а не программированием, а «программы», написанные в нем, делают и всегда будут иметь общие характеристики производительности скриптов. они работают медленнее и используют гораздо больше оперативной памяти, чем реальная (нативная) программа, чтобы выполнить ту же задачу.

Люди, называющие это программированием, оказывают всем медвежью услугу, затупляя определение. Это приводит к снижению качества по всем направлениям. Если вы попытаетесь сделать программирование настолько простым, что любой идиот сможет это сделать, то в итоге вы получите множество идиотов, которые думают, что могут программировать.

-10
ответ дан Mason Wheeler 23 May 2017 в 12:10
поделиться

Python делает все, что делают другие языки программирования, за половину времени разработки ... и Google тоже! Если вы не согласны, проверьте Лягушку в порожнем состоянии .

Подождите, это факт. Это все еще квалифицируется как ответ на этот вопрос?

1
ответ дан orokusaki 23 May 2017 в 12:10
поделиться

C ++ - язык будущего убийцы ...

... динамических языков.

никто не владеет им, имеет растущий набор функций, таких как программирование во время компиляции (мета) или вывод типов, обратные вызовы без накладных расходов на вызовы функций, не реализует единый подход (мультипарадигма). Регулярные выражения POSIX и ECMAScript . несколько возвращаемых значений . Вы можете иметь именованных аргументов . и т. д.

В программировании все происходит очень медленно. JavaScript потребовалось 10 лет, чтобы оторваться от земли (в основном из-за производительности), и большинство людей, которые в нем программируют, все еще не получают его (классы в JS? c'mon!). Я бы сказал, что C ++ действительно начнет светить через 15-20 лет. мне кажется, что для C ++ (как языка, так и для поставщиков компиляторов) достаточно времени и критической массы программистов, которые сегодня пишут на динамических языках, чтобы сходиться.

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

1
ответ дан just somebody 23 May 2017 в 12:10
поделиться

Мое противоречивое мнение заключается в том, что конструкция «Пока» должна быть удалена из всех языков программирования.

Вы можете легко реплицировать, используя «Repeat» и логический флаг, и я просто не верю, что полезно иметь две структуры. На самом деле, я думаю, что наличие на языке «Repeat ... To» и «While..EndWhile» вводит в заблуждение новых программистов.

Обновление - дополнительные примечания

Одна распространенная ошибка, которую допускают новые программисты, в то время как они предполагают, что код сломается, как только проверенное условие отметит ложное. Итак, если тест While помечает значение false в середине кода, они предполагают выход из цикла While. Эта ошибка не повторяется с Repeat.

На самом деле меня не беспокоит, какой из двух типов циклов сохраняется, пока существует только один тип цикла. Еще одна причина, по которой я выбрал «Повторить» поверх «Пока», заключается в том, что функциональность «Пока» имеет больше смысла при написании с использованием «повтора», чем наоборот.

Второе обновление: Я предполагаю, что тот факт, что я единственный человек, бегущий сейчас с отрицательным счетом, означает, что это на самом деле противоречивое мнение. (В отличие от вас. Ха!)

-8
ответ дан 2 revs 23 May 2017 в 12:10
поделиться

Ассоциативные массивы / Хеш-карты / Хеш-таблицы (+ как бы они ни назывались на вашем любимом языке) - лучшая вещь из нарезанного хлеба!

Конечно, они обеспечивают быстрый поиск от ключа к значение. Но они также позволяют легко создавать структурированные данные на лету. В скриптовых языках это часто единственный (или, по крайней мере, наиболее используемый) способ представления структурированных данных.

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

И даже в C ++ std :: map и std :: tr1 :: unordered_map помогли мне быстрее написать код.

1
ответ дан Frunsi 23 May 2017 в 12:10
поделиться

Программное обеспечение отстой из-за отсутствия разнообразия. Не в обиду ни одной расе, но все работает хорошо, когда профессия состоит из разных рас и обоих полов. Просто посмотрите на чрезмерное использование невозобновляемой энергии. Все идет хорошо, потому что каждый вносит свой вклад, а не просто «стереотипный парень»

-4
ответ дан 23 May 2017 в 12:10
поделиться

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

-4
ответ дан Eric Mills 23 May 2017 в 12:10
поделиться

Настоящий программист любит open-source как родственную душу и любит Microsoft как грязную, но удовлетворяющую проститутку

-2
ответ дан Andrew not the Saint 23 May 2017 в 12:10
поделиться

«Код хороших кодеров и его повторное использование хорошими кодерами» Это происходит прямо сейчас, но «Хороший кодер» - единственный ОДИН , которому нравится этот код. и «Великие Кодеры» предназначены только для того, чтобы обнаружить ошибку в этом, потому что у них нет времени, чтобы думать и кодировать. Но у них есть время найти ошибку в этом коде.

, поэтому не критикуйте !!!!!!!!

Создайте свой собственный код так, как ВЫ хотите.

-2
ответ дан Access Denied 23 May 2017 в 12:10
поделиться

Копирование / вставка не является антипаттерном, это помогает избежать ошибок

Мое эмпирическое правило - печатать только то, что нельзя скопировать / вставить. При создании аналогичного метода, класса или файла - скопируйте существующий и измените то, что нужно. (Я не говорю о дублировании кода, который должен был быть помещен в один метод).

Я обычно даже не печатаю имена переменных - либо копирую их, либо использую автозаполнение IDE. Если нужен какой-то метод DAO - скопируйте аналогичный и измените то, что нужно (даже если будет изменено 90%). Для некоторых это может показаться чрезмерной ленью или отсутствием знаний, но мне почти никогда не приходится иметь дело с проблемами, вызвавшими неправильное написание чего-то тривиального, и их обычно трудно поймать (если не обнаруживаются на уровне компиляции).

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

-1
ответ дан serg 23 May 2017 в 12:10
поделиться

ИСПОЛЬЗОВАНИЕ шаблонов проектирования и документации

в веб-разработке, что использование этих вещей никогда не чувствовал никакого использования

0
ответ дан Raj 23 May 2017 в 12:10
поделиться

Что WordPress является CMS (технически, следовательно, действительно).

https://stackoverflow.com/questions/105648/wordpress-is-it-a-cms

-1
ответ дан 3 revs, 2 users 50% 23 May 2017 в 12:10
поделиться

Человеческий мозг - главный ключ ко всем замкам.

В этом мире нет ничего, что могло бы ускорить ваш мозг. Поверьте мне, это не философский, а практический. Что касается мнений, то они соответствуют


1) Никогда не выходите за пределы, указанные в языке программирования. Простым примером будут указатели на C и C ++. Не используйте их не по назначению, так как вы можете получить DAMN SEGMENTATION FAULT.

2) Всегда следуйте стандартам кодирования, да, то, что вы читаете, правильно, стандарты кодирования имеют большое значение для вашей программы, После того, как вся ваша программа написана для выполнения машиной, но для понимания каким-то другим мозгом :)

0
ответ дан Sachin Chourasiya 23 May 2017 в 12:10
поделиться

Библиотека C ++ STL настолько универсальна, что ни для кого не является оптимальной.

0
ответ дан dicroce 23 May 2017 в 12:10
поделиться

C должен умереть.

Добровольное программирование на C, когда доступен другой язык (скажем, D), должно наказываться за пренебрежение.

0
ответ дан reinierpost 23 May 2017 в 12:10
поделиться

Вы должны знать C, чтобы иметь возможность называть себя программистом!

0
ответ дан navigator 23 May 2017 в 12:10
поделиться

Очевидно, мое мнение состоит в том, что Haskell имеет переменные . Это и «тривиально» (по крайней мере, по мнению восьми пользователей SO) (хотя никто не может прийти к единому мнению о том, какой тривиальный ответ является правильным), и плохой вопрос, который нужно даже задать (по крайней мере, пять downvoters и четыре, кто проголосовал за закрытие Это). О, и я (и вычислительные ученые, и математики) ошибаюсь, хотя никто не может дать мне подробное объяснение, почему.

0
ответ дан 2 revs 23 May 2017 в 12:10
поделиться

Конфигурации логгера - пустая трата времени. Зачем их, если это означает изучение нового синтаксиса, особенно тот, который молча терпит неудачу? Не поймите меня неправильно, я люблю хорошие лесозаготовки. Я люблю наследование логгеров и добавление форматеров в обработчики в логгеры. Но зачем делать это в конфигурационном файле?

Вы хотите внести изменения в код регистрации без перекомпиляции? Зачем? Если вы поместите свой код регистрации в отдельный класс, файл, что бы это ни значило?

Хотите ли вы распространять настраиваемый журнал с вашим продуктом среди клиентов? Разве это не дает слишком много информации в любом случае?

Самое разочаровывающее в этом то, что популярные утилиты, написанные на популярном языке, как правило, пишут хорошие API в формате, который определяет язык. Напишите утилиту ведения журнала Java, и я знаю, что вы сгенерировали javadocs, по которым я знаю, как ориентироваться. Напишите специфичный для домена язык для вашей конфигурации логгера и что у нас есть? Может быть, есть документация, но где, черт возьми, это? Вы сами решаете, как это организовать, и я просто не заинтересован в том, чтобы следовать вашей точке зрения.

0
ответ дан David Berger 23 May 2017 в 12:10
поделиться

«Не вызывать виртуальные методы из конструкторов». Это только иногда PITA, но только потому, что в C # я не могу решить, в какой точке конструктора вызывать конструктор моего базового класса. Почему бы и нет? Инфраструктура .NET позволяет это, так что есть веская причина для C #, чтобы не позволять это?

Черт!

0
ответ дан Peter Morris 23 May 2017 в 12:10
поделиться

Цитируя покойного Э. У. Дийсктра:

Программирование - одна из самых сложных областей прикладной математики; бедным математикам лучше оставаться чистыми математиками.

Информатика не больше о компьютерах, чем астрономия о телескопах.

Я не понимаю, как можно претендовать на звание хорошего программиста, не имея возможности решать довольно простые математические задачи, такие как , эта . Обезьяна CRUD - возможно, но не программист.

-1
ответ дан 2 revs 23 May 2017 в 12:10
поделиться

Goto ОК! (что достаточно спорно)
Иногда ... так что дайте нам выбор! Например, BASH не имеет goto. Может быть, есть какая-то внутренняя причина для этого, но все же.
Кроме того, goto является строительным блоком языка ассемблера. Нет, если заявления для вас! :)

5
ответ дан 2 revs 23 May 2017 в 12:10
поделиться

Не используйте ключевые слова для базовых типов, если в языке представлен фактический тип. В C # это будет относиться к bool (Boolean), int (Int32), float (Single), long (Int64). «int», «bool» и т. д. не являются фактическими частями языка, а скорее являются «ярлыками» или «псевдонимами» для фактического типа. Не используйте то, чего не существует! И, на мой взгляд, Int16, Int32, Int64, Boolean и т. Д. Имеют гораздо больше смысла, чем «short», «long», «int».

1
ответ дан David Anderson 23 May 2017 в 12:10
поделиться

Я считаю, что «Давайте перепишем прошлое и попытаемся исправить эту ошибку, притворяясь, что ничего не работало» является ценной отладочной мантрой в безвыходных ситуациях:

https://stackoverflow.com/questions / 978904 / сделайте вас потребительной-Оруэлл пришедшего переписывания-отладка-филосовскую закрыта

1
ответ дан 2 revs 23 May 2017 в 12:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: