
Mykola
14.10.2017
13:27:03
Вот эти вот все проперти, доступы.
Статические классы и другая эзотерика
Откуда оно взялось и зачем?
Изначально ооп описывалось как обмен сообщениями между независимыми объектами

Google

Mykola
14.10.2017
13:30:04
Полиморфизм взят из функциональщины. Наследование - частный случай полиморфизма
Инкапсуляция - имеет два определения разных
Вот такое ооп

Aleh
14.10.2017
13:32:58
Ну да, это смесь заимствований из фп и смещения фокуса в процедурщине

Mykola
14.10.2017
13:35:23
Со всеми вытекающими граблями и костылями.

Aleh
14.10.2017
13:36:31
И плюшками тоже)

illiatshurotshka❄️
14.10.2017
13:39:06
какими ?

Alexey
14.10.2017
13:39:24
а кстати происхождение статик методов вообще где-то описано?
ну в том смысле, с каким посылом в голове их добавляли, например, в джаву ту же(просто не знаю, были ли они где-то до этого)?

illiatshurotshka❄️
14.10.2017
13:40:18
а в джаве разве можно без них ?

Sergey
14.10.2017
13:40:48

illiatshurotshka❄️
14.10.2017
13:41:18
ну просто там иначе никак не создать функцию которая не приналежит инстансу (до 8)

Sergey
14.10.2017
13:41:19
ну и плюс "меньше накладных расходов на диспетчерезацию"

Google

Sergey
14.10.2017
13:41:40
проблема то в статических пропертях
а не в методах, просто функции нужны

illiatshurotshka❄️
14.10.2017
13:41:50
а здесь не котлин

Sergey
14.10.2017
13:41:56
здесь ооп
просто статические методы - просто функции. Если они у тебя чистые - не вижу проблем

illiatshurotshka❄️
14.10.2017
13:43:10
ну они тоже могли просто функции добавить
однако как мы знаем они любят странные решения

Sergey
14.10.2017
13:43:29
они черпали вдохновение из плюсов

Alexey
14.10.2017
13:43:36
спасибо

Sergey
14.10.2017
13:43:46
а вот в плюсах статики делали что бы уменьшить накладные расходы на диспетчеризацию
ну мол драгоценный циклы процессора тратятся ж

illiatshurotshka❄️
14.10.2017
13:44:19
?

Mykola
14.10.2017
13:44:34
Враки

Sergey
14.10.2017
13:44:38
что враки?

illiatshurotshka❄️
14.10.2017
13:44:56
не понял

Mykola
14.10.2017
13:44:59
Что это для экономии

Alexey
14.10.2017
13:45:04
насколько я помню, у статик методов в жаве есть высокий шанс инлайнинга, это так?

illiatshurotshka❄️
14.10.2017
13:45:10
чем статик методы в с++ экономнее обычных функций

Sergey
14.10.2017
13:45:10
если у тебя есть инфа - делись

Google

Mykola
14.10.2017
13:45:48
Дело в том, что языки программирования придумывают люди. А люди не идеальны

Sergey
14.10.2017
13:45:54
ну и плюсы не создавались как ООП язык

Mykola
14.10.2017
13:45:58
Пример - с++

illiatshurotshka❄️
14.10.2017
13:46:14
для задач обычных функций

Sergey
14.10.2017
13:46:34
для задач обычных функций
ну в плюсах ты можешь так и так функции писать, но это не потому что плюсы а потому что когда-то плюсы были просто надстройкой над Си

illiatshurotshka❄️
14.10.2017
13:47:34
разве в C++ есть late binding

Sergey
14.10.2017
13:47:45

Mykola
14.10.2017
13:47:55
Не вижу как статические методы могут быть экономнее. Типа потому что виртуальные?

Sergey
14.10.2017
13:48:08

illiatshurotshka❄️
14.10.2017
13:48:21

Sergey
14.10.2017
13:48:33
ну мол у тебя есть метод, есть объект - их надо связать, для этого надо держать таблицу диспетчеризации жирную
а для статиков - можно инлайнить, можно просто вызвать, у тебя вся инфа кого вызывать доступна в компайл тайм

