Обновить
90

Пользователь

52
Подписчики
Отправить сообщение

Видите ли, в же стиле можно сфорулировать любую чушь.


Интернет — в том смысле, который ему придает сам автор цитаты, т.е. софт TCP/IP, еще как отключается. Позвольте мне не давать вам ссылки на множественные уязвимости серверов любого рода, которые позволяют их легко уронить? Да, система адаптируется, и сильно. Но тем не менее любой из нужных именно вам ресурсов в любой момент может быть недоступен. А то что мы видим — лишь результат дублирования.


Если угодно — общая конструкция интернета, как фиговины состоящей из большого числа независимых частей — она да, устойчивая. Но протоколы, которые в нее входят, и отдельные узлы — совсем нет.

Интернет никогда не отключался? Да ладно!


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

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


Мне кажется, или вы перевернули все с ног на голову? Если тесты падают при случайном порядке выполнения потоков — эначит вы тестируете что-то, что зависит от этого порядка. Поскольку в рабочей программе порядок не определен — она заведомо может работать не так. И что толку в таких тестах?

Представьте, что вы тестируете просто цикл, некий итерационный численный алгоритм, при этом ваш тест зависит от числа повторений. Мне кажется, это какой-то неправильный тест, нет?

Нужно поискать инвариант, который не зависит от порядка выполнения, и проверить, что он правилен.

Ну вы же его (TypeToken) только что просили? :)


Называется, угадайте с трех раз, для чего вот это нужно:


TypeToken<List> stringListTok = new TypeToken<List>() {};

Что до генерации на этапе компиляции, то можно просто погуглить проект lombok, и поглядеть на живых примерах. Это конечно не сам компилятор генерирует, а annotation processors, но в данном случае это пофиг.


Что до остального, то я сказал основной язык, а не единственный ))) Мне например вполне комфортно на лиспе, без всяких преувеличений. И на Python тоже. И на многих других.

Хоть что-то? Да их навалом, этих инструментов. На любой вкус, вы о чем? На этом построены кучка ORM, и еще кучка JavaEE.

Не, ну я же вполне конкретно спросил — почему вам не хватает TypeToken? У меня это основной язык, и я в редчайших случаях сталкиваюсь с тем, что рефлексии мне почему-то не хватило.
для динамическоо построения наследника IComparer,
Ну это да, имеете право, хороший пример. Просто я обычно такие вещи пытаюсь решить на этапе компиляции, именно там где дженерики имеются в наличии (а еще есть аннотации).
То, что библиотеки подключать просто, — это вообще ни при чём.


Да ладно ) То-то я видел тут (небольшую правда) кучку постов, о том что не надо тащить в проект лишние зависимости, потому что это трудно. В том-то и дело, что это реальная польза. У меня в текущем открытом проекте — 83 зависимости, и меня это совершенно не волнует. Не будет никакого геморроя — просто не надо тащить все в один проект, надо разбивать на сравнительно мелкие модули.
Почти для всего нужны библиотеки.
Вы не поверите — но это прекрасно! Главное что они не просто нужны — а они есть.


Что до остального — то опять же, с моей точки зрения это мелкие придирки. Да, можно List, можно массив, сейчас стало можно еще и Stream вернуть. Ну так извините, можно ведь и иначе взглянуть — можно вернуть имя файла (это String), можно Path (это уже немного другое, потому тут уже и структура папок в файловой системе, родитель, дети и.т п), а можно и просто File. И в чем же тут недостаток? Это разные вещи, для разных целей.
В результате, пользовательский код часто более, чем наполовину, состоит из циклов по перекладыванию
Ну это вы загнули… Arrays.asList(массив) — у вас этого половина? )))


Но в каком-то смысле — это правда. Потому что большая часть бизнес-кода — она реально из этого и состоит. Из базы в форму, из формы — обратно в базу.
Минусы мавена — плохая документация, которая описывается примерно 10% его функциональности и частично устарела\врет.


Вы книжку от Sonatype читали? В смысле, обе книжки?

Ну вот при всем при этом, ваши претензии выглядят странно. Про те же библиотеки, скажем… Я не знаю других распространенных систем, где бы подключение сторонних библиотек было настолько же просто, как в языках на базе JVM. Фактически — добавить в проект ссылку на репозиторий — и уже можно работать. В Perl это сложнее. В Python — тоже сложнее, хотя и не сильно. Примерно на таком же уровне это в javascript. Поддержка сторонних компонент в IDE на порядки лучше — во многом благодаря той самой "неполноценной" рефлексии, которая позволяет видеть метаданные по классам без исходников.


А то что библиотеки друг с другом не стыкуются — так какая же это претензия к языку?


Опять же — Java это язык для другого. Скажем, сделать отчет на основе данных из базы, в формате Excel — это плюс одна-три зависимости, и 5 строк кода + шаблон в виде xls файла.

Видите ли, если вы с точки зрения скажем .Net смотрите, то да, где-то вы правы. Если с точки зрения других языков, где рефлексии вообще нет — то претензия непонятна. Более полноценная? А где вы ее видели?


И потом — это претензия слегка не по адресу. Она к erasure, а не к рефлексии. Глупо требовать давать доступ к тому, чего нет.


И еще — а можно спросить, зачем это вам? И почему вам не хватает скажем вот этого: https://github.com/google/guava/wiki/ReflectionExplained?

А намек на кучу других языков вы проигнорировали, или не уловили? Еще раз — прямого доступа к памяти нет в Haskell, например. И в Python. И в javascript. И что? И ничего. Это смешная придирка при наличии JNI/FFI.


Что до наследования — то оно прекрасно заменяется делегированием. И это всем известно, и никаких проблем не вызывает. Т.е. вообще никаких. А вот само множественное наследование их еще как вызывает.


Можно я спрошу просто — вы много языков-то знаете? Ну, таких на которых работали и работаете?

Прямого доступа к памяти нет.


Его нет практически нигде в современных языках высокого уровня. Все почему-то пишут разные FFI. И они теперь все убогие?
Множественного наследования нет


Знаете, во многих языках вообще наследования нет. Например в Lisp-ах, и вообще в большинстве функциональных. Они убогие тоже?

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


Что, простите? Это куда же она делась-то?
Все эти если тут ни к чему. Разумеется использует, и разумеется на тех же компонентах. Резервный бак для жидкого кислорода? А почему не два резервных бака, керосин же тоже может закончиться?

Я никогда не слышал, чтобы такое делали. Слишком много лишних проблем, непонятно ради чего. Намного проще залить побольше компонентов.
Ну это вы загнули… если бы разлетелся турбонасос (что в общем бывает) картинка была бы другая, потому что его обломки не вылетают через сопла, а как правило пробивают хвостовой отсек насквозь. Ну или что там попадается по дороге.

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

Зачем эта фигня вообще тут очутилась?
Да, вы правы. Я читал какой-то русский пересказ, и там была неправда. Тут даже для внутрикорпоративного трансфера разрешается подать на ПМЖ, правда при некоторых условиях, но это уж как водится.
Я нигде не вижу слов, что вы имеете право подать на ПМЖ. Наоборот, вижу что вы можете продлить, но не более чем 6 лет в сумме. Можете показать, где написано про ПМЖ? И при смене работы — переоформление визы. Я смотрю на gov.uk, если что.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность