LINUX.ORG.RU

Microsoft открывает исходные коды .NET, а также заявляет о кросплатформенности (включая GNU/Linux)

 , , , ,


10

10

В среду, 12 ноября, корпорация Майкрософт объявила об открытии исходных кодов платформы .NET (в частности, .NET Framework 4.6 будет доступен под лицензией MIT), включая ASP.NET, компилятор, рантайм и др., заявлено о поддержке нескольких платформ, в том числе и линукса.

Кроме того, заявлено о бесплатной версии IDE VIsualStudio, а также о поддержке разработки приложений для iOS, Android.

>>> Подробности



Проверено: maxcom ()
Последнее исправление: CYB3R (всего исправлений: 3)

Ответ на: комментарий от fmdw

Daily reminder что so called «smart» pointers не защищают от утечек

Daily reminder что GC тоже не защищает от утечек, поскольку решение делать ли ссылку слабой всё равно остаётся за человеком.

Begemoth ★★★★★
()
Ответ на: комментарий от Karapuz

где делегаты/евенты?

Зачем нужны делегаты при наличии лямбд и ссылок на методы в Java 8? Зачем нужны события как свойство языка, а не библиотеки при наличии обобщенных типов?

Begemoth ★★★★★
()
Ответ на: комментарий от hibou

Кто плюются? джва года сижу и за уши меня не оттащишь

Karapuz ★★★★★
()
Ответ на: комментарий от Karapuz

Karapuz ★★★★★ паста

Как скажешь, поверю на слово.

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

Мне интересно а зачем они нужны? Серьёзно.

Partial классы созданы для удобной работы с кодогенераторами, когда один файл с частью класса генерируется, а другой пишется ручками. В принципе особо значимых преимуществ перед наследованием тут нет, просто даётся такая возможность.

extension methods в смысле? Если да, то они не нужны, нужны функции вне классов (плюс, возможно, ADL).

Так ведь extension методы это и есть просто функции + ADL. Разве нет?

anonymous
()
Ответ на: комментарий от Karapuz

Java не iPhone

Всего, чего нет в жабе, автоматически объявляется ***, как только это появляется в жабе, это автоматически становится !***. При этом, требуется сделать вид, что *** это называл кто-то другой.

Жава стала идеальной к 7ой версии, Оракл занимается ИБД. От того что в жаве появляются новые фичи они не становятся нужнее, это просто хипсторы (да да в Оракле они тоже работают) лезут своими ручками во всё что плохо лежит.

К счастью в моей ИБМовской криокамере ещё долго будут править бал версии ниже 8ой.

ya-betmen ★★★★★
()
Ответ на: комментарий от anonymous

Так ведь extension методы это и есть просто функции + ADL. Разве нет?

Да, просто попытка впихнуть не ОО идеи в как-бы ОО оболочку выглядит коряво, ИМХО. Мне эстетически не нравятся конструкции вида

public static class Foo 
{ 
  public static ...
}

Begemoth ★★★★★
()
Последнее исправление: Begemoth (всего исправлений: 1)
Ответ на: комментарий от Begemoth

Зачем нужны делегаты при наличии лямбд и ссылок на методы в Java 8?

Делегат в C# - это тип, и называется он своим словом потому что так яснее. Вот интерфейсы, а вот делегаты. Вместо как у Джавы - вот интерфейсы, а вот если у них то-то и то-то, то это уже функциональные интерфейсы и с ними можно делать вот это.

Зачем нужны события как свойство языка, а не библиотеки при наличии обобщенных типов?

Ответ такой же, как и в случае с partial и delegate. Для C# количество ключевых слов не является фетишем. И если есть возможность с помощью ключевого слова чисто решить частую и насущную проблему, то почему нет?

anonymous
()
Ответ на: комментарий от anonymous

И если есть возможность с помощью ключевого слова чисто решить частую и насущную проблему, то почему нет?

Потому что язык должен предоставлять строительные блоки для решения проблем, и чем эти блоки универсальнее тем лучше. Другой пример - async в C# и computation expressions в F#, вторые - это переименованные монады и вместо встроенного в язык решения для одной проблемы, они предоставляют механизм для решения разных.

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

Потому что язык должен предоставлять строительные блоки для решения проблем, и чем эти блоки универсальнее тем лучше.

И что? Разве из C# убрали потоки и примитивы синхронизации? В нём нельзя реализовать свой тип событий работающий с подписчиками через простые интерфейсы? Но опять же если есть реализация которая отлично работает в 95% случаев, то вполне логично её предоставить пользователям языка готовой к использованию и обёрнутую в удобный синтаксис. Про F# я хз что это.

anonymous
()

google.com
.net download
dotNetFx45_Full_setup.exe

Кроссплатформенность я так понимаю будет обеспечивается средствами wine?

anonymous
()
Ответ на: комментарий от anonymous

Потому что в спецификацию дотнета входит только система типов, байткод и базовые библиотеки. Понятно что этого не достаточно для гарантированной компиляции на моно любого мало мальски серьёзного кода.

Для сравнения - а что входит в спецификции java и JVM? Почему .jar-ник будет исполняем на любой платформе и на любой JVM прошедшей «сертификацию»/«тестирование» (не если только конечно он не приявязан к конкретной платформе прямыми вызовами конкретных исполняемых файлов или конкретных .dll/.so-библиотек), а сишарповский код - (вроде как) нет?

а что ещё нужно донету дабы исполняться на всехплатформах? ведь если все «не базщовое», написано на дотнете, собрано в дотнет-байткод, то в конечном счете - всё рано или поздно должно быть раскладываться на те самые базовые типы и базовые библиотеки/базовые_классы.

Но почему .net-байткод не работет под .mono ? <_<

Может быть дело как раз не в том что для компиляции нужны «не-базовые библиотеки», а в полноте и точности описания той самой «инфраструктуры языка» (CLI) которой по идее должна соответствовать .net программа?

потому что если мы собираем машину которая соответсвует спецификации описанию в CLI, копируем (байткод же объявлен кроссплатформенным?) на нашу платформу все не-базовые библиотеки; и в итоге имеем ситуацию когда дотнет-байт-код не работает (или не работают те самые не-базовые библиотеки) - то очевидно что проблема не в дополнительных бибилиотеках, а в том, что описание виртуальной машины - не полное или не точное.

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

Потому что с java - где-бы ты не собрал jar, на какой-бы виртуалке не запустил (если она конечно прошла сертификаци./тестирование) - байт код будет работать.

Denjs
()
Ответ на: комментарий от Denjs

в дополнение к вопросу «почему дотнету срать до джавы как до питера пешком» - а что у дотнета с обратной совместимостью?

интерпрайз он же такой - ему надо что бы все работало!!

сравниваем:

(A) что имеем в JAVA. полная обратная совместимость. до 20% специфиации языка - это костыли (увы но так) которые нужны для того, что бы старый код работал точно так, как он работал раньше. Если вы готовились хотя бы к экзамену «OCA» и разбирали почему и откуда возникли те или иные «нелогичности» - то вы это знаете. В итоге что имеем: если вы написали программу с помошью JDK 1.1 - она будет работать и собираться даже когда выйджет (уже кстати) JDK 1.8. Понимаете? jar собранный в среде разработки WinXP будет работать и сейчас, причем точно так, как он работал 10 лет назад.

(B) Что имеем в .net? практическое отсутствие обратной совместимости. куеву туче версий дот-нет-бибилиотек, причем они не просто могут стоять параллельно - они _должны_ стоять параллельно, потому что если у вас собрана программа под .NET 3.5 то пока вы не поставите ей именно 3.5 - оно работать не будет. Часто не достаточно поставить 4.5 или 4.0.

И с такой херней они(ms) планируют «завоевать интерпрайз» и большие системы? ха)))

Denjs
()
Ответ на: комментарий от Denjs

Для сравнения - а что входит в спецификции java и JVM? Почему .jar-ник будет исполняем на любой платформе и на любой JVM прошедшей «сертификацию»/«тестирование» (не если только конечно он не приявязан к конкретной платформе прямыми вызовами конкретных исполняемых файлов или конкретных .dll/.so-библиотек), а сишарповский код - (вроде как) нет?

Сишарповский кот, не использующий P/Invoke и проч. платформозавизимую хню, исполняется без перекомпиляции.

Но почему .net-байткод не работет под .mono ? <_<

4.2

slackwarrior ★★★★★
()
Ответ на: комментарий от Denjs

В итоге что имеем: если вы написали программу с помошью JDK 1.1 - она будет работать и собираться даже когда выйджет (уже кстати) JDK 1.8. Понимаете?

А WebSphere MQ хочет конкретную версию жабы. Понимаете? :)

slackwarrior ★★★★★
()
Ответ на: комментарий от Denjs

потому что если мы собираем машину которая соответсвует спецификации описанию в CLI, копируем (байткод же объявлен кроссплатформенным?) на нашу платформу все не-базовые библиотеки

И как же вы собираетесь скопировать тот же WPF? Многие библиотеки намертво приколочены к Windows, и даже если если их портировать на другие платформы, многие программы активно используют PInvoke. Так уж сложилась культура работы с дотнетом, по крайнере мере на данный момент. Как будет дальше с учётом новости увидим. Так что мысль которую вы активно толкаете уже несколько постов о неполноте спецификации CLI, просто неверна. Всё дело именно в этом огромном монолитном клубке классов под названием JRE, из которого вы не можете просто вот так выбрать нужные вам классы (это вообще легально?) и поставлять их отдельно с программой, не уповая на установленный в системе рантайм.

что имеем в JAVA. полная обратная совместимость.

Простое гугление показывает, что тут ситуация как с обратной совместимостью Windows адепты которой утверждают, что программа для win95 типа должна идти на восьмёрке без проблем. В обоих случаях реальность несколько менее радужна, и вопрос утановки нескольких версий Джавы на одной машине весьма и весьма актуален.

anonymous
()
Ответ на: комментарий от nanoolinux

оно (паскаль) на z80 конечно был, но не как язык разработки, а для обучения студентов (был даже интерпретатор ассемблера для облегчения отладки, это сейчас понимаю, тогда я идиот писал проги в нём, и думал какой ассемблер тормозной, чуть позже с помощью справочника по процессору z80 вручную скомпилировал, вот удивился когда всё мгновенно заработало)

anonymous
()
Ответ на: комментарий от anonymous

Я могу ошибаться, но вроде даже какой-то лисп был.

nanoolinux ★★★★
()
Ответ на: комментарий от MiniRoboDancer

Какая последняя версия .NET Framework способна установиться и работать на Windows XP без своры предыдущих версий? Такое сейчас вообще возможно? А то приходится сталкиваться с сопровождением пользователей Windows XP, а у них там зоопарк .NET-фреймворков, какие нужны, какие можно снести — точно неизвестно. Да и сноситься некоторые фреймворки отказываются КАТЕГОРИЧЕСКИ.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Тебе сотни мегабайт на клиентской машине жалко?

encyrtid ★★★★★
()
Ответ на: комментарий от iZEN

Ну дык юзеру приходится выполнять роль ПМ — Slackware-way во все поля. Какие нужны, определить довольно просто — снести, попробовать запустить установленный софт, поставить нужное обратно.

последняя версия
без своры предыдущих версий

Такое вообще невозможно. потому что обратная совместимость не сохраняется. Если проге, например, нужен третий фрумжорк — четвёртый его не заменит. Даже если её когда-то начнут сохранять — совместимость со старыми всё равно никто возвращать уже не будет.

Да и сноситься некоторые фреймворки отказываются КАТЕГОРИЧЕСКИ.

Не верю. Это в спермёрке фрумжорк впилили из коробки, на XP его можно вообще не держать. Если не работают деинсталлях просто — выноси руками, что для такого всеобъемлющего софта сложно и чревато, да.

MiniRoboDancer ★☆
()
Ответ на: комментарий от MiniRoboDancer

Не верю. Это в спермёрке фрумжорк впилили из коробки, на XP его можно вообще не держать.

.Net Framework 2.0 SP1 на Windows XP мне удалить не удалось обычным деинсталлом. Только с помощью спецприблуды выковыривается вся ихняя братия.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

А зачем его выпиливать? И так же уже пользуешься этим зондом.

pashazz ★★★★
()
Ответ на: комментарий от umren

Во эт ржака!

Но... Вместо высокобюджетных роликов могли бы просто сделать модульность и устранить тормоза в GUI - очередь стояла бы за жабкой!

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

так gui в жабке нужен только ide писателям, а те кто ими пользуется уже настолько заторможены, что эти тормозов не видят, проблемы нет.

umren ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

а нахрена козе баян простите где гуй на сервере приложений? там и без gуя этого за джабой интерпрайз в очередь выстраивается...

Denjs
()
Последнее исправление: Denjs (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Уже сто лет как. Java FX летает и писать на нём приятно.

migesok
()

Когда уже Путин откроет винду?

Или ещё рано доставать тузы из рукавов?

anonymous
()
Ответ на: комментарий от krekl

у Microsoft слишком плохая репутация, чтобы доверять им, и это уже ничем не исправить (за исключением, разве что, выпуска всех своих продуктов (включая Windows) под (A)GPL, наверное).

Ну все, сейчас спецом для Тебя выпустят.

spec_po_kiskam ★★★
()
Ответ на: комментарий от iZEN

WinXP не поддерживается МС. Кто поддерживает WinXP сам, то ССЗБ

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.