доня.
Vladislav
свой парсер
доня.
так ведь так и нужно
доня.
благодаря этому оно и "интегрированное"
доня.
что соответствует тому как сделано во всех остальных плагинах
Vladislav
Да нет никакого шанса, что какой-нибудь кастомный парсер правильно распарсит все, что и GHC, например
Vladislav
Для Rust может и прокатит, я не знаю какая там грамматика
Vladislav
Но это опять дубликация логики. Компилятор по одному парсит, IDE по-другому.
Vladislav
В итоге имеем что имеем.
доня.
падажжи
доня.
ты же сам за IDE топил
доня.
в IDEA так для всех языков как я понимаю сделано
доня.
теперь ты резко переобулся
доня.
чёт я не понимаю
Vladislav
Я не знаю как в IDEA сделано. Я знаю, что если я беру Visual Studio и пишу код на C#, то у меня не будет кода, который компилятором принимается, а IDE ломает
Vladislav
И я знаю, что в Haskell такое на каждом шагу, если лепить псевдоIDE из всякого тулинга типа HLint и hasktags
доня.
так и в IDEA такое маловероятно в популярном плагине
доня.
потому что если такое найдут то сразу пофиксят
доня.
так что вопрос только в количестве человеко-часов, нужных чтобы поддерживать тулинг в нормальном состоянии
Vladislav
Или может в архитектуре. Вот будь у GHC парсер отдельным компонентом, который можно в тулинге реюзать, и жили б все хорошо, а не с haskell-src-exts
доня.
ну вот опять-таки
доня.
практика показывает
Misha
я почему-то думал, что ghc-mod или кто там именно так и сделан, как api к ghc, разве нет?
доня.
что лучшие IDE используют свои парсеры
Vladislav
доня.
вот Qt Creator емнип юзает Clang для автокомплита
ну и автокомплит там так себе
я CLion не пробовал но шо-то мне подсказывает там автокомплит намного круче
Vladislav
Имеем теперь, что он с билд-системой не всегда интегрируется нормально.
доня.
да и вообще
доня.
дублирование логики - не баг, а фича
Alexander
point @int_index в том, что с IDE можно сделать гораздо лучше, т.к. там каждый компонент может заниматься своим хорошо, с vim и emacs это не реально, но текущее положение вещей такое, что vim и emacs более хорошая альтернатива idea
Alexander
если я правильно понял
доня.
дублирование логики - не баг, а фича
потому что для нормального развития языка полезно чтобы были альтернативные реализации
даже частичные (типа альтернативный парсер)
тогда не возникает ситуаций типа с перлом когда грамматику языка невозможно формализовать
Vladislav
Vladislav
> потому что для нормального развития языка полезно чтобы были альтернативные реализации
У Хаскеля есть одна реализация и неправильные
Alexander
кто писать то их будет?
Alexander
парсер либой конечно было бы прекрасно
Alexander
а альтернативный парсер - печально
Alexander
т.е. h-s-e получится
доня.
кстати, language extensions типа той же экзистенциальной квантификации - как-то стандартизированы?
или это чисто compiler-specific фигня?
Vladislav
это GHC-диалект
доня.
вот это кстати тоже очень хуёвая ситуация
доня.
это как с GCC
доня.
понаделали compiler-specific расширений
доня.
написали на нём ядро
Vladislav
Оно еще и implementation-defined, потому что никто ососбо не запарился формально эти фичи описать
доня.
(Linux)
доня.
теперь не могут другими компиляторами собрать
Vladislav
Есть формализация только для Core, и то не так давно появилась, трудами Эйзенберга
Vladislav
остальной тайпчекер написан методом проб, ошибок, и дискуссий с SPJ
Alexander
@KolesnichenkoDS пожалуйста без мата формулируй утверждения
Vladislav
> потому что всё завязано на нестандартизированные compiler-specific расширения
Эти расширения не на пустом месте возникают, они решают реальные проблемы. Вот есть в какой-то реализации расширение, которое решит мою проблему — мне его не использовать из соображений чистоты?
Alexander
ну лучшая ситуация из возможных
Alexander
стандартизировать их вот пытаются, но не факт что что-то добьются
кана
Я все думал, что когда-нибудь выйдет Haskell20XY, который будет Haskell2010 со смерженными в него самыми частыми расширениями
Alexander
альтернативные - реализовывали те расширения что нужны
Vladislav
А что тебе с самых частых, если там еще 20 полезных?
Alexander
вон тот же jhc и hugs умели расширения
доня.
Alexander
ну делают следующий language report где хотат включить
Alexander
но там много проблем
Vladislav
Vladislav
Я по-другому на Haskell писать отказываюсь
Alexander
главное, что это не решит не так и много проблем
Alexander
(в общем-то ничего почти ничего не решит)
Alexander
станет ли проще писать альтернативный компилятор?
Alexander
сомневаюсь, все кто писали обходились без стандарта на расширения
Vladislav
Если добавить GADT-ы, то это уже завязывает на OutsideIn тайпчекер
Vladislav
а еще один GHC никому не нужен, этот бы допилили
Alexander
ну всякие (a)jhc имеют место быт
Alexander
их направление ghc не покрывает
Vladislav
ага, только это неудавшийся эксперимент
Vladislav
авторы ajhc вмерджили что смогли в jhc и ушли на ATS
Alexander
ну тяжело
Alexander
и не достаточно маргинально было
Ilya
Давайте конкретно, друзья. вот есть у меня один проект по работе, достаточно небольшой. Прошу прощения, что не про Haskell, с ним у меня пока только игрушечные проекты.
какие там есть расширения:
1) .cpp, .hpp - обычные плюсы
2) .cu - Nvidia CUDA
3) .py - Питон
4) .i - интерфейсные файлы SWIG для связывания плюсов и питона
5) .sh - кое-какая внешняя обработка данных делается через GNU утилиты и соотв-но CLI-интерфейс
6) .dat - DSV данные
7) .tex - документация к проекту
8) Makefile
9) .cfg - конфиги
Всё это я открываю через vim и редактирую текст абсолютно единообразно, согласно идеологии vim. Очень быстро, уж точно быстрее, чем в ваших IDE. При этом почти для каждого типа файла у меня есть свои плагины или просто настройки vimrc, которые добавляют специфичные для области плюшки.
Что в данном ситуации мне предложат адепты integrated? Какой сценарий руления всем этим добром? Интересно выслушать.
Alexander
#my-faviourite-editor уже создали?
Alexander
(это не предложение завершаться)
Vladislav
Я ничего не предложу, так как считаю, что хороших IDE мало и они заточены под конкретные языки. Сам я IDE не использую. Но вот понять человека, который C# в Visual Studio писал или Java в whatever-IDE, а потом пытается перейти на Haskell и у него от тулинга кривого просто горит, я отлично могу.