Size: a a a

2018 May 25

З/

Зелёный /4Y/ in ru.nim.talks
Artem Labazin
во, ещё, третий "недостаток":
прагмы - норм тема, но в коде выглядят как говно, в смысле у меня кодули выглядят стройненько и красиво до появления этих фигурных скобочек и имён прагм в сигнатуре функций!

Почему нельзя было сделать их визуально похожими на аннотации в джаве или декораторы в питоне? ну норм же выглядит:

@SomePragma("parameter?")
proc doSome () =
 echo "Hello world!"

чем:

proc doSome () {.SomePragma.} =
 echo "Hello world!"
Тычо тычо тычо!! ТЫ не шаришь
источник

AL

Artem Labazin in ru.nim.talks
как так?
источник

З/

Зелёный /4Y/ in ru.nim.talks
Этого я уже не знаю
источник

З/

Зелёный /4Y/ in ru.nim.talks
Если первое - придирка, так как язык не может уметь всё,
Второе - неявное упущения языка,
то Третье - практически придирка.

Хотя мне стоит ещё много прочитать, чтобы так говорить. Я, можно сказать, познаю мир программированния практичски заново.
источник

AL

Artem Labazin in ru.nim.talks
вот пример из стандартной библиотеки:
https://github.com/nim-lang/Nim/blob/master/lib/pure/strutils.nim#L83

там написано так (комменты опустил):

proc isDigit*(c: char): bool {.noSideEffect, procvar,
 rtl, extern: "nsuIsDigitChar".} =
 return c in Digits


но это нечитаемо! Программист чаще читает код чем пишет (свой или тот который поддерживает или чей то для изучения). И вот так, ИМХО, читаемее:

@NoSideEffect
@Procvar
@Rtl
@Extern("nsuIsDigitChar")
proc isDigit*(c: char): bool =
 return c in Digits


Просто потому что ты взглядом сразу отделяешь метаинформацию о функции (аннотации и их параметры) и сигнатуру (имя, параметры) с возвращаемым значением

Если это ещё в текстовом редакторе граммотно подсветить, то ваще конфитка (аннотации потемнее, имя метода и аргументы посветлее)
источник

З/

Зелёный /4Y/ in ru.nim.talks
Artem Labazin
вот пример из стандартной библиотеки:
https://github.com/nim-lang/Nim/blob/master/lib/pure/strutils.nim#L83

там написано так (комменты опустил):

proc isDigit*(c: char): bool {.noSideEffect, procvar,
 rtl, extern: "nsuIsDigitChar".} =
 return c in Digits


но это нечитаемо! Программист чаще читает код чем пишет (свой или тот который поддерживает или чей то для изучения). И вот так, ИМХО, читаемее:

@NoSideEffect
@Procvar
@Rtl
@Extern("nsuIsDigitChar")
proc isDigit*(c: char): bool =
 return c in Digits


Просто потому что ты взглядом сразу отделяешь метаинформацию о функции (аннотации и их параметры) и сигнатуру (имя, параметры) с возвращаемым значением

Если это ещё в текстовом редакторе граммотно подсветить, то ваще конфитка (аннотации потемнее, имя метода и аргументы посветлее)
так ты же был на гитхабе. Чего иссую не кинешь?
источник

З/

Зелёный /4Y/ in ru.nim.talks
О! И ты подошел!
источник

d

data-man in ru.nim.talks
Всем привет!
И тут буду флудить! :)
источник

З/

Зелёный /4Y/ in ru.nim.talks
Me too :)
источник

d

data-man in ru.nim.talks
Of конечно! :)
источник

З/

Зелёный /4Y/ in ru.nim.talks
Ну вот! Нимоманов всё больше
источник

d

data-man in ru.nim.talks
Целых 21! (это не факториал)
источник

AL

Artem Labazin in ru.nim.talks
Зелёный /4Y/
так ты же был на гитхабе. Чего иссую не кинешь?
мб я еще чего не понимаю и нужно больше опыта в nimкодописе, когда много лет пишешь на одном языке каждый день - хочется все остальные языки превратить в него. Поэтому я выжидаю, напишу большой проект на ним, что нибудь больше чем Лунтик, пойму что прагмы говно - сделаю пулл реквест на гитхаб, а пока это всё, скорее, мысли в слух
источник

AL

Artem Labazin in ru.nim.talks
а есть тут кто из СПб?
источник

З/

Зелёный /4Y/ in ru.nim.talks
Ну я точно нет
источник

З/

Зелёный /4Y/ in ru.nim.talks
Кстати. Я ещё не проверял, но на сколько Ним придирчив к отступам?

Просто мне кажется, что
proc isDigit*(c: char): bool {.noSideEffect, procvar,
 rtl, extern: "nsuIsDigitChar".} =
 return c in Digits

Можно записать как
proc isDigit*(c: char): bool {
   .noSideEffect,
   procvar,
   rtl,
   extern: "nsuIsDigitChar".} =
 return c in Digits
источник

З/

Зелёный /4Y/ in ru.nim.talks
Тогда это в меру читабельно, но требует соответствующей подсветки
источник

d

data-man in ru.nim.talks
Не каждый PR будет принят, по себе знаю. :)
источник

З/

Зелёный /4Y/ in ru.nim.talks
Просто например в том же GDScript (питоноподобном языке в Godot engine) такой перенос относится к стилю кода. Да и достаточно читабельно кстати
источник

З/

Зелёный /4Y/ in ru.nim.talks
Зелёный /4Y/
Кстати. Я ещё не проверял, но на сколько Ним придирчив к отступам?

Просто мне кажется, что
proc isDigit*(c: char): bool {.noSideEffect, procvar,
 rtl, extern: "nsuIsDigitChar".} =
 return c in Digits

Можно записать как
proc isDigit*(c: char): bool {
   .noSideEffect,
   procvar,
   rtl,
   extern: "nsuIsDigitChar".} =
 return c in Digits
источник