resolution • (xj 3372 Errors A0cf45Wirangs '1 0 Messages 3u*d0nly Code Description Reference requ / Are Ya Winning Son? :: it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek Are Ya Winning Son? 
resolution • (xj 3372 Errors A0cf45Wirangs '1 0 Messages	3u*d0nly
Code Description
Reference required to assembly '< Missing Core Assembly», VemomtiMty Cdturexnei/lJ one to your project
Reference required to assembly '< Missing Core Assembly». VersonrOMD. Cufture=neut| one to your project.
Подробнее
resolution • (xj 3372 Errors A0cf45Wirangs '1 0 Messages 3u*d0nly Code Description Reference required to assembly '< Missing Core Assembly», VemomtiMty Cdturexnei/lJ one to your project Reference required to assembly '< Missing Core Assembly». VersonrOMD. Cufture=neut| one to your project. Type Diroonar/ is rot def ied Reference required to assembly '«Mining Core Assembly». VenionsOMflt Cufture: neub| one to your project Type Possib «Modules a not di'ired Reference required to assembly '< Missing Core Assembly>, Vernon:0 OlO.C, Cubure= neutr j one to your project. List bas no type oar jiretrs and so cannot have type a'q jnents. Reference required to assembly < Missing Core Assembly>. Vers oreO 0.04 Cuburemeuti^ one to your project Type Type «not del.nec Reference required to assembly < Missing Core Assembly», YenorcOOJXC, Cubure=n«utii one to your project Type ’SystervVoNftsnot defned -£ra
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,Are Ya Winning Son?
Еще на тему
Развернуть
А потом он решил купить сигарет.
Snegniy Snegniy 08.07.202023:53 ответить ссылка 2.6
Принялся фиксить
Faust9876 Faust9876 09.07.202000:19 ответить ссылка 20.9
Ох уж эти чудеса билдостроения на крестах:
>сначала запустите гребаный симейк чтобы создать солюшен из овер9к разновидностей всевозможных компиляторов
>затем когда эта срань закончит, запустите билд сорс кода, который будет билдится хуй знает сколько времени потому что умники разработчики в соотвествии со всеми правилами элегантного дизайна понатыкали везде кучу темплейтов, инклюдов в стандартные библиотеки, которые раздувают код до сотен тысяч строк, когда ты пользуешься всего-лишь одной функцией из либы
>конечно же сорс код поделен на тысячи компилейшен юнитов каждый из которых будет компилироваться заново, потому что сука потому что.
>под конец ебучий линкер кряхтя пердя и охуевая будет пытаться это говно собрать воедино.

И это все причина почему код на крестах компилится минуты, часы, в охуевших случаях типа хромиума сутки. Просто потому что люди в комитете крестов далеки от реальной разработки, а обычные погромизды долбоёбы, которые следуют по заветам теоретиков, а в итоге получается такое дерьмо. Хотя по факту код пусть даже из миллионов строк не должен компилиться на каком-то среднем текущем процессоре больше 10 сек.
А как делают нетеоретики, расскажи. Пихают всё в один гигантский файл? О да, это же намного лучше.

Комитет как раз и рад бы модули запилить, только в нем есть 100500 компаний с правом вето которым и так норм.

Плюсы как яп конеш помойка, только вот люди на нем пишут не самые тупые. Так что жду рекомендаций, как плюсовики-недолбоёбы пишут.

P.S. Бай зе вей, на картинке - не плюсы, а сишарп.
Psilon Psilon 09.07.202000:30 ответить ссылка 2.7
и как такие ошибки получаются в шарпе?
ниразу не видел такого
dr9vik dr9vik 09.07.202000:32 ответить ссылка -0.8
Например, если используемая либа не совместима с версией фреймворка или необходимая либа отсутствует по пути, который задан в солюшене.
если только либа и писалась на старом фреймворке 4 и ниже
и то всеравно все билдится, а вот если паблишить то может вылететь ошибка где укажет версию библиотеки которая надо, и какая есть
может потому что с кором работаю потому и не видел такие ошибки
dr9vik dr9vik 09.07.202000:43 ответить ссылка -0.3
Да на коре вообще элементарно сделать так чтобы он похожие ошибки вывалил, достаточно чтобы у тебя разъехалась синхронизация между версией sdk в csproj и версиями пакетов sdk из nuget. При переезде с 2.x на 3.x я вдоволь насмотрелся на ошибки в стиле "а я не знаю что такое system.void".
ну с 2 на 3 я тоже переезжал
и все что ехало это стартап
понятно что нагеты тоже едут, но это и так понятно
dr9vik dr9vik 09.07.202001:30 ответить ссылка 0.3
Ну я такое встречал при динамической компиляции netcoreapp приложения из CSharpCodeDomProvider. Как такое получить в студии - не уверен, то думаю что-то связанное с отсутствием нужных версий фреймворка. Но по `System.Void` в предпоследней ошибке язык можно установить однозначно.
Psilon Psilon 09.07.202011:35 ответить ссылка 0.0
>А как делают нетеоретики, расскажи. Пихают всё в один гигантский файл? О да, это же намного лучше.
Почти, другалёк, юнити билд погугли. К сожалению пользуются им в основном в гейдеве, потому что там нужно выжимать максимум производительности. Те же юбики его юзают.

>Комитет как раз и рад бы модули запилить, только в нем есть 100500 компаний с правом вето которым и так норм.
Ну кресты и так на издыхании находятся, пользуются ими просто потому что больше нечем. Когда появится вменяемая альтернатива где будут и вменяемые хай левел абстракции: темплейты, метапрограмминг и т.д. и к лоу левелу не будет закрыт доступ: работа с сырой памятью, возможность встраивать ассембли напрямую, тогда кресты пойдут нахуй далеко и надолго.

>Плюсы как яп конеш помойка, только вот люди на нем пишут не самые тупые. Так что жду рекомендаций, как плюсовики-недолбоёбы пишут.
Дата ориентированный дизайн. Минимум абстракций, никаких иерархий, не каплить дату с функциями. Такое делают к сожалению опять-таки только в гейдеве, где юзерам нужно минимум 60 фпс и приходится выжимать все соки, а не выебываться абстрактными абстракциями и 6-слотовыми наследованиями.
А в плюсах разве есть метапрограммирование? По моему, его только планируют ввести.
Имхо, C# движется в хорошем направлении и по моему в нем все есть. Конечно напрямую с памятью проблематично работать, но у меня не возникало такой необходимости. Асм вставки тоже ну что-то ну очень прям экзотическое для этого должно быть...

C# достаточно зрел+ мультиплатформенен, а в .Net Core так вообще не требуется больше иметь на ПК исполняемую среду и можно Standalone компиляцию делать.

Т.е он должен удволитворять 80% все задачи.
> А в плюсах разве есть метапрограммирование? По моему, его только планируют ввести

А темплейты тебе чем не метапрограммирование?
Метапрограммирование это грубо говоря код, который сам пишет код. Ты его хоть на ассамблере написать можешь, другой вопрос насколько он поддерживается средствами языка. Ну а темплейты на крестах это ад и израиль, который не дебажится, генерирует тонну плохо пахнущего кода и очень долго парсится компилятором/невозможно прекомпилировать в принципе. Что в очередной раз подтверждает что коммитет крестов состоит из теоретиков далеких от реальности.
Ага кресты находяться на издыхании, держи в курсе братан. Почти весь вменяемый гейм дев, системные программисты, программисты микросхем и электроники, VR, медицинское оборудование, десктопные приложения, операционики, драйвера и так далее. Здыхают здыхают уже 50 лет здыхают никак здохнуть не могут. Альтернативы вы где а то уже 20 стандарт выходит? Альтернативы вы где а то С/С++ 1 место в рейтинге популярности языков занял.


https://www.tiobe.com/tiobe-index/
Jul 2020	Jul 2019	Change	Programming Language	Ratings	Change
1	2	A	C	16.45%	+2.24%
2	1	V	Java	15.10%	+0.04%
3	3		Python	9.09%	-0.17%
4	4		C++	6.21%	-0.49%
5	5		C#	5.25%	+0.88%
6	6		Visual Basic	5.23%	+1.03%
7	7		JavaScript	2.48%	+0.18%
8	20	Ä	R	2.41%	+1.57%
9	8	V	PHP	1.90%	-0.27%
10	13	A
стоп, а какого чёрта простой С на первом месте? Он же устаревший не?
Dodger Dodger 09.07.202004:41 ответить ссылка -2.3
Драйвера, операционные системы, прошивки микроконтроллеров и много другое до сих пор пишется на чистом С.
Это не C устаревший (стандарт C регулярно допиливают), это кодеры отупевшие.
dadv dadv 09.07.202006:56 ответить ссылка 1.6
Кодеры такие же, просто требования к качеству софта совсем другие. Например, есть история, что windows 95 и 98 падают ровно через 50 дней ( https://www.cnet.com/news/windows-may-crash-after-49-7-days/ ), И узнали об этом только через 8 лет. А знаешь почему? Потому что ни одна винда ни у кого за 8 лет не смогла столько времени провести без перезагрузок, и люди этот баг не замечали. Вот вам и надежный софт, написанный труЪ сишниками в конце прошлого века.

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

Ну и наконец, даже если не спорить про тупость кодеров: и что дальше с этим делать? НУ окей, допустим кодеры тупые, они НЕ МОГУТ писать на супер-си, а писать кому-то надо или нет? Вот и придумывают всякие хрусты и жабы, которые не позволяют по ногам стрелять, говорят "а вы тут лок забыли на шаред переменную" и прочие непотребства. Ишь чего придумали, владение, заимствование, лайфтаймы, иммьютабл, набор каких то слов бесполезных, нормальный программист никогда не ошибётся и два раза не напишет фри или не начнёт мутировать из 2 ух потоков данные без синхронизации
Psilon Psilon 09.07.202011:59 ответить ссылка 0.3
> Вот вам и надежный софт, написанный труЪ сишниками в конце прошлого века.

Чувак, ты осознаёшь, что споришь с голосами в голове? Никто ни слова в этом треде не сказал про "трусишников", кроме тебя самого, а ты рванул в полемику непонятно с кем.
dadv dadv 09.07.202014:33 ответить ссылка -0.4
Ну если щас кодеры отупевшие, значит раньше были не отупевшие? Или как понимать этот тезис?
Psilon Psilon 09.07.202014:48 ответить ссылка 0.3
Раньше тупых до продакшна допускала в основном Microsoft, а нынче каждый второй.
dadv dadv 09.07.202015:08 ответить ссылка -0.1
Проблема с акобы продвинутыми языками программирования в том, что они заменяют одни проблемы другими, а если кодер тупой - он и на хрусте будет тупить.
dadv dadv 09.07.202014:34 ответить ссылка 0.3
Он не устаревший, он легендарный.
с чего вдруг устаревший ? чистый СИ это:
- код ядра линукс и модулей ядра
- код от которого требуется высокое быстродействие
- код для микроконтроллеров и прочего
те он был и будет всегда, замены ему нет и не будет.
собственно зачем менять то, что отлично работает больше 50ти лет?
Nagisa Nagisa 09.07.202008:15 ответить ссылка 1.8
Потому что почитай как составляется рейтинг TIOBE. Он вообще слабо коррелирует с тем, что мы бы назвали популярностью
Psilon Psilon 09.07.202011:52 ответить ссылка 0.8
Когда я пришёл на мою нынешнюю работу, там было две больших группы — плюсовики (их было больше) и делфисты, в обоих была огромная кодовая база (у делфистов побольше, ибо фирма начиналась с них). Спустя несколько лет остался только один плюсовые проект и… не осталось программистов. Плюсовики либо поувольнялись по разным причинам, либо перешли на шарп/раст, отказавшись писать на плюсах. Последний живой проект переписывается на юнити для гуи + раст для обслуживания, делфи-проекты тоже переписываются на юнити, иногда на расте, большая часть новых пишется на расте. От поиска новых плюсовиков открестились, потому что их кодовую базу очень сложно поддерживать. Все остальные мелкие направления вымерли.

Плюсы в мире вряд ли вымрут, у них огромная ниша — уже написанный код (+ графические движки), но их вполне могут сильно потеснить в новых проектах.

И не нужно смешивать C/C++, плюсы менее популярны судя по твоему же скрину, а совместимость с С у них не больше, чем в других си-подобных языках.
Вот пишут такие гении как ты это уже 50 лет, уже и новые ниши появились, уже и старый код переписывают, уже там выходит новое обновление в. Net которое окончательно заберет нишу с/с++. Так в чем же дело, почему популярность толькл растет? Старых проэктов стает больше?
net никогда не проектировался как убицца С++, это вообще невозможно для языков с ГЦ.

А вот раст - другое дело. Ну и нужно понимать, что такое убьет - вот убили плюсы сишку? Не, живут себе в узкой нише типа эмбеда и радуются. Но объективно понятно, что сишку выкинули отовсюду, где она была: операционки на них не пишут, только саппортят виндолинухи которые никто никогда конечно не перепишет, прикладной софт не пишут, и так далее. Так же и раст, уже сейчас все HFT биржи пишутся на расте как я знаю, хайлоад веб тоже на нем пишут, не зря майкрософт задонатил разработку actix, ну и так далее. Процесс небыстрый, лет 10 точно займет, может больше, и то в конце концов какая-то доля у плюсов все равно останется: доля легаси. А она в любом языке есть. Вот кто помнит про КОБОЛ? А в ньюджерси вон в этом году искали программиста на него, у них там система поломалась, нужен был человек чтобы починить. Но пусть бросит в меня камень тот, кто считает что кобол не умер.
Psilon Psilon 09.07.202012:06 ответить ссылка 0.2
Да только ты не учитываешь один факт, что С/С++ не стоит на месте и тоже развиваеться, и забирает те ниши которы раньше никогда не были его, например вот соседний отдел у меня начал пилить бекенд на высоконагруженных серверах и так далее и так далее. Так что он будет в топе до тех пор пока у него будет вменяемая поддержка, а когда она умрет(очень не скоро так как в него тоже вливают дееьги) он будет потом держаться еще лет 50 на легаси глине
Могу ответить цитатой кармака: от плюсов сейчас отказываются не потому, что вы чего-то не можете на них написать, а потому-что *некоторые* вещи на них написать как раз можно.

https://twitter.com/ID_AA_Carmack/status/1089286703817412608

Развитие плюсов очень медленное из-за того количества обратной совместимости которую требуют поддерживать. Доходит до смешного: я слышал от разрабов гцц что они делают обратно-совместимое УБ, чтобы новые версии УБ так же компилировали, как старые. Казалось бы, именно тот случай, Когда можно сделать по-нормальному. Но вот так вот.

ИМХО про развитие плюсов можно следить по скорости внедрения модулей и концептов. Будем надеяться, что в ближайшие лет 5 их завезут, но я не уврене.
Psilon Psilon 09.07.202014:41 ответить ссылка 0.3
Ну насколько я знаю, концепты уже есть на експерементальных версиях, а это уже хороший знак, а внедрение модулей, разрушит многое из за чего как раз юзают С++, обратную совместимость. Да я согласен что очень медленно развиваеться язык, но медленно только в определенных направлениях. Что уже говтоить если systemfile завезли толькл в 17 версии. Но тем не мение то для чего его юзают он достаточно хорош и имеет обширный и даже избыточный инструментарий
>соседний отдел у меня начал пилить бекенд
Ты это блядь сейчас серьезно?
> Но объективно понятно, что сишку выкинули отовсюду, где она была: операционки на них не пишут, только саппортят

Чувак, ты говоришь о том, о чём понятия не имеешь. Операционки на C не пишут, мухаха! Ты вообще в разработке скольких современных операционок принимаешь участие? Значительная часть множества систем пишется на C. Весь сетевой стек TCP/IP, вообще ядерная часть операционных систем и некоторые другие подсистемы, не говоря уже на *BSD, которые практически целиком на C за небольшими вкраплениями С++. В MacOS X используется не только C, но на C написана базовая часть, как и базовая часть iOS (Swift получил более менее стабильное API только с тринадцатой версии iOS).
dadv dadv 09.07.202014:46 ответить ссылка 0.2
BSD и макось - это не пишут операционки, а поддерживают старые. Посмотри на чем пишут современные операционки - Redox, Fuchsia и так далее
Psilon Psilon 09.07.202015:35 ответить ссылка -0.6
Ты понятия не имеешь о том, что значит "писать операционки". Сравнить количество свежего кода хотя бы в одном только ядре Linux в сравнении с 10 годами назад, или там в FreeBSD это небо и земля. Это не какая-нибудь "поддержка", там создаются совершенно новые части OS, которых раньше не было или был в зачаточном состоянии. Типа IPv6, SCTP, файловые системы, фреймворки для создания драйверов, компиляторы, включенные в базовую поставку ОС вместе с toolchains, компиляторы компиляторов (byacc к примеру), новые аллокаторы, пакетные фильтры, системы мониторинга (Behemoth SNMP agent), компрессоры, базовые серверы типа DNS, базовые библиотеки типа как для регулярных выражений или libxo, новые скриптовые языки типа Lua - это огромные массивы НОВОГО кода на C.
dadv dadv 09.07.202017:26 ответить ссылка 0.0
Не вижу роста популярности плюсов. C чувствует себя хорошо. По тому же TIOBE с 2002 по 2020 C++ упал с 16% до 6%, С# вырос до 5%, C чуть просел с 20% до 18% (вероятно, си исчезнет очень и очень поздно, потому что он уже многие годы своего рода лингва франка), java просела с 26% до 15%.
И хватит писать С/С++, это разные языки, я же не пишу С/Rust. Код плюсов вряд ли когда-нибудь пустят в код линукс, что не похоже на ситуацию великой схожести языков. Да они даже не совместимы между собой! Я перешёл когда-то с плюсов на си, а потом ушёл на раст — так мне писать C++/C/Rust? Gtk живёт со всеми языками в мире и согласии, написан на чистом си, кьют разве что сам с собой играет, поддержка других языков у него отвратительная из-за врождённой плюсовости.
Нишу С (как лингва франка, хотя си этим и не ограничивается) никто не тронет в ближайшие годы, ниши С++ не существует, он старается быть всем, как и многие другие языки.
Ну а «такие гении как ты» твердили, что какая-то джава-выскочка будет даже не замечена плюсами (сейчас же по все рейтингам джава популярнее плюсов, даже не смотря на появление кучи других jvm-языков, потеснивших уже саму джаву), затем в начале нулевых писали, что в геймдеве равных плюсам нету, а потом крайенжин получил части на шарпе, вышел шарповый юнити, на котором сегодня большинство поделок выходят. Или чего ты ждёшь — мгновенного схода на нет плюсов? Они будут жить долго, но их слава с годами меркнет всё сильнее, просто потому что новые языки вытесняют старые, с чем плюсы не смогут бороться, не сломав обратную совместимость, но тогда это уже будут не плюсы.
И C# никогда не стремился отобрать всё у C/C++, он стремился быть более специализированным, как и Java. И Java успеха достигла большего — кровавый энтерпрайз именно с джавой связывают.
Всё правильно написал, но не все это к сожалению понимают.
Psilon Psilon 10.07.202016:01 ответить ссылка 0.0
Ты бы нормальный рейтинг взял, а не TIOBE, было бы лучше. Хотя бы stackoverflow survey: https://insights.stackoverflow.com/survey/2019#most-popular-technologies . А то си который популярнее джавы это уже даже не смешно
JavaScript 67.8% HTML/CSS 63.5% SQL 54.4% Python 41.7% Java 41.1% Bash/Shell/PowerShell 36.6% C# 31.0% PHP 26.4% C++ 23.5% Typescript 21.2% C 20.6%
Ruby	8.4%
Go	8.2%
Assembly	6.7%
Swift	6.6%
Kotlin	6.4%
R	5.8%
VBA	5.5%
Objective-C	4.8%
Scala	3.8%
Rust	3.2%
Dart	1.9%
Elixir	1.4%
Psilon Psilon 09.07.202011:52 ответить ссылка -0.8
Говооит взял бы нормальньнвй рейтинг привел мне таблицу с стак оверфлоу за 2019 год? Лол.
А что не так с тем, что я написал ввше? Я написал именно о рейтинге ПОПУЛЯРНОСТИ который основываеться на количестве запросов. Но ладно можем глянуть другие рейтинги IEEE, PYPL, RedMonk и что ты увидишь? Что С/С++ в топе и не опускакться ниже 5 места уже на протяжении многих лет, а если говорить про количество написангого кода на С/С++ то вообще лучше не выебываться.
Во-первых за C/C++ любой человек который пишет на них обычно начинает выражаться очень плохими словами. Плюсы да, в топе, а си - отнюдь.

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

И наоборот, возьмем какой-нибудь VB с 0 использованием, но у которого дохрена проблем и нет документации, в рейтинге будет высоко.

То что рейтинг говно очевидно - ну НЕ МОЖЕТ быть VB выше JS, ну вот вообще никак, даже на другой планете. Это очевидно каждому кто хоть чуть-чуть в теме разработки.

не нравится SO? Ну возьми любой рейтинг, хоть гитхаб, хоть статистику hh/любого другого агрегатора вакансий. Да хоть твой RedMonk на который ты сослался

1 JavaScript
2 Python
2 Java
4 PHP
5 C#
6 C++
7 Ruby
7 CSS
9 TypeScript
9 C
11 Swift
12 Objective-C
13 Scala
13 R
15 Go
15 Shell
17 PowerShell
18 Perl
19 Kotlin
20 Haskell

В это я ещё готов поверить. В си на первом месте и вб выше JS - уж извини, но никак.
Psilon Psilon 09.07.202014:37 ответить ссылка 0.5
Так ну, а как это противоречит моим словам? Плюс я считаю не очень коректно отделять С от С++ так как все кто пишут на С рано или поздно так же используют С++ и наоборот. И смвсл моих слов был не в том, что все языки говно а С/С++ языки богоа, С/С++ на первом месте а все остальные в жопе, а в том, что люди которые считают что этот язык говно и он скоро умрет очень ошибаються и привел таблицу с рейтингами, можно выбрать любую.
Это очень разные языки с совершенно разной философией (AoS vs SoA, ебаться с поинтерами вс обмазаться constexpr_if decltype auto auto auto const const), которые еще и компилируются разными компиляторами. Далеко за примерами ходить не надо, вот этот код собирается gcc

int func();

int main() {
func(1, 2);
return 0;
}

А вот g++ уже нет.

С++ далеко не на первом месте. Возможно в районе пятого. Си где-то в конце десятки. Собственно, я это сказал не глядя на рейтинг выше, и щас глянул, так и есть.

Ну и нужно понимать объемы кода. Места это места, но реально первые 3 места это 90% всего рынка софта. Люди которые говорят что он умрет скоро конечно ошибаются - умирать он будет как кобол, ещё лет 20-30 точно, а можно и больше.
Psilon Psilon 10.07.202016:11 ответить ссылка 0.0
>Почти весь вменяемый гейм дев
C# Unity
>системные программисты, программисты микросхем и электроники
Полторы позиции в мире.
>VR
C# Unity
>медицинское оборудование
Еще половина позиции в мире.
>десктопные приложения,
Почти никто не пишет на плюсах
>операционики, драйвера и так далее.
Еще полторы позиции в мире

>Альтернативы вы где а то С/С++ 1 место в рейтинге популярности языков занял.
Мммм, как интересно. И что же этот рейтинг популярности обозначает? Особенно Visual Basic и R в первой десятке?
Если ты не погружался в тему, это не значит "полторы позиции". Множество народу пишет огромное количество кода на и на уровне операционных систем, и на уровне специализированного софта типа медицинского и биологического, и требования к качеству там не те, что у веб-макак или в геймдеве, где юзера всё поправят модами.
dadv dadv 09.07.202022:10 ответить ссылка 0.5
>Множество народу пишет огромное количество кода на и на уровне операционных систем, и на уровне специализированного софта типа медицинского и биологического
Цифры давай. А то пишет у него огромное количество, а вакансий в 10 раз меньше, чем в геймдеве, и в 150 раз чем у веб-макак.
А причём тут вакансии? Люди трудоустроены, вакансии заполнены, код пишется.

Насчет цифр - погляди статистику количества нового кода на C в одних только ядрах Линукса между релизами.

Для приватной разработки in-house медицинского софта никто тебе не будет показывать код.
dadv dadv 10.07.202005:43 ответить ссылка 0.5
Приватную разработку можно оценить по сторонним метрикам вроде как раз-таки вакансий.

Код линукса это жалкие 28 миллионов строк кода, столько кода каждый час в мире пишется. И только процентов 10-20 из них - на С или С++.
Psilon Psilon 10.07.202016:13 ответить ссылка 0.0
Не противоречит.
dadv dadv 11.07.202007:30 ответить ссылка 0.0
> Почти, другалёк, юнити билд погугли. К сожалению пользуются им в основном в гейдеве, потому что там нужно выжимать максимум производительности. Те же юбики его юзают.

Судя по тому, что я читаю, этот юнити билд судя по всему не серебрянная пуля. Например, видимо он не умеет в инкременталку и при изменении одной строчки пересобирает всё приложение. Удачи поработать так с любым крупным приложением, особенно упомянутым тобой хромиумом. Неплохо про минусы тут собрано: http://web.archive.org/web/20161021225056/https://engineering-game-dev.com/2009/12/15/the-evils-of-unity-builds/

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

У нас 2 микросервиса на расте уже написаны, полёт нормальный.

> Дата ориентированный дизайн. Минимум абстракций, никаких иерархий, не каплить дату с функциями. Такое делают к сожалению опять-таки только в гейдеве, где юзерам нужно минимум 60 фпс и приходится выжимать все соки, а не выебываться абстрактными абстракциями и 6-слотовыми наследованиями.

Если у тебя проблема с абстракциями то тебе в го, там с этим всё хорошо, нет ни абстракций, ни способа их сделать. Лепота.

Не, я согласен, что лишние абстракции копить не стоит, а наследование имплементации не нужно, но обычно люди которые говорят про "лишние" абстракции даже инкапсулировать какой-нибудь filterM не могут, копипасятят каждый раз.
Psilon Psilon 09.07.202011:43 ответить ссылка 0.3
Дельфи компилировал намного быстрее. По крайней мере когда я им ещё занимался.
"Старые добрые" борланд времена, когда в программирование не понаехала куча айти-макак, которым промыли голову ооп-дизайном. А сейчас имеем с одной стороны либо языки высокого уровня для детского сада: сисярп, жабаскрипт, жава, где детям запрещают работу с памятью, а то не дай бог, да и подальше от того что процессор делает. А с другой стороны франкенштейн в лице крестов, который понатырил кучу идей отовсюду и по сути всё кроме наследия си, на котором был сделан, делает хуево.

Так и живем.
Дельфи полностью ооп. Собственно говоря борланд ооп ещё в турбо паскаль 5.5 встроил.
Ну в дельфи компилейшн юниты совсем иначе устроены, и емнип нет ебанутых инклюдов которые тупо копипастят текст других модулей. Да и темплейтов не завезли.

А это основные источники медленной компиляции.
Psilon Psilon 09.07.202012:07 ответить ссылка 0.3
> нетеоретики

Как нетеоретик, отвечаю. Во-первых, использовать такие либы только в самом крайнем случае, если без этого никак не обойтись. По возможности вместо тяжелых внешних зависимостей, когда нужна одна функция, либо делать свою реализацию, либо даже тупо вырезать функцию из либы и скопипастить локально - если это поможет убрать тяжелую зависимость. Во-вторых, не использовать системы сборки, которые заставляют пересобирать те модули, которые можно не пересобирать, даже если такие системы супермодерновые и модные. В третьих, изучать документацию на используемые фреймворки и пакеты и отключать сборку опциональных компонентов, а не собирать всё подряд без нужды. В четвертых, использовать оптимизаторы сборки типа METAMODE или ccache, но использовать их с умом. Ну и там по мелочи всякое, типа использовать оперативную память для TMPDIR (ramdisk), в крайнем случае SSD, в самом крайнем случае отдельный HDD, чтобы головки одного диска не перепозиционировались лишний раз; и уж точно при использовании HDD не размещать каталоги исходников и результатов компиляции (объектников, библиотек и исполняемых файлов) на одном HDD.

Короче, не быть тупым кодером и изучать матчасть.
dadv dadv 09.07.202006:52 ответить ссылка 0.4
1. то есть писать велосипеды когда есть проверенные решения? Хотя в мире плюсов - возможно, не спорю, но в любом языке с нормальным пакетным менеджером - однозначно нет. Особенно если есть LTO которое вырежет всё, что не используется.
2. ну, инкрементные билды обязательно нужны, с этим никто не спорит
3. тоже логично
4. и тут тоже согласен

Но там же по сути речь не про зависимости, а про "абстракций много, файлов много, всё плохо". Много файлов обычно означает хорошую декомпозицию, и это плюс, а не минус. Абстракций - их да, должно быть поменьше, но обычно эту фразу пишут люди которые предпочитают функции по тыщи строк делать, "а чо и так понятно, зато смари как быстра, ЭКОНОМИМ НА ДЖАМПАХ".
Psilon Psilon 09.07.202012:10 ответить ссылка 0.3
Про велосипеды - всё имеет свою цену, и даже использование готовых библиотек имеет свои накладные расходы и если они слишком велики - да, можно и навелосипедить. Не существует абсолютного запрета на велосипеды. LTO не вырежет тебе то, на что есть ссылки в используемых частях библиотеки, например в конструкторе/деструкторе библиотеки. Да, в C на уровне библиотек тоже есть конструкторы.
dadv dadv 09.07.202014:29 ответить ссылка 0.0
По моему опыту с LTO проблем вообще нет. Ну то есть например 3мб на приложение это более чем нормально (150мб без LTO).

Согласен, что если в языке нет нормального пакетного менеджера то подключать библиотеку может быть дороже чем её написать самостоятельно, сюда можно и однострочные cfg_if! вспомнить. Но надеюсь с vcpkg у вас с этим станет попроще.
Psilon Psilon 09.07.202014:32 ответить ссылка 0.0
1) если тебе не нужны темплейты не юзай их, хочешь для своего конкретного случая? напиши что то свое заточенное под твою задачу, благо с++ предоставляет тебе большой инструментарий.
2)Нигде в правилах элегантного кода не слышал что бы юзали кучу инклюдов и темплейтов. Все как один говорят да блять не юзай тимплейт если он тебе не нужен, не создавать эти уродливые иерархи классов. НЕ ПЛОДИ СУЩНОСТИ СУКА НЕ ПЛОДИ СУЩНОСТИ
3) конечно же сорс код поделен на тысячи компилейшен юнитов , может он как раз специально и поделен что бы заново всю эту хуйню не компилить ?
4)Придумали еще такую штуку как Dll и тебе не нужно ее компилить, да оф кос гиганский проект собирается долго. Но как бы преимущество компилируемого языка не в скорости сборки а в скорости выполнения программы.
5) Ты хоть раз читал C++ ISO? ану что тебе в нем не нравиться? да есть всякое говницо но его стараються убирать и даже в каждом обновлении убирают. И ISO этот как раз классная штука которая делает С++ стабильным.
6) Каким хуем за 10 секунд программный код в миллионы строк должен стать соптимизированным объектным кодом ? ты блять просто посчитай
1) если тебе не нужны темплейты не юзай их, хочешь для своего конкретного случая? напиши что то свое заточенное под твою задачу, благо с++ предоставляет тебе большой инструментарий.
2)Нигде в правилах элегантного кода не слышал что бы юзали кучу инклюдов и темплейтов. Все как один говорят да блять не юзай тимплейт если он тебе не нужен, не создавать эти уродливые иерархи классов. НЕ ПЛОДИ СУЩНОСТИ СУКА НЕ ПЛОДИ СУЩНОСТИ

