Посмотрел на современные статически-типизированные языки. Как-то получается, что они разделились на три категории 1. Низкоуровневые с нативным компилятором (go, rust, d) 2. Высокоуровневые под jvm/.net (boo, kotlin, scala) 3. Заумно-задротские с нативным компилятором (haskell, *ML) Есть ли примеры, которые не попадают в эти три категории?
2017-12-11 20:18:06

Участники:
@ndtimofeev - 13, @provaton - 11, @vt - 9, @qnikst - 9, @mabu - 6, @trapdoor - 6, @klapaucius - 3, @SannySanoff - 1, @OCTAGRAM - 1

@trapdoor
Erlang?
#2891859/1 2017-12-11 20:19:20
@trapdoor
Заумно-задротские без компилятора, доказывалки теорем.
#2891859/2 2017-12-11 20:21:12
@trapdoor
А, статически, ок.
#2891859/3 → /1 2017-12-11 20:21:34
@vt
а что еще за категории есть?
#2891859/4 2017-12-11 20:22:03
@vt
О! С++ - статически-типизированный язык, точно ни в какие категории не присунешь!
#2891859/5 2017-12-11 20:23:21
@trapdoor
С++ не образует категорию, да!
#2891859/6 → /5 2017-12-11 20:24:03
@trapdoor
А как ты вообще низкоуровневые определяешь? Да и типизация не так важна, это ортогональная ось.
#2891859/7 2017-12-11 20:26:33
@provaton
c++ стар, я тут про современное-хайповое.
#2891859/8 → /5 2017-12-11 20:31:35
@vt
Ээээ, с++17 это совсем не тот с++ что был стар, ты еще скажи что жаваскрипт - стар!
#2891859/9 → /8 2017-12-11 20:33:40
@provaton
Да, уровневость это вопрос трудно определяемый... В основном по структурам данных и синтаксическому сахару для них.
#2891859/10 → /7 2017-12-11 20:34:28
@provaton
Главное что жава - стара )
#2891859/11 → /9 2017-12-11 20:35:04
@vt
хаха, кстати, статически-типизированные языки -  typescript  и flow
#2891859/12 → /9 2017-12-11 20:35:35
@vt
джава 8 и 9 это тоже совсем не та джава что была раньше и половина плюшек всяких говноскал и котлинов в ней уже есть
#2891859/13 → /11 2017-12-11 20:36:39
@provaton
Да, можно добавить категорию, "с компилятором в джаваскрипт". Она будет пересекаться с другими, кстати.
#2891859/14 → /12 2017-12-11 20:47:34
@vt
Так что тебято интересует?
#2891859/15 → /14 2017-12-11 20:48:35
@qnikst
является ли список категорий полным, т.е высокоуровневые не заумно-задротские с нативным компилятором, например
#2891859/16 → /15 2017-12-11 20:49:32
@vt
Я так понимаю что под категориями он понимает "категории которые мне не нравятся!". А что он хочет - неясно.
#2891859/17 → /16 2017-12-11 20:50:10
@vt
более того "категории, которые мне не нравятся по религиозным причинам", я так читаю его пост
#2891859/18 → /17 2017-12-11 20:50:57
@mabu
FreeBASIC
#2891859/19 2017-12-11 20:52:41
@provaton
Именно.
#2891859/20 → /16 2017-12-11 21:37:50
@provaton
Мне в принципе нравится jvm и третья категория. Для третьей категории не хватает IQ, правда.
#2891859/21 → /18 2017-12-11 21:38:48
@provaton
> А что он хочет — неясно. Полноты картины, не более.
#2891859/22 → /17 2017-12-11 21:40:03
@qnikst
у тебя плохо, что дихотомия не образует базис, т.е. наделяемые качества не являются ортогональными, т.е. есть: низкоуровневые/высокоуровневые заумные/не-заумные нативные/(под jvm/net). причем в каждой из категорий (кроме последней) границы плавающие, так кто-то назовёт C++ высокоуровневым. Если говорить только про jvm, net, то существуют js и ocaml если их включать. Т.к. требования не ортогональные то можно взять ATS это заумный низкоуровневый язык с нативным компилятором - попадает в 1 и 3. А го вполне себе незаумный высокоуровневый с нативным компилятором, т.е. не попадает ни в одну из групп
#2891859/23 → /22 2017-12-11 21:56:19
@provaton
Понятно, что формализма тут мало, и все достаточно примерно. Плюс тут смешиваются концепции языка и реализации, что тоже очень плохо для логики... Го достаточно низкоуровневый, там самые простые структуры данных, нет ооп, и т. д. Я его в первую группу отнес.
#2891859/24 → /23 2017-12-11 22:29:43
@qnikst
managed язык относить к низкоуровневым немного странно имхо
#2891859/25 → /24 2017-12-11 22:31:29
@provaton
"кто-то назовёт C++ высокоуровневым"
#2891859/26 → /25 2017-12-11 22:33:57
@OCTAGRAM
Swift нов haXe и Nim в разные другие целевые языки транслируются
#2891859/27 → /8 2017-12-12 00:06:27
@vt
Что за структуры данных? Все чудесатее
#2891859/28 → /24 2017-12-12 03:53:28
@mabu
Struct, Interface, Class, Enum?
#2891859/29 → /28 2017-12-12 03:56:29
@ndtimofeev
Как-то странно. Go примерно настолько же высокоуровневый как python и haskell. Rust примерно такой же задротский как haskell (примерно как плод порочной любви haskell2010, ocaml и clean). Что делать c категориями если накодогенерировать haskell в js или jvm — непонятно.
#2891859/30 2017-12-12 08:10:58
@ndtimofeev
О! Точно же.
#2891859/31 → /2 2017-12-12 08:13:15
@ndtimofeev
Пруф или если выкинуть из первой категории Go, то там как раз останется место для C++. Ну или если обмазаться шаблонами, constexpr'ами и C++17, то заноси к хаскелями.
#2891859/32 → /5 2017-12-12 08:14:56
@ndtimofeev
Simula-like ООП это синтаксический сахар для агрегации. По причине отсутствия оного синтаксического сахара ты относишь к низкоуровневым язык со сборщиком мусора, гринтредами и огромным рантаймом чтобы разгребать всё это говно. Да даже питон на фоне Go смотрится низкоуровнево.
#2891859/33 → /24 2017-12-12 08:20:14
@klapaucius
Почему-то самый заумно-задротский язык не попал в категорию заумно-задротские.
#2891859/34 2017-12-12 08:44:18
@ndtimofeev
кто7
#2891859/35 → /34 2017-12-12 08:48:43
@klapaucius
scala, разумеется
#2891859/36 → /35 2017-12-12 09:24:49
@ndtimofeev
Я и забыл про неё. А что там сейчас? Мне всегда казалось, что она - Haskell глазами явиста, нет?
#2891859/37 → /36 2017-12-12 09:27:38
@mabu
А как же Пролог?
#2891859/38 2017-12-12 09:27:59
@provaton
> Что делать c категориями если накодогенерировать Я ж не сказал, что эти категории покрывают все возможные языки и их реализации, а только современные статически типизированные. Вот когда напишут бекенд для хаскелла в жвм, и будут его массово юзать в продакшене, тогда и откроем новую категорию. Не знаю, почему все пытаются подать го как высокоуровневый язык, кроме автоматического управления памятью и корутин там ничего высоуровневого нету.
#2891859/39 → /30 2017-12-12 09:30:56
@klapaucius
хаскель глазами эмелиста-реформиста, скорее, из тех что хотели модно-молодежно-адовый ООП-эмель накостылить в 90-е, да Милнер не дал Ява там так, чтоб скормить этот ужас ничего не подозревающему явастрадальцу
#2891859/40 → /37 2017-12-12 09:38:52
@SannySanoff
Dart developer compiler компилится в натив, но странно. Julia компилится через ллвм, но только на лету.
#2891859/41 2017-12-12 11:40:57
@ndtimofeev
Через llvm считается в нэйтив. А то так можно сказать, что и gcc С компилирует не в нейтив, а в ассемблер.
#2891859/42 → /41 2017-12-12 11:42:16
@ndtimofeev
А он статически типизирован?
#2891859/43 → /38 2017-12-12 11:42:39
@qnikst
а ATS в си
#2891859/44 → /42 2017-12-12 11:42:44
@mabu
Да.
#2891859/45 → /43 2017-12-12 11:43:02
@qnikst
а ещё есть dhall и nix (с gradual typing который пилится), которые не знаешь куда и отнести
#2891859/46 → /42 2017-12-12 11:43:35
@qnikst
с каких это пор?!
#2891859/47 → /45 2017-12-12 11:43:47
@mabu
Как напишешь в коде — так и типизирован. Статически.
#2891859/48 → /47 2017-12-12 11:44:46
@qnikst
можешь дать ссылку на какие-нибудь работы или документацию доказывающие, что ты не врёшь
#2891859/49 → /48 2017-12-12 11:49:21
@ndtimofeev
> Я ж не сказал, что эти категории покрывают все возможные языки и их реализации, а только современные статически типизированные. Вот когда напишут бекенд для хаскелла в жвм, и будут его массово юзать в продакшене, тогда и откроем новую категорию. В js кодогенератор есть и даже не один. В jvm что-то было но сдохло за ненадобностью. Сейчас пилят webassembly. Алсо широко в продакшене из перечисленных тобой языков используются только go и kotlin. И то с хуй да ни хуя, но остальных как-то вообще нет. > Не знаю, почему все пытаются подать го как высокоуровневый язык, кроме автоматического управления памятью и корутин там ничего высоуровневого нету. Что ещё нужно для языка программирования чтобы быть ЯВУ кроме как полнейшая невозможность контролировать время выполнения фрагментов программы, используемые ею ресурсы? Отсутствие модели памяти? Отсутствует. Ну и гринтреды это не корутины. Корутины в lua и C++, где ты сам себе планировщик. А тут тобой крутит рантайм и повлиять на это ты не можешь никак.
#2891859/50 → /39 2017-12-12 11:50:29
@ndtimofeev
Алсо, да. Статически типизированный язык компилируемый в json (был для dhall'а json-генератор?).
#2891859/51 → /46 2017-12-12 11:51:49
@qnikst
eta в жвм, есть используется в каких-то тырпрайзах, но имхо мертворожденное
#2891859/52 → /50 2017-12-12 11:52:24
@trapdoor
Там нельзя указать, что у тебя в аргументах ожидается - атом или список и оно молча не будет матчиться. Работы по типизации пролога были, но в канон не вошли.
#2891859/53 → /48 2017-12-12 12:16:26
@mabu
Ну ладно тогда.
#2891859/54 → /53 2017-12-12 14:25:51
@provaton
> И то с хуй да ни хуя, но остальных как-то вообще нет. А как же рассказы хаскеллистов и камплистов, что чуть ли не весь мир на их программах держится?
#2891859/55 → /50 2017-12-12 18:53:46
@ndtimofeev
Пруф или хаскелисты безуспешно ищут работу на хаскеле. // На самом деле продакшен на хаскеле есть (у того же фейсбука, например), но на фоне всего остального его капля в море. А так вон у меня за спиной уже год работает робот на хаскеле. Это кого-то ебёт?
#2891859/56 → /55 2017-12-12 18:56:48
@ndtimofeev
А из живых камлистов я видел только @komar, который к моменту нашего знакомства забил на OCaml и перешёл на руби.
#2891859/57 → /55 2017-12-12 18:59:06
@qnikst
у нас есть 2 на работе, одно видел вживую, оба теперь на haskell пишут в основном
#2891859/58 → /57 2017-12-12 19:03:54
@ndtimofeev
> Не знаю, почему все пытаются подать го как высокоуровневый язык, кроме автоматического управления памятью и корутин там ничего высоуровневого нету. Алсо по твоей логике низкоуровневыми являются js, lua и 100500 представителей различной скриптоты, в которую Simula-like ООП не завезли.
#2891859/59 → /39 2017-12-14 16:19:28