Re[4]: JS - очень простой язык
От: StandAlone  
Дата: 21.03.17 19:15
Оценка:
Здравствуйте, fmiracle, Вы писали:

F> Кажется, прямо копия из какой-то статьи в инете.

F> Кажется


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


О да, дорогие мои маленькие любители наркотиков! Мы тут все еще говорим про JS
*кот_ржет.гиф*
Re[4]: JS - очень простой язык
От: rFLY  
Дата: 21.03.17 19:30
Оценка:
Здравствуйте, fmiracle, Вы писали:

F>Это про промисы.

Понятно, не сталкивался. Поэтому из спора самовыпиливаюсь. Решил, что это самописный метод и даже в голову не пришло, что при всем желании его нельзя было бы назвать зарезервированым словом.
Все, поплыл, уже языки путать начал ) Пойду лучше спать
Отредактировано 21.03.2017 19:32 rFLY . Предыдущая версия .
Re[5]: JS - очень простой язык
От: neFormal Россия  
Дата: 21.03.17 20:41
Оценка:
Здравствуйте, anonymous, Вы писали:

A>>>map передаёт в колбек 3 параметра, parseInt принимает два, из которых второй — основание системы счисления. Итого:

F>>спасибо, я в курсе этих нюансов кривого языка.
A>Тогда не понятно, что эти примеры должны были продемонстрировать.

продемонстрировать то, как простые, очевидные и общепринятые вещи можно сделать через жопу ещё проще и очевидней.
...coding for chaos...
Re[6]: JS - очень простой язык
От: anonymous Россия http://denis.ibaev.name/
Дата: 21.03.17 21:28
Оценка:
Здравствуйте, neFormal, Вы писали:

A>>Тогда не понятно, что эти примеры должны были продемонстрировать.

F>продемонстрировать то, как простые, очевидные и общепринятые вещи можно сделать через жопу ещё проще и очевидней.

А можно определение этих «простых, очевидных и общепринятых вещей» с подтверждающими ссылками?
Re[3]: JS - очень простой язык
От: vdimas Россия  
Дата: 21.03.17 22:14
Оценка: +1
Здравствуйте, IID, Вы писали:

IID>std::unique_ptr<ColorARGB [] > renderBuffer(new ColorARGB[gifIn->SWidth * gifIn->SHeight]);


А зачем тут массив выделяется по new?
Дичь какая-то.

Ага:
/jni/GifTranscoder.cpp

Всё ясно, все свободны. ))
В плюсовом коде никто так не делает.
А если надо было выделить буфер байт для отправки в Джаву, то выделять надо было через сишные malloc/free, бо класс unique_ptr позволяет задавать свой deleter:
template<class T, class Deleter = std::default_delete<T>> 
class unique_ptr;


=============
А вообще да, меня в С++ раздражают некоторые вещи, унаследованные из С. Вот как раз автоматическое приведение массива к указателю на первый его элемент.
Re[3]: JS - очень простой язык
От: Evgeny.Panasyuk Россия  
Дата: 21.03.17 22:34
Оценка: +2
Здравствуйте, IID, Вы писали:

IID>С++

IID>std::unique_ptr<ColorARGB [] > renderBuffer(new ColorARGB[gifIn->SWidth * gifIn->SHeight]);
IID>забыли выделенное

Ошибка в том что использовали new, да ещё и неумеючи, вместо например std::make_unique, std::vector или вовсе image/view.
Ошибка в том что не протестировали — valgrind выдал бы mismatched delete на первом же прогоне
Re[5]: JS - очень простой язык
От: Somescout  
Дата: 22.03.17 02:42
Оценка:
Здравствуйте, anonymous, Вы писали:

A>>>map передаёт в колбек 3 параметра, parseInt принимает два, из которых второй — основание системы счисления. Итого:

F>>спасибо, я в курсе этих нюансов кривого языка.

A>Тогда не понятно, что эти примеры должны были продемонстрировать.


Как бы сказать: без документации понять почему так происходит не просто. То есть когда о такое уже спотыкался, всё понятно, но в первый раз(ы) — WTF?
По-хорошему, при нормальном дизайне языка такие грабли должны быть очевидны — либо map должна требовать точного количества аргументов у функции, либо аргументы должны передаваться явно, что-то вроде такого:
array.Map( (value,index) => ParseInt(value,index) );


А js ради экономии нескольких символов позволяет создать подобную ситуацию.
ARI ARI ARI... Arrivederci!
Re[6]: JS - очень простой язык
От: TK Лес кывт.рф
Дата: 22.03.17 05:26
Оценка:
Здравствуйте, Somescout, Вы писали:

