AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
NAV
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.12.2015, 15:29   #1  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
а что делать тем, кто в курсе c# ))))
Тут вопрос, чего вы хотите - загрузить свежих концепций в мозг или получить что-то практическое.

Если первое то Haskell, Smalltalk, LISP, Eiffel.
Если второе - powershell, F#

Цитата:
например, глядя на котлин хорошо понимаешь, что вводимые модификаторы const, internal, readonly, static - фигня на постном масле.
без них вполне можно обойтись, если есть геттеры и сеттеры. и глядя на котлин понимаешь, что неудобство геттеров и сеттеров сильно преувеличено, если ввести ключевые слова var, val...
Попрошу выбирать слова! В X++ уже есть геттеры и сеттеры. Свойств нет. А разница между val и var, в общем, как раз как между readonly или const и var или просто полем.

Цитата:
дело даже не в усилиях разработчиков языка...
дело в том, что сейчас наваяют в аксапте говнокода, который потом поддерживать придется... и выковыривать... типа keySum или безумных LedgerVoucher... или наследование таблиц...
Фичи типа const и readonly служат как раз чтобы дать по рукам говнокодерам или себе который то же человек, которому свойственно ошибаться.
Старый 17.12.2015, 15:47   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
F# - шутку заценил )

Цитата:
Сообщение от belugin Посмотреть сообщение
В X++ уже есть геттеры и сеттеры. Свойств нет.
убедил.

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

Цитата:
Сообщение от belugin Посмотреть сообщение
А разница между val и var, в общем, как раз как между readonly или const и var или просто полем.
Не-а!
Ты будешь смеяться. Но семантически ни val, ни var ничего не значат.
просто val говорит компилятору автоматически сформировать геттер для данного свойства.
а var - автоматически сформировать геттер и сеттер для свойства.

и все.
дальнейший анализ и поведение определяется не ключевыми словами val, var, а наличием геттера-сеттера.

и как раз котлин показывает что этот подход отлично работает.
специальные ключевые слова со специальной семантикой не нужны!

со всеми вытекающими последствиями для тех, кто пишет, и тех, кто читает.


Цитата:
Сообщение от belugin Посмотреть сообщение
Фичи типа const и readonly служат как раз чтобы дать по рукам говнокодерам или себе который то же человек, которому свойственно ошибаться.
бгггг.
угу. геттер и сеттер выполняют те же функции. плюс кучу других обязанностей.
а код проще для понимания.

если говорить про Аксапту, то примерно так произошло с наследованием таблиц.
ввели фичу. а можно было сделать намного проще. ))))


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

Последний раз редактировалось mazzy; 17.12.2015 в 15:54.
Старый 17.12.2015, 16:41   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
F# - шутку заценил )
Расшифруй.

Цитата:
Ты будешь смеяться. Но семантически ни val, ни var ничего не значат.
Ты уверен, что знаешь что такое "семантически"?


Classes in Kotlin can have properties. These can be declared as mutable, using the var keyword or read-only using the val keyword



Цитата:
просто val говорит компилятору автоматически сформировать геттер для данного свойства.
а var - автоматически сформировать геттер и сеттер для свойства.

и все.
Постой, отсутствие целого метода для тебя не семантическая разница?

Да и для переменных тоже самое. Просто полей нет и все унифицированно чисто синтаксически.

Цитата:
бгггг.
угу. геттер и сеттер выполняют те же функции. плюс кучу других обязанностей.
а код проще для понимания.
Чуть меньше ключевых слов за счет отказа от полей.
Старый 17.12.2015, 17:08   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Расшифруй.
ты назвал F# практическим )

Цитата:
Сообщение от belugin Посмотреть сообщение
Ты уверен, что знаешь что такое "семантически"?
Конечно же нет. Рассказывай.

Цитата:
Сообщение от belugin Посмотреть сообщение
Classes in Kotlin can have properties. These can be declared as mutable, using the var keyword or read-only using the val keyword
угу. именно "declared", именно "объявляется".
И обрати внимание, здесь не сказано, что это единственный способ "объявить" ))))

а является mutable, если есть сеттер. заданный любым образом.
хоть через var, хоть вручную написанный сеттер.

Цитата:
Сообщение от belugin Посмотреть сообщение
Постой, отсутствие целого метода для тебя не семантическая разница?
Отсутствие метода - семантическая разница.
Но не отсутствие ключевого слова.

Если ключевое слово отсутствует, но сеттер задан вручную, то свойство является mutable.
Если сеттер отсутствует, но есть геттер, то свойство является readonly.
Если и сеттер, и геттер отсутствуют, то свойство является private для класса.

макс, ну ощути жеж разницу.
познай темную сторону силы мощь конвенций.

Еще раз:
= ключевое слово не имеет значения (семантики)
= ключевое слово всего-лишь заставляет компилятор объявить дефолтный геттер и/или сеттер. (синтаксический сахар)
= значение имеет лишь наличие или отсутствие геттера или сеттера.

Важно: геттер или сеттер можно объявлять вручную и без ключевого слова.

Цитата:
Сообщение от belugin Посмотреть сообщение
Да и для переменных тоже самое. Просто полей нет и все унифицированно чисто синтаксически.
ну, как скажешь...


Цитата:
Сообщение от belugin Посмотреть сообщение
Чуть меньше ключевых слов за счет отказа от полей.
Когда-нибудь... мы вместе с улыбкой будем вспоминать...

Последний раз редактировалось mazzy; 17.12.2015 в 17:26.
Старый 17.12.2015, 18:19   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
ты назвал F# практическим )
Для определенных применений вполне. type providers, декларация и вывод единиц измерения.

Цитата:
Конечно же нет. Рассказывай.
Я кажется понял, что ты имел ввиду. Ты не хотел сказать что они не имеют семантической разницы с другим способом определения. А не что у них нет значения.

Цитата:
= ключевое слово не имеет значения (семантики)
= ключевое слово всего-лишь заставляет компилятор объявить дефолтный геттер и/или сеттер. (синтаксический сахар)
Ок ладно. Для меня эти два пукта противоречивы. Для меня семантики в языке программирования нет только у текста комментария.
Старый 18.12.2015, 10:26   #6  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Сообщение от mazzy Посмотреть сообщение
ты назвал F# практическим )
Вполне себе. У нас есть уже несколько проектов, реализованных на F#.
Как правило, это backend реализованный в виде веб-сервисов. Впечатления самые положительные.

В общем то, когда все вокруг уже на .net - выбор не очень большой. Если бы была JVM - я бы выбрал, кстати, Clojure.
За это сообщение автора поблагодарили: belugin (4).
Теги
f#, kotlin

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Боюсь, что при текущем подходе AX 10 лет у нас не проживет. Ark Курилка 18 29.09.2016 10:17
С вечера пятницы до вечера воскресенья (с 8.10 по 10.10) форум будет недоступен в связи с переездом на новый хостинг. mazzy Информация для участников 0 07.10.2010 21:11
10 минутная готовность: встречаем момент времени 12:34:56 07.08.09 Gustav Детская 8 07.08.2009 14:35
Встреча питерских аксаптеров 31.10.2008 fed Курилка 2 30.10.2008 13:09

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:56.