The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Возобновлено соревнование по написанию запутанного кода на языке Си"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Возобновлено соревнование по написанию запутанного кода на языке Си"  +/
Сообщение от opennews (??), 02-Янв-25, 11:11 
После четырёхлетнего перерыва объявлено о возобновлении   конкурса IOCCC (International Obfuscated C Code Contest), нацеленного на написание наиболее запутанного и трудноразбираемого кода на языке Си. Мероприятие IOCCC28 станет сороковым в истории конкурса, проводимого с 1984 года. Работы будут приниматься c 31 января до 2 апреля 2025 года. В отличие от прошлых конкурсов, отныне в исходном коде разрешено использовать кодировку UTF-8...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=62503

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Возобновлено соревнование по написанию запутанного кода на я..."  +7 +/
Сообщение от Илья (??), 02-Янв-25, 11:11 
взять любой проект с автомаппером и меддиатром - и приз твой
Ответить | Правка | Наверх | Cообщить модератору

2. "Возобновлено соревнование по написанию запутанного кода на я..."  +10 +/
Сообщение от Аноним (2), 02-Янв-25, 11:14 
Как сделать подобное дома:
- берем среднюю актуальную программу.
- пытаемся читать.  

Ответить | Правка | Наверх | Cообщить модератору

3. "Возобновлено соревнование по написанию запутанного кода на я..."  –10 +/
Сообщение от Омномнимус (?), 02-Янв-25, 11:24 
Я вот неделю уже ковыпяю программулину на C + QT и это просто какой-то ад! Ни один недочатбот не может понять, что там происходит, про себя я вообще молчу...
Ответить | Правка | Наверх | Cообщить модератору

5. "Возобновлено соревнование по написанию запутанного кода на я..."  –11 +/
Сообщение от Facemaker (?), 02-Янв-25, 11:52 
>Я вот неделю уже ковыпяю программулину на C + QT и это просто какой-то ад!

На Си разве были биндинги к QuickTime? Я всегда полагал, что это чисто Objective-C приблуда...

Ответить | Правка | Наверх | Cообщить модератору

11. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (11), 02-Янв-25, 13:17 
при чём тут quicktime?
Ответить | Правка | Наверх | Cообщить модератору

16. "Возобновлено соревнование по написанию запутанного кода на я..."  +26 +/
Сообщение от Аноним (-), 02-Янв-25, 13:59 
> при чём тут quicktime?

Просто некоторые нудилы не могут пройти мимо и указать что у Qt вторая буква lowercased, а QT - это QuickTime. Потому что это ОЧЕНЬ ВАЖНО!!!!1111.

Ответить | Правка | Наверх | Cообщить модератору

27. "Возобновлено соревнование по написанию запутанного кода на я..."  –1 +/
Сообщение от 12yoexpert (ok), 02-Янв-25, 17:11 
ичсх quicktime поддерживается в qt
Ответить | Правка | Наверх | Cообщить модератору

143. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (143), 04-Янв-25, 19:56 
В прежних мажорных версиях - может быть, сейчас - вряд ли.
Ответить | Правка | Наверх | Cообщить модератору

37. "Возобновлено соревнование по написанию запутанного кода на я..."  +2 +/
Сообщение от Admino (ok), 02-Янв-25, 17:28 
Ты тоже считаешь, что автор первого коммента путает QT и Qt, C и C++?

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

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

47. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Facemaker (?), 02-Янв-25, 18:50 
>Мне кажется, у автора первого коммента будет ещё много очень, очень сложных программ в его жизни, в которых он никак не сможет разобраться.

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

Ответить | Правка | Наверх | Cообщить модератору

48. "Возобновлено соревнование по написанию запутанного кода на я..."  +2 +/
Сообщение от Facemaker (?), 02-Янв-25, 18:53 
>Просто некоторые нудилы не могут пройти мимо и указать что у Qt вторая буква lowercased, а QT - это QuickTime.

Просто это набатный звоночек, если для программиста что Qt, что QT, что C, что C++ — одно и то же. Звоночек о том, что учиться нужно систематически, прежде чем пытаться "работать".

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

54. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (54), 02-Янв-25, 19:24 
> Просто это набатный звоночек, если для программиста что Qt, что QT,

"если аргументов не осталось прикопайся к правописанию" (с)

> что C, что C++ — одно и то же.

Чисто технически - да, прям как в теореме г-на Эскобара - две ʼальтернативыʼ степень качества которых очень похожа.
Ну.. может плюсы слегка получше будут, но не существенно.

> Звоночек о том, что учиться нужно систематически, прежде чем пытаться "работать".

А где учатся чваниться и писать банальщину с таким менторским тоном?
Это специальные курсы какие-то?


Ответить | Правка | Наверх | Cообщить модератору

59. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Facemaker (?), 02-Янв-25, 19:55 
>А где учатся чваниться и писать банальщину с таким менторским тоном?

Это специальные курсы какие-то?

