LINUX.ORG.RU

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

Как человек, работающий лет 10 с Java и 7 с .net/mono могу сказать, что как язык программирования, Java безнадёжно отстала от C#

чем именно (можно кратенько, по существу)?

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

При чём тут энтерпрайз? Дотнета, и уж тем более mono, в ынтерпрайзе нет, не было и не будет. Mono - маргинальная поделка, которая нафиг никому не впёрлась кроме гомосека Мигеля.

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

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

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

Проблема в том, что Мигелюшко позиционирует этот проект не как WINE.

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

> Бгг. Зачем тебе беззнаковые типы?

Конечно, если мне нужна переменная для хранения числа 0...255 то намного лучше выделить int вместо unsigned char, int же занимет в 4 раза меньше места =)

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

> как язык программирования, Java безнадёжно отстала от C#

Зато как платформа, дотнет и его клоны безнадежно отстали от жабы.

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

> Конечно, если мне нужна переменная для хранения числа 0...255 то намного лучше выделить int вместо unsigned char, int же занимет в 4 раза меньше места =)

Да, ты сэкономишь целый байт по сравнению с short. В общем, уровень претензий понятен.

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

Плюсую. Только тонн софта пока что нет, поэтому некрософт пока молчат относительно моно, ждут момента...

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

> Да, ты сэкономишь целый байт по сравнению с short. В общем, уровень претензий понятен.

Да, целый байт с каждой переменной несколькометрового массива, т.е. половину всего размера. Теперь уровень претензий понятен? Если нет, то добавлю, что этот массив еще частенько требуется записать на диск (бинарный дамп) или передать в готовую апи-функцию в качестве char[]. Тут уже без дополнительных плясок не выкрутиться.

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

ога самое то для клиент-серверных решений по автоматизации бизнеса

автоматизация бизнеса


вам уже ничто не поможет

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

>> Да, ты сэкономишь целый байт по сравнению с short. В общем, уровень претензий понятен.

Да, целый байт с каждой переменной несколькометрового массива, т.е. половину всего размера.

Даже страшно подумать, чего ты потребуешь от языка, если у тебя будет массив значений 0..15. Тетрады надо вводить, однозначно.

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

Почитай, чем дампы отличаются от сериализации.

или передать в готовую апи-функцию в качестве char[]

А... так ты просто не знаешь Яву.

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

Да и то, пришлось править код только из-за того, что были захардкодены некоторые пути ФС.

Ну-ну, я о чем и говорю.... У кого-то пути захардкодены, а кого-то кросплаформенное ПО написанно так, что проще переписать чем перенести.

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

> Даже страшно подумать, чего ты потребуешь от языка, если у тебя будет массив значений 0..15. Тетрады надо вводить, однозначно.

Ты не поверишь... В этом случае использовались сдвиговые и битовые операторы, и все было отлично

А... так ты просто не знаешь Яву.

Я с ней сталкиваюсь достаточно редко, чтоб это не отрицать. Так может, здешние гуру подскажут, как быть с передачей массива short как массив char так, чтобы значения больше 128..255 переводились в диапазон -128..-1 ?

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

> как быть с передачей массива short как массив char так, чтобы значения больше 128..255 переводились в диапазон -128..-1 ?

зачем такое бывает нужно?

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

> Ты не поверишь... В этом случае использовались сдвиговые и битовые операторы, и все было отлично

В то, что использовались - поверю, в то, что всё было отлично - нет.

А... так ты просто не знаешь Яву.

Я с ней сталкиваюсь достаточно редко, чтоб это не отрицать.

Да это понятно уже. Твои претензии к Яве - детский каприз «а я хочу как в Си!!111».

Так может, здешние гуру подскажут, как быть с передачей массива short как массив char так, чтобы значения больше 128..255 переводились в диапазон -128..-1 ?

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

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

Есть картинка в RGB и есть апи-функция «сжать и сохранить чпегом», принимающая как параметр char[] в выше описанном виде. Очевидно, что это передается в JNI тупо как блок памяти, а там подхватывается как unsigned char. Проблема в том, что обработка изображений происходит в яве.

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

Хотя формулировка какая-то бредовая, чесслово :)

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

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

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

>чем именно (можно кратенько, по существу)?
Generics
LINQ
delegates
PLINQ
Lambda expressions
Stack variables

Перегрузка операторов и прочий сахар - тоже полезны в умелых руках

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

>Дотнета, и уж тем более mono, в ынтерпрайзе нет, не было и не будет.
вы просто смешны в своей безапеляционности и претензии на знание всего и вся

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

>Конечно, если мне нужна переменная для хранения числа 0...255 то намного лучше выделить int вместо unsigned char, int же занимет в 4 раза меньше места =)
Очень часто операции над байт медленне чем над int

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

>Зато как платформа, дотнет и его клоны безнадежно отстали от жабы.
Я надесь вы приведёте примеры.

grim ★★☆☆
()

C#

Опа! Минус один из списка языков, которые я хочу выучить.

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

>Проблема в том, что обработка изображений происходит в яве.
Ну и нафига C# решань проблемы Java?
Никто не мешает написать пару функции на С++. Их можно совершенно буз костылей вызывать из C# и обратно.

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

> В то, что использовались - поверю, в то, что всё было отлично - нет.

По-твоему это так сложно реализуется???

Да это понятно уже. Твои претензии к Яве - детский каприз «а я хочу как в Си!!111».

Можно «как в Си», а можно «как в <любой другой ЯП, имеющий беззнаковые типы>». Я так понял, ты из тех, кто склонен говорить что что-то «не нужно», просто потому что его нет в яве, линуксе, т.п., при этом даже не пытаясь придумать вменяемых аргументов.

Я, например, знаю еще дюжину кодеров кроме себя, кому беззнаковые типы в яве понадобились, причем не только из соображений экономии памяти. Для некоторых из них ява - основной рабочий язык. Тебе если не нужно - не пользуйся.

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

сразу скажу, яву только на лабах видел (давно), так что если скажу фигню - поправляйте

Generics

есть

LINQ

сахар

delegates

указатель на функцию (да, знаю что шире)

в яве есть анонимные классы и интерфейсы, да closures наконец

PLINQ

яхз что это

Lambda

то же что в делегатах

Stack variables

да в яве тож есть, вроде

резюмируя: ява получается более неповоротливая, но это если рассматривать только её, если же смотреть на clojure всякие, то ещё и более гибкая получится

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

хотя, если подумать, в пару к C# можно F# пристегнуть... получается паритет

и всё равно, штуки типа WCF меня убивают

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

> Очень часто операции над байт медленне чем над int

Не знал. Это какие-то проблемы в JVM. На уровне ЦП такого маразма нет.

Ну и нафига C# решань проблемы Java?

Секундочку, С# тут ни при чем. Речь шла и яве и си-шном JNI.

Я надесь вы приведёте примеры.

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

segfault ★★★★★
()

Во же ж блин. Мы ты FastReport.NET под Linux запускаем, а тут такие новости. Mono - живи!

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

> Не знал. Это какие-то проблемы в JVM. На уровне ЦП такого маразма нет.
Это часть спецификации JVM. Подозреваю, что было введено во времена интерпретации, для более легкого ее проведения.

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

(Имел ввиду, что в jvm есть только два класса типов - 4-байтные и 8-байтные, причем 8-байтные помещаются в два слота на стеке и в локальных переменных)

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

>>Generics

есть

Брехня

LINQ

сахар

Брехня

delegates

указатель на функцию (да, знаю что шире)

если знаете, зачем писать глупости?

в яве есть анонимные классы и интерфейсы, да closures наконец

т.е. через жопу, соответственно люди нормальной ориентации не пользуются.

Цитата

PLINQ

яхз что это

Paralel LINQ

Lambda

то же что в делегатах

т.е. практически отсутствует

простой пример делегатов, анонимных классов, лямбда функций и LINQ:
var result = from u in userSet
join l in location on u.id equals l.id
where l.Country == «Canada»
select new{Name = u.Name,Salary = u.Salary};

Тот-же NHibernate выглядит гораздо приятнее Hibernate благодаря всему вышепересленному.

Stack variables

да в яве тож есть, вроде

только простые типы.
struct отсутствует.
Я Крону демонстрирровал, как struct ускорил программу в десятки раз, что он назвал читингом.

Кстати, хочу добавить отсутствие dynamic и var и unsafe

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

>и всё равно, штуки типа WCF меня убивают
И что в нём плохого?
Иметь один API для binary over tcp/ip и вебсервисов, когда один и тот-же код прекрасно работает с разными протоколами?

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

>Не знал. Это какие-то проблемы в JVM. На уровне ЦП такого маразма нет.
Это как ЦП а не Java.

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

>Секундочку, С# тут ни при чем. Речь шла и яве и си-шном JNI.
в C# можно работать напряму с указателями, если есть желание. Никакой JNI не нужен как сущность.

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

>Примеры чего? Того, что ява «заполонила планету», а дотнет все топчется в одном месте?
Приведите такие примеры

Того, что интерпретаторы жабы стабильно быстрее дотнетовских?

И такие тоже.

Java выиграла у C++ так как код было писать проще и быстрее.
А С# сечас имеем такое-жн преимущество над Java как рагьше Java над C++

И быстродействие здесь нипричём(.net как минимум не медленне а при умелом применении особенностей - быстрее), так как решают человекочасы.

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

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

> в C# можно работать напряму с указателями, если есть желание. Никакой JNI не нужен как сущность.

Я рад за шарп, но там, где я сталкивался с явой (мобилки), его не применишь.

Java выиграла у C++ так как код было писать проще и быстрее.

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

.net как минимум не медленне а при умелом применении особенностей - быстрее

Тесты скорости говорят обратное. А «умелое применение особенностей» должно быть с обоих сторон, дабы сравнение было объективным. Хотя бывают случаи... например, у шарпа есть такая «особенность», как наличие беззнаковых типов и указателей =)

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

>Я рад за шарп, но там, где я сталкивался с явой (мобилки), его не применишь.
Монодроид для андроида и моноточ для иОс

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

>Тесты скорости говорят обратное.
Я уже в третий раз прошу привести примеры, но кроме голословных утверждений пока ничего нет.

grim ★★☆☆
()

Если у дотнетосишарпа и есть какие плюсы, то они мигом сливаются одним существенным, жирнючим минусом: оно всё выньдовс-онли. И посему - должно умереть.

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

Вы бы хоть тему почитали, перед тем как обгадиться.
моно работает даже iPhone на которм Java не предвидится.

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

> Есть С++ и perl. Другие ЯП НЕ НУЖНЫ.

пара поправочек:

  1. с++ не нужен.
  2. perl — не ЯП, это утилита такая.

с остальным согласен ;)

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

>применён хак -server

Если это дает прирост производительности, то почему бы и нет? И насколько я помню режим -server работает по-умолчанию

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

Вы бы хоть тему почитали, перед тем как обгадиться.
моно работает даже iPhone на которм Java не предвидится.

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

Патенты, и M$, который в случае какого-либо успеха этой поделки с вероятностью 99.9% пожелает срубить с неё лёгкого бабла. За примером далеко ходить не надо - взять тот же Ондроед, который к M$ вообще никакого отношения не имеет. И то наехали. А уж если ИХНЯЯ «технология» какой успех поимеет - то всё, п...ц ослику: башлять будут все, и башлять МНОГО, так, чтобы выгоднее было за дырявое вендро башлять.

То, что оно где-то «работает» - ещё совершенно не значит, что оно работает НОРМАЛЬНО. И что на нём кто-то что-то будет писать.

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