Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет chistyakov ([info]chistyakov)
@ 2004-09-18 22:26:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Настроение:кипение замысла БРАТа-фоторобота
Музыка:Итальянская 60-х

ГрАНТ. О программировании и инженерах
ИЗ-ЗА ПЕРЕГРУЗКИ ТЕМЫ ОБСУЖДЕНИЕ ЗДЕСЬ ЗАКРЫТО, СВОИ КОММЕНТАРИИ ОСТАВЛЯЙТЕ ЗДЕСЬ (у меня всё и всегда открывается в новом окне. Давите, это окно не пропадёт, почитаете ещё)

ГрАНТ привлёк внимание ЛЖюзеров. Многим понравился этот ДПЛА:



В дискуссиях по ГрАНТу появились какие-то странные люди, позиционирующие себя как "программисты". Мне удивительно.

Программирование -- это низко квалифицированный труд, типа черчения. Я считаю, что инженеры в процессе создания технических систем должны реализовывать свои замыслы и программируя на ЭВМ, в том числе. Инженер должен уметь находить и реализовывать конструктивные, аппаратные и программные технические решения.

Профессия "программист" -- это нечто типа секретарь-машинистка, что ли? Чертёжник? Что это за односторонне развитый специалист, который может только программировать? Главное, ведь ЧТО программировать, правда? Задача -- главное.

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

Меня поучают какими языками программирования пользоваться. Это удивляет. Возникает ощущение, что молодые люди думают, что до их появления на свет никто ничего не знал, не умел делать, или вообще никого и ничего не было. Слава Богу, с появлением этих людей на свет всё встало на свои места. Русская техника спасена, наконец-то!

Для меня важнейшим свойством программы является её понятность для ЧЕЛОВЕКА. А вовсе не какая-то надуманная "эффективность кода". Программа -- это прежде всего конструкторский документ, на основании которого можно и через годы, когда уже не будет в живых автора программы, понять, по какому алгоритму всё это на самом деле работает. Ни один документ, кроме текста программы, не обладает достаточной для этой цели достоверностью. В наглядности и алгоритмичности нет равных языку Паскаль. Поэтому я и пользуюсь им. Когда надо что-то посчитать действительно быстро, то нет труда написать критический кусок на Ассемблере. Таких кусков набирается совсем немного.

Дополнение (навеяно комментарием [info]ob_zor@lj:

Известны 10 преимуществ Паскаля перед Си:)
Я приведу только одно, но самое важное:

10. На Си Вы можете написать:

for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);

На Паскале Вы НЕ МОЖЕТЕ написать:

for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);

Кстати, может кто-нибудь перевести эту абракадабру на Паскаль?
_______________________________________________________________________









Для тех, кто не посмотрел ранее выложенные фотки ГрАНТа:

ГрАНТ. Эвакуация с места посадки. Зима 2002 года
ГрАНТ в полёте. Зима 2002 года
Старт ГрАНТа. Зима 2002 года
Комплекс ДПЛА ГрАНТа -- венец советского тактического ДПЛАстроения

{+}



(Читать комментарии) - (Добавить комментарий)

Re: Спасибо
[info]alexclear@lj
2004-09-19 00:02 (ссылка)
Напишите мне на Паскале ядро операционной системы.
Это возможно, но очень непросто. Хотя бы потому, что в языке нет указателей на функцию и для того, чтобы сделать callback придется наплодить лишних сущностей.
И т.д., и т.п.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Спасибо
[info]ex_chistyak@lj
2004-09-19 00:22 (ссылка)
Что такое callback я не знаю. Наверняка, что-нибудь простое-простое.
А указатели в Паскале есть. Они универсальные, в том числе и на функцию. Если они кому-то нужны. Просто инструмент, которым Вы пользуетесь (Си), накладывает на Вас способ реализации. Скорее всего, мне бы и в голову не пришло использовать указатель на функцию. Указатель присущ именно Си. В Паскале Вы работаете с переменными, как правило. Хотя указатели есть, как я Вам уже сказал. Но они неорганичны для Паскаля.

Встречный вопрос. А вот как Вы думаете, на ДПЛА ГрАНТ несколько микроЭВМ (от 5 до 8). Все объединены. Как это всё без указателей на функции работает? Ужас! летящий на крыльях ночи, вероятно.

В общем, не морочьте людям головы. Паскаль и Си по своей мощности практически эквивалентны. Ну, Паскаль, конечно, немного побогаче, и язык культурный. Благородный язык. А Си -- это типа макроассемблера что-то.
Спор предлагаю не развивать, знаю, что все наСИльники очень болезненно относятся к объективным оценкам Си. Сразу записывают в антиСИмиты>.

Вы мне лучше на Паскаль переведите выражение в дополнении к основному посту.Тогда поверю, что Вы что-то сечёте в Си:).

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Спасибо
[info]alexclear@lj
2004-09-19 00:44 (ссылка)
А указатели в Паскале есть. Они универсальные, в том числе и на функцию. Если они кому-то нужны.

А, забыл, забыл я уже этот Ваш Паскаль как страшный сон! Ну извините.
Есть, тем лучше. Кстати, я таки проверю. В Delphi вот точно есть, а в классическом Паскале? В упор не помню.

Просто инструмент, которым Вы пользуетесь (Си), накладывает на Вас способ реализации.

Вообще-то я исходя из соображений по реализации инструмент выбираю, не наоборот.

Скорее всего, мне бы и в голову не пришло использовать указатель на функцию.

Да в Паскале и мне бы не пришло. Хотя в Object Pascal это нормальная практика, но Object Pascal это не совсем Pascal.

Указатель присущ именно Си. В Паскале Вы работаете с переменными, как правило. Хотя указатели есть, как я Вам уже сказал. Но они неорганичны для Паскаля.

