Ш̴̴̜̥͍͕̼̙̱͙͎͍̘̀̐̔́̾̃͒̈̔̎́́͜р̧̛̺͖͖̯̖ͧͤ͋̅̽ͧ̈̐̽̆̐͋ͤͦͬ͛̃̑͞͞и̒ͥͤͯ͂ͣ̐̉̑ͫ̉̑҉̛͏̸̻͕͇͚̤͕̯̱̳͉ͅф̴̴̡̟̞͙̙̻͍̦͔̤̞̔̓́̍͗̚͢͞ͅт̨̐ͫ̂͊̄̃ͥͪ͏̫̺͍̞̼͈̩̥̜͔͜͜ы̸̴̱̺̼̠̦͍͍͍̱̖͔̖̱͉̅͑͌͒ͫ͒̀ͥ͐ͤ̅͘̕.̵̴̡̭̼̮͖͈̙͖͖̲̮̬͍͙̼̯̦̮̮ͦ̆̀̑̌ͮͧͣͯ̔̂́͟г͌ͮ̏̈͂ͯ̚҉̛̙̬̘̲̗͇͕̠̙͙̼̩͚̀͘͞ͅо̷̥̯̘̓ͤ̽͒̋̉̀̂̄̒̓̊ͨ͛́̌ͤ̂̀͠в̶̒͒̓̏̓̚҉̛̙̘̺̰̮̼̟̼̥̟̘̠̜͜н̸̷̸̲̝͈͙̰̟̻̟̰̜̟̗͎̻̻͍̿̔̃ͨ͑о̔̀̋ͫ̇̿̐ͫ͌͗ͩ҉̨̜̙̙͈͍̮̮̼̙̘̞̕͜͡ Войти !bnw Сегодня Клубы
Я опять за своё пердунство. Многие существующие языки программирования очень украсило бы, если бы они были expression oriented, т.е. если бы тела функций и управляющие конструкции были бы выражениями. По сути для тех, кто пишет на JS вручную, это единственное, чего не хватает в современном JS и всяких TypeScript — даже pattern matching какой-никакой появился, а этого нет. После появления намёков на лямбды этого не хватает Плюсам. Ну ладно, JS и Плюсы — в ногу стреляющие языки с большим количеством старого кода, и в них стрёмно дополнять семантику существующих конструкций. А TypeScript — да тоже в ногу стреляющий — поскольку на него копипастят код с JS, только типизированный. Но ведь есть языки сравнительно новые — Go тот же самый. В него так просто сишный код не скопипастишь, переписывать надо. Почему тело функции, `if` и блок не сделать было выражениями?.. D опять же — тоже делали с нуля, тоже в последние 20 лет и кода на нём немного. Да до фига их. В которых явно надо писать `return`. Как будто это очень круто — специально писать `goto` там, где можно его не писать. Опять же, когда управляющие конструкции — выражения, компилятору легче типы выводить, оптимизировать и т.д., потому что ненужной императивщины меньше. Почему создатели языков так не любят делать их expression oriented? **P.S.** Мой пост похоже примерно как звонок в редакцию журнала «За рулём» с вопросом «А почему вы не пишете **только** про BMW?» Только тот звонок был хотя бы в редакцию.
Рекомендовали: @o01eg @ndtimofeev
#T3KUND / @dluciv / 2213 дней назад

Rust?
#T3KUND/BWX / @o01eg / 2213 дней назад
Потому что создатели языков как правило могут только в копипасту их любимого молотка.
#T3KUND/QLJ / @l29ah / 2213 дней назад
@o01eg Rust да, но он скорее исключение. У него настолько сильный локальный контроль происходящего, что возможно на нём по-другому просто нельзя. Т.е. в чисто императивном виде просто обломишься скомпилить какие-то вещи...
#T3KUND/HNB / @dluciv --> #T3KUND/BWX / 2213 дней назад
@l29ah Да вот как-то мне не верится, что Томпсон и Александреску *могут только*. Тут точно какой-то глубокий смысл есть...
#T3KUND/8DJ / @dluciv --> #T3KUND/QLJ / 2213 дней назад
@dluciv Если ты про Го, то копрорация сказала "сделай язык чтобы сишники не охуели", результат закономерно представляет из себя Java.
#T3KUND/1L7 / @l29ah --> #T3KUND/8DJ / 2213 дней назад
@l29ah Вот кстати эта идея по всей видимости — http://laser.inf.ethz.ch/2012/slides/Meyer/eiffel_laser_2012.pdf стр. 22 (слайды 43 и 44). Моча съе^W^WПрограммная инженерия нагнула программирование, как бы странно это ни звучало. Ну или ту часть программирования, которая не успела убежать. Типа выбирай, с кем ты.
#T3KUND/YMP / @dluciv --> #T3KUND/1L7 / 2213 дней назад
> Почему создатели языков так не любят делать их expression oriented? потому что продолжают создавать императивные языки
#T3KUND/2Q4 / @anonymous / 2213 дней назад

А зачем?

#T3KUND/V8R / @cat-o-nine-tails / 2213 дней назад
Go не делали с нуля ни разу. Go это Limbo, который Пайк придумал как некую эволюцию сраной сишки. D это скорее попытка сделать кресты из которых наконец выкинули сраную сишку. Алсо посмотри на ситуацию с другой стороны. А что это ты не назвал Haskell, Clean, Ocaml, Disciple, PureScript, Rust? Может вопрос в том, почему языки с первоклассными управляющими конструкциями никому на хуй не нужны?
#T3KUND/SJQ / @ndtimofeev / 2213 дней назад
@ndtimofeev Языки, у которых и так всё ок, зачем называть? У них и так всё ок =)
#T3KUND/09W / @dluciv --> #T3KUND/SJQ / 2212 дней назад
@cat-o-nine-tails Потому что нравится
#T3KUND/IES / @dluciv --> #T3KUND/V8R / 2212 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.