Обновить
2
0
Dmitry Soshnikov@dsCode

Пользователь

Отправить сообщение
Если более точно, что initialize — это инциализатор порожденного объекта (инстанса). Конструктор, именно в плане конструирования — это new (и то, new — это лишь оболочка для allocate (выделяет память) и initialize (инициализирует объект)).
Да, поскольку, инстанс-переменные являются настоящими пропертями, то, лучше бы, показать, что get_name и set_name — это прерогатива того, что работает не с виртуальными пропертями. В Руби же для таких целей есть полноценные аксессроры (ридеры, райтеры): name и name= (который, как было сказано выше, создаются автоматом в «примитивном виде» (установить простое значение / вернуть простое значение) классовыми методами attr_accessor, attr_reader и attr_writer)
ну, если твоя программа неуправляема, и тебе не известно, что, где и когда приходит — это уже проблемы твоей программы.
а что не надежного с приведением типа?

> трезво смотреть на особенности языка а не тупо молиться на священное писание?

так ведь я и рассуждаю об особенностях языков; а то, что ты называешь «мольбой на писание» — опять, возможно лишь вытекает из привычек того, что видел в других технологиях и идеологиях. Кто пишет технологию — пишет правила. При этом, как я отмечал раньше, можно в абстрактных рассуждениях отклоняться от этих правил. Но называть это «мольбой на священное писание» — извини, не умно.
> абы какое

ну я и говорю — локальная привычка, не более.
> есть нормальный оператор ===, который, в общем-то, и нужно использовать.

Если мыслить в строгой типизации, то да, иначе — выбирайте, как удобней. А Ваша любовь к непонятно откуда взявшимся утверждениям, по-прежнему, — вряд ли уместна.
> нифига не удобно

локальная привычка

> вот точка в пхп — это удобно

локальная привычка

> плюс в яваскрипте — это идиотизм

локальная привычка/непривычка

И что? Кто не привык к PHP скажет — зачем мне дополнительные операторы для чего-то, если я знаю, как, и в каких ситуациях работает нужный оператор?

Я ж говорю — весь «спор» лишь из-за привычки к статической или, по крайней мере, строгой, типизации. При рассуждениях, автор темы, якобы, оперирует фундаментальными понятиями, не учитывая ни типологию множества, ни особенности альтернативных систем, которые оперируют динамически с этими множествами (при этом все нюансы оговорены).
Да нет, давай так не будем неверный ход дискуссии задавать — типа ты отстаиваешь что-то одно, а я что-то другое. Я повторю — я не привязан ни к той, ни к другой идеологии, не я их создавал. Я лишь изучаю их. И видеть особенности разных технологий независимо от своих привычек — мне это интересней. Поэтому — «изложи эту великую идею» — не ко мне. Касательно же меня — мне удобно — я могу проверить просто на if (!obj) (при этом и '', и "", и undefined и 0 туда попадут — и это мне и нужно будет), вместо if (bla && bla && bla && т.д.). Так же — оператор like в некоторых языках (например, в не вышедшем ES4), который, подобно duck typing'у проверяет на «типа является тем, что мне нужно, но конкретика в данный момент не важна».
О, этим я всего лишь хотел сказать, что нужно изучать теорию конкретных технологий.

Когда были представлены полностью «мутирующие» объекты (когда система состоит только лишь из них, и каждый из таких объектов может видоизменяться, перегруппировываться и т.д., образуя новые системы) относительно статических сущностей — они тоже были в штыки приняты. Тем не менее, это была новая идеология (просто кому-то непривычная).
Об изменяемости объектов я говорил в общем (что может иметь «ключи» и «инвариантую» .length). То, что там на уровне реализации существуют жестокие проверки — это особенность системы (в принципе, да — обоснованные; потому — и выделение отдельной сущности).
> самоуверенность в своей непогрешимости

Это где это я «самоуверен в своей непогрешимости»?
ой, только вот не надо еще одной демагогии, ни про «Вась», ни про «Петь» :)

Я говорю, что в Руби и в Питоне (относительно > и < стало) — динамическая строгая типизация. А в JS — динамическая нестрогая (слабая). И где нужно — приводи сам, где не надо (а таких случае, может быть, и будет больше) — не приводи (за тебя приведут).
> О какое сильное утвеждение! Извините — если вы написали программу, то вам разве не интересно чтобы она делала то, что требуется? А если «инварианты не уместны», а выяснив что в массиве у вас три элемента вы сможете из него вытащить только два — то как вы будете доказывать что работа вашей программы вообще имеет хоть малейшее отношение к тому, что требуется?

