- 1
- 2
- 3
- 4
- 5
- 6
CREATE TABLE users(
....
passwd VARCHAR (32) DEFAULT NULL,
passwd_clear VARCHAR (32) DEFAULT NULL,
....
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−164.2
CREATE TABLE users(
....
passwd VARCHAR (32) DEFAULT NULL,
passwd_clear VARCHAR (32) DEFAULT NULL,
....
passwd - типа зашифрованный
passwd_clera - типа в открытом виде ))))
guest 19.10.2009 11:30 # −3
guest 19.10.2009 11:39 # 0
nolka4 19.10.2009 12:20 # 0
xeonix 22.10.2009 19:19 # 0
тут всё зависит от алгоритма шифрования, однонаправленный или нет.
кста, еси базу ломанули, то особого труда не составит отослать при входе в систему хеш пасса в обход шифрования.
другое дело, еси принятый пасс шифруется на серваке, но тогда его можно в чистом виде увести в процессе передачи данных.
кароче, юзайте ассиметричное шифрование с открытым ключом, и вам будет щастье!
Yozheg 23.10.2009 01:26 # +5
А восстановление старого пасса (например как вконтакте) - это вообще моветон. Забыл пасс - нажимаешь на сайте специальную кнопочку, тебе генерится ключ, высылается на мыло. С ключем входишь, ставишь себе новый пасс
guest6 11.09.2023 18:45 # +1
То его сбрасывают
>тут всё зависит от алгоритма шифрования, однонаправленный или нет.
Боже мой, что за херню вы несёте?
>кста, еси базу ломанули, то особого труда не составит отослать при входе в систему хеш пасса в обход шифрования.
Вы ебанутый?
Клиент шлет пароль, а сервер проверяет его хеш.
> но тогда его можно в чистом виде увести в процессе передачи данных.
Для этого существует TLS
С такой глубиной познаний вам лучше обратно в ноготочки
Повкатывались бляд в айти
guest6 11.09.2023 18:48 # 0
Всё так. Я не представляю, куда слать хеш. В phpmyadmin?
Другое дело, если он несолёный, то можно попробовать реверснуть.
guest6 11.09.2023 18:53 # 0
Историческая справка про /etc/passwd:
[quote]
Unix acquired a salt in Seventh Edition in 1979.
[/quote]
Каким образом спустя 30 лет это всё еще было комуто не очевидно?
guest6 11.09.2023 18:59 # 0
В общем да, несолёный хеш можно обратить... если пароль короткий, содержит common words или если ты обладаешь бесконечными ресурсами. Ресурсов нужно на порядки меньше, чем для обращения солёного, но всё равно может не хватить, если ты не солидная фирма.
Если приспособить к жопе
сопроцессор фирмы «Cray»,
Можно срать в два унитаза
в сорок тысяч раз быстрей.
guest6 11.09.2023 19:03 # +1
если дебил поставил пароль 123 (не представляю, зачем так делают) то обратный лукап по несоленому хешу уже есть в Интетнете
tonic 19.10.2009 16:20 # +3
guest 19.10.2009 14:32 # 0
guest6 11.09.2023 18:38 # 0
guest 24.08.2012 06:55 # 0
ИМХО, не говнокод.
bormand 24.08.2012 07:13 # 0
А почему нельзя пробежать циклом по всей табличке, да зашифровать их все?
> В перспективе столбец с открытым паролем планируется удалить
ИМХО его просто забыли удалить (возможно, что в passwd_clear сейчас уже NULL'ы).
guest6 11.09.2023 14:34 # 0
Постепенное шифрование может понадобиться, если раньше пароли были с несолёным или слабым хэшем и нужно его поменять на солёный или более сильный.
Desktop 11.09.2023 14:18 # 0
guest6 11.09.2023 14:24 # 0
Desktop 11.09.2023 14:29 # 0
всё это можно обыграть почтовыми рассылками или плашками на сайте, мол, просим проявить понимание хуё-моё
впрочем, не думаю, что на сайте, где пароли хранили плейнтекстом, что-то в принципе может по чему-то ударить
guest6 11.09.2023 14:43 # 0
Desktop 11.09.2023 14:50 # 0
там можно было перейти по специально сформированной ссылке и обнаружить, что у тебя в описании профиля теперь полная джигурда
ну и отсутствие https
guest6 11.09.2023 15:12 # 0
guest6 11.09.2023 18:24 # +2
Отправляешь два запроса на восстановление пароля учётки: один на восстановление своей, другой — на восстановление учётки жертвы. Если уложишься в одну секунду, тебе и жертве придёт одинаковый код восстановления. Теперь ты знаешь код, вводишь в учётку жертвы, меняешь пароль.
3anag 11.09.2023 21:56 # 0
Desktop 11.09.2023 21:59 # 0
3anag 11.09.2023 22:08 # 0
guest6 11.09.2023 14:32 # 0
Лошадиное?
Desktop 11.09.2023 14:34 # 0
Вы бы выбрали D в качестве языка на следующем проекте?
guest6 11.09.2023 14:44 # 0
Desktop 11.09.2023 14:51 # 0
mixin templates это прямо серебряный пулемёт какой-то
guest6 11.09.2023 15:00 # 0
ого, любимый паттерн Ihno
Desktop 11.09.2023 15:01 # 0
например, можешь нагенерить класс с пропертями и конструктором на основе произвольного количества шаблонных параметров, если они реализуют определённый интерфейс или вообще на основе duck typing
guest6 11.09.2023 20:24 # 0
bootcamp_dropout 11.09.2023 17:34 # 0
Desktop 11.09.2023 17:37 # 0
у D есть dub, который одновременно (вроде как) и система сборки, и пакетный менеджер
вот с IDE могут быть проблемы
а какие ещё тулы тебе нужны?
guest6 11.09.2023 17:40 # 0
bootcamp_dropout 11.09.2023 19:04 # 0
Кто-то должен знать систему сборки - какие флаги поставить для прода, какие для дева, как траблшутить непонятные высеры
Кто-то должен присобачить это к cicd - приготовить контейнеры, настроить точки входа-выхода.
Кто-то должен присобачить эту билд систему к существующей - дописать скрипт, сделать новый таргет для Базеля или что-то такое
Кто-то должен настроить воспроизводимые билды
Кто-то должен присобачить тест раннер. Повторить вышеперечисленные шаги для раннера. Бонусом научиться парить высер раннера и настроить подсчет coverage
>пакетный менеджер
Кто-то должен защищаться от supply chain а так. Кто-то должен обновлять систему сборки и пакеты по мере поступления cve
Кто-то должен задокументировать все что было сделано выше и отвечать на вопросы идиотов и быть готовым чинить если поломается
Desktop 11.09.2023 19:09 # 0
> Кто-то должен присобачить тест раннер.
bootcamp_dropout 11.09.2023 19:11 # 0
guest6 11.09.2023 19:13 # 0
Desktop 11.09.2023 19:42 # 0
то, что ты или я с этим не сталкивались, никак не противоречит
ну и вообще "проставить флаги, дописать скрипт, обновлять" это не какой-то rocket science, если даже жабоскриптизёры справляются
bootcamp_dropout 11.09.2023 20:23 # 0
В фб и нетфликсе фраза "мы используем язык" значит что есть команда из 3-30 человек которые фуллтайм занимаются только тулингом под этот язык. В случае больших платформ есть еще и команды которые фуллтайм занимаются движками. Как ТЕБЕ помогает то факт что это решенная проблема в фейсбуке?
> ну и вообще "проставить флаги, дописать скрипт, обновлять" это не какой-то rocket science, если даже жабоскриптизёры справляются
На говнокоде чередуются посты "да хули там подключить язык/тулу/etc" с жалобами на то что билд тормозит, тесты мигают и какая-то хуйня не билдится на винде. Можно подумать что эти вещи как-то связаны, но тут препочитают не думать а гыгыкать над жабоскриптизёрами
guest6 11.09.2023 20:28 # +1
В Rust или Go я просто говорю build, и получаю сборку. Говорю test, и запускаются тесты.
Сколько всего нужно поставить и насроить в JS чтобы это всё заработало?
Desktop 11.09.2023 22:00 # 0
guest6 11.09.2023 22:03 # 0
В JS я этого сделать не могу: у меня нету ни сборщика, ни аглификатора, ни дерево мне не потрясти, ни компилятора из TS нету.
Единственное, что есть в npm, но нет в крестах, так это зависимости
bootcamp_dropout 11.09.2023 22:07 # 0
Desktop 11.09.2023 22:09 # 0
bootcamp_dropout 11.09.2023 22:14 # 0
к тому же браузеры которые каноничная платформа тоже умеют в ес модули
guest6 11.09.2023 22:36 # 0
guest6 11.09.2023 22:09 # 0
bootcamp_dropout 11.09.2023 22:13 # 0
>удалит из него мертвый код, оптимизирует
V8 в браузере оптимизирует. Удаление мертвого кода - может браузеры в будущем и научатся
guest6 11.09.2023 22:34 # 0
Потому что я не хочу распостранять сырцы
> Удаление мертвого кода - может браузеры в будущем и научатся
Ну а компилятор и линкер сей умеют это уже десятки лет.
Я уж не говорю о том, что сишку можно собрать статически, и ни от чего ообще не зависеть. Правда не всегда
guest6 11.09.2023 22:18 # 0
Desktop 11.09.2023 20:37 # 0
– ну так, что вероятно они могут поделиться этим решением. как пример: ссылка ниже на дефинишены для dlang от команды базеля
кстати, базель это пример проблемы, решённой для ТЕБЯ командой в гугле
bootcamp_dropout 11.09.2023 20:46 # 0
Desktop 11.09.2023 20:51 # 0
решения бывают разные, далеко не для всех нужно выделять сертифицированную команду землекопов ;-)
Desktop 11.09.2023 20:38 # 0
– это у одного питуха траблы и дело там не в языке или тулчейне, а в прокладках между унитазом и раковиной
guest6 11.09.2023 20:46 # 0
У нас в некоторых командах есть спецпитух для пирдолинга со системой сборки и CI
bootcamp_dropout 11.09.2023 20:57 # 0
guest6 11.09.2023 19:12 # 0
Такая проблема действительно есть: чтобы юзать тулу -- нужно потратить время на её изучение. Увы.
bootcamp_dropout 11.09.2023 19:17 # 0
Спустя полгода они обнаруживают что надо было учить dub и они теперь половину рабочего времени тратят на починку ломаного билда и дебаг мигающих тестов вместо программирования, выгорают и увольняются
guest6 11.09.2023 19:23 # 0
https://github.com/webpack/webpack/discussions/17101
Есть какой-то язык, где знание о тулинге выдают вместе с языком?
Desktop 11.09.2023 19:44 # 0
guest6 11.09.2023 19:54 # 0
Ты предлагаешь D, а буткем сразу думает, как интегировать его в сборку Bazel, потому что в его кругах это де-факто система сборки.
а у j123 в контроллерах нету никакого Bazel, и ему вообще на половину озвученных тут вопросов может быть похуй
Desktop 11.09.2023 19:56 # 0
Desktop 11.09.2023 19:57 # 0
https://github.com/bazelbuild/rules_d
Desktop 11.09.2023 19:59 # 0
guest6 11.09.2023 19:52 # 0
bootcamp_dropout 11.09.2023 20:24 # 0
guest6 11.09.2023 20:28 # 0
bootcamp_dropout 11.09.2023 20:35 # 0
guest6 11.09.2023 21:17 # 0
guest6 11.09.2023 21:21 # 0
bootcamp_dropout 11.09.2023 21:22 # 0
guest6 11.09.2023 20:36 # 0
j123123 11.09.2023 15:05 # +1
guest6 11.09.2023 15:08 # 0
j123123 11.09.2023 15:10 # 0
guest6 11.09.2023 15:11 # 0
"Хипстерское говно" как-то не очень развёрнуто звучит
j123123 11.09.2023 15:28 # 0
guest6 11.09.2023 15:30 # 0
j123123 11.09.2023 15:34 # 0
guest6 11.09.2023 18:17 # 0
Иногда они слишком строги, и тогда нужно писать unsafe.
Это, в общем, не сложно, но и не часто нужно.
Сишка тоже не позволяет тебе выразить некоторые вещи: к примеру, как я могу вызвать функцию с левым колконвеншеном, где параметр нужно сувать в регистр, а другой -- в стек?
> xor linked list
В расте даже нельзя сделать структуру часть которой ссылается на другую часть, потому что в расте есть только референсы. А поинтеры там только unsafe.
guest6 11.09.2023 18:19 # 0
В Watcom C можно даже такую ересь описать прагмой. Даже переходник на асме писать не придётся, как в случае других компиляторов.
Жаль, в стандарте такой возможности нету.
guest6 11.09.2023 18:20 # 0
Desktop 11.09.2023 18:21 # 0
guest6 11.09.2023 18:31 # 0
j123123 11.09.2023 18:52 # 0
А если мне эти правила ownership с рефкаунтерами и прочей питушней в каком-нибудь условном контроллере вообще нахер не нужны, и я управляю ресурсами в некоем условном контроллере каким-то своим способом, о котором Rust нихуя не знает? Мне весь код в unsafe писать? Тогда чем это лучше Си?
guest6 11.09.2023 18:54 # 0
Если вообще у тебя нету операционки и аллокатора, а есть только шмат памяти, которую ты просто сам заполняешь и сам за ней следишь, то раст тебе не нужен.
А зачем тебе D?
j123123 11.09.2023 18:58 # 0
Там есть mixin и через них можно что-нибудь наметушить, генерить какое-то говно в компилтайме. А еще там есть шаблоны и шаблонные миксины.
guest6 11.09.2023 19:01 # 0
j123123 11.09.2023 19:04 # 0
А для обычных случаев D (better-c) ничем не хуже C
guest6 11.09.2023 21:28 # 0
А почему нельзя сделать новый хорший препроцессор для сей?
Вообще, все япы кроме си, си пипи и обжси сосут по причине несоместимости с сишкой. Это значит, что API операционок нужно обмазывать каким-то ненужным говном. Почему не сделать нормальный язык, но совместимый с сии?
Desktop 11.09.2023 21:30 # 0
во-вторых, ffi
в-третьих,
https://dlang.org/spec/interfaceToC.html
https://developer.apple.com/documentation/swift/using-imported-c-functions-in-swift
guest6 11.09.2023 21:32 # 0
>Here’s how Swift imports them:
Тоесть там не нужна специальна мартышечка которая аккуратно перепишет сигнатуры с одного ЯПа на другой?
guest6 11.09.2023 21:33 # +1
guest6 11.09.2023 21:35 # +1
Desktop 11.09.2023 21:37 # 0
guest6 11.09.2023 21:44 # 0
Desktop 11.09.2023 21:46 # 0
guest6 11.09.2023 21:49 # 0
Desktop 11.09.2023 21:50 # 0
guest6 11.09.2023 21:54 # 0
Desktop 11.09.2023 21:55 # 0
guest6 11.09.2023 21:57 # 0
http://www.delphikingdom.com/library/library.asp?ID=12
Программирование дисковых подсистем (с дискетой)
зы: всё таки раньше у людей было больше времени
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=855
Desktop 11.09.2023 21:58 # 0
guest6 11.09.2023 22:00 # 0
И кстати это даже симпатичнее, чем писать его на JS/VBS
Desktop 11.09.2023 22:04 # 0
Начинала с Паскаля. Потом пришлось писать на С++.
Уйдя из института писала на FoxPro.
Сейчас Delphi , Ms SQL.
Личная просьба:
Пожалуйста, НЕ ЗАДАВАЙТЕ мне вопросы по программированию в личной почте... Я все равно не буду на них отвечать.
Поймите правильно, на это у меня физически не хватает времени.
guest6 11.09.2023 22:07 # 0
Desktop 11.09.2023 22:13 # 0
guest6 11.09.2023 22:36 # 0
ropuJIJIa 11.09.2023 23:01 # 0
В радуги волшебный свет.
Всё у девки впереди,
Девке 55 лет.
guest6 11.09.2023 23:02 # 0
в королевстве дельфи
да
ropuJIJIa 11.09.2023 23:28 # 0
guest6 11.09.2023 23:30 # 0
А ты знаешь группу "удивление"?
ropuJIJIa 11.09.2023 23:40 # 0
guest6 11.09.2023 22:38 # 0
http://www.shushara.ru/albums.php
guest6 11.09.2023 22:39 # +1
сука как можно такого эффекта добиться?
guest6 11.09.2023 22:52 # +2
guest6 11.09.2023 22:54 # 0
а что, амперсанд двадцать лет назад был валидным?
guest6 11.09.2023 22:56 # 0
guest6 11.09.2023 22:57 # 0
CEHT9I6PbCKuu_nemyx 12.09.2023 02:23 # 0
Например, некоторые питухи тащут Жуквери с CDN, указывая вместо кокококонкретной версии /latest. В итоге одним прекрасным днём или ночью в CDN Жуквери обновится, а в нём обратно несовместимые изменения, и весь фронтенд распидорасит. Особенно красиво, если это SPA, тогда клиенты вместо кокококонтента увидят хуй.
guest6 12.09.2023 03:27 # 0
Desktop 12.09.2023 10:14 # 0
в идеале оно вообще должно быть на каком-нибудь нексусе, чтобы лефтпад не случился
guest6 12.09.2023 13:25 # +2
OpenSSH при каждом запуске скачивал бы свой libssh.so прямо найтли билд с левых серверов
guest6 11.09.2023 22:55 # 0
http://www.delphikingdom.com/asp/userlist.asp
ropuJIJIa 11.09.2023 22:59 # +1
Until and including PHP 4.3, it was possible to send, assign or return variables by reference that should really be returned by value, such as a constant, a temporary value (e.g. the result of an expression), or the result of a function that had itself been returned by value, as here:
В PHP 4.4 уже нельзя писать & перед вызовом функции, т. е. ссылаться на безымянный результат уже нельзя.
Для истории: PHP 5.0 вышел в 2004-м году.
guest6 11.09.2023 23:01 # 0
ropuJIJIa 11.09.2023 23:45 # 0
А помнишь, ради PHP3 было специальное расширение .php3? В эпоху, когда mod_rewrite ещё не вошёл в моду, можно было в URL наблюдать питушню вроде index.php3.
https://forum.ixbt.com/topic.cgi?id=24:017554
guest6 12.09.2023 00:53 # 0
Но вообще когда я познакомился с вебразработкой под уникс, там везде был Perl, CGI, и SSI, и конечно целая пачка модулей под Apache.
guest6 12.09.2023 02:48 # 0
Апач был чуть ли не первый серьезный сервер, с которым я столкнулся, и конечно мир был полон удивительных открытий
guest6 11.09.2023 23:01 # 0
guest6 11.09.2023 23:09 # 0
ебать какое
https://samag.ru/archive/article/1196
guest6 11.09.2023 22:05 # 0
аа! чат диван!
Desktop 11.09.2023 22:24 # 0
Суперхацкиллер
guest6 12.09.2023 15:10 # 0
https://habr.com/ru/users/superhackkiller1997/
Царь разъёбует джавушка
https://habr.com/ru/articles/338084/comments/#comment_10420608
Desktop 12.09.2023 15:29 # +1
guest6 12.09.2023 15:37 # +1
Царь доказывает, что асинхронность не нужна, потому что можно насрать 10000 потоков, и потечь. Он и на ГК это говорил.
Царь доказывает, что писать 100000 это заебись, потому что программист должен быть внимательным.
Наконец царь говорит, что никакой ДЖЫТ в джаве не заменит прокладку между сидением и монитором и потому джавалалки всегда будут сосать
Desktop 12.09.2023 15:42 # 0
слава богу, что он срёт там, а не тут
guest6 12.09.2023 15:44 # +1
Desktop 12.09.2023 15:46 # +1
CEHT9I6PbCKuu_nemyx 12.09.2023 15:43 # 0
guest6 12.09.2023 15:52 # +1
Но там и кроме него говна хватает. Знаешь, как происходит линковка? Вот ты в коде заимпортил класс и вызвал метод. Класслоадер загрузит (с диска!) класс, составит таблицу его методов и дернет их. И это всё происходит в рантайме. Это позволяет не пересобирать при добавлении метода и поля правда, но это же не бесплатно.
А проверка типов в рантайме обязательная? А границы массива всякие? А боксинг при обобщенном программировании?
CEHT9I6PbCKuu_nemyx 12.09.2023 15:55 # 0
guest6 12.09.2023 16:00 # +2
Когда они все загрузятся, а самые горячие места заJITятся, а долгие объекты переедут на небо и исключатся из минорных GC, вот тогда говорят "джава машина прогрелась".
Так что AOT тут не оч поможет
CEHT9I6PbCKuu_nemyx 12.09.2023 15:59 # 0
Это мелочь по сравнению с остальной нагрузкой. Есть же gcc -fbounds-checking для сишки, есть язык Ада, есть Object Pascal, есть D.
Проверка границ позволяет не хватать CVE «выполнение произвольного кода при переполнении буфера».
guest6 12.09.2023 16:04 # 0
https://github.com/Shnatsel/bounds-check-cookbook/
На самом деле представь себе такой код на вымышленном языке
Если компилятор тупан, и не осилит доказать, что петушков меньше миллиона, то будет довольно дохуя лишних действий делаться
CEHT9I6PbCKuu_nemyx 12.09.2023 16:09 # 0
guest6 12.09.2023 16:21 # 0
CEHT9I6PbCKuu_nemyx 12.09.2023 16:28 # 0
Во Фрипаскале и в Дельфи можно даже отключить локально, только в горячих местах.
guest6 12.09.2023 16:41 # +1
С одной стороны нахуя проверять ненужное, с другой наверное миллион или около того багов связаны с тем, что питух ошибся на единичку. Причем иногда сишник с десятью годами опыта всё равно обсирается на единичку где-то.
CEHT9I6PbCKuu_nemyx 12.09.2023 19:53 # 0
https://govnokod.ru/27648#comment669198
Препод рекомендует выделять под массив на пару-тройку элементов больше, чем нужно, чтобы если программист лоханётся с условием завершения цикла, программа не упала.
CEHT9I6PbCKuu_nemyx 12.09.2023 15:41 # +1
Всё так.
guest6 12.09.2023 15:46 # +2
То-есть безусловно я не буду никогда писать код с UB только потому, что на моей материнской плате он чуть быстрее кода без UB, но царёвы нахрюки на лалок мне импонируют.
Меня тоже безмерно заеабали миф и легенды про то, как анскиллявый питух на джаваскрипте напишет левой ногой хуиту, а потом придет мудрый JIT, и оптимиизрует этот код так, словно его Кармак писал.
Не было такого, и не будет никогда
Desktop 12.09.2023 15:49 # 0
guest6 11.09.2023 22:15 # 0
guest6 11.09.2023 22:47 # 0
https://i.postimg.cc/SKR2mpwH/image.png
guest6 11.09.2023 21:49 # 0
guest6 11.09.2023 21:46 # 0
Desktop 11.09.2023 21:34 # 0
она может понадобиться, если ты хочешь при помощи специальных мокросов получить из сишных структур модные свифтовые классы с методами, но это необязательно
Desktop 11.09.2023 22:49 # 0
https://dlang.org/spec/objc_interface.html
guest6 11.09.2023 22:53 # 0
А почему про D мало говорят?
Desktop 11.09.2023 22:54 # 0
Но с objc смешно: в одном есть arc, в другом gc, но вместе извольте руками release звать
guest6 11.09.2023 22:57 # 0
хм.. Я не могу не доверять Александрску, но звучит необычно
А как же j123 хотел его в контролер завести?
Или горбатый дворник там опционален?
ropuJIJIa 11.09.2023 23:04 # 0
В режиме «better C» нельзя использовать какие-то встроенные классы, потому что их рантайм использует горбатого дворника.
guest6 11.09.2023 23:06 # 0
guest6 11.09.2023 23:10 # 0
guest6 11.09.2023 23:12 # 0
guest6 11.09.2023 23:14 # 0
j123 говорил, что в "D" ему нравится метапрограммирование. Чем better C еще better than C я не знаю.
Кстати, а почему better C не Objc? OBjc полностью совместим с сишкой, вот просто бери, и теки.
А поверх этого обычное ООП
Desktop 11.09.2023 23:26 # 0
Desktop 12.09.2023 10:13 # 0
The executable size is 23,068 bytes.
Translate it to D:
The executable size is the same, 23,068 bytes. This is unsurprising because the C compiler and D compiler generate the same code, as they share the same code generator. (The equivalent full D program would clock in at 194Kb.)
лол кек
guest6 12.09.2023 13:26 # 0
Впрочем, в соверменно мире сто метров -- норм размер бинаря
доказано Go
Desktop 12.09.2023 13:31 # +1
если ты про сижную программу, то не знаю
CEHT9I6PbCKuu_nemyx 12.09.2023 13:47 # 0
CEHT9I6PbCKuu_nemyx 12.09.2023 13:48 # 0
Desktop 12.09.2023 10:18 # 0
– ObjC это ужасный язык, плюсы совместимости с сявкой полностью перекрываются его чудовищностью
guest6 12.09.2023 13:12 # 0
Синтаксис необычный? Плюшек маловато? Вербозность?
Desktop 12.09.2023 13:29 # +1
1. вербозный
2. message dispatch, который, во-первых, тормоз, во-вторых, позволяет себе выстрелить в колени и копчик при помощи всяких forwardInvocation (ок, этим никто не пользуется, но всё равно)
3. отсутствие перегрузки методов в связке с нестрогой типизацией даёт пространство для креатива, на фоне которого php это венец изящества
4. отстутствующие фичи, которые лечатся костылями (эмуляция private пропертей и методов при помощи категорий)
5. nssomeclass и nsmutablesomeclass в стандартной блевотеке, потому что для let и var пришлось ждать другую цивилизацию
6. блоки с кривым синтаксисом и пачкой нюансов, которые нужно держать в голове
7. кастрированные женерики, придуманные чисто для хоть какой-то совместимости со швифтом
7а. по той же исторической причине ТИПА гетерогенные коллекции
8. тяжеленные нативные исключения, которыми за пределами стандартной либы никто не пользуется
9. сишный код красиво переплетается с обжективом, я не знаю, это эклектика или синкретизм, есть в чате фотографы?
10. разделение на хедеры и собственно сорцы
ой устал уже
CEHT9I6PbCKuu_nemyx 12.09.2023 13:53 # 0
обсерватории
guest6 12.09.2023 15:01 # 0
ropuJIJIa 11.09.2023 23:07 # 0
https://dlang.org/spec/betterc.html
D features not available with BetterC:
• Garbage Collection
• TypeInfo and ModuleInfo
• Classes
• Built-in threading (e.g. core.thread)
• Dynamic arrays (though slices of static arrays and pointers work)
• Associative arrays
• Exceptions
• synchronized and core.sync
• Static module constructors or destructors
**********
Nearly the full language remains available. Highlights include:
•Unrestricted use of compile-time features
• Full metaprogramming facilities
• Nested functions, nested structs, delegates and lambdas
• Member functions, constructors, destructors, operating overloading, etc.
• The full module system
• Array slicing, and array bounds checking
• RAII (yes, it can work without exceptions)
• scope(exit)
• Memory safety protections
• Interfacing to C++
• COM classes and C++ classes
• assert failures are directed to the C runtime library
• switch with strings
• final switch
• unittest
• printf format validation
CEHT9I6PbCKuu_nemyx 20.09.2023 11:03 # 0
https://web.archive.org/web/20120908041550/3d.benjamin-thaut.de/?p=20
Чувак переписал рантайм (libphobos), чтобы деаллоцировать объекты вручную.
Ещё мысли на эту тему здеся:
https://stackoverflow.com/questions/13574552/d-programming-without-the-garbage-collector
Desktop 20.09.2023 12:48 # 0
можешь свой gc прикрутить, хе-хе
guest6 11.09.2023 22:14 # 0
Я ловил багры от Windows SDK, потому что результат компиляции зависел от порядка #include: макросы из одного хедера конфликтовали с другими хедерами.
Если бы там всё без макросни было... А так это говно лучше сжечь напалмом и начисто переписать по документации.
guest6 11.09.2023 22:40 # 0
API операционок, UEFI и большиства серьезных lib/SDK описываются в терминах си.
j123123 14.09.2023 06:32 # 0
Крестопараша с Си уже не имеет полной совместимости по хедерам т.к. можно написать хедер, который корректный для Си, но некорректный для крестов.
> Почему не сделать нормальный язык, но совместимый с сии?
Потому что для совместимости с Си надо тащить в язык херню с инклудами и препроцессором, а херня с инклудами и препроцессором это мягко говоря не очень удачный подход (нужно ли это доказывать?). Тащить совместимость с говном это хуевая стратегия в долгосрочной перспективе, да и в целом совместимость с говном означает что и твой язык тоже отчасти говно
guest6 14.09.2023 15:30 # 0
да, но только неряшливый хедер. Большинство хедеров SDK и API операционок работают в C++.
Хотя в Windows.h стопудово есть провека на С++ (за прыщи не скажу)
j123123 14.09.2023 17:31 # 0
для прототипов функций.
guest6 14.09.2023 17:57 # 0
??
j123123 14.09.2023 18:04 # 0
guest6 14.09.2023 18:35 # 0
j123123 14.09.2023 18:39 # 0
guest6 14.09.2023 18:42 # 0
Или же они распостраняются с компилятором, а ядро лишь предоставляет ABI?
guest6 14.09.2023 18:50 # 0
"Linux" предоставляет `.h` файлы только для разработчиков кода, работающего в ядре. Такой код не обязан быть совместимым с `C++`.
Код для пользовательского режима пишется с использованием заголовков из пакета компилятора (обычно это пакет `GCC`) и потому вопрос смысла не имеет.
guest6 15.09.2023 01:36 # 0
j123123 03.05.2024 20:43 # 0
> Самая фундаментальная проблема заключается в том, что borrow checker вынуждает выполнять рефакторинг в самые неудобные моменты. Разработчики на Rust считают это положительным моментом, потому что это заставляет их «писать хороший код», но чем больше я работаю с языком, тем сильнее сомневаюсь, что это так. Хороший код пишется благодаря итеративной работе с идеями и экспериментам, и хотя borrow checker может заставить увеличить количество итераций, это не означает, что таков желательный способ написания кода. Часто я обнаруживал, что именно невозможность просто пойти дальше, решить свою задачу, а проблему устранить позже, мешает писать хороший код.
Какой багор )))
guest6 03.05.2024 20:53 # 0
guest6 04.05.2024 03:34 # 0
j123123 04.05.2024 10:28 # 0
guest6 28.07.2024 02:36 # 0
guest6 11.09.2023 20:25 # 0
guest6 11.09.2023 15:29 # 0
guest6 11.09.2023 16:28 # 0
Собака лает.
Караван идёт.
Наркоманы жрут говно.
guest6 11.09.2023 21:00 # 0
guest6 12.09.2023 03:17 # 0
Ну понятно, что ProtoBuf более всего делал `memcpy`, и потому оказался чуть медленее, но зато его представление не выровнено, и потому компактнее.
Но скорости все равно получились такие шустрые, что если ты не шлеш по два миллиона структур в секунду, то в общем разницы между всеми тремя решениями ты не заметишь.
Разница типа 70ms vs 160ms на миллион питухов
guest6 12.09.2023 14:59 # 0
Average Wages in Moldova increased to 12176 MDL/Month (676.862 USD/Month)
guest6 12.09.2023 15:04 # 0
https://emacs.ch/@a13cui/111046238207230058
guest6 12.09.2023 15:24 # 0
Питух, ООпаттерны для интерпрайзного жаюаёба на галере, а не для AAA
https://habr.com/ru/articles/760184/
guest6 15.09.2023 01:38 # 0
guest6 15.09.2023 01:39 # 0