Здравствуйте, konsoletyper, Вы писали:
AVC>>Интересно, как в Си "на первых порах обойтись без указателей", если в Си нет передачи параметров по ссылке, а есть только передача по значению? AVC>>Волей-неволей придется использовать указатели.
K>А зачем возвращать указатели? Неужели нельзя вернуть структуру? Вообще, меня бесит практика навешивать кучу формальных параметров на методы/функции. Причём, что особенно не перевариваю, так это когда множетвенные значения возвращают в структуре, указатель на которую передаётся в метод.
Конечно, функция может вернуть и структуру.
Но, во-первых, больше одной структуры не вернешь.
А, во-вторых, не слишком уместно использовать стркутуры там, где достаточно простых переменных.
Возьмем хотя бы scanf, что-то вроде
scanf("%d %s", &n, s);
Ну и зачем здесь возвращать структуру?
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, konsoletyper, Вы писали:
K>А как насчёт Smalltalk? Как на нём будет писать сишный программист?
Ведь писали же (и пишут) программисты на Objective C.
А это ничто иное, как смесь Си и Смоллтока.
(Правда, скажу честно, сам бы я не стал писать на такой смеси. Но это уже вкусовщина. )
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, zheleza, Вы писали:
Z>А когда попрограммит немного и поймёт, что разницы и нет по сути между begin и {, тогда освоить подобные языки будет значительно проще и быстрее, ежели понадобится.
Между begin и { и правда нет принипиальной разницы.
А вот между си-подобными и паскале-подобными разница есть, и существенная.
Жаль, что в свете "курсов для начинающих" эта разница малозаметна.
По сути, а не по внешности, си-подобные языки потихоньку сдают свои позиции паскале-подобным.
Можно обратить внимание на то, что адресная арифметика не приветствуется в современных языках, несмотря на то, что внешне они "так похожи" на Си.
Z>Ну и наверное в свете все большего развития ООП имеет смысл начинать сразу с него, а не с процедурных языков. Думаю, изучить переход ООП-процедуры легче, чем процедуры-ООП, а многие, переходя на объектно-ориентированный язык, всё равно продолжительное время пользуются знаниями, полученными при процедурном программировании. К несчастью, многие вузовские программы безнадёжно устарели, а процесс их замены долог и мучителен
Это мысль спорна.
Классы нужны далеко не всегда, зачастую предпочтительнее обычные процедуры.
Да и разница между процедурным и объектно-ориентированным подходом примерно соответствует разнице между первым и вторым этажом. Принципиальной разницы нет.
Вот между процедурным и функциональным подходами разница принципиальная.
Если же следовать веяниям времени, то пора ориентироваться уже не на ООП как таковое, а на КОП.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, Андрей Хропов, Вы писали:
ГВ>>Да, согласен. Нужен. В обязательном порядке. Если ты этого не понимаешь — это не моя проблема. АХ>Ну наверное Кнут — это крутовато.
Трудно сказать, насколько это "крутовато". ИМХО, для того, чобы читать Кнута нужна всего-то базовая матподготовка и понимание совсем элементарных вещей: что такое компьютер и что такое алгоритм.
АХ>Объем все-таки большой и слишком много деталей, это скорее энциклопедия — справочник.
А как им пользоваться, если не понимаешь, что там написано и как его применить? Кнут, в частности, тем и хорош, что даёт "отвязное" от реалий воплощение алгоритмов. В отличие, кстати, от того же Вирта.
АХ>Но вот Ахо, Хопкрофт, Ульман или Седжвик или Кормен, Лейзерстон, Ривест — то, что надо ИМХО.
По первой троице, однозначно, это нужно изучать позже — после приобретения "алгоритмического фундамента". Седжвик, откровенно говоря, вызывает сомнения в полезности для начинающего (если речь идёт о "фундаментальных алгоритмах..."), ИМХО — рановато. По КЛР — не могу прокомментировать.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Lloyd, Вы писали:
А>>Плохо понимая, что он делает. Блин, нельзя называть программистом, А>>того кто не знает дискретной математики, хотя бы на уровне понимания основных А>>алгоритмов и концепций.
L>Отнюдь, очень даже можно. 90%-ов рынка труда — это задачи не связанные со сколь-либо сложной алгоритмикой. Такова реальность, сколь бы ни было это печально осознавать.
И что из этого следует? Что нужно непременно попасть в те самые 90%?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Lloyd, Вы писали:
А>>>Плохо понимая, что он делает. Блин, нельзя называть программистом, А>>>того кто не знает дискретной математики, хотя бы на уровне понимания основных А>>>алгоритмов и концепций.
L>>Отнюдь, очень даже можно. 90%-ов рынка труда — это задачи не связанные со сколь-либо сложной алгоритмикой. Такова реальность, сколь бы ни было это печально осознавать.
ГВ>И что из этого следует? Что нужно непременно попасть в те самые 90%?
Нет, это означает, что название "программист" вполне применимо к этому большинству, и следовательно, чтобы формально называться программистом, нет необходимости в вышеприведенных знаниях.
Здравствуйте, Геннадий Васильев, Вы писали:
L>>Генадий, неужели вы согласны с коржиком, что начинающему программисту зачем-то нужен Кнут?
ГВ>Да, согласен. Нужен. В обязательном порядке. Если ты этого не понимаешь — это не моя проблема.
Я понимаю, что это не ваша проблема, но, извините, не могли бы вы конкретно указать для чего он нужен?
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>А как им пользоваться, если не понимаешь, что там написано и как его применить? Кнут, в частности, тем и хорош, что даёт "отвязное" от реалий воплощение алгоритмов. В отличие, кстати, от того же Вирта.
Я вот тут интересуюсь, в чем эта "отвязанность от реалий" выражается?
Уж не в причудливой ли системе команд MIX?
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, AVC, Вы писали:
ГВ>>А как им пользоваться, если не понимаешь, что там написано и как его применить? Кнут, в частности, тем и хорош, что даёт "отвязное" от реалий воплощение алгоритмов. В отличие, кстати, от того же Вирта.
AVC>Я вот тут интересуюсь, в чем эта "отвязанность от реалий" выражается? AVC>Уж не в причудливой ли системе команд MIX?
MIX (кстати, новое издание переписывается на MMIX) — это только реализация... А отвязность в том, что алгоритмы написаны на простом человеческом языке...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Lloyd, Вы писали:
L>>>Отнюдь, очень даже можно. 90%-ов рынка труда — это задачи не связанные со сколь-либо сложной алгоритмикой. Такова реальность, сколь бы ни было это печально осознавать.
ГВ>>И что из этого следует? Что нужно непременно попасть в те самые 90%?
L>Нет, это означает, что название "программист" вполне применимо к этому большинству, и следовательно, чтобы формально называться программистом, нет необходимости в вышеприведенных знаниях.
— Я учил тебя Закону Джунглей, касающемуся всего нашего населения за исключением Обезьяньего Народа, живущего среди ветвей. У них нет закона. Обезьяны — отверженные. У них нет собственного наречия; они пользуются украденными словами, которые подслушивают, когда подглядывают за нами, прячась в ветвях. У них не наши обычаи. Они живут без вожаков. У них нет памяти. Они хвастаются, болтают, уверяют, будто они великий народ, готовый совершать великие дела в джунглях, но падает орех, им делается смешно, и они все забывают. Мы, жители джунглей, не имеем с ними дела...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Lloyd, Вы писали:
ГВ>>Да, согласен. Нужен. В обязательном порядке. Если ты этого не понимаешь — это не моя проблема. L>Я понимаю, что это не ваша проблема, но, извините, не могли бы вы конкретно указать для чего он нужен?
Нет, не мог бы. Сам возьми, да посмотри.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AVC, Вы писали:
AVC>Я вот тут интересуюсь, в чем эта "отвязанность от реалий" выражается? AVC>Уж не в причудливой ли системе команд MIX?
Ну, на мой взгляд — как раз в этом. MIX не позволяет относиться к Кнуту, как к "справочнику рецептов на языке X". То бишь, прямо заставляет думать своей головой. На определённом этапе — очень полезное качество.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
AVC>>Я вот тут интересуюсь, в чем эта "отвязанность от реалий" выражается? AVC>>Уж не в причудливой ли системе команд MIX?
ГВ>Ну, на мой взгляд — как раз в этом. MIX не позволяет относиться к Кнуту, как к "справочнику рецептов на языке X". То бишь, прямо заставляет думать своей головой. На определённом этапе — очень полезное качество.
А что, написанию программ на высокоуровневых языках мышление противопоказано?
Что же касается использования в книге ассемблера как основного языка, возникает впечатление, что Кнут не рассматривал ФП как существенную составляющую искусства программирования.
Я, к примеру, не слыхал о ФП на языке ассемблера.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>>Да, согласен. Нужен. В обязательном порядке. Если ты этого не понимаешь — это не моя проблема. L>>Я понимаю, что это не ваша проблема, но, извините, не могли бы вы конкретно указать для чего он нужен?
ГВ>Нет, не мог бы. Сам возьми, да посмотри.
Генадий, вы, кажется, не понимаете о чем я вас спрашиваю. Я знаю о чем написано в трехтомнике Кнута, имел глупость потратить на него время. Но, хоть убейте, я не вижу области применений этим знаниям для 90%-ов программистов.
Здравствуйте, AVC, Вы писали:
ГВ>>Ну, на мой взгляд — как раз в этом. MIX не позволяет относиться к Кнуту, как к "справочнику рецептов на языке X". То бишь, прямо заставляет думать своей головой. На определённом этапе — очень полезное качество.
AVC>А что, написанию программ на высокоуровневых языках мышление противопоказано?
Нет, ты не понял. Я имел ввиду, что из Кнута нельзя просто взять, и просто скопировать из него реализации программ. Нужно хоть чуть-чуть головой поработать.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Lloyd, Вы писали:
L>Генадий, вы, кажется, не понимаете о чем я вас спрашиваю. Я знаю о чем написано в трехтомнике Кнута, имел глупость потратить на него время. Но, хоть убейте, я не вижу области применений этим знаниям для 90%-ов программистов.
(я так понимаю, ты сейчас о них говоришь). Правда, в сознательном стремлении в это множество я тоже не вижу никакого смысла.
А так Кнут... Ну, базовая алгоритмическая подготовка. Аккурат для начинающих, чтобы мозги на место поставить. В дальнейшем — хороший алгоритмический и в чём-то методический справочник.
P.S.: Моё имя пишется с двумя "н".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
L>>Генадий, вы, кажется, не понимаете о чем я вас спрашиваю. Я знаю о чем написано в трехтомнике Кнута, имел глупость потратить на него время. Но, хоть убейте, я не вижу области применений этим знаниям для 90%-ов программистов.
ГВ>Так я тоже не вижу в Кнуте никакого смысла для тех самых 90%, которые формально называются программистами
(я так понимаю, ты сейчас о них говоришь). Правда, в сознательном стремлении в это множество я тоже не вижу никакого смысла.
Геннадий, если не затруднит, прочитайте пожалуйста еще раз вопрос, который я вам задал.
Hint: Я не спрашивал есть ли смысл (это слишком отвлеченное понятие, смысл можно найти даже в изучении суахили), я просил описать где в современной жизни можно применить знания, которые новичек гипотетически может почерпнуть из Кнута.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Нет, ты не понял. Я имел ввиду, что из Кнута нельзя просто взять, и просто скопировать из него реализации программ. Нужно хоть чуть-чуть головой поработать.
Теперь понял.
Но меня и правда заинтересовало, что Кнут все программы написал на ассемблере.
Следует ли отсюда, что он игнорировал функциональный подход?
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, Lloyd, Вы писали:
L>Hint: Я не спрашивал есть ли смысл (это слишком отвлеченное понятие, смысл можно найти даже в изучении суахили), я просил описать где в современной жизни можно применить знания, которые новичек гипотетически может почерпнуть из Кнута.
Ну дык блин! Давайте повыкидываем из высшего образования (программистов) всю математику нафиг — ее тоже нельзя нигде применить в современной жизни...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!