Re[12]: Через год-два .NET Core потеснит Java на рынке enterprise решений
От: Mamut Швеция http://dmitriid.com
Дата: 21.04.20 07:29
Оценка:
M>>C#
M>>Java

B>public тут не нужен и в остатке "Object()" при создании нового объекта и указание типов для полей.


Но ты его указал


B>Я тебе уже показывал, что будет то же самое


Нет, то же самое не будет. Будет отдаленно похожее только при условии, если кто-то не забудет ручками написать статический метод .of

B>, только надо присваивание fields явно написать и перед каждым объектов написать new TableFieldSchema. Куда, кстати, подевались имена полей внутри "{ "inserted", BigQueryDbType.Timestamp },"?


Никуда. Компилятор их выведет.


M>>// Потому что действительно настоящий инициализатор коллекций

M>>// для всех IEnumerable выглядит одинаково и одинаково работает
M>>// для любых типов, включая пользовательские

B>Перевожу на русский язык — не надо вызывать присваивание поля в явном виде. Ну ок, я смотрю для тебя это прямо мегаважно.


Да. Потому что с ростом кода Java-код теряется в бойлерплейте на каждый чих. А их «решения» даже близко не являются общими решениями, а захардкоженными костылями.

B>Проперти такая незначительная хрень, что я даже не понимаю, зачем я трачу время на её обсуждение.


Эта такая «незначительная хрень», что народу приходится писать генераторы кода, чтобы не вбивать все это говно руками.


dmitriid.comGitHubLinkedIn
Re[8]: Через год-два .NET Core потеснит Java на рынке enterp
От: Mamut Швеция http://dmitriid.com
Дата: 21.04.20 07:44
Оценка:
AK>>Добавить сложно, да. Но есть старые языки, где всё это есть из коробки — Erlang.

vsb>Хз, что там у этого Erlang-а, раз не победил всех, значит не всё так хорошо. Даже подход его никто не применяет. Видимо есть серьёзные проблемы.


Главная серьезная проблема — это то, что под подход Эрланга должен быть заточен не только язык, но и вся виртуальная машина. Когда условный NPE не уронит всю программу, а процесс завершится, а наблюдающему за ним процессу прийдет сообщение «такой то процесс умер».


dmitriid.comGitHubLinkedIn
Re: Re: Через год-два .NET Core потеснит Java на рынке enterprise решений
От: Dym On Россия  
Дата: 21.04.20 09:07
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Через год-два .NET Core потеснит Java на рынке enterprise решений

Пусть COBOL потеснит вначале: США из-за коронавируса срочно ищут знатоков COBOL. И не могут найти
Счастье — это Glück!
Re[8]: Через год-два .NET Core потеснит Java на рынке enterp
От: Mamut Швеция http://dmitriid.com
Дата: 21.04.20 09:44
Оценка:
AK>>something?.someField()?.setSomeValue(foo) в джаве раскроется примерно в десяток строк кода.

vsb>Откуда десяток-то?

vsb>
vsb>var s = something;
vsb>var f = s != null ? s.someField() : null;
vsb>if (f != null) {
vsb>    f.setSomeValue(foo);
vsb>}
vsb>


vsb>Ну и не представляю, в каких ситуациях это типичный код. У меня такой код встречается довольно редко, чтобы сожалеть об отсутствии специальной фичи.


JSON API с опциональными полями.


dmitriid.comGitHubLinkedIn
Re[10]: Через год-два .NET Core потеснит Java на рынке enterp
От: Mamut Швеция http://dmitriid.com
Дата: 21.04.20 09:53
Оценка:
B>А ну да, в эту сторону не работает. Я имел ввиду, что тут он ведёт себя как Iterable
B>
 
B>Integer[] f = {0, 1, 3};       
B>for (var i : f) {
B>}
B>


Именно. «В эту сторону работает, в эту сторону не работает, тут рыбу заворачивали». Повсюду костыли и грабли на ровном месте. И вот как раз натыкаюсь на

Для оставшегося 00.01% реализуешь для своего класса поддержку Iterable (один метод) или Spliterator (несколько методов), и конвертация в Stream будет просто один дополнительным вызовом перед всей этой функциональщиной.


То есть на ровном месте вместо, условно


Iterable<FieldList> result = bigquery.query(jobConfig.build()).iterateAll();

result.stream()...

// или хотя бы

Stream.of(result)....


имеем:

StreamSupport.stream(result.spliterator(), false)...



Стоит ли говорить, что в C# BigQueryResults реализует IEnumerable, и поэтому сразу:

BigQueryResults results = await _bigQuery.ExecuteQueryAsync(sql, parameters);
results.Select()....

// или

foreach (var row in results)...


dmitriid.comGitHubLinkedIn
Re[12]: Через год-два .NET Core потеснит Java на рынке enterp
От: Max Mustermann  
Дата: 21.04.20 12:11
Оценка: :)
Здравствуйте, Cyberax, Вы писали:

C>>>Только на практике оно всё глючное, если требуется что-то сложнее двух кнопочек. Вот и получается, что самый кроссплатформенный тулкит — это Electron, так как WebKit везде примерно одинаков.

C>Современный UI: https://www.electronjs.org/

Как быстро летит время, а ведь кажется что все эти тонны хейта "криворукий M$ УБИЛ skype этим ИДИОТСКИМ электроном ну как можно это js-говно ну нивазможно жи пользоваться нинавижу" были только вчера...
Re[11]: Через год-два .NET Core потеснит Java на рынке enterp
От: Gt_  
Дата: 21.04.20 12:40
Оценка: -3
M>Стоит ли говорить, что в C# BigQueryResults реализует IEnumerable, и поэтому сразу:

M>[c#]

M>BigQueryResults results = await _bigQuery.ExecuteQueryAsync(sql, parameters);
M>results.Select()....

дык, а если вернулось 2ТБ ?

собственно красивый пример, почему на C# энетерпрайзы не пишут. на дворе 21 век, индуские кодеры не не столько продвинуты, что бы бегать в однопотоке по массивчикам. у java это будет spark обертка DataSet поверх бигквери источника. с полноценным языком обработки данных, где вся простыня C# заменятся одной конструкцией, которая считает, обработает, запишет, при этом красиво расспараллеливая, попутно элегантно справляясь, если там данных много больше чем памяти.

Gt_
Re[12]: Через год-два .NET Core потеснит Java на рынке enterp
От: Klikujiskaaan КНДР  
Дата: 21.04.20 12:45
Оценка:
Здравствуйте, Gt_, Вы писали:



M>>Стоит ли говорить, что в C# BigQueryResults реализует IEnumerable, и поэтому сразу:


M>>[c#]

M>>BigQueryResults results = await _bigQuery.ExecuteQueryAsync(sql, parameters);
M>>results.Select()....

Gt_>дык, а если вернулось 2ТБ ?


Gt_>собственно красивый пример, почему на C# энетерпрайзы не пишут. на дворе 21 век, индуские кодеры не не столько продвинуты, что бы бегать в однопотоке по массивчикам. у java это будет spark обертка DataSet поверх бигквери источника. с полноценным языком обработки данных, где вся простыня C# заменятся одной конструкцией, которая считает, обработает, запишет, при этом красиво расспараллеливая, попутно элегантно справляясь, если там данных много больше чем памяти.


Gt_>Gt_


Как можно быть настолько некомпетентным в 2к20...
Re[12]: Через год-два .NET Core потеснит Java на рынке enterp
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 21.04.20 12:56
Оценка:
Здравствуйте, Gt_, Вы писали:


Gt_>дык, а если вернулось 2ТБ ?

Значит у кого то с головой не все в порядке!
Gt_>собственно красивый пример, почему на C# энетерпрайзы не пишут. на дворе 21 век, индуские кодеры не не столько продвинуты, что бы бегать в однопотоке по массивчикам. у java это будет spark обертка DataSet поверх бигквери источника. с полноценным языком обработки данных, где вся простыня C# заменятся одной конструкцией, которая считает, обработает, запишет, при этом красиво расспараллеливая, попутно элегантно справляясь, если там данных много больше чем памяти.

Ну вообщето есть Асинхронные запросы
Правда ограниечение, что в одном контексте можно делать только одтн запрос.
Можно сделать несколько контекстов https://stackoverflow.com/questions/41749896/ef-6-how-to-correctly-perform-parallel-queries
и солнце б утром не вставало, когда бы не было меня
Re[12]: Через год-два .NET Core потеснит Java на рынке enterp
От: Mamut Швеция http://dmitriid.com
Дата: 21.04.20 13:25
Оценка:
M>>results.Select()....

Gt_>дык, а если вернулось 2ТБ ?


Select — ленивый. Хоть 15 TB пусть вернется, будет высасывать потихоньку.

Gt_>собственно красивый пример, почему на C# энетерпрайзы не пишут. на дворе 21 век, индуские кодеры не не столько продвинуты, что бы бегать в однопотоке по массивчикам. у java это будет spark обертка DataSet


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


dmitriid.comGitHubLinkedIn
Re[13]: Через год-два .NET Core потеснит Java на рынке enterp
От: takTak  
Дата: 21.04.20 13:29
Оценка:
M>>>Стоит ли говорить, что в C# BigQueryResults реализует IEnumerable, и поэтому сразу:

M>>>[c#]

M>>>BigQueryResults results = await _bigQuery.ExecuteQueryAsync(sql, parameters);
M>>>results.Select()....

Gt_>>дык, а если вернулось 2ТБ ?


Gt_>>собственно красивый пример, почему на C# энетерпрайзы не пишут. на дворе 21 век, индуские кодеры не не столько продвинуты, что бы бегать в однопотоке по массивчикам. у java это будет spark обертка DataSet поверх бигквери источника. с полноценным языком обработки данных, где вся простыня C# заменятся одной конструкцией, которая считает, обработает, запишет, при этом красиво расспараллеливая, попутно элегантно справляясь, если там данных много больше чем памяти.


Gt_>>Gt_


K>Как можно быть настолько некомпетентным в 2к20...


+1

мало того, что на шарпе тот же спарк прикрутить при желании точно так же можно, если очень хочется, так ещё и на шарпе больше 10 лет существуют легковесные потоки и асинхронность из коробки, которых в официальной яве нет до сих пор
Re[11]: Через год-два .NET Core потеснит Java на рынке enterp
От: bzig  
Дата: 21.04.20 13:30
Оценка:
M>Стоит ли говорить, что в C# BigQueryResults реализует IEnumerable, и поэтому сразу:

M>[c#]

M>BigQueryResults results = await _bigQuery.ExecuteQueryAsync(sql, parameters);
M>results.Select()....

Ну всё свелось к подсчёту символов

M>foreach (var row in results)...


вот это и в Яве сразу имеем
Re[13]: Через год-два .NET Core потеснит Java на рынке enterprise решений
От: bzig  
Дата: 21.04.20 13:33
Оценка:
M>Никуда. Компилятор их выведет.

Круто. Есть три текстовых поля, ты указываешь два и без имён, а компилятор разбирается, что куда выводить.
Re[14]: Через год-два .NET Core потеснит Java на рынке enterp
От: bzig  
Дата: 21.04.20 13:38
Оценка: -1
T>асинхронность из коробки, которых в официальной яве нет до сих пор

Дурдом. Т.е. если нет ключевого слова, которое тебе экономит 40 байт текста, то асинхронности нет
Re[10]: Через год-два .NET Core потеснит Java на рынке enterprise решений
От: Poopy Joe Бельгия  
Дата: 21.04.20 13:44
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Builder — это вообще мимо кассы. Они позволяют делать вот так:

C>
C>point = .... ;
C>point2 = point.toBuilder().x(231).build();
C>assert(point.getY() == point2.getY());
C>

C>Т.е. легко создавать или строить иммутабельные объекты.

C>Можно так же делать так:

C>
C>point = ...;
C>point2 = point.withX(123);
C>


C>Как такое делать на C#?

Речь вроде как о дотнет, а C# лишь один из языков. В сравнении с F# вот это пример выглядит убого.
Re[15]: Через год-два .NET Core потеснит Java на рынке enterp
От: takTak  
Дата: 21.04.20 13:47
Оценка: +2
T>>асинхронность из коробки, которых в официальной яве нет до сих пор

B>Дурдом. Т.е. если нет ключевого слова, которое тебе экономит 40 байт текста, то асинхронности нет


а сколько мне экономит Parallel.ForEach() или АsParallel(), где мне не нужно ломать глову о какие-то конкаррентные коллекции, локи и прочую дрeбедень из 20 века ?
Linq реально крут, по сути, это- отдельный функциональный язык

чего же ты промолчал про Task, которые в дотнете появились 7-10 лет назад и которых в официальной яве нет до сих пор?
Re[12]: Через год-два .NET Core потеснит Java на рынке enterp
От: Mamut Швеция http://dmitriid.com
Дата: 21.04.20 13:52
Оценка:
M>>[c#]
M>>BigQueryResults results = await _bigQuery.ExecuteQueryAsync(sql, parameters);
M>>results.Select()....

B>Ну всё свелось к подсчёту символов


Все свелось к тому, что «в Java есть» выливается в толпу непонятного и ненужного кода

M>>foreach (var row in results)...


B>вот это и в Яве сразу имеем


Вот только это «а Яве и имеем». Все остальное требует костылей на ровном месте.


dmitriid.comGitHubLinkedIn
Re[16]: Через год-два .NET Core потеснит Java на рынке enterp
От: vsb Казахстан  
Дата: 21.04.20 14:08
Оценка:
Здравствуйте, takTak, Вы писали:

T>а сколько мне экономит Parallel.ForEach() или АsParallel(), где мне не нужно ломать глову о какие-то конкаррентные коллекции, локи и прочую дрeбедень из 20 века ?


Так в джаве параллельные стримы уже много лет есть, ты про них?
Re[13]: Через год-два .NET Core потеснит Java на рынке enter
От: Gt_  
Дата: 21.04.20 14:09
Оценка: -1 :))
Gt_>>дык, а если вернулось 2ТБ ?

M>Select — ленивый. Хоть 15 TB пусть вернется, будет высасывать потихоньку.


так высасывать будет один, единственный поток не один и не два месяца эти 15 ТБ. при этом ограничивая куцым языком стримов.

Gt_>>собственно красивый пример, почему на C# энетерпрайзы не пишут. на дворе 21 век, индуские кодеры не не столько продвинуты, что бы бегать в однопотоке по массивчикам. у java это будет spark обертка DataSet


M>Да-да. Только у истинных тру-программистов есть единственные в мире обертки над Спарком, и ни у кого в мире их больше нигде нет.


я к тому, что сахарок в C# это здорово, но нифига не достаточно. если у .Net есть сравнимые со Спарк обертки, можно ссылочку ? как без бойлерплейта в C# тот ваш биквери result (хоть на 15ТБ) можно было бы обогатить данными с какой-нить джейсончика, сагрегировать и записать куда-нить на S3 результат ? ну и что бы это распараллелилось хотя бы в масштабах одной машины.
Отредактировано 21.04.2020 14:10 Gt_ . Предыдущая версия . Еще …
Отредактировано 21.04.2020 14:10 Gt_ . Предыдущая версия .
Re[16]: Через год-два .NET Core потеснит Java на рынке enterp
От: bzig  
Дата: 21.04.20 14:12
Оценка: :))
Здравствуйте, takTak, Вы писали:

T>>>асинхронность из коробки, которых в официальной яве нет до сих пор


B>>Дурдом. Т.е. если нет ключевого слова, которое тебе экономит 40 байт текста, то асинхронности нет


T>а сколько мне экономит Parallel.ForEach() или АsParallel(),


прямо вот так в Яве и будет

T> где мне не нужно ломать глову о какие-то конкаррентные коллекции, локи и прочую дрeбедень из 20 века ?


какие локи? Если ты про то, что в Яве есть не имеешь понятия, так хоть помалкивал бы

final var results = CompletableFuture.completeAsync(() -> db.query())

Причём CompletableFuture позволяет асинхронные обработчики и пост-обработчики друг на друга завязывать. async/await просто сосёт тут.

T>чего же ты промолчал про Task, которые в дотнете появились 7-10 лет назад и которых в официальной яве нет до сих пор?


А это что такое?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.