Здравствуйте, koandrew, Вы писали:
K>Вброс негодный, и опоздавший — дотнет уже давно стал лидирующей платформой, и у вас, как у жабника, данный факт вызывает попоболь, отсюда и топики аналогичные этому
...под виндой.
Здравствуйте, koandrew, Вы писали:
K>Здравствуйте, Steamus, Вы писали:
S>>Ну-да нуда... Объявили фичу и тут же внедрили. Проснулись утром, а всё на планете рухнуло.
K>Как бы жабникам этого не хотелось, но такого с дотнтом не было _ни разу_
Ну разумеется, не было. Что может рухнуть от изменений в малораспространённом в серъёзной среде инструменте?
K>"Год" (один) и "годы" — это совсем разные вещи. По мне так подход МСа куда прагматичнее — придумали фичу, сваяли к ней демку ака CTP, и всё это отдали комьюнити на растерзание — а потом уже по итогам фидбека фичу либо допиливают до продакшена, либо выпиливают обратно... А в мире жабы сначала года 2 тока пишут спеку на фичу, потом ещё года 2 её имплементируют только затем, чтобы выяснить, что результат "не нужен™"
Не ну я согласен. По затягиванию из действующих игроков, Java на гордом втором месте после C++ Что кстати приводит к тому что MS тоже расслабилось и начинает педалить фичи. В прошлые годы что не релиз .NET, то wow-эффект от того сколько всего нового. А .NET 4.5 в плане новинок наверное самый слабый из всех.
Здравствуйте, hi_octane, Вы писали:
_>Не ну я согласен. По затягиванию из действующих игроков, Java на гордом втором месте после C++ Что кстати приводит к тому что MS тоже расслабилось и начинает педалить фичи. В прошлые годы что не релиз .NET, то wow-эффект от того сколько всего нового. А .NET 4.5 в плане новинок наверное самый слабый из всех.
Потому что скоро мелкософт сольёт дотнет, как и все свои "прогрессивные" технологии. В следующем шарпе вообще только рослин намечается, если верить вики.
RAZ>Потому что скоро мелкософт сольёт дотнет, как и все свои "прогрессивные" технологии. В следующем шарпе вообще только рослин намечается, если верить вики.
Ну если конструктивно обсуждать в предложенном стиле, то я обязан ответить — "а в следующей яве досыпят ещё ключей для gc а все фичи перенесут на более следующую ".
Рослин это вообще-то ещё и выход на, хоть и убогое, но метапрограммирование. Кроме того рослин это промежуточный релиз, который делают как раз для того чтобы следующие фичи быстрее выкатывать. Сейчас даже если компилятор что-то умеет, некоторые штуки не пускают в релиз потому что IDE не успевает их полноценно поддержать.
Здравствуйте, hi_octane, Вы писали:
_>Ну если конструктивно обсуждать в предложенном стиле, то я обязан ответить — "а в следующей яве досыпят ещё ключей для gc а все фичи перенесут на более следующую ".
Java всегда была консервативной и часто фичи откладывали и реализовывали только проверенные временем. Так что это в порядке вещей.
_>Рослин это вообще-то ещё и выход на, хоть и убогое, но метапрограммирование. Кроме того рослин это промежуточный релиз, который делают как раз для того чтобы следующие фичи быстрее выкатывать. Сейчас даже если компилятор что-то умеет, некоторые штуки не пускают в релиз потому что IDE не успевает их полноценно поддержать.
Рослин должен был быть в 5, но не "шмогла". Вообще в каком он состоянии находится?
RAZ>Java всегда была консервативной и часто фичи откладывали и реализовывали только проверенные временем. Так что это в порядке вещей.
А можно список фич, которые откладывали, проверяли временем, и таки выкатывали такие чтоб все аж WOW? А то ощущение такое что они их как студенты откладывают, до сессии. А когда наконец выкладывают, народ ругается
RAZ>Рослин должен был быть в 5, но не "шмогла". Вообще в каком он состоянии находится?
Здравствуйте, hi_octane, Вы писали:
_>Ну если конструктивно обсуждать в предложенном стиле, то я обязан ответить — "а в следующей яве досыпят ещё ключей для gc а все фичи перенесут на более следующую ".
Да ладно тебе — я вот уже десяток лет на дотнете пишу, и всё это время жабники грозятся, что МС на нас на всех забьёт и ты ды, и ты пы. Даже здесь они проявляют свой консерватизм — за 10 лет ни одного нового аргумента так и не придумали
А тем временем почему-то забыли, как в версии 1.4 жаба поломала обратную совместимость потому, что разработчики не асилили ввести контекстные ключевики, и как они изгалялись с ключами компилятора "компилить как в 1.3" vs "компилить как 1.4", в то время как новейший компилятор пятого сишарпа без проблем компилирует код, написанный 10 лет назад под первый сишарп, и этот код без проблем работает. Ну и кто после этого надёжней в плане обратной совместимости?
Здравствуйте, xRAZORx, Вы писали:
RAZ>Java всегда была консервативной и часто фичи откладывали и реализовывали только проверенные временем. Так что это в порядке вещей.
Ага, например какие? Кривые дженерики? Или может быть type inference, который вообще очевидно придумали под воздействием каких-то очень сильных веществ, ибо сделали все наоборот — не справа налево, как во всех языках, имеющих эту фичу, а слева направо Или, наконец, параллельные иерархии для элементарных типов, вместо того, чтобы сделать lifted операторы? На жабные замыкания вообще без слёз смотреть нельзя
Вы бы уже определились — или "всё на планете рухнуло", или "малораспространённый в серъёзной среде инструмент"? Одновременно не бывает. Ох, уж эти жабники
Здравствуйте, xRAZORx, Вы писали:
RAZ>Рослин должен был быть в 5, но не "шмогла". Вообще в каком он состоянии находится?
Не, я понимаю что холивар, НЕНАВИСТЬ и всё такое, передёргивать зачем?
стек технологий, которые затрагивает roslyn. Там работы явно не на два года, поэтому выпустить его вместе с vs2012 невозможно в принципе, об этом говорилось начиная с самых первых презентаций.
RAZ>только рослин
Roslyn по сути — это унифицированное api для работы с AST почти на всех уровнях, начиная от редактора кода в IDE и заканчивая хостингом скриптов у себя в приложении. Code rewrite, AOP, рефакторинг, code analysis, script hosting — ещё примеры нужны?
Даже если будет "только" roslyn — нам и его за глаза хватит
Здравствуйте, koandrew, Вы писали:
K>как новейший компилятор пятого сишарпа без проблем компилирует код, написанный 10 лет назад под первый сишарп, и этот код без проблем работает.
Справедливости ради, всякая экзотика связанная с выведением типов/разрешением методов слегка гуляет от релиза к релизу. Вот например, breaking change в c#4
_>>А .NET 4.5 в плане новинок наверное самый слабый из всех. S>Мне это очень напоминает холивары пятилетней давности: "В третьем шарпе только linq и какие-то малопонятные лямбды. Кто их будет использовать?!!"
Ну linq как раз понятный и чуть более продуманный чем async/await получился. linq можно натянуть на всё что угодно, из-за чего выросли linq to sql, linq to entities, linq to xml/dom, linq to regular expressions и ещё Rx немножко. А с async/await всё хуже. Хоть await и можно на всё что реализует IAwaitable, но роспись в конечный автомат делает жёсткий хардкод на System.Threading.Tasks, и никаких средств для исправления ситуации нету
Здравствуйте, hi_octane, Вы писали:
_>Ну linq как раз понятный и чуть более продуманный чем async/await получился.
Ну да, чтобы получился linq, сначала нужны были генерик-версии IEnumerable<T> + синтаксический сахар для порождения новых IEnumerable<T> (yield return).
С await у нас есть сам интерфейс (Task<T>/ICriticalNotifyCompletion/INotifyCompletion), синтаксический сахар для порождения новых async-методов, а вот библиотеки/сахара для их компоновки уровня линка пока не просматривается (RX всё-таки работает с повторяющимися последовательностями).
_>l Хоть await и можно на всё что реализует IAwaitable, но роспись в конечный автомат делает жёсткий хардкод на System.Threading.Tasks, и никаких средств для исправления ситуации нету
Я не сталкивался с необходимостью возвращать что-то кроме Task, из async-метода, так что пока не вижу в этом проблемы. Можно сценарий, когда такой хардкод реально усложняет жизнь?
Здравствуйте, Sinix, Вы писали:
S>Я не сталкивался с необходимостью возвращать что-то кроме Task, из async-метода, так что пока не вижу в этом проблемы. Можно сценарий, когда такой хардкод реально усложняет жизнь?
Какой нафиг сценарий? Ты форумом не ошибся? Здесь люди за идею воюют!
S>Я не сталкивался с необходимостью возвращать что-то кроме Task, из async-метода, так что пока не вижу в этом проблемы. Можно сценарий, когда такой хардкод реально усложняет жизнь?
Есть клиентский код. Ему про существование каких-то ресурсов, шедулеров и прочих и знать-то не положено, всё равно забудут. async/await так и просится. Но async создаёт задачу и сразу делает ей start, никого не спросив. Ресурса нет, всё валится. Решение в лоб — заворачивать в свой await ресурса, а потом вызов клиентского метода обламывается из-за того что мы не знаем запустит клиент задачу для которой нужен ресурс, или запустит другую которой не нужен, а может вообще ничего не запустит.
Или вот захотелось дерево запущенных задач прямо в программе видеть. Казалось бы пишешь свой шедулер, держишь свой список задач, рисуешь асинхронно, какие проблемы. А вот надо ещё имена задач, имена методов внутри задач, и кой-какую статистику по времени работы собрать. Облом — все порождают только Task из AsyncTaskMethodBuilder, инфы 0, даже поля Tag не сделали. Дали бы возможность хотя-бы порождать MyTask, я бы нашёл через что выкрутиться, а так пичалька
Да я же написал — всё Работать с ним тоже самое что сейчас работать с Expression Tree. Завязанность на C# и VB.NET захардкожена. Адская, просто несуразная, многословность даже для простых вещей. Как берёшь пример в руки — полно работы со строковыми именами, типа symbol.Name == что-то, и другими пакостями.
Да по сравнению с тем что было, точнее с тем что ничего не было, — Roslyn это сто процентов шаг вперёд, но такое впечатление что они прямо с нуля изобретают, будто до них и не было ничего. Слепили бы на скорую руку из динамика или expression tree некое подобие квазицитирования, и на порядок более мощная технология получилась бы.