|
2.3, Аноним (3), 11:22, 03/11/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +2 +/– |
Про Rust там отдельно написано, но без конкретных цифр:
Rust continues to gain popularity for its safety, performance, and productivity. Originally intended to serve as a safer alternative to C and C++, Rust has exploded in popularity and adoption, with top applications, such as Microsoft Windows, using Rust to rewrite core libraries with its memory-safe code.
| |
|
|
|
|
4.283, leap42 (ok), 07:03, 05/11/2024 [^] [^^] [^^^] [ответить] [↑] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| –1 +/– |
> за ручную посылку в приличных местах по лапам бьют.
Слышали когда-нибудь про Озон, Авито, Вайлдберис, Яндекс, Мэйл.ру, ВК, МТС, экосистему Сбера? Так вот, у всех из этого списка сейчас главный язык - Go. В котором нет ни одной приличной ORM. Поэтому там всё пишут ручками (я в несколько из списка собеседовался, а в одном работал). Тейк про непортабельность смешной. Во-первых сейчас с postgres уходить просто некуда, во-вторых несовместимость серьёзных сервисов не проявляется в примитивных крудах (или чинится исправлением одного-двух слов в запросе).
| |
|
|
6.289, leap42 (ok), 10:43, 05/11/2024 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| –1 +/– |
> Странно. А я аж две ОРМ знаю приличные и пользую обе. Миграции,
> запросы, хуки, многопоточность, транзакции -- очень доволен. А может и ещё
> что-то есть. Ты точно с моей планеты?
Давайте названия в студию. Я надеюсь там не будет gorm, pq, sqlc, squrrel и прочих НЕ orm.
| |
|
|
|
|
2.37, Аноним (-), 12:28, 03/11/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +14 +/– |
> разве от sql-иньекций не должны orm'ы спасать?
Как бы должны, но кто ж пользуется ORM? Чтобы пользоваться ORM, тебе мало знать SQL, надо ещё этот ORM знать и понимать, что на нём нужно написать, чтобы получить именно такой SQL запрос, который тебе нужен. Такие вещи усложняют разработку и сопровождение в разы.
> кто сейчас руками шлет запросы?
Любой, кому приходится писать менее тривиальные запросы, чем SELECT * FROM mytable;. SQL -- это язык выборки данных, он позволяет очень сложные вещи сочинять, которые потом субд может быстро выполнять, часто это настолько быстро, что руками обогнать субд не удастся, особенно если ты пишешь на каком-нибудь интерпретируемом язычке типа php/python со сборкой мусора и динамической типизацией. Но даже на компилируемом языке возникнут проблемы с тем, чтобы простыми запросами к sql и постобработкой полученных данных обогнать один большой и кучерявый запрос sql, который выдаёт именно те данные, которые тебе нужны. А теперь попробуй сочинить и отладить большой кучерявый sql запрос через посредство какой-нибудь ORM.
ORM -- это классический пример leaky abstraction. Вроде как и абстракция над SQL, но она дырявая и изо всех её щелей лезет SQL, и не понимая всех нюансов SQL, в том числе и специфичных для данной реализации SQL, ты не сможешь ею пользоваться. Такая абстракция не упрощает, а усложняет работу, потому что помимо SQL, ты должен ещё знать особенности ORM и продираться через них.
При этом, SQL имеет встроенные механизмы, позволяющие обходить sql-инъекции, он называется prepared statements. Все внешние данные, которые идут в запрос, передаются отдельно и биндятся на переменные, значения которых sql потом использует.
Я не знаю, как людям до сих пор удаётся наступать на грабли sql-injection, но подозреваю, что это либо язычки с API, где сконкатенировать sql-запрос проще, чем подсунуть в prepared-statement значения, либо люди которые изучали SQL по туториалам из прошлого века.
| |
|
|
4.125, Аноним (125), 20:26, 03/11/2024 [^] [^^] [^^^] [ответить] [↓] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +2 +/– |
>Если у вас проект с кучей объектов и таблиц, ну хотя бы больше ста таблиц, ORM будет лишь запутывать дело, если одна две, три ну десять может быть да - чтбы быстро сделать сдать и забыть - на фрилансер орг каком то.
Если у вас сто таблиц, то ORM вам тем более нужен, чтобы не вспоминать где что лежит и как какая таблица называется. То, что с ORM можно сделать вводя одну единственную строку, без ORM придётся делать постоянно перепрыгивая между кодом и схемой данных.
>Потом оказывается, что да, и запросы генерятся неоптимизированные, и еще что то надо сделать помимо хитрое и заковыристое
Ради нескольких отдельных случаев вы добавляете себе рутину во всём остальном. Десяток insert-ов можно и через ORM сделать, вы всё равно это не заметите.
| |
|
5.254, Аноннн (?), 14:29, 04/11/2024 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| –1 +/– |
"почти не зная sql" - ну т.е. сравнивать не с чем, синдром утенка ))
Цитата с msdn (да, не поленился, нашел, почитал):
Знания базового сервера базы данных на промежуточном уровне или выше необходимы для проектирования, отладки, профилирования и переноса данных в рабочих приложениях с высокой производительностью. Например, знание первичных и внешних ключей, ограничений, индексов, нормализации, инструкций DML и DDL, типов данных, профилирования и т. д.
| |
|
|
|
|
5.178, Аноним (125), 01:35, 04/11/2024 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +1 +/– |
>А ну вот и представитель рода слабых программистов, который не может в execute (или как там в вашем стеке запрос исполняется) массив значений кинуть.
Задача программиста не в набирании символов, как машинистка, а в том, чтобы писать код без лишних багов и строк.
>Я писал обертки, которые биндили даже по именам и с типом (на пхп), т.е. вообще муха не пролетит. Еще во времена, когда никаких ларавелов не было. И вся машинерия была в районе пары сот строк, не сложно было.
Отлично, вы начали изобретать построитель запросов, возможно даже добрались до орма. Только вот зачем, если как вы утверждаете, что орм не нужен?
>Особенно когда нужен фильтр по подстроке или по дате от-до - о дааа, тут раздолье
Хорошая задача для орма, особенно если подстрока берётся из связей
| |
|
|
|
|
3.216, vvm13 (ok), 09:35, 04/11/2024 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +1 +/– |
Не знаю, кто был первым, но Hibernate создан в 2001-м, если верить википедии https://en.wikipedia.org/wiki/Hibernate_(framework)
TOPLink был до. https://en.wikipedia.org/wiki/Oracle_TopLink
Toplink was originally developed by The Object People in Smalltalk. It was ported to Java in 1996-1998 and called "TopLink for Java".
На Smalltalk что тогдашний ORM, TOPLink, что нынешний, GLORP, выглядит куда выразительнее и привлекательнее всех этих Hibernate. Тем не менее, даже там проблемы, именно из-за сути ORM как такового.
| |
|
|
|
|
3.137, Аноним (125), 20:56, 03/11/2024 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
>Если человек не рубит в математике, не знает теорию программирования, то и кодерок из него никакой в любом языке, даже после сеанса с коучем.
Вот позаканчивают свои ВУЗы, и пишут на сях с UB. А всё потому, что голова у них всякой ерундой забита, начиная от философии, истории и физики, и заканчивая какими-нибудь дифференциальными уравнениями. Зато вот как не устроить UB с nullptr они не знают.
| |
|
|
|
|
3.148, Аноним (5), 22:57, 03/11/2024 [^] [^^] [^^^] [ответить] [↓] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| –3 +/– |
> Ну а на чём лучше писать, на PHP? Так на питоне приятней.
Сложно назвать языки, на которых было бы противнее писать, чем на питоне. Для веба - однозначно JS/TS. Просто чтобы фронт/бак были на одном и том же. TS по сложности - блондинка за вечер разберётся. Зато читаемость куда лучше Питона.
А вот питону сложно найти применение. Ни в каком случае, прототип, которые написали на чём-то более современном, чем Питон, на Питон переписывать никто не будет. Ни в случае Julia для математики / ML, ни в случае Rust, Java, Kotlin и пр. То есть, Питон - чисто школьно/студенческий язык без полезного применения в проде.
| |
|
4.211, BrainFucker (ok), 07:42, 04/11/2024 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
> Просто чтобы фронт/бак были на одном и том же.
Бессмысленное требование. Если проект большой, то один фиг над бэком и фронтом будут работать разные команды. Если это из надежды что в перспективе можно будет отдать пилить бэк фронтовику, ой, я вас умоляю, им это не интересно. По факту наоборот зачастую фронт приходится подпиливать бэкендщикам самостоятельно, когда надо какую-то логику на фронте реализовать/исправить. Ну а бэкендщикам обычно пофиг, не фулстак бэкендщиков не бывает, кто дорос до мидла хотя бы.
| |
|
|
|
|
|
|
6.185, Вы забыли заполнить поле Name (?), 02:02, 04/11/2024 [^] [^^] [^^^] [ответить] [↓] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +1 +/– |
>>Это не обсуждается. Обсуждается почему он популярен.
> Гугл не влил деньги в паскаль - паскаль не популярен.
Наследники Паскаля, такие как Ада и Оберон, во некоторых областях, где требуется надежность, ой как популярны.
>>Вероятность, если взять человека до 18 лет и он знает питон выше, чем любой другой язык.
> Почему я должен ориентироваться на тех, кому нет 18?
Зачем тогда задавать глупый вопрос про знание яп с рождения?
>>Эмм. Не важно. Важно, что они есть. Почит под любую задачу.
> Важно то, что если библиотеки писать, то они будут, под любой язык.
> И язык нужно выбирать по фичам, философии, и пригодности для какой-то
> цели, а не потому, что его расхайпили
Еще раз скажу, что речь не о том, что можно. Речь об уже установленных вещах.
| |
|
|
|
|
|
|
|
5.280, Аноним (-), 06:31, 05/11/2024 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
> Ага, а на сишечке-то (к примеру) сплошь бриллианты, под стеклом хранить для
> истории.
У меня таки есть коллекция своих "бриллиантов". Например кот Рида Соломона который бегает даже на маленьком мк, даже на атмеге голимой. Или очень маленькие и аккуратные декомпрессоры. Так что даже на системе с склерозом вместо памяти - работает.
Но, конечно, эти бриллианты не на питоне. На питоне такое будет бессмысленно и беспощадно.
> Приложения — это не ШЕДЕВРЫ какие-нибудь (хотя, безусловно, таковыми быть могут),
> они для того, чтобы решать задачи.
С учетом периода полураспада - это в основном 1-разовые страдания фигней.
| |
|
|
|
|
|
|
3.135, BrainFucker (ok), 20:52, 03/11/2024 [^] [^^] [^^^] [ответить] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
> ресурс превращен в большую помойку.
А с этим нет никаких проблем, никто не заставляет всё подряд там смотреть, это всего лишь сервис, можешь пользоваться, можешь не пользоваться, все счастливы. Интернет тоже большая помойка, просто ходим только туда, где хорошо (ну, контингентом, лишённым свободы выбирать куда ходить, можно пренебречь).
| |
|
|
|
2.182, Pret78 (?), 01:51, 04/11/2024 [^] [^^] [^^^] [ответить] [↓] [п©б╘п▒Б┬≥Б∙≈ п©б╘п▒Б┬≥Б∙≥п©б╘п▒Б┬≥Б∙⌡п©б╘п▒Б┬≥Б∙▓п©б╘п▒Б┬≥я▒я▐Б√░п▒Б√═Б■─п©б╘п▒Б┬≥ц╥я▐Б√░п▒Б√═Б√└п©б╘п▒Б┬≥Б∙⌡я▐Б√░п▒Б√═Б■─я▐Б√░п▒Б√═Б√▒]
| +/– |
> но ведь javascript, typescript и java это одно и то же, зачем
> разделили?
Скорее всего тоже самое, что и в биткоин хардфорк. Иначе говоря, был только биткоин, внесли существенные изменения в блокчейн и сеть разделилась. Одну оставили для биткоин, а со второй что-то надо делать. Получился форк по независящим от разработчиков причинам.
Хардфорк — это, простыми словами, способ внедрения фундаментальных изменений в архитектуру протокола блокчейна. Термин произошел от слова «fork», что в переводе с английского означает «разветвление» или «вилка».
| |
|
|