Mykola
14.10.2017
13:49:57
Так это ты сравниваешь статические и обычные методы, а не просто функции?

illiatshurotshka❄️
14.10.2017
13:50:02

Sergey
14.10.2017
13:50:55

illiatshurotshka❄️
14.10.2017
13:50:59
18

Sergey
14.10.2017
13:51:04

Google

Mykola
14.10.2017
13:51:20
Плюсы много откуда черпали. Отовсюду понемногу

Sergey
14.10.2017
13:51:59
если брать оригинальный c with classes то это симула
а не C++x11 какой

Mykola
14.10.2017
13:56:37
Статические методы это днище. Они очень невнятно встраиваются в ооп.

Aleh
14.10.2017
13:57:48
Зависит от того, как представлены классы
Если классы first class и тоже объекты, а статики - их методы, то норм ж

Mykola
14.10.2017
13:58:15
Как в жаваскрипит?
))

Aleh
14.10.2017
13:58:36
Ну по типу

Mykola
14.10.2017
13:58:41
А зачем делать классы объектами?

Aleh
14.10.2017
13:59:10
Потому что все объект, меня больше волнует вопрос зачем делать классы

Mykola
14.10.2017
13:59:42
Ну классы - это такая разновидность описания типа

Aleh
14.10.2017
14:02:15
Ну этакий номинальный тип привязанный к реализации, зачем он нужен неясно)

Mykola
14.10.2017
14:02:52
Ну простой способ восприятия типа как списка свойств

Aleh
14.10.2017
14:02:55
Точнее, зачем он сейчас в таком виде непонятно

Mykola
14.10.2017
14:03:41
Ну началось с простого, а закончилось тем что есть.

Sergey
14.10.2017
14:09:58
компилятор джавы не инлайнит статику
в рантайме jit этим занимается, и то не всегда
инлайнятся только константы примитивные
в котлине можно помечать функции чтобы компилятор их инлайнил, но это исходники раздувает

Google

Mykola
14.10.2017
14:11:51
Вот есть язык скала. Его сделали и чтоб классы были, и чтоб фп. Хорошо это или плохо? Для привыкших кодить на классах - хорошо. А тру функциональщики плюются. Потому что этот язык написан какбы для людей, а не для них. Это первый язык, который я знаю, сделан для людей. Остальные просто создают очередные клоны клонов языков, меняя скобочки на дужки. Кто-то знает ещё какой-то хороший язык?

Sergey
14.10.2017
14:12:37
скала для людей?
скала это пример солянки куда затащили все что можно только вообразить

Evgeniy
14.10.2017
14:13:54
и еще эстонский компилятор

Mykola
14.10.2017
14:14:32
А что не так? Язык плоский. Есть тебе классы, инфиксная нотация, все для людей
Я не говорю о реализации
Я о самом языке

Aleh
14.10.2017
14:15:19
Idris ?

Mykola
14.10.2017
14:15:38
Идрис не для людей
Как и любой мл-подобный язык

Sergey
14.10.2017
14:17:32
тулинг у скалы никакой, потому что угадать чего там макросы нагенерят идея не сможет
компиляция ооооочень долгая
от экосистемы джавы они отказались и юзают только тру скала либы
совместимости с джавой почти нет
вечно ломают обратную совместимость между релизами
стиль кода у тебя может быть начиная от процедурно-оопшного джава кода, заканчивая хаскелеподобным непонять чем

Aleh
14.10.2017
14:18:30

illiatshurotshka❄️
14.10.2017
14:18:35

Mykola
14.10.2017
14:18:58
Я ж не приводил аргументы

illiatshurotshka❄️
14.10.2017
14:19:09
приведи
мне нравится скала, но на ней намного сложнее писать чем на том же хаскеле

Mykola
14.10.2017
14:19:46
Самый первый аргумент: естественный язык.

Aleh
14.10.2017
14:19:51

illiatshurotshka❄️
14.10.2017
14:19:55
что значит естественный язык

Mykola
14.10.2017
14:20:09
Ну на котором мы общаемсч