Автор Тема: Dart, или могила для JS.  (Прочитано 8968 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Dart, или могила для JS.
« : Сентябрь 16, 2011, 01:51:41 pm »
Наверно уже все слышали, что Google готовит JS уютную могилку. Могильщиком будет Dart (Вейдер? :-) ). Если кто не читал, то вот вот и вот ссылки на материал.

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

Предлагаю подумать, каким будет (или должен быть) Dart, чтобы заменить JS.

По моему мнению, Google опубликует язык который, во-первых будет иметь набор лексем схожий с Си, грамматику будет иметь схожую либо с питоном, либо с js (думаю что оно таки будет ближе к js). Обязательных отступов конечно же не будет.

Типизация будет смешанная - статическая и динамическая. Вообще, семантически он будет наверняка похож на Go, но с бОльшим уклоном в динамику и меньшим вниманием к модульности.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #1 : Сентябрь 16, 2011, 01:58:27 pm »
Ах, да. Конечно же вывода типов (не тривиального) конечно же не будет.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #2 : Сентябрь 16, 2011, 03:08:09 pm »
Предлагаю подумать, каким будет (или должен быть) Dart, чтобы заменить JS.

В порядке важности:
1. Модульность (ну хоть какая-нибудь, блин). Сейчас ситуация даже хуже, чем в C/C++ с его инклудами.
2. Человеческое ООП. Не надо труЪ, простое человеческое ООП:
- Человеческая инкапсуляция. Сейчас делается весьма "витиевато" (а значит на практике не делается).
- Человеческое наследование. Куча велосипедов на эту тему и все равно оно нормально не работает.
- Человеческий "this". Такой как сейчас - лучше бы его вообще не было.
3. Нормальный оператор == (и нах ===). То, что сейчас - это полный пипец. Это "круче", чем правила перегрузки в C++.
4. Нормальные локальные переменные (var вызывает весьма злобные грабли, правда это уже фикснули в новом let), убрать неявные глобальные переменные, короче - см. питон.
4. Синтаксис
- Убрать new (полный пипец).
- Убрать никому ненужые грабли со скобочками и прочими точками с запятой.
- В идеале - см. питон.

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

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #3 : Сентябрь 16, 2011, 08:58:45 pm »
Скобочки и точкисзапятой не убрать, просто потому, что синтаксис должен быть таков, чтобы исходник можно было максимально компактифицировать - то есть записать все в одну строчку без отступов и прочего. Именно поэтому питон as is не пойдет.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #4 : Сентябрь 16, 2011, 09:17:50 pm »
Скобочки и точкисзапятой не убрать, просто потому, что синтаксис должен быть таков, чтобы исходник можно было максимально компактифицировать - то есть записать все в одну строчку без отступов и прочего. Именно поэтому питон as is не пойдет.

В жабаскрипте со скобочками и запятыми свои собственные заморочки приводящие к эффекту разбивания клавиатуры об монитор :) Нету примера под рукой. Из серии "смотришь в код и не понимаешь как он может не работать".

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #5 : Сентябрь 16, 2011, 09:47:08 pm »
Ну значит это поправят. Но скобочки останутся и значимых отступов не будет, либо они будут опциональны.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #6 : Сентябрь 17, 2011, 12:05:46 am »
Ну значит это поправят. Но скобочки останутся и значимых отступов не будет, либо они будут опциональны.

Проблемы "сжатия" скриптов лечатся банальным архивированием (или кодированием этих самых значимых отсутпов).

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #7 : Сентябрь 17, 2011, 01:59:47 pm »
Ты имеешь ввиду сжатие тела http-ответа? Дык это не всегда возможно. Не все сервера это поддерживают и не все клиенты.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #8 : Сентябрь 17, 2011, 07:12:30 pm »
Скобочки и точкисзапятой не убрать, просто потому, что синтаксис должен быть таков, чтобы исходник можно было максимально компактифицировать - то есть записать все в одну строчку без отступов и прочего. Именно поэтому питон as is не пойдет.
В питоне же можно всё в одну строку с помощью {} и ;
?
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #9 : Сентябрь 24, 2011, 12:56:55 pm »
меня). Можно помечтать о статической типизации и т.п. эзотерике в мире скриптов и веба - но масса все равно не поймет (хотя посмотреть на такую попытку было бы очень интересно).
Можно уже не мечтать. Оно уже есть в js. Не за ради надежности, но ради скорости. По тем же причинам это будет и в Dart'e. Dart будет иметь смешанную типизацию - динамическую и статическую.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #10 : Октябрь 10, 2011, 01:43:22 pm »
Его таки представили и описали: http://www.opennet.ru/opennews/art.shtml?num=31991
Можно заценить насколько наши догадки совпали/разошлись с реальностью.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #11 : Октябрь 10, 2011, 01:45:14 pm »
Вот её описалово в принципе:

http://www.dartlang.org/docs/spec/dartLangSpec.pdf
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #12 : Октябрь 10, 2011, 01:47:49 pm »
Да, похоже я был прав по всем или почти по всем пунктам. :-)
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #13 : Апрель 12, 2012, 01:46:31 pm »
Вообще, у меня ощущение, что лучше бы не плодить сущностей и под браузер засунуть Go. Например сделав соответствующий бекенд для компилятора.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Dart, или могила для JS.
« Ответ #14 : Апрель 12, 2012, 03:27:46 pm »
Dart - это испорченный Go, а Go - это испорченный Оберон:)