S>По-хорошему, при нормальном дизайне языка такие грабли должны быть очевидны — либо map должна требовать точного количества аргументов у функции, либо аргументы должны передаваться явно, что-то вроде такого:


С чего это вдруг? Если функции нужен первый параметр, то какой смысл перечислять все остальные если оно все равно не используется?
Можно считать, что в общем виде любая функция принимает на вход бесконечное число параметров. просто, не все они значимые.

S>
S>array.Map( (value,index) => ParseInt(value,index) );
S>

S>А js ради экономии нескольких символов позволяет создать подобную ситуацию.

так исходную проблему то не решили... тогда уж надо требовать точного соответствия имен аргументов у функции
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[6]: JS - очень простой язык
От: anonymous Россия http://denis.ibaev.name/
Дата: 22.03.17 06:04
Оценка: 3 (1) +1 -1
Здравствуйте, Somescout, Вы писали:

A>>Тогда не понятно, что эти примеры должны были продемонстрировать.

S>Как бы сказать: без документации понять почему так происходит не просто.

Это странный аргумент из разряда «настоящие программисты не читают мануалы».

S>По-хорошему, при нормальном дизайне языка такие грабли должны быть очевидны — либо map должна требовать точного количества аргументов у функции, либо аргументы должны передаваться явно, что-то вроде такого:

S>
S>array.Map( (value,index) => ParseInt(value,index) );
S>

S>А js ради экономии нескольких символов позволяет создать подобную ситуацию.

Не вижу, как в языке без сигнатур функций реализовать требование точного количества аргументов. В JS вообще любая функция, в которую ты передаёшь функцию, может вызвать её с любым количеством параметров — к этому надо быть готовым. Это как динамическая типизация — нужно следить самому за тем, что ты делаешь, хотя можно встать в позу и заявить, что «ради экономии пары символов» не ввели статическую.

Правильный путь для приведённого выше примера не отличается от того, что предложил ты:
array.map(function (e) { return parseInt(e) });

а для продвинутых можно и так:
[1, 2, 3].map(Number);
Re[7]: JS - очень простой язык
От: neFormal Россия  
Дата: 22.03.17 06:20
Оценка:
Здравствуйте, anonymous, Вы писали:

A>>>Тогда не понятно, что эти примеры должны были продемонстрировать.

F>>продемонстрировать то, как простые, очевидные и общепринятые вещи можно сделать через жопу ещё проще и очевидней.
A>А можно определение этих «простых, очевидных и общепринятых вещей» с подтверждающими ссылками?

выбирай:
http://zvon.org/other/haskell/Outputprelude/map_f.html
https://docs.python.org/2/library/functions.html#map
http://maximomussini.com/posts/ruby-to_proc/
https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node90.html
...coding for chaos...
Re[8]: JS - очень простой язык
От: anonymous Россия http://denis.ibaev.name/
Дата: 22.03.17 06:28
Оценка:
Здравствуйте, neFormal, Вы писали:

A>>А можно определение этих «простых, очевидных и общепринятых вещей» с подтверждающими ссылками?

F>выбирай:
F>http://zvon.org/other/haskell/Outputprelude/map_f.html
F>https://docs.python.org/2/library/functions.html#map
F>http://maximomussini.com/posts/ruby-to_proc/
F>https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node90.html

Почему это вдруг стало «простыми, очевидными и общепринятыми вещами»? Я просил определение, ссылки на исследования. Пока я вижу «мне так привычнее и переучиваться не желаю».
Re[9]: JS - очень простой язык
От: neFormal Россия  
Дата: 22.03.17 07:23
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Почему это вдруг стало «простыми, очевидными и общепринятыми вещами»? Я просил определение, ссылки на исследования.


выбирай:
https://ru.wiktionary.org/wiki/%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9
https://ru.wiktionary.org/wiki/%D0%BE%D1%87%D0%B5%D0%B2%D0%B8%D0%B4%D0%BD%D1%8B%D0%B9
https://ru.wiktionary.org/wiki/%D0%BE%D0%B1%D1%89%D0%B5%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D1%82%D1%8B%D0%B9

A>Пока я вижу «мне так привычнее и переучиваться не желаю».