А ведь вы правы, мне аж стыдно стало :). Зря я докопался до неряшливого написателя, да ещё в новогодние каникулы. Приношу свои извинения.

Ответить | Правка | Наверх | Cообщить модератору

66. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (-), 02-Янв-25, 21:06 
> А ведь вы правы, мне аж стыдно стало :). Зря я докопался  до неряшливого написателя, да ещё в новогодние каникулы. Приношу свои извинения.

Спасибо!
Сейчас праздники, кто-то с похмелья, кто-то со смены ночной вернулся..
Будем добрее друг-к-другу и мир станет лучше)


Ответить | Правка | Наверх | Cообщить модератору

73. "Возобновлено соревнование по написанию запутанного кода на я..."  +2 +/
Сообщение от Аноним (73), 03-Янв-25, 02:24 
> "если аргументов не осталось прикопайся к правописанию" (с)

Не обращай внимания на регистр, матери компилятор, будь мужиком!

Ответить | Правка | К родителю #54 | Наверх | Cообщить модератору

21. "Возобновлено соревнование по написанию запутанного кода на я..."  +2 +/
Сообщение от eugener (ok), 02-Янв-25, 15:19 
википедия утверждает, что квиктайм написан на си.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

30. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (-), 02-Янв-25, 17:15 
Он про биндинги к QuickTime? А не про сам QuickTime.

P.S.
Qt - правильно читается как Кьют, а не Ку-Тэ, и не Кью-Тэ.

Ответить | Правка | Наверх | Cообщить модератору

80. "Возобновлено соревнование по написанию запутанного кода на я..."  –1 +/
Сообщение от 12yoexpert (ok), 03-Янв-25, 04:40 
> Qt - правильно читается как Кьют, а не Ку-Тэ, и не Кью-Тэ.

ложь. пара шизиков из компании-разработчика написала на оф сайте, что они хотят, чтобы все так читали. но всем как всегда, и правильно читается "кью ти"

Ответить | Правка | Наверх | Cообщить модератору

82. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от hjk (?), 03-Янв-25, 04:53 
Когда написала? Я например об этом узнал в 2010-м...
Ответить | Правка | Наверх | Cообщить модератору

89. "Возобновлено соревнование по написанию запутанного кода на я..."  –1 +/
Сообщение от Аноним (-), 03-Янв-25, 08:29 
Я когда впервые увидел аббревитуру Qt, прочитал его правильно "Кьют", всё происходило на подсознательном уровне. Но потом наслышавшись тёмных соотечественников стал читать по разному и неправильно: "Ку-Тэ", "Кью-Тэ", "Кью-Ти".

Теперь я вернулся к изначальному, подсознательному правильному чтению. А тёмных русских программистов больше не слушаю.

Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

29. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (29), 02-Янв-25, 17:13 
Я точно знаю что в данном конкурсе победят иксы так как их с тех пор понимать перестали.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

38. "Возобновлено соревнование по написанию запутанного кода на я..."  +2 +/
Сообщение от Q (??), 02-Янв-25, 17:33 
X-ы не пройдут из за размера исходных кодов
Ответить | Правка | Наверх | Cообщить модератору

63. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (63), 02-Янв-25, 20:48 
Да, жаль, но это хотя бы пример того, что явно используется. Я же не про оракловскую базу данных упомянул - там то вообще ад какой-то и непонятно как вообще работает.
Ответить | Правка | Наверх | Cообщить модератору

72. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (72), 03-Янв-25, 00:45 
Что тебе мешает перейти на язык 1с?

СледующийДень = ТекущаяДата() + 60 * 60 * 24;

ДобавитьМесяц(Дата(2005, 1, 31), 1)
ДобавитьМесяц(Дата(2005, 2, 28), -1)
КонецМесяца(ДобавитьМесяц(Дата(2005, 2, 28), -1))

ФункцияПолучитьДень(ИсходнаяДата, КоличествоПрибавляемыхДней)

Запрос = НовыйЗапрос("
|ВЫБРАТЬ
| ДОБАВИТЬКДАТЕ(&ИсходнаяДата, ДЕНЬ, &Количество) как Дата";

Запрос.УстановитьПараметр("ИсходнаяДата", ИсходнаяДата);
Запрос.УстановитьПараметр("Количество", КоличествоПрибавляемыхДней);

ВозвратЗапрос.Выполнить().Выгрузить()[0].Дата;


Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

90. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от Аноним (-), 03-Янв-25, 08:34 
Ужас! Зачем ты всё это выучил? Это болезнь.

В качестве таблетки для излечения я тебе прописываю: Си, GNU bash, GNU sed, GNU awk, сойдут и клоны из состава BSD-утилит. Из ядерного терминала не вылезай.

Ответить | Правка | Наверх | Cообщить модератору

135. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от Аноним (135), 04-Янв-25, 01:50 
Когда-нибудь ты поймёшь, что си и гнутая муть - это семантически тот же 1с, но на английском))
Ответить | Правка | Наверх | Cообщить модератору

4. "Возобновлено соревнование по написанию запутанного кода на я..."  +14 +/
Сообщение от Швондик (?), 02-Янв-25, 11:50 
страшно, очень страшно такое читать - если бы мы понимали что это такое, мы не понимаем что это такое
Ответить | Правка | Наверх | Cообщить модератору

7. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (7), 02-Янв-25, 12:02 
Чего не придумают чтоб m4, yacc и lex не использоват
Ответить | Правка | Наверх | Cообщить модератору

10. "Возобновлено соревнование по написанию запутанного кода на я..."  +2 +/
Сообщение от Вася Пупкин (?), 02-Янв-25, 13:14 
https://sun9-27.userapi.com/impf/0dAeSn2XlAelcqxy_wXLpcx_J_a...

зачем. лучше этого кода уже не будет

Ответить | Правка | Наверх | Cообщить модератору

18. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (18), 02-Янв-25, 14:17 
Что доказать хотели? Что заcpaть любой код можно? Доказали. Можно.
Ответить | Правка | Наверх | Cообщить модератору

22. Скрыто модератором  +/
Сообщение от Аноним (-), 02-Янв-25, 15:23 
Ответить | Правка | Наверх | Cообщить модератору

45. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (45), 02-Янв-25, 18:12 
А ну ка такой же пример на Pyhton или Java?
Это мне напоминает людей дающих лезвие и говорящих, что ничего случиться не может.
Мы видим что эволюция сделала станки джилет и количество порезов существенно сократилось.
Заничт берем какой-нибудь (не самый лучший пример) скажем Golang и все проблемы решили.
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

60. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (60), 02-Янв-25, 19:57 
Только ты упускаешь одну немаловажную деталь. Лезвием можно не только бриться. А твой станок как и голанг подходит только для бритья и ничего более.  
Ответить | Правка | Наверх | Cообщить модератору

65. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (65), 02-Янв-25, 21:04 
> Только ты упускаешь одну немаловажную деталь. Лезвием можно не только бриться.

Что ты еще собрался им делать, колбасу резать?
Так даже после этого, его придется долго и нудно точить-править -- если ты конечно не страдаешь мазохизмом.

Ответить | Правка | Наверх | Cообщить модератору

112. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (60), 03-Янв-25, 14:39 
Ты не поверишь, но в этом мире есть гораздо больше задач кроме резанье колбасы.
Ответить | Правка | Наверх | Cообщить модератору

142. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (142), 04-Янв-25, 19:19 
И все эти задачи требуют… ммм… резать бритвой? Брится ножом? Чаще резаться при бритье? Развей мысль, если она была конечно.
Ответить | Правка | Наверх | Cообщить модератору

64. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от Аноним (65), 02-Янв-25, 20:57 
> А ну ка такой же пример на Pyhton или Java?


def letshavesomefun(_, __ = type({( )} ^ {( )})):  __ = type("""
                      .-=-.          .--.
          __        .'     '.       /  " )
  _     .'  '.     /   .-.   \     /  .-'\
( \   / .-.  \   /   /   \   \   /  /    ^
  \ `-` /   \  `-'   /     \   `-`  /
jgs`-.-`     '.____.'       `.____.'""", (__,),
{'_'
:__.__dict__[
[*(_ for _ in sorted(__
.__dict__) if '_' not in _)][:
:-1].pop()]})( {( )} ); yield [_
for _ in _ if _ not in __ and
not __._(_)]

print(*letshavesomefun("hello")


def    _                  (
       _         ,
       __  
       =       type      ((  
               {( )}      
                 ^
               {( )}      ))
)                          :
       __ =    type        (
""".o00(0)(0)0( *)-<    """
, (    __        ,         )
                 ,         {
      '_'                  :    
       __        .  
__dict__   [[   *         (
       _       for        
       _       in sorted   (
       __        .
__dict__ )    if        
      '_'      not    in  
       _  ) ][             {
(      __ )  }   >         {
                 *         (
       _  )  }             :        
                           :
                 ~         (
               not         (  
       _  )  )
            ][ not         (  
       _  ) ]]
}         ) (              {
(         )  }             )
       _  ;    yield       [
       _       for
       _       in
       _       if
       _       not    in
       __      and    not
       __      .
       _
(      _  )  ]

print(*_([3,1,2,5,1,0]))
print(*_("hello world"))


"Что сынку, помогли тебе твои принудительные отступы?"
Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

117. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Василий Пупов (?), 03-Янв-25, 15:24 
Примени форматтер, не страдай ерундой, потом поговорим
Ответить | Правка | Наверх | Cообщить модератору

127. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (65), 03-Янв-25, 21:57 
> Примени форматтер, не страдай ерундой, потом поговорим


% autopep8 -aaa letshavesomfefun2.py

def _(
    _,
    __=type((
        {()}
        ^
        {()}))
):
    __ = type(
        """.o00(0)(0)0( *)-<    """
        , (__,), {
            '_':
            __        .
            __dict__[[* (
                _ for
                _ in sorted(
                    __        .
                    __dict__) if
                '_' not in
                _)][{
                    (__)} > {
                    * (
                        _)}::
                    ~         (
                    not (
                        _))
                    ][not (
                        _)]]
        })({
            ()})
    _
    yield [
        _ for
        _ in
        _ if
        _ not in
        __ and not
        __      .
        _
        (_)]

print(*_([3, 1, 2, 5, 1, 0]))
print(*_("hello world"))


И как, лучше стало?

А нам точно есть о чем разговаривать?

Ответить | Правка | Наверх | Cообщить модератору

70. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от chdlb (?), 02-Янв-25, 23:36 
Пупкин давай пояснительную бригаду
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

93. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (93), 03-Янв-25, 11:03 
А оно так будет работать? Case 1 не окажется внутри {, что приведет к тому, что компилятор пошлет нас куда подальше?
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

98. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (-), 03-Янв-25, 12:59 
Можно почитать разбор тут pigeonsnest.co.uk/stuff/pigeons-device.html
Собственно откуда анон и взял скриншот.
Что без ссылки слегка свинство.

Это хак, в какой-то мере восхищенный методом Даффа.
Костыльный хак из 80х, которые в свое время вызвал нехилый батхерт у небезызвестного Тцо - когда эту "оптимизацию" выпилили из ХОрга - то стало только лучше)
"In fact, by eliminating all instances of Duff's Device from
the XFree86 4.0 server, the server shrunk in size by _half_ _a_
_megabyte_ (!!!), and was faster to boot" [1]

[1] https://lkml.indiana.edu/hypermail/linux/kernel/0008.2/0171....

Ответить | Правка | Наверх | Cообщить модератору

111. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Пюре (?), 03-Янв-25, 14:30 
Эм, switch, оказывается, не очень честная конструкция в плане синтаксиса C, не подчиняется парности {}
Фактически, пример показывает, что switch() это набор if/goto перед основным кодом, а case X: собственно, выглядит почти как метка, и используется как метка для неявного goto. break кстати тоже goto.
Что не всегда ожидаемо после других языков, но отлично ожидаемо теми, кто знает ассемблер, и знает, зачем был сделан C.

Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

115. "Возобновлено соревнование по написанию запутанного кода на я..."  –2 +/
Сообщение от Аноньимъ (ok), 03-Янв-25, 15:14 
>и знает, зачем был сделан C.

Саботаж индустрии?

Ответить | Правка | Наверх | Cообщить модератору

121. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Пюре (?), 03-Янв-25, 16:26 
О нет, это же <s>сарказмъ</s> <s>обоснованное мнение<s> <s>тупость ньюфага</s> хотя да, тупость, я сейчас сразу же переменю своё мнение (нет).

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

Наверное потому, что стоя на плечах гигантов, луче видно, да?

Ответить | Правка | Наверх | Cообщить модератору

123. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от Аноним (-), 03-Янв-25, 17:24 
> Вы же явно можете достигнуть лучшего, начав с той же позиции, как и они, зная то же, что и они.

Ну давай, посмотрим какая у них была позиция.
Итак у нас на дворе 1972 год.
У нас уже есть и используются годами такие языки как Фортран, APL, Лисп, Simula.
За пару лет до появляется FORTH, Паскаль и Smalltalk (в тот же год).
Т.е у нас есть разнообразие подходов, от императивных до функциональных.

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

В 83 году начинаются попытки стандартизации.
В это время у нас уже есть Пролог, Scheme, Ада (отличный пример как нужно разрабатывать ЯП). Даже С++ уже появился.

И наконец в 89 году, после многолетней болтовни и проедания бюджетов, коммитет в̶ы̶с̶р̶а̶..  родил "стандарт".
Наверное самый овняный из тех, которые можно было сделать.
Где сложение 2 чисел это уже UB. И этих UB хоть πоπой кушай.
Где один и тот же код дает разный результат в зависиммости от компилятора и даже его версии. Где ни один компилятор не реализует стандарт полностью...

> Наверное потому, что стоя на плечах гигантов, луче видно, да?

И видно что они просто делали на отшибись?
И может они не такие уж гиганты.

Ответить | Правка | Наверх | Cообщить модератору

132. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от Пюре (?), 03-Янв-25, 23:37 
А, вот, мне это нравится.
Стандарт на Pascal  - 1983 год (13 лет от появления)
Стандарт ALGOL как родоначальника большинства системных языков - 1984 год (~24 года от появления).
С - посчитайте сами. Лучше возьмите за базу K&R C то есть 1978 год.
Не стоит козырять стандартом. До стандарта доживают те, кому что то удалось.

>Где сложение 2 чисел это уже UB.

Так, а список компилируемых языков со статической типизацией, на то время, "которые уже используются годами", и таки нативно обрабатывают целочисленное переполнение, видимо пуст?
Или в _тех_ языках есть какой то механизм (для программиста) проверки переполнения?
Особенно подходящих для системного программирования?

В современных то - Rust "Integer operators will panic when they overflow when compiled in debug mode." Ой, а в release mode что, overflow не бывает? О, нужно, чтобы программист сам проверял, да? Ну то есть как и везде. Особенно в ядре, да :)