Это они для Вас неорганичны.

Встречный вопрос. А вот как Вы думаете, на ДПЛА ГрАНТ несколько микроЭВМ (от 5 до 8). Все объединены. Как это всё без указателей на функции работает? Ужас! летящий на крыльях ночи, вероятно.

А зачем в такой системе указатели на функции? Там и Паскаль не нужен, и Си не нужен.

В общем, не морочьте людям головы. Паскаль и Си по своей мощности практически эквивалентны.

Ассемблер все равно мощнее.

Ну, Паскаль, конечно, немного побогаче, и язык культурный. Благородный язык. А Си -- это типа макроассемблера что-то.

Давайте введем меру нечестивости языка, что уж там. Си явно нечестив.

Спор предлагаю не развивать, знаю, что все наСИльники очень болезненно относятся к объективным оценкам Си. Сразу записывают в антиСИмиты>.

Я пока что объективных оценок не видел.

Вы мне лучше на Паскаль переведите выражение в дополнении к основному посту.Тогда поверю, что Вы что-то сечёте в Си:).

А мне это зачем?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Не можете, стало быть...
[info]ex_chistyak@lj
2004-09-19 01:12 (ссылка)
НВ>...Вы мне лучше на Паскаль переведите выражение в дополнении ... Тогда поверю, что Вы что-то сечёте в Си:).
АС>...А мне это зачем?

Ну, не можете, так не можете. Не неволю же я Вас...
Резюме можете не выкладывать. Мне достаточно.

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Не можете, стало быть...
[info]alexclear@lj
2004-09-19 01:16 (ссылка)
Так ведь Ваша программа не собирается, как выяснил камрад [info]lazyreader@lj?

(Ответить) (Уровень выше)

Re: Спасибо
[info]alexclear@lj
2004-09-19 00:45 (ссылка)
Что такое callback (http://www.function-pointer.org/).

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Спасибо
[info]ex_chistyak@lj
2004-09-19 01:35 (ссылка)
Что Вы мне целую книгу шлёте, да ещё на английском. Просто, что ли не можете сказать, что калбэк это то-то и то-то.

Может это рекурсия просто? Что бы это ни было, на Паскале есть наверняка.

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Спасибо
[info]alexclear@lj
2004-09-19 01:40 (ссылка)
callback это обратный вызов.
Настраиваемый вызов функции, только и всего.
Фактически, способ параметризации одной функции вызовом другой.
В стандартном Паскале этого нет, см. ниже.

(Ответить) (Уровень выше)

Re: Спасибо
[info]alexclear@lj
2004-09-19 00:50 (ссылка)
Вы меня обманули.
Нет в стандартном Паскале указателей на функцию (http://h71000.www7.hp.com/wizard/wiz_7473.html).
Что во многом объясняет, почему я их там и не помню.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Спасибо
[info]korsar_13@lj
2006-12-31 18:08 (ссылка)
Вот как? а переменные-функции есть?
а чем они принципиально отличаются?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Спасибо
[info]alexclear@lj
2006-12-31 18:11 (ссылка)
Нет, я же сказал.

(Ответить) (Уровень выше)

Re: Спасибо
[info]mauhuur@lj
2004-09-23 15:09 (ссылка)
Я на том же основании могу зачмырить Си, потому как в нём замыканий нет. На фига нужны callback-и, когда нет замыканий?!?

P.S. Multics как-то малость постарше Unix-а будет, однако... И ничего. Жил такой. Сносно жил.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]atly@lj
2007-01-26 09:43 (ссылка)
замыкания есть в C++, если пользоваться бустом

(Ответить) (Уровень выше)

Re: Спасибо
[info]syarzhuk@lj
2004-11-16 04:54 (ссылка)
Хотя бы потому, что в языке нет указателей на функцию
Есть начиная с Turbo Pascal 5.5

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Спасибо
[info]alexclear@lj
2004-11-16 14:25 (ссылка)
Turbo Pascal 5.5 это какой-то стандарт, да?
А почему называется так странно? Нетипичное название для стандарта на язык программирования, правда?

(Ответить) (Уровень выше)

Re: Спасибо
[info]syarzhuk@lj
2004-11-16 05:00 (ссылка)
Напишите мне на Паскале ядро операционной системы
http://en.wikipedia.org/wiki/UCSD_p-System

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Спасибо
[info]alexclear@lj
2004-11-16 14:49 (ссылка)
К Линусу Торвальдсу, пожалуйста, обратитесь с этим.
В качестве рацпредложения.
Да, я даже про Oberon слышал, причем довольно давно (была речь о покупке).
Так что можете себя поиском смешных ссылок больше не утруждать.
Я тут недавно видел сообщение о том, что на Haskell написали ядро ОС (http://www.osnews.com/story.php?news_id=8862).
Ядро eCos написано на C++ и даже стоит в продакшне где-то.
И что? Это мейнстрим? Это дает какие-то серьезные преимущества подобным системам? Странно, кажется, их доля на рынке стремится к нулю, причем снизу.
Для некоторых embedded решений годится все что угодно, даже Ваш UCSD p-System.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Спасибо
[info]rqk@lj
2004-11-22 21:23 (ссылка)
> Ядро eCos написано на C++

Поосторожнее, на поворотах, право...

С++ кода в eCos - с гулькин хер. libstdc++ не нужен нигде из поднятых мной RedBoot'ов, например, за последние года 3, на различных arm'ах и ppc'ях.

Я не то, чтобы против тезиса возражал, нет. Аргументация покоробила.

Вообще, конечно, eCos - уёбище редкостное (присутствие С++ - лишь один из аргументов, почему именно,) да и вообще, от шляпы ничего особенно хорошего и не ожидалось.

(Ответить) (Уровень выше)


(Читать комментарии) -