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

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 года
Комплекс ДПЛА ГрАНТа -- венец советского тактического ДПЛАстроения

{+}



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

Не судите да не судимы будете
[info]metaclass@lj
2004-09-18 21:48 (ссылка)
Извините моих собратьев по профессии, ибо не знают они, на что гонят.
В больших проектах такого понятия, как программист, особо то и не выделишь. Есть аналитики, системные архитекторы, есть кодеры, чье дело - код набивать по заданным спецификациям, есть тестеры, которые все это потом проверяют и отдел обслуживания, которому клиенты мозги парят по телефону.
По поводу Pascal. Я пишу на Delphi. 7 лет. При этом одновременно будучи всеми вышеописанными категориями работников. Не скажу, что это сильно правильно, но так уж получилось. Так вот - если бы я писал на C,C++ или других слабочитабельных языках - я бы умер поддерживать свои предыдущие проекты. Причем тут проблема не только в синтаксисе языка, а в общей нелюбви "настаяшшых программеров" к понятным и простым вещам. Особенность психики, знаете ли.

(Ответить) (Ветвь дискуссии)

Спасибо
[info]ex_chistyak@lj
2004-09-18 22:03 (ссылка)
Вижу, что Вы понимаете кое-что:).
А насчёт любви к Си "программистов" всё очень просто. Паскаль понимает любой психически здоровый человек. А Си -- только "программисты". Язык жрецов:).

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

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 - уёбище редкостное (присутствие С++ - лишь один из аргументов, почему именно,) да и вообще, от шляпы ничего особенно хорошего и не ожидалось.

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

Re: Спасибо
[info]xnrrn@lj
2004-09-20 03:21 (ссылка)
Если программу на Си пишет психически здоровый человек, то и читвется она вполне себе хорошо, любым другим подобным человеком. "Программист" тот, или нет - совершенно не важно. Мало того, по ней еще и вменяемая документация может создаваться. %)
Видимо все зависит от подхода, при обучении... И у Паскаля выше культура в этом смысле.

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

Паскаль - благородный язык
[info]ex_chistyak@lj
2004-09-20 04:18 (ссылка)
И очень выразительный.

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

Re: Паскаль - благородный язык
[info]xnrrn@lj
2004-09-20 04:24 (ссылка)
Вполне возможно. :) Я с ним практически не сталкивался.

Про языки програмиирования помню хороший комментарий, который отражает мысль "программистов":
"Как жаль что у Машины Тьюринга так плохо с вводом/выводом."

С точки зрения чтения человеком, очень хороши языки четвертого поколения, например SQL. К сожалению, он очень узкоспециализирован. Думаю, что это относится ко всем подобным языкам.

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

Помните Кобол?
[info]ex_chistyak@lj
2004-09-20 06:12 (ссылка)
Тоже очень удобен для чтения человеком, однако не прижился. Видимо, авторы Кобола полагали, что этот человек - идиот:).

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

Re: Помните Кобол?
[info]xnrrn@lj
2004-09-20 06:45 (ссылка)
Глазами не видел, руками не трогал. Но помню, когда была паника про Y2K программисты, умеющие Кобол были очень в цене. Или просто на людей вешали перелопачивание кода на Коболе... %)
Видать жив он в самых потаенных уголках...

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

Re: Помните Кобол?
[info]syarzhuk@lj
2004-11-16 04:56 (ссылка)
Прижился, прижился, до сих пор в США куча систем на нём, хотя постепенно заменяют, да.

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

Re: Не судите да не судимы будете
[info]heavywave@lj
2007-04-02 08:40 (ссылка)
писец. сколько можно мешать С и С++ в одну кучу. это 2 СОВЕРШЕННО разных языка.
вы дискридитируете своей безграмотностью всех Delphi программистов.

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

Re: Не судите да не судимы будете
[info]metaclass@lj
2007-04-02 09:06 (ссылка)
Дискредитация пишется через е :)

А по поводу языков - то что, С и С++ разные - читабельности им обоим не добавляет. Причем ладно бы сами языки, синтаксис не самый страшный, но эта их обвязка вроде компилятор отдельно, линкер отдельно, директивы препроцессора, которых в заголовочных файлах больше, чем кода - мрак редкостный. Или безумие вроде того, что пропущенная точка с запятой где-нибудь в конце .h файла компилятором показывается в виде пары десятков ошибок совершенно в других модулях.

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

Re: Не судите да не судимы будете
[info]heavywave@lj
2007-04-02 09:10 (ссылка)
Бред какой. прежде чем что-то писать ознакомились бы с вопросом ну хоть немного.

нечитабельность С++ разработанного для того чтобы быть читаемым нонсенс. если руки из жопы то всё будет нечитаемым.

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


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