Дело в том, что я уже давно хочу написать свой файловый менеджер, т.к нет ниодного идеального для меня из ныне существующих. Я все вынашиваю план написание сего чуда на QT. Почему именно QT? Потому он мультиплатфоменен и наиболее близок к с++ (по сути это он и есть). Но сегодня вдруг идея стукнула в голову: а не будет ли проще написать на python, а GUI забацать на QT? Почему я создал эту тему? Потому что я не знаю возможностей python. Можно ли сравнить быстродействие и возможности двух разных языков в рамках поставленной задачи?
Если файл-менеджер, то без раздумий PyQt4 :) (в плане производительности более чем хватит)
Насчет возможностей - это настолько разные языки, что прямо в лоб так их сравнивать нельзя. Если брать некий глобальный смысл, то у питона возможностей (программистких) больше, чем у C++. Плюс PyQt4 вроде идет на тех же платформах, что и Qt.
Хотя, я тут подумал, что если делать прямо совсем кроссплатформенно, то вряд ли без C++ обойтись получится, чтобы делать какие-нибудь экзотические функции. В любом случае тогда можно написать на сях модуль и таскать через привязку к питону.
Я знаю, что она абсолютно разные, поэтому и интересуют общие вопросы типа быстродействия и пр.
Честно говоря, меня удивила фраза
Shanti:Если брать некий глобальный смысл, то у питона возможностей (программистких) больше, чем у C++.
. Видимо я совсем не знаю что такое питон....
Еще проблема в том, что я просто не представляю как пишется сам файл менеджер.... Техническая часть его. Ни на си ни на каком другом языке. Вот и интересно, если есть люди реально знающие, то какой будет эффективнее и быстрее работать именно в этом случае.
ФМ моей мечты двухпанельный, с минимальным интерфейсом и чтобы работал как можно быстрее.
Где почитать что-нибудь толковое по этой теме?
Вряд ли существуют какие-нибудь книги конкретно по написанию двухпанельных файловых менеджеров, слишком уж специфическая задача.
Больше возможностей в плане того, что питон более высокоуровневый язык по отношению к сям, плюс довольно мощные возможности функционального программирования. Более удобный для программиста.
Shanti:Вряд ли существуют какие-нибудь книги конкретно по написанию двухпанельных файловых менеджеров, слишком уж специфическая задача.
Эт я понимаю... :)
Может подскажите тогда одну-две реально полезных книг по
питону на
русском языке?
А, в этом смысле :)
1.
http://python.ru/docs/
2.
http://www.infanata.org/computers/prog/1146115733-izuchaem-python-3-e-izdanie.html
3. Не на русском, но непосредственно по теме:
http://www.amazon.com/Programming-Python-Prentice-Software-Development/dp/0132354187 (могу поискать для скачки :))
На самом деле, на русском мало книг или они весьма устарели, к сожалению.
А если на английском, то на первом месте:
http://docs.python.org/tutorial/ и
http://docs.python.org/library/
Здесь вроде есть перевод какой-никакой:
http://ru.wikibooks.org/wiki/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F_Python
В принципе, сам язык учится за пару дней, огромная библиотека, для знакомства может месяц нужен. Ну а потом всякие сложности типа многопоточности, метапрограммирования(редко необходимо), GUI
Я изучал прямо на таблетке, забивая руками примеры, так лучше усваивается :)
По PyQt4 базовые знания здесь на русском хорошо изложены:
http://forum.vingrad.ru/forum/topic-159421/kw-pyqt.html
Здесь по-английски, но хорошие примеры:
http://zetcode.com/tutorials/pyqt4/
Спасибо! Как выкрою время - займусь.
Кстати сейчас гуглил на тему \"PyQt\" и напоролся на ссылочку на хабре -
Написание приложений, основаных на Qt, на языке Python.
Буду осваивать! :)
Насчет книг я бы еще посоветовал вот это -
http://www.intuit.ru/department/pl/python/1/1.html
Курс по одной из лучших книг о питоне.
Насчет быстродействия - увы в чистых цислодробилках C и C++ превосходят питон в 10..1000 раз (зависит от алгоритма). Т е если вы сумеете уйти от большого перебора циклов, то получите медленее раз в 10 - не сумеете - в 1000. Хотя можно конечно провести оптимизацию и узкие места переписать на С - но думаю там тоже много подводных камней.
Ну, очень вряд ли при написании файл-менеджера потребуется числодробилка. Максимум - задача сортировки, но в питоне есть куча готовых функций сортировки, написанных по очень быстрому алгоритму.
Кстати на папках с большим (50-100-...) количеством файлов даже родной ФМ diablo тормозит. А он на С++. Тормозит он скорее всего из-за иконок, но не получите ли вы еще более жуткие тормоза на питоне?
Mitrandir:даже родной ФМ diablo тормозит
Родной ФМ - самое тормозное поделие на таблетке, имхо. Как-то здесь я создавал тему по ФМ в ней обуждался ФМ XWC (не
XFE). Его в свое время в той же теме компилировал для maemo уважаемый
svs57. Вот он летал на самом деле! Но одна большая проблема - он не хилдонизирован. Т.е умел тока бегать по папкам и открывать файлы (там кстати система файловых ассоциаций была хорошая) и делал это мгновенно. Но, и он не идеален. Вот и поставил тогла себе задачу на будущее - написать быстрый мультиплатформенный ФМ.
Так а взять за основу тот же XWC и развить его дальше? Зачем с нуля-то писать?
Вы когда-нибудь пытались брать уже готовый проект и разбаться в нем? Это не легко разбираться в чужом коде и более того хочется что-то свое.
Пытался. Смотря в каком коде. Я напомню, что Вы совершенно не в курсе ни python'а, ни как писать FM в принципе, а в этом случае \"рабочий\" проект на C++ (к тому же, который Вам лично понравился) гораздо полезнее.
Честно говоря я не думаю, что у Вас хоть что-то выйдет с таким подходом. \"Что-то своё\" это забавный аргумент. Особенно, если под \"своё\" Вы подразумеваете исключительно \"написание с нуля на незнакомом языке незнакомого проекта под незнакомую систему\". Скоро закончатся выходные и Ваш энтузиазм вместе с ними :-). Так что может с python'ом Вы и разберётесь, но хорошего FM мы точно не дождёмся :-D
Egres:Так что может с python'ом Вы и разберётесь, но хорошего FM мы точно не дождёмся :-D
Ну почему. Дождемся, может просто не так быстро, как хотелось бы. К Maemo 6, например :)
Кстати, на питоне вполне можно что-то написать приемлемое без изучения других исходников. Подводных камней намного меньше, я бы сказал, чем в сях.
Вот, кстати, неплохое сравнение скоростей языков
http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/. Java рулит, но почему-то под maemo так и не удосужились нормально портировать ее. Да и памяти она всё-равно кушает очень много, что не критично для десктопа, но для таблетки сомнительно.
Egres, спасибо за веру в интузиазм, так сказать...
А ФМ писать я собрался для себя, для тренировки так сказать. Да, я не знаю ни питон ни принцип написания ФМ. Но и не говорю что все напишу быстро и красиво. Ведь учиться надо на своих ошибках... Как раньше писали практически не имея документации и выбора языков и сред программирования. Это сейчас раздолье - выбирай не хочу. С современным прогрессом писать программы может кто угодно, в книгах уже разжевано достаточно подробно все.
Вообще буду делать для себя, а если получится что-то дельное - отдам на суд сообщества. :)
Shanti:[quote=Egres]Так что может с python'ом Вы и разберётесь, но хорошего FM мы точно не дождёмся :-D
Кстати, на питоне вполне можно что-то написать приемлемое без изучения других исходников. Подводных камней намного меньше, я бы сказал, чем в сях.
[/quote]
Это относится к любому языку программирования. Вопрос не как, а что. Помнится лет эдак 15 назад (или поболе) в институте преподаватель в начале семестра сказал \"примеры я буду приводить на языке C - мне так удобнее. Кто не знает - почитайте пару книжек перед сном\" - и он прав. Разобраться в новом языке - не занятие вообще (если это не какой-нибудь пролог, форт или хаскел).
Shanti:Вот, кстати, неплохое сравнение скоростей языков http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/. Java рулит, но почему-то под maemo так и не удосужились нормально портировать ее. Да и памяти она всё-равно кушает очень много, что не критично для десктопа, но для таблетки сомнительно.
Какая тут скорость вообще? О чём Вы? Сортировка списка файлов, что ли? Мне кажется, что FM на любом языке тормозить не будет, точнее не будет тормозить заметно больше, чем стандартный 'ls', ведь на худой конец никто не мешает тупо парсить его вывод, правда? :-)
DarkTroll:Egres, спасибо за веру в интузиазм, так сказать... :)
Удачи
А вообще именно из за подхода \"мне проще самому написать, чем использовать существующее\" мы и имеем весь этот жуткий зоопарк в либах и приложениях и так мало реально доведённых до качественного состояния продуктов :-(
P.S. Уже до маразма доходит. На днях чувак постит в talk простенький скрипит с одним if и пишет, что для его работы нужно установить bash. Правда после прямого вопроса \"нафига\" скрипт был подправлен :-)
Egres:А вообще именно из за подхода \"мне проще самому написать, чем использовать существующее\" мы и имеем весь этот жуткий зоопарк в либах и приложениях и так мало реально доведённых до качественного состояния продуктов :-(
Специально для вас повторяю:
DarkTroll:
Вообще буду делать для себя, а если получится что-то дельное - отдам на суд сообщества. :)
Давайте не будем дальше разводить флуд. Я здесь просил совета какой язык выбрать, а не как мне жить и что мне делать.
Разобраться в новом языке - не занятие вообще (если это не какой-нибудь пролог, форт или хаскел).
Вот как раз в C/C++ есть куча катастрофических нюансов, разобраться в них - занятие на несколько лет хорошему программисту. Пролог или хаскел они всё-таки больше с концептуальной точки зрения сложны, но у них и своя ниша.
Тест показывает, что просто цикл в питоне оценочно в 10 раз медленнее, чем в C++. Для данной задачи такое замедление не страшно совсем.
Насчёт зоопарка не уверен, вопрос скорее философский, кто-то скажет, что это хорошо, потому что больше выбор. А вообще это проблема больше для windows актуальна.
DarkTroll:
Давайте не будем дальше разводить флуд. Я здесь просил совета какой язык выбрать, а не как мне жить и что мне делать.
Да я, собственно, ровно один совет Вам давал. Про развитие XWC. Остальное - моё мнение по поводу ситуации, которое вроде как правил форума не нарушает. Можете не читать, если так тяжело :-)
P.S. QT - не язык программирования, кстати. Но это я так, к слову.
Если человек хочет начать свой проект с нуля и ставит цель не создать законченный продукт, а научиться, не нужно его отговаривать. Он же не говорит, что через пару месяцев у нас будет полноценный ФМ с нуля, такое заявления я бы тоже раскритиковал. Он говорит что хочет попрактиковаться. Научиться -- вполне благородный, а главное -- вполне достаточный резон. А ломая голову в чужих исходниках он ничему не научится и не будет никакой пользы.
Вывод: Если DarkTroll хочет освоить Qt, C++, Python, то это замечательно. Аргументы типа \"не получится нормальной программы, и лучше бы доделали имеющиеся\" идут лесом, т.к. не относятся к делу.
Н-да, никто ничего не читает, все пишут. А я ведь сразу написал \"Так что может с python'ом Вы и разберётесь, но хорошего FM мы точно не дождёмся\". Если цель автора ветки была именно \"разобраться с python'ом\" - ну и слава богу. Какие проблемы? Если же была цель получить хороший FM, т.к. ни один существующий не устраивает, то опять-таки, где я не прав? DarkTroll написал, что именно ему важнее - чудесно. Вопросов нет. Хотя я несколько и озадачен нервозностью некоторых читателей данного форума. Я, вроде, никому не хамил.
Ладно, я заканчиваю. Что хотел - сказал Выше. А всякого рода защитники \"идут лесом, т.к. не относятся к делу\" (c)
Egres:А я ведь сразу написал \"Так что может с python'ом Вы и разберётесь, но хорошего FM мы точно не дождёмся\". Если цель автора ветки была именно \"разобраться с python'ом\" - ну и слава богу. Какие проблемы? Если же была цель получить хороший FM, т.к. ни один существующий не устраивает, то опять-таки, где я не прав?
Вы правы. Вы никому не хамили. Все хорошо.
Все молодцы. Ждем результатов.
Mitrandir:Ждем результатов.
Ребят, ждать результатов не стоит. Я сам не знаю еще выйдет ли у меня что-то, а Вы уже ждете.... Пока нету времени на это благое дело - собираю инфу. Как появится - возьмусь за дело.
А зачем на таблетке файл-менеджер? Я честно не понимаю. У меня очень редко появляется желание запускать даже существующий. Собственно, на десктопе тоже редко.
Имхо вы как то очень пессимистично настроены :) Я же написал читалку манги на питоне с нуля, значит и вы сможете. А до этого опыта в питоне не так уж и много было.