Избегайте смешения языковых подробностей - PullRequest
2 голосов
/ 22 октября 2008

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

Это стоит немного времени и является перерывом в попытках «быстрых» экспериментов (хотя, возможно, практика полезна для памяти.) Какие у вас есть подсказки для того, чтобы сохранить в уме синтаксис (и другие) детали нескольких языков?

(И в наши дни это относится и ко многим вики-подобным наценкам!)

Ответы [ 4 ]

2 голосов
/ 22 октября 2008

Для меня самая сложная часть - это не синтаксис - обычно вы переходите в режим, когда смотрите на код, над которым работаете. Действительно сложная часть - запоминание библиотеки языка, чтобы вы не изобретали колесо снова и снова. Теперь, если бы только люди организовали свои файлы справки, чтобы было легко искать определенные вещи в библиотеке.

1 голос
/ 22 октября 2008

IDE, которые могут рисовать красные и желтые загогулины, могут помочь, пока вы не развите эту умственную мышечную память.

Одна из неприятных вещей с XCode (для Cocoa / ObjectiveC) заключается в том, что вы не получите этих закорючек, пока не скомпилируете. (В отличие от Eclipse / Java, где вы получаете живые загогулины).

1 голос
/ 22 октября 2008

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

0 голосов
/ 22 октября 2008

Действительно, на SO я посоветовал не забывать избегать if (a = b) в Java, и кто-то напомнил мне, что это допустимо, только если a и b логические! Конечно, совет хорош для C, C ++, JavaScript и ряда других C-подобных языков.

Аналогично, я только недавно понял, что var v в JavaScript имеет только область действия на уровне функций, а не область действия скобок.

Каким-то образом, это ловушка из-за схожих синтаксисов, но разного поведения.

Что касается анекдота, некоторые люди из списка рассылки Lua жалуются, что этот язык не является C-подобным, с краткими и знакомыми фигурными скобками, + = и ++, побитовыми операторами. Они говорят, что это вредит принятию языка, потому что люди больше знакомы с синтаксисом, подобным С.

Это бессмысленно, Basic широко использовался (и до сих пор используется) с подробным синтаксисом. Как и Паскаль (Delphià. И многие люди находят синтаксис Lua читабельным и легким для изучения, что хорошо для тех, кто не знаком с программированием (например, специалисты по игровому искусственному интеллекту).

Более того, в частности, Lua предназначен для интеграции в программы на C / C ++ и расширения функциями C [++]. И люди говорят, что совершенно другой синтаксис помогает в изменении мышления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...