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

IEIEIEIO

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

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

Python

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

myst

Цитата: Python от ноября  3, 2010, 20:58
Т.е., Вы тоже не понимаете их смысла, воспринимая как заученных аксиомы?
Вы у Darkstar'а так и не попросили учебник логики?

Цитата: Python от ноября  3, 2010, 20:58
Макросы технически могут использовать lower case, как и переменные — upper case. Точно так же, С-программист может создавать в своей программе спагетти из меток и переходов. На практике подобное встречается либо у криворуких программистов, либо в автоматически сгенерированном коде.
Я ещё раз спрашиваю, Вы стандарт C открывали, каким регистром в нём макросы написаны, видели? Я Вам настоятельно советую ознакомиться со стандартом, а потом гнать пургу про криворуких программистов.

Цитата: Python от ноября  3, 2010, 20:58
Насколько мне известно, ранние реализации С++ использовали С как промежуточный этап компиляции. «Недоязык» — понятие растяжимое.
C++ тогда и был недоязычком.

Python

Цитата: myst от ноября  3, 2010, 21:15
Вы у Darkstar'а так и не попросили учебник логики?
Что Вам мешает обратиться за учебником самостоятельно, а не через посредника?

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

myst

Цитата: Python от ноября  3, 2010, 21:26
Что Вам мешает обратиться за учебником самостоятельно, а не через посредника?
Фи, какая примитивная попытка перевести стрелки. Не хотите подружиться с логикой, как хотите. Вам же хуже.

Цитата: Python от ноября  3, 2010, 21:26
Вопрос был задан вполне конкретный: в чем преимущество нагромождения импортов в начале каждой программы по сравнению с возможностью собрать их в один подключаемый файл?
Вы вообще не о том думаете. Подтяните матчасть по теме модульности, и такие вопросы отпадут сами собой.

Цитата: Python от ноября  3, 2010, 21:26
Если недоязычки=новые языки с потенциально большими возможностями, то важность задачи их компиляции не должна вызывать сомнений.
Если бы да кабы, деды были бы бабы. :green:
Для того чтобы недоязычок стал подавать надежды он уже должен иметь нормальный компилятор, а не ту порнографию, которую Вы предлагаете. Таким гуано никто, кроме создателей недоязычка и пары школьников-фоннатов, пользоваться не будет. Я думал, для любого человека не чуждого программирования, это очевидно, но Вы оказались шокирующим исключением.

Demetrius

ЦитироватьВопрос был задан вполне конкретный: в чем преимущество нагромождения импортов в начале каждой программы по сравнению с возможностью собрать их в один подключаемый файл?
Макросы в данном случае скрывают ошибки проектирования в красивой коробочке с бантиком.

Теоретически, если у Вас в десяти файлах импортируются одни и те же файлы, значит, что-то не так с Вашим кодом. Скорее всего, имело бы смысл создать модель, абстрагирующую все действия.

Это всё теоретически, конечно. Практически сказать не могу, так как я с Jav'ой на Вы. :) Возможно, это признак, что что-то не так с Jav'овой библиотекой. :о В любом случае, это повод сделать свою обёртку над Jav'овой библиотекой, а не писать библиотеку макросов.

Python

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

Python

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

Python

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

Demetrius

Цитата: Python от ноября  4, 2010, 12:51
Цитата: Demetrius от ноября  4, 2010, 11:10
Макросы в данном случае скрывают ошибки проектирования в красивой коробочке с бантиком.
В данном случае, именно макросы нам и не нужны. Речь лишь об инклудах, содержащих директивы импорта, либо о других средствах языка, выполняющих аналогичную функцию.
Цитата: Demetrius от ноября  4, 2010, 11:10
Возможно, это признак, что что-то не так с Jav'овой библиотекой.
Причина, скорее, в том, что классы в пакете группируются по немного другим принципам — большее значение имеет родственность выполняемых функций, чем практическая вероятность использования всех классов одного пакета в одной программе. Если public-классы некоторого пакета используют одни и те же приватные классы, то естественным будет их размещение в одном пакете, даже если они используются для несвязанных между собой практических задач.
Подозреваю, что тут всё равно что-то не то, но, за неимением опыта программирования на Jav'е, воздержусь от дальнейшего обсуждения.

Цитата: Python от ноября  4, 2010, 13:00
Вы когда-нибудь пытались создать компилятор, дающий на выходе машинный код? Задача достаточно сложная, даже если мы делаем компилятор с языка ассемблера. Причем, эту задачу требуется повторить для каждой платформы, использующей данный язык. На начальной стадии такая задача обычно трудновыполнима. Использование кросс-платформенного высокоуровневого языка в качестве промежуточного заметно упрощает задачу.
Компилировать C'шный код напрямую на Jav'у невозможно, так как C слишком завязан на указателях, которых в Jav'е нет. Так что в любом случае придётся использовать два backend'а: для Jav'ы и для C. В этом свете особенно непонятно, какова польза от goto.

И в любом случае пример слишком натянутый, на мой взгляд. Портирование языка осуществляется не каждый день (нет, DSL-то DSL, но со сколькими DSL Вы реально встречаетесь?). Да и вообще, на мой взгляд, облегчение разработки и поддержки ПО окупится, даже если из-за этого увеличатся затраты на портирование C-шного кода. Тем более, что если код злоупотребляет goto, лучше его просто переписать, а не портировать.

Python

Цитата: Demetrius от ноября  4, 2010, 14:24
Компилировать C'шный код напрямую на Jav'у невозможно, так как C слишком завязан на указателях, которых в Jav'е нет.
Указатели можно эмулировать, используя массивы и индексы . Бóльшая трудность здесь — нестрогая типизация данных в С. Например, в С-программе мы можем указателю на char присвоить адрес какой-нибудь структуры, и работать с ней как с последовательностью байтов (например, при копировании данных). В Java такой прием невозможен.
Цитата: Demetrius от ноября  4, 2010, 14:24
В этом свете особенно непонятно, какова польза от goto.
Поскольку в C нет break/continue с меткой, goto - единственный вариант выхода из многоуровневого цикла. Кроме того, goto позволяет создать алгоритмическую последовательность, которую невозможно реализовать с помощью циклов, break и continue. В контексте C как промежуточного языка, вполне возможна ситуация, когда исходный язык слабо структурирован, и метки — основное средство построения алгоритма. В этом свете, приведение исходного текста к безгоутушному формату — бессмысленная трата времени, поскольку компилятор все равно заменит всю структурированность обычными переходами к метке, либо код получится даже менее эффективным из-за ввода дополнительных переменных, регулирующих последовательность работы программы.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst

Цитата: Python от ноября  4, 2010, 12:31
Следовательно, Вы считаете, что знаете матчасть, но рассказать о ней неспособны?
Вы снова сделали ложный вывод. (А ведь Darkstar буквально на этой неделе был на форуме. :eat:)

Цитата: Python от ноября  4, 2010, 13:00
Вы когда-нибудь пытались создать компилятор, дающий на выходе машинный код? Задача достаточно сложная, даже если мы делаем компилятор с языка ассемблера. Причем, эту задачу требуется повторить для каждой платформы, использующей данный язык.
Я вижу, Вы снова забыли, о чём идёт речь. Напоминаю, речь идёт о компиляторе в байт-код жабамашины.

Цитата: Python от ноября  4, 2010, 13:00
Использование кросс-платформенного высокоуровневого языка в качестве промежуточного заметно упрощает задачу.
И чтобы задача не казалась слишком простой транслятор назло всем будет не на жабу, а на совершенно левый язык, чтобы можно  было длинными зимними вечерами скоротать время за созданием ещё одного велосипеда, транслирующего с левого языка на жабу. А весной следующего года всем вместе под задорную капель можно будет весело ловить отлетающие от обоих велосипедов баги и решать пазл «Какой велосипед виноват». Чтобы продлить удовольствие и добавить новые уровни сложности у этой увлекательной игры, можно вставить дополнительные звенья в цепочку. Даёшь пять промежуточных языков!

Цитата: Demetrius от ноября  4, 2010, 14:24
В этом свете особенно непонятно, какова польза от goto.
Как же непонятно? Мы всё уже выяснили. goto нужен для упрощения создания компилятора С—Java, который в свою очередь позарез необходим создателям маргинальных недоязычков (юные гении осилили компиляцию в С, но не осилили сделать то же самое в Java). По этой очень веской причине, как авторитетно считает Python, goto в Java абсолютно необходим.

Demetrius

Python, при всем уважении, ваш пример совершенно надуманный.

Python

Цитата: myst от ноября  4, 2010, 16:37
Мы всё уже выяснили. goto нужен для упрощения создания компилятора С—Java, который в свою очередь позарез необходим создателям маргинальных недоязычков (юные гении осилили компиляцию в С, но не осилили сделать то же самое в Java). По этой очень веской причине, как авторитетно считает Python, goto в Java абсолютно необходим.
«Маргинальных недоязычков», «юные гении» — я вижу эмоции, но не аргументы.

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

Python

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

Demetrius

Пример про адаптацию сишного кода.

Ява создана для написания реальных программ или адаптации сишного кода, написанного вопреки всем праваилам хорошего тона?

myst

Цитата: Python от ноября  4, 2010, 17:26
«Маргинальных недоязычков», «юные гении» — я вижу эмоции, но не аргументы.

Представим задачу: есть программа, генерирующая код на С. Кто ее написал — юный гений старшего школьного возраста или коллектив разработчиков известной софтверной компании — не имеет значения. Нас интересует лишь возможность адаптации полученного кода к платформе JVM. Вообще, нам нужна даже не Java, а реализация С для JVM, либо язык, объединяющий возможности Java и C.
Какой же Вы зануда... Столько на флудили, но так и не доказали нужность goto в Java.

Освежаю Вашу память:
Цитата: myst от ноября  3, 2010, 09:35
Цитата: Python от ноября  3, 2010, 01:06
goto они тоже не добавили специально. Что сделало адаптацию сишного кода для джавы нетривиальной задачей.
Я что-то не заметил засилья goto в сишном коде.
Цитата: Python от ноября  3, 2010, 13:06
Переход к метке — действие, используемое достаточно редко, но все же иногда используемое.
Цитата: myst от ноября  3, 2010, 13:56
Значит и нет никакой проблемы.
Цитата: Python от ноября  3, 2010, 13:06
Кроме того, иногда C используется в качестве промежуточного языка компилятора — там goto может оказаться несоизмеримо больше.
Цитата: myst от ноября  3, 2010, 13:56
Это не для человеков.
Цитата: Python от ноября  3, 2010, 14:14
Это для человеков. Платформа с единственным компилятором — не платформа, а язык. Компиляторы, использующие промежуточный С-код — довольно распространенное явление. Невозможность скомпилировать С для JVM порождает невозможность использовать и эти компиляторы на этой платформе.
Цитата: myst от ноября  3, 2010, 15:57
Я имел в виду психически здоровых человеков, которые не транслируют язык A в язык B компилятором, а потом руками переписывают с языка B на язык C.
Цитата: Python от ноября  3, 2010, 17:11
Зачем руками? В идеале, все должно работать автоматически.
Цитата: myst от ноября  3, 2010, 17:28
Тогда какое Вам дело до goto?
ОТВЕТА НЕТ
Цитата: myst от ноября  3, 2010, 18:53
какое Вам дело до goto, если этим будет заниматься транслятор?
ОТВЕТА НЕТ

Ваши показания в части для человеков/не для человеков особенно порадовали? :green:

Python

Цитата: myst от ноября  4, 2010, 19:56
ЦитироватьПереход к метке — действие, используемое достаточно редко, но все же иногда используемое.
Значит и нет никакой проблемы.
Проблема, иногда появляющаяся — не проблема? Есть несколько случаев, когда goto в C — лучший вариант из всех возможных. Выход из нескольких вложенных циклов, например. Или случай, когда структура алгоритма подобна той, что я приводил (т.е., алгоритм разделен на три секции, из каждой из них возможен переход в две другие) — такой алгоритм невозможно свести к циклам, даже имея в распоряжении многоуровневые break/continue, как в джаве.

Вообще, мне кажется, безгоутушность — всего лишь разновидность заложенной в язык «педагогики». Ближайший аналог — строгий порядок описательных секций в раннем паскале. Рано или поздно от этого откажутся.

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

Python

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

Demetrius

Отсутствие прямой работы с памятью -- тоже педагогика.

myst

Цитата: Python от ноября  5, 2010, 00:09
Проблема, иногда появляющаяся — не проблема?
Именно так.

Цитата: Python от ноября  5, 2010, 00:09
Или случай, когда структура алгоритма подобна той, что я приводил (т.е., алгоритм разделен на три секции, из каждой из них возможен переход в две другие) — такой алгоритм невозможно свести к циклам, даже имея в распоряжении многоуровневые break/continue, как в джаве.
Ваши сферокони мне совершенно неинтересны. Приводите реальные примеры реального кода реальных программных проектов или не морочьте мне голову.

Цитата: Python от ноября  5, 2010, 00:09
Вообще, мне кажется, безгоутушность — всего лишь разновидность заложенной в язык «педагогики». Ближайший аналог — строгий порядок описательных секций в раннем паскале. Рано или поздно от этого откажутся.
Статическая типизация, модули, исключения, ассерты и пр. такая же «педагогика». От всего этого тоже рано или поздно откажутся? :eat:

Цитата: Python от ноября  5, 2010, 00:09
Что значит будет заниматься транслятор? Откуда вообще берутся трансляторы? Я думал, их пишут программисты.
То есть ради удобства 3,5 гения, пишущих транслятор своего мегаязыка в жабу (парни слишком гениальны, чтобы транслировать в байт-код) Вы хотите отравить жизнь сотням тысяч программистов.
То есть ровно то, что я и сказал здесь:
Цитата: myst от ноября  4, 2010, 16:37
Как же непонятно? Мы всё уже выяснили. goto нужен для упрощения создания компилятора С—Java, который в свою очередь позарез необходим создателям маргинальных недоязычков (юные гении осилили компиляцию в С, но не осилили сделать то же самое в Java). По этой очень веской причине, как авторитетно считает Python, goto в Java абсолютно необходим.

Python

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

Python

Цитата: myst от ноября  5, 2010, 10:52
Статическая типизация, модули, исключения, ассерты и пр. такая же «педагогика». От всего этого тоже рано или поздно откажутся?
Статическая типизация — достаточно правильная идея, но, как ни странно, от нее уже начинают отказываться в пользу полиморфных типов (и в джаве есть элементы динамической типизации!). С другой стороны, строгая типизация в стиле паскаля, когда два массива с одинаковым типом элементов и размерностью считаются разнотипными, если не определены особым образом — уже «педагогика». Но речь, я так понял, шла о исторически более раннем «бестипном» подходе? Как ни странно, отказ от строгой статической типизации в пользу свободного доступа к памяти произошел даже в паскале (Turbo Pascal, Delphi). Причина — слишком ограниченные в то время средства, которые программисту давал «правильный стиль» программирования. Впрочем, недостатком бестипного подхода является сравнительно невысокая надежность — открываются широкие возможности подмены указателей, доступа к чужим данным и пр. Почему от него и отказались в джаве.

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

myst

Цитата: Python от ноября  5, 2010, 13:00
Если землетрясения происходят не ежедневно, это еще не повод считать, что их нет.
Как и не повод их учитывать в повседневной жизни. :green:

Цитата: Python от ноября  5, 2010, 13:23
Статическая типизация — достаточно правильная идея, но, как ни странно, от нее уже начинают отказываться в пользу полиморфных типов (и в джаве есть элементы динамической типизации!).
Да шо Ви оворите?! В каком месте от неё начинают отказываться? Проверка типов во время выполнения — это дополнение, а вовсе не замена.

Цитата: Python от ноября  5, 2010, 13:23
Исключения, модули и пр. — скорее, дополнительные возможности, чем ограничения.
Правда, што ли? Обязательность обработки исключений; явная декларация исключений, которые могут вылетать из подпрограммы; запрет доступа в кишки другого модуля; обязательность явного импорта элементов другого модуля; запрет транзитивности импорта (о чём Вы, как выяснилось выше, понятия не имеете :green:) и т. д. и т. п. — это не ограничения, да.

Цитата: Python от ноября  5, 2010, 13:23
Впрочем, недостатком бестипного подхода является сравнительно невысокая надежность — открываются широкие возможности подмены указателей, доступа к чужим данным и пр. Почему от него и отказались в джаве.
От него не отказывались, его даже не рассматривали.

myst

Цитата: Python от ноября  5, 2010, 13:00
В случае же goto, худшее, что можно сделать — запутаться в собственных алгоритмических построениях. Взломать систему с помощью goto невозможно.
Конечно! Запутаться в собственных алгоритмических построениях из-за goto и сделать дыру в защите невозможно ни при каких обстоятельствах. :eat:

Python

Цитата: myst от ноября  5, 2010, 14:38
Как и не повод их учитывать в повседневной жизни.
Последствия землетрясений все окупят
Цитата: myst от ноября  5, 2010, 14:38
Да шо Ви оворите?! В каком месте от неё начинают отказываться? Проверка типов во время выполнения — это дополнение, а вовсе не замена.
Нет, динмическая типизация — не статическая типизация вообще. В большинстве случаев, это производная от полиморфизма объектов, ближайшим прототипом которого была не строгая типизация классического Паскаля, а сишное свободное присвоение указателю на структуру А сходной, но не идентичной, структуры типа В, С или D, совместимость которых обеспечивалась с помощью полей-указателей на функции.
Цитата: myst от ноября  5, 2010, 14:38
запрет транзитивности импорта (о чём Вы, как выяснилось выше, понятия не имеете :green:) и т. д. и т. п. — это не ограничения, да.
Именно этот пункт считаю бесполезным. Все остальное (запрет доступа к кишкам и пр.) вполне оправдано, но в чем практическая польза этого запрета (не считая возможности понтоваться голословным утверждением о знании матчасти)? Одна из целей модульности — сокращение количества написанного руками кода, а ручное декларирование каждого импорта немного противоречит этому принципу. Да, Страуструп в своей книжке пишет, что инклуд, включающий другие инклуды с декларациями — это плохо, но ведь и инклуд из С++ никуда не исчез.

Цитата: myst от ноября  5, 2010, 14:38
От него не отказывались, его даже не рассматривали.
Это уже детали, которые в точности восстановить можно лишь путем гадания на кофейной гуще. Java относится к языкам с C-подобным синтаксисом, и в контексте C это выглядит как отказ от некоторых технических возможностей, чтобы получить более высокую надежность.

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

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

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

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

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

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