Re[38]: почему в вебе распространены именно динамические язы
От: WolfHound  
Дата: 19.10.10 14:26
Оценка:
Здравствуйте, netch80, Вы писали:

N>Да в общем-то давно можно.

жуть
N>Главное здесь — слово public. Если protected, посторонний процесс сможет только читать, а private — не сможет даже читать.
N>Некоторые приложения, как стандартный application, принципиально опираются на этот механизм.
Но тут по крайне мере можно эту таблице залочить.
В go же данные никак и ничем не контролируются.
Те несколько потоков могут корежить один и тотже объект без какой либо синхронизации.
А это уже ужос ужос.

N>Мы всё-таки пока не монографии пишем. Это не отмазка, но факт. Термины будут отработаны по ходу.

Просто из за косах терминов которые никто толком не понимает случается тупой флуд ибо испорченый телефон.

N>Верно. Потому что ты смешал совершенно разные классы ограничений, пришлось вмешаться.

Я всетки не вижу разници.
У нас есть задача.
У нас есть решатель.
Решение будет ограничено ограничениями и задачи и решателя.
И так как решатель у нас один и других не предвидится и не вижу смысла разделять эти понятия.

N>>>Я не смог понять этот абзац — даже после исправления описок он не приобретает смысла. Объясни другими словами, plz.

WH>>Да все просто. Нет теста. И еще не скоро будет. Но я и так знаю что все впорядке.
N>Святым духом знаешь? Мне бы такую уверенность...
Существующая функциональность не сломалась. На это тест есть.

N>Смысл ровно тот же, с которым ты вообще сюда что-то пишешь: хочешь высказать свою точку зрения, кого-то убедить, от кого-то получить полезные комментарии. Но если ты будешь приводить примеры школьного уровня, это ни для кого не будет убедительным, скорее наоборот.

Почему ты считаешь этот пример школьным?
Реальный комит. В реальном проекте. Причем я бы сказал весьма не простом проекте.

N>Ну покажи более интересный пример. Сейчас в твоих примерах и высказываниях просто не за что зацепиться — всё предельно плоское, школьное и суконное.

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

N>А он тут и не сильно важен (хотя может быть освоен за 5 минут). Если ты просто нарисуешь по квадратику для каждой названной сущности и протянешь стрелки связей — уже увидишь сложность ситуации.

Не увижу.
У меня мозг работает по другому.

N>Нет, не знаю. Видимо, потому, что ситуация таки сложнее, чем это кажется со стороны.

Но ты же его написал.
Вводим FSM на уровень системы типов. И все.

N>Во-первых, я говорил о необходимом условии, а не достаточном. Во-вторых, тут получается хитрая корреляция состояний разных автоматов... впрочем, что я это рассказываю, если ты всё равно смотреть не будешь?

Чтобы мне это все осознать мне нужно понять предметную область.

N>Она значительно менее ущербна, чем твоя позиция "что бы ты не делал — если делаешь на динамике, делаешь это неправильно".

Я тут уже который раз задаю вопрос: Где профит?
И ответа по существу нет.
Ни одного.
Повторю еще раз свои аргументы против динамики:
1)Скорость исполнения всегда ниже.
2)Компилятор не ловит ошибки. Совсем.
3)IDE фундаментально убогие.
А что у нас в плюсе?
Меньше кода?
По сравнению с С++, C# и Java? Да!
По сравнению с немерле? Нет!
Метапрограммирование? Так в немерле оно есть.
В чем профит?
Ну хоть что-то?

А если есть очевидные недостатки но не видно достоинств то зачем оно нужно?

Ответь хотябы ты.
На Мамута я уже не расчитываю.

N>Тем, что показывает наиболее примитивное применение типа и компилятора.

А оно всегда примитивное.
Но из кучи такого примитива строятся тучи контрактов за которыми невозможно следить без помощи роботов.

WH>>Если ты о том что нужно в протокол добавить поддержку расширения это ни разу не проблема.

N>Ну расскажи, как ты это будешь делать.
Ты действительно хочешь чтобы я тебе тут чиста ради флема спроектировал расширяемый протокол?
Причем под что-то сферовакуумное?
Это слишком большой объем работы.

N>>>подумай о некоторых других вопросах: например, ограничениях на вложение тегов по их типам,

WH>>И в чем проблема?
N>Ну и как ты это будешь решать?
Что решать?
Пример проблемы пожилуста.

N>>>или отображение твоего кода в чужом фрейме.

WH>>Почему это должно меня волновать?
N>Потому, что понятие valid HTML может иметь достаточно тонкие зависимости от такого вложения.
Ты не понял. Почему меня должно волновать что кто-то засунет мой сайт в фрейм?
Это не мои проблемы.
Моя задача как разработчика сайта чтобы сайт в правильно работал в популярных браузерах. Не более того.

WH>>А что касается перегрузки операторов то мне и этого мало.

WH>>Я сейчас работаю над парсером для немерле2 там можно будет вообще как угодно над синтаксисом издеваться.
WH>>Что позволит сделать произвольный ДСЛ.
N>Y A C C по новой, да?
А что уже позволяет сделать так:
SomeFunction() : ...
{
    using XMLDsl;//Тут мы расширяем грамматику XML литералами
    def xml = <asd>$someVar</asd>;
}//А тут эта грамматика отключается

Причем вместе с ДСЛ подключаются автокомплит, подсветка и навигация по коду.
Так что як нервно курит в углу.
Благодоря статическо типизации если someVar будет иметь тип XML ее значение будет вставлено без изменений иначе оно будет сконвертировано в строку и заэскеплено.

Имея в руках подобное колдунство я любую динамику по объему кода уделаю...

N>Мне в общем-то пофиг, как ты назовёшь аналог getopt в твоей среде. Вопрос в том, как ты будешь потом эти данные использовать. Глобальные данные класса — это хак ровно того же уровня, что и просто глобальные переменные.

Ты имеешь в виду статические переменные класса?
Если да то полностью согласен.
Я уже давно пришол к выводу что их нужно запретить.
Пользы нет, а вред существенный.

Кстати с запретом глобальных переменных нужно запрещать всякие CreateFile ибо они по сути маскируют глобальные переменные.
Проблемы из-за них вполне конкретные.
Например я не могу взять и запустить какой попало код. Ибо злобный хацкер сможет сотворить что попало.
Чтобы с этим бороться мелкософт наворотил мега костыль по имени code access security который больше мешает чем помогает.

А всего то надо было при старте программы передавать в процесс сервис имен через который можно все что можно процессу.
В таком случае можно будет выполнить что попало. Все что нужно сделать для того чтобы это что попало не сделало гадость это не давать ему сервис имен.
Получаем http://en.wikipedia.org/wiki/Capability-based_security
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.