зачем переучиваться на ущербный язык, который создаёт проблемы там, где у других их нет?
и я не говорил про привычку, я говорил про общепринятые подходы. и подтвердил ссылками.
пока что от тебя кроме "почитайте мануал про то, как это делать вприсядку, но не подпрыгивая" ничего другого не было.
...coding for chaos...
Re[10]: JS - очень простой язык
От: anonymous Россия http://denis.ibaev.name/
Дата: 22.03.17 08:19
Оценка:
Здравствуйте, neFormal, Вы писали:

A>>Почему это вдруг стало «простыми, очевидными и общепринятыми вещами»? Я просил определение, ссылки на исследования.

F>выбирай:
F>https://ru.wiktionary.org/wiki/%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9
F>https://ru.wiktionary.org/wiki/%D0%BE%D1%87%D0%B5%D0%B2%D0%B8%D0%B4%D0%BD%D1%8B%D0%B9
F>https://ru.wiktionary.org/wiki/%D0%BE%D0%B1%D1%89%D0%B5%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D1%82%D1%8B%D0%B9

Я так и думал.

A>>Пока я вижу «мне так привычнее и переучиваться не желаю».

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

Не переучивайся, тебя не заставляют. Но и не ной тогда.

F>и я не говорил про привычку, я говорил про общепринятые подходы. и подтвердил ссылками.


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

F>пока что от тебя кроме "почитайте мануал про то, как это делать вприсядку, но не подпрыгивая" ничего другого не было.


Я ничего такого не писал. Это ты почему-то решил, что аналогичный используемым в других языках способ array.map(function (e) { return parseInt(e) }) — это приседания и подпрыгивания.
Re[11]: JS - очень простой язык
От: neFormal Россия  
Дата: 22.03.17 08:55
Оценка:
Здравствуйте, anonymous, Вы писали:

A>>>Пока я вижу «мне так привычнее и переучиваться не желаю».

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

ооо, в интернете кто-то объявил монополию на посты и запрещает мне говорить правду!

F>>и я не говорил про привычку, я говорил про общепринятые подходы. и подтвердил ссылками.

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

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

F>>пока что от тебя кроме "почитайте мануал про то, как это делать вприсядку, но не подпрыгивая" ничего другого не было.

A>Я ничего такого не писал.

ну да, конечно:

Это странный аргумент из разряда «настоящие программисты не читают мануалы».

http://rsdn.org/forum/flame.comp/6732658.1
Автор: anonymous
Дата: 22.03.17


скажи теперь, что твои слова неправильно поняли.

A>Это ты почему-то решил, что аналогичный используемым в других языках способ array.map(function (e) { return parseInt(e) }) — это приседания и подпрыгивания.


это не аналогично исходному примеру.
ты бы ещё циклы привёл в качестве примера. в результате делают же то же самое.
...coding for chaos...
Re: JS - очень простой язык
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 22.03.17 09:16
Оценка:
Здравствуйте, StandAlone, Вы писали:

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

SA>Итак, два примера доказательства subj!:

...

SA>Замечательный язык, не правда ли?! простой, выразительный, элегантный и эффективно решающий типичные проблемы.


Ты привел пример проблем динамической типизации вообще + особенности конкретной библиотеки. При чем здесь JavaScript ?
Re[6]: JS - очень простой язык
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 22.03.17 09:19
Оценка:
Здравствуйте, StandAlone, Вы писали:

A>>Тогда не понятно, что эти примеры должны были продемонстрировать.


SA>Я, конечно, не уверен, но могу предположить, что коллега демонстрировал свое восхищение потря


А при чем здесь архитектура JS? динамическая типизация + особенности конкретной библиотеки
Re[12]: JS - очень простой язык
От: anonymous Россия http://denis.ibaev.name/
Дата: 22.03.17 09:47
Оценка:
Здравствуйте, neFormal, Вы писали:

A>>Не переучивайся, тебя не заставляют. Но и не ной тогда.

F>ооо, в интернете кто-то объявил монополию на посты и запрещает мне говорить правду!

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

F>>>и я не говорил про привычку, я говорил про общепринятые подходы. и подтвердил ссылками.

A>>Нет, ты привёл пару ссылок и заявил, что именно это и есть общепринятый подход, без каких либо доказательств.
F>там четыре популярных языка с реализацией map. из них три — динамические. это и называется "общепринятым". определение слова прочитаешь выше по треду.

Давай возьмём первый Haskell и попробуем предать в map в качестве колбека функцию, принимающую 2 аргумента. А потом Perl, и то же самое. Какой вариант развития событий общепринят теперь? Отдельно стоит обсудить, что в некоторых языках несколько реализаций map с разным поведением.

