| |||
|
|
Скала катится в сраное говно: vit-r@lj навел на дивное: Скалу решили улучшить макросами. Я макросы люблю, но это умиляет и поражает: Но это ладно. Что меня действительно удивляет это отношение к макросам как к игрушке для психов. Мне прямо стыдно это упоминать в надцатый раз, но макросы в Скале и макросы в плюсах это совершенно разные вещи. На эту тему предлагаю пролистать наш туториал: http://scalamacros.org/documentation/ge Разумеется разные. С-шные - штука полезная, а это - сраное неюзабельное говно [неоригинальное к тому же - PPS], которым будут пользоваться только маньяки. Причем явление это я наблюдаю в -надцатый раз. Оно случается как правило, когда людьми обалдевают Большие Мысли™. FP, к сожалению, в качестве побочного эффекта провоцирует увлечение Большими Мыслями. PS: Макросы - вещь нужная, потому в первую очередь, что в программе даже на самом-самом-самом языке всегда найдется какая-нибудь регулярность, параметризуемая часто еще, которая средствами языка не выражается. И тут без макросов никак (ну кроме как руками писать одно и тоже 20 раз). Я понимаю "технологические" возражения против, но языков в которых "макросы не нужны" нет, не было и не будет. Другое дело, что если в языке оказались нужны макросы (а они окажутся нужны) - это хороший повод задуматься о его редизайне. Но редизайн редизайном, а работать-то надо. PPS: Если кто думает, что то, что то, что эти скальщики выдумали - это "прогресс по сравнению с С": это PL/I #$%ть, 1967 год*, промышленный язык, С тогда только в проекте был (и оказалось есс-но никому не нужно): %DECLARE (A,B,C) CHARACTER; %ACTIVATE CAT; %A = 'AAA'; %B = 'BBB'; %C = 'CCC'; RES_STRING_3 = CAT(A,B,C); RES_STRING_2 = CAT (A,B); RES_STRING_1 = CAT(A); %CAT: PROCEDURE(X,Y,Z) RETURNS(CHAR); DECLARE (X,Y,Z) CHAR; DECLARE S CHAR; IF PARMSET(Z) THEN S = ''''||X||Y||Z||''''; ELSE IF PARMSET(Y) THEN S = ''''||X||Y||''''; ELSE S = ''''||X||''''; RETURN(S); %END CAT; *) Я дал ссылку на микрофокусоский мануал, уверяю вас - у |
||||||||||||||