Codelite альтернатива Code::Block
November 23rd, 2008 Begemot Posted in Oбщее
Видели Codelite? CodeLite is a powerful open-source, cross platform IDE for the C/C++ programming languages
Я еще не ставил, весь в делах, только скачал пока. Но судя по скриншотам на сайте и демки, выглядит более чем приятно. Аж не верится:) Неужели она на самом деле окажется вполне рабочей.
Откуда она взялась, в таком серьозном состоянии, вроде не такой просто проект что можно за пару месяцев написать.
Open source, GPL, Windows\Linux\MAC OS, как я понял заточена под работу с wxWidgets. Написана на ней же, исходники доступны – сами будете виноваты если не скачаете.
Кто первый потестить, отписывайтесь:)
November 23rd, 2008 at 9:47 pm
Знаком с этим IDE уже около года. Раньше пробовал с ним разобраться, но сталкивался с проблемами настройки wxWidgets. Недавно скачивал и, вроде бы, с настройками удалось разобраться. Уже даже и не помню – столько всего скачиваю и пробую, прямо как Плюшкин. 🙂
Написан CodeLite всего одним человеком. Если не ошибаюсь, он автор wxAUI.
Возможностей у CodeLite действительно много, но что мне не нравится, так это то, что в шаблонах проектов для wxWidgets для событий используется старая карта сообщений, а не новые динамические Connect и Disconnect.
November 23rd, 2008 at 10:21 pm
Вроде как wxAUI контора пишет какая-то, разве нет?
А статей\описаний настройки не встречал, желательно на родном и могучем? А то я сегодня поставил, потыкался в настройки компилятора. И решил что пока мне некогда его осваивать.
Да и настройки проекта после Студии, как-то отсутствуют или я просто не нашел.
А что разве, connect\disconnet лучше чем карта сообщений?
November 23rd, 2008 at 11:50 pm
Да, насчет wxAUI я, похоже, ошибся. Спутал с Ben Williams из Kirix Corporation, но у меня все-таки такое ощущение, что Eran Ifrah, автор CodeLite, как-то засветился в разработке wxWidgets, хотя я могу и ошибаться.
Касаемо статей, нет, не встречал. Недавно смотрел screencast, по-моему он был вообще без звука. 🙂 В этом screencast’e как раз показано, как создавать программы на wxWidgets с помощью CodeLite.
Screencast по использованию плагина для wxWidgets можно посмотреть здесь:
http://codelite.org/docs/VideoTutorials/wxfb_plugin.html
В карте сообщений мне не нравится то, что это макросы (если не ошибаюсь), а Connect и Disconnect более идиоматическая для C++ конструкция. Ну и в принципе, они должны быть более гибкими, чем карта сообщений, но это в теории, не знаю как на практике. Ну и в-третьих, не зря же ведь Connect и Disconnect ввели в wxWidgets. 🙂 Это произошло не так давно, и на это, думаю, были достаточно веские причины.
А по большому счету, наверное, никакой разницы и нет.
November 24th, 2008 at 11:02 am
http://en.wikipedia.org/wiki/Codelite
Developed by Eran Ifrah
History
On August 2006 Eran Ifrah, CodeLite’s author, started a little project named CodeLite. The idea, was to create a code completion library based on ctags, SQLite (hence, CodeLite) and a Yacc based parser that could be used by other IDEs.
November 24th, 2008 at 12:47 pm
Да я этот скринкаст смотрел, и сгенерил себе шаблон программы. Я не разобрался, вернее не стал разбираться, как настроить компилятор.
Макросы менее гибки конечно, но зато на мой взгляд гораздо более читаемы и удобны, в данном случае. А добавили Connect и Disconnect, именно для гибкости и реализации динамачности , в _некоторых_ задачах это надо. А так и карта сообщений хороша:)
November 29th, 2008 at 1:04 am
К сожалению Connect, Disconnect тоже с трудом можно назвать более идеоматической конструкцией для C++.
Например попробуйте подписать такой класс:
class B : public A, public wxEvtHandler {
};
Если детальнее присмотреться, то wxCommandEventHandler используемый в Connect’ах это тоже макрос.
Далее. Посмотрите как устроен:
bool wxEvtHandler::SearchDynamicEventTable( wxEvent& event ).
Это просто проход по списку и тупой перебор. Что будет значительно медленнее при большом количестве подписчиков.
К самому же C++ гораздо ближе boost::bind, boost::signals и т.п. Но, к большому сожалению, я так и не нашел GUI библиотеки выдержанной с стиле boost.
December 1st, 2008 at 5:26 pm
1. На самом деле Connect/Disconnect не очень удобный подход в плане того что приходится выискивать их в коде. Карта сообщений как-то в этом плане более управляемое решение
2. IDE тоже довольно сырой, новичку разобраться в нем почти нереально, по крайней мере в том что касается настройки wxWidgets. Хотя да, Eran молодец, он еще там несколько компонентов для комьюнити выложил в свободное пользование, но это уже совсем другая история.
December 1st, 2008 at 5:32 pm
T-Rex, спасибо за обстоятельный ответ:)