Pull to refresh

Comments 67

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

Но сложность концепта, проблемы с установкой и настройкой и не очень грамотный (на мой взгляд) маркетинг все портят.
Спасибо.

По поводу маркетинга — у нас его просто нет.
Мы разработчики. Сделали продукт, ждем инвестиции или прибыль, чтобы двинуть в маркетинг. Пока так.
Да и маркетинг для инструментов — дело очень непростое… Нет рецептов. Некоторые утверждают, что тут вообще маркетинг вреден…
Нужно увлекать пользователей своей концепцией, что мы и пытаемся в меру сил. Нужны евангелисты, возможно…

Сложность установки? С чем была проблема?
Написал большой текст и все стерлось. Вкратце:

Сайт — мило и аккурано, но:
* Сразу непонятно, что именно делает COLT
* Все что там написано подразумевает, что люди уже понимают принцип работы COLT и будут восхищены крутыми фишками. Для большинства посетителей это не так
* Не хватает большой кнопки quick start (я знаю, что доки сущетвуют)
* Не очень аккуратный английский ( teamework? )

Статьи на реддите и Хабре — та же история. Ожидается что читатели уже находятся в контексте и должны понимать что происходит, и какие крутые вещи были добавлены в COLT. Я думаю, что, например, в этой статье многим неподготовленным будет непонятно, почему их IDE должен считать какие-то функции.

Это видео
Человек, который его записывает наверняка отличный программист, но создается впечатление, что он хочет спать и ему не очень интересно то, о чем он рассказывает. Из плюсов — описан процесс установки.

Ну и в целом непонятно, как это все устроено и работает. У COLT очень интересный и сложный концепт, и неподготовленному программисту не так и просто уместить все это в голове.

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

По поводу того, что не запустилось — уже не помню, обещаю попробовать еще раз и написать.
Если бы мне надо было бы продвигать COLT и можно было бы сделать только 3 вещи, я бы:
1. Сделал мы установку минимально простой и понятной. Должно быть что-то вроде скачал — запустил, выбрал IDE, готово.
2. Записал бы несколько крутых гифок (ведь есть о чем), типа того, что делает Umar Hansa для DevTools, и распостранял бы через социальные сети.
3. Раздал бы лицензии на год каким-нить крутым JS чувакам, которые пишут статью.

Прошу прощения, что захламляю ваш топик своими идеями, просто реально за вас переживаю.
Спасибо за идеи, попробуем внедрить.

1. Установка — согласен. Нужно думать.
2. Гивфки — интересная идея, н
3. По поводу статей — мы раздаем, даже без статей.
Open Source проектам И так далее.
За статьи объявили в анонсе COLT 2.0 — за две недели пока никто не публиковал…

Вообще в целом медиа ресурсы не хотят о нас писать.
Видимо — проблем в нашем позиционировании.
Просто не понимают о чем продукт.
Были на конференциях — выхлоп слабый.
Может тогда (полгода назад) был продукт еще слаб, мы как рашали проблемы, при реальном внедрении продукта.
И 2.0 — это как раз результат нашей работы над ошибками.

В целом спасибо за то, что переживаете за нас, нам действительно нужна поддержка.
Для гифок вот хорошая программа — www.cockos.com/licecap/
Полгода назад, да было сыровато, даже в сублайм. А сча вон какое видео в вебсторм записали, ух! Спасибо за работу.
По поводу статей, появятся, не переживайте.
Огромное спасибо за программу! То что нужно! Сейчас будем писать.
По поводу слабого выхлопа на конференциях… Если выступал тот, кто делал каст в видео из поста — там не то что выхлопа не будет, там и на хлоп то мало соберется. Не подумайте, что я пытаюсь вас оскорбить. Кольт и правда очень интересная штука. Но подачей должны заниматься не программисты, а люди, которые это умеют. Чисто от себя могу сказать, что видео досмотрел до конца только потому что мне было интересно содержимое, но даже при всем желании досмотреть видео, за его не полные 10 минут зевнул раз 20. Как такую подачу оценят люди, которые с вашим продуктом не знакомы, да и без прикормки знакомится не хотят, оцените после выше изложенного сами.

Проекту вашему всех благ, программистам терпения.
Очень заметно, что вы совсем не в теме :)
Зевоту вызывают как раз бодрые, но пустые булл шит доклады.
Сколько не выступал на конференциях, у меня никто не спал :)
Не в теме чего? Или вы считаете это нормальным, когда от просмотра видео демонстрирующего нововведения моего любимого продукта, мне хочется его поскорее выключить и сделать себя развидеть (в данном случае разслышать) это. По поводу конференции… то, что представлено ниже — да, весьма интересно. Могу только предположить, что к конференции готовились, а к видео из топика — нет.
Да, не готовились. Усталый и злой как черт писал с пятого раза. Вся бодрость закончилась по ходу. Думаю наличие такого видео — это лучше чем отсутствие видео?
Хотите шоу — смотрите людей которые на шоу зарабатывают.
Хотите информацию из первых рук, без купонов — ну приходится быть чуть снисходительным. Сложно совместить в себе шоумена и трудягу. Редко кто совмещает.
По поводу — «не в теме» — просто принял вас за проджект менеджера, уж извините :) Обознался.
Бывает :) Оно все понятно… Благо видео-«шоумены» придумали замечательную вещь как монтаж )) но это уже другая история… Желаю вам сна по больше и плодотворной работы.

П.С. Как я понял, кольт работает только с JS/AS? PHP на подобное способен не будет?
Для серверных технологий у нас есть live-proxy режим. Указываете не путь к файлу, а путь URL в main.
Тогда мы будем работать c JS и DOM который генерит сервер.
поглядите ветку внизу, там есть чуть подробнее.
Или в документации еще есть абзац на английском.
По мере накопления кейсов будем расширять функционал и и документацию по этому делу.
С AS мы совсем прекратили работать. Версия 1.3 и все.
видео-«шоумены» придумали замечательную вещь как монтаж


Монтаж был… Маты я все вырезал… Или нет?

По поводу «эээээ….» «ммм» — вы уж простите.
Идеально писать когда есть уже текст.
Но тут просто нет ресурсов и сил. Может когда времени будет побольше займемся.
По поводу продвижения продукта в целом — нет в планах выступить на какой ни будь конференции?
Я думаю у вас точно есть о чем рассказать, а аудитория точно захочет об этом послушать. Например на ближайшей devconf.ru/
Цена. Вебшторм стоит столько же за год, а продление так и того дешевле. А ваша штука на вид выглядит как некоторые новые значки в уведомлениях и связь с браузером. Я понимаю какая была проделана работа (если оно работает так как я думаю), но вот за такую цену не возьму.
Используйте в режиме бесконечного триала. Может когда нибудь созреете :)
Вот за такое — респект. Потому что в долгосрочном периоде, многие, кто не могут сейчас по какой-то причине купить, захотят отблагодарить разработчиков.
Я нынче привык платить за весь софт что использую и даже предположить не мог возможность бесконечного триала :)
Делая такие вот выводы, такой свой выбор, вы своими руками душите независимые продуты для разработчиков.

Поясню.

Цена, которую ставит на свои продукты JebBrains, не является отражением себестоимости продукта. Это рыночная цена.
Разработчики webstorm годами не пили платформу, маркетологи годами не пытались ее продвинуть. Не боролись с конкурентами.
Для JetBrains — это новый рынок и не основной, Webstorm им стоил не дорого. Они могут смело опустить цену, чтобы в рынок вписаться.
Они могут заработать деньги на более массовых продуктах, но уже сейчас прощупывать рынок для веб-раработчиков.
Если бы с нуля JB создавала webstorm — продут бы не дожил до релиза. JB бы просто разорились.

Вот мы же пилим наш продукт 3 года и потратили по разным оценкам 300 тысяч евро. Представляете?
И это только зарплаты программистов, почти без маркетинга.
Так вот подумайте сколько нам нужно лицензий чтобы наши затраты покрыть? Изначально мы поставили цену выше чем сейчас в три раза.
И считаем такую цену оправданной. По другому наши затраты не отбить. Но мы снизили цену. Чтобы вписаться представления пользователей о том сколько наш продукт должен стоить.

Поэтому считаю правильным оценивать продукты только по одному критерию — сколько вы зарабатываете на этом продукте.
Экономите время, допускаете меньше ошибок или просто вас штырит — покупайте. Не нужен — не покупайте.
Но не сравнивайте цену продутое независимых разработчиков с продуктами корпораций.
Согласен, поэтому то и намеренно получил подписку и отменять её не собираюсь когда срок подойдет.
Коллега, я предлагаю вам рассказывать только про свои детали разработки. Распространять некорректную информацию про WebStorm нехорошо.
Первый публичный early-access билд WebStorm IDE появился 4.5 года назад blog.jetbrains.com/webide/2009/08/web-ide-eap-build-387/. А релиз WebStorm 1.0 случился 4 года назад (http://blog.jetbrains.com/webide/2010/05/phpstorm-1-0-webstorm-1-0-are-public-it-is-official/)
Мы *годы* распиливали исходный код IntelliJ IDEA до этого момента и после. А сколько человеко лет вложено в поддержку web технологий я вообще затрудняюсь сказать, только моих 5 лет :)
Ну ведь не только для вебсторма «распиливали». Но и для MPS, PyCharm.
Вообще строили свою платформу. И тут вы молодцы.
Но все же вы очень долго были убыточны. И думаю сейчас еще убыточны учитывая годы вложений.
А представь если бы не было бы java-idea? Не было бы Resharper? Не с нуля пилите Webstorm?
Ок, может быть перегнул чутка палку конкретно по WS, но в целом ситуация с инструментами именно такова.
Вашу уверенность бы в другое русло :)
Убыток в начале разработки вызван инвестициями в будущее, в разумном временном интервале это нормально.
А цена низкая на WebStorm (ниже психологического барьера сиюминутной покупки западного пользователя), чтобы число пользователей было шестизначно и семизначно, если руководствоваться только желанием отбить разработку, то пользователей будет мало *с большой вероятностью*. К слову число пользователей WebStorm, насколько мне известно, шестизначно :).
Рискну немного представить, что было бы если не было java-idea: не было бы WebStorm и MPS. А также не было бы Realaxy ActionScript editor (на базе MPS), да и Colt, что делают многие из тех же людей, не появился бы, по крайней мере в текущем виде :).
Мы не один год знакомы (почти лично) :) Так что да, без MPS не было бы RASE, а без IntelliJ IDEA я бы вообще не занялся Java в свое время. И вообще всяческие респекты команде и тебе лично. Разговор был не «против JB и Webstorm», разговор был о том, что делать инструменты и зарабатывать на этом деньги… скажем сложно. Что ведет за собой в целом отказ от идеи делать инструменты для разработчиков. Что является, частично, следствием отношения «у вас дороже» я не буду покупать, потому что вы хотите содрать с меня деньги. А это не так, и я хотел показать, что в отличии от таких компаний как JB, маленькому разработчику приходится идти весь путь и вкладывать деньги с большим рисками. Да и больше вкладывать.

По поводу MPS — не давите на больную мозоль ;) Лучше бы его совсем не было этого MPS… Хотя ваша правда не было бы и COLT. ОК. Спасибо MPS, что он был и есть :)
*Традиционный* порог вхождения и платности инструментов разработки постепенно растет, но качество в цене остается.
Наша команда, кстати, (в очередной раз) не смогла поиспользовать Colt в WebStorm
Мы сейчас закоммитили новую версию плагина Webstorm с фиксом первого запуска. Уже есть апрув. 1.1.2
Попробуйте?
Как уже посоветовали попробуйте в режиме триала. Он работает как в сублайм без ограничений ни по времени ни по функционалу, только раз в n сохранений будет вылазить напоминание.
Кстати, да. Я тоже как-то наткнулся на COLT. Думаю, о! крутая тема, надо поставить позырить.
Поставил из репозитория, в настройках прописал пути и нифига не заработало. Хотел какой-то .colt\storage.xml, но его небыло. В итоге пока отключил, потому что надо кодить, а не разбираться почему он не пашет.
>В итоге пока отключил, потому что надо кодить, а не разбираться почему он не пашет
А мы и не знаем. Спасибо за багрепорт.
Второй раз сегодня по storage.xml
Это plugin COLT такое ругается?
Похоже нужно свежую java, сделаем завтра фикс для этой проблемы.
Интересная штука. У меня есть такой вопрос: как это все будет работать с более сложными схемами подключения скриптов?
Например, пусть я работаю с Symfony2. Там есть специальный инструмент для подключения статики, в том числе скриптов. Работает он таким образом: я редактирую файлы скриптов в одной директории, а этот инструмент копирует измененные файлы в другую, опционально изменяя при этом. Например, объединяя в один или преобразуя CoffeeScript->JavaScript.
Или, например, я разрабатываю проект с помощью bem-tools. Тоже — редактирую файлы, разложенные по директориям блоков, в браузер подключается объединенный файл, собранный по зависимостям страницы.
Или, например, у меня grunt-таск при изменении файлов запускается и копирует их, преобразуя при этом как-то.
Ну, вы поняли суть.
Еще в догонку:
работает ли это с requirejs?
как быть, если скрипты подключаются к странице, генерируемой сервером? Все плюшки по live-редактированию html сразу отпадут, как я понимаю? А работа с JS будет возможна?
Вы хотите менять код на сервере и ждать реакции в клиентском приложении? Доставка изменений?
у нас есть live-proxy режим — вы можете указать не локальную страницу — а сервер, где она находится.
Если нет, то без разницы, где находится документ — загружен ли он с web, или лежит локально.
RequareJS должен работать, мы несколько багов правили по Requare точно.
Если что не работает — пишите репорт. Мы поправим.
Все плюшки редактора работают с загруженными скриптами. Автокомлит И так далее.
А счетчики функций отпадают, так как и кода в проекте нет :)
А вы можете описать, как это работает?
Вот я изменил локально расположенный файл app/Resources/public/js/A/A.js
WebStorm его загрузил по ssh на dev-сервер
Запустился сборщик и скопировал его в web/js/require/A
Я открываю в браузере mysite.dev
Открывается страница, к ней скрипт подключен по пути /js/require/A/A.js
Как в этот процесс встраивается COLT, как анализирует скрипт, как сопоставляет с тем, что открыто в IDE?
Или есть какие-то статьи, на которые вы можете дать ссылки? Я бы с удовольствием почитал.
При загрузке страницы, мы создаем список всех ресурсов, и определяем, что ресурс был загружен с текущего сервера. После чего пытаемся определить какой файл на сервере соответствует файлу в проекте.

На данный момент мы можем связывать только те файлы которые лежат в аналогичной структуре относительно файла *.colt (например в вашем случае он будет искать его по пути "/js/require/A/A.js" относительно *.colt).
В этом случае будет работать автокомлит, счетчики и так далее.

В режиме live-proxy мы проходим по списку файлов и опрашиваем — спрашиваем заголовок http запроса и сравниваем дату изменения с прошлым обновлением, если дата отсутствуе то сверяем контент.

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

В случае если файл-близнец не найден то COLT будет опрашивать сервер на предмет изменения файла A.js (сверяет дату последнего изменения либо сравнивает контент) по тому пути откуда он был запрошен, и при изменении подгружать изменения. Но в таком случае не будет работать автодополнения и отображения счетчиков функций, НО частичная перегрузка будет работать.

Мы работаем над решением проблемы связки путей локальных файлов и путей в запросах.
О, спасибо, хороший ответ. Судя по тому, что написали здесь, а не дали ссылку — статьи, объясняющей все это, не было. Мне кажется, это как раз то, что интересно посетителям хабра, так что подумайте, может, стоит написать об этом (и/или на подобные темы) еще подробнее.

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

Еще раз, я работаю в основном с:

1. Symfony2 — где сборщик файлов не только копирует файлы, но и переименовывает их по определенным правилам
2. bem-tools — где файлы объединяются в один, в качестве разделителя — пути к файлам внутри комментариев

Понимаю, что вы не будете подстраиваться под конкретного пользователя, но не могу не отметить, что решив эти проблемы, вы наверняка покроете львиную долю проблемных подключений статики на страницу.
Не под конкретного пользователя. Уже просил народ такое на гитхаб. Так что мне кажется решение скоро будет.
Как решение — мы можем спрашивать ваш скрипт, который вернет, например, json c маппингами.
Если такая сложная механика объединений/изменений.

С JS могут помочь обычные sourcemaps — обсуждали сегодня подобную задачу, например, пользователь, чтобы минимизировать рутину по линковки скриптов в html — объединяет файлы в один. Мы же хотим соответсвие — один файл в проекте — тот же файл в загруженой странице. Поэтому наличие source maps при таком объединении файлов нам бы помогло.
Сливать файлы в один во время разработки очень ухудшает дебаггинг, даже если браузер и откроет быстро большой скрипт, то вот breakpoints уже не будут выводить значения аргументов в замыкании, похоже тут ещё нужно браузерам допилить поддержку sourcemaps.

Json с мэппингом это вы имеете в виду возможность указать его для проекта через colt ui? Примерно как .gitignore или .jshintrc? Если да, то годное решение.
В случае с Symfony мне самому такой json сгенерировать будет не просто…

А вот source maps в случае объединения файлов — задача вполне посильная, если вы будете их поддерживать — в любом случае будет хорошо.
В смысле у вас много статики грузится с разных адресов?
Не совсем понял вопрос, но постараюсь ответить.
В Symfony можно подключать скрипты следующим образом (псевдокод):
script combined
path/to/script_a.js
path/to/script_b.js

В production режиме будет подключен один скрипт — combined.js
В development режиме будут подключены два скрипта — combined_script_a_1.js и combined_script_b_2.js
Ага, понятно. codeorchestra можно ли будет в json указывать регулярки? Это бы покрыло большое количество разных вопросов. Например псевдокод для примера с development mode in symfony:

{
  "/virtual/path/to/hardcoded_file.ext": "/local/path/to/hardcoded_file.ext",
  "regexp": {
    "/path\/to\/combined_script_(.*)_\d\.js/i": "path/to/script_$1.js",
  }
}


Таким образом /virtual/path/to/hardcoded_file.ext -> /local/path/to/hardcoded_file.ext, а в случае если имя свойства это зарезервированное слово "regexp", тогда имена свойств его объекта будут являться регулярками для мэппинга путей, т.е. /path/to/combined_script_a_1.js, /path/to/combined_script_b_2.js пройдя через регулярку /path\/to\/combined_script_(.*)_\d\.js/i смэпит вот так path/to/script_a.js, path/to/script_b.js.

Что вы думаете?
Хорошая мысль.
Можно просто по умолчанию использовать Ant match pattern.
А с его помощью разве можно сохранять результат и подставлять его в качестве замены? Вот на примере с symfony выше я ловил имя модуля (.*) и подствалял его вместо $1. Или можно как-то ещё это реализовать?
вообщето да, нельзя. ок,
хорошая мысль с регулярками.
Мы лишь отслеживаем изменения в JS/HTML через свой file-watcher.
Как был получен HTML или JS нам не важно. Из jade, coffescript, typescript и так далее.
Например, я пишу на less, и css получаю из некого инструмента. Less конвертируется в CSS где-то в фоне. COLT узнает о обновлении CSS и доставляет его в рабочее приложение. Тоже самое и для других файлов.

Чтобы уменьшить лаг при цепочке watcher-ов мы хотим прикрутить grant к нашему file-watcher. Вы cможете указать скрипт, который хотели бы вызывать при изменении файлов, но думаю все же тут не будет кардинального улучшения.

Так что уже сейчас можно работать с любыми съемами.
Лого я бы поменял, не соответствует названию. Интересно, чем вас револьвер не устроил?
Да, лого очень банальное. Согласен. Изначально была идея хорошая, потом как-то растерялась. По поводу пистолета — нужно образ придумать. А то уйдем в дикий запад.
Бог создал IDE разными, а мистер COLT всех уровнял :)
Здраствуйте. Столкнулся с проблемой плагина. На Webstorm все работает как надо, а вот на IDEA все ломается и ничего не запускается.
в IDEA другой API для плагинов, и поэтому под идею мы не делали пока. Странно что вообще смогли установить.
Думаете есть потребность в плагине для IDEA?
Конечно есть, тем более насколько я помню, что если плагин подходит к idea то должен подходить и ко всем остальным продуктам.
плагин подходит к idea то должен подходить

ну видите — не работает :)

ОК, будем оптимизировать под IDEA.
Only those users with full accounts are able to leave comments. Log in, please.