Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.179.119] |
|
Страницы: (56) « Первая ... 51 52 [53] 54 55 ... Последняя » ( Перейти к последнему сообщению ) |
Сообщ.
#781
,
|
|
|
Тут не запахло, они реально делают это под влиянием идей раста. Правда с вполне конкретной целью. Они хотят библиотечно реализовать всякие RC-контейнеры и хотят сделать это максимально безопасно. Вот и пыжатся, чтобы нельзя было так просто поломать RC.
Цитата OpenGL @ Выпиливать GC никто не будет. Программист сам может выпилить GC если он ему не нужен, или прицепить свой собственный GC. Я тут развлечения ради попиливаю на D мелкую RTOS для микроконтроллеров STM32 с кооперативной многозадачностью, никакого GC очевидно там нет. Другой вопрос, что без GC большая часть стандартной либы отваливается, также отваливается и часть фич самого языка. Они работают над этим, добились довольно серьезного прогресса, надо признать.Хз. Если выпилят GC и пойдут по тому же пути, что и раст - управление всеми ресурсами, включая память, через деструкторы, то может и смогут выехать на нормальном метапрограммировании. Странная фраза. Чего за ним угоняться-то? Компиляторы для эквивалентного кода в плюсах и D генерят абсолютно одинаковый асм. То же самое касается и сяшки и раста. Цитата Qraizer @ Не знаю, что ты подразумеваешь под "полноценные". Но все, что можно наметапрограммить в плюсах, можно наметапрограммить в D. Кстати, applegame, всё хочу спросить, но постоянно забываю, так, что даже не помню, спрашивал ли уже: реально ли на D напрограммить полноценные мультиметоды? По идее, его метафичи равноценны плюсовым, так что почему бы и нет. |
Сообщ.
#782
,
|
|
|
Почему ты считаешь, что оно и только оно — нормальное? |
Сообщ.
#783
,
|
|
|
Цитата applegame @ Странная фраза. Чего за ним угоняться-то? Компиляторы для эквивалентного кода в плюсах и D генерят абсолютно одинаковый асм. То же самое касается и сяшки и раста. Разница есть даже между разными компиляторами C++. Rust если и у гонится, то только за счет llvm, но, насколько мне известно, пока сам компилятор оптимизации на уровне языка особых не делает. В отличие от того же clang. Т.е. только llvm. За D не скажу, но вроде тесты тоже не в его пользу попадались. Добавлено Цитата korvin @ Почему ты считаешь, что оно и только оно — нормальное? Нормальное не в смысле "правильное", а в смысле "привычное", "обыденное", как раз "мейнстримные" |
Сообщ.
#784
,
|
|
|
Хз, собирательное мнение из пары статей по хаскелю. Личный опыт совсем небольшого говнокодинга на нём говорит, что глупые ошибки там сделать сложнее, т.е. в принципе притянуть за уши можно. Фак. И правда |
Сообщ.
#785
,
|
|
|
Цитата applegame @ Выпиливать GC никто не будет. Программист сам может выпилить GC если он ему не нужен, или прицепить свой собственный GC. Я тут развлечения ради попиливаю на D мелкую RTOS для микроконтроллеров STM32 с кооперативной многозадачностью, никакого GC очевидно там нет. Другой вопрос, что без GC большая часть стандартной либы отваливается, также отваливается и часть фич самого языка. Они работают над этим, добились довольно серьезного прогресса, надо признать. Это хорошо. Так они собираются убрать зависимость стандартной библиотеки от GC полностью или такой цели не стоит, а просто потихоньку убирают там, где можно обойтись? Цитата Не знаю, что ты подразумеваешь под "полноценные". Но все, что можно наметапрограммить в плюсах, можно наметапрограммить в D. А наоборот? |
Сообщ.
#786
,
|
|
|
Цитата applegame @ RC-контейнеры Что это за зверь? |
Сообщ.
#787
,
|
|
|
С «не» да, слышал такой мем. Добавлено Цитата D_KEY @ Нормальное не в смысле "правильное", а в смысле "привычное", "обыденное", как раз "мейнстримные" Тогда почему ты указываешь это как критерий какого-то положительного качества языка? |
Сообщ.
#788
,
|
|
|
Цитата korvin @ Тогда почему ты указываешь это как критерий какого-то положительного качества языка? Потому, что будет легче на него перейти и переводить существующие системы на него. |
Сообщ.
#789
,
|
|
|
Цитата D_KEY @ Потому, что будет легче на него перейти и переводить существующие системы на него. Не факт. Все зависит от привычек. Я вот тоже как только начал читать про Раст, сразу как-то воспринял в штыки, что в нем весь фарш ООП реализуется средствами синтаксиса частично. Остальное конечно тоже можно сделать, но чуть сложнее (если не ошибаюсь OpenGL показывал). Но если, к примеру, сравнить С++ и Раст, просто подход разный. У С++ основной подход - это реализация свойств путем объявления методов, наследования для расширения этого "набора свойств", виртуализации методов для переопределения свойств после наследования. У Раста другой подход - реализация поведений. Тоже подход, который имеет право на жысть, как основная концепция. Могу конечно ошибаться, пока только изучаю, но во многих статьях именно это ставят как особенность языка (не говоря конечно о заимствованиях и временах жизни). |
Сообщ.
#790
,
|
|
|
Цитата JoeUser @ Цитата D_KEY @ Потому, что будет легче на него перейти и переводить существующие системы на него. Не факт. Все зависит от привычек. Да, зависит от привычек. И если их не надо или не обязательно менять, то переход будет легче |
Сообщ.
#791
,
|
|
|
Цитата D_KEY @ И если их не надо или не обязательно менять, то переход будет легче А если есть привычка не использовать ООП - переход будет труднее |
Сообщ.
#792
,
|
|
|
Цитата D_KEY @ Есть и обратные тесты, где D обгоняет плюсья. Но это все синтетика, в которых если порыться выясняется, что код нихрена не эквивалентный. Референсный компилятор dmd довольно паршиво оптимизирует, а вот gdc (который уже в gcc) и ldc оптимизируют не хуже соответственно g++ и clang. В моей Fedora и gdc и ldc ставится из стандартных реп.За D не скажу, но вроде тесты тоже не в его пользу попадались. Цитата D_KEY @ Там где можно обойтись убирают. Полностью отвязать в принципе невозможно, так как встроенные массивы и замыкания могут задействовать GC.Так они собираются убрать зависимость стандартной библиотеки от GC полностью или такой цели не стоит, а просто потихоньку убирают там, где можно обойтись? Цитата D_KEY @ Наоборот нет. В D полно метапрограмминга пока недоступного плюсам.А наоборот? По мультиметодам нагуглил вариант реализации: https://github.com/jll63/openmethods.d и блогпост посвященный ей же: https://dlang.org/blog/2017/08/28/open-methods-from-c-to-d/ |
Сообщ.
#793
,
|
|
|
Цитата applegame @ А насколько просто переносится туда метакод оттуда? Но все, что можно наметапрограммить в плюсах, можно наметапрограммить в D. |
Сообщ.
#794
,
|
|
|
Цитата JoeUser @ А если есть привычка не использовать ООП - переход будет труднее Да, но людей с такой привычкой много, мейнстрим же. |
Сообщ.
#795
,
|
|
|
Цитата applegame @ На джитхабе есть их, но все неполноценные. Например, требующие предоставить полный набор перекрывающих сигнатур. Или всего лишь двупараметрические. Без статических параметров. ...итп. А для полноценности требуются мультиметоды, максимально похожие на обычные функции: произвольная -арность, отсутствие ограничений на типы параметров, лишь некоторые из которых, указывается в прототипе, должны связываться в рантайм, перекрывающие сигнатуры не должны обязательно покрывать полный перебор вариантов, для не предоставленных вариантов должны применяться стандартные правила перегрузки most viable. Как минимум. Не знаю, что ты подразумеваешь под "полноценные". |