F>>>пока что от тебя кроме "почитайте мануал про то, как это делать вприсядку, но не подпрыгивая" ничего другого не было.

A>>Я ничего такого не писал.
F>Это странный аргумент из разряда «настоящие программисты не читают мануалы».
F>http://rsdn.org/forum/flame.comp/6732658.1
Автор: anonymous
Дата: 22.03.17

F>скажи теперь, что твои слова неправильно поняли.

Нет, их явно в интересах демагогии неправильно представили. Что в мануале написано про приседания и подпрыгивания — твои измышления.

A>>Это ты почему-то решил, что аналогичный используемым в других языках способ array.map(function (e) { return parseInt(e) }) — это приседания и подпрыгивания.

F>это не аналогично исходному примеру. ты бы ещё циклы привёл в качестве примера. в результате делают же то же самое.

Исходный пример вообще неверен. Я говорю о других языках.
Re[7]: JS - очень простой язык
От: neFormal Россия  
Дата: 22.03.17 09:49
Оценка:
Здравствуйте, Ikemefula, Вы писали:

A>>>Тогда не понятно, что эти примеры должны были продемонстрировать.

SA>>Я, конечно, не уверен, но могу предположить, что коллега демонстрировал свое восхищение потря
I>А при чем здесь архитектура JS? динамическая типизация + особенности конкретной библиотеки

а при чём здесь типизация? проблема же в отсутствии проверки количества переданных аргументов. здесь типов нет.
...coding for chaos...
Re[13]: JS - очень простой язык
От: neFormal Россия  
Дата: 22.03.17 09:54
Оценка:
Здравствуйте, anonymous, Вы писали:

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


говорить, что дизайн кривой — это значить "ныть"? интересная интерпретация.
по сути, вместо того, чтобы сделать предсказуемо, авторы выбрали, наверное, худший вариант.

A>Давай возьмём первый Haskell и попробуем предать в map в качестве колбека функцию, принимающую 2 аргумента. А потом Perl, и то же самое. Какой вариант развития событий общепринят теперь? Отдельно стоит обсудить, что в некоторых языках несколько реализаций map с разным поведением.


давай. тащи сюда пример на перле! сравним с другими динамиками

A>Нет, их явно в интересах демагогии неправильно представили. Что в мануале написано про приседания и подпрыгивания — твои измышления.


это объективный факт. потому что можно обойти эту проблему, например, через лямбду. через короткий синтаксис, а не то, что ты приводишь.

A>>>Это ты почему-то решил, что аналогичный используемым в других языках способ array.map(function (e) { return parseInt(e) }) — это приседания и подпрыгивания.

F>>это не аналогично исходному примеру. ты бы ещё циклы привёл в качестве примера. в результате делают же то же самое.
A>Исходный пример вообще неверен. Я говорю о других языках.

меняешь тему? ооок.
...coding for chaos...
Re[14]: JS - очень простой язык
От: anonymous Россия http://denis.ibaev.name/
Дата: 22.03.17 09:59
Оценка:
Здравствуйте, neFormal, Вы писали:

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

F>говорить, что дизайн кривой — это значить "ныть"? интересная интерпретация. по сути, вместо того, чтобы сделать предсказуемо, авторы выбрали, наверное, худший вариант.

Нет, ныть — приводить надуманные примеры и выдавать их фатальные недостатки.

A>>Давай возьмём первый Haskell и попробуем предать в map в качестве колбека функцию, принимающую 2 аргумента. А потом Perl, и то же самое. Какой вариант развития событий общепринят теперь? Отдельно стоит обсудить, что в некоторых языках несколько реализаций map с разным поведением.

F>давай. тащи сюда пример на перле! сравним с другими динамиками

Я тебе предложил уже сравнить две реализации. Как успехи?

A>>Нет, их явно в интересах демагогии неправильно представили. Что в мануале написано про приседания и подпрыгивания — твои измышления.

F>это объективный факт. потому что можно обойти эту проблему, например, через лямбду. через короткий синтаксис, а не то, что ты приводишь.

Я и привёл лямбду.

A>>>>Это ты почему-то решил, что аналогичный используемым в других языках способ array.map(function (e) { return parseInt(e) }) — это приседания и подпрыгивания.

F>>>это не аналогично исходному примеру. ты бы ещё циклы привёл в качестве примера. в результате делают же то же самое.
A>>Исходный пример вообще неверен. Я говорю о других языках.
F>меняешь тему? ооок.

Нет. Тема у нас о том, что в JS есть фатальный недостаток по сравнению с другими языками.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.