Size: a a a

2020 October 25

FN

Freyr Njordrson in fprog_spb
Ilia Zviagin
А, понял. А что за вторая система мета программирования?
Неужели препроцессор и его макросы?

Это не считается, это говно, а не система мета программирования. И сложности она не добавляет, ввиду того, что поста как палка.
Ага, проста как палка. И потому сложна, надо помнить, почему нельзя написать

#define MAX(a,b) (a > b) ? a : b
источник

IZ

Ilia Zviagin in fprog_spb
Я скалу не знаю почти, очень поверхностно учил, но мне кажется, что не может она быть сложнее с++ никак, просто там сложность другого рода, концептуальная. Её сложнее понять, но проще в ней разобраться.
источник

Y

Yuuri in fprog_spb
Году в 13-14 ещё
источник

IZ

Ilia Zviagin in fprog_spb
Freyr Njordrson
Ага, проста как палка. И потому сложна, надо помнить, почему нельзя написать

#define MAX(a,b) (a > b) ? a : b
Нафига это вообще писать?
источник

Y

Yuuri in fprog_spb
Ilia Zviagin
Я скалу не знаю почти, очень поверхностно учил, но мне кажется, что не может она быть сложнее с++ никак, просто там сложность другого рода, концептуальная. Её сложнее понять, но проще в ней разобраться.
В современном C++, да с развесистым метапрограммированием, тоже много вполне концептуальной сложности
источник

Y

Yuuri in fprog_spb
Ilia Zviagin
Нафига это вообще писать?
– У вас тут ошибку легко сделать!
– Нафига её вообще делать?
источник

IZ

Ilia Zviagin in fprog_spb
Yuuri
> И сложности она не добавляет, ввиду того, что поста как палка.
Брейнфак тоже прост как палка, но при применении сложностей очень даже добавляет :3
Вот же как раз хороший пример. Это концептуальная сложность.
Другой пример - язык Форт.
источник

IZ

Ilia Zviagin in fprog_spb
Ilia Zviagin
Вот же как раз хороший пример. Это концептуальная сложность.
Другой пример - язык Форт.
Не дописал...
источник

FN

Freyr Njordrson in fprog_spb
Ilia Zviagin
Нафига это вообще писать?
Это пример. В каждом втором легаси проекте куча макросов, а если это проект на Gobject/Gtk, то там вообще абьюз макросов за гранью добра и зла.
источник

Y

Yuuri in fprog_spb
> правила 3/5
Три пятых – это золотое сечение почти 😅
источник

A

Aleksandr Khristenko in fprog_spb
Freyr Njordrson
Любопытно, чем именно показалось? В крестах две системы метапрограммирования, SFINAE, всякие rule-of-3/5, имплицитные касты и вызовы конструкторов и много неочевидных вещей, о которых нужно знать и помнить. А в скале что?
А в скале имплиситы.
источник

Y

Yuuri in fprog_spb
Freyr Njordrson
Это пример. В каждом втором легаси проекте куча макросов, а если это проект на Gobject/Gtk, то там вообще абьюз макросов за гранью добра и зла.
Во вполне современном Unreal Engine 4 макросы кругом
источник

AT

Alexander Tchitchigi... in fprog_spb
Freyr Njordrson
Любопытно, чем именно показалось? В крестах две системы метапрограммирования, SFINAE, всякие rule-of-3/5, имплицитные касты и вызовы конструкторов и много неочевидных вещей, о которых нужно знать и помнить. А в скале что?
В скале:
Макросы (посложнее Racket)
Плагины компилятора
Implicit arguments
Implicit casts
Path-dependent types
Ещё что-то интересное, не помню уже -- я не скалолаз. 😊
источник

A

Aleksandr Khristenko in fprog_spb
Aleksey @cheatex
боюсь правда от упоротых которым взрослые не дают хаскель в прод и они херачат на эффектах хоть в скале будет трудно избавиться
Ну так сейчас это вроде и считается актуальным стилем программирование на скале. Всякие там cats/zio
источник

Y

Yuuri in fprog_spb
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Damage")
int32 TotalDamage;
источник

AT

Alexander Tchitchigi... in fprog_spb
Справедливости ради, implicit casts то ли уже выпилили, то ли выпилят в третьей.
источник

AT

Alexander Tchitchigi... in fprog_spb
Yuuri
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Damage")
int32 TotalDamage;
Похоже на Qt. 😂
источник

Y

Yuuri in fprog_spb
Ага! Только в Qt свой добавочный препроцессор, да? Или уже нет?
источник

Y

Yuuri in fprog_spb
UCLASS()
class AMyActor : public AActor
{
   GENERATED_BODY()
<…>
источник

AT

Alexander Tchitchigi... in fprog_spb
Но implicit arguments => недо-классы типов без когерентности, что даёт возможность отстрелить пару пальцев в неожиданных местах. 😊
источник