1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Беседка для программистов, или «Бутерброд с кодом»

Тема в разделе "Флейм", создана пользователем Рыжий Тигра, 25 окт 2013.

  1. Trimmer

    Trimmer

    Регистрация:
    7 май 2007
    Сообщения:
    125
    Ну не будем спорить тогда, спокойной ночи :). Но насчёт предметной области мне всё таки интересно. О чём речь то? Или прямо серьёзно обо всём подряд?
     
  2. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Чего только не писал за три десятка лет стажа...
     
  3. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    А ОО-программист и не должен этого знать, иначе вся модель ОО в его голове накрывается тазом и ООшник предпочтёт перейти на Си. :-(
    Хм... C++ придуман в т.ч. и для более глубокого разделения труда, т.е. с т.з. идеи нанимать в программисты именно что дураков. Им - да, надо запрещать, притом неявно - чтобы сами не догадались, что тут что-то запрещено.
     
    gudleifr нравится это.
  4. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    хм.

    довольно часто встречаются проекты на С++, использующие .dll, написанные на Си


    тут ещё роль играет, что если куплена, например, VC++ то вполне логично использовать возможности С++

    почему бы и нет?


    даже если Вы очень любите Си, то проект можно делать именно на С++

    при этом можно спокойно писать код в стиле Си

    и тут могут возникнуть необычные психологические эффекты:

    или не хотели понимать

    если программисту на Си++ подсунуть программу в смешанном стиле, то он вполне может возмутиться


    хотя, я сторонник синкретизма - смешивание исходников на разных языках может дать что-то интересное


    ВОПРОС :

    Подскажите компилятор, который успешно схавает исходник, в котором строки кода вперемешку написаны на Scheme, Forth, C++ (указал эти языки для примера, не придирайтесь, интересно именно смешение разных парадигм)
     
  5. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260


    ---------- Сообщение добавлено в 10:04 ---------- Предыдущее сообщение размещено в 09:06 ----------

    Кстати, о реиспользовании кода. В общем, всё ясно, когда дело идёт о сторонних библиотеках. Но вот лично я не могу использовать собственный код написанный 10 лет назад, потому что это был паскаль, не могу использовать свой код написанный 5 лет назад потому что это был кусок адского говна, не могу использовать свой код написанный год назад потому что это не только говно, но я ещё и придумал, как сделать быстрее и лучше. Может лет через 50?
     
    Последнее редактирование модератором: 12 июн 2015
    Bato-San нравится это.
  6. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Это называется 'nix-ами. Программа бьется на множество отдельных кусков-процессов, соединенных каналами-файлами. Каждый пишется на том, на чем удобнее. В принципе, и Forth, и C++ придуманы для одного - написания на них проблемно-ориентированных языков, на которых уже будет решаться сама задача. Но, минус C++ здесь в том, что любой новый язык написанный на C++, должен быть C++ и ничем иным.

    За это и люблю Forth. По крайней мере, могу понять, что именно писал 10 лет назад. Смотря на аналогичную программу на C действительно думаешь, что написать заново будет быстрее, чем понять как это старье работает.
     
    Bato-San нравится это.
  7. FeyFre

    FeyFre

    Регистрация:
    13 сен 2008
    Сообщения:
    2
    Товарищъам, которые спорят С versus С++.
    Всё это конечно хорошо, некоторые аргументы даже имеют место быть в реальной жизни, но давайте вернемся на землю:
    С, С++, Ассемблер, и пр. языки являются только инструментом. А выбирают тот или иной инструмент в зависимости от применимости его к конкретной задаче, эффективности этого инструмента для выполнения этой задачи, а также квалификацией мастера. ( Иногда бывает нужно болгаркой сточить слой метала, а иногда и напильником лишь слегка подправить фаску ) Это есть основополагающие факторы, а не кошерность по неким (абстрактным) признакам(то, о чем тут спорится) того или иного инструмента.
     
    Последнее редактирование модератором: 17 ноя 2014
  8. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    FeyFre, полностью согласен, но добавлю: засилье С/C++ в сфере образования и, как следствие во всех остальных сферах сыграло злую шутку с этим языком и его пользователями. В своё время был моден спор "что лучше - С или Паскаль", сейчас спорят на тему "С или С++"... До этого опускали Бейсик в сравнении с Паскалем. И все дружно гнобят асм, на котором большая часть не умеет программировать в принципе (лабы и прочая туфта - не в счёт). Люди меняются гораздо меньше, чем языки. Кто бы не затеял спор, победит в нём не тот кто прав, а тот кто неправ, но апеллирует к "им же все пользуются ! А вот кто вашим языком пользуется ? Вы и ещё пара спецов ? Хахаха !"

    Язык С изначально рассчитывался на никсы и из них вышел. Перетягивание его в другие системы автоматом приводит или к конфликтам и глобальным изменениям в языке или к "обрезанию" системы до его уровня. И то и другое - ущербно.

    Здесь был упомянут Форт, который, строго говоря, не язык, а фактически система по изначальной задумке и реализации. Учитывая это и попытки подменить понятие "язык" на "ретранслятор" (программа переводящая с одного ЯП на другой) - как бэ подводит черту в данном споре. Финиш. Хотя, я знаю, как минимум, три таких "языка" с возможностями компиляции. Однако всё это сводится к макросам, по сути и навороченному IDE с транслятором, который превращает исходник или в асм или в С, по заранее подготовленным шаблонам, а потом вызывает тот же NASM для компиляции полученной каши. Да и какой смысл в таком "всеязыке" ? Если есть обычные объектные файлы.
     
    Последнее редактирование: 5 дек 2013
  9. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Уже закончилось, не переживай. (трубным замогильным басом) ГРЯДЁТ ЭРА JAVA!!!
    Ха, а что - есть приличные операционки, изначально писанные на чём-то "высокого уровня" ("выше", чем Си)? :-)
    Ха, я вообще-то ни одной нереентерабельной ОС из написанных на СИ не видел. А когда меня сманивали на "форточки", то на вопрос "а как тут с реентерабельностью?" незатейливо спросили "ашоцетаке?". :-(((((( Впрочем, это видел каждый, кто пытался добраться к сети с любой задачи при условии, что в это же время другая задача напоролась на обрыв соединения и высиживает положенный тайм-аут перед окончательным отлупом. :-(
    А всего-то делов-то было - ОС изначально писана не на Си... :-(((((
    "Резон прямой" ((L) Г.Жеглов): исходник можно править "руками", объектник - нет.
     
  10. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Рыжий Тигра, осторожно. Когда коллегу Bato-San пробивает на столь велеречивые банальности, это обычно означает, что он изначально сморозил глупость и теперь строит вокруг нее редуты. В этот момент проще его не трогать и делать вид, что ничего не случилось.
     
    Последнее редактирование: 5 дек 2013
  11. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
    А какая связь между C и реентерабельностью? Уж Ц как никто другой предоставляет массу возможностей накосячить.

    И какая разница, на чем "изначально написана ОС"? GCC изначально на Паскале был написан, и что с того. То, что там раньше было, и что сейчас - совершенно разные вещи.


    Вообще, мое мнение - по хорошему Ц давно пора закопать и вместо него использовать более безопасные языки. Ну, оставить его для экзотических микроконтроллеров может быть. Правда, инерция очень велика, много книг, специалистов, в конце концов просто дофига кода написано. Так что жить, увы, еще долго будет.
     
    Bato-San нравится это.
  12. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Я знаю. Но уж возможностей сделать правильно не за счёт роста трахоёмкости - даёт куда больше, чем ассемблер. (На ЯВУ - на Java или там VBA - операционки м.б. кто и пишет, но я пока не видел ни одной.)
    Что нужно для реентерабельности? Чтобы переменные выделялись только на стеке или в куче, т.е. у каждой задачи и каждого потока был свой экземпляр. На Си это сделать куда проще, чем залимонить переменную в общий сегмент данных для всех задач или, не приведи кришна, в сегмент кода; на асме - как раз наоборот.
    Приложениям проще: выполнилось и завершилось, с другими приложениями не общалось, память отдало, файлы позакрывало. ОС же работает всю жизнь машины и обрабатывает самые безумные запросы от многих процессов одновременно.
    (назидательно подняв коготь) Ответ неправильный. Надо говорить "по-хорошему, я давно должен был закопать свой экземпляр компилятора Си и больше никогда его в руки не брать, ибо с Си в руках я смертельно опасен для окружающих и не могу себя контролировать". Или как-то так.
     
    gudleifr нравится это.
  13. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Рыжий Тигра, ну, в мой профиль, как всегда никто не смотрит... посему что то доказывать и рассказывать/показывать - бесполезно изначально. О чём я и написал в своём предыдущем посте. Тем более доказывать сишникам и линуксоидам (это я про
    gudleifr, хоть он и доказывает постоянно обратное, но представление о виндовс у него весьма смутные, а вот винукс он боготворит.)
     
    Steel Rat нравится это.
  14. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
    Ну, если с асмом сравнивать, то конечно С безопаснее и удобнее.

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

    Хотя есть еще объяснение - Виндовс пишут дураки, а вот если бы Рыжий Тигра, то да, все было бы ого-го... :)
     
  15. Helmut Herr Mannelig

    Helmut

    Переводчик

    Регистрация:
    18 мар 2008
    Сообщения:
    7.083
    Разумеется, виноват всегда может быть только язык. Устаревший, неудобный, и вообще, непонятно как работающий. То, что на самом деле виновата может быть ДНК, просто исключено.
     
    gudleifr нравится это.
  16. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
    Все люди - не роботы, и совершают ошибки. Даже очень умные. Это объективная реальность. Хороший язык страхует программиста от большого количества непреднамеренных багов, плохой - от небольшого или вообще не страхует.
     
  17. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Старый Forth-прикол над "безопасными" языками:
    781a1429f38feebc7e3d38e6e0a59474.gif
    Два решения проблемы безопасности.
     
    Ulysses нравится это.
  18. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    gudleifr, в смысле: "Дерево стоит, а вы там, как хотите так и ... бдсм ?" :rofl:

    Нормальный язык позволяет программисту выражать свои мысли в любой понравившейся ему форме, да хоть матом и совершенно ни от чего не защищает и не контролирует - ошибся, стало быть "сам дурак", иди и учись дальше. А если язык от чего то начинает защищать - стало быть что то не в порядке с большинством пользователей этого языка (какие они нафиг программисты то ?!), так в результате сего безобразия и с самим языком.
     
  19. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    Просто адски идиотский спор - С или С++... Когда надо написать узкоспециализированную тулзу или драйвер, то, конечно, С++ - лучший выбор. Не забудьте фабрики и стратегии заюзать, а то не труЪ. В свою очередь, когда делаешь компьютерную игру и у тебя тысячи объектов обсчитываются без перерыва, то, естественно, надо нахерачить макросов и массивов с их счётчиками, чтобы опять стало труЪ.
    Давайте лучше Джаву ругать и Питон? )
     
    Bato-San нравится это.
  20. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
    В корне не согласен. Впрочем, видимо, консенсуса достичь не удастся, каждый останется при своем мнении.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление