ANS>>>ну-ну. Сценарий несекурности предложи.
PI>>элементарно PI>>есть приложение с аунтентификацией PI>>заменяем аутентифицирующую функцию на функцию, возвращающую true, портим/скачиваем базу данных PI>>вопросы?
ANS>Напомню, что речь идёт о дядьке, сидящем в программе. Зачем кто-то в программе захочет портить свою же аутентификацию? Что касается пользователей, то см. следующую строчку.
то есть, в Смоллтолке можно менять программу только изнутри программы?
а как же ты тогда баги во внешних программах правил?
ANS>>>>>не давай "плохим дядкам" возможности инициировать замену.
я не собираюсь заниматься такими низкоуровневыми вопросами, как защита кода
этим за меня занимается .net framework
Здравствуйте, VladD2, Вы писали:
EC>>Совсем универсальных инструментов не бывает. EC>>Например как замена shell + awk + sed + grep + ... с трудом представляю себе Nemerle, а вот Python или Ruby легко.
VD>Это проблемы твоего воображения. Не более того. Я с успехом применял для скрптовых задач C# 2.0. И не вижу проблем в применении Немерле.
Ага писать замену конструкции grep pattern file | wc -l на C# это надо иметь недюжинное воображение и кучу времени. И это ещё тривиальный пример.
EC>>Как инструмент для написания драйверов (например под Solaris) тоже не могу его представить.
VD>Треп о драйверх уже вообще достал. Ими занимается 0.0001% программистов.
То, что я и ты этими задачами не занимаемся не делает их ненужными.
EC>>Для ответа на этот вопрос мне придётся перейти на личности, что я делать не собираюсь.
VD>Этим замечанием ты уже это сделал. Да и твои улыбочки и плюсики на всех проявлениях хамства и быдлятся тоже являются переходом на личности. Так что не стесняйся.
Чья бы уж корова мычала, то же мне, мастер изящной словесности.
Уже к оценкам претензии пошли — больше сказать нечего?
К каким конкретно сообщениям у тебя претензии?
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Андрей Хропов, Вы писали:
E>>>Программы, которые можно читать только на компьютере АХ>>Я считаю что вообще все надо читать на компьютере (не обязательно ПК конечно). АХ>>А уж смысла читать программы без компьютера вообще ну ни вижу никакого.
E>Как же ты языки программирования изучаешь? E>Я, например, беру книгу и читаю.
И я тоже. Но не только книги, но и туториалы разные.
E>Лучше всего, когда это удается делать без компьютера.
Совершенно обратное мнение.
E>И по поводу читать вообще на компьютере. Будучи пальмоводом с четырехлетним стажем могу сказать,
Да Палм не годится ИМХО для чтения книг. Слишком маленький экран. Поэтому у меня его и нет (для простых записей вроде телефонов хватает мобильника).
E>что удобства чтения книг электронные девайсы пока не достигли.
Чисто чтения — пока да. Хотя я считаю уровень удобства чтения с экрана (особенно большого) приемлемым.
Но чисто линейное чтение бывает только в случае художественной литературы.
А изучать тот же язык программирования удобно интерактивно. Читаешь книгу или tutorial, взял, скопировал исходный код программки, запустил, посмотрел, поигрался с кодом. Пошел читать дальше. Ну и гиперссылки — и в рамках одной книги и на внешние ресурсы — очень удобно, особенно теперь, когда есть Википедия, очень удобно начав с одного термина углубляться в изучение в ту сторону в которую тебе надо.
E> Искать что-нибудь удобно на компьютере, но вот читать -- бумажную книгу.
Надеюсь что с появлением электронной бумаги даже просто читать будет удобнее с нее.
Здравствуйте, eao197, Вы писали:
E>Демагогия -- это твой вывод о том, что foreach плохо подходит для решения задачи о расположении ферзей. Я такого не говорил. Я сказал, что между некоторыми foreach-ами и некоторыми элементарными for-ами сложно сделать однозначный вывод о лучшей читабельности. Т.е. приписывание собеседнику собственных мыслей.
А где там был элементарный for?
E>Демагогия -- отождествление всех возможных макросов с единственным макросом foreach. То, что в Nemerle у человека есть выбор только между рекурсивными функциями обхода коллекций и макросом foreach, который эти функции от программиста прячет -- это частный случай.
В Немерле можно спокойно пользоваться также и for, while, do/while и list comprehensions, последнее лучше всего подходит для данной задачи, что я тебе и продемонстрировал здесь
.
E> А вот когда кто-нибудь сделает свой макрос async под названием remote_async, то будет ли это для читателя кода более понятно, о какой конкретно remote идет речь?
Не очень понял, remote_async именно что предполагает, что есть некий параметр, который указывает какой remote. Или что ты вообще имеешь ввиду?
Здравствуйте, PhantomIvan, Вы писали:
EC>>Ага писать замену конструкции grep pattern file | wc -l на C# это надо иметь недюжинное воображение и кучу времени. И это ещё тривиальный пример.
PI>а что это означает?
Посчитать количество строк в файле file соответсвующие регулярному выражению pattern.
Согласишься со мной, что на C# гораздо многословнее получится и потребует больше времени?
EC>>>Ага писать замену конструкции grep pattern file | wc -l на C# это надо иметь недюжинное воображение и кучу времени. И это ещё тривиальный пример.
PI>>а что это означает?
EC>Посчитать количество строк в файле file соответсвующие регулярному выражению pattern. EC>Согласишься со мной, что на C# гораздо многословнее получится и потребует больше времени?
та, те же яйца, только в профиль
не строчка, а 5 (в немерле меньше)
насчет времени ты точно не прав, т.к. мне сначала хелп по этим командам посмотреть, и нужные модификаторы найти
а регулярное выражение я на автомате напишу в с#/nemerle
Здравствуйте, PhantomIvan, Вы писали:
PI>та, те же яйца, только в профиль PI>не строчка, а 5 (в немерле меньше)
С той разницей, что это просто набивается в консоли, не требует компиляции и легко отлаживется.
И главное — короче.
PI>насчет времени ты точно не прав, т.к. мне сначала хелп по этим командам посмотреть, и нужные модификаторы найти PI>а регулярное выражение я на автомате напишу в с#/nemerle
А на изучение с#/nemerle ты время не тратил, в прошивке от производителя было?
Поверь, освоить эти несколько команд на порядок проще чем C# (неговоря уже о Nemerle) — этим инструментом с успехом пользуются непрограммисты.
По ним есть прорва книг и туториалов в инете.
Здравствуйте, Курилка, Вы писали:
К>>>Плюс Скала — имеративный язык, со всеми вытекающими (хотя чётко аргументировать тут сейчас не могу). PI>>гм, функции в Скале — первоклассные значения, поддерживаются многие фичи ФП... PI>>о чём ты? К>О том, что в эрланге нет Mutable переменных. Сходу последствий нарушения этого я не вижу, но вполне вероятно что таковые есть.
Для доступа из нескольких тредов к mutable переменным придется вероятнее всего делать lock. А для immutable — нет.
Здравствуйте, Курилка, Вы писали:
К>Вообще одним из тех, кто тебе отвечал и одним из первых, упомянувших про эту библиотеку был я К>Если по сути — интересно, вроде как всего в 2 раза медленней Эрланга.
Не знаю как всего в два раза, а здесь Scala совершенно ужасно тормозит (в 10 раз медленнее Erlang с жутким перерасходом памяти или в 60 раз без него). Да, на первом месте Mozart/Oz .
Здравствуйте, EvilChild, Вы писали:
EC>Здравствуйте, PhantomIvan, Вы писали:
PI>>та, те же яйца, только в профиль PI>>не строчка, а 5 (в немерле меньше)
EC>С той разницей, что это просто набивается в консоли, не требует компиляции и легко отлаживется. EC>И главное — короче.
Зато это поймешь даже ты. А вот PhantomIvan пришлось объяснять, что значат твои кракозяблы. PI>>насчет времени ты точно не прав, т.к. мне сначала хелп по этим командам посмотреть, и нужные модификаторы найти PI>>а регулярное выражение я на автомате напишу в с#/nemerle
EC>А на изучение с#/nemerle ты время не тратил, в прошивке от производителя было? EC>Поверь, освоить эти несколько команд на порядок проще чем C# (неговоря уже о Nemerle) — этим инструментом с успехом пользуются непрограммисты.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, PhantomIvan, Вы писали:
PI>Скала неотделима от джавы PI>не знаю, как там они называются, но в жаве должны быть аналоги дотнетовских: PI>- messaging PI>- .net remoting PI>второе — это не просто обмен сообщений, это гораздо круче
Второе это еще нихилые тормоза. Вместо того чтобы плюнуть сообщением в пару байт, небходимо создать экземпляр заглушки, которая как-то хитро будет обращаться к реальному объекту...
PI>о таком (простом) механизме не слышал
Рекомендую ознакомиться с возможностями (простого) механизма OTP_Design_Principles
Главы 5, 9, 10, 11
Здравствуйте, Андрей Хропов, Вы писали:
АХ>Здравствуйте, Курилка, Вы писали:
К>>>>Плюс Скала — имеративный язык, со всеми вытекающими (хотя чётко аргументировать тут сейчас не могу). PI>>>гм, функции в Скале — первоклассные значения, поддерживаются многие фичи ФП... PI>>>о чём ты? К>>О том, что в эрланге нет Mutable переменных. Сходу последствий нарушения этого я не вижу, но вполне вероятно что таковые есть. АХ>Для доступа из нескольких тредов к mutable переменным придется вероятнее всего делать lock. А для immutable — нет.
Нету там доступа к переменным ВООБЩЕ из другого процесса. Единственный способ взаимодейсвтия — посылка сообщений.
Здравствуйте, PhantomIvan, Вы писали:
К>>>>Если по сути — интересно, вроде как всего в 2 раза медленней Эрланга. PI>>>естественно, на дотнете должно заработать гораздо быстрее К>>Не знаю, думаю очень большой разницы не будет.
PI>там обычные потоки из джавы? PI>зуб даю, быстрее будет Нет там потоков.
В том весь и смысл, что параллельность получается не на потоках ОС, т.е. нет постоянных переключений контекста, что позволяет ускорить работу приложения (при наличии нескольких процессов).
К>>>>Только вот OTP там нету конечно — большой минус. PI>>>но ведь есть JRE К>>И? Там есть супервайзоры, PI>что это?
Почитай доку, если интересно, Mirrorer ссылку дал.
К>> поддержка распределённых приложений, PI>разве на джава нет аналога .net remoting-a, web сервисов?
Это несколько другое. Поддержка кластеров встроенная в джаву есть? В рамках одной машины?
Почитай доку, иначе получается, что мне тебе её и другие вещи рассказывать надо.
К>> управление динамическим обновлением кода? PI>рефлексия есть? динамическое обновление кода — вызывает сомнения в необходимости...
Если ты не видишь необходимости это не значит, что это не имеет практической ценности.
Пример: система с несколькими 9 доступности (телеком), баги правятся на ходу с помощью обновления пофиксенных модулей. Выводить систему из строя очень дорогая операция.
К>>О том, что в эрланге нет Mutable переменных. Сходу последствий нарушения этого я не вижу, но вполне вероятно что таковые есть.
PI>в Немерле есть мутабельные переменные, хотя можно обойтись совсем без них PI>но зачем? проблем это не вызывает PI>для немерле "обычный" стиль — смесь императив + функционал, там где лучше применим императив — применяется императив, там где функциональный стиль дает больший прирост производительности труда — юзаются они PI>это лучше чем "чистый" язык без состояния (по скорости получения результата)
Ты как всегда абсолютен во мнении
Андрей рядом написал чем может быть чревато. Из-за этого рантайм эрланга другой.
К>>>>Плюс там это всё работает только в рамках одной JVM, когда распределённые приложения для эрланга — одно из первых применений. PI>>>главное внутренне присущее требование к распределённости — мультиплатформенность — у джавы выполнена PI>>>какая разница, ставишь ты OTP или JRE? PI>>>ведь у эрланга ведь тоже свой рантайм, правильно? К>>Да, только вот рантайм заточенный на такие задачи, в отличие от JRE, соответсвенно и сборщик мусора и прочие механизмы там совершенно другие. К>>Про одну JVM я имел в виду, что посылка сообщений там, насколько я понимаю, не работает между 2 JVM, тогда как для эрланга это по умолчанию. Из любого узла ты можешь послать сообщение процессу на другом узле, если знаешь его имя (и процесса и узла) и канал связи работает. К>>В Скале же для этого надо изобретать довольно много велосипедов ещё.
PI>Скала неотделима от джавы PI>не знаю, как там они называются, но в жаве должны быть аналоги дотнетовских: PI>- messaging PI>- .net remoting PI>второе — это не просто обмен сообщений, это гораздо круче
Что именно по твоему мнению "круче"? Прокси, генерируемые под классы?
Пара пунктов (правда уже особо ремоутинг не помню, сильно чур не пинать, давно было ):
1. как ты будешь посылать произвольные данные? Заворачивать в generic структуру и потом в том же шарпе её парсить?
2. для ремоутинга нужен его хост, т.е. конфигурация классов, публичных методов и т.п. В эрланге лишь необоходимо чтобы был живой процесс и известен его pid, чтобы посылать ему сообщения.
Плюс оверхед на сериализацию и т.п.
Хотя учитывая моё почти только поверхностное знакомство с ремоутингом, не готов детально сравнивать. В любом случае вещи заметно разные.
<skipped/> PI>о таком (простом) механизме не слышал PI>однако, если на сервере крутится какое-то приложение, оно как правило, привязано к базе данных PI>и если сервер падает, то поднятие того же приложения на другом сервере бессмысленно (если на нём не реплицирована бд)
Т.е. у тебя всегда БД крутится на том же сервере??? Если честно — no comments
А во мнезии (эрланговская базка данных) репликация одна из первейших фич.
И вопросы отказоустойчивости — основные для проектировщиков и разработчиков языка/библиотеки и рантайма.
PI>>насчет времени ты точно не прав, т.к. мне сначала хелп по этим командам посмотреть, и нужные модификаторы найти PI>>а регулярное выражение я на автомате напишу в с#/nemerle
EC>А на изучение с#/nemerle ты время не тратил, в прошивке от производителя было?
многие лета, так сказать, потратил
EC>Поверь, освоить эти несколько команд на порядок проще чем C# (неговоря уже о Nemerle) — этим инструментом с успехом пользуются непрограммисты.
у программиста должен быть инструмент, которым он владеет в совершенстве, очевидно, это может быть только один (ну 2, ну 3) инструмента
он им может и гвозди забивать, и космические корабли строить
а непрограммисты меня не интересуют, я ведь — программист...
зы. согласен с Синклером
а в Немерле специальный regexp match есть — регекспные операции на стероидах
PI>>там обычные потоки из джавы? PI>>зуб даю, быстрее будет К>Нет там потоков. К>В том весь и смысл, что параллельность получается не на потоках ОС, т.е. нет постоянных переключений контекста, что позволяет ускорить работу приложения (при наличии нескольких процессов).
я имел в виду, дотнет будет быстрее джавы, а не "дотнет будет быстрее эрланга"
[скиппед]
ладно, не будем спорить по мелочам
Эрланг — интереснейшей язык
поставил ОТП мануал в очередь на изучение...
Здравствуйте, PhantomIvan, Вы писали:
PI>>>насчет времени ты точно не прав, т.к. мне сначала хелп по этим командам посмотреть, и нужные модификаторы найти PI>>>а регулярное выражение я на автомате напишу в с#/nemerle
EC>>А на изучение с#/nemerle ты время не тратил, в прошивке от производителя было? PI>многие лета, так сказать, потратил
EC>>Поверь, освоить эти несколько команд на порядок проще чем C# (неговоря уже о Nemerle) — этим инструментом с успехом пользуются непрограммисты. PI>у программиста должен быть инструмент, которым он владеет в совершенстве, очевидно, это может быть только один (ну 2, ну 3) инструмента
Специалист подобен флюсу, полнота его одностороння? ((с) К. Прутков)
EC>>>Поверь, освоить эти несколько команд на порядок проще чем C# (неговоря уже о Nemerle) — этим инструментом с успехом пользуются непрограммисты. PI>>у программиста должен быть инструмент, которым он владеет в совершенстве, очевидно, это может быть только один (ну 2, ну 3) инструмента К>Специалист подобен флюсу, полнота его одностороння? ((с) К. Прутков) general-purpose language