|
|
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraНет. Но достаточно проверки средой разработки. Сейчас это не проблема. Ещё раз- статические проверки лучше, но контракты универсальнее.в kotlin в сигнатуру функции входит контракт на null / not null. Это еще более универсально чем просто контракт через аннотации ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:02:20 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNдак я про контракты говорю. что они - тут не помогут. нужен notnull на уровне типов.читаем внимательнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:03:18 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
VoDAGKS_SamaraНет. Но достаточно проверки средой разработки. Сейчас это не проблема. Ещё раз- статические проверки лучше, но контракты универсальнее.в kotlin в сигнатуру функции входит контракт на null / not null. Это еще более универсально чем просто контракт через аннотации ;) что ты понимаешь под словом универсально? как по мне, дак наоборот. это не универсально (но очень нужно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:03:28 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
VoDAZyK_BotaNдак я про контракты говорю. что они - тут не помогут. нужен notnull на уровне типов.читаем внимательнее что читать? я все внимательно читал. это ты меня не понял. я рассуждал на возможность статической проверки универсальных контрактов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:04:31 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
то что придется писать контракт для переменной тоже - я понял сразу. но для сложных конрактов - вижу проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:05:10 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNчто ты понимаешь под словом универсально? как по мне, дак наоборот. это не универсально (но очень нужно)чем больше проблем решает, тем более универсально. Если проверка на валидность входных данных сделана на уровне языка, то это более универсальное решение чем на уровне IDE. Если проверка на уровне IDE, то при смене IDE или на сервере CI данные ошибки не будут выявлены. Если сделано на уровне языка/компилятора, то ошибка будет отловлена в любом случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:06:36 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNто что придется писать контракт для переменной тоже - я понял сразу. но для сложных конрактов - вижу проблемы.пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:07:29 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
VoDAZyK_BotaNчто ты понимаешь под словом универсально? как по мне, дак наоборот. это не универсально (но очень нужно)чем больше проблем решает, тем более универсально. Если проверка на валидность входных данных сделана на уровне языка, то это более универсальное решение чем на уровне IDE. Если проверка на уровне IDE, то при смене IDE или на сервере CI данные ошибки не будут выявлены. Если сделано на уровне языка/компилятора, то ошибка будет отловлена в любом случае. ) я думаю, под универсально имелось ввиду, что можно не только нулы проверять но и другие диапазоны значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:08:57 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
VoDAZyK_BotaNто что придется писать контракт для переменной тоже - я понял сразу. но для сложных конрактов - вижу проблемы.пример? я не про нулы, а про контракты универсальные. там чего угодно можно воротить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:09:50 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
Добрый день, ZyK_BotaN! > дак я про контракты говорю. > что они - тут не помогут. > > нужен notnull на уровне типов. Да, он лучше. Но вводить его в яве- непросто. Хотя если по-умолчанию вводить нуловость, а не-нуловость через другой набор символов- всё проще. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:11:02 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraДобрый день, ZyK_BotaN! > дак я про контракты говорю. > что они - тут не помогут. > > нужен notnull на уровне типов. Да, он лучше. Но вводить его в яве- непросто. Хотя если по-умолчанию вводить нуловость, а не-нуловость через другой набор символов- всё проще. -- Алексей JID: alxt@ya.ru в жаве - по любас уже только нуловось можно вводить. все же совместимость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:11:49 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
Добрый день, 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:12:59 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
Добрый день! А ведь NotNull тоже можно объявить синтаксическим сахаром! Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. -- Алексей JID: alxt@ya.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:16:08 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNя не про нулы, а про контракты универсальные. там чего угодно можно воротить.тут все хуже. даже в теории нет эффективного способа построения контрактов. Т.е. можно разделить описанные тобой контракты на два вида. Первый - ограничение доменной модели. @NotNull, @More, @Before, @Length и т.п. Давно сделано в виде JSR-303. Успешно работает. Второе - описание контракта на входные данные по которым функция отработает гарантированно корректно . Так вот поскольку нет математического определения что есть корректность работы функции, то и грамотного контракта для функции тоже нет. Теоретические подвижки в эту сторону ведутся довольно давно. И если теория математического обоснования корректности таки появится, то весь рынок программирования очень сильно изменится. Хотя ХЗ смогут ученые умы изобрести математический аппарат для подобного анализа или нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:21:55 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
GKS_Samara@Pre(x>10) @Post(Result < 5) int func(int x) {...} не врубаюсь, чем это лучше int func(int x) { if x>10 или assert(x>10) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:25:23 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
VoDAТак вот поскольку нет математического определения что есть корректность работы функции, позже увидел. Ты уже всё разжевал. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:27:16 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraУниверсальнее- это значит, что написав @Pre(x>10) @Post(Result < 5) int func(int x) {...} я получу всегда x>0, а вызывая всегда уверен, что результат меньше 5.А чем это поможет в разработке программы? Я серьезно. Что будет если x пришедший с внешней системы равен -7? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:27:28 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
Petro123не врубаюсь, чем это лучше int func(int x) { if x>10 или assert(x>10) Ну, в теориии, компилер не даст написать func(200) Т.е. ошибка из рантайма переносится в compile-time ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:27:32 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
Petro123VoDAТак вот поскольку нет математического определения что есть корректность работы функции, позже увидел. Ты уже всё разжевал. +1опять я успел в перед ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:28:20 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPetro123не врубаюсь, чем это лучше int func(int x) { if x>10 или assert(x>10) Ну, в теориии, компилер не даст написать func(200) Т.е. ошибка из рантайма переносится в compile-time теперь хотя бы понял "замысел". :) ..... func(200) ведь никто не пишет. А что там в переменной - один ....знает. Это не семантика ЯП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:32:45 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
Добрый день, 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:37:43 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
Petro123func(200) ведь никто не пишет. А что там в переменной - один ....знает. Поэтому компилер применяет контракт и на переменную и на все методы из которых её значение появилось и так далее, до некоторого IO, где уже юзер пишет валидацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:37:43 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
Добрый день, VoDA! > Что будет если x пришедший с внешней системы равен -7? Исключение во _внешней_ системе. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:38:07 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
уж слишком всё заумно. Мне на каждую входную Решение в коде принимать надо. Это же не доменная статичная модель. Единственная проблема с Null - можно подумать. А остальные контракты - это БЛ, а не контракты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:48:23 |
|
||
|
Новый язык для java разработчиков - Kotlin
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОзверинНе, не взлетит. Причина одна, но очень весомая: никто не хочет поддерживать зоопарк в архитектуре. А для новых проектов требуется веское обоснование выбора языка\платформа и тд. Платформа - Java. Язык от Java почти не отличается. Так что это не проблемы. Проблема в том чтобы создать наработки, которыми общественность захотела бы пользоваться. И вот здесь у Redhat шансов поболе. Ну и нужны другие крупные компании, которые бы захотели использовать новый язык. часто c++ вставки делаете в java? если да, вам архитектор проекта спасибо выписывает регулярно? Хотя по факту, вы перефразировали часть моих слов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2012, 16:51:36 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37665487&tid=2132520]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 340ms |
| total: | 479ms |

| 0 / 0 |