Объясни это мартыханам, которые без темплейтов и посрать не сядут: нужнапростенькая хэш таблица — темплейт, нужен динамический массив или линкед лист — темплейт.

3) конечно же сорс код поделен на тысячи компилейшен юнитов , может он как раз специально и поделен что бы заново всю эту хуйню не компилить ?
Что значит конечно же, мартыхан. Юнити билд еще раз для тупых повторяю ЮНИТИ БИЛД, чем меньше компилейшен юнитов в сорсе, тем быстрее он будет компилиться. Потому что не надо парсить с нуля каждый юнит.

4)Придумали еще такую штуку как Dll и тебе не нужно ее компилить, да оф кос гиганский проект собирается долго. Но как бы преимущество компилируемого языка не в скорости сборки а в скорости выполнения программы.
Чушь собачья насчет скорости. Сопоставимые проекты по кодо-базе: хромиум и к примеру последний асасин у юбисовта. Хромиум компилится сутки, асасин компилится несколько минут и то это дохуя, но это уже предел для слоупочного с++ компилятора и линкера. Потому что в одном случае делают код люди с мозгами и пониманием аппаратной платформы и дата-ориентированного дизайна, в другом ооп-мартыханы.

>Каким хуем за 10 секунд программный код в миллионы строк должен стать соптимизированным объектным кодом ? ты блять просто посчитай
Что посчитай мартыхан? На современном кукурузене 12-ядерном кернел линупса должен компилиться меньше чем за секунду, в противном случае это мартышкин код.

Ты главную идею не понимаешь, что текущие кододелы выезжают на ахуенной производительности и росте железа, что позволяет писать ультра хуевый и не оптимизированный код. И это плохо я так считаю.
> Объясни это мартыханам, которые без темплейтов и посрать не сядут: нужнапростенькая хэш таблица — темплейт, нужен динамический массив или линкед лист — темплейт.

Ну-ка, объясни, как это сделать. Я на си пишу, где темплейтов нету. Поэтому никаких стандартных контейнеров тоже нету. Ну-ка, расскажи, как мне делать хэш таблицу? Каждый раз руками заново под каждую структуру? На void? На уродливых извращениях с макросами в стиле "struct hash_##_TYPE", что по-сути есть тот же темплейт, только на минималках и под бутиратами.

> Что посчитай мартыхан? На современном кукурузене 12-ядерном кернел линупса должен компилиться меньше чем за секунду, в противном случае это мартышкин код.

Начали за С++ и темплейты, а щас чот к Си пришли. Ну давай, покажи мне пруфы, что код по объему и сложности сопоставимый с кернелом, может скомпилироваться меньше, чем за секунду. Давай, расскажи, если ты такой дохуя умный и не мартыхан, как правильно надо было писать кернел. Кернел пишут далеко не дураки, не макаки-формошлепы на жс. И довольно высокие стандарты, чтобы твой патч приняли. Сам не посылал, но знаю тех, кто разрабатывает драйвера.
> Поэтому никаких стандартных контейнеров тоже нету. Ну-ка, расскажи, как мне делать хэш таблицу? Каждый раз руками заново под каждую структуру?

О боже мой, ты ещё не открыл для себя готовые библиотеки на C? Libaura, gperf, cmph, glib, libcfu, uthash, Google SparseHash, libthmap, libmba, libmaa, libhash, publib, libcdb, libmowgli-2, htable, libds, pdel - всё это бесплатные и открытые библиотеки с универсальными реализациями для hashmap, выбирай на вкус и под задачу. Есть и в виде h-файлов.
dadv dadv 09.07.202007:28 ответить ссылка 1.0
Берем glib (как пример того, что я знаю).
https://developer.gnome.org/glib/stable/glib-Hash-Tables.html#g-hash-table-insert
И что мы видим?
gboolean
g_hash_table_insert (GHashTable *hash_table,
gpointer key,
gpointer value);
А gpoonter это
typedef void* gpointer;

Что я и говорил: void*.

Ещё работал с https://linux.die.net/man/3/queue, там аналогично.

Щас просматривать все перечисленные имплементации мне лень. Но выше я перечислил все известные мне способы делать контейнеры и обобщенные алгоритмы. Ну ещё типо "дженерики" из С11. Поэтому мой вопрос - знаете ли вы другие способы? Потому что все они уебанские, не мне вам говорить, чем плох void*.
Хочешь на typedef - есть на typedef.
dadv dadv 09.07.202013:58 ответить ссылка 0.0
А мне нравится городить макросы на сях. Есть в этом что-то такое, дух старой школы. Сразу начинаешь чувствовать, как свитер на груди прорастает и борода колосится.
Liksys Liksys 09.07.202008:13 ответить ссылка 1.3
Учитывая, что они не гигиенические и нормально не тайпчекаются - самое оно
Psilon Psilon 09.07.202012:32 ответить ссылка 0.3
Для начала можешь взять принтфов или еще каокго-то говна, просто по количеству строк в ядре, и попытаться скомпилировать. Я уверен, что даже синтаксический разбор займет дольше времени.
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
СДЕЛАТЬ СВОЙ КОД БЫСТРЕЕ
ДОБАВИТЬ
ПРОГРЕСС-БАР Стажер	х = 10;
Джун	х = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1;
Мидл	■рог (хп1: г = 0; 1 > -11; 1--) { х -= 1; }
Сеньор	до { х = пеы Рапс1от() .пех1:1п1:();
	} У\М1е (х != 10);
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор код программирование

Стажер х = 10; Джун х = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1; Мидл ■рог (хп1: г = 0; 1 > -11; 1--) { х -= 1; } Сеньор до { х = пеы Рапс1от() .пех1:1п1:(); } У\М1е (х != 10);
Когда скопировал код со $1аскоиегПош, но изменил название переменных
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор код stackoverflow

Когда скопировал код со $1аскоиегПош, но изменил название переменных