|
![]() |
#1 |
Участник
|
Тут вопрос, чего вы хотите - загрузить свежих концепций в мозг или получить что-то практическое.
Если первое то Haskell, Smalltalk, LISP, Eiffel. Если второе - powershell, F# Цитата:
например, глядя на котлин хорошо понимаешь, что вводимые модификаторы const, internal, readonly, static - фигня на постном масле.
без них вполне можно обойтись, если есть геттеры и сеттеры. и глядя на котлин понимаешь, что неудобство геттеров и сеттеров сильно преувеличено, если ввести ключевые слова var, val... Цитата:
дело даже не в усилиях разработчиков языка...
дело в том, что сейчас наваяют в аксапте говнокода, который потом поддерживать придется... и выковыривать... типа keySum или безумных LedgerVoucher... или наследование таблиц... |
|
![]() |
#2 |
Участник
|
F# - шутку заценил )
убедил. да, я имел в виду что нет синтаксического сахара, который автоматически вместо наименования поля вызывает геттер или сеттер. Цитата:
Ты будешь смеяться. Но семантически ни val, ни var ничего не значат. просто val говорит компилятору автоматически сформировать геттер для данного свойства. а var - автоматически сформировать геттер и сеттер для свойства. и все. дальнейший анализ и поведение определяется не ключевыми словами val, var, а наличием геттера-сеттера. и как раз котлин показывает что этот подход отлично работает. специальные ключевые слова со специальной семантикой не нужны! со всеми вытекающими последствиями для тех, кто пишет, и тех, кто читает. Цитата:
угу. геттер и сеттер выполняют те же функции. плюс кучу других обязанностей. а код проще для понимания. если говорить про Аксапту, то примерно так произошло с наследованием таблиц. ввели фичу. а можно было сделать намного проще. )))) я собственно об этом и говорю - можно подсмотреть как выглядит уже реализованная идея и подсмотреть на последствия. Последний раз редактировалось mazzy; 17.12.2015 в 15:54. |
|
![]() |
#3 |
Участник
|
Расшифруй.
Цитата:
Ты будешь смеяться. Но семантически ни 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 - автоматически сформировать геттер и сеттер для свойства. и все. Да и для переменных тоже самое. Просто полей нет и все унифицированно чисто синтаксически. Цитата:
бгггг.
угу. геттер и сеттер выполняют те же функции. плюс кучу других обязанностей. а код проще для понимания. |
|
![]() |
#4 |
Участник
|
ты назвал F# практическим )
Конечно же нет. Рассказывай. Цитата:
И обрати внимание, здесь не сказано, что это единственный способ "объявить" )))) а является mutable, если есть сеттер. заданный любым образом. хоть через var, хоть вручную написанный сеттер. Отсутствие метода - семантическая разница. Но не отсутствие ключевого слова. Если ключевое слово отсутствует, но сеттер задан вручную, то свойство является mutable. Если сеттер отсутствует, но есть геттер, то свойство является readonly. Если и сеттер, и геттер отсутствуют, то свойство является private для класса. макс, ну ощути жеж разницу. познай Еще раз: = ключевое слово не имеет значения (семантики) = ключевое слово всего-лишь заставляет компилятор объявить дефолтный геттер и/или сеттер. (синтаксический сахар) = значение имеет лишь наличие или отсутствие геттера или сеттера. Важно: геттер или сеттер можно объявлять вручную и без ключевого слова. Цитата:
Когда-нибудь... мы вместе с улыбкой будем вспоминать... Последний раз редактировалось mazzy; 17.12.2015 в 17:26. |
|
![]() |
#5 |
Участник
|
Для определенных применений вполне. type providers, декларация и вывод единиц измерения.
Цитата:
Конечно же нет. Рассказывай.
Цитата:
= ключевое слово не имеет значения (семантики)
= ключевое слово всего-лишь заставляет компилятор объявить дефолтный геттер и/или сеттер. (синтаксический сахар) |
|
![]() |
#6 |
Moderator
|
Вполне себе. У нас есть уже несколько проектов, реализованных на F#.
Как правило, это backend реализованный в виде веб-сервисов. Впечатления самые положительные. В общем то, когда все вокруг уже на .net - выбор не очень большой. Если бы была JVM - я бы выбрал, кстати, Clojure. |
|
|
За это сообщение автора поблагодарили: belugin (4). |
Теги |
f#, kotlin |
|
|