Войти
ФлеймФорумПрограммирование

Язык программирования nim (4 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#45
17:20, 22 мар. 2018

Мне нравится Nim. На нём приятно писать и у него по-моему самые нормальные макросы, что я пытался использовать. В нём нормальная рефлексия и вообще язык на очень многое способен во время компиляции, в отличии от остальных языков с подобными возможностями он как-то по-человечески это делает.

А так как-то всё равно нет возможности на нём писать у меня.

Когда мне зачем-то приспичило найти адекватную альтернативу C++, Nim, как язык, показался мне самым классным языком. Но у него реально маленькое сообщество и это очень чувствуется на самом деле.

Rust - писать на нём удовольствия ноль.
Go - gовно.
С# - говно.
Java - говно мамонта.
D - уже что-то, но маргинально.
Nim - классно, но очень маргинально к сожалению.


#46
17:25, 22 мар. 2018

kipar
> Так в чем же особенность аморального кода?
> Призывает к аморальным действиям? Описывает их?
например, подает плохой пример

черт, я лишь надеюсь что эта моральность не из саентологии растет :)
http://www.scientologyhandbook.org/integrity/sh9_1.htm
если что, то я имел ввиду мораль скорее образно, а не буквально

#47
17:34, 22 мар. 2018

kipar
> ну вот Ожегов.
>
> Мораль
> -и, ж. 1. Нравственные нормы поведения, отношении с людьми, а также сама
> нравственность.
это - не правильный Ожегов.

kipar
> не вижу противоречия ценностям общества.
некоторым не вполне моральным людям сложно понять,
почему говно - не есть ценность общества.

#48
17:54, 22 мар. 2018

Kartonagnick
> это - не правильный Ожегов.
а, так вы из параллельной вселенной, ну привет.
> почему говно - не есть ценность общества.
тут подмена тезиса. "Не есть ценность общества" и "Противоречит ценностям общества" - разные вещи. Говно - не противоречит ценностям общества и не является аморальным. Публичная его демонстрация (или, например, упоминание в разговоре) - соглашусь, противоречит. Но в отношении кода даже этого нельзя сказать - табу на публичную демонстрацию плохого кода в обществе нет, скорее есть неодобрение демонстрации кода вообще (и других вещей непонятных большинству наблюдателей).

Zegalur
> если что, то я имел ввиду мораль скорее образно, а не буквально
в общем тема ушла не туда и подискутировать о скобочках уже вряд ли получится, но по-моему если явные границы блоков помогают разделять блоки, то это преимущество явных границ, а не повод закрывать все блоки строго одновременно или запрещать вложенность = 4.

#49
18:03, 22 мар. 2018

kipar
> а, так вы из параллельной вселенной, ну привет.
во-первых об этом писал Ожегов. это я знаю совершенно точно.
во-вторых, об этом писали так же и другие всякие филологи.

откуда вы свой бред взяли - может с викки?

хотя помнится мне, на викки тоже момент раскрывался.

эти два слова не являются синонимами.

kipar
> "Не есть ценность общества" и "Противоречит ценностям общества" - разные вещи.
нет. не противоречит.

в обществе, где ценится трезвость, алкашня - аморальна.

kipar
> Говно - не противоречит ценностям общества и не является аморальным
гм...
ну сходите, посрите посредине красной площади.
ну или напишите говнокод
в моральной конторе,
с моральным ревью.

посмотрите на реакцию.


и да, привет из параллельной вселенной.
ога.

#50
18:20, 22 мар. 2018

Kartonagnick
> во-первых об этом писал Ожегов. это я знаю совершенно точно.
жду цитаты. интересно же, что там, в словаре из параллельной вселенной (нет).

> ну сходите, посрите посредине красной площади.
про это я написал.
что за "моральные конторы" даже узнавать не хочу - минилюб и миниправ видимо. Ну или РПЦ.

#51
18:34, 22 мар. 2018

kipar
> но по-моему если явные границы блоков помогают разделять блоки
так вопрос в том, будут ли они помогать, если все таки переписать код в более лаконичный

for i=...
  someTask1
  someTask2
end
someOtherTask

// против

for i=...
  someTask1
  someTask2
someOtherTask
#52
18:52, 22 мар. 2018

Zegalur

мне первый вариант больше нравится. синим цветом одно отделено от другого. Но это да, вкусовщина.

Если есть некий единый алгоритм, то его проще рассматривать как единое целое, не разбивая искусственно на две половинки только из-за того что отступы мешают. Собственно критерий простой - если для someTask1 можно придумать название из которого будет очевидно что внутри, то можно и выделить. А если нет и всё равно для понимания алгоритма придется ее открывать - то нафиг, только лишняя работа читателю.

#53
19:26, 22 мар. 2018

kipar
Разбивать не нужно, наоборот - обобщать.
Для большинства алгоритмов есть простая общая схема. Потом уже всякие кишки детали.
А тем остальным алгоритмам, которые без общей схемы, end{} не сильно помогут в читаемости :)

#54
19:36, 22 мар. 2018

блин, классный синтаксис. Надо попробовать пописать. Игнорировал его из-за gc
я корябал свой синтаксис, а там всё готовое

#55
7:25, 23 мар. 2018

kipar
> if condition
> for i=1..
> while not list.empty
> for j=1...
> ...много строк
> ...(в пределах экрана,
> ...ну скажем строк 10
> ...
> ...
> ...
> ...
> ...
> ...
> ...
> n=n+1
> ...
> ...продолжение программы
один вопрос, почему эти 10строк не в отдельном методе/процедуре/функции?

#56
8:00, 23 мар. 2018

return [](){};
> Что за бессмысленное обсуждение, и так понятно, что D всех закопает.
> Вот выкачу очередную фичу...

Запили, пожалуйста, сишный for:

void main()
{
  int[10] a;
  byte[10] b;
  for(int i = 0, byte j = 0; i < a.length; ++i, ++j)
  {
    a[i] = i;
    b[j] = j;
  }
}

И еще определение типов в рантайме:

import std.random;

struct S(T)
{
  T data;
  void doSmth() {}
}

auto foo()
{
  switch(uniform!uint % 2)
  {
    case 0: return new S!byte;
    case 1: return new S!float;
    default: assert(0);
  }
}

void bar(S a)
{
  a.doSmth;
}

void main()
{
  foo;
  S!string a;
  bar(a);
}

#57
8:17, 23 мар. 2018

И еще хотелось бы, чтобы компилятор за меня располагал в памяти поля классов/структур в порядке, гарантирующем наименьшее использование памяти. Для чего-то он это делает, для чего не помню. Каждый раз приходится лезть в документацию. И еще хотелось бы иметь крестовые структуры. С дефолтным конструктором, который я могу сам написать.

#58
8:41, 23 мар. 2018

Полез проверять сишный фор. Оказывается я что-то путаю. Нельзя так объявлять переменные в for(...). Надо объявления выносить из for(...). Однако я почему-то уверен, что так писал и всё работало.

#59
10:05, 23 мар. 2018

FlyOfFly
Потому что это один алгоритм. Не выделять же процедуру "OneStepOfAStar".

youtube
в сишном форе можно объявлять, но только одну. В дишном также.

Страницы: 1 2 3 4 5 6 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.