Здравствуйте, vshabanov, Вы писали:
V>* killer feature -- показывает типы отдельных частей выражения (надо компилить с опцией -dtypes), очень удобно при поиске ошибок (можно посмотреть код вокруг ошибки и понять где типы раходятся) и при разбирании в коде.
В OcaIDE это тоже есть.
V>Замечу, что никакой class browser, autocomplete с анализом кода (типа выдать методы после точки) не нужны и не используются.
Удивительно! Для меня такой автокомплит стал наоборот очень большой подмогой, скорость и удобство разработки возросла очень сильно по сравнению с обычным редактором с подсветкой.
V>Знаю нескольких человек, пишущих на Хаскеле в FAR-е, и по своей производительности они сделают любого программиста, сидящего в навороченной IDE.
V>Кстати, очень неплохой тест для языка -- если для работы на языке нужна IDE, значит в языке есть рутинная работа, которую надо автоматизировать, значит надо думать не об IDE, а о смене языка.
Ну, ежели опечатался в идентификаторе или забыл где-нибудь скобку или разделитель, то полезно это увидеть сразу при наборе, а не после попытки компиляции. Тут IDE рулит вне зависимости от языка. Имхо, про ненужность IDE говорят только те, у кого нет достойных IDE просто.
Здравствуйте, D. Mon, Вы писали:
DM>Ну, ежели опечатался в идентификаторе или забыл где-нибудь скобку или разделитель, то полезно это увидеть сразу при наборе, а не после попытки компиляции. Тут IDE рулит вне зависимости от языка. Имхо, про ненужность IDE говорят только те, у кого нет достойных IDE просто.
Кстати, я бы с огромным удовольствием послушал бы тех кто считает, что IDE с разными автодополнениями не нужны как класс. Интересно как у них построен процесс разработки? Как они получают информацию о внешних типах и функциях которые нужно вызвать? И так далее. То ест как протекает процесс кодирования (ну, и разработки в целом) и отладки без использования поддержки IDE.
Мне периодически приходится писать писать код без поддержки IDE. Не скажу, что это очень трудно. Но определенный дискомфорт испытываю. Помогает отладчик. Когда в отладчике видишь структуру данных, то конечно проще написать несколько строк кода, но потом без многократных итераций "компиляция <-> правка" не обходится. Если же код пишется в IDE, то компиляция в большинстве случаев проходит с первого раза, да и отладка требуется реже.
Недавно переписывал части кода в интеграции немерла и был момент когда в IDE не было части функций. Например, не работали хинты к методам. При этом можно было бы смотреть типы выражений (в том числе и типов... то что тут назвали "мегафичей"), но вот списка перегрузок (описания параметров для каждой из перегрузок) получить было нельзя. Так вот даже это уже замедлило работу в несколько раз, так как пришлось лазить и выяснять описания типов для каждого метода. Эта проблема не так актуальна в языках основанных на алгоритме хиндли-миллера, так так полноценной перегрузки в них нет (не считая расширений вроде классов типов), но все же и в них приходится лазить по модулям и выяснять описания функций. А это время и нервы которые лучше потратить на разработку и отладку алгоритмов.
Когда я слышу про отладку... что мол она не нужна, то тоже как-то смешно становится. Мне не понятно как можно разбираться с чужим, объемистым, кодом в условиях когда нет ни отладчика, ни даже полной информации о типах. Ну, а в таких языках как Haskell и F# где есть или намеки на перегрузку (классы типов) или почти полноценная перегрузка (как F#) отладка, на мой взгляд вообще необходима.
Посему послушать моснстров которым "все эти баловства" (с) не нужны, было бы очень интересно.
Так что если кто-то может поделиться, то не стесняйтесь. Это очень интересно!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, D. Mon, Вы писали:
DM>Здравствуйте, vshabanov, Вы писали:
V>>* killer feature -- показывает типы отдельных частей выражения (надо компилить с опцией -dtypes), очень удобно при поиске ошибок (можно посмотреть код вокруг ошибки и понять где типы раходятся) и при разбирании в коде.
DM>В OcaIDE это тоже есть.
Только вот кроме окемла там мало что поредактируешь, изучать еще одну IDE для одного-то языка не очень охота.
V>>Замечу, что никакой class browser, autocomplete с анализом кода (типа выдать методы после точки) не нужны и не используются.
DM>Удивительно! Для меня такой автокомплит стал наоборот очень большой подмогой, скорость и удобство разработки возросла очень сильно по сравнению с обычным редактором с подсветкой.
Я как-то пробовал окемл с автокомплитом (только вроде это был не OcaIDE, а какой-то режим для eclipse). В принципе в меру удобно, но кроме этого автокомплита там была еще система проектов, вместо Makefile, ну и еще всякие привычные вещи из emacs отсутсвовали. В общем я посчитал, что не стоит оно того, чтобы изучать другую IDE.
V>>Знаю нескольких человек, пишущих на Хаскеле в FAR-е, и по своей производительности они сделают любого программиста, сидящего в навороченной IDE.
V>>Кстати, очень неплохой тест для языка -- если для работы на языке нужна IDE, значит в языке есть рутинная работа, которую надо автоматизировать, значит надо думать не об IDE, а о смене языка.
DM>Ну, ежели опечатался в идентификаторе или забыл где-нибудь скобку или разделитель, то полезно это увидеть сразу при наборе, а не после попытки компиляции. Тут IDE рулит вне зависимости от языка. Имхо, про ненужность IDE говорят только те, у кого нет достойных IDE просто.
По мне наоборот, проверка кода IDE по ходу дела снижает мою производительность. Банально теряется фокус. Пока я пишу код, мне глубоко параллельно, правильный он с синтаксической точки зрения или нет, это я буду проверять потом, при компиляции. Надо делать одну задачу за раз.
Скобки обычно подсвечиваются, так что с ними да, IDE используется (кстати тоже не уверен, что это хорошо, но уже привык).
Про ненужность IDE. Действительно у окемла IDE уровня VS нет. Да и отладчик там под виндой как-то непросто заставить работать. В начале я тоже как-то думал "а где бы мне IDE нормальную надыбать". Но в итоге я теперь и для C++/Java кода никакой IDE и отладчиком не пользуюсь. Стиль разработки сменился.
Здравствуйте, VladD2, Вы писали:
VD>Эта проблема не так актуальна в языках основанных на алгоритме хиндли-миллера, так так полноценной перегрузки в них нет (не считая расширений вроде классов типов), но все же и в них приходится лазить по модулям и выяснять описания функций. А это время и нервы которые лучше потратить на разработку и отладку алгоритмов.
Хиндли — Милнера
Я пишу в на Яве в Эклипсе, Шарпе в Студии и Немерле в Виме. В целом, эффективность ввода текста в Виме полностью компенсирует необходимость чаще переключаться на окно со справкой. С автодополнением было бы лучше, но всё как-то лень его прикрутить.
Здравствуйте, Don Reba, Вы писали:
DR>Я пишу в на Яве в Эклипсе, Шарпе в Студии и Немерле в Виме. В целом, эффективность ввода текста в Виме полностью компенсирует необходимость чаще переключаться на окно со справкой. С автодополнением было бы лучше, но всё как-то лень его прикрутить.
Это лишь означает, что ты не умеешь пользоваться IDE.
Здравствуйте, Cyberax, Вы писали:
DR>>Я пишу в на Яве в Эклипсе, Шарпе в Студии и Немерле в Виме. В целом, эффективность ввода текста в Виме полностью компенсирует необходимость чаще переключаться на окно со справкой. С автодополнением было бы лучше, но всё как-то лень его прикрутить. C>Это лишь означает, что ты не умеешь пользоваться IDE.
Я тоже так считаю, но ОЧЕНЬ хотел бы услышать развернутую аргументацию от тех кто так не считает. Жаль, что все заканчивается на пустых декларациях.
Народ! Поделитесь, плиз!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Don Reba, Вы писали:
C>>Это лишь означает, что ты не умеешь пользоваться IDE. DR>Обоснуй.
В ViM'е нет: онлайновой подсветки ошибок и вывод результатов инспекций, рефакторинг, отладка, банальный переход по типу.
А сказки про "скорость ввода" не надо мне рассказывать. Я уже не помню чего в ViMе было бы, чего нет в той же IDEA. Там есть и прямоугольные выделения, и кольцо буфферов обмена, закладки, возможность повторять N последних действий.
Здравствуйте, Don Reba, Вы писали:
C>>Это лишь означает, что ты не умеешь пользоваться IDE.
DR>Обоснуй.
Мне кажется, обосновывать нужно как раз заявление о бесполезности IDE.
Их преимущества очевидны. Это возможность постоянно видеть инфрмацию о типах которая без этого была бы доступна только после компиляции (которая может занимать минуты и даже часы). Если в динамических языках информацию о типах можно получать и динамически и менять код (тоже динамически). Это возможность быстро переключаться между частями проекта. Когда проект большой — это дорогого стоит. Это возможность моментально выявлять ошибки и практически не допускать их. Это возможность быстро, без ошибочно и просто менять проект (делать сложный рефакторинг). Это возможность не лазить в хэлп по каждому поводу. К тому же в статически-ипизированном языке не всегда ясно в какой хэлп лезть. Ведь тип варжения может быть не очевиден если нет IDE. Ни конечно же отладка... Разбираться в чудом (и тем более, плохо написанном) проекте не просто без отладчика. Да и в своем иной раз разобраться не просто.
В общем, преимущества как раз очевидны.
Лучше расскажи как же люди умудряются жить без IDE и при этом иметь достойную производительность труда?
И часть про волшебные свойства ФП можно пропустить, так как не ФЯ тут даже не рассматриваются.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>Я тоже так считаю, но ОЧЕНЬ хотел бы услышать развернутую аргументацию от тех кто так не считает. Жаль, что все заканчивается на пустых декларациях.
Заглядывать в справку требуется только изредко. Как это действие не ускоряй, его влияние на производительность ограничено. Мой опыт говорит, что оно и не велико.
Здравствуйте, vshabanov, Вы писали:
V>Про ненужность IDE. Действительно у окемла IDE уровня VS нет. Да и отладчик там под виндой как-то непросто заставить работать. В начале я тоже как-то думал "а где бы мне IDE нормальную надыбать". Но в итоге я теперь и для C++/Java кода никакой IDE и отладчиком не пользуюсь. Стиль разработки сменился.
Ну, так и расскажи нам про этот стиль.
Я вот иногда вынужден писать оноситльно большие куски кода без IDE (в расширенном смысле этого слова) и испытываю дикий дискомфорт. То что я мог бы сделать за 5 минут в IDE требует десятков минут, а то и часов когда делаешь это "вручную".
Дико интересно как народ умудряется без этого всего обходиться. Причем не заявления, а именно рассказ...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Cyberax, Вы писали:
C>В ViM'е нет: онлайновой подсветки ошибок и вывод результатов инспекций, рефакторинг, отладка, банальный переход по типу.
Онлайновой подвсетки ошибок и рефакторинга для Немерле вообще нигде нет. Для отладки пользуюсь Студией. Переход по типу есть когда он в том же файле, но вообще, это такая мелочь.
C>А сказки про "скорость ввода" не надо мне рассказывать. Я уже не помню чего в ViMе было бы, чего нет в той же IDEA. Там есть и прямоугольные выделения, и кольцо буфферов обмена, закладки, возможность повторять N последних действий.
В IDEA появилась поддержка Немерле? При чём он тут?
Вим это не пара фич которые достаточно иметь, чтобы быстро печатать. То, что ты его плохо помнишь не повод заявлять, что я не умею пользоваться IDE.
Здравствуйте, vshabanov, Вы писали:
V>Я как-то пробовал окемл с автокомплитом (только вроде это был не OcaIDE, а какой-то режим для eclipse). В принципе в меру удобно, но кроме этого автокомплита там была еще система проектов, вместо Makefile, ну и еще всякие привычные вещи из emacs отсутсвовали. В общем я посчитал, что не стоит оно того, чтобы изучать другую IDE.
OcaIDE это и есть плагин для эсклипса
Он нормально подерживает Makefile.
Правда вроде есть еще один камловский плагин для eclipse, он вроде чуть уступает OcaIDE.
V>Про ненужность IDE. Действительно у окемла IDE уровня VS нет. Да и отладчик там под виндой как-то непросто заставить работать. В начале я тоже как-то думал "а где бы мне IDE нормальную надыбать". Но в итоге я теперь и для C++/Java кода никакой IDE и отладчиком не пользуюсь. Стиль разработки сменился.
OcaIDE в общем-то вполне на уровне VS.
Под win если использовать mingw вариант OCaml все настраивается и графический отладчик и сборка через make.
Здравствуйте, VladD2, Вы писали:
VD>Кстати, я бы с огромным удовольствием послушал бы тех кто считает, что IDE с разными автодополнениями не нужны как класс. Интересно как у них построен процесс разработки? Как они получают информацию о внешних типах и функциях которые нужно вызвать? И так далее. То ест как протекает процесс кодирования (ну, и разработки в целом) и отладки без использования поддержки IDE.
Я так не считаю, но какого-то значимого дискомфорта без IDE не испытываю. Да скорость набивания кода чуть ниже, но это не отражается сколько нибудь существенно на общей скорости разработки.
VD>Мне периодически приходится писать писать код без поддержки IDE. Не скажу, что это очень трудно. Но определенный дискомфорт испытываю. Помогает отладчик. Когда в отладчике видишь структуру данных, то конечно проще написать несколько строк кода, но потом без многократных итераций "компиляция <-> правка" не обходится. Если же код пишется в IDE, то компиляция в большинстве случаев проходит с первого раза, да и отладка требуется реже.
У меня наоборот без IDE отладка меньше и легче.
И я обычно и запускаю IDE когда нужен отладчик
Вот разбираться в чужом коде, и в процессе изучения нового языка, да IDE здорово помогает.
Здравствуйте, Don Reba, Вы писали:
DR>Онлайновой подвсетки ошибок и рефакторинга для Немерле вообще нигде нет. Для отладки пользуюсь Студией. Переход по типу есть когда он в том же файле, но вообще, это такая мелочь.
Это как? А чем же я тогда пользуюсь?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Don Reba, Вы писали:
C>>А сказки про "скорость ввода" не надо мне рассказывать. Я уже не помню чего в ViMе было бы, чего нет в той же IDEA. Там есть и прямоугольные выделения, и кольцо буфферов обмена, закладки, возможность повторять N последних действий. DR>В IDEA появилась поддержка Немерле? При чём он тут?
Я говорил про IDE вообще. Всё перечисленное есть для Scala.
DR>Вим это не пара фич которые достаточно иметь, чтобы быстро печатать. То, что ты его плохо помнишь не повод заявлять, что я не умею пользоваться IDE.
Ну я как бы пользовался ViM'ом. Не помню я чего там такого есть замечательного.
Здравствуйте, VladD2, Вы писали:
VD>Кстати, я бы с огромным удовольствием послушал бы тех кто считает, что IDE с разными автодополнениями не нужны как класс.
Я так не считаю, но напишу.
VD>Интересно как у них построен процесс разработки? Как они получают информацию о внешних типах и функциях которые нужно вызвать? И так далее. То ест как протекает процесс кодирования (ну, и разработки в целом) и отладки без использования поддержки IDE.
А очень просто, пишешь небольшие модули, рядом открыт браузер с автосгенеренной документации по всем остальным, ни разу на практике не надобился автокомплит, хотя в редакторе он, достаточно убогий, но всё же есть. Но не нужен.
VD>Помогает отладчик. Когда в отладчике видишь структуру данных, то конечно проще написать несколько строк кода, но потом без многократных итераций "компиляция <-> правка" не обходится. Если же код пишется в IDE, то компиляция в большинстве случаев проходит с первого раза, да и отладка требуется реже.
Мне помогает REPL, и отсутствие оного в C++/C#/F# очень напрягает.
VD>Эта проблема не так актуальна в языках основанных на алгоритме хиндли-миллера, так так полноценной перегрузки в них нет (не считая расширений вроде классов типов), но все же и в них приходится лазить по модулям и выяснять описания функций. А это время и нервы которые лучше потратить на разработку и отладку алгоритмов.
Лазить не приходится, модули обычно небольшие, в одно окно браузера умещаются. Хинты были бы полезны, если бы не одно но, нужно уже знать, что где-то какая-то функция нужная есть, а где именно — ты не помнишь, вот тогда да. Было бы полезно иметь хинты с возможностью поиска и встроенной доки (hayoo + hoogle, например), а ещё чтобы можно было модуль скачать; с этим прекрасно справляется обычный браузер, резкого улучшения производительности, скорее всего, не будет; но leskah я, может, и поставил бы, когда его допилят, но именно из-за hayoo + hoogle.
VD>Когда я слышу про отладку... что мол она не нужна, то тоже как-то смешно становится.
А ты не смейся, и правда не нужна. Т.е. как без нее жить в C++/C#/... я и сам не представляю, а в Хаскеле мне не была нужна ни разу. VD>Мне не понятно как можно разбираться с чужим, объемистым, кодом в условиях когда нет ни отладчика, ни даже полной информации о типах.
Ну почему ж нет, документации достаточно, а благодаря чистоте, функции и модули часто изолированны настолько, что можно исправлять, не боясь задеть что-то ещё.
VD>Ну, а в таких языках как Haskell и F# где есть или намеки на перегрузку (классы типов) или почти полноценная перегрузка (как F#) отладка, на мой взгляд вообще необходима.
Зачем отладка? Как наличие перегрузки (классов типов) влияет на необходимость отладки?
VD>Посему послушать моснстров которым "все эти баловства" (с) не нужны, было бы очень интересно.
Я не монстр, и сам с трудом представляю написание кода в C++ без IDE. Да и без ассиста геморройно, но вот как-то так получается, что в Хаскеле с этим проблем нет.