Python, Eclipse && GNU C++, Java, MSVC

Тема в разделе "WASM.ZEN", создана пользователем volodya, 2 янв 2007.

  1. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Решил поделиться результатами исследований. Задача была: найти IDE для питона. Порылся, результаты исследований выкладываю в форум. Попутно еще ворох всякой всячины.

    Серьезно имело смысл рассматривать только три варианта:

    1. Какое-то standalone IDE
    2. Какой-то плагин для VisualStudio по подобию VisualPerl.
    3. Какой-то плагин для Eclipse

    1 - это Komodo (http://www.activestate.com/Products/Komodo)
    2 - раньше ActiveState выпускала линейку плагинов для VS - я юзал VisualPerl - очень удобно. Однако, теперь на сайте я этого продукта найти не могу. Наверное, линейка закрыта. Вместо этого имеем ActivePerl Pro Studio, судя по всему, на базе того же самого Komodo.
    3 - наиболее предпочтительный вариант для мя, ибо я сам очень люблю Eclipse.

    1 и 2, посему, я не рассматривал. Если кому надо, то лезьте куда-нить сюда:
    http://spyced.blogspot.com/2005/09/review-of-6-python-ides.html
    http://wiki.python.org/moin/IntegratedDevelopmentEnvironments

    А вот касательно 3, хочу рассказать достаточно подробно.

    Клипса, по сути, - это шикарное IDE, изначально построенное на плагиновой основе. Модель очень продумана, поэтому, вероятно, плагинов под клипсу так много. Более подробно мона почитать тута:
    http://www.eclipse.org/resources/
    http://www.eclipse.org/resources/resource.php?id=211

    Я помню, как сам когда-то настраивал клипсу... Года 2 назад. Не смог. Запутался. Помогали коллеги по работе. Поэтому я тут минитуртор напишу.

    Eclipse && Java

    Клипса, вне всяких сомнений - это самое лучшее IDE для жабы. Тут даже двух мнений быть не может. Ничто и рядом не стояло. Даже Intellij IDEA. Те возможности по рефакторингу, которые JDT предоставляет для работы с жабой - это сказка.

    Что требуется:
    1. Собсно, сама Eclipse
    2. Плагин для Java - JDT.

    Установка:
    1. На сайте клипсы стоит бардак и очень легко перепутать саму клипсу с ее SDK. А SDK для установки JDT нам и даром не нужен. Поэтому, мы должны скачать и поставить именно клипсу.

    http://www.eclipse.org/downloads/index_project.php => Platform => Latest Release. На момент написания последним был 3.2.1. В любом случае, низзя брать меньше, чем 3.2.

    http://download.eclipse.org/eclipse/downloads/drops/R-3.2.1-200609210945/index.php
    тута выбираем Platform Runtime Binary => eclipse-platform-3.2.1-win32.zip

    Установка для полных идиотов - просто распаковать зип-архив. Желательно, в папку без пробелов.

    2. Все, сам костяк у нас есть. Однако, для девелопмента он бесполезен. Нужен JDT.

    http://download.eclipse.org/eclipse/downloads/drops/R-3.2.1-200609210945/index.php => JDT Runtime Binary =>
    eclipse-JDT-3.2.1.zip

    Установка лишь немногим сложнее :) Надо просто распаковать содержимое внутрь диры клипсы.

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

    Eclipse && С++

    Есть фанаты VisualStudio. Сразу оговорюсь, что поднимать holy war желания нет. Речь сейчас не о том, что Visual Studio - отстой, а Eclipse - рулез. Но, скажем, переименовать метод не тупым Search & Replace, а интеллектуально, мне кажется, проще в Eclipse :)

    Плагин для С/C++ в Eclipse называется CDT. CDT целиком заточен под GNU-цепочку. MSVC там пока особо не пахнет, впрочем, об этом позднее.

    Что требуется:
    1. Собсно, сама Eclipse
    2. Плагин для C++ - CDT

    Установка:
    1. Ставим саму IDE аналогично пункту 1 в жабе.
    2. Ставим CDT. Замечу, что в Eclipse прекрасно уживутся CDT и JDT одновременно. Только надо будет Perspective менять. Наклацаете окошечко Open Perspective и там сможете переключаться между C++, Java, чертом-в-ступе.

    Сам CDT лежит здесь: http://www.eclipse.org/cdt/downloads.php

    Я уже упоминал в топике про жабу, что клипса умеет выполнять обновления. Поэтому варианта установки CDT есть два:
    2.1. Либо вы прописываете URL автообновлений CDT в клипсу и она сама закачивает его и ставит
    2.2. Либо вы скачиваете zip-файлик и ставите его сами.

    2.1 URL на момент написания: http://download.eclipse.org/tools/cdt/releases/callisto
    Версия CDT: 3.1.1 => org.eclipse.cdt-3.1.1-win32.x86.zip

    Eclipse && Python

    Поскольку Eclipse обеспечивает действительно хорошее IDE для плагинов, то нет ничего особо удивительного в том, что народ эти плагины пишет. Вот и был написан PyDev - http://www.fabioz.com/pydev/ - плагин для разработки питона под Eclipse. Впечатления очень приятные: автокомплит, элементарный рефакторинг, отладка и прочие приятные мелочи жизни.

    Автор сделал два клипа, которые показывают, на что способен PyDev. Посмотреть тута: http://showmedo.com/videos/series?name=PyDevEclipseList

    Что требуется:
    1. Собсно, сама Eclipse
    2. SDK (!!!) для Eclipse
    3. PyDev

    Установка:
    1. Ставим Eclipse
    2. В этот раз нужен SDK для Eclipse. Поэтому, после того как поставим саму клипсу, надо накатить SDK на нее.

    http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.2.1-200609210945/eclipse-SDK-3.2.1-win32.zip

    Файлик: eclipse-SDK-3.2.1-win32.zip
    3. Теперь ставим PyDev. Тут варианта, как всегда, два. Либо через клипсу, либо зипом. Более подробно см. тута: http://www.fabioz.com/pydev/download.html

    Правда, есть один отрицательный момент. PyDev - это не бесплатный продукт. Автор просит денежку. Правда, отучить PyDev от прошений денежки, видимо, не так уж и сложно. Это жаба, а большой защиты на жабе не склепаешь. Может, если руки дойдут, то поковыряю... Посмотрим.

    Собсно все. Спасибо за внимание :)
     
  2. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    А, шит. Забыл об MSVC рассказать. Так вот, в MS осознали уровень угрозы со стороны Eclipse. Мол, зачем мне студия, которая до сих пор до рефакторинга не додумалась, если есть Клипса, которая прекрасно умеет рефакторить и которая изначально создавалась именно на базе плагинов. Кроме того, Клипса еще и бесплатная. Впрочем, про сравнения вы можете почитать и тута:

    http://www-128.ibm.com/developerworks/opensource/library/os-ecl-vscdt/

    Но, с другой стороны, клипса изначально заточена под кросс-платформу, что может быть и недостатком. Скажем, в определенном смысле слова лучше Debugging Tools for Windows отладчика для винды и нету. Тут лучше немножко расписать.

    Разумеется, все, что написано - это мое ИМХО и не более того. Цель - не holy war. Цель - MSVC && Eclipse и как с этим жить.

    Скажем, Visual Studio - это прекрасный GUI и великолепный отладчик. Но, как по мне, Eclipse дает не худший GUI, при этом, не надо волочь за собой кучу дерьма (заранее сорри любителям C#, IIS и прочих вещей). Но беда в другом. Eclipse опирается на GNU gcc/gdb порты под винду. Если про gcc я еще молчу, то вот про gdb ничего, кроме матов, сказать не могу. Хватило этой ублюдочной поделки под линух, чтобы ее еще и под виндой жевать. Вывод, словом, простой. Клипсе явно не хватает нормального компилятора/линкера/отладчика под винду и GNU-цепочка со своими cygwin, mingw и прочими приблудами тут явно не спасает.

    Что тут можно сделать? Ну, до недавнего времени ничего. Однако, появились эти Express Edition, отдельные выпуски CLI-тулзов и ситуация стала веселее! Скажем, теперь уже можно подумать о том, чтобы заюзать MSVC-цепочку сугубо под винду вместо GNU-цепочки. И даже вопрос с отладчиком можно решить! Дело в том, что Debugging Tools for Windows, по сути, опираются на один хитрый файл - dbgeng.dll. Известно, что отладчик под винду можно написать, базируясь лишь на 5 функциях. Впрочем, я отвлекся. Так вот, интерфейсы dbgeng.dll + интерфейсы dbghelp.dll вполне можно было бы заюзать в клипсе. Получился бы такой себе милый отладчик со всеми возможностями Visual Studio.

    Более подробно мона почитать тута:
    http://cdtdoug.blogspot.com/2006/09/windows-sdk-rc1.html
    http://wiki.eclipse.org/index.php/CDT/designs/msvc

    Ходють слухи даже про какие-то реализации. Например, тута:
    http://cdt-msvc.tigris.org/

    Но, кааться, это только слухи.
     
  3. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    volodya
    В принципе правильно, все время была только одна проблема: jadclipse не работал с 3.2. Пару дней назад выпустили новую версию специально для 3.2, надо будет ее потестировать.
     
  4. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Товарищ Стивер у нас полуночник. Поэтому мы с ним быренько разломали PyDev.

    class, где проверяются лицензии: com.python.pydev_1.2.5 => pydev.jar

    Метода такая:

    1. Разжимаем содержимое
    2. Ищем строку "license" => ClientEncryption.class, PydevPlugin.class
    3. Через jad их!
    4. Первым делом полезли в ClientEncryption.class. Увидели там RSA:

    Код (Text):
    1.     public ClientEncryption()
    2.     {
    3.         e = new BigInteger("65537", 10);
    4.         N = new BigInteger("115177032176946546558269068827440200244040503869596632334637862913980482577252368423165152466486515398576152630074226512838661350005676884681271881673730676993314466894521803768688453811901029052598776873607299993786360160003193977375556220882426365859708520873206921482917525578030271496655309864011180862013", 10);
    Извините, ребята, 1024 бита. Факторизовать бум долго... Отпадает.

    5. Лезем в PydevPlugin.class. Видим там:
    Код (Text):
    1.             File f = path.toFile();
    2.             if(!f.exists())
    3.                 throw new FileNotFoundException("File not found.");
    4.             String encLicense = REF.getFileContents(f);
    5.             if(isLicenseValid(encLicense))
    6.                 validated = true;
    7.             else
    8.                 validated = false;
    Бугага. Еще вопросы есть? Далее надо пропадчить один байт. Скомпилить. Засунуть назад в jar и вуаля.
     
  5. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Ха. Погорячился я с компиляцией-декомпиляцией. Там же Eclipse SDK нужен и куча других радостей. Проще западчить. Стивер подсказал как.

    Метода:

    1. Берем JavaBite
    2. Наша цель: сделать так, чтобы loadLicense() и isLicenseValid(String s) возвращали return null; и return true; соответственно
    3. Дизасмим в JavaBite это добро. Гупаем весь ненужный код в двух упомянутых функциях.
    4. Убираем атрибуты! Для каждой функции прописана определенная служебная информация + информация об исключениях, которые эта функция может бросить. Все это надо подчистить. JavaBite позволяет.
    5. Сохраняем наш пропадченный файлик. Пихаем его назад в jar, наслаждаемся работой без ограничений :)
     
  6. ZENiTH

    ZENiTH New Member

    Публикаций:
    0
    Регистрация:
    13 май 2003
    Сообщения:
    16
    а какой смысл качать саму клипсу, а потом ещё отдельно докачивать SDK для некоторых плагинов? В SDK уже есть всё необходимое - The Eclipse SDK includes the Eclipse Platform, Java development tools, and Plug-in Development Environment, including source and both user and programmer documentation. If you aren't sure which download you want... then you probably want this one. Поставил JRE, распаковал сдк клипсы и плагины и радуешься жизни. Или для некоторых плагинов сразу идут полные комплекты со всем необходимым что ещё удобнее.
     
  7. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Возможно :)

    Я забыл про isValidated(). Ее тоже нужно падчить.
     
  8. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
    В Эклипсе много хороших плагинов, сопутствующих программингу(например
    плагин для СВН ) , кстати есть мульти лэнг пак, чуть чуть кривоват правдо (ещё
    не все плагины переведены).

    А никто не слышал нет ли какого-нить ADT типа Asm.Dev.Tools. :) ?
     
  9. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    http://sourceforge.net/projects/asmplugin/
     
  10. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
    Да, это конечно вещь :lol: ... кроме как создать проек у ребят видимо дальше не пошло...
     
  11. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    http://sourceforge.net/project/showfiles.php?group_id=163472 - а чо не устраивает? Версия 1.0.1. Сорцы есть, плагинчик есть. Осталось только:

    1. Прокурить кучу док по клипсе
    2. Выучить жабу, если не знал
    3. И доработать :)
     
  12. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
    :lol: ага совсем малость...
    1,2 имеется, и сама идея плагина вазника, но время пока требует решения других задачь...
    кроме того проект вроде как ещё дышит возможно в скором будущем будет рульный плагин...

    PS:прикольно будет в эклипсе клепать проект на джабе и джнай класы с либами на асме,
    тут же, в нём же, и одим мановением анта всё ето собирать :)
     
  13. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    /offtop.
    А почему все Eclipse любят, вроде NetBeans тоже не плохая среда, конечна сыровата, но ряд задач она позволит выполнить не хуже чем Eclipse и 1. Фриварна 2. Есть плагины
     
  14. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    EvilsInterrupt
    Не все. Меня от обоих тошнит, но от Эклипсе чуть меньше, чем от Нэтбинса. К счастью, в последнее время не приходилось иметь дело с жабой, но чувствую, что это не на долго.

    ЗЫ: Только что вспомнил IDE Borland JBuilder 3 - удобная штука была и практически бесплатная (шаровара), моментально грузилась, никаких конфликтов с разными версиями JDK/JRE, т.к. само IDE было нативным... Эх, ностальгия.
     
  15. kyprizel

    kyprizel New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2003
    Сообщения:
    232
    Адрес:
    TSK
    эх. столько шума, а драки нету. как подружить Eclipse с CDT и PyDev подробно описано в пункте Install на их сайтах )
    а где ж про MSVC ?
    не могу найти внятного способа их подружить (
     
  16. click_and_die

    click_and_die New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    192
    Quantum
    А еще архивы EXE делала (типа JavaPortableApplication)
     
  17. t3steRR

    t3steRR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2007
    Сообщения:
    1
    А можно куда-нибудь закинуть вылеченный от наглости PydevPlugin.class? :)