- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
class Greeter {
static var prefix = 'Hello,';
static greet(name) {
print('$prefix $name');
}
}
main() {
var greeter = new Greeter();
greeter.greet("govnokod!");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+119
class Greeter {
static var prefix = 'Hello,';
static greet(name) {
print('$prefix $name');
}
}
main() {
var greeter = new Greeter();
greeter.greet("govnokod!");
}
Решил потыкать в Dart (http://www.dartlang.org/), а он мне:
greeter.greet$named is not a function
p.s.
> "статические методы относятся к классу"
а объект относится к классу, следовательно статические методы относятся и к объекту :)
Не понимаю, зачем алехуй такую фразу обронил, а еще больше не понимаю, почему его плюсанули.
Статические члены-данные хранятся в единственном числе и к ним имеют доступ все экземпляры класса.
Тоже самое и в случае с методами(хотя и обычные методы тоже хранятся в единственном числе каждый).
Просто статические методы будут иметь доступ только к статическим членам-данным класса. К ним же как и в случае со статическими данными имеют доступ все экземпляры класса.
И вообще, что это за язык? Похож на выкидыш какой-то.
Вроде, как пока работает через трансляцию дарта в JS.(пишу на Dart ООПэшно, транслирую в JS и заливаю на сай)
я разве спорю? очень похоже на Java с небольшой примесью функциональщины
это я про Dart.
Scala dramatically отличается от Java
Синтаксис роли не играет, но если уж решили специально мимикрировать под жаву — значит думают, что это поможет. Удачи.
в каком месте?
>слишком большой и тяжёлый рантайм
Никто не мешает использовать сабсет только с тем, что нужно для веба. Имхо, на пару мегабайт наскребётся. Алсо, у меня папка с Фаерфоксом весит 35 мб, а Хром так и вовсе генерит кеш на гигабайты. Не так уж критично.
>большой хвост совместимости с ошибками прошлого.
да в любом языке есть какая-нибудь ебанутая хуйня-изъян, но это не значит же, что каждый год нужно изобретать новый велосипед.
>Статически типизированная (мешает быстрому прототипированию)
дык а кто мешает впендюрить туда слой DLR?
Тут они явно переизобретают велосипед, ява-апплеты, флеш, Сильверлайт и прочие RIA давно уже существуют, вот их бы взять лучше за основы "убивцы Яваскрипта", чем клепать очередной язык
Семантика не должна сильно зависеть от того, указаны ли типы явно, иначе никто не будет их указывать, чтобы не «сломать». Если делать всё в динамике, почистить рантайм, избавится от груза прошлого — как раз и придём к обычному «скриптовому» языку. От Java только внешнее, синтаксис (чтобы привлечь понятно кого). Можно было бы сделать синтаксис похожим на Питон, Паскаль или Лисп — в самом языке это ничего не меняет.
От JavaScript (и других «скриптовых» языков) есть серьёзные отличия — неизменяемые классы. Класс не изменяется после определения и класс объекта не изменяется после его создания. Это позволит немного уменьшить расход памяти на JIT или делать его более агрессивно.
Щас браузерные приложения всё сложнее и сложнее, и я не понимаю, почему надо цепляться за прототипность/динамичность (то бишь "груз прошлого"), а не идти в сторону статики, которая, как известно, более scalable.
Гугл мог бы хоть Haskell в свой браузер засунуть. Но кто им будет пользоваться?
А вот 99% веба написано на PHP. Потому, что низкий порог вхождения, потому, что можно «быстро и грязно». И JavaScript лезет уже на десктопы, планшеты, смартфоны.
я :)
Да, какая-то доля процента веба на Java пишется.
Компилировать Java в Dart будет немного эффективнее. Хотя я бы предпочёл вообще стандартную абстрактную виртуальную машину — и пиши на чём хошь.
Ну мы говорим о гипотетической революции. А то так тоже можно сказать, "кто использует Дарт?"
>Гугл мог бы хоть Haskell в свой браузер засунуть. Но кто им будет пользоваться?
Передёргивание.
>А вот 99% веба написано на PHP
Ну мы как бы говорим про клиентскую сторону.
>Потому, что низкий порог вхождения, потому, что можно «быстро и грязно».
Да хуйня всё это, на том же сишарпе индусы с удовольствием ваяют код (который хотя бы в 9000 раз быстрее). Просто так исторически сложилось. Говнохуйня не равно "низкий порог вхождения".
У Гугла может и нашлось бы достаточно вундеркиндов, чтобы переписать все свои веб-приложения хоть на Go, но о среднем уровне программистов они справедливо невысокого мнения. То, что синтаксис Dart намеренно маскируется под Java, говорит о том, что они, наверное, считают целевую аудиторию достаточно тупой, чтобы пугаться незнакомых ключевых слов и с пеной у рта спорить о преимуществе разного типа скобочек. А так у них уже есть толпа со стороны, пишущая для Андроида, осилят и Dart. Говнокод там или нет, главное, чтобы писали и продавали.
Другой вариант — авторы языка сами такие. Но это слишком печальный вариант.
Dart проще и Java, и JavaScript. Теоретически продуктивнее JavaScript. То, что надо. По крайней мере, на это надеются.
Имхо, ява-апплеты просто обгоняли своё время, тогда был web 1.0 и особо сложных скриптов не требовалось
+ они слишком поторопились и выпустили медленную интерпретируемую версию, а встречают по одёжке...
>даже Microsoft бросает .NET ради HTML5.
Это так только в Metro IE10 для тач-устройств, там причины какие-то другие (любые плагины запрещены, хрен знает почему), мне кажется чисто технические. В IE10 для десктопа всё ОК.
Накаркаете ведь так тонны быдлокода на ХаскеллСкрипте :-)