Post ADEbkXRcIQ6Iv8j2Uy by wire@anarchism.space
 (DIR) More posts by wire@anarchism.space
 (DIR) Post #ADEbkNLDrL2naPen8y by hugeping@mastodon.social
       2021-11-09T17:15:45Z
       
       0 likes, 0 repeats
       
       Новая статья на станции ping. Си должен умереть? https://club.hugeping.ru/9Qqh3fEBRA9SW48rMQhh
       
 (DIR) Post #ADEbkNvNgty3OYZfVI by iron_bug@friendica.ironbug.org
       2021-11-09T18:14:54Z
       
       0 likes, 0 repeats
       
       Си не "прост". он минималистичен и изящен. остальное зависит от программиста. угрозу в нём видят только неосиляторы. проблемы не в Си, а у них в головах. а на Си можно писать что угодно, я с удовольствием на нём пишу и не вижу проблем.
       
 (DIR) Post #ADEbkOWxRC1dH69g4e by hugeping@mastodon.social
       2021-11-09T18:19:32Z
       
       0 likes, 0 repeats
       
       @iron_bug Так как я люблю Си, то мне хочется согласиться. Особенно учитывая то, что в реальности ошибок на выход за границы буфера (к примеру), я даже не помню, когда видел последний раз. Но всё-таки хочется какой-то современный Си. Мне вот Go понравился, тоже маленький и с душой. По кр мере в первых версиях... ;) Но это другое всё-таки.
       
 (DIR) Post #ADEbkP5LNLWyzkF8fg by wire@anarchism.space
       2021-11-09T18:36:04Z
       
       0 likes, 0 repeats
       
       @hugeping @iron_bug В C хотелось бы удалить препроцессор. И тогда придется делать модули, чтобы не нужно было делать include. А когда нужно нагенерить однотипного когда, есть m4, специализированные трансляторы вроде yacc и просто шелл-скрипты с циклами и выводами heredoc через cat.
       
 (DIR) Post #ADEbkPhd509iuU9iLY by wire@anarchism.space
       2021-11-09T18:38:33Z
       
       0 likes, 0 repeats
       
       @hugeping @iron_bug О, я вспомнил. Вот язык новый https://harelang.org/ от Drew DeVault, как раз то что нужно. Как Go без сборщика мусора или C без препроцессора.
       
 (DIR) Post #ADEbkQLKhNumtcjQES by iron_bug@friendica.ironbug.org
       2021-11-09T18:44:36Z
       
       0 likes, 0 repeats
       
       в Си препроцессор необязателен. можно всё это разнести по файлам для компиляции, а конце концов. а для строгой типизации лучше юзать typedef. с препроцессором просто удобнее некоторые вещи делать. но, например, избыток макросов, как в OpenSSL - это мрак. там реально иногда сложно найти оригинальное определение, потому что макрос на макросе и вложенность макросов такая, что уже забываешь, откуда копать начал.
       
 (DIR) Post #ADEbkQsehUZOYyK2Ai by minoru@functional.cafe
       2021-11-09T19:23:58Z
       
       0 likes, 0 repeats
       
       @iron_bug а для строгой типизации лучше юзать typedeftypedef создаёт синоним, а не новый тип, так что никакой строгой типизации с ним не построишь.@hugeping @wire
       
 (DIR) Post #ADEbkRROcKMKIiZmK0 by iron_bug@friendica.ironbug.org
       2021-11-09T19:28:05Z
       
       0 likes, 0 repeats
       
       но компилятор достаточно строго проверяет типизацию. не указатели, конечно. но подразумевается, что программист понимает, что он делает. вменяемость - это базовое требование к писанию кода на См :)
       
 (DIR) Post #ADEbkS3KLIhUCMK4Rc by minoru@functional.cafe
       2021-11-09T19:40:23Z
       
       1 likes, 0 repeats
       
       @iron_bug Если бы программисты понимали, что делают, то понятия «отладка» не существовало бы. Программист мог бы сразу правильно сформулировать мысль на языке машины, не упуская из виду все эти UB, типизацию, corner cases и прочее. Так что все эти «вменяемость подразумевается», «мозги должны быть» — это просто отказ от реальности, попытка заявить, что человек непогрешим. Если смотреть на ситуацию более трезво и признать, что даже самые крутые программисты постоянно лажают, то идея впилить в компилятор побольше проверок видется более здравой. Ну, а дальше уже рукой подать по идеи о более мощных языках, благодаря которым можно вложить в код больше информации.@hugeping @wire
       
 (DIR) Post #ADEbkXRcIQ6Iv8j2Uy by wire@anarchism.space
       2021-11-09T19:01:01Z
       
       0 likes, 0 repeats
       
       @hugeping @iron_bug По-моему прикольно: https://git.sr.ht/~sircmpwn/hare/tree/master/item/io/copy.haМодули, pattern matching для nullable указателей, defer (подкладывает указатель на блок кода на стек вызовов) на замену типичного паттерна с goto в конец функции, возврат значений из блоков кода. Но в то же время почти сишка, без рантайма и сборщика мусора. Спеку в стиле стандарта C взялись писать: https://harelang.org/specification.pdf