Странные фичи языков
От: Muxa  
Дата: 13.08.10 20:43
Оценка: 7 (5)
нашел на хабре ссылку на тему на stackoverflow, в которой обсуждаются странные фичи языков программирования.
http://stackoverflow.com/questions/1995113/
порой занятно.
Re[4]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 16.08.10 12:21
Оценка: +1 :)))
Здравствуйте, CreatorCray, Вы писали:

CC>Да там неоднократно нарушается принцип наименьшего сюрприза. Хотя бы с теми же '5' + 3 и '5' — 3


А в чём здесь сюрприз, если в первом случае операция конкатенации, а во втором сложения? В стандарте ж сказано, что если один из операндов строка, то оператор сложения производит конкатенацию. Но стандарт, конечно, никто не читал, все учили язык по примерам, найденным в сети.
Re[2]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 14.08.10 18:55
Оценка: 1 (1) -1 :)
Здравствуйте, CreatorCray, Вы писали:

CC>я так понимаю у javascript подавляющее преимущество по странностям?


Странностей там не очень много, просто люди не знают и не хотят знать, как работает этот язык. Отсюда любовь ко всяческим обёрткам над ним. Правильно сказано, что jQuery сделан людьми, незнающими JavaScript, для людей, незнающих JavaScript. Про остальные то же самое можно сказать.
Re: Странные фичи языков
От: midcyber
Дата: 13.08.10 22:57
Оценка: :)))
Здравствуйте, Muxa, Вы писали:

M>нашел на хабре ссылку на тему на stackoverflow, в которой обсуждаются странные фичи языков программирования.

M>http://stackoverflow.com/questions/1995113/
M>порой занятно.

О, все-таки C++ ужасен в своей мощи
http://www.xs4all.nl/~weegen/eelis/analogliterals.xhtml

 assert( ( o-------------o
            |L             \
            | L             \
            |  L             \
            |   o-------------o
            |   !             !
            !   !             !
            o   |             !
             L  |             !
              L |             !
               L|             !
                o-------------o ).volume == ( o-------------o
                                              |             !
                                              !             !
                                              !             !
                                              o-------------o ).area * int(I-------------I) );
Re[9]: Странные фичи языков
От: catBasilio  
Дата: 26.08.10 07:36
Оценка: +1 -1 :)
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, mrTwister, Вы писали:


T>>>>Ну и что, что бред зафиксирован в стандарте? Стандартизированный бред бредом быть не перестает, а от этого только стандарт сам становится бредовым.

A>>>Бред — вообще вещь в себе. Вот ты сейчас бред написал. Как тебе такой стиль ведения дискуссии?
T>>Ты это к чему написал? Или ты действительно считаешь, что если Brainfuck стандартизировать, то он автоматически нормальным языком станет?

A>А ты? Не меняй тему, не играй в аналогии, прекрати нести бред.


Хватит тролить! Язык прежде всего должен быть простым и понятным, если этого в языке нет — то он говноязык. Как пример С++

int var = 123;

..... многа кода. 

void myTemplateFunc<::var, T>()
{

}



Хоть и диграфы описаны в стандарте это не делает их полезными и логичными (хоть кому-нибудь они понадобились?)
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
Re[43]: Странные фичи языков
От: mrTwister Россия  
Дата: 27.08.10 10:06
Оценка: :)))
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>Почему неприменим?
MC>Потому что тут используется операция "-", которая определена только для чисел (для дочернего класса).

Барабанная дробь: javascript:alert('1' + '2' — '3'); => 9

P.S.: то, что за кадром работает динамическая типизация — это уже технические детали реализации магии.
лэт ми спик фром май харт
Re[5]: Странные фичи языков
От: mrTwister Россия  
Дата: 25.08.10 04:59
Оценка: +2
Здравствуйте, anonymous, Вы писали:

A>Но стандарт, конечно, никто не читал, все учили язык по примерам, найденным в сети.


Ну и что, что бред зафиксирован в стандарте? Стандартизированный бред бредом быть не перестает, а от этого только стандарт сам становится бредовым.
лэт ми спик фром май харт
Re[12]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 10:34
Оценка: -2
Здравствуйте, catBasilio, Вы писали:

A>>Насколько мне известно, тему с плюсом-конкатенацией JavaScript получил в наследство от Python. Итого у нас уже 2 говноязыка. А ну и Си++, конечно же, говноязык, в нём же есть диграфы. Так ведь выходит, если увлечься аналогиями? Или хоть кто-то из вас аргументированно докажет, что плюс нельзя использовать для конкатенации?

B>пример из питона:
B>Ничего не приводится само.

Да, в Python строгая типизация, а в JavaScript утиная, но символ-то тот же. Более того в Python есть операция умножения для строк, обозначаемая символом «*». Говноязык?
Re[6]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 25.08.10 19:16
Оценка: +1
Здравствуйте, mrTwister, Вы писали:

A>>Но стандарт, конечно, никто не читал, все учили язык по примерам, найденным в сети.

T>Ну и что, что бред зафиксирован в стандарте? Стандартизированный бред бредом быть не перестает, а от этого только стандарт сам становится бредовым.

Бред — вообще вещь в себе. Вот ты сейчас бред написал. Как тебе такой стиль ведения дискуссии?
Re[10]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 09:49
Оценка: +1
Здравствуйте, catBasilio, Вы писали:

B>Язык прежде всего должен быть простым и понятным, если этого в языке нет — то он говноязык. Как пример С++


Насколько мне известно, тему с плюсом-конкатенацией JavaScript получил в наследство от Python. Итого у нас уже 2 говноязыка. А ну и Си++, конечно же, говноязык, в нём же есть диграфы. Так ведь выходит, если увлечься аналогиями? Или хоть кто-то из вас аргументированно докажет, что плюс нельзя использовать для конкатенации?
Re[3]: Странные фичи языков
От: мыщъх США http://nezumi-lab.org
Дата: 26.08.10 09:53
Оценка: :)
Здравствуйте, midcyber, Вы писали:

M>Здравствуйте, midcyber, Вы писали:


M>Ох, какая прелесть. Скопируйте это в адресную строку браузера:

M>
javascript:alert(111111111111111111111);

ну выполните это на си -- получите что-то типа 111111112360531590000. "я фигею дорогая редакция" (с). вот если бы результат был сильно другим -- то я бы подумал, что кто-то из нас двоих сильно укурился.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[18]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 11:19
Оценка: :)
Здравствуйте, mrTwister, Вы писали:

T>

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

T>При чем тут стандарт? Ну и что, что в стандарте это сказано, это как-то оправдывает поведение языка?

О, чёрт! Я, наконец, дождался хоть каких-то внятных аргументов помимо бросания словом «бред». Спасибо, дорогой оппонент. Имею Вам ответить следующее. Да, стандарт оправдывает поведение языка, более того, описанное в стандарте поведение является единственным допустимым поведением для языка. Теперь мы можем, наверное, перейти к следующему пункту — обоснованности некоторых положений стандарта?
Re[19]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 11:42
Оценка: +1
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, mrTwister, Вы писали:


T>>

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

T>>При чем тут стандарт? Ну и что, что в стандарте это сказано, это как-то оправдывает поведение языка?

A>О, чёрт! Я, наконец, дождался хоть каких-то внятных аргументов помимо бросания словом «бред».


О, чёрт! Я, наконец, дождался, что оппонент хоть как-то прочтет мое сообщение, а не только увидит ключевые слова, на которые у него сработает автоматический алгоритм генерирования постов.

A>Спасибо, дорогой оппонент. Имею Вам ответить следующее. Да, стандарт оправдывает поведение языка, более того, описанное в стандарте поведение является единственным допустимым поведением для языка.


Вот это откровение!!!

A>Теперь мы можем, наверное, перейти к следующему пункту — обоснованности некоторых положений стандарта?


Да как-бы все, кроме тебя, тут именно этим и занимаются.
Ну хорошо, вот скажи, зачем в динамически-типизируемом языке было допускать ситуацию, когда одна и таже операция будет иметь принципиально разную семантику, в зависимости от того, с какой точки зрения мы посмотрим на переменную (то есть какого типа мы её посчитаем в данный момент).
лэт ми спик фром май харт
Re[20]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 11:46
Оценка: :)
Здравствуйте, mrTwister, Вы писали:

Молодец, покривлялся.

A>>Теперь мы можем, наверное, перейти к следующему пункту — обоснованности некоторых положений стандарта?

T>Ну хорошо, вот скажи, зачем в динамически-типизируемом языке было допускать ситуацию, когда одна и таже операция будет иметь принципиально разную семантику, в зависимости от того, с какой точки зрения мы посмотрим на переменную (то есть какого типа мы её посчитаем в данный момент).

А почему нет? Это запрещено?

http://rsdn.ru/forum/flame.comp/3934566.1.aspx
Автор: anonymous
Дата: 26.08.10
Re[28]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 13:25
Оценка: :)
Здравствуйте, mrTwister, Вы писали:
T>Этого мало. Можно написать код, который будет работать если операция коммуттивна, но сломается если операция некоммутативна. Соответственно, мы не можем безопасно заменить одну операцию другой.
А ты почитай документацию — и не пиши код, который сломается. Пока ты используешь "+" как ассоциативную операцию с нейтральным элементом — ничего не сломается. LSP в действии.

T>Значит, LSP нарушен.

Нет, это значит, что программист не читал документацию.
Re[36]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 15:18
Оценка: +1
Здравствуйте, mrTwister, Вы писали:
T>Зато у них есть общая операция '+' и мы вместо строки можем подставить (substitute) число и наоборот. То есть они ведут себя так, как будто у них есть базовый тип, определяющий операцию '+'. Вот тут то как раз LSP и нарушается.
Нет, не нарушается. Базовый тип у них — моноид. Пока ты не используешь специфичные для строк или чисел особенности операции "+" — все будет ок.
Re[24]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 30.08.10 19:22
Оценка: :)
Здравствуйте, Erop, Вы писали:

A>>Программа на любом языке «немножко плохо предсказуемо работает», если программист не позаботился почитать документацию по языку.

E>Тут есть такая проблема, что можно написать функцию, которая суперски работает, но только до той поры, пока в неё не прийдёт строка "12" вместо числа 12...

На любом языке «можно написать функцию, которая суперски работает, но только до той поры, пока в неё не придёт» что-то неожиданное, если программист не позаботился почитать документацию по языку, пошевелить мозгами, написать юнит-тесты (нужное подчеркнуть, дописать своё).
Re[2]: Странные фичи языков
От: midcyber
Дата: 14.08.10 02:07
Оценка:
Здравствуйте, midcyber, Вы писали:

Ох, какая прелесть. Скопируйте это в адресную строку браузера:
javascript:alert(111111111111111111111);
Re[3]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 14.08.10 08:56
Оценка:
Здравствуйте, midcyber, Вы писали:

M>Ох, какая прелесть. Скопируйте это в адресную строку браузера:

M>
javascript:alert(111111111111111111111);


Это нормальное поведение для чисел с плавающей запятой, каковыми по стандарту являются все числа в JavaScript.
Re: Странные фичи языков
От: CreatorCray  
Дата: 14.08.10 12:47
Оценка:
Здравствуйте, Muxa, Вы писали:

M>нашел на хабре ссылку на тему на stackoverflow, в которой обсуждаются странные фичи языков программирования.

M>http://stackoverflow.com/questions/1995113/
M>порой занятно.

я так понимаю у javascript подавляющее преимущество по странностям?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Странные фичи языков
От: CreatorCray  
Дата: 16.08.10 11:26
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Странностей там не очень много, просто люди не знают и не хотят знать, как работает этот язык. Отсюда любовь ко всяческим обёрткам над ним. Правильно сказано, что jQuery сделан людьми, незнающими JavaScript, для людей, незнающих JavaScript. Про остальные то же самое можно сказать.

Да там неоднократно нарушается принцип наименьшего сюрприза. Хотя бы с теми же '5' + 3 и '5' — 3
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Странные фичи языков
От: Ratel Смерть хохлопидарам.
Дата: 25.08.10 00:44
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, CreatorCray, Вы писали:


CC>>я так понимаю у javascript подавляющее преимущество по странностям?


A>Странностей там не очень много, просто люди не знают и не хотят знать, как работает этот язык. Отсюда любовь ко всяческим обёрткам над ним. Правильно сказано, что jQuery сделан людьми, незнающими JavaScript, для людей, незнающих JavaScript. Про остальные то же самое можно сказать.

Это почему еще так?
I am Jack's Bugged Code.
Re[4]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 25.08.10 19:21
Оценка:
Здравствуйте, Ratel, Вы писали:

CC>>>я так понимаю у javascript подавляющее преимущество по странностям?

A>>Странностей там не очень много, просто люди не знают и не хотят знать, как работает этот язык. Отсюда любовь ко всяческим обёрткам над ним. Правильно сказано, что jQuery сделан людьми, незнающими JavaScript, для людей, незнающих JavaScript. Про остальные то же самое можно сказать.
R>Это почему еще так?

Может, это и не именно про jQuery было сказано, я не помню точно. Однако в сети есть куча библиотек, которые пытаются сделать из прототипной объектной модели модель на классах. При этом утверждается, что это просто в JavaScript так криво реализована эта класс-ориентированная парадигма, и вот эта очередная библиотека призвана всё исправить. Прототипы — что это?
Re[7]: Странные фичи языков
От: mrTwister Россия  
Дата: 25.08.10 21:36
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, mrTwister, Вы писали:


A>>>Но стандарт, конечно, никто не читал, все учили язык по примерам, найденным в сети.

T>>Ну и что, что бред зафиксирован в стандарте? Стандартизированный бред бредом быть не перестает, а от этого только стандарт сам становится бредовым.

A>Бред — вообще вещь в себе. Вот ты сейчас бред написал. Как тебе такой стиль ведения дискуссии?


Ты это к чему написал? Или ты действительно считаешь, что если Brainfuck стандартизировать, то он автоматически нормальным языком станет?
лэт ми спик фром май харт
Re[8]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 07:06
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>>>Ну и что, что бред зафиксирован в стандарте? Стандартизированный бред бредом быть не перестает, а от этого только стандарт сам становится бредовым.

A>>Бред — вообще вещь в себе. Вот ты сейчас бред написал. Как тебе такой стиль ведения дискуссии?
T>Ты это к чему написал? Или ты действительно считаешь, что если Brainfuck стандартизировать, то он автоматически нормальным языком станет?

А ты? Не меняй тему, не играй в аналогии, прекрати нести бред.
Re[9]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 07:41
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, mrTwister, Вы писали:


T>>>>Ну и что, что бред зафиксирован в стандарте? Стандартизированный бред бредом быть не перестает, а от этого только стандарт сам становится бредовым.

A>>>Бред — вообще вещь в себе. Вот ты сейчас бред написал. Как тебе такой стиль ведения дискуссии?
T>>Ты это к чему написал? Или ты действительно считаешь, что если Brainfuck стандартизировать, то он автоматически нормальным языком станет?

A>А ты? Не меняй тему, не играй в аналогии, прекрати нести бред.


Я пытаюсь прояснить твою точку зрения и для этого специально задал уточняющий вопрос: "Или ты действительно считаешь, что если Brainfuck стандартизировать, то он автоматически нормальным языком станет?". Но ты не ответил, и видимо чувствуя приближающийся слив, решил уйти в глубокий троллинг. Счастливой дороги!
лэт ми спик фром май харт
Re[10]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 09:44
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>Я пытаюсь прояснить твою точку зрения и для этого специально задал уточняющий вопрос: "Или ты действительно считаешь, что если Brainfuck стандартизировать, то он автоматически нормальным языком станет?".


Ничего подобного. Ты ведь начал неаргументированно называть всё бредом. Когда я тебе указал, на недопустимость подобного способа дискуссии, ты решил сменить тему, и построить доказательство от аналогии.

T>Счастливой дороги!


Иди туда же.
Re[11]: Странные фичи языков
От: Erop Россия  
Дата: 26.08.10 10:01
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Насколько мне известно, тему с плюсом-конкатенацией JavaScript получил в наследство от Python. Итого у нас уже 2 говноязыка. А ну и Си++, конечно же, говноязык, в нём же есть диграфы. Так ведь выходит, если увлечься аналогиями? Или хоть кто-то из вас аргументированно докажет, что плюс нельзя использовать для конкатенации?


