IDE нового типа или Open-source проект Light Table


    Сегодня пришла рассылка с Kickstarter «Projects We Love». Я решил посмотреть, что нового появилось и меня сразу привлек ярлычок Open-source. Я перешел по ссылке почитать, что такого интересного и нового предлагает автор проекта и мне понравилось. Решил поделиться с хабром.

    Light Table


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

    Уже давно в воздухе витают идеи, что мы можем сделать IDE лучше и удобнее. Какие же это идеи?
    • Вы не должны нигде искать документацию и тратить на это время
    • Файловая структура — не лучшее представление для кода
    • Редактирование должно быть доступно где угодно и редактор должен показывать не только код
    • При любом изменении мы должны видеть результат мгновенно
    • Мы должны видеть больше информации о связанных кусках кода

    Давайте посмотрим как эти идеи воплощает Light Table.


    image
    (Так выглядит окно разработки по умолчанию)

    Документация повсюду


    Когда вы изучаете новый код и натыкаетесь на вызов непонятной функции, обычно вам нужно либо перейти в документацию, либо перейти к самой функцию и прочитать ее описание. В Light Table будет достаточно навести на функцию курсор и вы увидите не только описание, оставленное автором, но и список параметров и их порядок.
    image

    Или вам нужно быстро увидеть где еще встречается данная функция
    image

    Мгновенная обратная связь


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

    Составные таблицы


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

    Почему бы нам не видеть работающую игру прямо из редактора
    image

    Подсвечивание кода


    Чтобы лучше увидеть как организован код в вашей программе, Light Table может не только выделить цветом вызываемые функции, но и сразу показать их код.
    image
    Нам не нужно постоянно прыгать от одной функции к другой, пытаясь понять их взаимодействие.
    Это особенно удобно с возможностью видеть изменения в реальном времени
    image

    Какие языки будут поддерживаться?


    Изначально будут поддерживаться только Javascript и Clojure, но новые языки можно будет добавлять через плагины.

    Подробности



    Проект пытается собрать 200 000 долларов.
    На момент написания статьи собрано $131 837.
    Пол пути пройдено.

    Более точно и подробно расписано на странице проекта на Kickstarter

    UPDATE1
    Автор Chris Granger: биография, гитхаб (спасибо за ссылки ilya42)

    UPDATE2
    На данный момент проект собрал $135 244, т.е. за 9 часов (с момента написания статьи) сумма увеличилась на $3 407

    Еще захотелось привести один из комментариев с kickstarter:
    Грустно видеть, что так мало любви к этому проекту.
    / /
    Куда бы я ни писал о проекте, люди отвечают «используй Vim / Emacs». Я люблю Vim и я пользуюсь им часто, но какого черта?
    / /
    Я все еще думаю, что это интересный проект, и я думаю, что он поможет обучать детей программированию. Я уверен, что вы добьетесь успеха.


    UPDATE3
    Хочу еще раз обратить внимание на описание проекта на Kickstarter. Chris Granger нигде не утверждает, что это его личные идеи и «новейшие изобретения». Он в том числе ссылается на упомянутого в комментариях Брета Виктора (Bret Victor).

    Он собирает деньги под проект, в котором собирается воплотить эти идеи, а не под сами идеи.
    Я искренне не понимаю, почему это вызывает негодование.

    UPDATE4
    Уже собрано примерно $217.000. А значит проект стартует. В общей сложности в проект вложилось около 5000 человек. Но люди еще надеются собрать $300.000 для поддержки Python. На это осталось 15 дней.
    Мне будет очень интересно увидеть, что из всего этого получится.

    UPDATE5
    Опубликован исходный код Light Table
    Более подробная новсть на Хабре здесь
    Поделиться публикацией

    Комментарии 74

      +2
      Напомнило Bret Victor — Inventing on Principle: vimeo.com/36579366
        +13
        А делать он всё это будет через CodeMirror. Ну почему, почему нельзя сделать нормальную нативную IDE не на Jave или чём-то ещё? Почему лучшие IDE обязательно ненативные?

        Кстати, за $300k обещают ещё и Python из коробки.
          +3
          А чем вас Java-то не устраивает? Благодаря ей IDE одинаково хорошо работают на различных платформах. Поклонники Eclipse, Netbeans и других ide негодуют.
            +18
            Поклонники нативных IDE негодуют из-за того, что кроме Eclipse, Netbeans, и других Java-IDE нет ничего пристойного…
              –2
              IDE от JetBrains?
                +11
                Так они тоже на Java :)
                  +2
                  Ну а я о чем?
                    +4
                    все, понял
                  +3
                  Вы про какой-то конкретный язык говорите или платформу? Потому что неплохих нативных ide тоже хватает, навскидку: Qt Creator, VS.
                    +3
                    Кстати да, Qt Creator хорош.
                    Меня интересуют именно кроссплатформенные IDE для C/C++ для работы с gcc и gdb, чтобы можно было прикрутить тулчейны для программирования и отладки ARM-микроконтроллеров.
                      +2
                      Пока нативных равных Eclipse я не видел…
                        –4
                        Qt Creator совершенно некастомизируемый, ему даже до древней шестой визуал студии далеко в этом смысле. Даже глючная Code::Blocks, которая может просто вылететь при открытии проекта, имеет возможность настойки.
                          0
                          А знайте, я в чем то даже согласен, несмотря на то, что безума от Qt со его Крейтором.
                          (один я ставлю плюс!?)
                          +2
                          XCode внезапно.
                            +4
                            И давно она кроссплатформенная?
                          +8
                          Студия не нативная.
                            –1
                            Дотнет?
                            0
                            VS сейчас уже не такой уж и нативный, если я не ошибаюсь. Он, кажись, начиная с 2010й версии, работает на .Net, причем на WPF. Если я не путаю.
                              0
                              Он управляемый, начиная с .Net. С 2010 использует уже WPF вместо винформочек.
                                0
                                Спасибо за пояснение.
                                  0
                                  Нет, студия была нативная вплоть до 2008. В 2010 фронтэнд написан на WPF, в остальном какой-то микс.
                              0
                              Ну негодовать-то они могут… только вот может потому их нет, что нафиг не надо большинству?
                                0
                                Если так смотреть, то ненативные IDE тоже «нафиг не надо большинству». Большинству главное чтоб удобно, быстро и качественно. Я о том, что почему-то так бывает, в основном, у ненативных IDE, нативные же, в большинстве своём, весьма корявое зрелище.
                                • НЛО прилетело и опубликовало эту надпись здесь
                                  0
                                  Ой? не так понял :(
                                  +5
                                  Я сам поклонник IDE на Java — PyCharm и IDEA. И они по разному хорошо работают на всех платформах :) Вернее не очень хорошо на некоторых. Все (Eclipse, NetBeans, IDEA) IDE на Java работают существенно медленней, чем нативные IDE.
                                    +10
                                    К тому же кроссплатформенность и Java — не синонимы. Write Once, Compile Anywhere ничуть не хуже Write Once, Run Anywhere.
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                      +7
                                      Шрифты в линуксах и тормоза на нетбуках.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                          0
                                          У Java отдельно работающее сглаживание, причем работающее хреново ;(
                                            +1
                                            Ну где вы тут увидели плохое сглаживание? Вот скрин в натуральный размер:

                                            image
                                              0
                                              Это какой jdk? Говорят, что в open все хорошо, но я не смотрел, так как джетбрейновские иде требуют оракловский.
                                                0
                                                OpenJDK, так и есть.
                                                  0
                                                  На нем к сожалению далеко не все работает ;(
                                                0
                                                Да тут большая часть говорящих про плохое сглаживание и тормоза, либо вообще все это дело на линухе в глаза не видели, либо пробовали лет 10 назад и считают, что с того времени абсолютно ничего не изменилось…
                                                  0
                                                  2 месяца назад, арч и убунту 11.10
                                                0
                                                Eclipse отображает текст используя нативные API. Поэтому в нем текст отображается точно так же как в нативных приложениях.
                                                А вот Netbeans и IDEA используют Java API.
                                          +5
                                          Сколько еще нужно собрать чтобы там появился C#?
                                            +5
                                            Фиг с ней, с нативностью. Я прекрасно пользуюсь PyCharm'ом и SmartGit'ом что на винде, что на маке, что на линуксе. Главное — однородность поведения.
                                              0
                                              CodeMirror

                                              сделать нормальную нативную IDE не на Jave


                                              Ну так она и не на Java, насколько я понял.
                                                +2
                                                Ну она и не нативная ;)
                                              +5
                                              Похоже что товарищ открыл для себя Smalltalk. Вернее те идеи, что были заложены там еще в 70х
                                                +3
                                                С появления Smalltalk его идеи постепенно (временами очень медленно) мигрируют в мэйнстрим; круто, если еще одну приспособят для более-менее популярных языков (хотя бы тот же Python).
                                                  +4
                                                  Я когда читал комментарии к оригинальной статье (еще до проекта на кикстартере), там на о скольких фич smalltalk'a рассказали, что создается ощущение, что все ЯП пытаюсь переделать smalltalk, который еще в 70х все это умел.
                                                    0
                                                    Да ради бога, я не против :) Лишь бы дошло. Просто забавно читать обо всем этом как о «новейших изобретениях»
                                                  +8
                                                  Эх, выглядит круто, но что-то смущает, не пойму что.
                                                    +1
                                                    Есть какое-то чувство наивности у автора, т.е. вроде все как правильно, но понимаю, что практического выхлопа в итоге будет скорее всего ноль, может и выйдет продукт но не более чем есть уже сейчас, а о 200$ тыс больше похоже что кто-то бабла срубить решил. Под мак куча минималистичных редакторов и ide, но не слышал ни от кого и ни где, что потребовалось денег столько. Как правило достаточно энтузиазма. Ну а если автор по сути не программист, то скорее всего не понимает с какими проблемами можно столкнуться, и по сути летает в облаках. Да, ктстати еще больше удивляет, то что столько уже собрано. Вобщем с интересом посмотрю, может что и получится и буду рад если окажусь не прав, но точно скажу, что в таком виде как на скринах будущая «IDE» не будет.
                                                      –1
                                                      Бабло кидают поражённые видео-презентацией новички, которым постоянно нужна документация и которые постоянно пробуют код на пример что же он выведет (возможно ещё те, кто не видел дебаггера). А насчёт IDE — она будет на JS, работать в браузере. Как можно прикрутить к ней нормальные существующие тулчейны, всевозможные инструменты анализа кода, системы контроля версий и т. п. А тот же дебаггер? Слишком много проблем, $200k может и не хватить.
                                                        +2
                                                        > А насчёт IDE — она будет на JS, работать в браузере.

                                                        Ну и какая разница, тулкит рисует или вебкит? Сегодня в браузере, завтра в вебките, послезавтра отдельный контекст с OGL.
                                                          +3
                                                          Это просто вы не работали с проектами в которых 10000+ строк кода, тысячи классов и куда не одна сотня программистов коммитят код. Документация в таких энтерпрайз проектах ни в какой голове не поместится.

                                                          Концепция такой ide лично меня очень заинтересовала, но и тут же оттолкнула в виду свой узкой ориенитированности и как я понял из каментов — браузерностью.
                                                            +1
                                                            Документация, которая показывается по хоткею или даже постоянно есть в большинстве IDE, в т. ч. и с поддержкой JavaDoc и docstrings. Просто то, как автор рассказывает о фичах в сочетании с остальными фичами — похоже на то, как кодят новички. Я сам так программирую, когда изучаю новый язык, с документацией под рукой на каждую функцию, открытым scratchpad или REPL или что там ещё, чтоб пробовать сомнительные строки, которые я догадываюсь, как будут работать, но не уверен. Но после того, как я научился пользоваться дебаггерами — мне эта фича нужна очень редко. Куда проще написать, а если сомневаешься — кинуть брейкпоинт и посмотреть всё что интересует.
                                                              +1
                                                              Мне кажется ваш подход малоправильным. Если сомневаешься — уж куда лучше заглянуть в документацию.
                                                              P.S: одна из фич, которая предлагается — это деббаггинг во время написания кода. Тоже самое, но тратится меньше времени
                                                            0
                                                            Насколько я понял он ее на ClojureScript пишет. На JS там пишутся только модули.
                                                            +1
                                                            Автор вполне себе программист — работал в том числе и в Microsoft над Visual Studio. Вот его биография, вот Гитхаб.
                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                              +7
                                                              А вот тут критика одного джависта: eblog.chrononsystems.com/light-table-concept-vs-reality
                                                                0
                                                                Редактор уровней для игры с этим же принципом: www.youtube.com/watch?v=ri614C_Buwg&feature=youtu.be
                                                                  +1
                                                                  Выглядит интересно, но мучают сомнения на счет джавы.
                                                                    +2
                                                                    Мне кажется, что использование такого IDE заставит программистов писать короткие методы. Ведь в режиме «Table» большие функции будут занимать много места, и польза от такой визуализации будет сомнительная. Также и в крайнем режиме «Light» большое количество кода будет только мешать. IMHO, такое IDE реальный стимул избегать огромных функций по 200 строк.
                                                                      +1
                                                                      Крис программист на Clojure в основном. А на лиспе редко бывают слишком большие методы.

                                                                      В самом начале это подразумевалось как концепт редактора именно для Clojure — в этом контексте с ним все прекрасно. Но потом похоже захотелось срубить денег, были примешаны куча всего, и уже появились сомнения.
                                                                      +4
                                                                      Красиво, но почти то же самое не так сложно получить (и как правило примерно так и работают) из емакса. Лучше бы помогли доработать его рендер.
                                                                        +1
                                                                        Почти то же самое с vim. Честно, мне в начале видео на секунду показалось, что это именно vim, у меня похожая цветовая схема стоит.
                                                                          +1
                                                                          Не могли бы подкинуть примеров таких плюшек вроде «documentation everywhere»?
                                                                          Я с emacs только начал, дальше нескольких стандартных сочетаний клавиш пока не ушел.
                                                                          +8
                                                                          >Мгновенная обратная связь
                                                                          Во время написания рекурсивной функции положил редактор?
                                                                            +2
                                                                            Локальное переполнение стека, которое прекрасно ловится, не более.

                                                                            Да и вообще, пользуемся TCO, где оно есть ;)
                                                                              0
                                                                              Там где TCO, там не поймаешь переполнение стека. А вот бесконечный цикл ловить сложнее.
                                                                                0
                                                                                Можно таймаут ставить. На то оно и реалтайм. Если нет результата через полминуты, скажем, убивать процесс.
                                                                              +1
                                                                              Программа может выполнятся в другом процессе.
                                                                              0
                                                                              Если бы выпустили это в нативном коде в виде тулкита\библиотеки для сборки собственной IDE заточенный под свои средства разработки — отдал бы пол зарплаты ребятам не раздумывая. А так, увы, точно видно, что пользоваться этим не буду, как бы круто оно не выглядело.
                                                                                0
                                                                                Концепт выглядит отлично, прям Emacs будущего. Очень хотелось бы пощупать и очень хотелось бы в будущем поддержки Java.
                                                                                  –2
                                                                                  Как на vim похож. Там модальное управление как в vim есть?

                                                                                  @Insomnium:

                                                                                  Они снова изобрели лисп со смоллтолком. Ничего будущего там нет, только хорошо забытое прошлое.
                                                                                    0
                                                                                    Что еще нужно сделать, чтобы для FreePascal сделали нормальную кроссплатформенную IDE? :)
                                                                                    Lazarus — это уродец одноногий, который к тому же генерит ужасно огромный код из за LCL
                                                                                      0
                                                                                      Начало все пропустили, а между тем, уже можно попробовать альфа версию www.lighttable.com/

                                                                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                      Самое читаемое