Я не допущу подобного, зная, какой инструменту у меня в руках, и что я могу с ним делать.

> если у вас есть голова и некоторые базовые знания CS

Еще один переход на личности, который никак не красит Вас в желании казаться тем, кем Вы не являетесь.

> Да, можно обойтись и вообще без ООП — но по-моему нежелание признать что в данном примере классический ООП неудобен — просто говорит о том, что вы не хотите думать, а хотите на всё получить «бумагу с печатью».

Кроме очередного пустого перехода на личности, я сути в Вашем вопросе не вижу. Расскажите подробней, что Вас волнует, посмотрим, что можно сделать.
> И в Руби так и в Пайтоне

Я имею в виду, что руками надо приводить.
> ну и нафига тогда мягкая типизация, если нужно безконца приводить типы?

И в Руби так и в Пайтоне (в новой версии). Где надо — приводи руками. Где не надо (и понимаешь, почитав условия, как это работает) — можешь не приводить (избавишься от лишних действий).

Оператор like тогда вообще можно рассматривать, как «ослабленное слабого сравнения».
> В том-то и дело, что «в JS нет никаких синглтонов», потому, что эти объекты ничем не отличаются от остальных.

Естественно, нет. Я больше интересовался об «ушах». При этом, о «клооп» заговорили Вы. Возможно, человек под «синглтоном» имел в виду порождение объекта не от «конструктора-штамповщика». Естественно, никаких синглтонов в роли паттернов из клооп в JS нет.

> Всякие попытки имитировать клооп в js, принесение паттернов из клооп — притягивание того, к чему просто привыкли, в другую среду, потому, что не понимают её и не хотят обучаться. «За уши» — потому, что не нужно, не лезет и выглядит нелепо.

О, поверьте, я не привык (ни к той, ни к другой, ни к третьей технологии). Паттерны, которые есть в «клооп», и порожденные именно благодаря статике и классам, естественно, не нужны в динамических языках (это я уже отметил). Насчет «ушей» — я лишь хотел сказать, что динамические классовые реализации (не касаемо никаких паттернов) — мало чем отличаются от динамических прототипных.
Автору топика: я, как отмечал, был в отъезде (приехал только сегодня). Вы хотели сделать опрос на основе моей фразы о разных типах множеств с разными операциями (но, ввиду динамической нестрогой (слабой) типизации конкретных технологий — приводимости типов и операций согласно описанным алгоритмам). Немалое количество людей придерживается точки зрения, которая Вам не нравится. При этом, я яро (и в отличии от Вас) не восхваляю одну типизацию и (ее последствия) относительно другой (и ее возможных ограничений) — я рассуждаю о технологиях. Вы же, как я снова отмечал пытаетесь (именно пытаетесь — переходя на личности, демагогируя и прочее) рассуждать о фундаментальности (и то — лишь на основе своих привычек/непривычек), совершенно не учитывая локальную теорию технологии (которая вправе вводить свои сущности и, технологически обосновывая, видоизменять привычные Вам «символы» из других технологий) и приводите высосанные из пальца практические примеры, называя «удалением» из «отсортированного» массива элемент (не показывайте больше никому такие примеры при таких названиях).

Что я понял из дискуссии с Вами — то, что Вы за статическую (или, по крайней мере, динамическую строгую) типизацию, а динамическая нестрогая (слабая) Вас пугает, поскольку вводит новый функционал (видоизменяет ввиду неоднозначной типологии множества) привычных Вам «символов».

Говорить, кто здесь прав, кто нет — нельзя, любая реализация может двигать еще дальше этого, полностью разрушая Ваши привычки. При этом, любые реализации будут верными в своих идеологических мыслях.

А все Ваши кидания «дерьмо» везде и всюду, что кажется непривычным — ничего не решат.
все, с версии 3.0. Питона — надо руками приводить типы. Примеры выше будут выдавать ошибку.

А в JS (ввиду динамической нестрогой типизации) — все по правилам.
> а могло бы быть только 4:

В разных реализациях — как захотелось, так и сделали.

> 1. типы разные — фолс

не факт, лишь твое желание. Есть другие реализации.

> 2. строки сравниваем как строки

вот и приводи явно.

> 3. числа — как числа

вот и приводи явно.

> 4. объекты — по ссылкам

не факт, лишь твое желание. Есть другие реализации (например, можно сравнивать хэши объектов)

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность