Re[2]: Почему у Nemerle нет будущего
От: Gaperton http://gaperton.livejournal.com
Дата: 08.08.06 12:34
Оценка: 9 (3) +1 -1
Здравствуйте, Klapaucius, Вы писали:

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


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

L>>3) Ошибочная посылка: язык программирования служит общения к компьютером. При современном развитии вычислительных сред, язык программирования служит прежде всего для накопления знаний и общения между разработчиками.


K>В словах "общения к компьютером" мне видится что-то мистическое. Извините, но мистика это не мой профиль.


Э-э батенька, должно быть стыдно цепляться к словам и делать вид, что мы ничего не понимаем. Автор, очевидно, имеет в виду идеи, стоящие за literate programming, противопоставляя их пионерскому подходу "настоящих программистов", которые пишут "настоящий код не для всех". Знакомый типаж?

Да вот посмотрите, что тут один дядька пишет на эту тему...

I believe that the time is ripe for significantly better documentation of programs, and that we can best achieve this by considering programs to be works of literature. Hence, my title: "Literate Programming."

Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.

The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. Such an author, with thesaurus in hand, chooses the names of variables carefully and explains what each variable means. He or she strives for a program that is comprehensible because its concepts have been introduced in an order that is best for human understanding, using a mixture of formal and informal methods that reinforce each other.

Donald Knuth. "Literate Programming (1984)" in Literate Programming. CSLI, 1992, pg. 99.


Так вот, автор выразил мнение, что массированое применение макросов и неконтроллируемые эксперименты над синтаксисом ухудшат свойства "литературности" программ, сделают их сложнее для понимания другим человеком, даже если он мега-гуру. Современные программные комплексы состоят из миллионов строк кода, такой объем один человек написать и осмыслить в одиночку не может принципиально. Так что чужой и незнакомый код — это реальность, с которой сталкивается каждый программист в компании, разрабатывающей промышленное ПО. Основной критерий, применяемый к коду таких систем — это maintainability (легкость сопровождения), потому как код такого объема выкинуть нельзя, это долговременная инвестиция компании. Плюс, надо отдавать себе отчет, что авторы системы из компании могут уйти, или будут заняты другой работой, и поддерживать код будут другие люди, не те, кто писали.

Первое правило, которое вводится для обеспечения maintainability — это внутренний стандарт кодирования, который, кроме оформления кода, часто накладывает ограничения на применение свойств испольуемых языков, даже таких "гражданских", как С++. Ну и разумеется, макросы, как средство, наиболее опасное для maintainability, должно находится под строгим контролем, и применяться очень ограничено.

Это правда жизни, дорогой коллега. Невыполнение этих правил загонит компанию в гроб. Не слыхали, что пришлось сделать yahoo, когда из него ушла банда Грэхема? Они вынуждены были переписать движок магазинов, сделанный на LISP, а в нем было 30% метакода... Вот так-то...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.