Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Java vs C#

Автор Karakurt, октября 8, 2010, 10:01

0 Пользователи и 1 гость просматривают эту тему.

Алексей Гринь

Цитата: RawonaM от декабря 23, 2010, 15:07
Это принцип Жабы такой. Ни перегрузки операторов, ни хрена вообще. Минимализм короче.
Фигня всё это. После того как вышла решётка, жаберы с большим удовольствием ввели enumerations, generics, foreach, annotations, autoboxing, params, и проч. Минимализм это красивая байка из старых добрых времён. Жаба нифига не минималистична, а неподъёмна, как мамонт. Они бы и рады сделать == для строк, но мешают требования по совместимости.
肏! Τίς πέπορδε;

Алексей Гринь

Цитата: RawonaM от декабря 23, 2010, 15:09
ЦитироватьТак и не надо сравнивать решётку с явой, в этом мой пойнт. Это тоже не корректно и тоже задачи разные.
Почему это? жаба и решетка совершенно для одинаковых целей и задач.
Ну-ну. Решётка это десктопные приложения (и вот уже геймдев для xbox) для людей, а жаба это сервера и энтерпрайз. Разные цели. Или скажи тогда, в чём разность целей питона и .NET
肏! Τίς πέπορδε;

Алексей Гринь

Цитата: myst от декабря 23, 2010, 15:01
Было бы здо́рово, если бы Микрософт официально сделал .NET многоплатформным, но он не хочет этого делать, и это не к добру. Ты же понимаешь, что Mono в роли догоняющего, как ни крути
Также можно сказать, что все не-sun'овские Java VM в роли догоняющих. И чего?

Цитата: myst от декабря 23, 2010, 15:01
Это весьма вероятно может привести к полной потере совместимости. Ты же сам говорил, что Mono уже не до конца совместим с .NET'ом. Безрадостно всё это.
Вы опять все пытаетесь равняться на жабу. Mono реализует не .NET, а стандарт ECMA CLR (у явы вообще ничего не стандартизировано никак). Они (mono team) вообще не обязаны делать что-либо совместимым с .NET. Однако это у них первостепенная задача.

Цитата: RawonaM от декабря 23, 2010, 15:10
ЦитироватьБыло бы здо́рово, если бы Микрософт официально сделал .NET многоплатформным, но он не хочет этого делать, и это не к добру.
Очень даже понятно, почему он не хочет официально это делать.
Они просто не заинтересованы сами делать это, т.к. кому надо забесплатно возиться с чем-то, когда у самих ещё целый вагон платформ, которые нужно поддерживать. Чай, мы не Столлман, который только и умеет что потрясать кулаками и брезжить слюной. Но эта простая незаинтересованность воспринимается многими как некий вид атаки.
肏! Τίς πέπορδε;

Алексей Гринь

У java главной целью стоит кроссплатформенность, а у CLR — безопасный механизм межязыкового исполнения. Поэтому Microsoft не заинтересован в кроссплатформенности, т.к. она не является для CLR главной целью. Кроссплатформенность это приятное дополнение. Вообще кроссплатформенность это один из инструментов, а не святая цель, но красноглазикам это не объяснить.
肏! Τίς πέπορδε;

RawonaM

Цитата: Алексей Гринь от декабря 23, 2010, 15:16
Или скажи тогда, в чём разность целей питона и .NET
:o Питон — интерпретируемый язык. Надо с NLTK работать че-нить с корпусом сделать, взял и сделал. Или хотя бы зашел в коммандную строку, набрал чтось типа for line = open("~/dict.txt").readlines(): if line bla-bla: print line

Скока у тебя займет проект в сшарпе замутить? Вообще разные вещи, ты что.

Алексей Гринь

Цитата: RawonaM от декабря 23, 2010, 15:07
То же самое пропертиз в ц-диезе. С одной стороны, классная штука. С другой стороны, легко злоупотребить так, что ни хрена в коде не поймешь. Написал p.prop = фигня, там может его присвоитель компьютер убивает. Прозрачности нет.
Свойства обалденно хороши во время отладки. Можно приостановить исполнение и посмотреть значения свойств (они будут вычисляться дебаггером налету). А в яве можно посмотреть значения, которые возвращают методы getXXX? Наверняка нужно вводить писать что-то вроде "tmpvar = getXXX()", которое ещё хрен знает как автоматически стриппить в релизе, т.к. нет conditional compilation.
肏! Τίς πέπορδε;

Алексей Гринь

Цитата: RawonaM от декабря 23, 2010, 15:32
ЦитироватьИли скажи тогда, в чём разность целей питона и .NET
:o Питон — интерпретируемый язык.
Лол, с какой стати интерпретируемость или скорость являются целью? Java, C# и C++ приблизительно близки по скорости. Что, у них одна цель теперь? Бред.
肏! Τίς πέπορδε;

Алексей Гринь

Цитата: RawonaM от декабря 23, 2010, 15:32
Скока у тебя займет проект в сшарпе замутить? Вообще разные вещи, ты что.
mono's C# interactive shell

http://www.mono-project.com/CsharpRepl



Вся критика от незнания. К тому же C# это только один язык на базе mono, на mono можно запустить любой любой другой язык, в том числе и динамический (как и в яве, в принципе). Не надо смешивать .NET и C#.
肏! Τίς πέπορδε;

RawonaM

Цитата: Алексей Гринь от декабря 23, 2010, 15:32
Свойства обалденно хороши во время отладки.
И не только. Но вводить в язык средства отладки — бред. Для отладки нужно делать отладчик хороший.

myst

Цитата: RawonaM от декабря 23, 2010, 15:07
Это принцип Жабы такой. Ни перегрузки операторов, ни хрена вообще. Минимализм короче.
Ведь при существующей перегрузке, когда ты пишешь ==, кто знает, это перегруженный оператор или что вообще он вызывает? А так четко видно, какая функция задействована.
Какая, если функции перегружать как раз таки можно? ;)
И вообще, почему из Жабы не удалили все операторы, раз они такие гадкие? :eat:

RawonaM

Цитата: myst от декабря 23, 2010, 15:37
Какая, если функции перегружать как раз таки можно? ;)
А вот в С-шарпе нельзя. Бесит :(

myst

Цитата: RawonaM от декабря 23, 2010, 15:07
Написал p.prop = фигня, там может его присвоитель компьютер убивает.
То есть если написать p.setProp(фигня), убийство компьютера переносится легче?

myst

Цитата: RawonaM от декабря 23, 2010, 15:38
Цитата: myst от декабря 23, 2010, 15:37
Какая, если функции перегружать как раз таки можно? ;)
А вот в С-шарпе нельзя. Бесит :(
:o

Алексей Гринь

Цитата: RawonaM от декабря 23, 2010, 15:37
ЦитироватьСвойства обалденно хороши во время отладки.
И не только. Но вводить в язык средства отладки — бред.
Это не основная цель свойств, а приятное дополнение. Свойства это действительно совершенно отдельная ООП-сущность, как и события, например. Конечно, можно полностью эмулировать их, как это делается в Яве, но... ООП ведь можно эмулировать и на чистом Си, и в ассемблере. Смысл высокоуровневых языков в сведению повторяющихся действий к нулю; уничтожению постоянных переизобретений колеса. Думаю, в яве свойств не было не из-за каких-то высоких целей, а просто потому что в языках, с которыми Гослинг до этого работал, их не было.
肏! Τίς πέπορδε;

RawonaM

Гринь, да не сравнимо это. Хотя бы срезы типа a[5:25:2], вместо вызова функции — как жизнь упрощает.

RawonaM

Цитата: myst от декабря 23, 2010, 15:40
Цитата: RawonaM от декабря 23, 2010, 15:38
Цитата: myst от декабря 23, 2010, 15:37
Какая, если функции перегружать как раз таки можно? ;)
А вот в С-шарпе нельзя. Бесит :(
:o
Тьфу, я имел в виду опциональные параметры нельзя. Бесит :(

Цитата: myst от декабря 23, 2010, 15:39
ЦитироватьНаписал p.prop = фигня, там может его присвоитель компьютер убивает.
То есть если написать p.setProp(фигня), убийство компьютера переносится легче?
Да, ты знаешь, что ты вызываешь функцию, а не просто что-то присваиваешь.

myst

Цитата: RawonaM от декабря 23, 2010, 15:08
Ну дык вот же добавляют потихоньку сладкую жизнь:
http://msdn.microsoft.com/en-us/library/system.tuple.aspx
Это векторы, что ли? И в чём хау-ноу?

Цитата: RawonaM от декабря 23, 2010, 15:08
длинно писать Dictionary...
Улыбнул.

Цитата: Алексей Гринь от декабря 23, 2010, 15:21
Также можно сказать, что все не-sun'овские Java VM в роли догоняющих. И чего?
Дык, не в машине дело, но в платформе.

Алексей Гринь

Цитата: myst от декабря 23, 2010, 15:37
И вообще, почему из Жабы не удалили все операторы, раз они такие гадкие?
Согласнен. Знак плюса перегружен для целых и для вещественных. Нехорошо. Нужно сделать как в ОКАМЛЕ (ЕМНИП), ввести знак ./ А то ведь вдруг при вызове 1.0f + 2.0f я хотел вызвать плюс, складывающий целые числа?
肏! Τίς πέπορδε;

RawonaM

Цитата: Алексей Гринь от декабря 23, 2010, 15:45
А то ведь вдруг при вызове 1.0f + 2.0f я хотел вызвать плюс, складывающий целые числа?
А вот с делением не все так гладко. Интеджер или дробь. Хрен поймешь, че вызывается. Думать надо. :)

myst

Цитата: RawonaM от декабря 23, 2010, 15:43
Да, ты знаешь, что ты вызываешь функцию, а не просто что-то присваиваешь.
Что значит просто присваиваешь? И то и другое — операция. У операции есть последствия, и их следует знать, прежде чем её применять. Это отмазкой копальхит. :)

myst

Цитата: RawonaM от декабря 23, 2010, 15:47
А вот с делением не все так гладко. Интеджер или дробь. Хрен поймешь, че вызывается. Думать надо. :)
Неявное приведение типов, не? :eat:

Алексей Гринь

Хех В Visual Studio я только пишу "Di", как мне среда предлагает слово Dictionary. Я жму пробел и слово вставляется. Три нажатия на клавишу. Практически для всех свойств и классов Intellisense попадают в точку в 95% случаев (он запоминает самые часто используемые слова). Т.е. то, что в питоне вшили редактор в язык (т.е. маленькие идентификаторы) - это хорошо, а то что в сишарп вшили возможность поддержки дебагером (свойства) - это плохо. Ну-ну...
肏! Τίς πέπορδε;

RawonaM

Цитата: myst от декабря 23, 2010, 15:47
ЦитироватьДа, ты знаешь, что ты вызываешь функцию, а не просто что-то присваиваешь.
Что значит просто присваиваешь? И то и другое — операция. У операции есть последствия, и их следует знать, прежде чем её применять. Это отмазкой копальхит. :)
Ну вот, теперь надо думать, присваешь ты переменной или свойству, если свойству, то там имплицитно может быть еще 150 действий быть.

Цитата: Алексей Гринь от декабря 23, 2010, 15:50
Хех В Visual Studio я только пишу "Di", как мне среда предлагает слово Dictionary.
Мне тоже предлагает. Но написано-то все-равно длинно остается.

Алексей Гринь

Цитата: myst от декабря 23, 2010, 15:39
ЦитироватьНаписал p.prop = фигня, там может его присвоитель компьютер убивает.
То есть если написать p.setProp(фигня), убийство компьютера переносится легче?
Согласен, семантически в яве сеттеры это те же шарповы свойства, т.е. также предлагается, что они работают быстро. Всякий может туда поставить Thread.sleep и ничего.

Цитата: RawonaM от декабря 23, 2010, 15:43
Тьфу, я имел в виду опциональные параметры нельзя. Бесит :(
Ввели в .NET 4, моно давно поддерживает, ещё в с начала 2010 г., вроде.
肏! Τίς πέπορδε;

Алексей Гринь

Цитата: RawonaM от декабря 23, 2010, 15:53
ЦитироватьХех В Visual Studio я только пишу "Di", как мне среда предлагает слово Dictionary.
Мне тоже предлагает. Но написано-то все-равно длинно остается.
И чаво?
肏! Τίς πέπορδε;

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр