Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
Где-то я уже рвал подобный боян... ага ... вот здесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 22:11 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
maytonГрустно было видеть как мы ломали и кромсали код... Везде за нами тянулся ворох поблем начиная от разрядности int, char и float и заканчивая механизмами связвания взаимодействия потоков и процессов.у них по этому поводу тоже есть опус: http://digitalmars.com/d/portability.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 22:56 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
White Owl c127Смысл ВСЕГО фрагмента if (!changed) {} непонятен. Это действительно copy-on-write. Они выделяют память под новый массив если в исходном есть что изменять. И не выделяют если ни один из символов исходной строки не нуждается в замене. Это может быть полезным если исходная строка является константой. Например в таком коде: Я понимаю зачем копировать строку, я не понимаю, зачем это делать в цикле и с проверкой if (!changed){...; changed=1};. В начале процедуры вроде получается проще и понятнее. Но в D есть in и out параметры, так что если реализовано правильно, то можно не копировать, строка не изменится. Проверил, реализовано неправильно. ИМХО. maXmo c127Предложенный мной char[] r = s; вроде тоже копирует массив, но могу ошибаться.нет, присваивает указатель: некуда копировать. Да, я ошибся. Куда копировать есть, никто не мешает выделить память, скопировать туда строку и присвоить новому указателю ардес этой памяти. DarkSquid Да ну... Строки некрасивые. Паскалевщина какая. Самые лучшие строки это сишные строки, так как указатель, во-первых является весьма эффективной реализацией механизма перебора символов строки, а во-вторых, всегда указывает на "хвост" строки, что позволяет программисту более просто использовать рекурсию в своих алгоритмах. В D сишные строки тоже поддерживаются, более того их можно смешивать с родными D-шными и наслаждаться привычным c=*(s+5);. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2006, 03:32 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
DarkSquid Да ну... Строки некрасивые. Паскалевщина какая. Самые лучшие строки это сишные строки, так как указатель, во-первых является весьма эффективной реализацией механизма перебора символов строки, а во-вторых, всегда указывает на "хвост" строки, что позволяет программисту более просто использовать рекурсию в своих алгоритмах. Именно отсутствие строкового типа в С++ и порождает массовые паломничества в другие языки за технологиями хранения и обработки строк. А красивость ASCIIZ массивов может вылезти большим геморром в виде O(n) сложности операции определения длины и т.п. Ну, если вы на этот грабель еще не наступали - то не беспокойтесь зря. Видимо не писали проджектов, где это - time-critical. Вообсче меня поражает... С++системщики делают вид, что геморра-до дескать нету, и ваще никаких проблем с строками у них никогда не возникало. Однако, втрихаря, ночами, оглядываясь по сторонам, лабают очередной враппер для стринга... Ха! Наивные... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2006, 09:16 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
Есть несколько тысяч языков программирования. Большинство из них не нужны. Поэтому можно смело предположить, что и D не нужен, а также E, F, G итд если такие есть. Неинтересно даже узнавать, что это такое - если б оно было нужное, я бы знал. Хотя ещё более тяжёлый случай - на сайте www.rsdn.ru Единственный российский журнал по программированию - RSDN - превратился в настоящую помойку и не стоит испорченной для него бумаги. Поэтому там были опубликованы статейки о неких языках Scala и Nemerle (то и другое бред сивой кобылы). Теперь вижу в форуме там - наивные люди обсуждают, чем они лучше обычных и не побеждают ли уже эти языки в конкуренции. Нет, не побеждают и вообще не нужны. Нужного и так настолько много, что нечего тратить время на маргинальное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2006, 12:31 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
c127я не понимаю, зачем это делать в цикле и с проверкойну ты мля. Это единственный способ избежать ненужного копирования. И in и out тут тебе не помогут. c127Куда копировать есть, никто не мешает выделить память, скопировать туда строку и присвоить новому указателю ардес этой памяти.для этого нужно написать 4 лишних символа char[] r = s.dup. А как ты прикажешь компилятору различать присваивание адреса исходного массива и его дубликата? У мистера Андерсена спрашивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2006, 22:23 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
maXmo c127я не понимаю, зачем это делать в цикле и с проверкойну ты мля. Это единственный способ избежать ненужного копирования. И in и out тут тебе не помогут. А так что, не копируется? Копируется на первом прохождении цикла. Цикл не проходится, если строка пустая, но пустые массивы не копируются, так что в этом случае Вы ничего не экономите. А лишний if в цикле имеет место быть и, что важнее, худшая читаемость программы. Параметры in, out для того и придуманы, чтобы гарантировать неизменность параметров там где нужно. Но в D реализовано так, что они для массивов они ничего не гарантируют. Это кривость по-моему. maXmo c127Куда копировать есть, никто не мешает выделить память, скопировать туда строку и присвоить новому указателю ардес этой памяти.для этого нужно написать 4 лишних символа char[] r = s.dup. А как ты прикажешь компилятору различать присваивание адреса исходного массива и его дубликата? У мистера Андерсена спрашивать? Это вопрос реализации. ИМХО указатели ведут к тяжело отслеживаемым ошибкам, но иногда без них обойтись сложно, поэтому если я бы их позволял использовать, то с дополнительными усилиями и char[] r = s; или r = s; реализовал бы копированием, а если нужно указатель, то как-нибудь так: char* r=s; Partisan M Есть несколько тысяч языков программирования. Большинство из них не нужны. Поэтому можно смело предположить, что и D не нужен, а также E, F, G итд если такие есть. По этой же логике также можно предположить что не нужны C, джава, перл, а о C# и говорить не стоит. Ведь они тоже одни из нескольких тысяч, а последний вообще из новых и лет 8 назад о них не слышали не только Вы, но и все остальные. На тот момент языков было не намного меньше, так что в логике ничего не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2006, 02:12 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
c127 а последний вообще из новых и лет 8 назад о них не слышали не только Вы, но и все остальные. Ошибочка, эту фразу следует читать так: "а последний вообще из новых и лет 8 назад о нем не слышали не только Вы, но и все остальные." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2006, 02:33 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
c127и char[] r = s; или r = s; реализовал бы копированиемсделать массив value-type? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2006, 10:52 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
c127Я понимаю зачем копировать строку, я не понимаю, зачем это делать в цикле и с проверкой if (!changed){...; changed=1};. В начале процедуры вроде получается проще и понятнее. Но в D есть in и out параметры, так что если реализовано правильно, то можно не копировать, строка не изменится. Проверил, реализовано неправильно. ИМХО.Проверяй еще раз, все там правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2006, 20:11 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
maXmo c127и char[] r = s; или r = s; реализовал бы копированиемсделать массив value-type? :) В данном случае я говорил о синтаксисе, что там внутри сейчас не важно. White Owl c127 Проверил, реализовано неправильно. ИМХО.Проверяй еще раз, все там правильно. Неправильно, параметр типа in меняется функцией, а он не должен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 00:00 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
c127Неправильно, параметр типа in меняется функцией, а он не должен.Параметр? Неее.. параметр там не меняется. Меняется локальная переменная s впервые упомянутая внутри функции как параметр. Но сам-то параметр не меняется. Или тебя само присвоение переменной s смущает? Нуууу кое-какой смысл в запрете присваивать новое значение переменным-параметрам есть. Но если этот запрет приводить в жизнь - 90% библиотек прийдется переписывать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 00:21 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
c127 maXmoсделать массив value-type? :)В данном случае я говорил о синтаксисе, что там внутри сейчас не важно.знаешь какой-нить язык, где эта жуть реализована? c127Неправильно, параметр типа in меняется функцией, а он не должен.но он ведь не out, так что всё пучком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 11:39 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
Partisan M D не нужен, а также E, F, G G - это название языка LabView. Довольно полезная штука вроде как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 11:40 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
White OwlНуууу кое-какой смысл в запрете присваивать новое значение переменным-параметрам есть. А какой? Ведь параметр все равно дальше одного вызова функции не живет... Ну разве что дополнительная защита от кривого кодера, случайно модифицирующего этот параметр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 23:29 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
Шогал White OwlНуууу кое-какой смысл в запрете присваивать новое значение переменным-параметрам есть. А какой? Ведь параметр все равно дальше одного вызова функции не живет... Ну разве что дополнительная защита от кривого кодера, случайно модифицирующего этот параметрИменно такой. Если функция большая-большая, то через цать лет бывает сложно вспомнить что переменная уже не содержит входной параметр в конце работы функции. В Си такое ограничение ставится указанием const для параметра функции. А здесь через in/out/inout. По идее, в обсуждаемой функции toupper(), параметр не обязательно делать возвращаемым. Можно конечно, но как-то неудобно.... Вот что выдаст такой код? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 01:09 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
White Owl c127Неправильно, параметр типа in меняется функцией, а он не должен.Параметр? Неее.. параметр там не меняется. Меняется локальная переменная s впервые упомянутая внутри функции как параметр. Но сам-то параметр не меняется. Или тебя само присвоение переменной s смущает? Нуууу кое-какой смысл в запрете присваивать новое значение переменным-параметрам есть. Но если этот запрет приводить в жизнь - 90% библиотек прийдется переписывать :) По-моему имеет место небольшое непонимание. Я говорил о том, что если параметр объявлен как in, то что бы вызываемая функция с ним не делала, в вызывающей функции должно отстаться старое значение. Т.е. система делает копию в функции и с ней работает, оригинал не меняется. Иначе я не представляю зачем эти in, out нужны. maXmo c127 maXmoсделать массив value-type? :)В данном случае я говорил о синтаксисе, что там внутри сейчас не важно.знаешь какой-нить язык, где эта жуть реализована? В STL-е если не ошибаюсь. Не язык, но все-же. maXmo c127Неправильно, параметр типа in меняется функцией, а он не должен.но он ведь не out, так что всё пучком. Он ведет себя как inout. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 01:38 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
c127Я говорил о том, что если параметр объявлен как in, то что бы вызываемая функция с ним не делала, в вызывающей функции должно отстаться старое значение.только не надо всё-таки забывать про особенности ссылочных типов. Когда передаёшь ссылку по значению, сам объект всё равно можно будет изменить. c127Он ведет себя как inout.нет, это in-параметр ссылочного типа :) то есть когда ты делаешь s=r, то s снаружи не изменится (если бы был inout, то изменился бы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 18:03 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
maXmo c127Я говорил о том, что если параметр объявлен как in, то что бы вызываемая функция с ним не делала, в вызывающей функции должно отстаться старое значение.только не надо всё-таки забывать про особенности ссылочных типов. Когда передаёшь ссылку по значению, сам объект всё равно можно будет изменить. c127Он ведет себя как inout.нет, это in-параметр ссылочного типа :) то есть когда ты делаешь s=r, то s снаружи не изменится (если бы был inout, то изменился бы). Я знаю что такое ссылочные типы и очень хорошо о них помню. Забыть не могу. Уже говорил, что ссылки ведут к трудноотслеживаемым ошибкам и в большинстве случаев никому не нужны, поскольку ссылки почти никогда никого не интересуют, интересуют данные, на которые они указывают. Я надеялися что в D все это реализовано по-человечески, но ошибся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 23:46 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
c127Уже говорил, что ссылки ведут к трудноотслеживаемым ошибкам и в большинстве случаев никому не нужны, поскольку ссылки почти никогда никого не интересуют, интересуют данные, на которые они указывают. Я надеялися что в D все это реализовано по-человечески, но ошибся.Зато без ссылок трудно писать что-либо низкоуровневое. С другой стороны, процент низкоуровневых задач по отношению к прикладным микроскопичен :) Меняю тему. Толи у меня дежа-вю, толи некий язык D уже был предложен где-то в семидесятых годах прошлого века, как развитие С. Не знаю что там было придумано, видел только упоминания о нем в исторических статьях. Ровесник и первый конкурент С++. Но у крестов была объектность, а тот давний D был простым расширением С. Ну и естественно умер. Так вот может кто-нибудь помнит что-нибудь более конкретное про первый D? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 00:48 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
в следующий стандарт С, кажись, будут введены конструкции для bound checking'a :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 12:00 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
White Owl Толи у меня дежа-вю, толи некий язык D уже был предложен где-то в семидесятых годах прошлого века, как развитие С. Не знаю что там было придумано, видел только упоминания о нем в исторических статьях. Ровесник и первый конкурент С++. Но у крестов была объектность, а тот давний D был простым расширением С. Ну и естественно умер. Так вот может кто-нибудь помнит что-нибудь более конкретное про первый D? :) Тогда скорее не в семидесятых, а в восьмидесятых, в семидесятых объектность мало кого интересовала. Да и С++ появился в восьмидесятых по-меому так что не мог быть могильщиком того D. Я о таком языке ничего не слышал, хотя если он был, то скорее всего назывался именно D, ибо B -> C -> D. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 23:26 |
|
||
|
Язык програмирования D имеет будущее?
|
|||
|---|---|---|---|
|
#18+
c127Тогда скорее не в семидесятых, а в восьмидесятых, в семидесятых объектность мало кого интересовала. Да и С++ появился в восьмидесятых по-меому так что не мог быть могильщиком того D. Не, там кажется не было объектов совсем... А вот что было - не знаю :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 18:03 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=33976980&tid=1346580]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 412ms |

| 0 / 0 |
