К вопросу о синтаксисе
От: Mamut Швеция http://dmitriid.com
Дата: 22.11.05 11:48
Оценка: 126 (12) +6 :)
Найдено здесь

Now, the same people who criticize the Lisp syntax accept without objection the syntax of the C programming language and similar or worse syntaxes such as those of C++, Java, Perl, etc. These syntaxes are presented as something one just has to learn and get used to, to be part of the elite of real programmers. Any criticism of these syntaxes gets the condescending reply to "get over it" and to accept the possibly admitted quirks the relevance of which is dismissed. Double standard? Certainly. The reproach concerning the syntax of Lisp is usually made by people who have seen it but never tried to use Lisp for anything meaningful. Those who have actually tried Lisp never criticize its syntax; if they try hard enough, they will soon have many valid reproaches to make to Lisp, but these reproaches all concern its semantics.

In the end, when people attack the syntax of Lisp, it is most usually but a rationalization without any technical merit regarding the syntax itself. This rationalization serves to cover up a defense mechanism against a foreign culture. It's a protective reflex against the cost of having to actually learn something new and different.


В цитате вверху заменяем Lisp на С++, Java, Perl, Python, Ruby (и даже Oberon! ) и смысл ее все равно не изменится. Имхо, синтаксис того или иного языка может повлиять только на выбор "а чтобы мне такое изучить" начинающего программиста. Дальше этим языком просто пользуешься, используя все возможности на полную катушку (или не полную — зависит от того, что именно тебе от этого языка надо и от твоих способностей).

Здесь, кстати, как ни странно, прослеживается прямая аналогия с "натуральными" языками. Для многих из нас первым иностранным языком стал английский/французский/немецкий. Да хотя бы и не иностранный, а просто русский в школе. Помните, как плевались на "синтаксис" и все эти мудреные правила? Зато при постоянном использовании вся эта кривая грамматика и семантика и синтаксис и прочая ерунда используется — и ничего. Если надо, и послать можем туда, куда Макар телят не гонял (скажем, шаблоны в С++), а можем и нежно напевать колыбельную ребенку (эээ, делегаты в C#? ). И все это у нас там внутри и, при желании, друг другу не мешает (ага, те самые модули в Обероне )

Зато при попытке выучить очень далекий от германской и романской групп язык (как в моем случае — турецкий), вызывает дикие ломки в организме. Те самые судороги по поводу "синтаксических оверхедов" и "ненужных конструкций" (ага, типа "а зачем нам исключения?") Зато, когда его наконец-то выучишь, понимаешь, что не синтаксис — проблема этого языка, а, например, бедный словарный запас. И начинаешь пользовать этот язык, не отвлекаясь на абстрактные вопросы, типа "зачем во фразе te-am vazut pe tine (рум. я тебя увидел, дословно — 'тебя я увидел тебя') такой синтаксический оверхед " Да потому что так надо Потому что язык так работает. И, раз поняв, как работает тот или иной язык, вопросы о написании такого языка отпадают автоматом.

Язык (любой) — это, имхо, всего лишь средство, "тулза" со своими "инструкциями пользователя" и использовать их надо по назначению. А если несколько средств применимы в той или иной ситуации, то выбирать надо наиболее подходящую. Так как серебрянной отвертки, как и пули, как и ложки, не бывает. Конечно, можно попытаться вкрутить гвоздь, но молоток в этом случае подойдет лучше. Хороший мастер — этот не тот, кто может топором настругать идеальную заготовку из титанового сплава, а тот, кто возьмет станок, прокатный стан и проч. и проч.

ИМХО.
... << RSDN@Home 1.2.0 alpha rev. 619>>


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