IMHO, вообще использовать операторы не по назначению -- нехорошо. В частности плюс -- это сумма. Сумма обычно обладает по крайней мере двумя свойствами. Можно найти то, что в сумме с данным даёт 0. И можно менять слагаемые местами. Конкатенация нифига так не умеет.

Вообще я не понимаю, почему конкотенацию в С++ например, так любят плюсиком обозначать, а не амперсандом, например...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[11]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 10:06
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, mrTwister, Вы писали:


T>>Я пытаюсь прояснить твою точку зрения и для этого специально задал уточняющий вопрос: "Или ты действительно считаешь, что если Brainfuck стандартизировать, то он автоматически нормальным языком станет?".


A>Ничего подобного. Ты ведь начал неаргументированно называть всё бредом. Когда я тебе указал, на недопустимость подобного способа дискуссии, ты решил сменить тему, и построить доказательство от аналогии.


Что именно я начал называть бредом?
Согласен ли ты с это фразой:

Стандартизированный бред бредом быть не перестает, а от этого только стандарт сам становится бредовым.

?
лэт ми спик фром май харт
Re[12]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 10:12
Оценка:
Здравствуйте, Erop, Вы писали:

A>>Насколько мне известно, тему с плюсом-конкатенацией JavaScript получил в наследство от Python. Итого у нас уже 2 говноязыка. А ну и Си++, конечно же, говноязык, в нём же есть диграфы. Так ведь выходит, если увлечься аналогиями? Или хоть кто-то из вас аргументированно докажет, что плюс нельзя использовать для конкатенации?

E>IMHO, вообще использовать операторы не по назначению -- нехорошо. В частности плюс -- это сумма. Сумма обычно обладает по крайней мере двумя свойствами. Можно найти то, что в сумме с данным даёт 0. И можно менять слагаемые местами. Конкатенация нифига так не умеет.

Конкатенация является математической операцией, но не арифметической, следовательно к ней неприменима аксиоматика арифметики. Это другая область, об этом нужно знать, я думаю, программисту. А если это другая область, то почему нельзя использовать для неё символы арифметики, почему должна возникнуть путаница?

Давайте ещё добавим в рассмотрение знаки сравнения. Во некоторых языках, например Pascal, строки и числа сравниваются одними и теми же операторами, хотя на самом деле алгоритмы сравнения для них в корне различны. А есть, например Perl, которые используют разные операторы (<= и le). Какую группу определим как говноязыки?
Re[12]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 10:14
Оценка:
Здравствуйте, mrTwister, Вы писали:

A>>Ничего подобного. Ты ведь начал неаргументированно называть всё бредом. Когда я тебе указал, на недопустимость подобного способа дискуссии, ты решил сменить тему, и построить доказательство от аналогии.

T>Что именно я начал называть бредом?

Очевидно, использование «плюса» для конкатенации.

T>Согласен ли ты с это фразой:

T>

Стандартизированный бред бредом быть не перестает, а от этого только стандарт сам становится бредовым.

T>?

К этой фразе мы перейдём после получения от тебя доказательства, что обозначение конкатенации «плюсом» является бредом.
Re[11]: Странные фичи языков
От: catBasilio  
Дата: 26.08.10 10:17
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, catBasilio, Вы писали:


B>>Язык прежде всего должен быть простым и понятным, если этого в языке нет — то он говноязык. Как пример С++


A>Насколько мне известно, тему с плюсом-конкатенацией JavaScript получил в наследство от Python. Итого у нас уже 2 говноязыка. А ну и Си++, конечно же, говноязык, в нём же есть диграфы. Так ведь выходит, если увлечься аналогиями? Или хоть кто-то из вас аргументированно докажет, что плюс нельзя использовать для конкатенации?


пример из питона:

>>> '2'+ 3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> '2' - 3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'int'


Ничего не приводится само.
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
Re[13]: Странные фичи языков
От: Erop Россия  
Дата: 26.08.10 10:23
Оценка:
Здравствуйте, anonymous, Вы писали:


A>Конкатенация является математической операцией, но не арифметической, следовательно к ней неприменима аксиоматика арифметики. Это другая область, об этом нужно знать, я думаю, программисту. А если это другая область, то почему нельзя использовать для неё символы арифметики, почему должна возникнуть путаница?


Потому, что у символов арифметики может быть ещё и арифметическая трактовка...

A>Давайте ещё добавим в рассмотрение знаки сравнения. Во некоторых языках, например Pascal, строки и числа сравниваются одними и теми же операторами, хотя на самом деле алгоритмы сравнения для них в корне различны. А есть, например Perl, которые используют разные операторы (<= и le). Какую группу определим как говноязыки?


Ну и что, что алгоритмы разные? Лексографическое сравнение даёт полное упорядочение строк, так что больше и меньше там катят.
Другое дело, чтщ если у тебя "5" + "7" даёт "12", то сравнивать тоже надо как-то не так.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[13]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 10:37
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Очевидно, использование «плюса» для конкатенации.


Очевидно, ты это сам мне приписал. Моя фраза была про то, что нельзя бред прикрывать стандартом, а не про то, что нечто является бредом. То есть твоя аргументация была ошибочна независимо от того, является ли конкатенация в виде знака "+" одновременно с динамической типизацией бредом, или нет.
лэт ми спик фром май харт
Re[14]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 10:40
Оценка:
Здравствуйте, Erop, Вы писали:

