Здравствуйте, Ночной Смотрящий, Вы писали:
K>>Нет, реально оказалось, что они не сделали ни того, ни другого. Я бы понял, если бы они сделали дженерики полностью компайл-тайм, как шаблоны в С++, со всеми их возможностями, но в итоге вышло что-то вообще непонятное.
НС>Во во. Шиза конкретная. Либо дженерики компилируемые, и тогда всем понятно откуда ограничения. Либо они в compile time специализируются
Они в компайл-тайм проверяются. Это всё-таки лучше, чем ничего.
Гораздо удобнее писать
MyStruct s = coll.get(i)
// чем
MyStruct s = (MyStruct)coll.get(i)
НС>и тогда за каких фигом там констрейнты — одному богу известно.
Испугались зайти в дебри видимо.
Откуда же его [независимый суд] взять, если в нем такие же как мы? (c) VladD2
Здравствуйте, ins-omnia, Вы писали:
IO>Они в компайл-тайм проверяются.
Это нафик не нужно. Констрейнты в CLR, к примеру, ввели не столько для проверки, сколько для возможности компиляции дженериков. В результате дженерик в CLR — first class citizen. А вот в джаве дженерики на правах бедных родственников.
Здравствуйте, Аноним, Вы писали:
А>Я думаю, что с приходом Java 8 c# потеряет практически все свои преимущества.
точно! выходит джава, и шарп сразу теряет все свои преимущества, и скатывается до 1.0.
компайлер отказывается компилировать, ведь вышла джава 8. А>Кто что думает?
ящитаю, что вброс так себе. А>Мне кажется, что дотнету никогда не стать лидирующей платформой. Никак не выстрелит.
бедный, уже 10 лет не может выстрелить.
у меня винда стоит уже года два, а джава так и не установлена. понимаешь, я попсу не хаваю. все ставят джаву сразу после установки винды, а я из принципа не ставлю.
, только вот до их обсуждения обычно дойти не успеваем
Думаешь кому-то это интересно? Воевать-то куда веселее Тем более с дремучими жабниками, которые про дотнет слышали тока на ЛОРе лет 10 назад, но при этом выставляют себя мегаэкспертами
У меня прошлый контракт был в конторе, где бэкэнд был на жабе, а фронтенд — на дотнете. Эх, слышал бы ты наши священные войны во время тимбилдинга Самые злобные местные тролли — просто дети малые по сравнению с тем, что было там
Здравствуйте, xRAZORx, Вы писали:
RAZ>Потому что тут все пишут про сахар, а я написал, что важнее не сладкий синтаксис, а технологии, разрабатываемые на языке, а тут дотнет явно не фаворит.
"технологии, разрабатываемые на языке" — made my day
Итак, хотели map-reduce на C#? Полчите — Dryad, RavenDB, может что еще, я не слежу.
Вообще, сравнивать языки по таким вещам — довольно глупая затея. В таких разработках как hadoop, проблема вовсе не в языке и не в реализации на том или ином языке(объем кода zookeeper вроде не превышает 10KLOC). Да и вообще, принципы, на которых построен hadoop, стали известны благодаря Лесли Лампорту(AFAIK, работавшему в microsoft research), больше двадцати лет назад и были использованы в огромном количестве проектов, на самых разных языках
Здравствуйте, Lazin, Вы писали:
L>Итак, хотели map-reduce на C#? Полчите — Dryad, RavenDB, может что еще, я не слежу.
И что, этим кто-то пользуется, кроме самих разработчиков и фанатов дотнета?
L>Вообще, сравнивать языки по таким вещам — довольно глупая затея. В таких разработках как hadoop, проблема вовсе не в языке и не в реализации на том или ином языке(объем кода zookeeper вроде не превышает 10KLOC). Да и вообще, принципы, на которых построен hadoop, стали известны благодаря Лесли Лампорту(AFAIK, работавшему в microsoft research), больше двадцати лет назад и были использованы в огромном количестве проектов, на самых разных языках
Проблема не в языке, но с жабой таких примеров тысячи, а у дотнета за 10 лет как-то тухло.
Разница в них в том, что на жабе много либ пишут и потом используют совместно с другими языками, а дотнет такая "вещь в себе".
На жабе пишутся и сервера и иде, а дотнет используется некоторой прослой для с++ кода, что сервера, что иде там все на плюсах, только иногда шарповый интерфейс. Так и на какой фиг нужен этот дотнет, если работодатели предпочитают жабу?
Здравствуйте, Аноним, Вы писали:
А>Я думаю, что с приходом Java 8 c# потеряет практически все свои преимущества.
В 8-ой яве наконец то добавили возможность указывать параметры по умолчанию? Помню после С++ & C# эта фича явы стала для меня откровением))) А>Кто что думает?
кто вообще не думает. А>Мне кажется, что дотнету никогда не стать лидирующей платформой. Никак не выстрелит.
а моей бабушке казалось что телевизор — "ящик дьявола". Ничего, так, теперь нравиться смотреть "как люди живут".
K>У меня прошлый контракт был в конторе, где бэкэнд был на жабе, а фронтенд — на дотнете. Эх, слышал бы ты наши священные войны во время тимбилдинга Самые злобные местные тролли — просто дети малые по сравнению с тем, что было там
Старнно, у нас дотнетчики и жависты прекрасно уживаются.
ЗЫ больше всего ножи точат друг на друга — тестеры и админы. Но без крайностей.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, xRAZORx, Вы писали:
RAZ>Здравствуйте, Lazin, Вы писали:
L>>Итак, хотели map-reduce на C#? Полчите — Dryad, RavenDB, может что еще, я не слежу.
RAZ>И что, этим кто-то пользуется, кроме самих разработчиков и фанатов дотнета?
RavenDB вполне себе пользуются, про Dryad я уже давно ничего не слышал.
RAZ>Проблема не в языке, но с жабой таких примеров тысячи, а у дотнета за 10 лет как-то тухло. RAZ>Разница в них в том, что на жабе много либ пишут и потом используют совместно с другими языками, а дотнет такая "вещь в себе". RAZ>На жабе пишутся и сервера и иде, а дотнет используется некоторой прослой для с++ кода, что сервера, что иде там все на плюсах, только иногда шарповый интерфейс. Так и на какой фиг нужен этот дотнет, если работодатели предпочитают жабу?
Я бы не сказал что тухло. Если вначале либы для дотнета были просто портами java библиотек и фреймверков(вроде NHibernate и log4net), то теперь их вытесняют самобытные проекты, появившиеся под .NET и от которых не попахивает этой вашей джавой. Я бы не сказал, что .NET всегда используется как "прослой", просто такие проекты, как visual studio живут очень долго и содержат в себе массу унаследованного кода. Мало того, .NET часто используется в связке с плюсами потому, что это очень просто, это дает очевидные преимущества, например возможность использовать C++/CLI и с легкостью смешивать нативный и управляемый код. P/Invoke это тоже очень просто и удобно. Интегрировать управляемый код в существующий проект на плюсах — просто, поэтому много проектов, использующих такую связку.
Здравствуйте, koandrew, Вы писали:
K>А, ну тогда ясно. Я просто как-то привык к подходу МСа, когда от объявления фичи до её появления в продакшене проходят месяцы, а не годы
Здравствуйте, hi_octane, Вы писали:
_>А с async/await всё хуже. Хоть await и можно на всё что реализует IAwaitable, но роспись в конечный автомат делает жёсткий хардкод на System.Threading.Tasks, и никаких средств для исправления ситуации нету
Точно так же линк делает "жесткий хардкод" на Expression.Create. Только это нифига не проблема — и Expression, и Task — штуки весьма абстрактные и реализации почти не содержащие. Как их интерпретировать — дело конкретного провайдера.
НС>Точно так же линк делает "жесткий хардкод" на Expression.Create. Только это нифига не проблема — и Expression, и Task — штуки весьма абстрактные и реализации почти не содержащие. Как их интерпретировать — дело конкретного провайдера.
Тоже косяк. Любая завязка на статику это косяк, уж создатели фреймворка должны бы это понимать. Но Task ещё злее — подхватывает "текущий" контекст старта и сразу запускается. Хоть бы аттрибут на метод дали повесить что стартовать не надо, ёлы-палы. Чёт в случае с Expression им ума хватило не запускать его сразу после создания в провайдере с дефолтовой ConnectionString, например. И через Expression всякими хитростями можно дополнительную информацию просунуть, а с Task и в этом плане беда.
Здравствуйте, Lazin, Вы писали:
L>RavenDB вполне себе пользуются, про Dryad я уже давно ничего не слышал.
Зачем приводить то, что заведомо никем не используемо, а значит мертво? Или для галочки, что типа есть?
L>visual studio живут очень долго и содержат в себе массу унаследованного кода.
Какие продукты МС полностью написаны на дотнете? К примеру, блэнд на дотнете?
L>Мало того, .NET часто используется в связке с плюсами потому, что это очень просто, это дает очевидные преимущества, например возможность использовать C++/CLI и с легкостью смешивать нативный и управляемый код. P/Invoke это тоже очень просто и удобно. Интегрировать управляемый код в существующий проект на плюсах -просто, поэтому много проектов, использующих такую связку.
Если их просто смешивать, тогда не проще писать сразу на плюсах?
Здравствуйте, xRAZORx, Вы писали:
RAZ>Зачем приводить то, что заведомо никем не используемо, а значит мертво? Или для галочки, что типа есть?
Ну я какбэ не слежу, что вспомнил, то и назвал. RavenDB, кстати, вполне себе живой и активно развивается.
RAZ>Какие продукты МС полностью написаны на дотнете? К примеру, блэнд на дотнете?
Честно скажу что не знаю, откуда я знаю какие там у MS продукты и на чем они написаны
RAZ>Если их просто смешивать, тогда не проще писать сразу на плюсах?
Чем же проще? Любой код проще писать на дотнетике и поддерживать потом тоже проще. Просто одно дело, когда у тебя весь проект на шарпе, начальство может быть сложно убедить в том, что это ничем не аукнется в будущем. Ну, например, проект не упрется по производительности в низкое качество генерируемого JIT-компилятором кода или паузы GC. Во всех проектах на C#, в которых я участвовал, всегда рассчитывали на то, что любую критичную к производительности подсистему, можно будет переписать на С++. В общем, мой поинт в том, что шарп очень хорошо может интероп, поэтому постоянно используется в связке с плюсами.
А по поводу библиотек, могу лишь частично согласится с твоей точкой зрения. В принципе, под .NET есть почти все что угодно. Вот я, например, однажды не смог найти библиотеку, умеющую group membership, что-то типа JGroups или Appia. Но с другой стороны, покажи мне хороший GUI framework для java, ну или удобный интероп