Size: a a a

Сrystal Lang — русскоговорящее сообщество

2021 March 24

AP

Alexander Popov in Сrystal Lang — русскоговорящее сообщество
Но я не до конца понимаю сравнения C с Go, когда есть Rust. Ладно Crystal с Go, но C…
источник
2021 March 25

В

Володя in Сrystal Lang — русскоговорящее сообщество
Я сравниваю исключительно визуальную простоту синтаксиса и стандартной библиотеки, к технической стороне у меня претензий нет
источник

YS

Yura Sokolov in Сrystal Lang — русскоговорящее сообщество
Alexander Popov
Но я не до конца понимаю сравнения C с Go, когда есть Rust. Ладно Crystal с Go, но C…
Go гораздо ближе к C, чем к Rust.
Понятно, что сейчас конкурентом Go является именно Rust. Но это настолько разные языки, что сравнивать их друг с другом... Ну да, тут "теплое", ну а там "мягкое". Разница очевидна.
С С же сравнение более гранулярное, т.к. Go - это C с  GC, каналами и интерфейсами, и без макросов. Ок, еще и с горутинами (хотя по мне, это скорее особенность рантайма, чем языка).
источник

AP

Alexander Popov in Сrystal Lang — русскоговорящее сообщество
Yura Sokolov
Go гораздо ближе к C, чем к Rust.
Понятно, что сейчас конкурентом Go является именно Rust. Но это настолько разные языки, что сравнивать их друг с другом... Ну да, тут "теплое", ну а там "мягкое". Разница очевидна.
С С же сравнение более гранулярное, т.к. Go - это C с  GC, каналами и интерфейсами, и без макросов. Ок, еще и с горутинами (хотя по мне, это скорее особенность рантайма, чем языка).
Я много раз слышал, что Rust — замена C, но ни разу не слышал такого про Go, он вроде воспринимается как более высокоуровневый язык.
источник

YS

Yura Sokolov in Сrystal Lang — русскоговорящее сообщество
Alexander Popov
Я много раз слышал, что Rust — замена C, но ни разу не слышал такого про Go, он вроде воспринимается как более высокоуровневый язык.
Это из-за того, что в Go встроен GC (и от него ни куда не деться), а в Rust - нет. И потому, что у Rust хороший оптимизатор, доставшийся от LLVM, а у Go компилятор почти с нуля написан, и оптимизации только на него нарастают.
источник

YS

Yura Sokolov in Сrystal Lang — русскоговорящее сообщество
По высокоуровневости же, Rust "на голову выше". А Go же придерживается пока парадигмы "быть простым, как табуретка". Чем он и ближе к C.
источник

in Сrystal Lang — русскоговорящее сообщество
Здравствуйте, я только начал учить Кристалл, скажите пожалуйста, оператор && при сравнивание двух условий, если одно из них ложно, возвращается левая часть? Не могу немного разобраться
источник

S

Sasha in Сrystal Lang — русскоговорящее сообщество
Здравствуйте, я только начал учить Кристалл, скажите пожалуйста, оператор && при сравнивание двух условий, если одно из них ложно, возвращается левая часть? Не могу немного разобраться
Возвращается ложь
источник

in Сrystal Lang — русскоговорящее сообщество
Sasha
Возвращается ложь
Понял, спасибо большое!
источник

З/

Зелёный /4Y/ in Сrystal Lang — русскоговорящее сообщество
&& (and, и) - должны быть оба true
|| (or, или) - хотя бы один true
источник
2021 March 26

in Сrystal Lang — русскоговорящее сообщество
Скажите пожалуйста, следующий код определяет два класса с одинаковым именем как один? Т.е я имею ввиду данные классы с одинаковым именем в итоге будут объеденины в один? По документации понял, что так и будет
class Person
 def initialize(@name)
   @age = 0
 end
end

class Person
 def become_older
   @age += 1
 end
end
источник

)

) in Сrystal Lang — русскоговорящее сообщество
Скажите пожалуйста, следующий код определяет два класса с одинаковым именем как один? Т.е я имею ввиду данные классы с одинаковым именем в итоге будут объеденины в один? По документации понял, что так и будет
class Person
 def initialize(@name)
   @age = 0
 end
end

class Person
 def become_older
   @age += 1
 end
end
Монкейпатчинг
источник

)

) in Сrystal Lang — русскоговорящее сообщество
Скажите пожалуйста, следующий код определяет два класса с одинаковым именем как один? Т.е я имею ввиду данные классы с одинаковым именем в итоге будут объеденины в один? По документации понял, что так и будет
class Person
 def initialize(@name)
   @age = 0
 end
end

class Person
 def become_older
   @age += 1
 end
end
Да так и будет , один класс
источник

in Сrystal Lang — русскоговорящее сообщество
)
Да так и будет , один класс
Спасибо большое
источник

RU

Roman Usherenko in Сrystal Lang — русскоговорящее сообщество
)
Монкейпатчинг
уголок зануды:
ну эт формально не совсем манкипатчинг. это "переоткрытие класса". конечно манкипатчинг использует эту фишку, но не всякое переоткрытие - манкипатчинг
источник

VF

Vlad Faust in Сrystal Lang — русскоговорящее сообщество
По-хорошему, reopening должен быть explicit, как и overriding методов внутри
источник
2021 March 27

OF

Otto Faust in Сrystal Lang — русскоговорящее сообщество
Всем привет!
источник

OF

Otto Faust in Сrystal Lang — русскоговорящее сообщество
Я хотел бы спросить можно ли передобвать cflags при компиляции? А именно -fno-pie
источник

OF

Otto Faust in Сrystal Lang — русскоговорящее сообщество
Хотел получить симов из стрки с помощью: str.char_at(i) но получаю Error: undefined method 'char_at' for String
источник

OF

Otto Faust in Сrystal Lang — русскоговорящее сообщество
Я что то делаю не так
источник