Re[5]: Что-то явно не так
От: koodeer  
Дата: 08.02.13 12:17
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>P.S. сравнивать со Scala не корректно, так как она реально используется, в отличие от.


Дело в том, что Java уныла настолько, что Scala на её фоне просто блеск! Вот и переходят джависты на Скалу. А Nemerle по сравнению с C# не настолько круче, просто потому, что сам C# намного превосходит Джаву по плюшкам. Если бы C# оставался до сих пор на уровне первой версии, то на Nemerle, F#, Boo обращали бы гораздо больше внимания.
Re[6]: Что-то явно не так
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 08.02.13 12:26
Оценка: 8 (1) +2 -1
Здравствуйте, koodeer, Вы писали:

K>Дело в том, что Java уныла настолько, что Scala на её фоне просто блеск! Вот и переходят джависты на Скалу.


Так унылость Java это один из ее охрененных плюсов, так как даже индусам мешает реально отжечь. А вот коллегу индуса пишущего на Scala я бы реально опасался не меньше чем его же, пишущего на Си

K> А Nemerle по сравнению с C# не настолько круче, просто потому, что сам C# намного превосходит Джаву по плюшкам. Если бы C# оставался до сих пор на уровне первой версии, то на Nemerle, F#, Boo обращали бы гораздо больше внимания.


Воот. о чем я и говорил выше. Не на ту аудиторию нацелились, для очередной опердени вся эта мощь в никуда
Re[5]: Что-то явно не так
От: Ziaw Россия  
Дата: 08.02.13 12:35
Оценка: +2 -1 :)
Здравствуйте, a_g_99, Вы писали:

__>Давайте step by step:

__>Что есть по вашему "хороший вывод типов"?

Например это:
      def f(x) { x.ToString() }
      
      def dict = Dictionary();
      def dict2 = Dictionary();
      
      foreach (i in [1 .. 10])
      {
          dict.Add(i, f(i));
          dict.Add(i, f);
      }


Типы указывать не надо, компилятор их выведет.
  Аналог на C#
      var f = new Func<int, string>(x => x.ToString());
      
      var dict = Dictionary<int, string>();
      var dict2 = Dictionary<int, Func<int, string>>();
      
      foreach (var i in Enumerable.Range(1, 10))
      {
          dict.Add(i, f(i));
          dict.Add(i, f);
      }


Предвидя возражения — дело не в краткости, дело в отсутствии необходимости зацикливаться на ненужных деталях. Если первый Dictionary я пишу в C# без проблем, то второй уже заставляет на секунду отвлечь мозг деталями, не относящимися к основной задаче. Начинаем усложнять и все становится печальнее.
Re[7]: Что-то явно не так
От: koodeer  
Дата: 08.02.13 13:55
Оценка: 9 (1) +3 :)
Здравствуйте, kaa.python, Вы писали:

KP>Так унылость Java это один из ее охрененных плюсов, так как даже индусам мешает реально отжечь.


С этим никто не спорит. Дубовость Java уменьшает порог вхождения, упрощает поддержку старого кода. Но как только разработчики переходят некий рубеж, сразу начинаются AOP-фреймворки, внешние кодогенераторы и прочее. То есть всё то, что в Nemerle реализовано внутри, в других языках приходится делать сторонними утилитами/плагинами. Индус с AOP не менее страшен, чем индус со Scala.
Re[2]: Что-то явно не так
От: IT Россия linq2db.com
Дата: 08.02.13 15:16
Оценка: :)))
Здравствуйте, Ziaw, Вы писали:

Z>Тем не менее. Язык так и остался передовым, просто IT переоценил скорость прогресса в отрасли.


IT переоценил смелость и дальновидность советских учёных. Языком нужно было начинать заниматься серьёзно сразу после того как его забросили поляки, т.е. где-то в 2007-м году. Не фиксить бесконечные баги, а писать всё начисто. Понимание этого пришло только пару лет назад и то с большим скрипом. А что-то начало делаться вообще меньше года назад.

Тем не менее самому языку альтернатив нет до сих пор и не будет ещё очень долго. Жаль что упущена куча времени, но шансы ещё есть при условии, что советские учёные всё же окажутся смелыми и дальновидными.
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Что-то явно не так
От: a_g_99 США http://www.hooli.xyz/
Дата: 08.02.13 15:38
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Предвидя возражения — дело не в краткости, дело в отсутствии необходимости зацикливаться на ненужных деталях. Если первый Dictionary я пишу в C# без проблем, то второй уже заставляет на секунду отвлечь мозг деталями, не относящимися к основной задаче. Начинаем усложнять и все становится печальнее.


Я даже не буду возражать — действительно более лаконично и понятно.

Но проблема как я уже заметил не в modern syntax языка, а в наборе киллер-фич как сейчас принято выражаться.
Re[6]: Что-то явно не так
От: Figaro Россия  
Дата: 08.02.13 16:10
Оценка:
База моя RSDN сдохла как-то пару раз за десяток лет... Хотелось бы узнать, когда Немерля была в первый раз упомянута?

Годовщину вспомнить И ху.ву тучу проектов на ней реализованных...
avalon/1.0.432
Re[6]: Что-то явно не так
От: Pavel Dvorkin Россия  
Дата: 08.02.13 16:21
Оценка: -1 :)
Здравствуйте, Ziaw, Вы писали:

Z>Типы указывать не надо, компилятор их выведет.


Выведет, несомненно, только вот что будет, если он выведет несколько не так, как программист предполагает — разумеется, из-за ошибки (или неправильного понимания) программиста ? Компиляцию все это пройдет и аукнется в рантайме, причем может, и не сразу.
With best regards
Pavel Dvorkin
Re[7]: Что-то явно не так
От: Ziaw Россия  
Дата: 08.02.13 16:45
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

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


Не представляю себе такой ситуации. Вообще. То, что компилятор не смог вывести, казалось бы однозначный тип, и ему пришлось где-то подсказать — вполне реально. И то, чаще всего программист ошибся именно в однозначности. Но чтобы компилятор вывел не то, не могу представить.

Разве что детские ошибки, типа размерности целого. Так их и с указанием типов делают точно так же.
Re[8]: Что-то явно не так
От: Pavel Dvorkin Россия  
Дата: 08.02.13 16:47
Оценка:
Здравствуйте, Ziaw, Вы писали:

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


Z>Не представляю себе такой ситуации. Вообще. То, что компилятор не смог вывести, казалось бы однозначный тип, и ему пришлось где-то подсказать — вполне реально. И то, чаще всего программист ошибся именно в однозначности. Но чтобы компилятор вывел не то, не могу представить.


Прочти внимательно, что я написал. Компилятор вывел правильно. Программист предполагал иное. Программист неправ, а не компилятор, но это осталось незамеченным на этапе компиляции и проявилось в рантайме.
With best regards
Pavel Dvorkin
Re: Что-то явно не так
От: Pavel Dvorkin Россия  
Дата: 08.02.13 16:49
Оценка:
Здравствуйте, some_user_222, Вы писали:

__>Спустя 7(!!!) лет все осталось на своих местах. На Nemerle все также написан только компилятор Nemerle, количество вопросов на StackOverflow не превышает полусотни(для Go — 1600, Scala — 13500). Смешно, но сегодняшний тон дифирамбов и оптимистический речей все тот же


Совершенно безотносительно к N могу лишь отметить, что успех или неудача языка определяется далеко не только тем, насколько он хорош или плох, а еще и массой иных факторов.
Ну а применительно к N неудача была вполне очевидна (по крайней мере мне) еще 7 лет назад. Просто я хорошо знаю историю языков программирования.

http://rsdn.ru/forum/philosophy/1016369.1
Автор: Pavel Dvorkin
Дата: 09.02.05
With best regards
Pavel Dvorkin
Re[7]: Что-то явно не так
От: artelk  
Дата: 08.02.13 17:17
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Ziaw, Вы писали:


Z>>Типы указывать не надо, компилятор их выведет.


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


Не исключено, но маловероятно. Гораздо (думаю, на пару порядков) более вероятен такой сценарий: все эти детали и указания типов, чтобы ублажить тупой компилятор, отвлекли от того, что собственно в методе делается, благодаря чему в методе содержится ошибка, которая которая была бы видна сразу, если бы не приходилось напрягать глаза, выискивая логику в нагромождениях избыточного кода.
Re[6]: Что-то явно не так
От: fin_81  
Дата: 08.02.13 17:30
Оценка: 6 (1) +6
Здравствуйте, Ziaw, Вы писали:

__>>Давайте step by step:

__>>Что есть по вашему "хороший вывод типов"?

Z>Например это:

      def f(x) { x.ToString() }
      
      def dict = Dictionary();
      def dict2 = Dictionary();
      
      foreach (i in [1 .. 10])
      {
          dict.Add(i, f(i));
          dict.Add(i, f); // возможно имелось в виду dict2?
      }


Показательная опечатка. И какого типа dict? А какого неиспользуемый dict2? Если компилятор ругнулся, то почему он "такой тупой", что не смог вывести тип? Если — не ругнется, почему он "такой тупой", что пропустил такую баналную ошибку?
Re[9]: Что-то явно не так
От: Ziaw Россия  
Дата: 08.02.13 17:32
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Прочти внимательно, что я написал. Компилятор вывел правильно. Программист предполагал иное. Программист неправ, а не компилятор, но это осталось незамеченным на этапе компиляции и проявилось в рантайме.


Я внимательно прочел. Повторяю, не могу себе представить. Вон arltek может, мне очень интересен пример или, хотя бы, ход мысли.
Re[7]: Что-то явно не так
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 08.02.13 17:38
Оценка:
Здравствуйте, fin_81, Вы писали:

_>Показательная опечатка.


И, что тоже показательно, компилятор её поймал бы.
Ce n'est que pour vous dire ce que je vous dis.
Re[7]: Что-то явно не так
От: Ziaw Россия  
Дата: 08.02.13 17:42
Оценка: -1
Здравствуйте, fin_81, Вы писали:

_>
_>      def f(x) { x.ToString() }
      
_>      def dict = Dictionary();
_>      def dict2 = Dictionary();
      
_>      foreach (i in [1 .. 10])
_>      {
_>          dict.Add(i, f(i));
_>          dict.Add(i, f); // возможно имелось в виду dict2?
_>      }
_>


_>Показательная опечатка. И какого типа dict? А какого неиспользуемый dict2? Если компилятор ругнулся, то почему он "такой тупой", что не смог вывести тип? Если — не ругнется, почему он "такой тупой", что пропустил такую баналную ошибку?


Не показательная. Указание типа от нее не избавит. Компилятор не сможет вывести типы и ругнется. В C# мы так же поймаем ошибку компиляции, только там нам для этого придется полностью указать типы.
Re[8]: Что-то явно не так
От: fin_81  
Дата: 08.02.13 17:47
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>Здравствуйте, fin_81, Вы писали:


_>>Показательная опечатка.


DR>И, что тоже показательно, компилятор её поймал бы.


А если это не опечатка? Если так и было задумано. [ dict2 = Dictionary() ] это просто забытый и не используемый код. А значения из dict будут использоваться в зависимости от типа: или дергаться функция или использоваться значение.
Re[8]: Что-то явно не так
От: fin_81  
Дата: 08.02.13 17:51
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Не показательная. Указание типа от нее не избавит. Компилятор не сможет вывести типы и ругнется. В C# мы так же поймаем ошибку компиляции, только там нам для этого придется полностью указать типы.


псевдокод
dict = new Dictionary[Variant[int, int->int]]

неужели немерле не сможет вывести такой тип?
  Скрытый текст
Плохой компилятор! не нужен!
Re[2]: Что-то явно не так
От: IT Россия linq2db.com
Дата: 08.02.13 18:15
Оценка: 38 (1) +2 :)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Ну а применительно к N неудача была вполне очевидна (по крайней мере мне) еще 7 лет назад. Просто я хорошо знаю историю языков программирования.


При чём тут история? Историю всегда делали конкретные люди. А конкретные люди на сегодняшний день полностью отсекли комьюнити от разработки компилятора и молчат как партизаны о своих (не) успехах. Может у них там всё очень хорошо. А может и не очень. Но нам это не известно. Если бы они рассказывали чего они достигли на сегодняшний день, то этого топика вообще бы не было, а все бы дружно истекали слюной, говорили ВАУ и поторапливали разработчиков.
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: Что-то явно не так
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 08.02.13 18:17
Оценка:
Здравствуйте, fin_81, Вы писали:

_>А если это не опечатка? Если так и было задумано. [ dict2 = Dictionary() ] это просто забытый и не используемый код. А значения из dict будут использоваться в зависимости от типа: или дергаться функция или использоваться значение.


Если так и было задумано, то придётся явно указать, что тип значения — object. Это иногда требуется, но редко.
Ce n'est que pour vous dire ce que je vous dis.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.