я еще раз спрашиваю причем тут язык? что за деградация пошла. Почему язык должен проверять твои ошибки или законность твоих требований? Язык тебе дан для описания процесса а не для его проверки. Есть специальные инструменты для проверок всего что тебе надо. Язык не описывает стандарты алгоритмов. Язык программирования описывает действия а не диктует их.
Это как сказать хочу что бы в Си было встроено подключению к базе данных.
Поэтому Си останется языком программировании а не средой разработки как все ваши новомодные «Языки». Нужен парсер ищи на гите. Нужен драйвер для БД, Ищи на гите. а еще лучше сделай сам. тыж программист.
Сортировки с типом чуть умнее, чем qsort. Списки-массивы те же. Ассоциативные контейнеры. Парсеры на комбинаторах.
так это не к языку предъява а к тебе как программисту.
Нулевая поддерживаемость — компилятор не ловит ошибки (ведь у него же нет информации о типах).
а ты там зачем нужен?
Можете привести пример парсера на комбинаторах на C? Не кодогенеренный lex/yacc/etc, а вот ну хотя бы как boost.spirit, я уж не говорю о вещах типа megaparsec/trifecta/etc?
я в парсерах не силен но могу с уверенностью сказать что опять таки если ты не можешь описать алгоритм действий на простом Си то лучше конечно пойти пасти коров.
int Get() не утраивает? че за бред с get: IO int ? как сигнатура функции может отвечать за ее процесс? Слабая система типов? как типы или сигнатура функции отвечает за ее исполнение? Какая слабая система типов?
А по поводу писать свой язык ради дженериков. Еле палы вы молодые такие ленивые и совсем думать не хотите.
Если тебе надо мета программирование то задайся вопросом как компилятор решает эту проблему. Если ты хочешь дженерик контейнеры посмотри как glib это организовал. Штука просто отличная и использовать раз в 100500 удобней не говоря уже про понятность кода.
Так что именно из этого тебе надобно? Все есть. все удобно и эффективно в отличии от массива библиотек вроде бустов и всякой дребедени.
Вопрос остаётся только в скорости разработке на Си. Да это дольше если ты нубас и не вникаешь в суть дела. Да это тяжелее если ты не вникал в саму суть проблемы. Но если ты подкован в теме то реализация функционала на Си очень проста и прямолинейна без лишних абстракций ради абстракций. В этом случае разработка течет очень быстро и без проблем.
Когда у людей проблемы с Си: когда новые программисты привыкли что есть куча библиотек с готовыми решениями и простыми интерфейсами. Но нам не платят за готовые решения. Да есть джава и си шарпы, да они удобны для написания бизнес логики но это маркетинг. Все тоже самое можно сделать на Си ну или на С++ без каких либо проблем (хотя с++ высший уровень мазохизма конечно)
чет ты загнул конечно, посмотреть на тип функции (на тип функции карл) и понять что функция не пишет в файл. Может ты имел тип который функция вернет но причем тут писать в файл. Тут уже пахнет каким то вуду а не программированием.
Допустим вот сигнатура функции (может ты это имел под типом)
void Get();
иди определи что она пишет и куда и не говори мне что тут Си виноват
Я вообще задаюсь вопросом таким вот — Си самый эффективный язык для именно программирования. И я не говорю про производительность там или его близость к железу (че за бред вообще). Вам нужно ООП? Так пожалуйста пишите ООП на голом Си (или ваш JVM написан на чем то другом ?). В Си говорят нет таких понятий как полиморфизм и всей той новомодной лабуды? А как вы думаете откуда это пришло, правильно в Си был и есть полиморфизм наследование и вся прочая хрень которую вы так любите (Сука лямбды нету, тут реально обидно). Так вот к чему я это все, Си просто язык и дает вам свободу делать что в голову вам пришло. В отличии от ваших модных языков которые подают вам паттерн который по их мнению лучший и потом спорят о его величии и количестве сектантов.
Заметка для слоупоков полиформизмв си:
(foo*) bar
Заметка для слоупока: наследование
struct foo{
bar __base__;
}
Заметка ну совсем для долеких 3:
(bar *) foo //теперь мы обращяемся к базе класса
А там уже и можно деструктор и виртуальный деструктор прикрутить и все че хочешь.
Вставлю свои 5 копеек. Дома держу небольшую инфраструктуру, облачко. Все на Ubuntu 18, не вижу смысла переходить на другие дистрибутивы. Работает все стабильно и привычно. Пробовал гонять цент, но не зашло мне.
По поводу тех поддержки, за 8 лет даже мысли не было куда то писать и решать какие-то проблемы. Все работке как часы, бывают конечно проблемы но тут уже не от дистрибутива корни росли.
Градиенты хранить надо в шейдерах. Занимает несколько сотен байт на весь градиент. При необходимости использовать — пропускать через этот шейдер нужный буфер, то есть при заливании объекта градиентом (спрайта) используем несколько подходов рендеринга. На выходе имеем меньше места на диске и управляемый градиент. Такой же метод используем для текстур, конвертируем картинки в 16 бит на всю палитру (rgba4444) занимает меньше места и при желании можно произвести дешевый апскейл через дитеринг. Да и вообще на iOS с поддержкой CoreMl можно ещё и разрешение скейлить.
Не верно, Массив заполняеться до нажатия первой ячейки. Массив находиться на 01005360 если правильно помню. Бомба/Мины имеют значение 8F а пустые клетки имеют 0F. при вкрытии клетки, заполняються соседнии клетки «возможности» расположения там бомбы, а не сами бомбы.
Проверить очень просто, в Cheat Engine выставить понтер на 01005360 и посмотреть что пишет в этот массив. mov dword ptr[eax+"offset"], -80 инструкция которая пишет в массив. ставим брейк поинт и видим что массив заполнен перед началом игры.
Также хочу добавить что при первом клике и попадании на бомбу значение будет заменено на 0F
Но нечто, реально сложное и многофункциональное, написать на асме практически невозможно
ты же понимаешь что асм это не язык програмирования, а инструкция процессору. на нем не пишут полезное а дают инструкции процессору.
код будет фактически не_переиспользуемым мусором, крайне сложноподдерживаемым и платформозависимым
Ты точно ничего не употреблял? Платформозависимый? может наоброт это платформа зависит от инструкций а не наоборот?
если речь не о разработке чего-то крайне эффективного под какой-то конкретный «камень»
Ты наркоман. это факт. А теперь факт про конкретный камень, открой исходники линукса, там есть папка с кодом для поддержки разных камней. зачем же это? Объясню, твоя платформа зависит от камня. и эффективность твоей поллезной программы на джавасрипте тоже зависит от того какие инструкции процессор может выполнить а какие нет.
Вот допустим есть процессоры которые не поддерживают набор дополнительных инсрукций SSE4.1. в этом наборе классные инструкции для работы с нецелыми числами которые ты пользуешь в графики например. И вот вместо использования «камня» ты делаешь тоже самое только на уровне ПО, и на тебя все показывают пальцем, ржут.
И твой компилятор может быть вообще не вкурсах что именно ты хочешь делать поэтому оптимизировать должен ты.
Ну кароче, больше не говори что ассемблер это язык программирования. и что он бесполезен.
11 строк кода обрушили сборки тысячи проектов включая сам реакт. а все из за корпоротивной шняги.
Вообщем один дурак создал проект kik, но оказалось что есть компания с таким именем и те дураки грозили ему судом. npm отдали название пакета компании, в знак протеста чувак вообще удалил все репозитории с npm, ну ивообщем поехало.
Ну писать на ассемблере это кататся на велосипеде. навых необходимый каждому разработчику. Если разработчик не знает как устроен апарат и что происходит на самом деле то как он может вообще зватся разработчиком?
Вот я возьму и вызову strlen на аргумент инт. И где тут ограничения?
ну тут вообще просто огонь. В Си все функции пытаются делать что ты с несуществующими аргументами.
Это как сказать хочу что бы в Си было встроено подключению к базе данных.
Поэтому Си останется языком программировании а не средой разработки как все ваши новомодные «Языки». Нужен парсер ищи на гите. Нужен драйвер для БД, Ищи на гите. а еще лучше сделай сам. тыж программист.
так это не к языку предъява а к тебе как программисту.
а ты там зачем нужен?
я в парсерах не силен но могу с уверенностью сказать что опять таки если ты не можешь описать алгоритм действий на простом Си то лучше конечно пойти пасти коров.
Если тебе надо мета программирование то задайся вопросом как компилятор решает эту проблему. Если ты хочешь дженерик контейнеры посмотри как glib это организовал. Штука просто отличная и использовать раз в 100500 удобней не говоря уже про понятность кода.
Так что именно из этого тебе надобно? Все есть. все удобно и эффективно в отличии от массива библиотек вроде бустов и всякой дребедени.
Вопрос остаётся только в скорости разработке на Си. Да это дольше если ты нубас и не вникаешь в суть дела. Да это тяжелее если ты не вникал в саму суть проблемы. Но если ты подкован в теме то реализация функционала на Си очень проста и прямолинейна без лишних абстракций ради абстракций. В этом случае разработка течет очень быстро и без проблем.
Когда у людей проблемы с Си: когда новые программисты привыкли что есть куча библиотек с готовыми решениями и простыми интерфейсами. Но нам не платят за готовые решения. Да есть джава и си шарпы, да они удобны для написания бизнес логики но это маркетинг. Все тоже самое можно сделать на Си ну или на С++ без каких либо проблем (хотя с++ высший уровень мазохизма конечно)
Допустим вот сигнатура функции (может ты это имел под типом)
иди определи что она пишет и куда и не говори мне что тут Си виноват
ты тут вообще о чем говоришь?
Заметка для слоупоков полиформизмв си:
Заметка для слоупока: наследование
Заметка ну совсем для долеких 3:
А там уже и можно деструктор и виртуальный деструктор прикрутить и все че хочешь.
По поводу тех поддержки, за 8 лет даже мысли не было куда то писать и решать какие-то проблемы. Все работке как часы, бывают конечно проблемы но тут уже не от дистрибутива корни росли.
Проверить очень просто, в Cheat Engine выставить понтер на 01005360 и посмотреть что пишет в этот массив.
mov dword ptr[eax+"offset"], -80
инструкция которая пишет в массив. ставим брейк поинт и видим что массив заполнен перед началом игры.Также хочу добавить что при первом клике и попадании на бомбу значение будет заменено на 0F
ты же понимаешь что асм это не язык програмирования, а инструкция процессору. на нем не пишут полезное а дают инструкции процессору.
Ты точно ничего не употреблял? Платформозависимый? может наоброт это платформа зависит от инструкций а не наоборот?
Ты наркоман. это факт. А теперь факт про конкретный камень, открой исходники линукса, там есть папка с кодом для поддержки разных камней. зачем же это? Объясню, твоя платформа зависит от камня. и эффективность твоей поллезной программы на джавасрипте тоже зависит от того какие инструкции процессор может выполнить а какие нет.
Вот допустим есть процессоры которые не поддерживают набор дополнительных инсрукций SSE4.1. в этом наборе классные инструкции для работы с нецелыми числами которые ты пользуешь в графики например. И вот вместо использования «камня» ты делаешь тоже самое только на уровне ПО, и на тебя все показывают пальцем, ржут.
И твой компилятор может быть вообще не вкурсах что именно ты хочешь делать поэтому оптимизировать должен ты.
Ну кароче, больше не говори что ассемблер это язык программирования. и что он бесполезен.
Вообщем один дурак создал проект kik, но оказалось что есть компания с таким именем и те дураки грозили ему судом. npm отдали название пакета компании, в знак протеста чувак вообще удалил все репозитории с npm, ну ивообщем поехало.