The OpenNET Project / Index page

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



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

Оглавление

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

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


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

12. "Увидел свет язык программирования Rust 1.13"  +7 +/
Сообщение от doom (ok), 12-Ноя-16, 02:26 
> Синтаксис ужаснейший просто.

Согласен, налепили уже столько говна, что С++ кажется не таким и страшным.

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

13. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от imprtat (ok), 12-Ноя-16, 02:44 
Так кажется только до тех пор пока не попробуешь. Ну а некоторые ограничения быстро отбрасывают "горе-девов", которые рвутся имплементить что-либо после просмотра хеллоу-ворлда, вместо того что бы прочитать спецификацию.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

16. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Андрей (??), 12-Ноя-16, 03:00 
А спецификация у языка Раст не на 1500 страниц, как у С++? Единственная известная мне спецификация, которую при желании реально прочесть за раз от корки до корки - это у Go. Буквально несколько дюжин страниц.
Ответить | Правка | Наверх | Cообщить модератору

18. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от angra (ok), 12-Ноя-16, 03:38 
Может ты просто мало языков знаешь? Посмотри на Component Pascal.

Спецификация на Go 25.5k слов, 3k  строк
Спецификация на CP 1.5k слов, 0.3k  строк

Разница на порядок и не в пользу go.

И это мы еще не берем эзотерику вроде brainfuck.

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

21. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Андрей (??), 12-Ноя-16, 04:26 
Эзотерику мы не берём и правильно. А Component Pascal где-то также распространён как и Go? Если бы да, то и я бы о нём знал. Но теперь буду знать, спасибо. Ведь интересно сравнить те языки, которые по тем или иным причинам пробились.

> Спецификация на Go 25.5k слов, 3k  строк
> Спецификация на CP 1.5k слов, 0.3k  строк

Так, Go: https://golang.org/ref/spec и CP: http://www.oberon.ch/pdf/CP-Lang.pdf
В CP-Lang.pdf 32 страницы - так что никак ни 300 строк, а

$ pdftotext CP-Lang.pdf - | wc
   2321   11097   70094

2.3k строк.

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

23. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от angra (ok), 12-Ноя-16, 04:37 
Да, у меня в прошлом посте неверные цифры. Скорее всего из-за копирования текста с неотрендеренного полностью pdf. Тем не менее спецификация его действительно короче чем у go.
Неужто о семействе языков pascal ни разу слышать не приходилось?
Ответить | Правка | Наверх | Cообщить модератору

26. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Андрей (??), 12-Ноя-16, 05:05 
Именно Component не помню. Об Обероне, конечно, да. А на VHDL и писать время от времени приходится. Аду как минимум читать, т.к. свободный симулятор GHDL на ней написан.
Ответить | Правка | Наверх | Cообщить модератору

15. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от Леха (?), 12-Ноя-16, 03:00 
Мне кажется, что в последнее время создатели новыхнедоязыков, употребив наркотические средства, придумывают синтаксис, который читаем и понятен только им. Такими темпами скоро будет: f a &t *f = | &a ^ !g | .. : str -> { ok(a?) }
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

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ообщить модератору

34. "Увидел свет язык программирования Rust 1.13"  –2 +/
Сообщение от Orduemail (ok), 12-Ноя-16, 08:57 
> Мне кажется, что в последнее время создатели новыхнедоязыков, употребив наркотические
> средства, придумывают синтаксис, который читаем и понятен только им.

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

Синтаксис нового языка должен быть понятен только посвящённым, иначе это не новый язык, а очередной недоклон сишечки. Ну или алгола, хотя сегодня это уже не столь актуально.

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

39. "Увидел свет язык программирования Rust 1.13"  +2 +/
Сообщение от Аноним (-), 12-Ноя-16, 10:26 
Бред.

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

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

54. "Увидел свет язык программирования Rust 1.13"  +2 +/
Сообщение от антончик (?), 12-Ноя-16, 14:23 
НЕ бред, Haskell богат всяческими сахарными операторами и прочими особенностями, повышая тем порог вхождения новичков, он достаточно сильно абстрагирован от машины (сильнее чем си или rust), то-есть он по-сути "человечнее", и рождён этот сахар был не для того, чтобы прогнуться под особенности машины, а чтобы реализовать потребности человеческой логики, просто этот язык и его тонкости нужно знать, чтобы использовать это эффективно, и по факту это и есть упрощение переноса человеческой логики в машинную, удалясь от деталей реализации машины так далеко, как это возможно, чтобы не потерять эффективность, при этом кратко и лаконично выражая идеи человеческой логики.

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

Самый простой язык по вашему - это Forth.
PEN APPLE UGH!
И получаем на вершине стека APPLEPEN.

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

81. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Orduemail (ok), 12-Ноя-16, 23:56 
> Для развлекушек с символами есть свои местечковые ЯП и нефиг переносить это в общий тренд.

Окей. Нефиг, так нефиг. Мозилла идёт своим трендом, а общий тренд пускай катится куда ему угодно. Меня такое положение дел вполне устраивает.

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

89. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от angra (ok), 13-Ноя-16, 01:55 
Ты в силу отстутсвия опыта конечно не поверишь, но использование неалфавитноцифровых символов(или просто [^\w]) таки упрощает работу программиста, причем как по написанию, так и по чтению кода. Точно также как они упрощают запись и чтение выражений в математике. Например, вместо громоздкой фразы "необходимо и достаточно" или "тогда и только тогда" можно написать просто "<=>" и каждый математик это поймет, точно также как ты понимаешь, когда вместо "2 плюс 2 равно четыре" пишут "2+2=4".

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

105. "Увидел свет язык программирования Rust 1.13"  –3 +/
Сообщение от Аноним (-), 14-Ноя-16, 13:43 
клоун: Ты действительно считаешь, что

if(JumpStm *j = dynamic_cast<JumpStm*>(&stm))

удобнее, чем

if(j=stm)

Громоздкие синтаксические конструкции возникают из-за непродуманного синтаксиса.

Взять напр. математику, в ней нет необходимости добавлять проверку на ноль или исключение всякий раз когда встречается деление. И вопрос как это сделать в программировании быстро и удобно. Как в php, добавив @ перед строкой или как в С++:

#include <exception>

try
{
  MyChild &child = dynamic_cast<MyChild&>(*base);
}
catch(std::bad_cast &e)
{
}

Синтаксис явно избыточен.

А вот другой пример с заменой цикла:

for(int i=0;i<=mas.count();i++)
{
arr_element element=mas[i];
TODO
}

на

forany(element,mas)
{
TODO
}

Очевидно, что такая замена пошла коду на пользу. Количество синтаксиса, переменных и возможностей совершить ошибку сократилось.

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

115. "Увидел свет язык программирования Rust 1.13"  +2 +/
Сообщение от 0xd34df00d (??), 14-Ноя-16, 22:26 
> Взять напр. математику, в ней нет необходимости добавлять проверку на ноль или
> исключение всякий раз когда встречается деление.

Вообще-то есть. На нулевые и вырожденные случаи постоянно проверять надо. Вы не можете сказать, что ab = cb ⇔ a = c, вы должны сказать ab = cb ⇔ a = c ∨ b = 0. Вы не можете сказать, что в комплексном векторном пространстве у оператора существует собственное значение, вы должны сказать, что в ненулевом комплексном пространстве у оператора существует собственное значение.

> И вопрос как это сделать
> в программировании быстро и удобно.

Завернуть вычисление в Either-подобную монаду и писать везде >>=  (ну или do).

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

50. "Увидел свет язык программирования Rust 1.13"  +/
Сообщение от Аноним (-), 12-Ноя-16, 13:06 
Согласен. Лично меня из с++ заменителей больше всего привлекает D, хотя бы своим вменяемым синтаксисом, на котором приятно писать.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

52. "Увидел свет язык программирования Rust 1.13"  +1 +/
Сообщение от Аноним (-), 12-Ноя-16, 13:42 
>Лично меня из с++ заменителей больше всего привлекает D

А меня вот ничего не привлекает, останусь на C++.

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

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

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




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

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