A>>Конкатенация является математической операцией, но не арифметической, следовательно к ней неприменима аксиоматика арифметики. Это другая область, об этом нужно знать, я думаю, программисту. А если это другая область, то почему нельзя использовать для неё символы арифметики, почему должна возникнуть путаница?

E>Потому, что у символов арифметики может быть ещё и арифметическая трактовка...

А что, контекст мы уже разучились учитывать? А давайте ещё рассмотрим тогда операторы «запятая» и «точка с запятой», чьё назначение зависит от контекста. Группа говноязыков стремительно растёт.

A>>Давайте ещё добавим в рассмотрение знаки сравнения. Во некоторых языках, например Pascal, строки и числа сравниваются одними и теми же операторами, хотя на самом деле алгоритмы сравнения для них в корне различны. А есть, например Perl, которые используют разные операторы (<= и le). Какую группу определим как говноязыки?

E>Ну и что, что алгоритмы разные? Лексографическое сравнение даёт полное упорядочение строк, так что больше и меньше там катят.

Вот для сложения и конкатенации алгоритмы разные. Ну и что?

E>Другое дело, чтщ если у тебя "5" + "7" даёт "12", то сравнивать тоже надо как-то не так.


Это в каком языке?
Re[14]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 10:43
Оценка:
Здравствуйте, mrTwister, Вы писали:

A>>Очевидно, использование «плюса» для конкатенации.

T>Очевидно, ты это сам мне приписал. Моя фраза была про то, что нельзя бред прикрывать стандартом, а не про то, что нечто является бредом. То есть твоя аргументация была ошибочна независимо от того, является ли конкатенация в виде знака "+" одновременно с динамической типизацией бредом, или нет.

Тогда вообще непонятно откуда бред взялся. А тебе про операцию и стандарт, ты мне про бред и стандарт. Очевидно, либо операция является бредом, либо ты вообще написал, чтобы хоть что-то написать. Или есть какое-то другое логичное следствие?
Re[15]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 10:52
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, mrTwister, Вы писали:


A>>>Очевидно, использование «плюса» для конкатенации.

T>>Очевидно, ты это сам мне приписал. Моя фраза была про то, что нельзя бред прикрывать стандартом, а не про то, что нечто является бредом. То есть твоя аргументация была ошибочна независимо от того, является ли конкатенация в виде знака "+" одновременно с динамической типизацией бредом, или нет.

A>Тогда вообще непонятно откуда бред взялся. А тебе про операцию и стандарт, ты мне про бред и стандарт.

При чем тут стандарт?
лэт ми спик фром май харт
Re[16]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 10:56
Оценка:
Здравствуйте, mrTwister, Вы писали:

A>>>>Очевидно, использование «плюса» для конкатенации.

T>>>Очевидно, ты это сам мне приписал. Моя фраза была про то, что нельзя бред прикрывать стандартом, а не про то, что нечто является бредом. То есть твоя аргументация была ошибочна независимо от того, является ли конкатенация в виде знака "+" одновременно с динамической типизацией бредом, или нет.
A>>Тогда вообще непонятно откуда бред взялся. А тебе про операцию и стандарт, ты мне про бред и стандарт.
T>При чем тут стандарт?

Выделил.
Re[13]: Странные фичи языков
От: Мишень-сан  
Дата: 26.08.10 11:07
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, catBasilio, Вы писали:


A>>>Насколько мне известно, тему с плюсом-конкатенацией JavaScript получил в наследство от Python. Итого у нас уже 2 говноязыка. А ну и Си++, конечно же, говноязык, в нём же есть диграфы. Так ведь выходит, если увлечься аналогиями? Или хоть кто-то из вас аргументированно докажет, что плюс нельзя использовать для конкатенации?

B>>пример из питона:
B>>Ничего не приводится само.

A>Да, в Python строгая типизация, а в JavaScript утиная, но символ-то тот же. Более того в Python есть операция умножения для строк, обозначаемая символом «*». Говноязык?


Вы не поверите, но в Python типизация тоже утиная

1. В JavaScript применяется слабая динамическая типизация. Такая типизация допускает неявное приведение типов, напр. как в описанном случае — при сложении второй аргумент приводится к строке, а при вычитании первый аргумент к числу.
2. в Python применяется строгая динамическая типизация, которая вычисляет тип выражения в рантайме, но не допускает неявного приведения типов. Вообще же, если в питоне переопределить для строк операцию конкатенации — вставить для второго её аргумента str(arg2), что создаёт строковое представление объекта — можно получить такое же поведение. Вопрос в том, что в здравом уме никто так не делает, и для "сложения" строки и числа один из аргументов надо явно преобразовать к типу другого.
Re[17]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 11:12
Оценка:
Здравствуйте, anonymous, Вы писали:

T>>При чем тут стандарт?


A>Выделил.


Так, еще раз. Была твоя фраза:

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


При чем тут стандарт? Ну и что, что в стандарте это сказано, это как-то оправдывает поведение языка?
лэт ми спик фром май харт
Re[14]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 11:13
Оценка:
Здравствуйте, Мишень-сан, Вы писали:

A>>Да, в Python строгая типизация, а в JavaScript утиная, но символ-то тот же. Более того в Python есть операция умножения для строк, обозначаемая символом «*». Говноязык?

МС>Вы не поверите, но в Python типизация тоже утиная

Здесь, термин «утиная типизация» я использовал для обозначения слабой динамической типизации. Но Вы правы, корректнее было бы написать это явно.
Re[13]: Странные фичи языков
От: мыщъх США http://nezumi-lab.org
Дата: 26.08.10 11:23
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, Erop, Вы писали:


A>Давайте ещё добавим в рассмотрение знаки сравнения. Во некоторых языках, например Pascal,

A>строки и числа сравниваются одними и теми же операторами, хотя на самом деле алгоритмы
а еще можно вспомнить языки, где = означет присвоить и тогда a = a + 1 теряет весь математический смысл (если допустить, что он в нем изначально был). и никто не умирает
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[14]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 11:26
Оценка:
Здравствуйте, мыщъх, Вы писали:

A>>Давайте ещё добавим в рассмотрение знаки сравнения. Во некоторых языках, например Pascal,

A>>строки и числа сравниваются одними и теми же операторами, хотя на самом деле алгоритмы
М>а еще можно вспомнить языки, где = означет присвоить и тогда a = a + 1 теряет весь математический смысл (если допустить, что он в нем изначально был). и никто не умирает

О, в списке говноязыков новое пополнение. А осталось ли ещё что-нибудь, кроме них?
Re[15]: Странные фичи языков
От: Erop Россия  
Дата: 26.08.10 11:27
Оценка:
Здравствуйте, anonymous, Вы писали:

E>>Другое дело, чтщ если у тебя "5" + "7" даёт "12", то сравнивать тоже надо как-то не так.

A>Это в каком языке?

Во многих скриптовых... В пёрле том же, например.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[16]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 11:43
Оценка:
Здравствуйте, Erop, Вы писали:

E>>>Другое дело, чтщ если у тебя "5" + "7" даёт "12", то сравнивать тоже надо как-то не так.

A>>Это в каком языке?
E>Во многих скриптовых... В пёрле том же, например.

В Perl это даст 12, а не "12". Для конкатенации же там отдельный оператор.
# $a = '5'; $b = '7'; $c = $a + $b; Dump($c);
SV = IV(0x1420798) at 0x142079c
  REFCNT = 1
  FLAGS = (IOK,pIOK)
  IV = 12

# $a = '5'; $b = '7'; $c = $a . $b; Dump($c);
SV = PV(0x605084) at 0x125079c
  REFCNT = 1
  FLAGS = (POK,pPOK)
  PV = 0x127c974 "57"\0
  CUR = 2
  LEN = 4
Re[17]: Странные фичи языков
От: Erop Россия  
Дата: 26.08.10 12:20
Оценка:
Здравствуйте, anonymous, Вы писали:

A>В Perl это даст 12, а не "12".

А какая, с т. з. PERL разница?

A>Для конкатенации же там отдельный оператор.


Ну да. Только им редко довольно пользуются.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[21]: Странные фичи языков
От: Erop Россия  
Дата: 26.08.10 12:23
Оценка:
Здравствуйте, anonymous, Вы писали:

A>А почему нет? Это запрещено?


Программа немножко плохо предсказуемо работает, а так всё хорошо...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[21]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 12:24
Оценка:
Здравствуйте, anonymous, Вы писали:

A>А почему нет? Это запрещено?


Потому что это приводит к трудноуловимым ошибкам, так как возникает противоречие: какую именно операцию выполнить? Если для компилятора (или интерпретатора) это противоречие разрешить легко, введя какое-нибудь формальное правило, то с человеком сложнее, так как он должен будет в уме каждый раз производить вычисление этого правила и не дай бог ошибется.
лэт ми спик фром май харт
Re[22]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 12:28
Оценка:
Здравствуйте, mrTwister, Вы писали:
A>>А почему нет? Это запрещено?
T>Потому что это приводит к трудноуловимым ошибкам, так как возникает противоречие: какую именно операцию выполнить?
Виртуальные функции ты, я погляжу, не очень любишь, да?
Re[18]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 26.08.10 12:30
Оценка:
Здравствуйте, Erop, Вы писали:

A>>В Perl это даст 12, а не "12".

E>А какая, с т. з. PERL разница?

С точки зрения Perl, оно по разному хранится. Для программиста, в данном конкретном случае, наверное, никакой.

A>>Для конкатенации же там отдельный оператор.

E>Ну да. Только им редко довольно пользуются.

Ты имеешь в виду интерполяцию? Это на любителя. TMTOWTDI.
Re[15]: Странные фичи языков
От: neFormal Россия  
Дата: 26.08.10 12:40
Оценка:
Здравствуйте, anonymous, Вы писали:

A>О, в списке говноязыков новое пополнение. А осталось ли ещё что-нибудь, кроме них?


brainfuck
...coding for chaos...
Re[23]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 12:50
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

A>>>А почему нет? Это запрещено?
T>>Потому что это приводит к трудноуловимым ошибкам, так как возникает противоречие: какую именно операцию выполнить?
MC>Виртуальные функции ты, я погляжу, не очень любишь, да?

В случае с виртуальными функциями мне помогает Liskov substitution principle, который в обсуждаемом вопросе нарушен.
лэт ми спик фром май харт
Re[24]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 12:56
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>В случае с виртуальными функциями мне помогает Liskov substitution principle, который в обсуждаемом вопросе нарушен.
Почему? И строки, и числа с операцией + образуют, емнип, моноид. Везде, где тебе нужен был бы моноид...
Re[25]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 13:06
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>В случае с виртуальными функциями мне помогает Liskov substitution principle, который в обсуждаемом вопросе нарушен.
MC>Почему? И строки, и числа с операцией + образуют, емнип, моноид. Везде, где тебе нужен был бы моноид...

Во-первых операция конкатенации некоммутативна, а арифметическое сложение коммутативно
Во-вторых, если рассматривать пример с '5' + 2 и '5' — 2, то здесь важно то, что для арифметического сложения выполняется правило: a + b = a-(-1*b), а для конкатенации не выполняется.
лэт ми спик фром май харт
Re[26]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 13:16
Оценка:
Здравствуйте, mrTwister, Вы писали:
MC>>Почему? И строки, и числа с операцией + образуют, емнип, моноид. Везде, где тебе нужен был бы моноид...
T>Во-первых операция конкатенации некоммутативна, а арифметическое сложение коммутативно
T>Во-вторых, если рассматривать пример с '5' + 2 и '5' — 2, то здесь важно то, что для арифметического сложения выполняется правило: a + b = a-(-1*b), а для конкатенации не выполняется.
Ну и что? "+" и так ассоциативный и у него есть нейтральный элемент (0 и '') соответственно. Этого мало, чтобы работал LSP?
Re[27]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 13:23
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

MC>>>Почему? И строки, и числа с операцией + образуют, емнип, моноид. Везде, где тебе нужен был бы моноид...
T>>Во-первых операция конкатенации некоммутативна, а арифметическое сложение коммутативно
T>>Во-вторых, если рассматривать пример с '5' + 2 и '5' — 2, то здесь важно то, что для арифметического сложения выполняется правило: a + b = a-(-1*b), а для конкатенации не выполняется.
MC>Ну и что? "+" и так ассоциативный и у него есть нейтральный элемент (0 и '') соответственно. Этого мало, чтобы работал LSP?

Этого мало. Можно написать код, который будет работать если операция коммуттивна, но сломается если операция некоммутативна. Соответственно, мы не можем безопасно заменить одну операцию другой. Значит, LSP нарушен. С правилом "a + b = a-(-1*b)" та же самая ситуация.
лэт ми спик фром май харт
Re[29]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 13:41
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>Этого мало. Можно написать код, который будет работать если операция коммуттивна, но сломается если операция некоммутативна. Соответственно, мы не можем безопасно заменить одну операцию другой.
MC>А ты почитай документацию — и не пиши код, который сломается. Пока ты используешь "+" как ассоциативную операцию с нейтральным элементом — ничего не сломается. LSP в действии.
Это и есть кривость. Думать о LSP надо при проектировании операций, а не при их использовании.

T>>Значит, LSP нарушен.

MC>Нет, это значит, что программист не читал документацию.
Программист читал документацию, но ошибся. Или ошибаются только лохи?
лэт ми спик фром май харт
Re[30]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 14:20
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>Это и есть кривость. Думать о LSP надо при проектировании операций, а не при их использовании.
Согласен, что можно было расширить применимость +/- для строк. Разработчики не захотели, увы.

T>>>Значит, LSP нарушен.

MC>>Нет, это значит, что программист не читал документацию.
T>Программист читал документацию, но ошибся.
Это не значит, что LSP нарушен.
Re[31]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 14:28
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

T>>Программист читал документацию, но ошибся.

MC>Это не значит, что LSP нарушен.

It states that, if S is a subtype of T, then objects of type T in a computer program may be replaced with objects of type S (i.e., objects of type S may be substituted for objects of type T), without altering any of the desirable properties of that program (correctness, task performed, etc.).

лэт ми спик фром май харт
Re[32]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 14:30
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>

T>It states that, if S is a subtype of T, then objects of type T in a computer program may be replaced with objects of type S (i.e., objects of type S may be substituted for objects of type T), without altering any of the desirable properties of that program (correctness, task performed, etc.).

Что, по-твоему, в данном случае S, а что T?
Re[33]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 14:36
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>

T>>It states that, if S is a subtype of T, then objects of type T in a computer program may be replaced with objects of type S (i.e., objects of type S may be substituted for objects of type T), without altering any of the desirable properties of that program (correctness, task performed, etc.).

MC>Что, по-твоему, в данном случае S, а что T?

А все равно.
Ты спросил не против ли я виртуальных функций — я ответил, что не против, когда выполняется LSP. То есть когда мне фиолетово, какой тип у переменной. В случае же со сложением строк и сложением чисел мне важен тип переменной, так как в зависимости от типа операцию надо по-разному использовать (так как у неё разные свойства).
лэт ми спик фром май харт
Re[34]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 14:52
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>А все равно.
А не все. Строка и число не являются subtype/supertype. Ты неправильно применяешь к ним LSP.
Re[35]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 15:08
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>А все равно.
MC>А не все. Строка и число не являются subtype/supertype. Ты неправильно применяешь к ним LSP.

Зато у них есть общая операция '+' и мы вместо строки можем подставить (substitute) число и наоборот. То есть они ведут себя так, как будто у них есть базовый тип, определяющий операцию '+'. Вот тут то как раз LSP и нарушается. Но хорошо, допустим я неправильно применил LSP к строкам и числам. Вернемся назад, ты меня спросил:

Виртуальные функции ты, я погляжу, не очень любишь, да?


