JS и его "недостатки"
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.123] |
|
|
Правила раздела:
| Страницы: (66) « Первая ... 30 31 [32] 33 34 ... 65 66 ( Перейти к последнему сообщению ) |
JS и его "недостатки"
|
Сообщ.
#466
,
|
|
|
|
Хочется процитировать одного из разработчиков V8 - я лучше всё равно не скажу
![]() Цитата Вячеслав Егоров it's JavaScript > null == undefined true чем больше я узнаю о семантике JS, тем чаще мне хочется послать Терминатора в прошлое... |
|
Сообщ.
#467
,
|
|
|
|
ну как-то читать сложновато... ИМХО конечно же...
|
|
Сообщ.
#468
,
|
|
|
|
Цитата fatalist @ а лисп вам читать не сложновато? а кто-то трудностей не испытывает...ну как-то читать сложновато... ИМХО конечно же... Эта, js мощная вещь спору нет, кто сомневается, с тем и спорить не о чем. Мы например в местах где надо было как-то кастомизировать алгоритмы расчета, именно его и взяли за основу. Сейчас пользователи с волдырями на коленках. |
|
Сообщ.
#469
,
|
|
|
|
Цитата SPM @ Эта, js мощная вещь спору нет, кто сомневается, с тем и спорить не о чем. Мы например в местах где надо было как-то кастомизировать алгоритмы расчета, именно его и взяли за основу. А почему, например не Lua? |
|
Сообщ.
#470
,
|
|
|
|
Цитата Мяут-Настоящий @ Вопрос конечно интересный. А почему, например не Lua? ![]() Да просто потому что js попроще, все-таки это обычные пользователи, и формулы там простые. Они какието макросы в ексели писали, правда на бейсике. но мы отстояли js. Ну и с системой он уже идет, а луа еще доставлять надо. Нам еще понадобилось эти скрипты выполнять вот так: Выполнить jscript из Сохраненной процедуры.. Вощем, показалось, что так проще всем будет. |
|
Сообщ.
#471
,
|
|
|
|
Цитата SPM @ Ну я к тому, что если там будет около 10 свойств и несколько методов уж очень много = и остального... ну если привыкнуть, то пофиг конечно...а лисп вам читать не сложновато? а кто-то трудностей не испытывает... А ЛИСП не смотрел... |
|
Сообщ.
#472
,
|
|
|
|
Цитата Uncle_Bob @ По-тебе гораздо прикольнее как в WinAPI, когда последним параметром передается DWORD dwReserved, куда уже 10 лет от версии к версии МСДН настоятельно рекомендует передавать 0? ![]() Нет. Поясни. Кстати, о WinAPI вообще крайне тяжело сказать что-то хорошее... Добавлено Цитата fatalist @ Зато в других языках я не смогу написать ![]() ![]() var myobject = { prop: { prop1: 'property' }, method : function(a) { this.prop.prop1 = a; } } Можешь. Добавлено Цитата Uncle_Bob @ У меня есть стойкое ощущение, что большая часть сторонников недостатков имеет смутное представление о том, для чего именно применяется js Отсюда и стремление притянуть за уши фичи к недостаткам. Допустим. Значит тебе не составит труда продемонстрировать пользу от этих фич? |
|
Сообщ.
#473
,
|
|
|
|
Цитата D_KEY @ Допустим. Значит тебе не составит труда продемонстрировать пользу от этих фич? Шо, опять? |
|
Сообщ.
#474
,
|
|
|
|
Цитата Астарот @ Цитата D_KEY @ Допустим. Значит тебе не составит труда продемонстрировать пользу от этих фич? Шо, опять? ![]() А разве не на все твои примеры было показано, как это сделать в рамках строгой типизации? |
|
Сообщ.
#475
,
|
|
|
|
Цитата D_KEY @ А разве не на все твои примеры было показано, как это сделать в рамках строгой типизации? И что? Можно, отлично - js только при чем? У тебя можно, у меня можно - либо и там и там это хорошо и востребованно, либо и там и там богомерзкая ересь. А у тебя почему-то в одном случае хорошо, а в другом - наоборот |
|
Сообщ.
#476
,
|
|
|
|
Цитата Астарот @ И что? Можно, отлично - js только при чем? У тебя можно, у меня можно - либо и там и там это хорошо и востребованно, либо и там и там богомерзкая ересь. А у тебя почему-то в одном случае хорошо, а в другом - наоборот ![]() Так. То есть тебе не ясны преимущества строгой типизации(не путаем ни с явной, ни со статической), явного указания неочевидных вещей, самодокументируемости и дополнительного контроля ошибок со стороны интерпретатора? И при всем при этом, приводимые тобой задачи решаются столь же легко, как и в js... Кстати, есть ли какая-нибудь литература о дизайне языка js, где было бы описано, что, зачем и почему? |
|
Сообщ.
#477
,
|
|
|
|
Цитата D_KEY @ То есть тебе не ясны преимущества строгой типизации Которая нахрен не нужна в области в которой применяют js. Цитата D_KEY @ явного указания неочевидных вещей Эти вещи почему-то неочевидны только для тебя. Мне все очевидно. Цитата D_KEY @ самодокументируемости ...которую ты не продемонстрировал. Цитата D_KEY @ и дополнительного контроля ошибок Которые ошибки только потому, что ты постановил "это ошибка", не постановил бы - не было бы ошибки Цитата D_KEY @ И при всем при этом, приводимые тобой задачи решаются столь же легко, как и в js... Только почему-то используют js, а не что-то еще ![]() Цитата D_KEY @ Кстати, есть ли какая-нибудь литература о дизайне языка js, где было бы описано, что, зачем и почему? Ищи, найдешь - поделись. |
|
Сообщ.
#478
,
|
|
|
|
Цитата Астарот @ Цитата D_KEY @ То есть тебе не ясны преимущества строгой типизации Которая нахрен не нужна в области в которой применяют js. Она нужна во всех областях, ибо не накладывает ограничений, а лишь предотвращает ряд ошибок. Цитата Эти вещи почему-то неочевидны только для тебя. Мне все очевидно. То, что функция, примающая два аргумента, может/не может работать с другим их количеством никак не отражено в ее описании - нужно разбираться в ее коде. Цитата Цитата D_KEY @ самодокументируемости ...которую ты не продемонстрировал. В функции всегда прописано, сколько аргументов она принимает, какие значения по умолчанию использует для аргументов, и может ли она обработать дополнительные аргументы в любом количестве. Цитата Которые ошибки только потому, что ты постановил "это ошибка", не постановил бы - не было бы ошибки Я вроде бы просил показать пример, где вызов функции с большим числом аргументов, чем она обрабатывает, не является ошибкой с точки зрения логики, т.е. принесет какую-то пользу, не запутает читателя кода, не введет в заблуждение клиента и пр. Цитата Только почему-то используют js, а не что-то еще Исторически сложилось |
|
Сообщ.
#479
,
|
|
|
|
Цитата D_KEY @ Она нужна во всех областях, ибо не накладывает ограничений, а лишь предотвращает ряд ошибок. Ну, конечно не накладывает Ограничения в виде типа не накладывают ограничений Цитата D_KEY @ То, что функция, примающая два аргумента, может/не может работать с другим их количеством никак не отражено в ее описании - нужно разбираться в ее коде. Снова-здорова? Изначально тебе не нравилось, что функцию можно вызвать с любым количеством аргументов. На многочисленные просьбы показать где реально будет мешать отбрасывание лишнего ты так и не привел ни кусочка кода. А теперь, понимаешь ли, тебя не устраивает "ее описание" о котором речи вообще не шло Цитата D_KEY @ В функции всегда прописано, сколько аргументов она принимает, какие значения по умолчанию использует для аргументов, и может ли она обработать дополнительные аргументы в любом количестве. Во-первых в js никто не мешает тебе точно так же описать сколько аргументов она принимает. Ну никто - пиши себе function (a,b) и не парься. Что, не описал? Значения по умолчанию - да, не прописываются прям тут же. Хочешь считать это недостатком - на здоровье, но я тебе привел и преимущество, которое из этого следует - значения по умолчанию могут быть сложнее чем элементарные значения, и если ты такое поведение реализуешь у себя у тебя точно так же не наглядно будут null'ы в определении функции. Хрен редьки не слаще. Цитата D_KEY @ Я вроде бы просил показать пример, где вызов функции с большим числом аргументов, чем она обрабатывает, не является ошибкой с точки зрения логики, т.е. принесет какую-то пользу, не запутает читателя кода, не введет в заблуждение клиента и пр. Я тебе уже сказал - ты попросил странного. Хотя на крайняк представь функцию возвращающую сумму аргументов - любого количества. Объявлена может быть function f(), а вызвана f(1,2,3,4,5). Да, и мне класть кучу на твои рассуждения о том, что "это не наглядно" - твое f(*args), или как там, не наглядно в такой же степени. Цитата D_KEY @ Исторически сложилось ![]() Хороший отмаз. |
|
Сообщ.
#480
,
|
|
|
|
Цитата Астарот @ Ну, конечно не накладывает Ограничения в виде типа не накладывают ограничений ![]() Ограничений на разработку - не накладывает. Можешь привести пример, если не согласен. Цитата Во-первых в js никто не мешает тебе точно так же описать сколько аргументов она принимает. Ну никто - пиши себе function (a,b) и не парься. Что, не описал? Нет, я описал функцию, которая принимает любое количество параметров. Цитата значения по умолчанию могут быть сложнее чем элементарные значения, и если ты такое поведение реализуешь у себя у тебя точно так же не наглядно будут null'ы в определении функции. Нет, они у меня будут наглядными: f(a = null, b = null) Цитата Хотя на крайняк представь функцию возвращающую сумму аргументов - любого количества. Объявлена может быть function f(), а вызвана f(1,2,3,4,5). Да, и мне класть кучу на твои рассуждения о том, что "это не наглядно" - твое f(*args), или как там, не наглядно в такой же степени. Такая функция обрабатывает все свои аргументы, сколько бы ты не передал. С этим юзкейсом я согласен. И он реализуем и через явное указание. Так ты согласен, что передача в функцию большего/меньшего числа аргументов, чем она обрабатывает, является ошибкой? |