- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
&НаКлиенте
Процедура ИмяФайла_ПроизводственнаяПрограммаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДиалогВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыборФайла.Фильтр = "Файлы Microsoft Excel (*.xls, *.xlsx, *.xlsm)|*.xls; *.xlsx; *.xlsm|Все файлы (*.*)|*.*";
ДиалогВыборФайла.Показать(Новый ОписаниеОповещения("ИмяФайла_ПроизводственнаяПрограммаНачалоВыбораЗавершение", ЭтотОбъект, Новый Структура("ДиалогВыборФайла,ИмяФайла", ДиалогВыборФайла, Элемент.Имя)));
КонецПроцедуры
&НаКлиенте
Процедура ИмяФайла_ПроизводственнаяПрограммаНачалоВыбораЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
ДиалогВыборФайла = ДополнительныеПараметры.ДиалогВыборФайла;
Если (ВыбранныеФайлы <> Неопределено) Тогда
ЭтаФорма[ДополнительныеПараметры.ИмяФайла] = ДиалогВыборФайла.ПолноеИмяФайла;
КонецЕсли;
КонецПроцедуры
Асинхронные вызовы??? Нее.... Не слышал...
gost 15.12.2020 17:15 # 0
bormand 15.12.2020 17:18 # +2
> Новый Структура
В "1С" явно не хватает алиасов Новая и Новое для таких случаев... Без них читается как речь какого-то иммигранта.
666_N33D135 15.12.2020 18:07 # 0
gost 15.12.2020 17:25 # +2
Шизофрения какая-то, блядь.
jojaxon 15.12.2020 17:27 # +2
MAKAKA 17.04.2021 23:02 # 0
3.14159265 20.12.2020 02:40 # 0
>Новый Структура
Слющий, вах Какой Адын Эс )))
guest6 20.12.2020 02:53 # +4
nytlenc 16.04.2021 07:15 # 0
Потому в отличии 100% всегда одинакового например:
Писать
или
Ради удобочитаемости просто глупо.
А вообще конечно выглядит очень смешно, когда подобные Вам люди сами кодят на далеко не идеальном языке программирования, который можно также как и 1С засрамить ниже плинтуса по другим причинам, при этом обсирают другие языки и топят за свой.
bormand 16.04.2021 09:28 # +1
Да тут все языки равномерно обсирают, так что не принимайте наши шутки близко к сердцу ;)
Соглашусь, недостатки есть у всех языков. Но это совсем не повод обижаться, когда упоминают недостатки Вашего любимого языка. Скорее повод задуматься о том, как можно было бы сделать лучше, если бы такая возможность была. Или просто посмеяться.
gologub 16.04.2021 12:20 # 0
MAKAKA 17.04.2021 14:50 # 0
bormand 16.04.2021 09:00 # 0
Как не толерантно... А если классу не нравятся дефолтные ключевые слова, и он хочет чтобы его создавали по-другому?
PolinaAksenova 16.04.2021 13:48 # +4
CHayT 16.04.2021 13:58 # +2
bormand 16.04.2021 22:55 # 0
DypHuu_niBEHb 16.04.2021 22:58 # 0
Или как в руби: Одно и тоже можно сделать десятью разными способами, но девять из них запрещает rubocop (в перле примерно так же)
bormand 16.04.2021 23:33 # 0
PolinaAksenova 16.04.2021 23:43 # +2
https://i.imgur.com/NzCNNfz.jpg — один obvious способ и пять ня obvious.
MAKAKA 17.04.2021 01:12 # 0
guest6 17.04.2021 01:15 # 0
MAKAKA 17.04.2021 01:24 # 0
guest6 17.04.2021 01:34 # +2
guest6 17.04.2021 02:38 # 0
Почему я постоянно слышу какой прекрасный язык питон, какой чудесный котлин, и какие плохие кресты?
JloJle4Ka 17.04.2021 03:39 # 0
guest6 17.04.2021 03:43 # +1
А еще Данниг с Крюгером вносят свою лепту
guest6 17.04.2021 09:58 # 0
MAKAKA 17.04.2021 14:44 # +1
От коко, разумеется, веет джавой: он для этого и делался.
Был анек, как от мужика воняло говном, он побрызгался дезодорантом "лесной", и теперь пахнет так, будто кто-то под елкой насрал
CkpunmoBbIu_nemyx 17.04.2021 21:14 # 0
PolinaAksenova 17.04.2021 21:17 # 0
CkpunmoBbIu_nemyx 17.04.2021 21:24 # 0
PolinaAksenova 17.04.2021 22:07 # 0
Во-вторых, из-за глубокой динямичности Питона далеко ня для всех библиотек в принципе возможно сделать тайпхинты. Рассмотрим, няпример, подобие Django ORM:
— какой тайпхинт должен быть у параметра kwargs метода query()?
В-третьих, дженерики в Питоне совершенно убогие: ты ня можешь, няпример, принять (x: T, y: U) и вернуть тип (x + y).
Или вот:
— ни mypy с максимальня строгими нястройками, ни pyright с "typeCheckingMode": "strict" ня выдадут тут ни малейшего писка.
MAKAKA 17.04.2021 22:15 # 0
Сеанса отсоса питухона у тайпскрипта
PolinaAksenova 17.04.2021 22:16 # 0
А что это за тип?
А, няшла. Ну это нямного не то, я имела в виду:
(В этом случае decltype() ня нужен, в принципе)
MAKAKA 17.04.2021 22:30 # 0
Я в TS так не умею, хотя оператор typeof для получения типа там есть
PolinaAksenova 17.04.2021 22:33 # 0
Ну и Питоньи тайпхинты ня умеют.
MAKAKA 17.04.2021 22:37 # 0
bormand 17.04.2021 22:43 # 0
Там любое выражение работает.
Что-нибудь в духе decltype(foo().a) должно прокатить. Ну или если у тебя уже есть объект и ты просто времянку под его поле пилишь: З.Ы. Хотя в таких случаях и тупо auto можно написать...
MAKAKA 17.04.2021 22:48 # 0
PolinaAksenova 17.04.2021 22:46 # 0
MAKAKA 17.04.2021 22:48 # 0
bootcamp_dropout 17.04.2021 21:49 # 0
если говно на питоне не типизировано но покрыто тестами от души то оно может вполне успешно расти до огромных размеров
возможно и тесты и типы это просто сорта статического анализа в современном мире где можно все скомпилировать в жс и интерпретировать
CHayT 17.04.2021 21:58 # +3
MAKAKA 17.04.2021 22:07 # +1
Однако же тут есть лукавство: покрыть все состояния программы с высокой цикломатической сложностью нереально, так что где-то можно проебаться.
Алсо, рефакторинги с типизацией делать проще (удачи с переименованием свойства "user" или "id" без нее).
Это давно поняли скриптовики, именно потому в крупных скриптопроектах у нас тайпхинты. Или TS.
bootcamp_dropout 17.04.2021 22:12 # 0
сейчас в любом проекте есть и типы, и тесты, и стат. анализ просто потому что реалии разработки изменились и надо высрать какую-то хуйню до конца спринта и желательно чтобы это ничего не сломало, а тестить долго
PolinaAksenova 17.04.2021 22:15 # 0
MAKAKA 17.04.2021 22:16 # 0
MAKAKA 17.04.2021 22:01 # +1
Речь скорее про статическую.
Тайпхинты могли бы иметь смысл, если бы ими был покрыт весь код. А он не покрыт.
guest6 17.04.2021 22:10 # 0
guest6 17.04.2021 22:29 # 0
MAKAKA 17.04.2021 22:31 # 0
Все существующие библиотеки?
PolinaAksenova 17.04.2021 22:51 # +1
И это ня высосанный из пальца пример, это практически дословная реализация того, что есть в Django ORM.
MAKAKA 17.04.2021 22:54 # 0
PolinaAksenova 17.04.2021 23:01 # 0
> а когда в коде есть getattr, то тут только сосат6
Да, в этом и проблема. Его, в принципе, можня на __dict__ заменить, но это шило ня мыло.
MAKAKA 17.04.2021 23:05 # 0
Не обязательно методы, можно просто какие-то сущности, которые где-то перечислены, чтобы их можно было представить статически.
В джанге правда эта хуита транзитивна
user__pet__second_owner__name_eq='foo'
так что можно соснуть цикла
PolinaAksenova 17.04.2021 23:11 # 0
MAKAKA 17.04.2021 23:12 # 0
Ты описала модель, запустила скрипт, и получила тысячу таких вот классов, все с нужными методами
не?
PolinaAksenova 17.04.2021 23:20 # 0
MAKAKA 17.04.2021 23:22 # 0
я могу сгенерить какой угодно код, и написать генерацию на питуринг полном языке
А для IDE это будет просто код же
PolinaAksenova 17.04.2021 23:28 # 0
MAKAKA 17.04.2021 23:35 # 0
Я вот поменял data-model.json например, вызвал "generate-code", и получил для него ORM (это всё в выдуманной среде)
Помнишь как генерация прокси-классов по WSDL работала для SOAP?
Или например CoreData у ябла так делает: генерирует классы по описанию модели
PolinaAksenova 17.04.2021 23:39 # 0
А как потом полученные классы править?
Ну вот хочу я добавить в User метод "is_adult()" — в питоньих ORM без кодогенярации я просто открываю user.py и просто пишу "def is_adult(self): ...".
А в системе с кодогенерацией тут же нячинаются костыли и прыжки с бубнями.
MAKAKA 17.04.2021 23:41 # 0
А зачем?
>Ну вот хочу я добавить в User метод
Экстеншен методы/миксины тебе в помощь.
Или можно динамически добавить метод:
В руби например это вообще элементерано делается, и повсюду используется. Да и в JS тоже легко
Или вот знаешь как C# для WinForms генерит partial классы?
Там часть класса твоя, а часть генерённая
Читни про partial classes
PolinaAksenova 17.04.2021 23:53 # 0
Чтобы в коде писать "if user.is_adult(): ", а ня "if user.age >= 18: ".
> Экстеншен методы/миксины
> partial classes
В контексте кодогенерации — это и есть те самые костыли и бубны, о которых я писала.
> Или можно динамически добавить метод
И вся статика някает.
guest6 18.04.2021 00:00 # 0
а в чем костыли?
>И вся статика някает.
ну рубимайн как-то умеет, но в целом плохо, согласен
Так а что плохого в extension methods и partial classes?
В чем бубны?
алсо, есть кокогенерация парсеров у intellij на основе jflex, там можно сказать "в сгенеренный файл добавиь мне такой вот метод", но это конечно выглядит как говно
PolinaAksenova 18.04.2021 00:12 # 0
В том, что стоит задача: добавить в класс User метод is_adult(). Без костылей и бубнов это делается ровно одним способом: открывается файл с определеняем User, ищется определение User, в него добавляется метод is_adult().
Extension methods а-ля Коко, кстати, ня подойдут: их нужня импортировать отдельня.
Partial classes — наименее костыльный, но нам всё равно для каждого класса нужня иметь два файла: один сгенерированный, другой ручной. Более того, рефакторинг такой системы будет тем ещё удовольствием: снячала рефакторим шаблон, потом вручную чистим все partial-расширения.
MAKAKA 18.04.2021 00:16 # 0
и что? Почему это плохо?
> рефакторинг такой системы будет тем ещё удовольствием:
Рефакторинг модели это вообще тяжко, твои методы тут будут не самым страшным местом
Ладно, вот тебе еще вариант: отказаться от ООП вообще и генерировать тупые структуры/DAO и весь свой код держать отдельно, в функциях и процедурах
PolinaAksenova 18.04.2021 00:21 # 0
Потому что
хуже, чем
Ну, если ты не джавист, конячно. Для джависта два импорта всегда приятнее, чем один.
> Ладно, вот тебе еще вариант: отказаться от ООП вообще и генерировать тупые структуры/DAO и весь свой код держать отдельно, в функциях и процедурах
Можня ещё ня Хаскелль перейти. Ну, просто чтобы добавить метод is_adult() в класс User.
MAKAKA 18.04.2021 00:24 # 0
Если я пишу в Intellij, то у меня вообще автоимпорт:)
Я жму cltr+space, и мне подсказывают методы. Я могу даже не знать, что это экстеншен метод
>Можня ещё ня Хаскелль перейти
А это поможет?
В общем я не спорю, что у кококогенерации есть какие-то минусы, но имхо кокошные экстеншенметоды и шарпные парчал классы их неплохо решают.
Есть еще вариант сказать, что я срал-ебал стат типизацию, писать на пятом перле в Notepad++, и не забивать себе голову ерундой
guest6 17.04.2021 23:29 # 0
MAKAKA 17.04.2021 23:33 # +1
guest6 17.04.2021 23:35 # 0
guest6 17.04.2021 23:38 # 0
IDE построила AST по коду, и подсказывает мне методы
откуда она знает, что при импорте класса ему добавился метод?
Или ты за запуск класса в LSP сервере? Тогда как гарантировать что там нет хальтинг проблем?
guest6 18.04.2021 00:16 # 0
MAKAKA 18.04.2021 00:17 # 0
guest6 18.04.2021 00:26 # 0
MAKAKA 18.04.2021 00:27 # 0
guest6 18.04.2021 00:28 # 0
MAKAKA 18.04.2021 00:30 # 0
ну вот я на лету добавляю в класс метод fooN, где N это 42, если у тебя Linux, и 62 если Mac OS
Как мне поможет пайлинт?
guest6 18.04.2021 00:38 # 0
MAKAKA 18.04.2021 00:41 # 0
Возьмем реальный пример из джанго.
Если у класса есть поле foo = models.ForeignKey(Bar), то у класс-метода filter есть аргумент foo__[тут_любое_поле_Bar]_eq
Выразишь мне это в pylint?
guest6 18.04.2021 00:51 # 0
MAKAKA 18.04.2021 00:53 # 0
Пайлинт умеет вернуть список всех методов класса, сгенерив его динамически?
А хальтинг проблем как решается?
gologub 18.04.2021 01:40 # 0
guest6 18.04.2021 01:52 # 0
guest6 17.04.2021 23:02 # 0
MAKAKA 17.04.2021 23:09 # +1
Как только ты пытаешься завезти туда статику, у тебя сразу начинаются проблемы
PolinaAksenova 17.04.2021 23:12 # 0
guest6 17.04.2021 23:12 # 0
PolinaAksenova 17.04.2021 19:21 # 0
Так Котлин и есть Джава для белых аниме-девочек. Такая себе Антиджава, по анялогии с антикафе.
От "data class X(private val a: Int, var b: Double)" у настоящего джависта нячинается ломка.
bormand 17.04.2021 19:23 # +2
Сразу хочется написать конструктор, геттеры, сеттеры, хешкод, компаратор и преобразование в строку?
PolinaAksenova 17.04.2021 19:32 # +2
И вот уже можно ня перерыв отправляться.
MAKAKA 17.04.2021 22:59 # 0
Реально видел интерфейс с десятком сеттеров и геттеров, и его реализацию в виде бина (ну то есть просто филды и методы)
PolinaAksenova 17.04.2021 23:03 # 0
https://kpilibrary.com/kpis/lines-of-code-per-day-2
MAKAKA 17.04.2021 23:08 # +1
Сайт, кстати, классный
спасибо, что вернули мой 2006-й
Fike 17.04.2021 23:15 # 0
PolinaAksenova 17.04.2021 17:30 # +2
j123123 17.04.2021 10:28 # +1
Да, особенно приятно, когда NULL это 0 но при этом (void *)(1-1) это не тот NULL https://govnokod.ru/26958#comment576762
Или когда std::vector<bool> оказывается какой-то сраной битоебской хуйней, а все прочие специализации ведут себя нормально.
bormand 17.04.2021 10:31 # +2
Не забывай, что он из джавы пришёл...
guest6 17.04.2021 10:34 # +1
MAKAKA 17.04.2021 14:42 # +2
Хватит уже нас путать)
guest6 17.04.2021 10:33 # 0
2) Это как? Булы в векторе пакуются в битмаски?
j123123 17.04.2021 10:38 # 0
Если надо именно нулевой физический адрес взять, мне nullptr не подойдет, и (void*)0 не подойдет, надо делать (void*)(1-1)
> 2) Это как? Булы в векоторе пакуются в битмаски?
Да, погугли.
https://alenacpp.blogspot.com/2005/06/vector.html
И говностандартизаторы эту "фичу" так и не пофиксили. Зато какие-то там модули выдумывают.
> Проблема с vector <bool> была замечена в конце 96-го года, Bill (PJ) Plauger (кстати, он президент той самой компании Dinkumware, которая писала реализацию STL для Visual C++ 5.0) упомянул о ней в статье C/C++ Users Journal.
guest6 17.04.2021 10:42 # 0
Вижу. Ну в целом, а надо ли получать сырой аррей булов из вектора? Наверное не очень. Если сделать вектор страктов, то уверен — оно будет вести себя нормально. Это между прочим неплохая оптимизация по памяти, битоебство это.
j123123 17.04.2021 10:46 # 0
Да, вполне могу представить, чтобы это было надо.
> Если сделать вектор страктов, то уверен — оно будет вести себя нормально.
Лучше б std::vector сделали нормальным, чтобы для специализации с bool-ом была та же хуйня, как и со специализации по другим типами.
guest6 17.04.2021 10:47 # 0
PolinaAksenova 17.04.2021 17:04 # 0
То есть для разработки обобщённых алгоритмов ня векторах придётся либо всегда держать в уме, что тебе, кроме нормальных векторов, может попасть няведомая хер-ня "std::vector<bool>", либо просто забить на неё.
bormand 17.04.2021 10:42 # +1
А как? Сделать новый std::real_vector<>, без этой говнофичи?
Здесь нужна картинка с xkcd про перегрев компа при нажатии на пробел.
j123123 17.04.2021 10:47 # 0
Поменять. Выкинуть нахуй эту говноспециализацию из std::vector<> и сделать как с прочими типами.
bormand 17.04.2021 10:49 # 0
Но... ею ведь кто-то пользуется. А тут вдруг потребление памяти вырастет в 8 раз и всё распидорасит.
Кресты -- не питон чтобы взять и по-быстрому* перехуячить весь язык и выбросить всё легаси.
* за десяток лет, лол
З.Ы. Хотя вот auto_ptr выпилили т.к. у него есть 100% адекватная замена.
guest6 17.04.2021 10:51 # 0
j123123 17.04.2021 10:52 # 0
Ну и пошли они нахуй. Пусть пробегутся по своему говнокоду регекспом, который заменит на какой-нибудь std::bitset всю ту хуйню, где этим пользуются.
j123123 17.04.2021 10:57 # 0
Это говно с std::vector<bool> в STL еще в конце 96-го года заметили, еще до стандартизации крестов-с-STL (STL в C++98 появился) и это говно всё равно застандартизировали. Вот где багор )))
Если бы биологическая эволюция работала как эволюция крестоговна, мы бы до сих пор размножались делением, дышали бы одновременно жабрами, легкими и через кожное дыхание как лягушки. Потому что комитет по эволюции человека решил так, отказ от размножение делением и дыханием как у лягушек ломает какую-то обратную совместимость, которая очень нужна
bormand 17.04.2021 11:00 # +2
Лебедь, рак и щука же.
Не добавите наш особый кейс в стандарт -- мы вообще его реализовывать не будем. Со "стандартом" SQL точно так же получилось.
gologub 17.04.2021 12:19 # 0
JloJle4Ka 17.04.2021 13:03 # 0
gologub 17.04.2021 13:26 # 0
UI не должен быть уродливым
особенно в такой сомнительной среде как прыщи
bormand 17.04.2021 10:41 # 0
Да, последние стандарты весьма няшные по сравнению с тем, что было в 90х...
Но кресты -- это, как правило, не модные хипстерские проекты, а легаси с историей в десятки лет. Поэтому рано или поздно и auto_ptr увидишь и strstream вместо stringstream.
> битмаски
Угу. И это пиздец лагает если по ним бегать алгоритмами. Т.к. приходится каждый бит выковыривать и потом засовывать обратно.
guest6 17.04.2021 10:46 # +1
А ты не находишь хипстерские проекты на джангопитоне или каком-нибудь node.js немного отвратительными? Имхо крестовые легаси проекты на уровне хотя бы 2003 стандарта могут быть и поприятнее таких, если там конечно реально 2003 стандарт, а не Си с классами.
К слову, если речь не о легаси — можно начинать писать новые проекты нормально.
bormand 17.04.2021 10:55 # +1
Коллбечная лапша как в старой ноде -- это треш, конечно.
guest6 17.04.2021 11:01 # 0
MAKAKA 17.04.2021 14:41 # 0
Другой вопрос, что вебщики это лалки анскильные обычно, и тебе с ними будет не интересно
bormand 17.04.2021 15:19 # 0
Я знаю... Там же написано "в старой".
MAKAKA 17.04.2021 15:23 # 0
Как люди писали SPA в 2009 -- это пиздец. Разве что на GWT
MAKAKA 17.04.2021 15:27 # +3
К середине нулевых они все посъябывали на свои PHP, и к 10-м в крестах остались уже те, кто осознанно выбрал путь самурая
bootcamp_dropout 17.04.2021 16:16 # 0
j123123 18.04.2021 03:43 # 0
Сколько говно не посыпай сахаром, оно остается говном. Тут надо менять первоосновы. Фундамент, так сказать.
Fike 18.04.2021 04:05 # +3
PolinaAksenova 18.04.2021 05:03 # +2
JloJle4Ka 18.04.2021 05:25 # +2
Note that the value of a null pointer in the C language does not matter on the underlying architecture. If the underlying architecture has a null pointer value defined as address 0xDEADBEEF, then it is up to the compiler to sort this mess.
При этом компилятор оптимизирует только 0 и NULL константы, а какой-нибудь mynullptr = 0xB00B5 уже, может быть, и не оптимизнёт!
booratihno 18.04.2021 12:51 # 0
как раз сишная часть крестов вполне себе проста для понимания, кмк
Сюрпризы нас ждут в тех местах, которых в няшной нету: RAII, перегрузки, и шаблоны
j123123 18.04.2021 07:01 # +1
Yes.
j123123 18.04.2021 07:12 # +1
j123123 28.08.2017 22:35
> Эхх, в том то и дело, проблема как раз в том, как этот ваш C++ эволюционировал. А эволюционировал он так, чтобы быть совместимым с Си. И вот это и есть основная, дерзчайшая ошибка. Нельзя строить язык высокого уровня, коим хочет быть C++, на основе C.
booratihno 18.04.2021 12:56 # 0
gologub 18.04.2021 13:01 # +1
j123123 18.04.2021 14:04 # 0
Про идею с DSL я вот там изгалал https://govnokod.ru/27116#comment622955
booratihno 18.04.2021 14:06 # 0
j123123 18.04.2021 14:12 # 0
Ну вот. Тогда на кой хрен кресты?
Проблема использования двух разных языков с двумя принципиально разными компиляторами/рантаймами заключается в том, что они не могут быть совместно-оптимизируемыми, скажем так. Если у меня написано куча кода на Си, я его в одну единицу трансляции сшиваю и компилирую (т.е. link-time optimization), то у меня компилятор видит всю программу и может сделать много чего. А если у меня сишарп который вызывает хуиту на сишке, он нихуя с ней сделать не может. И сишка про сишарп тоже нихуя не знает. Ничего никуда не заинлайнится и не наанроллится.
Если сделать метаязык, который в себе охватывает разные уровни абстракции, и позволяет их адекватно (не так как кресты) совмещать и объединенно компилировать, с применением в т.ч. всяких там частичных вычислений и символьного выполнения, чтобы zero-cost абстракции - вот это будет круто.
booratihno 18.04.2021 14:26 # 0
j123123 18.04.2021 14:39 # 0
Примерно так, но не точно и не полностью. Я против того, как в крестах смешиваются уровни абстракции. Можно сделать так, чтобы в рамках одного метаязыка описывались правила трансляции абстракций высокого уровня в абстракции низкого уровня. На абстракциях высокого уровня пишем высокоуровневый код, который не допускает абстракции низкого уровня внутри себя (но вполне можно вызывать что-то низкоуровневое в высокоуровневом коде). Через определенную систему типов и систему символьных вычислений можно выводить и/или описывать определенные свойства реализации алгоритмов. Ну скажем, что сортировка выдает массив такой, что в нем элементы с меньшим индексом всегда меньше или равны элементы с большим индексом, это можно выразить неким типом, и тогда второй раз сортировка уже никак этот сортированный массив не поменяет... Короче, почитай то, что я написал в комментарии https://govnokod.ru/27116#comment622955 и двумя комментами ниже него. Почитай про идеи суперкомпиляции (оптимизации методом частичных вычислений https://keldysh.ru/papers/2008/prep12/prep2008_12.html#_Toc193602742 ), проекции Футамуры. Вот так примерно надо это проектировать.
Проблема крестов в том, что его делали прагматики, а не идеалисты, типа вот Страуструп тот же, взял сишку, подкостылил, получил какую-то хрень, потом опять подкостылил, и еще, и потом шаблоны еще начали использовать под какую-то хуйню, под которую их изначально не придумывали, и вот так строят всякие хреновые небоскребы из говна и костылей, один костыль подпирает второй костыль, второй подпирает третий, и весь этот сраный ворох говна так и накапливается
Fike 18.04.2021 07:20 # 0
booratihno 18.04.2021 13:00 # 0
Как петухи писали без смарт поинтеров? а без мувов как?
Это же вручную солнце закатывать в каждом классе нужно
MAKAKA 17.04.2021 14:57 # 0
bormand 17.04.2021 15:18 # 0
Xepyc_DJIuHyc 20.12.2020 04:41 # +1
3.14159265 20.12.2020 05:26 # +1
guest6 20.12.2020 12:19 # 0
Ти давно ВНЗ закінчив?
MAKAKA 22.12.2020 19:27 # 0
Тільки, чи нi?
KAPA6AXCKuu_nemyx 22.12.2020 21:59 # 0
guest6 22.12.2020 22:57 # 0
он в жж пишет?
guest6 22.12.2020 23:04 # 0
MAKAKA 22.12.2020 23:06 # 0
MAKAKA 22.12.2020 23:08 # 0
https://inkanusgray.livejournal.com/
guest6 22.12.2020 23:12 # 0
MAKAKA 22.12.2020 23:18 # +1
на лавнхейте он есть, не?
Desktop 23.12.2020 00:32 # 0
https://github.com/sarah-walker-pcem/pcem
bormand 23.12.2020 00:33 # 0
Desktop 23.12.2020 00:35 # 0
guest6 23.12.2020 00:42 # 0
bormand 23.12.2020 00:43 # 0
MAKAKA 23.12.2020 00:59 # 0
эмуляторы железа такие забавные:)
guest6 23.12.2020 00:43 # 0
А, понял о чем ты.
MAKAKA 23.12.2020 00:51 # +2
guest6 23.12.2020 00:53 # 0
MAKAKA 23.12.2020 00:56 # +1
Инканус тоже не молод
bormand 23.12.2020 00:59 # 0
Он опенсурсный что ли?
MAKAKA 23.12.2020 01:02 # +1
Публичный CVS он вряд-ли стал бы держать, разве что на сурсфорж или фрешмит бы выложился
А почему ты спрашиваешь? Хочешь почитать перл образца 1998-го года?:)