Вот тебе такой ответ: я люблю виртуальные функции тогда, когда мне неинтересен конкретный тип переменной. Это автоматически выполняется при соблюдении LSP.
лэт ми спик фром май харт
Re[37]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 15:55
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>Зато у них есть общая операция '+' и мы вместо строки можем подставить (substitute) число и наоборот. То есть они ведут себя так, как будто у них есть базовый тип, определяющий операцию '+'. Вот тут то как раз LSP и нарушается.
MC>Нет, не нарушается. Базовый тип у них — моноид. Пока ты не используешь специфичные для строк или чисел особенности операции "+" — все будет ок.

А если я напишу "a + b — c", то уже не "ок" и LSP идет к черту?

PS.: По поводу виртуальных функций я так понял, возражений нет?
лэт ми спик фром май харт
Re[38]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 15:58
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>А если я напишу "a + b — c", то уже не "ок" и LSP идет к черту?
А в нашем моноиде минуса не было. Только плюс был.
Re[39]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 16:07
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>А если я напишу "a + b — c", то уже не "ок" и LSP идет к черту?
MC>А в нашем моноиде минуса не было. Только плюс был.

И что? Я не имею права такой код написать?
лэт ми спик фром май харт
Re[40]: Странные фичи языков
От: Mr.Cat  
Дата: 26.08.10 16:09
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>И что? Я не имею права такой код написать?
В тюрьму тебя не посадят, но LSP к нему неприменим.
Re[41]: Странные фичи языков
От: mrTwister Россия  
Дата: 26.08.10 18:56
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>И что? Я не имею права такой код написать?
MC>В тюрьму тебя не посадят, но LSP к нему неприменим.

Почему неприменим?
лэт ми спик фром май харт
Re[42]: Странные фичи языков
От: Mr.Cat  
Дата: 27.08.10 07:49
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>Почему неприменим?
Потому что тут используется операция "-", которая определена только для чисел (для дочернего класса).
Re[43]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 27.08.10 08:49
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, mrTwister, Вы писали:

T>>Почему неприменим?
MC>Потому что тут используется операция "-", которая определена только для чисел (для дочернего класса).

Более того, для моноида операция «+» коммутативна только для единичного элемента. Коммутативность сложения чисел так же — свойство дочернего класса.
Re[22]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 27.08.10 10:46
Оценка:
Здравствуйте, Erop, Вы писали:

A>>А почему нет? Это запрещено?

E>Программа немножко плохо предсказуемо работает, а так всё хорошо...

Программа на любом языке «немножко плохо предсказуемо работает», если программист не позаботился почитать документацию по языку.
Re[44]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 27.08.10 13:14
Оценка:
Здравствуйте, mrTwister, Вы писали:

MC>>Потому что тут используется операция "-", которая определена только для чисел (для дочернего класса).

T>Барабанная дробь: javascript:alert('1' + '2' — '3'); => 9
T>P.S.: то, что за кадром работает динамическая типизация — это уже технические детали реализации магии.

То есть мы типа должны забыть в этот момент о динамической типизации, как о неудобном факте? Только тогда этот пример покажет нам, что для строк определена операция вычитания.
Re[44]: Странные фичи языков
От: Mr.Cat  
Дата: 27.08.10 13:39
Оценка:
Здравствуйте, mrTwister, Вы писали:
T>Барабанная дробь: javascript:alert('1' + '2' — '3'); => 9
Ну ок, пусть определена. Но она все равно не входит на наш моноид, который мы считаем суперклассом для чисел и строк.
Re[23]: Странные фичи языков
От: Erop Россия  
Дата: 30.08.10 10:08
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Программа на любом языке «немножко плохо предсказуемо работает», если программист не позаботился почитать документацию по языку.


Тут есть такая проблема, что можно написать функцию, которая суперски работает, но только до той поры, пока в неё не прийдёт строка "12" вместо числа 12...

Приятной и лёгкой тебе отладки!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[25]: Странные фичи языков
От: Eugeny__ Украина  
Дата: 31.08.10 08:35
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, Erop, Вы писали:


A>>>Программа на любом языке «немножко плохо предсказуемо работает», если программист не позаботился почитать документацию по языку.

E>>Тут есть такая проблема, что можно написать функцию, которая суперски работает, но только до той поры, пока в неё не прийдёт строка "12" вместо числа 12...

A>На любом языке «можно написать функцию, которая суперски работает, но только до той поры, пока в неё не придёт» что-то неожиданное, если программист не позаботился почитать документацию по языку, пошевелить мозгами, написать юнит-тесты (нужное подчеркнуть, дописать своё).



«Можно написать функцию, которая суперски работает, но только до той поры, пока в неё не придёт что-то неожиданное» даже если программист прочитал все доки, пошевелил мозгами, и обложил все тестами, просто вероятность меньше(это если случайно, специально сделанные случаи называются закладками, и за них принято бить по рукам). Мир не совершенен, увы.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[26]: Странные фичи языков
От: anonymous Россия http://denis.ibaev.name/
Дата: 31.08.10 08:46
Оценка:
Здравствуйте, Eugeny__, Вы писали:

A>>На любом языке «можно написать функцию, которая суперски работает, но только до той поры, пока в неё не придёт» что-то неожиданное, если программист не позаботился почитать документацию по языку, пошевелить мозгами, написать юнит-тесты (нужное подчеркнуть, дописать своё).

E__>«Можно написать функцию, которая суперски работает, но только до той поры, пока в неё не придёт что-то неожиданное» даже если программист прочитал все доки, пошевелил мозгами, и обложил все тестами, просто вероятность меньше(это если случайно, специально сделанные случаи называются закладками, и за них принято бить по рукам). Мир не совершенен, увы.

Кто же спорит? Но как в этом виноват язык программирования?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.