The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Увидел свет язык программирования Rust 1.13, opennews (?), 11-Ноя-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


19. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от angra (ok), 12-Ноя-16, 03:44 
И ты тоже мало языков знаешь. Вот тебе реальный пример кода на J, одном из потомков APL:

>([:{: ]#~ (=|.&.>)) <@":"0 /:~(0:-.~[:,>:/**/)~(i.100)-.~i.1000

Посмотри в какие годы появились эти два языка.

Ответить | Правка | Наверх | Cообщить модератору

20. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Лехаemail (?), 12-Ноя-16, 04:12 
Наркоманский код, ужас просто...
Ответить | Правка | Наверх | Cообщить модератору

24. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от angra (ok), 12-Ноя-16, 04:44 
Дело привычки и знания синтаксиса. Мне после perl крайне неудобно работать с идентификаторами без сигилов, которые сразу указывают на тип. А у тех, кто не знаком с такой удобной штукой, обилие $ @ & % вызывает отвращение, им привычней добавлять к идентификатору короткие слова вроде array, list, map. При этом те же {} вместо begin end им почему-то кажутся нормальными, хотя это тоже "наркоманские" символы, но к ним привыкли и их значение известно.
Ответить | Правка | Наверх | Cообщить модератору

27. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Андрей (??), 12-Ноя-16, 05:17 
Есть ещё язык, на котором уже давно (с конца 60-ых) и всё ещё реально программируют. В основном, в области здравоохранения - MUMPS (в том числе диалект в бывшем СССР - Диамс). Но есть и игровые примеры. Читается на первый взгляд не очень просто:

https://github.com/pkoper/mumtris.git

write(s,y,x)
        n i,j,l,c,d
        d pos(y,x)
        s l=$l(s) f i=1:1:l d
        . s c=$e(s,i)
        . i c?1N d
        .. i 'c s y=y+1 d pos(y,x) q
        .. s d=$e(s,i+1) f j=1:1:c w d
        .. s i=i+1
        . e  w c
        d pos(0,0)
        q

Ответить | Правка | Наверх | Cообщить модератору

41. "Увидел свет язык программирования Rust 1.13"  –1 +/
Сообщение от QuAzI (ok), 12-Ноя-16, 10:45 
Зачем привыкать к плохому? Работа программиста - разрабатывать новый функционал и исправлять старые ошибки, а не одолевать бессонными сутками планку очередного одноразового выноса мозга. Ошибки зачастую вылазят именно из-за неоднозначности кода. Т.е. ты считаешь что он во всех ситуациях будет вести себя как тебе надо, а он в 99 отработал так, а в 1 иначе. И без 10000 часов зубрения этого ЯП ты всё равно будешь ошибаться, ошибаться и ошибаться (людям свойственно). И твой волшебный код обсыпанный "сахаром" и обмазанный известными только тебе типсами и триксами никому не нужен, потому что он несопровождаем. И Security through obscurity в исходниках не нужно.
Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

68. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от angra (ok), 12-Ноя-16, 18:56 
Еще раз для танкистов. Почему {} вместо begin end или вообще пробелов/табов это читаемо, сопровождаемо итд, а тот же % вместо map, dict или как еще фантазия подскажет конкретному програмисту - уже нет? А с неоднозначностью вообще мимо. Сигил @ означает список(массив) для любого программиста на перл, в отличии от скажем прилепленой к имени буковки L или A, которые расшифровываются в List или Array только для автора кода.
Ответить | Правка | Наверх | Cообщить модератору

96. "Увидел свет язык программирования Rust 1.13"  +2 +/
Сообщение от Orduemail (ok), 13-Ноя-16, 11:23 
> Почему {} вместо begin end или вообще пробелов/табов это читаемо, сопровождаемо итд, а тот же % вместо map, dict [...] - уже нет?

Потому что человек с трудом осилил синтаксис C, и теперь мысль об освоении нового синтаксиса вызывает у него неконтролируемые приступы паники.

Хотя, в отношении раста, мне кажется ситуация ещё веселее. Там проблемой является не синтаксис, а семантика, в частности "память" как абстракция языка -- раст видит память очень по своему, что создаёт проблемы при освоении раста, необходимо научиться думать о памяти в терминах раста, понимая эти термины именно так, как задумано. Умение так думать -- это новые навыки, вырабатывать новые навыки сложно, плюс это интеллектуальные навыки, отсутствие которых приводит к тому, что "почему-то не получается писать на расте, но почему непонятно". И вот тут человек начинает выдумывать причины объясняющие это непонятно. Единственная проблема, которую он чётко видит и может сформулировать -- это непривычный синтаксис, и он с готовностью объясняет все свои неудачи непривычным синтаксисом.

Это явление, которое чем-то сродни когнитивному диссонансу. Человек всегда ищет и всегда находит объяснения происходящему, и 95% не может находится в состоянии, когда есть что-то непонятное, чему нет объяснения. И когда у такого человека нет никакой возможности придумать здравое объяснение, он придумывает первое попавшееся. Есть байка про Фрейда, который проводя публичную лекцию пригласил на сцену человека из зала, ввёл в гипнотический сон, и дал тому инструкцию: выйдя из гипнотического сна забыть про инструкцию, пройти на своё место в зале, а когда Фрейд хлопнет в ладоши, подойти к Фрейду и подарить ему свою шляпу. Инструкция сработала, всё так и произошло, но самое интересное было дальше: этого добровольца спросили, чего это он подарил шляпу Фрейду, на что тот начал нести какой-то несвязный бред о том, что он очень уважает Фрейда, и хотел как-то выразить своё уважение, и поэтому подарил шляпу.

Это байка и про Фрейда, да ещё и с гипнозом, которая может не вызывать доверия, но есть множество других демонстраций тому же явлению, и эта байка укладывается в общую картину.

Люди очень некомфортно чувствуют себя в ситуации, когда они не могут вообще никак объяснить происходящее. И в такой ситуации они придумывают бредовое объяснение и искренне в него верят, не замечая бредовости.

Ответить | Правка | Наверх | Cообщить модератору

104. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Аноним (-), 14-Ноя-16, 11:55 
клоун: Сначала по поводу Фрейда. Мозг работает в условиях жесточайшего дефицита информации, поэтому додумывает недостающую информацию (воображение), строя полноценную (в рамках решаемой задачи) картину мира. Это проявляется напр. в возможности прочесть текст, в котором перемешаны буквы в словах:

По рзеузльаттам илссоевадний одонго анлигсйокго унвиертисета, не иеемт занчнеия, в каокм проякде рсапжоолены бкувы в солве. Галовне, чотбы преавя и пслонедяя бквуы блыи на мсете. осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы не чиаетм кдаужю бкуву по отдльенотси, а все солво цлиеком.

При этом мозг исходит из логичности мира. Он опирается на признак, который проще распознать, напр. на цвет букв, а не на их форму http://bespoleznyi.ru/_bl/3/17566004.png

Это высшая нервная деятельность. Дети начинают овладевать ею с 4-6 лет до 10-12 лет. Животные - никогда.

Будем ложить еду (бананы) в два ящика: в маленький ящик всегда много бананов, в большой (очень большой) всегда только один. Обезьяна всегда будет начинать с большого ящика. Кажется глупым, но в живой природе большое дерево приносит больше плодов, чем маленькое, поэтому обезьяна права.

Если оправдывать ожидания, то обучение идёт легче и быстрее, чем если обманывать их.

Как вы думаете, оператор "+" выполняет сложение, вычитание или деление с остатком? Сложение - и вы правы!

Как обратиться к 10-ому элементу массива mas? mas[10] - и вы неправы! Нужно try(unsafe(mas[10])) и это, хотя и работает, тоже неправильно. Правильно - переписать весь алгоритм чтобы не обращаться к элементу массива по индексу.

Чувствуете разницу? Это как будто вам запретили использовать букву "И" в словах, требуя заменять её на "Ы".

Ограничение бессмысленное. Почему нельзя этого делать? Почему можно делить на 1 (что бессмысленно логически), но нельзя делить на 0? Почему только деление на 0 приводит к прерыванию выполнения?

Среда разработки может без труда найти все обращения по индексу и показать все небезопасные части кода, зачем явно дописывать "unsafe" к каждому из них? Напоминает времена, когда человек, работающий удалённо на зарубежного работодателя, должен в каждом своём интернет-посте и обращении в гос. органы именовать себя "враг народа" ("Я враг народа, Иванов И.И. прошу предоставить мне справку"), а организация - "иностранный агент" ("Мы, иностранный агент, 'Голос' хотим знать поддерживаете ли вы Президента?").

Это не необходимость синтаксиса, это указание на неполноценность, которое вы должны сами явно написать.

ЯП (как и любое новое знание) должен опираться на уже известное, улучшая или упрощая, а не создавая искусственные проблемы.

В php можно обратиться к несуществующему или даже отрицательному индексу массива (NULL или элемент с конца массива соотв.). Во многих ЯП можно складывать строки с числами (получится строка, содержащая число). Или преобразовывать значения без явного приведения типа.

Это удобно и правильно. И именно такие ЯП победят. А не те, в которых тебя заставляют бегать на ходулях и убеждают что так будет удобнее. Потом. Когда привыкнешь. Когда-нибудь точно.

Ответить | Правка | Наверх | Cообщить модератору

107. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Аноним (-), 14-Ноя-16, 14:54 
> Как обратиться к 10-ому элементу массива mas? mas[10] - и вы неправы!

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


?- nth0(3,[1,2,3,4],X).
X = 4.
?- nth0(I,[1,3,3,7],3).
I = 1 ;
I = 2 ;
false.
?-  X=[1,2,Y], nth0(1,X,1337).
false.
?-  X=[1,2,Y], nth0(2,X,1337).
X = [1, 2, 1337],
Y = 1337.


> Это удобно и правильно. И именно такие ЯП победят. А не те,
> в которых тебя заставляют бегать на ходулях и убеждают что так
> будет удобнее. Потом. Когда привыкнешь. Когда-нибудь точно.

Да-да, васики победили! Сколько их там из "изначальных" используются вне музея, говорите? Ах, совсем ни сколько. А что так?

Ответить | Правка | Наверх | Cообщить модератору

108. "Увидел свет язык программирования Rust 1.13"  –1 +/
Сообщение от Аноним (-), 14-Ноя-16, 15:21 
клоун: Хотя кашалоты большие и тяжёлые, но суммарно в океане планктона больше. Я это к тому, что всевозможные простенькие (и не очень) веб-сайты пишут на php, а учётные системы в РФ - на 1С.

Из расчётов общего объёма кода эти (и многие другие подобные) ЯП выпадают, (на github их не постят), но суммарно и программистов и кода на них написано больше.

Ответить | Правка | Наверх | Cообщить модератору

109. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Аноним (-), 14-Ноя-16, 15:46 
> Из расчётов общего объёма кода эти (и многие другие подобные) ЯП выпадают,
> (на github их не постят), но суммарно и программистов и кода
> на них написано больше.

Только как-то проверить это заявление никак не получится.
Да и кому интересны миллионы хелло-ворлдов? Вы бы еще предложили посчитать то, что пишется на уроках информатики.

А вот если взять среднестатистического сферического^W пользователя и программы, которые он использует (сравнив хотя бы по времени активного использования программы ... или по loc/объемам кода), то я не уверен, что современный "планктон"^W бейсик перевесит.  
Потому как и пых и 1С отнюдь не "сами на себе" написаны, да и браузеры с ОС, гуями, серверами и прочей инфраструктурой, необходимой для того, чтобы фоточка котика из смартфона одного пользователя добралась до экрана другого -- пока еще погрязли в отсталости и, к великому сожалению интелей и прочих, переходить на васики не собираются ;)

Ответить | Правка | Наверх | Cообщить модератору

110. "Увидел свет язык программирования Rust 1.13"  –1 +/
Сообщение от Аноним (-), 14-Ноя-16, 15:58 
клоун: на 1С пишут не hello world'ы. И личный веб-сайтик он хоть и простенький, но реально работает.
Ответить | Правка | Наверх | Cообщить модератору

114. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от 0xd34df00d (??), 14-Ноя-16, 22:21 
Я не хочу возражать по программистской части, потому что это будет старым-добрым спором о статической сильной системе типов vs динамической слабой, о доказываемой корректности программ и прочем всяком, поэтому ограничусь математической частью.

> Почему можно делить на 1 (что бессмысленно логически)

Это не бессмысленно логически. Либо продемонстрируйте, пожалуйста, систему аксиом и вывод утверждения, показывающего, что это бессмысленно.

> но нельзя делить на 0? Почему только деление на 0 приводит к прерыванию выполнения?

Потому что деления нет, есть умножение на обратное. А у нуля обратного элемента нет. Введение обратного приведет к ряду забавных вещей, которые вы, без сомнения, увидите сами, если примете такую гипотезу.

Ответить | Правка | К родителю #104 | Наверх | Cообщить модератору

116. "Увидел свет язык программирования Rust 1.13. "  –1 +/
Сообщение от Аноним (-), 15-Ноя-16, 04:04 
клоун: математически результат не опоеделяем, но это не означает что нужно прерывать выполнение. Можно вернуть 0 или NaN (not a number любые операции с которым дают NaN).

Я заколебался каждый раз это условие писать.

Ответить | Правка | Наверх | Cообщить модератору

117. "Увидел свет язык программирования Rust 1.13. "  +1 +/
Сообщение от 0xd34df00d (??), 15-Ноя-16, 04:17 
> это не означает что нужно прерывать выполнение

Я говорил про математическую сторону. Про выполнение там вообще ничего не было.

> Можно вернуть 0

Нельзя.

> или NaN (not a number любые операции с которым дают NaN).

Поздравляю, вы почти придумали монаду Maybe.

А, и ещё, кстати.
> клоун

Любопытства ради, зачем вы это каждый раз приписываете к началу своего комментария?

Ответить | Правка | Наверх | Cообщить модератору

118. "Увидел свет язык программирования Rust 1.13. "  –1 +/
Сообщение от Аноним (-), 15-Ноя-16, 10:54 
клоун: Математика в программировании существует весьма условно. Так x=x+5 или x==y ("==" в сравнениях) в математике не имеют того же смысла. Запись сложных математических выражений в одну строчку тоже не приветствуется.

Поэтому можно возвращать то, что удобно. NaN или 0 удобны тем, что не прерывают работу программы.

Я за то, чтобы ни одна операции не прерывала работу программы. Верните NULL, NaN, INF - любую белеберду, но не нужно заставлять людей писать try-catch повсюду. Это уже наркомания: подсел и не слезешь.

> Любопытства ради, зачем вы это каждый раз приписываете к началу своего комментария?

Все сообщения с никами "клоун Стаканчик" и "клоун" автоудаляются сразу после добавления на форум (любят меня тут).

Ответить | Правка | Наверх | Cообщить модератору

73. "Увидел свет язык программирования Rust 1.13"  –1 +/
Сообщение от 5kbps (ok), 12-Ноя-16, 21:26 
>>([:{: ]#~ (=|.&.>)) <@":"0 /:~(0:-.~[:,>:/**/)~(i.100)-.~i.1000

Не имею понятия, что здесь написано, но вставлю свои пять копеек.

Иногда ценность имеет возможность писать максимально компактно, так, чтобы как можно большая часть программы влезла в один экран. Подозреваю, что это тот случай.

Никто ж не возмущается что люди используют регулярки вместо кучи вложенных циклов.

Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру