Куча говна / Говнокод #8151 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
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

Запостил: rat4 rat4, (Updated )

Комментарии (39) RSS

  • Естественно. Ведь статические методы относятся к классу, а не к объекту.
    Ответить
    • однако, во многих подобных языках можно вызывать статический метод и через объект

      p.s.
      > "статические методы относятся к классу"
      а объект относится к классу, следовательно статические методы относятся и к объекту 🙂
      Ответить
      • Конечно, можно.
        Не понимаю, зачем алехуй такую фразу обронил, а еще больше не понимаю, почему его плюсанули.
        Статические члены-данные хранятся в единственном числе и к ним имеют доступ все экземпляры класса.
        Тоже самое и в случае с методами(хотя и обычные методы тоже хранятся в единственном числе каждый).
        Просто статические методы будут иметь доступ только к статическим членам-данным класса. К ним же как и в случае со статическими данными имеют доступ все экземпляры класса.
        Ответить
  • У метода greet() static зачем?
    И вообще, что это за язык? Похож на выкидыш какой-то.
    Ответить
    • Похоже на С#, но не скомпилится
      static string prefix = 'Hello,';
      ...
      static void greet(name)
      Ответить
    • Что-то вроде попытки превратить JavaScript в C#. Ну чтоб удобненько.
      Вроде, как пока работает через трансляцию дарта в JS.(пишу на Dart ООПэшно, транслирую в JS и заливаю на сай)
      Ответить
            • На Java, Pizza, Haskell, Erlang, Standard ML, C#, Objective Caml, Smalltalk, Scheme 😛

              я разве спорю? очень похоже на Java с небольшой примесью функциональщины
              Ответить
              • > очень похоже на Java с небольшой примесью функциональщины
                это я про Dart.
                Scala dramatically отличается от Java
                Ответить
                • Да понятно. Внешне это немного улучшенная Java (плюс сахар, который в Java появится только через пару версий, если вообще появится, минус статичность и ошибки прошлого), внутри — тот же JavaScript (только от некоторых ошибок дизайна избавились).
                  Ответить
          • Статически типизированная (мешает быстрому прототипированию), низкоуровневая, слишком большой и тяжёлый рантайм, большой хвост совместимости с ошибками прошлого.

            Синтаксис роли не играет, но если уж решили специально мимикрировать под жаву — значит думают, что это поможет. Удачи.
            Ответить
            • >низкоуровневая
              в каком месте?

              >слишком большой и тяжёлый рантайм
              Никто не мешает использовать сабсет только с тем, что нужно для веба. Имхо, на пару мегабайт наскребётся. Алсо, у меня папка с Фаерфоксом весит 35 мб, а Хром так и вовсе генерит кеш на гигабайты. Не так уж критично.

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

              >Статически типизированная (мешает быстрому прототипированию)
              дык а кто мешает впендюрить туда слой DLR?

              Тут они явно переизобретают велосипед, ява-апплеты, флеш, Сильверлайт и прочие RIA давно уже существуют, вот их бы взять лучше за основы "убивцы Яваскрипта", чем клепать очередной язык
              Ответить
              • Примитивы: 4 вида целых (не считая BigInteger), 2 вида нецелых (не считая BigDecimal), char, да ещё и ссылочные пары к ним. Это нужно для эффективного отображения на команды процессора, но при программировании простой логики только мешает — нужно помнить о переполнении, приведении. Лучше иметь дело с абстрактным целым, а сколько там байт внутри — забота компилятора, лишь бы хватило. Копеечная экономия на char и float тут тоже не нужна. Массивы неизменяемого размера — тоже низкоуровневая оптимизация.

                Семантика не должна сильно зависеть от того, указаны ли типы явно, иначе никто не будет их указывать, чтобы не «сломать». Если делать всё в динамике, почистить рантайм, избавится от груза прошлого — как раз и придём к обычному «скриптовому» языку. От Java только внешнее, синтаксис (чтобы привлечь понятно кого). Можно было бы сделать синтаксис похожим на Питон, Паскаль или Лисп — в самом языке это ничего не меняет.

                От JavaScript (и других «скриптовых» языков) есть серьёзные отличия — неизменяемые классы. Класс не изменяется после определения и класс объекта не изменяется после его создания. Это позволит немного уменьшить расход памяти на JIT или делать его более агрессивно.
                Ответить
                • Дешёвые прототипные языки были хороши, когда Вася делал свою хоумпагу в 90ых и хотел удивить друзей, особо не заморачиваясь.

                  Щас браузерные приложения всё сложнее и сложнее, и я не понимаю, почему надо цепляться за прототипность/динамичность (то бишь "груз прошлого"), а не идти в сторону статики, которая, как известно, более scalable.
                  Ответить
                  • Статические языки есть. Кто их использует в вебе?

                    Гугл мог бы хоть Haskell в свой браузер засунуть. Но кто им будет пользоваться?

                    А вот 99% веба написано на PHP. Потому, что низкий порог вхождения, потому, что можно «быстро и грязно». И JavaScript лезет уже на десктопы, планшеты, смартфоны.
                    Ответить
                      • … и чукча даже видел этого человека.

                        Да, какая-то доля процента веба на Java пишется.
                        Ответить
                          • Во-первых, это только для тех, кто пишет что-то действительно большое и сразу. Во-вторых — оверхед. Медленнее Java, медленнее JavaScript. Для небольших проектов особенно.

                            Компилировать Java в Dart будет немного эффективнее. Хотя я бы предпочёл вообще стандартную абстрактную виртуальную машину — и пиши на чём хошь.
                            Ответить
                    • >Статические языки есть. Кто их использует в вебе?
                      Ну мы говорим о гипотетической революции. А то так тоже можно сказать, "кто использует Дарт?"

                      >Гугл мог бы хоть Haskell в свой браузер засунуть. Но кто им будет пользоваться?
                      Передёргивание.

                      >А вот 99% веба написано на PHP
                      Ну мы как бы говорим про клиентскую сторону.

                      >Потому, что низкий порог вхождения, потому, что можно «быстро и грязно».
                      Да хуйня всё это, на том же сишарпе индусы с удовольствием ваяют код (который хотя бы в 9000 раз быстрее). Просто так исторически сложилось. Говнохуйня не равно "низкий порог вхождения".
                      Ответить
                      • У Java было негипотетических полтора десятилетия. У машинонезависимого языка, рассчитанного на выполнение недоверенного кода, при этом с богатой библиотекой и на порядок лучшей, чем у «скриптовых» языков производительностью. На апплеты Java остались экзотикой. А пародия на Java, JavaScript, лезет уже повсюду, даже Microsoft бросает .NET ради HTML5.

                        У Гугла может и нашлось бы достаточно вундеркиндов, чтобы переписать все свои веб-приложения хоть на Go, но о среднем уровне программистов они справедливо невысокого мнения. То, что синтаксис Dart намеренно маскируется под Java, говорит о том, что они, наверное, считают целевую аудиторию достаточно тупой, чтобы пугаться незнакомых ключевых слов и с пеной у рта спорить о преимуществе разного типа скобочек. А так у них уже есть толпа со стороны, пишущая для Андроида, осилят и Dart. Говнокод там или нет, главное, чтобы писали и продавали.

                        Другой вариант — авторы языка сами такие. Но это слишком печальный вариант.

                        Dart проще и Java, и JavaScript. Теоретически продуктивнее JavaScript. То, что надо. По крайней мере, на это надеются.
                        Ответить
                        • >На апплеты Java остались экзотикой
                          Имхо, ява-апплеты просто обгоняли своё время, тогда был web 1.0 и особо сложных скриптов не требовалось
                          + они слишком поторопились и выпустили медленную интерпретируемую версию, а встречают по одёжке...

                          >даже Microsoft бросает .NET ради HTML5.
                          Это так только в Metro IE10 для тач-устройств, там причины какие-то другие (любые плагины запрещены, хрен знает почему), мне кажется чисто технические. В IE10 для десктопа всё ОК.
                          Ответить
                    • > Гугл мог бы хоть Haskell в свой браузер засунуть.
                      Накаркаете ведь так тонны быдлокода на ХаскеллСкрипте 🙂
                      Ответить
          • Если бы Google решил использовать Java в качестве нового языка для браузера, я бы усомнился в дееспособности руководства/инженеров. Их бы сразу послали.
            Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8