1.1, Ordu (ok), 18:45, 16/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> "pub global activate my_cool_app", после чего для его запуска достаточно выполнить
> my_cool_app, вместо "dart bin/my_cool_app.dart".
А в чём фишка? "pub global activate" делает
export PATH="'pwd':$PATH"; ln -s bin/my_cool_app.dart my_cool_app
Так что ли?
| |
1.2, manster (ok), 18:48, 16/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Это что, надо будет веб серверу раздавать для хрома *.dart ? А разработчикам писать костыли для js и dart? Что-то не похоже на гугл подобное поведение.
| |
|
2.6, Пиони (?), 19:32, 16/10/2014 [^] [^^] [^^^] [ответить]
| +6 +/– |
Сейчас клиент пишется на JS, сервер на чём только не пишут. Когда на клиенте и сервере нужно иметь одни либы и интерфейсы, приходится их дублировать сразу на 2-х языках - это время и деньги. Node.js частично решает эту проблему, принося на сервер JS
Dart - попытка решить эту проблему, попутно решив вопрос с резким снижением производительности JS в больших приложениях, и предоставив привычный синтаксис с обратной совместимость с JS
Моё сугубо личное мнение - у Dart есть все шансы захватить мир, и гугл проделал отличную работу
| |
|
3.15, Аноним (-), 21:36, 16/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
>обратной совместимость с JS
Какая к черту обратная совместимость. Каждый if JS-а надо проверять, что там на самом деле тестировалось и переделывать:
if (x) {
// code
}
Что подразумевалось: x, x!=null, x!=0, x!="" ?. А может все это вместе? Эти фишки JS-а конечно полный маразм, но какая тут совместимость.
Динамики нет, нельзя динамически порождать классы (прототипы), varargs ф-ций нет (для класс-мемберов можно запинать), eval-а нет, продолжать?
| |
|
4.23, uhbyujdibr (?), 22:59, 16/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
не пиши ересь про JavaScript :)
сначала выучи его, может тогда сможешь что-то умное из себя выдавить
| |
4.31, funny_falcon (?), 06:46, 17/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
› Динамики нет, нельзя динамически порождать классы (прототипы), varargs ф-ций нет (для класс-мемберов можно запинать), eval-а нет, продолжать?
Перечислять преимущества? Да, продолжайте.
Выше перечисленные особенности языка могут быть удобны в написании прототипа, я не спорю. Но чем больше команда, и чем чаще приходится прибегать к отделке, тем вреднее они становятся.
Например, я уверен, что php держится за счёт того, что указанные особенности хотя и возможны, но не удобны, и к ним прибегает не каждый школьник, а лишь съевший собаку.
| |
|
|
|
1.4, Аноним (-), 19:25, 16/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Обеспечение быстрого запуска и высокой производительности для всех современных web-браузеров и различных типов окружений, от портативных устройств до ...
Konqueror, elinks, opera mini for j2me... Неужели везде будет работать?
| |
|
2.28, Crazy Alex (ok), 01:41, 17/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
При всей полезности elinks временами - что из этого является современным браузером? А так - всё, что вменяемо умеет JS - сумеет и оттранслированный в него Dart.
| |
|
1.5, Devider (ok), 19:30, 16/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +8 +/– |
А я согласен. Язык в котором
"2" + "2" -> "22",
"2" - 2 -> 0,
"2"-+-"2" -> 4
надо закопать как можно быстрее и глубже.
| |
|
2.7, Феня (?), 19:49, 16/10/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
И почему же?
1. Конкатенация строк, тут всё обычно
2. Операция '-' для Строки и Числа. Для строк она не определена, но определена для чисел, и первый операнд недвусмысленно преобразовывается в число
3. Опущены скобки, +- выступают как последовательная пара унарных операторов, из-за чего второй последний операнд превращается в число
Что именно вам не нравится?
| |
|
3.10, angra (ok), 20:46, 16/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
А чему равно a+b, если a=b="2"? А как насчет сравнений?
Операции для строк должны быть определены отдельно, а не угадываться транслятором. У программиста должен быть способ однозначно указать требуемое действие.
| |
|
4.18, Xasd (ok), 21:59, 16/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Операции для строк должны быть определены отдельно, а не угадываться транслятором.
> У программиста должен быть способ однозначно указать требуемое действие.
var a_int = parseInt(a) // где a равно 2 или "2"
var b_int = parseInt(b) // где b равно 2 или "2"
a_int + b_int // результат: 4 .. и при этом мы точно знаем что работаем с числами (или с NaN)
(a | 0) + (b | 0) // тоже самое, результат: 4 .. но хак, и выглядит не совсем красиво.. (не может быть NaN)
a.toString() + b.toString() // результат: "22" .. у каждого объекта есть метод .toString() , даже у строки
всё довльно однозначно и ясно, на мой взгляд.. хотя быть может и слишком длинные конструкции
| |
|
5.26, angra (ok), 23:49, 16/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Ну сравни
a.b против a.toString()+b.toString()
a+b против a.parseFloat()+b.parseFloat()
a le b против a.toString() <= b.toString()
a <= b против a.parseFloat() <= b.parseFloat()
Зачем на каждую операцию сложения или сравнения делать отдельно вызовы parseFloat() и toString(), если можно просто указать это самим оператором? Что делать с человеческой ленью(а это приводит к багам) и читабельностью кода? Причем заметь, что в первом случае неоднозначно писать просто не получится, а во втором возможность сохраняется и ей будут пользоваться.
| |
|
6.32, funny_falcon (?), 06:56, 17/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
А зачем на одну по смыслу операцию пара операторов? Я про сравнение. Отдельная конкатенация удобна. Кстати, ею можно соединить два массива? Нет. А есть оператор сравнения массивов? по элементно... Как, тоже нет?
Беда не в том, что + можно применить и к числам и к строкам (и к массивам, в боллее лучших языках), а в том, что можно применить к строке и числу одновременно, и интерпретатор не ругнется.
| |
|
7.44, Xasd (ok), 17:11, 17/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> и интерпретатор не ругнется.
ну уж приучите себя как-нибудь не делать детские ошибки.. :)
что я тут ещё могу сказать -- да, Javascript это серъёзный язык, который требует внимания для того чтобы не выстрелить себе в ногу.
в реальности -- почти не существует ситуаций при которых одна и таже кустомарная функция будет принимать из одного и того же источника -- то строки то числа..
например -- на этом форуме:
document.querySelector('input[name="words"]').value // всегда будет иметь тип "строка", а не число.
| |
|
8.46, Vkni (ok), 23:14, 17/10/2014 [^] [^^] [^^^] [ответить] | +/– |  Зачем заниматься отлавливанием этих детских ошибок , если это может делать комп... текст свёрнут, показать | |
|
7.45, Vkni (ok), 23:10, 17/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> том, что можно применить к строке и числу одновременно, и интерпретатор
> не ругнется.
Эта проблема давно решена в современных функциональных языках (откуда и дерут всё). При этом код этими "string_of_int", "int_of_string" особо не раздувается. Т.е. полиморфизм операторов со статической типизацией вполне себе живёт и здравствует.
| |
|
|
|
|
|
4.24, uhbyujdibr (?), 23:06, 16/10/2014 [^] [^^] [^^^] [ответить]
| –3 +/– |
это не интуитивность виновата, а просто существуют люди которые не могут научиться программировать, и дальше голого изучения синтаксиса двинуться не могут
| |
|
5.25, Devider (ok), 23:32, 16/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не знаю, при чем тут эти люди, но если операции + и - ведут себя принципиально по разному, это как-то странно. Большинство ЯП себе такого не позволяют, за исключением случаев, когда поведение пожно переопределить.
| |
|
|
3.14, Devider (ok), 20:59, 16/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Виноват, кавычки забыл во втором примере:
"2" + "2" равно "22".
"2" - "2" равно 0.
| |
|
4.27, Аноним (-), 00:00, 17/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> "2" + "2" равно "22".
> "2" - "2" равно 0.
Гугл крут.... Oo
| |
|
3.20, Vkni (ok), 22:06, 16/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> 1. Конкатенация строк, тут всё обычно
^
> 2. Операция '-' для Строки и Числа. Для строк она не определена,
> но определена для чисел, и первый операнд недвусмысленно преобразовывается в число
Зачем?
let z = 2 + (int_of_string "2")
> Что именно вам не нравится?
Неявные преобразования типов.
| |
|
2.39, Диванный Специалист (?), 11:23, 17/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Вы так, батенька, можете добрую половину языков программирования, используемых сегодня, на свалку истории отправить.
| |
2.43, Kodir (ok), 13:49, 17/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
+1! (это плюсадин, а не конкатенация :) )
Вот поэтому в языке Ди есть операция ~ (тильда) - она и только она может использоваться для соединения строк.
| |
|
1.11, Tav (ok), 20:48, 16/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.
Очередной язык, созданный быть привычным (ориентация на популярность у быдлокодеров), а не быть лучше.
| |
|
2.29, Crazy Alex (ok), 01:46, 17/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
Для того, чтобы быть лучше нужно, чтобы было то, лучше чего надо быть. А в вебе сейчас один единственный совершенно нечеловеческий (хотя местами забавный) JS. И то, что гугл пытается протянуть что-то, что может называться промышленным языком - логично и правильно. разумеется, правильнее была бы какая-нибудь VM или гвоздями прибитый NaCl, чтобы вообще выбор языка не ограничивать, но это уже другой разговор как и то, что HTML5 DOM для написания приложений малопригоден - слишком много возможностей и их комбинаций.
| |
|
3.38, Tav (ok), 11:02, 17/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Есть масса языков, которые компилируются в JS, и на JS давно уже пора смотреть как на стандартное промежуточное представление и развивать его именно в этом направлении (asm.js — пример такого развития). И среди этих языков есть весьма достойные примеры, которые в разной степени позволяют абстрагироваться от HTML5 и DOM.
Пара наиболее, на мой взгляд, интересных проектов:
Функциональный реактивный Elm: http://elm-lang.org/
Объектно-ориентированный Amber Smalltalk с характерной для Смолтока интерактивной средой: http://amber-lang.net/
А Дарт как язык ничего интересного из себя не представляет, очередная попытка Гугла усилить свой контроль над вебом, породив кучу сайтов, которые работают вроде как везде, но в Хроме лучше.
| |
|
4.41, Crazy Alex (ok), 13:36, 17/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Индустриальный вебовский язык и не должен что-то особенное из себя представлять. Он должен быть понятен, предсказуем, минимизировать количество ошибок программиста, быть удобным для освоения существующей массой специалистов и давать вохможность писать как для клиента, так и для сервера. И если готовые джависты и дотнетчики могут на него сравнительно легко перейти - то это жирный плюс с точки зрения бизнеса. И нет, нет "массы языков". Есть кофескрипт, дарт и тайпскрипт. У всего остального нет никакой токовой поддержки. Учитывая, что кофескрипт - это красивая обертка над JS, не дающая дополнительной строгости - толку с него в плане написания серьезных приложений мало.
А что за любовь объявлять JS "стандартным промежуточным представлением" - не пойму. Костыль же. Если уж хотеть промежуточное представление - то надо нормальную виртуальную машину. Об asm.js вообще не говорю - костыль в квадрате, особенно по сравнению с NaCl.
| |
|
|
|
1.16, Аноним (-), 21:40, 16/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Теперь разработчикам Оперы надо для солидности запилить принципиально новый ЯП
| |
|
2.21, Аноним (-), 22:29, 16/10/2014 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Теперь разработчикам Оперы надо для солидности запилить принципиально новый ЯП
Так нет больше никакой оперы и разработчиков. Есть проприетарная шкурка для гуглохрома, которая почему-то называется оперой.
| |
|
|
2.30, Crazy Alex (ok), 01:47, 17/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Логично - стабилизация. Чем быстрее перетсанут язык крутить тем больше шансов его таки запулить в продакшн.
| |
|
3.33, Аноним (-), 07:47, 17/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Логично - стабилизация. Чем быстрее перетсанут язык крутить тем больше шансов его
> таки запулить в продакшн.
Язык где сложение и вычитание работает по разному надо не в продакшн а в гроб.
| |
|
|
1.34, Тупой молодец (ok), 09:31, 17/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>производительность выполнения близкую к компилируемым в машинный код языкам
все так говорят, только вот близкая она у единиц, и то только на синтетических тестах
| |
1.37, другой Аноним (?), 10:13, 17/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
>>Dart Editor requires Java version 6 or higher..
Раз уже есть стэндалон версия Dart VM написали бы Editor на том же Dart.
Мозилла в своё время привнесла JS в веб, сейчас большой шанс есть у Гугла привнести Dart с помощью его Хрома и Андроида.
Если производительность у Дарта будет заметно выше чем у JS и будет фоллбэк онлайн перекомпиляция в случае если не поддерживается Дарт (через дополнения в Мозилле и Хром для старых версий), то взлетит.
| |
|