Сергей @rukhi7
software developer, радиоинженер
Information
- Rating
- 6,040-th
- Date of birth
- Registered
- Activity
Specialization
Embedded Software Engineer, Software Architect
Lead
C#
C++
C
Multiple thread
Programming microcontrollers
Embedded Linux
Bash
Ubuntu
English
Git
Я на С/С++/С# пишу по большей части. Мне вот знаете что интересно с точки зрения типов: в принципе декларация типа структуры и декларация функции в Си-ххх это список типов, структура это список типов полей, функция это список типов аргументов + тип результата.
В чистом Си целая, (как назвать?), техника есть когда структура принимает указатель на свой тип - такая рекурсия типов получается. В ядре Линукс все на этом построено.
В принципе в функцию тоже можно передать указатель на функцию с той же сигнатурой, но это как то не нашло практического применения.
Я на хаскеле не писал. Но интересно было бы посмотреть как там компилятор выводит типы функций, я ни разу не видел.
Может дело не в языке, а в том кто его использует? У кого-то лучше получается на плюсах, у кого то на хаскеле, на Джаве, на Тайп-скрипте, ... ?
Я надеюсь это не обидное предположение, тем более вам же наплевать на мои аргументы, вы считаете мои (только мои? или те с которыми невозможно спорить?) аргументы аргументами соломенного пугала :) .
Я привязался не к "любой запятой", а к той запятой на которой, как мне показалось, мне будет проще всего и нагляднее всего продемонстрировать тенденцию, тем более вы тоже повторно сослались на эту запятую, то есть она как бы не совсем любая и для вас...
Действительно стало что-то понятно.
По моему, под типом функции имеется ввиду тип контекста в котором выполняется функция (может выполняться) причем существует некий нулевой (пустой) контекст - контекст чистых функций, а есть например IO-контекст. То есть когда у функции есть контекст - и она с ним может работать функция не является чистой.
Да пожалуйста! Только начнем вот с этого:
Что ж вы постеснялись его скопировать? Вот он:
Я вижу здесь утверждение близкое к тому что на плюсах функция может делать не понятно что, а в хаскеле функции делают исключительно то что нужно. И отсюда я делаю вывод что вы считаете что на хаскеле функции сами собой получаются ЛУЧШЕ чем на плюсах.
Да! Я маленько утрировал написав про совершенство, но, по моему, именно что маленько, потому что любая идея об исключительности (даже языка программирования!) в конечном итоге ведет к идее исключительного превосходства, на сколько я знаю.
Кстати ваше заявление в виде "
то я знаю
" тоже тянет на претензию в превосходстве! Вы объявили себя авторитетом которому НУЖНО верить на слово. Вроде как если уж ВЫ об этом знаете, это не подлежит сомнению.то есть все функции в стиле ФП это просто совершенство по вашему? Или что вы хотите сказать этим вашим "нельзя написать", что это гарантирует?
Только учтите, что если это совершенство, то непонятно здесь:
что вы собрались рефакторить! Рефакторить совершенство как-то не логично.
Вы не путаете тип функции и тип результата, который возвращает функция?
так map, filter, reduce это же просто функции, их кто-то должен написать... то есть ФП это программирование для тех, для кого написание функций map, filter, reduce это магия, получается. Получается ФП это такая мечта о программировании без программирования, получается - как бы ничего нового! В самом начале были мечты о том что физики будут писать программы каким-то своим особенным способом не вспоминая про адреса в памяти, про различия типов памяти как памяти программной и памяти области данных, про адреса, указатели, ссылки, загрузки-передачи данных, ...
И наверно быстрее Ассемблера, на котором все это в конечном итоге выполняется! Да-да-да, охотно верим.
В теории у нас три миллиона долларов, а на практике ... непонятно что.
А если горизонтально?
Я придумал новый язык! Там код читается по диагонали, это новое слово в программировании, я обещаю... через несколько лет... ну может через пару десятков лет, увидите, все перейдут на диагональное программирование!
я же просил расказать как ВЫучить, а не как обучаться! Обучаться любой дурак может.
Интересно почему нет ни одной статьи о том как выучить математику, диф-уры,матанализ, ...
Там тоже много чего интересного.
вообще-то, если виртуальные функции используются там, где их эффективность или не эффективность может на что-то влиять, это, скорее всего, само по себе уже ошибка.
Класический пример когда вы создаете какой-нибудь
TenantStore
как здесь например, будет ли вас заботить эффективность виртуальных функций? Очень сомневаюсь!
только что-то не видно оканчания копирования! По моему эта функция тянет максимум на звание:
start_dma_memcpy_custom(...)
и, соответственно, совершенно непонятно, а где же
wait_dma_memcpy_custom()
или
dma_memcpy_custom_ready()
но если это все внутри функции
DMA_StartChannel()
то это название как минимум вводит в заблуждение.для файлопомойки легко можно использовать SSD диск на терабайты, зачем нам сервер, хотя... в любом диске контроллер есть получается это тоже сервер.
По этому поводу наверно можно даже диссертацию написать, о том как анализ известного решения задачи, например через разложение этого решения на простые множители, позволяет найти эффективный метод решения этой задачи. Я хорошо помню как в школе я иногда заглядывал в ответы и это сразу помогало найти хитрый способ решения любой хитро-закрученной задачи.
Но мне интереснее было бы написать диссертацию о критериях эффективности реализации алгоритма на заданной системе команд, заданной разрядности (то есть на заданном ассемблере). Для примера DCT, Хафмана, LDPC, ... на MMX-ах, SSE, ...
Потому что решение может конечно Искусственный Интеллект сгенерировать, но если у нас нет объективных критериев оценки этого решения численных, распространять это решение будет чревато.
Интересно, кстати, получилось бы применить теорию множеств при формулировании таких критериев, пригодилась бы она там?
тем более интересно как так получается - производители(разработчики) и образование жувут в параллельных реальностях получается, или почему они не могут использовать наработки? Или наработки не подходят для практических решений?
ну а почему тогда ip-ядра на родине не ищет отечественный производитель:
https://habr.com/ru/articles/415435/comments/#comment_28348668
мы конечно никогда не узнаем.
если вы пишете на Си или С++, можно написать свою программу которая будет не с задержками работать, а отвечать сразу после ответа от устройства на предыдущую посылку, например, и вообще будет полная свобода в общении с девайсом. Поручите студентам написать такую тулзу это для них будет замечательной практикой. Лучше пару дней потерять, потом за час долететь :) !
я не у верен что можно применить здесь слово поломано, по-моему оно не родилось, но может я просто не в курсе достижений компьютерной архитектуры в предыдущие годы, но опять же не уверен что это как-то было связано с образованием. В России нет образования которое хотя бы косвенно затрагивало вопросы компьютерной архитектуры, мне кажется. А если эти вопросы где-то и затрагиваются то с очень развесистой лапшой, что на самом деле только способствует деградации в этой области.
Поддерживая ваши наблюдения и выводы: мне кажется что вся компьютерная или ИТ отрасль переходит в период чего-то подобного средневековой религиозной схоластики когда главным считается способность
посчитать ангелов на конце иглы, способов вывести ведьм/бесов на чистую воду,...вывести умные формулы сложности абстрактных алгоритмов, поддерживать беседу о пользе разных типов скобок в синтаксисе языков... Интересно как долго придется ждать эпохи возрождения?а куда торопились-то? Сделать демонстрацию и забыть? Зачем тогда об этом статьи писать, если это все не серьезно?
неужели на родине, во всех ее университетах нет компетенции по созданию I2S-ядра? Это же не сложнее SPI или UART! или родине не нужны такие компетенции? Грустно это.
ну если вы раскроете логику по которой у вас получилось что "
Hal пишется для примера
" превращается в "пишется "на выброс"
", я смогу ответить более предметно, а пока я не понимаю как у вас получилось это превращение. Я конечно умею мысли читать, но не на расстоянии! Мне надо прикоснуться :) , ну иногда фотография помогает, но не электронная :).