Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

IEIEIEIO

Автор arseniiv, октября 30, 2010, 18:47

0 Пользователи и 1 гость просматривают эту тему.

Python

Цитата: myst от ноября  2, 2010, 18:22
Приведённый Вами пример показывает, что Вы пока не понимаете их вреда.
Который из них? OPENW - действительно плохой стиль, о чем было сказано в том же сообщении, где я его привел:
Цитата: Python от ноября  2, 2010, 16:10
//Второй пример можно было бы сделать и лучше, но у меня нет желания и времени
//создавать на форуме библиотеку программ для несуществующего языка
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst

Цитата: Python от ноября  2, 2010, 18:26
Который из них? OPENW - действительно плохой стиль, о чем было сказано в том же сообщении, где я его привел:
Да нет, в нём не стиль плохой, в нём именно непонимание.

myst

Вот буквально только что, с пылу с жару:

presage-0.8.4\src\lib\core\logger.h(67): error C3805: 'constant': unexpected token, expected either '}' or a ','

И такие подлянки препроцессора могут вылезти где угодно.

Python

Цитата: myst от ноября  2, 2010, 18:31
Да нет, в нём не стиль плохой, в нём именно непонимание.
Видимо, Вы лучше разбираетесь в образе моих мыслей, чем я сам.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst

Тут же ещё одна:

presage-0.8.4\src\lib\core\charsets.h(40): error C2059: syntax error : 'constant'

myst

Цитата: Python от ноября  2, 2010, 18:36
Видимо, Вы лучше разбираетесь в образе моих мыслей, чем я сам.
Код красноречивее слов.

Python

Цитата: myst от ноября  2, 2010, 18:38
Код красноречивее слов.
Хорошо, код был создан за минуту из готового примера открытия файла. Конечно, я мог бы создать полноценный класс, в нем статический метод, возвращающий объект Writer, готовый для перезаписи файла, затем определил макрос для доступа к этому методу, но зачем? Моей целью было лишь продемонстрировать возможность записи слишком длинного фрагмента кода с помощью макроса. В реальной программе я вряд ли стал бы использовать приведенный пример.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst

Цитата: Python от ноября  2, 2010, 18:48
Хорошо, код был создан за минуту из готового примера открытия файла. Конечно, я мог бы создать полноценный класс, в нем статический метод, возвращающий объект Writer, готовый для перезаписи файла, затем определил макрос для доступа к этому методу, но зачем? Моей целью было лишь продемонстрировать возможность записи слишком длинного фрагмента кода с помощью макроса. В реальной программе я вряд ли стал бы использовать приведенный пример.
Эти Ваши слова ещё раз подтверждают, что Вы не понимаете всей пагубности того макроса. А ведь он как будто списан со страницы книги «Как нельзя писать макросы!». Я Вам советую попользоваться такими макросами всласть. Пишите их как можно больше, пользуйтесь ими при первой возможности. Для обучения нет ничего эффективнее  хорошего удара граблями по лбу.

Demetrius

Цитата: Python от ноября  2, 2010, 13:09
Возможно, на каком-то Java/С#-подобном языке с использованием препроцессора?
В них совершенно разные библиотеки.

Возможно 2 варианта:

  • основанная на макросах универсальная библиотека (ужас для отладки; проще написать обёртку для другой библиотеки или просто свою библиотеку, но тогда лучше взять IKVM и не мучаться)
  • написать пару макросов только для своего класса (легче написать два класса на разных языках)


Цитата: myst от ноября  2, 2010, 13:32
Цитата: Python от ноября  2, 2010, 13:09
Возможно, на каком-то Java/С#-подобном языке с использованием препроцессора?
В таком случае, нужен не препроцессор, но врач.
+1

Цитата: Python от ноября  2, 2010, 13:49
Цитата: myst от ноября  2, 2010, 13:32
Расскажите, что ли, нам тоже интересно.
Нас много.

Цитата: Python от ноября  1, 2010, 19:53
Спросите у Майкрософта. Меня всегда удивляло, почему они не используют самый естественный способ хранения документации — в виде обычных html-файлов на локальном компьютере.
Чтобы экономить место на диске пользователей?

Python

Цитата: myst от ноября  2, 2010, 19:12
Эти Ваши слова ещё раз подтверждают, что Вы не понимаете всей пагубности того макроса. А ведь он как будто списан со страницы книги «Как нельзя писать макросы!».
Т.е., если я утверждаю, что вряд ли стал бы использовать подобный макрос, это может свидетельствовать о моем непонимании всей его опасности и вредоносности? Макрос действительно неудачный — но разве я где-либо утверждал обратное? Вы как-то очень выборочно понимаете мои слова.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Python

Цитата: Demetrius от ноября  2, 2010, 19:23
лучше взять IKVM и не мучаться
Теоретически, верно. Но меня немного ужасает одна виртуальная машина поверх другой — можно ли получить высокую производительность с ее помощью?
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst

Цитата: Python от ноября  2, 2010, 20:27
Т.е., если я утверждаю, что вряд ли стал бы использовать подобный макрос, это может свидетельствовать о моем непонимании всей его опасности и вредоносности?
Если бы Вы понимали, Вы бы вообще такой ахтунг не написали.

Цитата: Python от ноября  2, 2010, 20:27
Вы как-то очень выборочно понимаете мои слова.
Ладно, предлагаю не развивать эту тему дальше, а то как бы Вы на меня ещё сильнее не обиделись. :)

Python

Цитата: myst от ноября  2, 2010, 20:34
Ладно, предлагаю не развивать эту тему дальше, а то как бы Вы на меня ещё сильнее не обиделись.
Куда уж сильнее? И так убил пару суток на бессмысленные споры непонятно ради чего.
Цитата: myst от ноября  2, 2010, 20:34
Если бы Вы понимали, Вы бы вообще такой ахтунг не написали.
Что я могу сделать? Джавовские средства ввода-вывода — один большой ужас, и макросы сами по себе не смогут их исправить — скорее, наоборот.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Demetrius

Цитата: Python от ноября  2, 2010, 20:33
Цитата: Demetrius от ноября  2, 2010, 19:23
лучше взять IKVM и не мучаться
Теоретически, верно. Но меня немного ужасает одна виртуальная машина поверх другой — можно ли получить высокую производительность с ее помощью?
Так она же вроде бы переводит в .NET'овый код, разве нет?

А то, что можно написать с помощью макросов, ужасает ещё сильнее. Впрочем, вызывает сомнения, что с помощью макросов вообще можно что-то дельное и достаточно большое написать.

Python

Цитата: Demetrius от ноября  2, 2010, 21:18
Так она же вроде бы переводит в .NET'овый код, разве нет?
Но, насколько я понял из описания, сие преобразование происходит непосредственно перед использованием соответствующего приложения — т.е., все равно за счет времени пользователя.

В чем практическая польза от байт-кода, не выполняемого непосредственно, а лишь компилируемого? Не целесообразнее ли  производить компиляцию перед выполнением непосредственно из исходников?
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Python

Цитата: Demetrius от ноября  2, 2010, 19:23
Чтобы экономить место на диске пользователей?
Вряд ли — справка все равно хранится локально, хоть и в недоступном для непосредственного чтения формате. Возможно, смысл идеи в том, чтобы упростить поиск по справке. Впрочем, и здесь клиент-серверная архитектура не является необходимым условием для реализации задачи на локальном компьютере.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Demetrius

Цитата: Python от ноября  3, 2010, 00:28
Цитата: Demetrius от ноября  2, 2010, 19:23
Чтобы экономить место на диске пользователей?
Вряд ли — справка все равно хранится локально, хоть и в недоступном для непосредственного чтения формате.
Не понял. Локально же место важнее. Хранить 1000 файлов гораздо менее эффективно, чем один. Или я что-то не понимаю? Мы о CHM вообще?  :donno:

Цитата: Python от ноября  3, 2010, 00:28
Возможно, смысл идеи в том, чтобы упростить поиск по справке.
Кстати, возможно.

Цитата: Python от ноября  2, 2010, 23:32
В чем практическая польза от байт-кода, не выполняемого непосредственно, а лишь компилируемого? Не целесообразнее ли  производить компиляцию перед выполнением непосредственно из исходников?
А разве Java и .NET вообще не так же работают?  :???

Python

Цитата: Demetrius от ноября  2, 2010, 19:23
Возможно 2 варианта:
• основанная на макросах универсальная библиотека (ужас для отладки; проще написать обёртку для другой библиотеки или просто свою библиотеку, но тогда лучше взять IKVM и не мучаться)
• написать пару макросов только для своего класса (легче написать два класса на разных языках)
Макросы есть смысл использовать ограниченно. Естественно, так сильно понравившийся публике макрос, созданный мной непосредственно из не менее ужасного стандартного фрагмента кода на джаве, в библиотеке макросов появляться не должен. Кроме библиотеки макросов, потребовалась бы библиотека совместимых классов для C# и Java. Макросы же должны использоваться исключительно в случаях, когда различия языков невозможно решить с помощью идентичных библиотек (например, при объявлении методов).
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Demetrius

Макросы (C'шные; лисповые не в счёт) не должны появляться. Вообще. Они свидетельствуют о недостатке возможностей самого языка. Они к месту только в ассемблере, где ограниченный набор возможностей — фича, а не баг.

По сути, макросы — это язык в языке, причём с разным синтаксисом. Оккам негодуэ.


Создатели Jav'ы не добавили их специально.

Python

Цитата: Demetrius от ноября  3, 2010, 00:41
А разве Java и .NET вообще не так же работают?
Нет. Исходник (.java) компилируется в байт-код (.class), файлы с откомпилированными классами могут объединяться в архив (.jar). При запуске байт-код может либо интерпретироваться непосредственно, либо компилироваться в нативный машинный код. Теоретически, это позволило бы создавать компиляторы для JVM с разных языков программирования. Фактически же, единственный хорошо разработанный язык с компилятором для JVM — только Java.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Demetrius

ЦитироватьМакросы же должны использоваться исключительно в случаях, когда различия языков невозможно решить с помощью идентичных библиотек (например, при объявлении методов).
То есть должны быть независимыми от языка? Ну так внешние макропроцессоры и сейчас есть, кто Вам мешает их использовать?

Цитата: Python от ноября  3, 2010, 00:59
Исходник (.java) компилируется в байт-код (.class), файлы с откомпилированными классами могут объединяться в архив (.jar). При запуске байт-код может либо интерпретироваться непосредственно, либо компилироваться в нативный машинный код.
Цитата: Python
Но, насколько я понял из описания, сие преобразование происходит непосредственно перед использованием соответствующего приложения — т.е., все равно за счет времени пользователя.
Не понял разницу. И то, и то компилируется при запуске, за счёт времени пользователя.

Python

Цитата: Demetrius от ноября  3, 2010, 00:57
Создатели Jav'ы не добавили их специально.
goto они тоже не добавили специально. Что сделало адаптацию сишного кода для джавы нетривиальной задачей.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Demetrius

Цитата: Python от ноября  3, 2010, 01:06
Цитата: Demetrius от ноября  3, 2010, 00:57
Создатели Jav'ы не добавили их специально.
goto они тоже не добавили специально. Что сделало адаптацию сишного кода для джавы нетривиальной задачей.
:no:

Как бы это правильно. Хочешь сишный код — юзай JNI, а на Яве будь добр пиши нормально. IMHO это правильный подход.

Python

Цитата: Demetrius от ноября  3, 2010, 01:02
Не понял разницу. И то, и то компилируется при запуске, за счёт времени пользователя.
Компиляция .java -> .class осуществляется непосредственно разработчиком. За счет времени пользователя компилируется лишь байт-код в машинный код (либо, в нашем случае, происходит компиляция .class в дотнетовский байт-код, который в дальнейшем интерпретируется или еще раз компилируется).
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Python

Цитата: Demetrius от ноября  3, 2010, 01:10
Как бы это правильно. Хочешь сишный код — юзай JNI
Там немного другая задача — не адаптировать сишный код для JVM, а дать возможность JVM взаимодействовать с нативным кодом. Класс, использующий JNI, автоматически становится платформозависимым.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр