powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Новый язык для java разработчиков - Kotlin
25 сообщений из 118, страница 4 из 5
Новый язык для java разработчиков - Kotlin
    #37665648
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Мне на каждую входную Решение в коде принимать надо.
Ну, не обязательно. Компилер, в теории, может сам спроецировать контракт. На практике, конечно, это не везде выходит. Т.е. если у метода стоит ограничени на аргумент, то оно же соответсвенно должно быть у переменной, которая в этот аргумент попадает. И тебе контракт у переменной прописывать не обязательно.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665660
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинчасто c++ вставки делаете в java?
C++ это не платформа. Например Жгруви. Есть задача, которая на нем решается проще, чем на Java? Вперед, пиши модуль на нем.

Озверинесли да, вам архитектор проекта спасибо выписывает регулярно?
Я сам себе спасибо? Ну, разве что в устной форме. :))

ОзверинХотя по факту, вы перефразировали часть моих слов.
Гослинг ещё черти когда заявил, что Java - отличная платформа. Как язык - говно.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665663
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Petro123!

> Мне на каждую входную Решение в коде принимать надо.

А его и так принимать надо. У любой приличной java-функции контракт
описан в комментариях. Его надо просто перенести в контракт. Но, блин,
"чукча не читатель, чукча писатель"- авторы явы не знали, видимо,
ничего, кроме С++ :(

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665695
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczОзверинчасто c++ вставки делаете в java?
C++ это не платформа. Например Жгруви. Есть задача, которая на нем решается проще, чем на Java? Вперед, пиши модуль на нем.

Озверинесли да, вам архитектор проекта спасибо выписывает регулярно?
Я сам себе спасибо? Ну, разве что в устной форме. :))

ОзверинХотя по факту, вы перефразировали часть моих слов.
Гослинг ещё черти когда заявил, что Java - отличная платформа. Как язык - говно.

я о платформе слово хоть сказал?:) Я говорил о зоопарке - это может быть что угодно, для чего требуются знания. Очевидная же проблема - сложность поддержки при неизвестной причине использования\внедрения(то есть расходы на поддержку довольно очевидно: обучения, сложности поиска новых сотрудников, а из чего складывается плюс зоопарка - черт его знает)
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665715
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_Samara,
контракт (надо вики смотреть) - это статика. Т.е. при изменении контракта - рефакторинг кода.
Для этого есть сигнатура метода\параметры\типизация.
Т.е. контракт = интерфейс = или труба по перекачке данных.
Можно обязать контракт на диаметр трубы, но не на содержимое в трубе.
IMHO.
Если будет тип входных данных Дата - будем проверять аннотацией по григорианскому?
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665742
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Petro123!

> контракт (надо вики смотреть) - это статика. Т.е. при изменении
> контракта - рефакторинг кода.

Да.

> Если будет тип входных данных Дата - будем проверять аннотацией по
> григорианскому?

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

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665873
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_SamaraМожно и на дату ввести ограничение- например метод, принимающий дату
рождения, может запретить даты больше текущей ;)
ага.. и аннотацию
@Alert(MessageBox\Raise\ТихоСъесть\ОтправитьПоМылу)
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37666024
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JetBrains надо делать деньги на продаже IDE. Им нужен позарез промежуточный язык для создания редакторов других языков, особенно, если в проекте допускается использование двух и более языков. Трудно создавать редактор для Scala (что мы и наблюдаем во всех IDE), имея в качестве базового только Java.
Это не мое мнение - это один из первых пунктов в объянении jetBrains "для чего им нужен новый язык".
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37666144
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA
Компания JetBrains объявила об

Дальше можно не читать. Начхать на всё, что она может объявить (я только посмотрел немного комментарии - ничего особенного).
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37666237
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery ShiskinJetBrains надо делать деньги на продаже IDE. Им нужен позарез промежуточный язык для создания редакторов других языков, особенно, если в проекте допускается использование двух и более языков. Трудно создавать редактор для Scala (что мы и наблюдаем во всех IDE), имея в качестве базового только Java.
Это не мое мнение - это один из первых пунктов в объянении jetBrains "для чего им нужен новый язык".тогда для чего они делают плагин Kotlin для Eclipse?

Пока IDEA им приносит доход они будут развивать ее, как только перестанет - будут продавать другой ПО или услуги. Тот же самый continious integration в облако загонят. На текущий момент у них достаточно профессионалов чтобы делать проекты довольно высокой сложности. Потому Kotlin им нужен для того чтобы самим писать много-много-много продакшен кода. А чтобы язык жил и развивался нужна аудитория.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37666239
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_SamaraЧем описывать - дело десятое. Всё одно в яве их нет.
Можно и на дату ввести ограничение- например метод, принимающий дату
рождения, может запретить даты больше текущей ;)В java легко реализуется и уже сделан контракт на данные - Bean Validation.

А где есть контракт на вызов функции и насколько это помогает в реальной разработке?
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37666549
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, VoDA!

> А где есть контракт на вызов функции и насколько это помогает в реальной
> разработке?

Есть в eiffel. Используют его нечасто- там свои тараканы, в частности
нет бесплатных хороших компиляторов.
Я пытался кое-ка это прикрутить к delphi и java - забавно, но полностью
реализовать невозможно (в частности из-за наследования).

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37666822
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_SamaraДобрый день, VoDA!

Я пытался кое-ка это прикрутить к delphi и java - забавно, но полностью
реализовать невозможно (в частности из-за наследования).Можно сделать на базе Spring через проксирование, а сами контракты прописывать аннотациями или через applicationContext.

Только основной мой вопрос остался не отвеченным - какие действительные проблемные ситуации это решает в продакшен системах? как часто эти проблемные ситуации проявляются?

и собственно сравнить затраты времени на поддержание контрактной системы и на поиск одного-двух багов, которые подпадают под эти контракты.

Есть какие нибудь данные на эту тему?


PS мысль, что если бы контракты реально помогали их запилили бы довольно давно
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37666837
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAМожно сделать на базе Spring через проксирование, а сами контракты прописывать аннотациями или через applicationContext.
Oval как-то давно никто не вспоминает. Ну, и, в рантайме не так интересно.

VoDAТолько основной мой вопрос остался не отвеченным - какие действительные проблемные ситуации это решает в продакшен системах? как часто эти проблемные ситуации проявляются?
Идея такая, что исключение возникает не в том месте где используются невалидные данные, а в том где они только появляются.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37666862
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczVoDAМожно сделать на базе Spring через проксирование, а сами контракты прописывать аннотациями или через applicationContext.
Oval как-то давно никто не вспоминает. Ну, и, в рантайме не так интересно.

VoDAТолько основной мой вопрос остался не отвеченным - какие действительные проблемные ситуации это решает в продакшен системах? как часто эти проблемные ситуации проявляются?
Идея такая, что исключение возникает не в том месте где используются невалидные данные, а в том где они только появляются.
Присоединяюсь к вопросу VoDA.
Я когда пытался работать с Oval (это было давно) был сильно разочарован тем, что мне приходится вручную валидацию вызывать. Т.е. мне бы хотелось это делать автоматически (VoDA об этом, насколько я понимаю) - чтобы исключение кидалось на вызов setter'а.

Возможно, это реализуемо в Scala через какие-нибудь плагины к компилятору.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37666960
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczИдея такая, что исключение возникает не в том месте где используются невалидные данные, а в том где они только появляются.А что мешает для всех сущностей написать сеттеры проверяющие валидность данных? как только собрали не валидную сущности, так сразу получили эксепшен...

понятно что Runtime-time слабее Compite-time, но даже так можно достигнуть поставленной задачи.

на той же Scala можно вместо базовых типов применять собственные типы, которые содержат ограничения. тогда можно и компилятором проверки делать.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37666997
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczVoDAСвойства в Kotlin есть, но я не увидел их как First Class Property. потому пока можно пользоваться свойством, но нельзя сослаться на свойство :(Блин :(Есть надежда

В комментариях одного из разработчиков нашел псевдо-код:
Код: java
1.
val prop = a#foo

Причем планируется и ссылка на конкретное свойство конкретного объекта и экстеншен свойства.

a#b gives you a property object that you can read from/write to, and
A#b give you an extension property object that you can call on instances of A

Для ORM и обычных нужд нужны A#b, т.е. extention properties. Это аналог java.lang.reflect.Method для Kotlin.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37667007
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAА что мешает для всех сущностей написать сеттеры проверяющие валидность данных? как только собрали не валидную сущности, так сразу получили эксепшен.
Ничего не мешает. Поэтому никто и не пользуется.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37667047
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczVoDAА что мешает для всех сущностей написать сеттеры проверяющие валидность данных? как только собрали не валидную сущности, так сразу получили эксепшен.
Ничего не мешает. Поэтому никто и не пользуется.значит удобство от такого рода контрактов перекрывается геморроем по поддержанию контрактов, т.е. контракты не выгодны. по крайней мере в текущей их реализации.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37667705
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал все эти нуль-стенания, подумал ...
Вроде бы, можно закрыть NPE и, вроде бы, с минимальными накладными расходами или вообще без оных.

Проверка соответствия типов всё равно выполняется, так что определить "это null" - придётся, остаётся как-то выкрутиться, если null пришёл туда, где анонсировано его недопустимость.

Если у класса есть "конструктор по умолчанию", то при загрузке класса среда исполнения может создать статический объект, а затем установить атрибут доступа "только чтение" на уровне VMM. Чтобы не получать AV - игнорируем запись в такие объекты. Пока, вроде, ничего неосуществимого и ничего ресурсоёмкого.
Дальше всё относительно просто - "приводим null к RO-объекту подходящего типа".

Но есть ньюанс.
Накойхер (фамилие такое) заменять исключение на трудноуловимую семантическую ошибку?

P.S. Да, я помню, что исключение должно кидаться тому, кто прислал null в непотребное место, но неужели так много желающих выкинуть весь или почти весь сторонний код?
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37668134
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovПроверка соответствия типов всё равно выполняется, так что определить "это null" - придётся, остаётся как-то выкрутиться, если null пришёл туда, где анонсировано его недопустимость.

P.S. Да, я помню, что исключение должно кидаться тому, кто прислал null в непотребное место, но неужели так много желающих выкинуть весь или почти весь сторонний код?задача в том, чтобы null не мог придти туда, где его не ждут. в Kotlin это реализуется контрактом и статической проверкой.

в том же Kotlin сторонний код можно выполнять, что при совмещении типов придется провести ОДНУ проверку на null. в java проверки на null приходится раскидывать по всему коду. и даже в этом случае периодически подрываешься на NPE когда начинаешь использовать старый функционал чуть по другому.

PS был случай когда часть свойств в Entity завернули в embedded. каково же было мое удивление когда рабочий код в другой подсистеме начал взрываться от NPE. оказалось, что embedded может не инициализироваться если все поля пустые.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37668460
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA,
да, отложенная инициализация в Java действительно проблема.
Я вот думаю, почему её нет (нет?) в других ЯП.
Вероятно, потому, что парадигма - распределённый межсистемный код. Или так сказать - межгетерогенный код (через Веб-медленный канал).
Тут действительно нужен опыт из других сетевых ЯП.
По крайней мере, было бы замечательно, чтобы эта _техническая проблема_ не торчала снаружи как пример аннотаций @МодельТранзакции.
Как пример, инкапсуляции таких проблем, в Get или Property добавить код
if Obj = Null then new Obj
Верхние слои понятия не имеют в какой момент объект будет создан.
Провда, учитывать ЭТО программисту тоже приходится - что есть минус.
VoDAв том же Kotlin сторонний код можно выполнять, что при совмещении типов придется провести ОДНУ проверку на null
мож я пропустил, как и где там делается?
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37669138
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123VoDAв том же Kotlin сторонний код можно выполнять, что при совмещении типов придется провести ОДНУ проверку на nullмож я пропустил, как и где там делается?Это принцип

в Kotlin переменные удобно и практично определять как Int, String. Т.е. notnull переменные. Любой возврат из java кода расценивается как Int? и String? т.е. nullable переменные. из одной переменной в другую записать можно только после проверки на null.


PS попробовал на Kotlin писать код. Действительно удобно. А главное зная java на kotlin начинаешь программировать уже минут через 5-7. максимум это понять какие есть ключевые слова типа 'in'.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37669426
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAзадача в том, чтобы null не мог придти туда, где его не ждут. в Kotlin это реализуется контрактом и статической проверкой.Где гарантия, что код не может нарушать контракт?

P.S. Если бы всё было так просто - доказательство корректности программ уже вовсю использовалось бы.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37669447
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovVoDAзадача в том, чтобы null не мог придти туда, где его не ждут. в Kotlin это реализуется контрактом и статической проверкой.Где гарантия, что код не может нарушать контракт?

P.S. Если бы всё было так просто - доказательство корректности программ уже вовсю использовалось бы.ты сильно не прав.
...
Рейтинг: 0 / 0
25 сообщений из 118, страница 4 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Новый язык для java разработчиков - Kotlin
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]