powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Новый язык для java разработчиков - Kotlin
25 сообщений из 118, страница 3 из 5
Новый язык для java разработчиков - Kotlin
    #37665479
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_SamaraНет. Но достаточно проверки средой разработки. Сейчас это не проблема.
Ещё раз- статические проверки лучше, но контракты универсальнее.в kotlin в сигнатуру функции входит контракт на null / not null. Это еще более универсально чем просто контракт через аннотации ;)
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665481
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNдак я про контракты говорю. что они - тут не помогут.

нужен notnull на уровне типов.читаем внимательнее
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665482
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAGKS_SamaraНет. Но достаточно проверки средой разработки. Сейчас это не проблема.
Ещё раз- статические проверки лучше, но контракты универсальнее.в kotlin в сигнатуру функции входит контракт на null / not null. Это еще более универсально чем просто контракт через аннотации ;)
что ты понимаешь под словом универсально?

как по мне, дак наоборот. это не универсально
(но очень нужно)
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665487
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAZyK_BotaNдак я про контракты говорю. что они - тут не помогут.

нужен notnull на уровне типов.читаем внимательнее
что читать?
я все внимательно читал.
это ты меня не понял.
я рассуждал на возможность статической проверки универсальных контрактов.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665491
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то что придется писать контракт для переменной тоже - я понял сразу. но для сложных конрактов - вижу проблемы.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665495
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNчто ты понимаешь под словом универсально?

как по мне, дак наоборот. это не универсально
(но очень нужно)чем больше проблем решает, тем более универсально.

Если проверка на валидность входных данных сделана на уровне языка, то это более универсальное решение чем на уровне IDE.
Если проверка на уровне IDE, то при смене IDE или на сервере CI данные ошибки не будут выявлены. Если сделано на уровне языка/компилятора, то ошибка будет отловлена в любом случае.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665500
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNто что придется писать контракт для переменной тоже - я понял сразу. но для сложных конрактов - вижу проблемы.пример?
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665501
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAZyK_BotaNчто ты понимаешь под словом универсально?

как по мне, дак наоборот. это не универсально
(но очень нужно)чем больше проблем решает, тем более универсально.

Если проверка на валидность входных данных сделана на уровне языка, то это более универсальное решение чем на уровне IDE.
Если проверка на уровне IDE, то при смене IDE или на сервере CI данные ошибки не будут выявлены. Если сделано на уровне языка/компилятора, то ошибка будет отловлена в любом случае.

)
я думаю, под универсально имелось ввиду, что можно не только нулы проверять
но и другие диапазоны значений.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665503
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAZyK_BotaNто что придется писать контракт для переменной тоже - я понял сразу. но для сложных конрактов - вижу проблемы.пример?
я не про нулы, а про контракты универсальные. там чего угодно можно воротить.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665511
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, ZyK_BotaN!

> дак я про контракты говорю.
> что они - тут не помогут.
>
> нужен notnull на уровне типов.

Да, он лучше. Но вводить его в яве- непросто.
Хотя если по-умолчанию вводить нуловость, а не-нуловость через другой
набор символов- всё проще.

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

> дак я про контракты говорю.
> что они - тут не помогут.
>
> нужен notnull на уровне типов.

Да, он лучше. Но вводить его в яве- непросто.
Хотя если по-умолчанию вводить нуловость, а не-нуловость через другой
набор символов- всё проще.

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

> в kotlin в сигнатуру функции входит контракт на null / not null. Это еще
> более универсально чем просто контракт через аннотации ;)

Универсальнее- это значит, что написав

@Pre(x>10)
@Post(Result < 5)
int func(int x) {...}

я получу всегда x>0, а вызывая всегда уверен, что результат меньше 5.
NotNull - частный случай.

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

А ведь NotNull тоже можно объявить синтаксическим сахаром!

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public final class NotNullReference<T> {
  public final T value;
  public NotNullReference(T value) {
    if (value == null)
      throw .......
    this.value = value;
  }
}

.......
  public void someMethod(NotNullReference<String> address) {
    ....
  }



--
Алексей
JID: alxt@ya.ru
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665535
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNя не про нулы, а про контракты универсальные. там чего угодно можно воротить.тут все хуже. даже в теории нет эффективного способа построения контрактов.

Т.е. можно разделить описанные тобой контракты на два вида.
Первый - ограничение доменной модели. @NotNull, @More, @Before, @Length и т.п. Давно сделано в виде JSR-303. Успешно работает.
Второе - описание контракта на входные данные по которым функция отработает гарантированно корректно .

Так вот поскольку нет математического определения что есть корректность работы функции, то и грамотного контракта для функции тоже нет. Теоретические подвижки в эту сторону ведутся довольно давно. И если теория математического обоснования корректности таки появится, то весь рынок программирования очень сильно изменится. Хотя ХЗ смогут ученые умы изобрести математический аппарат для подобного анализа или нет
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665544
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_Samara@Pre(x>10)
@Post(Result < 5)
int func(int x) {...}

не врубаюсь, чем это лучше
int func(int x) {
if x>10 или assert(x>10)
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665548
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAТак вот поскольку нет математического определения что есть корректность работы функции,
позже увидел. Ты уже всё разжевал.
+1
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665550
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_SamaraУниверсальнее- это значит, что написав

@Pre(x>10)
@Post(Result < 5)
int func(int x) {...}

я получу всегда x>0, а вызывая всегда уверен, что результат меньше 5.А чем это поможет в разработке программы? Я серьезно.

Что будет если x пришедший с внешней системы равен -7?
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665551
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123не врубаюсь, чем это лучше
int func(int x) {
if x>10 или assert(x>10)
Ну, в теориии, компилер не даст написать
func(200)
Т.е. ошибка из рантайма переносится в compile-time
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665553
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123VoDAТак вот поскольку нет математического определения что есть корректность работы функции,
позже увидел. Ты уже всё разжевал.
+1опять я успел в перед
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665568
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczPetro123не врубаюсь, чем это лучше
int func(int x) {
if x>10 или assert(x>10)
Ну, в теориии, компилер не даст написать
func(200)
Т.е. ошибка из рантайма переносится в compile-time
теперь хотя бы понял "замысел". :)
.....
func(200) ведь никто не пишет. А что там в переменной - один ....знает.
Это не семантика ЯП.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665582
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Petro123!

>> @Pre(x>10)
>> @Post(Result < 5)
>> int func(int x) {...}
> не врубаюсь, чем это лучше
> int func(int x) {
> if x>10 или assert(x>10)

Предположим, что контракты в яве есть.
1. Информация попадает в javaDoc, видна даже если у тебя только .class
Это можно сделать с помощью AOP. Остальное через AOP не делается.

2. Начальная точка стэктрейса будет в вызывающем коде, а не в вызванном.

3. При перекрытии функции нельзя написать

@Pre(x>11)
@Post(Result < 6)

а можно

@Pre(x>7)
@Post(Result < 2)

Или, что понятнее, можно писать только
@PreOr(x>7)
@PostAnd(Result < 4)

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665583
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123func(200) ведь никто не пишет. А что там в переменной - один ....знает.

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

> Что будет если x пришедший с внешней системы равен -7?

Исключение во _внешней_ системе.

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665631
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уж слишком всё заумно.
Мне на каждую входную Решение в коде принимать надо.
Это же не доменная статичная модель.
Единственная проблема с Null - можно подумать.
А остальные контракты - это БЛ, а не контракты.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37665645
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczОзверинНе, не взлетит. Причина одна, но очень весомая: никто не хочет поддерживать зоопарк в архитектуре. А для новых проектов требуется веское обоснование выбора языка\платформа и тд.
Платформа - Java. Язык от Java почти не отличается. Так что это не проблемы. Проблема в том чтобы создать наработки, которыми общественность захотела бы пользоваться. И вот здесь у Redhat шансов поболе. Ну и нужны другие крупные компании, которые бы захотели использовать новый язык.

часто c++ вставки делаете в java?
если да, вам архитектор проекта спасибо выписывает регулярно?

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


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