И как то, если уж  кое кто считает, что "C это такой макроассемеблер" (нет), то в ассемблере вообще нет никакой типизации. И проверку переполнения можно делать.

Я согласен, плохо, что факт переполнения спрятали. Но другого почему в системных языках то почти нет.

Что касается Ada, то да, язык хорош. И родился сразу стандартом, DOD поспособстовал. Но что мне кажется, что ломать системный язык (С, на который к тому времени уже было переписано несколько вариантов Unix) с целью добиться чего то большего (концепции, утверждённые в стандарте Ada), ну так себе идея.
Ну и, опять же ОС на Ada не мировые лидеры. ХЗ, может сложность языка всё же имеет значение.

>И видно что они просто делали на отшибись?
>И может они не такие уж гиганты.

Да? Вы уже повторили их дела? На их оборудовании? И с их ограничениями? На всех этих UNIVAC и PDP и VAX?
Или перестали пользоваться всем, что появилось благодаря их работе?
Только тогда, я щитаю, можно лить gov.no на все предыдущее.
Вы не прошли и шага в их обуви.

ЗЫ. Я не пытаюсь убедить этого анонима. Я пытаюсь предостеречь других от поспешных суждений.

Ответить | Правка | Наверх | Cообщить модератору

147. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (147), 05-Янв-25, 07:25 
> Я согласен, плохо, что факт переполнения спрятали. Но другого почему в системных языках то почти нет.

Тот аноним пишет про UB и вроде как понимает, что это такое. А ты нет.

Он не говорит об отсутствии доступа к факту переполнения. Совсем. Он говорит про допущение у компилятора о том, что знаковые целые никогда нигде не переполняются (а появиться они могут "из ниоткуда", потому что unsigned short + unsigned short = signed int). Чтобы в ходе оптимизации выкинуть куски кода, в которых он видит переполнение и иметь шанс набрать ещё копейку в каких-то бенчмарках.

> Да? Вы уже повторили их дела? На их оборудовании? И с их ограничениями?

1. "Сперва добейся"
2. Но да, он повторил дело Денниса Ритчи - указал на недостатки стандарта. "The fundamental problem is that it is not possible to write real programs using the X3J11 definition of C. The committee has created an unreal language that no one can or will actually use."
3. Гнаться за оптимизациями в ущерб стабильности никто не заставлял

> ЗЫ. Я не пытаюсь убедить этого анонима. Я пытаюсь предостеречь других от поспешных суждений.

Сначала матчасть!

Ответить | Правка | Наверх | Cообщить модератору

126. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноньимъ (ok), 03-Янв-25, 21:43 
Потому что могу.
Не ищите слишком глубокого смысла. Вам повезло увидеть мой комментарий.
И ещё анонима выше, который что-то в вопросе понимает.
Ответить | Правка | К родителю #121 | Наверх | Cообщить модератору

119. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (119), 03-Янв-25, 16:05 
В компиляторах тех времен switch был просто набором условных goto на заданные case метки.

Нынешние, вероятно, будут ругаться как минимум warning-ами.

Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

148. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (147), 05-Янв-25, 07:34 
Поверх этой фичи сделан более-менее легитимный Protothreads (библиотеку кооперативной многозадачности на макросах).
Ответить | Правка | Наверх | Cообщить модератору

130. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от Аноним (130), 03-Янв-25, 23:02 
Красивый код не конпиляют, его ставят на полочку и исполняют нативно)
Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

23. "Возобновлено соревнование по написанию запутанного кода на я..."  –2 +/
Сообщение от Данные в так называемом поле Name (?), 02-Янв-25, 16:17 
Думаю с пришествием негросетей подобные соревнования канут в лету. Как и кодгольф, например.
Ответить | Правка | Наверх | Cообщить модератору

39. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от Аноним (39), 02-Янв-25, 17:34 
Очень сомневаюсь что нейросетям когда либо станет доступно то искусство, которое творят люди, увлекающиеся кодгольфом
Банально даже врятли сетки способны написать оптимизированный с код, чтобы генерировались симд инструкции, отсортированные по времени выполнения, чтобы все это правильно работало с кэшэм и памятью
Ответить | Правка | Наверх | Cообщить модератору

51. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (51), 02-Янв-25, 19:09 
«А вы можете?» ©
Ответить | Правка | Наверх | Cообщить модератору

78. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (63), 03-Янв-25, 04:24 
А зачем Си код нейросетям? Пусть сразу на ассемлере пишут. Си сделан для людей чтобы меньше писать, но код оптимизирует уже транслятор с компилятором. Для ассемблера это ненужно и он выдает тот код что был написан без его интерпретации.
Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

104. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (104), 03-Янв-25, 13:50 
Ну, формально, все языки для людей придумывают
Но реальность такова, что люди не могут/не хотят писать код, вот многие и хотят сбагрить сеткам и эту работу, по той же самой причине - писать меньше/вообще не писать
Уже есть же вполне себе codeless, или как там оно называется, даже видел "айти курсы" по этому делу, типа за день научат как мышкой написать сервис
Ответить | Правка | Наверх | Cообщить модератору

68. "Возобновлено соревнование по написанию запутанного кода на я..."  –1 +/
Сообщение от Аноним (68), 02-Янв-25, 21:23 
Кодгольф нынче не канул в лету, он порвался вклочья под натиском специализированных языков.

Зайдите на codegolf.stackexchange.com, поглядите, как это нынче выглядит.

Ну или https://esolangs.org/wiki/Category:Golfing_language — чтоб уж окончательно ужаснуться.

Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

128. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (128), 03-Янв-25, 22:47 
На специализированных языках гольфят очень странные люди. Обычно программист на языке foo, на языке foo же и соревнуются. Такие вот соревнования позволяют глубже изучить инструмент который используешь на работе и бонусом повеселиться.
Ответить | Правка | Наверх | Cообщить модератору

33. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от 12yoexpert (ok), 02-Янв-25, 17:19 
просто кусок из официального учебника самого безопасного языка

impl List {
    fn tail(&self) -> Option<&RefCell<Rc<List>>> {
        match self {
            Cons(_, item) => Some(item),
            Nil => None,
        }
    }
}

Ответить | Правка | Наверх | Cообщить модератору

35. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (35), 02-Янв-25, 17:24 
Это просто жениально!
Ответить | Правка | Наверх | Cообщить модератору

41. "Возобновлено соревнование по написанию запутанного кода на я..."  –2 +/
Сообщение от Аноним (142), 02-Янв-25, 17:51 
И что тут неясно? :-/
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

42. "Возобновлено соревнование по написанию запутанного кода на я..."  –2 +/
Сообщение от Аноним (-), 02-Янв-25, 17:54 
И? Что не так?
Длинные слова тебя расстраивают?
Или непонятные значки не позволяют понять, что написано?
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

53. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (60), 02-Янв-25, 19:21 
Не зря Раст называют худшим языком в мире.
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

55. "Возобновлено соревнование по написанию запутанного кода на я..."  –1 +/
Сообщение от Аноним (-), 02-Янв-25, 19:28 
> Не зря Раст называют худшим языком в мире.

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

Ответить | Правка | Наверх | Cообщить модератору

58. "Возобновлено соревнование по написанию запутанного кода на я..."  +2 +/
Сообщение от Аноним (60), 02-Янв-25, 19:54 
Это толстые тролли и боты. Хорошему языку не нужны рейтинги чтобы быть хорошим.  Он просто хороший.
Ответить | Правка | Наверх | Cообщить модератору

57. Скрыто модератором  +/
Сообщение от Аноним (57), 02-Янв-25, 19:48 
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

67. "Возобновлено соревнование по написанию запутанного кода на я..."  –2 +/
Сообщение от Аноним (67), 02-Янв-25, 21:17 
И что тут плохого? Что тут недоступно познанию сишников
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

84. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (84), 03-Янв-25, 07:15 
Что именно тебя пугает?

Параметризация по типам (дженерики)? Это стандартная фича всех современных языков, как минимум что бы какой-нибудь List или Map знали, какого типа элементы внутри них содержаться. Ну там, List<String> - список строчек, Map<String, List<Integer>> - сопоставление ключ-значения, где ключ строка, значение список чисел.

Или тебя пугает match? Pattern matching - менее распостранённая фича, но довольно простая а понимании. Можно про неё думать, как про чуть более умный switch/case.

Я кажется начинаю догадываться, почему от раста и именно от раста вылезло на поверхность так много людей, у которых бомбит. Потому, что раст и только раст создал настоящую конкуренцию Си, все остальные современные языки - java, kotlin, scala, c# - это сборщики мусора и медленный, прожорливый код, они и не собирались заменять там, где требуется эффективность по ресурсам. Поэтому, вылезшие из спячки сишники в их сторону никогда и не смотрели. Поэтому, все эти «новые» фичи, которым уже по 20 лет - для них что-то запредельное.

Добро пожаловать в 2025 год, вы уже не в 1995-ом.

Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

88. Скрыто модератором  +/
Сообщение от Аноним (-), 03-Янв-25, 08:23 
Ответить | Правка | Наверх | Cообщить модератору

101. Скрыто модератором  –1 +/
Сообщение от Аноним (-), 03-Янв-25, 13:29 
Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

116. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноньимъ (ok), 03-Янв-25, 15:15 
Напишите тоже самое на сишке)
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

118. Скрыто модератором  +/
Сообщение от Аноним (67), 03-Янв-25, 15:42 
Ответить | Правка | Наверх | Cообщить модератору

137. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от 12yoexpert (ok), 04-Янв-25, 07:58 
> нет сопоставления с образцом

от создателей системного лотка, ***ть. господи, выучи терминологию, а потом суйся на технические сайты

>  Напишите тоже самое на сишке)

в сишке придётся думать, как написать настолько же нечитаемо, в расте по-другому писать не сможешь

а спрашивать, как написать tail списка на сишке, - это даже не смешно

Ответить | Правка | К родителю #116 | Наверх | Cообщить модератору

141. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноньимъ (ok), 04-Янв-25, 18:21 
> от создателей системного лотка, ***ть. господи, выучи терминологию, а потом суйся на
> технические сайты

Вы двум разным людям отвечаете одним комментарием. Всё в порядке?

> в сишке придётся думать

Сложно. Понимаю.

> а спрашивать, как написать tail списка на сишке, - это даже не
> смешно

А вас же не это просят написать, а функционально повторить вот тот код на хрусте.

Ответить | Правка | Наверх | Cообщить модератору

36. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (-), 02-Янв-25, 17:26 
>В отличие от прошлых конкурсов, отныне в исходном коде разрешено использовать кодировку UTF-8.

Не знал, что они были такими отсталыми.

Ответить | Правка | Наверх | Cообщить модератору

44. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (18), 02-Янв-25, 18:05 
UTF-8 в исходниках (даже в комментариях)  - бpeд. По тyпocти это как официальный совет офтопика - для каждой локальной версии создавать отдельное приложение.
Ответить | Правка | Наверх | Cообщить модератору

52. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (51), 02-Янв-25, 19:12 
И в чём бред? На старой EGA-карте в текстовом режиме не отобразится?
Ответить | Правка | Наверх | Cообщить модератору

77. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноньимъ (ok), 03-Янв-25, 04:20 
Ну да.
А писать лямбда и набла в переменных это не бред
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

146. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (143), 04-Янв-25, 20:07 
А если printf должна что-либо на консоль вывести на национальном языке, транслит - ваше фсё?
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

62. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (62), 02-Янв-25, 20:47 
Даёшь идентификаторы на кириллице! А лучше вперемешку с латиницей, и приправить арабской вязью.
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

71. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от Аноним (72), 03-Янв-25, 00:42 
Ты что, на 1с никогда не программировал?
Ответить | Правка | Наверх | Cообщить модератору

106. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (62), 03-Янв-25, 14:02 
Нет. У меня нет проблем с кириллицей, но мешанина из кириллицы и латиницы — это ужасно, учитывая, что есть одинаковые на вид символы.
Ответить | Правка | Наверх | Cообщить модератору

87. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от Аноним (-), 03-Янв-25, 08:19 
Ты путаешь причину и следствие. В чистом Си, Юникод  разрешили разрешили потому, что он является приемлемым мировым Стандартом. Никто в здравом уме не будет в исходники серить кириллицей или арабской вязью. Есть в конце концов правила написания исходного кода, от сообществ GNU, BSD, ядра; K&R и т.д.

Организаторы соревнования думают так же. Ядре Линукса тоже на UTF-8, и чо?! Кто-то по этому поводу ноет?

Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

91. "Возобновлено соревнование по написанию запутанного кода на я..."  –1 +/
Сообщение от Аноним (18), 03-Янв-25, 10:09 
> Ядре Линукса тоже на UTF-8, и чо?!

Разве всё ядро Linux не на финском языке написано?

Ответить | Правка | Наверх | Cообщить модератору

94. "Возобновлено соревнование по написанию запутанного кода на я..."  –1 +/
Сообщение от Аноним (-), 03-Янв-25, 11:55 
>Разве всё ядро Linux не на финском языке написано?

То что ты перешёл на троллинг, свидетельсвует о том, что у тебя исчерпаны аргументы.

Ответить | Правка | Наверх | Cообщить модератору

105. "Возобновлено соревнование по написанию запутанного кода на я..."  –1 +/
Сообщение от Аноним (104), 03-Янв-25, 13:55 
Жаль когда Линус ядро писал, никто не подсказал ему сначала сделать свой форк Си и назвать его Фи(где писать надо на Финском)
Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

113. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (60), 03-Янв-25, 14:40 
Лучше бы ему подсказали ничего не писать.
Ответить | Правка | Наверх | Cообщить модератору

114. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (-), 03-Янв-25, 14:40 
> Жаль когда Линус ядро писал, никто не подсказал ему сначала сделать свой форк Си и назвать его Фи(где писать надо на Финском)

А разве GNUтые расширения гвоздями прибитые к ядру - это не "форк"?
Типичное ЕЕЕ и вендорлок в стиле корпоратов.


Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

144. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (143), 04-Янв-25, 20:01 
А как же ядро Шлангом собирают некоторые дистры?
А на корпоратов что, вруг, бочку катишь? Ты же их любишь.
Ответить | Правка | Наверх | Cообщить модератору

107. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (62), 03-Янв-25, 14:04 
Согласен, тупанул. Откуда-то появилась мысль про не-ASCII идентификаторы.
Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

74. "Возобновлено соревнование по написанию запутанного кода на я..."  –2 +/
Сообщение от Аноним (74), 03-Янв-25, 03:43 
Любой код на Си (и Расте) - запутанный.
Ответить | Правка | Наверх | Cообщить модератору

145. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (143), 04-Янв-25, 20:03 
Да на Расте даже и специальных соревнований устраивать нет необходимости.
Ответить | Правка | Наверх | Cообщить модератору

95. "Возобновлено соревнование по написанию запутанного кода на я..."  +1 +/
Сообщение от Аноним (93), 03-Янв-25, 12:12 
Ну не знаю. Всегда считал, что чем больше знаков препинания, тем хуже язык читается. Не зря же Бейсик самый читаемый. Потому мне всегда нравился Паскаль, где все пишется "словами". Но недавно перешел на C/C++. И в принципе если нормально писать, то получается достаточно читаемый код. Есть конечно там свои плюсы и минусы. Язык конечно помощнее. Но недостатки тоже есть. Кривая типизация например. Очень бесит, когда две переменных одинакового типа вдруг оказываются неприсваиваемыми без объявления оператора. Бесит, массивы присваивать нельзя, а если обернуть их в структуру - то можно. Ллогика, ога. Или когда перечисления вдруг оказываются не перечисляемыми типами (простите за каламбур) и для них опять же не работают операции типа ++/-- без объявления операторов.
Ответить | Правка | Наверх | Cообщить модератору

96. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от wd (?), 03-Янв-25, 12:41 
в перлигате еще меньше пунктуации, она самая читаемая, ну если не смотреть на всякие "Moo"
Ответить | Правка | Наверх | Cообщить модератору

97. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (97), 03-Янв-25, 12:46 
используй std::vector, Люк.

а ++/-- для enum хорошо, что не добавляют. я не хочу каждый раз думать, это инкремент underlying типа или следующие существующее значение enum-a

Ответить | Правка | К родителю #95 | Наверх | Cообщить модератору

102. "Возобновлено соревнование по написанию запутанного кода на я..."  –2 +/
Сообщение от Аноним (-), 03-Янв-25, 13:46 
>Не зря же Бейсик самый читаемый. Потому мне всегда нравился Паскаль, где все пишется "словами". Но недавно перешел на C/C++.

Дорогой ты мой человек, человечище! Где ты был всё это время, в НИИ, а может ты преподавал в универе? На Дельфи (Паскале) перестали писать ещё в конце нулевых. На Бейсике в последний раз писали в начале 1990-х гг, а VBA используют только в M$ Excel, и это уже не совесм тот Бейсик.

>C/C++

Бедняжка, ты ещё не можешь отличить чситый Си от плюсов? Для тебя это один язык, да? переходи на модные язык Python или Rust. Java уже не модная, хайп поднятый в 90-х и нулевых давно спал.

Ответить | Правка | К родителю #95 | Наверх | Cообщить модератору

109. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от 12yoexpert (ok), 03-Янв-25, 14:12 
раст для тех, кто не понимает, что с++ это надстройка над си
Ответить | Правка | Наверх | Cообщить модератору

110. "Возобновлено соревнование по написанию запутанного кода на я..."  –1 +/
Сообщение от Аноним (-), 03-Янв-25, 14:23 
> раст для тех, кто не понимает, что с++ это надстройка над си

Нет, как раз для тех - кто понимает.
Что с++ построен на том же гнилом фундаменте из UB, что и СИ.
И что в плюсах, несмотря на все улучшения, остаются те же типичные ошибки, что и в СИ.
А добавление всяких smartPtr, MiraclePtr помогают только частично.

Именно поэтому гугл старается новый код на с++ в андроиде писать на расте, везде где возможно.

Ответить | Правка | Наверх | Cообщить модератору

120. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Java (?), 03-Янв-25, 16:10 
ты хотел сказать : "код на java писать на kotlin"
Ответить | Правка | Наверх | Cообщить модератору

131. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от dcc0 (ok), 03-Янв-25, 23:26 
Любой  код болше 100 строк, где  используются имена переменных и функций в виде букв ("математический стиль"), будет запутанным.
Я писал так.
Ответить | Правка | Наверх | Cообщить модератору

136. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от Аноним (-), 04-Янв-25, 07:21 
Я тоже немного страдал этим, задрачивался на математический стиль. У Кормена в псевдокоде такое видел, думал так будет систематичнее и академичнее. Ошибался. Систематичо не означает однобуквенные идентификаторы. Такое трудно читать. Читабельность должна быть на самом первом месте.
Ответить | Правка | Наверх | Cообщить модератору

140. "Возобновлено соревнование по написанию запутанного кода на я..."  +/
Сообщение от dcc0 (ok), 04-Янв-25, 16:00 
> Я тоже немного страдал этим, задрачивался на математический стиль. У Кормена в
> псевдокоде такое видел, думал так будет систематичнее и академичнее. Ошибался. Систематичо
> не означает однобуквенные идентификаторы. Такое трудно читать. Читабельность должна быть
> на самом первом месте.

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

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

И ещё психологический момент: если сильно увлечься стилем, можно потерять фокус внимания на содержании.

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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру