انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: علی حلاجی در 22 آبان 1392، 12:08 بظ
-
با سلام
در اینجا قصد دارم قدرت پایتون رو بگم و اینکه این زبان چه کاربردهای فراوانی را در دنیا امروزه داشته!
و اینکه هر کس که نیاز با کار جدید در دنیای نرم افزار داشته باشه،میتونه تمام نیازهاشو با پایتون برطرف کنه.
و من در اینجا به عنوان مشاوره به اون شخص علاقمند کمک میکنم.
البته من دریای کوچکی از دریای دانش و آگاهی شما دوستان پر تلاش و پر انرژی هستم.
خوب بریم سر اصل مطلب:
۱- اول از همه اینکه پایتون بسیار ساده هست( که این سادگی باعث شده که باهاش بشه بزرگترین الگوریتم ها رو پیاده سازی کرد)
۲- پایتون در عین اینکه ساده ترین زبانه،بسیار هم قدرتمنده.
3- یکی از مهمترین و جذابترین ویژگی های پایتون که هر برنامه نویس پایتونی نمک گیرش میشه اینه که کتابخانه هاش تا ۱۰۰ سال دیگه هم کتابخونه هست و قدرت و کارایی خودشو داره و نیاز به آپدیتی نداره مگر اینکه بخواهند بهش تکنولوژی جدیدی اضافه کنند.
۴- کتابخانه ها بسیار زیاد و عظیمی داره و شما رو از هر گونه وابستگی به غیر از پایتون بی نیاز میکنه!
۵- بسیار Cross platform هست، رو هر دستگاهی که فکرشو بکنی قابل پیاده سازیه!
بقیه موارد رو در جلسه بعد میگم.
بدرود
-
ییخشید که چند وقتی نبودم.
در این بخش قصد دارم kivy و PyQt رو به شما معرفی کنم.
در مورد برنامه های سمت دسکتاپ و گوشی ها و تبلتها میتونم به فریم ورک kivy و فریم ورک بسیار محبوب و قدرتمند PyQt اشاره کنم.
طراحی جفتشون MVC هست و همچنین cross platform هستند، ولی تفاوتهای ریزی دارند.اول اینکه kivy توی گوشی ها و تبلت ها بهتر عمل میکنه و بدون وابستگیه،ولی از اون طرف PyQt توی دسکتاپ و پلتفورمای مک و لینوکس و ویندوز عالی عمل میکنه،البته به این معنی نه که PyQt بد عمل میکنه یا اینکه اون وابسته هست ولی به هر حال kivy خیلی راحتره برای گوشی ها مخصوصا اندروید.تو جفتشون میشه opengl کار کرد،بعد kivy پیشفرض فریم ورک قدرمتند pygame رو توی خودس داره و تمام برنامه هایی که باهاش زده میشه باید اول رندر بشن یجوری،البته نیازی نیست که شما رندرش کنید،خودکار این عمل انجام میشه.نکته منفی kivy پشتیبانی فارسی نداره که البته این موضوع رو یکی از دوستان من برطرف کرده،ولی مشکل راست به چپ همچنان مونده.اگه کسی دوست داشت توی پروژه فارسی کردنش میتونه بما کمک کنه خوشحال میشیم.دقیقا حرفی که سازندگانش بما زدن و گفتند اگه شما بتونید برا ما فارسی کنید خوشحال میشیم.درمورد PyQt بهتره زیاد نگم چون تو این فروم زیاد دربارش بحث شده فقط چیزاییو میگم که گفته نشده زیاد.
شما به راحتی تو پایکیوت میتونید js و css بزنید و پروژتونو فوق العاده خوشگل کنید.همچنین به راحتی میتونید canvas , opengl و svg و ... کار کنید و لذت ببرید.حتی پروژتونو به راحتی میتونید cross platform کنید و در تمامی سیستم عاملها ازش لذت ببرید.
-
کاری نکن سر پیری بریم پایتون یاد بگیریم :'(
-
نقطه ضعف pyqt کد باید حتما gpl باشه، pyside این مشکل رو نداره!
-
برای فارسینویسی در کیوی کافیه یک فونت فارسی داشته باشیم و حروف رو با استفاده از نرمافزار fribidi چپه بنویسیم.
این هم یک نمونه بازی با کیوی از خودم :
https://db.tt/paeUAJZu
-
در مورد پایکیوت موافقم.ولی تقریبا بسیار شبیه بهم هستند. و هر کسی هرکدوم از اونهارو کار کنه انگار جفتشو بلده.
-
در مورد kivyهم بله با گذاشتن یک فونت فارسی و استفاده از ماژول های bidi مشکل برطرف میشه ولی مشکل راست به چپ لغات نه.
درضمن کارتون رو دیدم خیلی عالی بود.اگه خواستید تبدیل به اندروید کنید بهتون راهنمایی کنم.البته اگه بلد نبودین.
-
در مورد kivyهم بله با گذاشتن یک فونت فارسی و استفاده از ماژول های bidi مشکل برطرف میشه ولی مشکل راست به چپ لغات نه.
درضمن کارتون رو دیدم خیلی عالی بود.اگه خواستید تبدیل به اندروید کنید بهتون راهنمایی کنم.البته اگه بلد نبودین.
قبلا تبدیلش کردم (:
مستندات فارسی برای کیوی نداریم ؛ پایه هستید در این زمینه قدمی برداریم؟
-
بله دوست عزیز، حتما همین کار رو میکنم.
ولی به نظرم اینجا فروم اوبونتو هست و با اینکه خیلی هم فروم قوی و عالی هست ولی به نظر من باید برای پایتون یک سایت بسیار قوی و یکپارچه زده بشه و همین قصد رو هم دارم و امیدوارم شما و دیگر دوستان در زمینه ساخت یک پایگاه بسیار قوی برای پایتون نه تنها kivy بلکه جنگو،پایکیوت و tiwsted و... بنا کنیم.من به شخصه بر این باورم که یک کار بزرگ به تنهایی واقعا مشکل هست، و اگر همه ما باهم اتحاد کنیم میتونیم بهترین پایگاه و جایگاه برای پایتون رو راه اندازی کنیم.واقعا پایتون زبانی هست که علاوه بر قدرت بسیار زیادش و سادگی بی اندازش میتونه خوب خودشو رو هر جایی پیاده کنه.و این نکته قابل دسترس بودنش در همه جا واقعا نعمت بزرگیه!علاوه بر اون یکی دیگه از نعمتهای بزرگ پایتون کتابخانه بسیار وسیعش هست که هر کاری که شما میخواهید بکنید فقط کافیه قبلش یه سرچ تویه سایت اصلی پایتون کنید،تا اگر library در کتابخونه موجود بود دیگه خودتون اقدام به نوشتن اون library نکنید.اگه تو سایت اصلی پایتون پیدا نکردید،در گوگل سرچ کنید.مطمن باشید حداقل در ۸۵٪ مواقع به library مورد نظرتون میرسید.
درضمن من واقعا فروم اوبونتو رو دوست دارم و به نظرم خیلی خیلی قوی هست و قصد جسارت به این فروم رو ندارم و نخواهم داشت، و خودم همیشه در این فروم فعال هستم.
-
برای فارسینویسی در کیوی کافیه یک فونت فارسی داشته باشیم و حروف رو با استفاده از نرمافزار fribidi چپه بنویسیم.
این هم یک نمونه بازی با کیوی از خودم :
https://db.tt/paeUAJZu
اجرا نشد:
Traceback (most recent call last):
File "main.py", line 1, in <module>
from kivy.app import App
ImportError: No module named kivy.app
-
برای فارسینویسی در کیوی کافیه یک فونت فارسی داشته باشیم و حروف رو با استفاده از نرمافزار fribidi چپه بنویسیم.
این هم یک نمونه بازی با کیوی از خودم :
https://db.tt/paeUAJZu
اجرا نشد:
Traceback (most recent call last):
File "main.py", line 1, in <module>
from kivy.app import App
ImportError: No module named kivy.app
شما اول با دستور
sudo pip install cython ماژول cython رو نصب کنید.یا اگر این ماژول نصب هست باید آن را آپدیت کنید.
بعد با دستور
sudo pip install kivy ماژول kivy رو نصب کنید.
-
کلا برای نصب kivy حتما این صفحه را بخوانید:
باید وابستگیهاش حتما نصب بشن:
http://kivy.org/docs/installation/installation.html
-
الان قصد دارم شمارو با یکی دیگه از فریم ورکهای قدرتمند پایتون بنام Twisted آشنا کنم.
فریم ورک Twisted برای کار در بستر شبکه ساخته شده.Twisted نه تنها یکی از قدرتمندترین فریم ورکهای شبکه در پایتون محسوب میشه،بلکه یکی از قدرتمندترین ابزارهای شبکه در جهان فناوری محسوب میشه.از twisted در خیلی جاها از جمله facebook و حتی در یاهو و گوگل وناسا داره استفاده میشه.البته ناسا و گوگل و یاهو و یوتیوب فقط در بخش شبکه از پایتون بهره نمی برند، بلکه بستر اصلی آنها پایتون هست.مخصوصا ناسا و گوگل.
برای اثبات اینم لینک بعضی هاشون:
۱- ناسا: http://www.python.org/about/success/usa/ و یکی از برنامه های ناسا http://code.nasa.gov/language/python/
۲- موتور جستوجو گر گوگل http://python.about.com/od/gettingstarted/ss/whatispython_3.htm و http://quintagroup.com/cms/python/google
۳- ...
.
.
. واقعا خیلی هست.
در کل این مرجع خوبی هست برای موارد استفاده شده از پایتون http://www.python.org/about/success/ و http://en.wikipedia.org/wiki/List_of_Python_software
-بریم سر اصل مطلب، که Twisted هست!
چه کارهایی میشه با این کتابخونه کرد؟
جواب:سوکت پروگرمینگ در حد عالی، برنامه چت در حد عالی، TCP servers, clients, transport layer security،SSH client and server،IMAP4, ESMTP, POP3 clients and servers،DNS client and server،HTTP client and server،IRC, XMPP, OSCAR,،MSN clients and servers و خیلی موارد دیگه از جمله وب سوکت که بهترین فریم ورک آن tornado هست که facebook از این داره استفاده میکنه. البته خود tornado فریم ورک غولی هست، که توضیحش خودش یک بخش میشه.
از هنرها و قدرت این فریم ورک(twisted) به مبحث event-driven اون میشه اشاره کرد، که اگه بخوام خلاصه event-driven رو توضیح بدم میشه:هندل کردن eventها بدون اینکه بخواهند پشت سر هم اجرا بشند.یعنی بلوکینگ نیستند و هر وقت هر چندتا ایونت که خواستید میتونید ارسال یا فراخوانی کنید. در آنِ واحد قادر به ارسال تعداد بی شماری ایونت خواهید بود.(به تعبیری بر خلاف threads می باشد و بیشتر از آن)
نکته مهم دیگه اینه که twisted بسیار کم مصرفه از نظر مصرف حافظه و resource، شاید یکی از علتهای اون مبحث ایونتی آن هست،هروقت ایونتی اتفاق بیوفته یک تابعی کال میشه. این شاید یک دلیل شفاف این موضوع باشه.
امیدوارم اطلاعاتم براتون مفید باشه.
-
درضمن دوستان اگه کسی مشتاق به گرفتن مدرک پایتون از دانشگاه رایس آمریکا هست میتونه بصورت رایگان دریافت کنه.فقط کافیه یه سر به لینک زیر بزنید:
https://www.coursera.org/course/interactivepython
البته برای دریافت اصل مدرک که همون کاغذیشه باید نزدیک به ۵۰ دلار بپردازید.که اگه نگیرید هم به نظر من زیاد مهم نیست،چون اون مدرک اینترنتیش کفایت میکنه!
به هر حال یه مدرک از اون دانشگاه داشته باشید هر جا برید رو هوا میزنند شمارو \\:D/ .
-
تو محیط فلش میشه ظاهر برنامه را درست کرد و بعد با زبان اکشن اسکریپت شروع به کدنویشی کرد آخرسر هم خروجی را دید
یا
میشه دلفی نصب کرد و کنارش اسکیو ال سرور نصب کرد بعد رفت تو محیط دلفی ظاهر برنامه مثلا یه برنامه حسابداری را آماده کرد نهایتا هم کدنویسی کرد و یه خروجی اجرایی داد بیرون
حالا میشه تو پایتون بگید چیکار میشه کرد (با برنامه بالا معادل سازی کنید مثلا بالا sql server نصب میشه برای پایگاه داده و ... اینچا چی
خود زبان پایتون معادل اکشن اسکریپته تو فلش و پاسکالو تو دلفی؟ یا نه؟
محیط فلش و یا دلفی که ظاهر برنامه را میشه درست کرد این ور معادلش چی میشه؟
(امیدوام هنگ نکرده باشید مثل خودم)
:o :o ???
-
تو محیط فلش میشه ظاهر برنامه را درست کرد و بعد با زبان اکشن اسکریپت شروع به کدنویشی کرد آخرسر هم خروجی را دید
یا
میشه دلفی نصب کرد و کنارش اسکیو ال سرور نصب کرد بعد رفت تو محیط دلفی ظاهر برنامه مثلا یه برنامه حسابداری را آماده کرد نهایتا هم کدنویسی کرد و یه خروجی اجرایی داد بیرون
حالا میشه تو پایتون بگید چیکار میشه کرد (با برنامه بالا معادل سازی کنید مثلا بالا sql server نصب میشه برای پایگاه داده و ... اینچا چی
خود زبان پایتون معادل اکشن اسکریپته تو فلش و پاسکالو تو دلفی؟ یا نه؟
محیط فلش و یا دلفی که ظاهر برنامه را میشه درست کرد این ور معادلش چی میشه؟
(امیدوام هنگ نکرده باشید مثل خودم)
:o :o ???
شرمنده منم تو هنگم :o :o :o :o
اما اگه منظورت اینه که طراحی gui را به صورت گرافیکی (با درگ کردن دکمه و...) آره می شه البته با پای کیوت (برنامه Qt Designer)
فکر کنم بچه های انجمن بلد باشن ولی اگه کسی بلد نبود من پی دی افش را درست می کنم
واسه دیتا بیس هم کتاب
mysql for python
نوشته
Albert Lukaszewski
کامل توضیح داده
اینم یک نمونه از کدش
import MySQLdb
mydb = MySQLdb.connect(host = 'localhost',
user = 'skipper',
passwd = 'mysecret',
db = 'fish')
-
والا من هم هنگ کردم.ولی مطمئن باش تو پایتون هر کاری میشه کرد.اونم به راحتی.
همونطور که دوست عزیزمون فرمودن میشه PyQt کار کرد و ابزارش هم QT Designer هست،تازه از ویژوال استدیو هم آسونتره.حتی میتونی سیگنال دکمها رو هم بدون کد زدن تعریف کنی!حتی میتونی css یا جاوا اسکریپت و canvas و opengl کار کنی.
در کنار اون کیوی(kivy) هم خودش یه رابط بجز پایتون داده تقریبا مثه css میمونه.
و IDE Boa هم همینکارو میکنه.یا IDE WxPython هم همینکارو میکنه.
ولی از من به همه نصیحت سعی کنید خودتونو از ابزارها جدا کنید و خودکفا شید.
ببینید یه برنامه نویس C# در صورتی برنامه نویسه، که حتما تو ویندوز و حتما تو ویژوال استدیو و حتما تحت دات نت فریم ورک کار کنه.(واقعا این همه سلسله زیاد نیست؟)-خداییش خیلی از C# کارا اینو انکار کردن.ولی واقعا چند نفرشون تونستون جز این عمل کنند؟آره شاید تعداد اندکی بتونند ولی جامعه آماریشون چیزی جز اینه!
ولی اگه پایتون کار باشی رو هر ادیتوری و هر سروری پایتون کاری.حتی رو ویندوز و حتی تو اندروید هم میتونی کد بزنی.
ولی بازم میگم اگه از اون دسته آدمها هستید که باید یه ابزاری باشه،شک نکنید که پایتون بی نهایت IDE راحت داره.
Eclipse هم عالیه.میتونی توش حتی QT رو هم بیاری.
درکل اگه شکیبا باشید من یک جلسه کامل درباره IDE ها می نویسم.
البته اینم بگم که حتما تویه پروژه های بزرگ یه IDE که AutoCompelete و موارد کمک کننده دیگری که داره واقعا کمک بسیار زیادی میکنه، و یجوری تبدیل به نیاز IDE میشه!
من برای پروژه های بزرگ از IDE استفاده میکنم.
در جلسات آینده حتما IDE ها رو معرفی میکنم.
-
حالا که ویچت فیل شده ، نظرتون چیه با kivy یا PyQT و twisted یک پیامرسان چند سکویی درست کنیم؟
-
والا من هم هنگ کردم.ولی مطمئن باش تو پایتون هر کاری میشه کرد.اونم به راحتی.
همونطور که دوست عزیزمون فرمودن میشه PyQt کار کرد و ابزارش هم QT Designer هست،تازه از ویژوال استدیو هم آسونتره.حتی میتونی سیگنال دکمها رو هم بدون کد زدن تعریف کنی!حتی میتونی css یا جاوا اسکریپت و canvas و opengl کار کنی.
در کنار اون کیوی(kivy) هم خودش یه رابط بجز پایتون داده تقریبا مثه css میمونه.
و IDE Boa هم همینکارو میکنه.یا IDE WxPython هم همینکارو میکنه.
ولی از من به همه نصیحت سعی کنید خودتونو از ابزارها جدا کنید و خودکفا شید.
ببینید یه برنامه نویس C# در صورتی برنامه نویسه، که حتما تو ویندوز و حتما تو ویژوال استدیو و حتما تحت دات نت فریم ورک کار کنه.(واقعا این همه سلسله زیاد نیست؟)-خداییش خیلی از C# کارا اینو انکار کردن.ولی واقعا چند نفرشون تونستون جز این عمل کنند؟آره شاید تعداد اندکی بتونند ولی جامعه آماریشون چیزی جز اینه!
ولی اگه پایتون کار باشی رو هر ادیتوری و هر سروری پایتون کاری.حتی رو ویندوز و حتی تو اندروید هم میتونی کد بزنی.
ولی بازم میگم اگه از اون دسته آدمها هستید که باید یه ابزاری باشه،شک نکنید که پایتون بی نهایت IDE راحت داره.
Eclipse هم عالیه.میتونی توش حتی QT رو هم بیاری.
درکل اگه شکیبا باشید من یک جلسه کامل درباره IDE ها می نویسم.
البته اینم بگم که حتما تویه پروژه های بزرگ یه IDE که AutoCompelete و موارد کمک کننده دیگری که داره واقعا کمک بسیار زیادی میکنه، و یجوری تبدیل به نیاز IDE میشه!
من برای پروژه های بزرگ از IDE استفاده میکنم.
در جلسات آینده حتما IDE ها رو معرفی میکنم.
می گم باید یک ویکی بزنیم حالا سایتش مهم نیست (سایت رسمی پایتون بخش فارسی نداره )
-
حالا که ویچت فیل شده ، نظرتون چیه با kivy یا PyQT و twisted یک پیامرسان چند سکویی درست کنیم؟
با درود.
باورتون میشه این یکی از پروژه های آینده منه؟من هم خیلی پایه هستم که همچین برنامه ایی در سطح کیفیت عالی بسازیم.
و حتما همین کار رو میکنم.
البته من واسه اندروید از kivy و برای لینوکس(اوبونتو و سایر)،مک،ویندوز از PyQt و برای وب از Django استفاده میکنم.
البته برای هسته همه اونا از Diesel و Twisted و tornado استفاده میکنم.
اگه پایه هستید حتما اعلام آمادگی کنید دوستان.
-
والا من هم هنگ کردم.ولی مطمئن باش تو پایتون هر کاری میشه کرد.اونم به راحتی.
همونطور که دوست عزیزمون فرمودن میشه PyQt کار کرد و ابزارش هم QT Designer هست،تازه از ویژوال استدیو هم آسونتره.حتی میتونی سیگنال دکمها رو هم بدون کد زدن تعریف کنی!حتی میتونی css یا جاوا اسکریپت و canvas و opengl کار کنی.
در کنار اون کیوی(kivy) هم خودش یه رابط بجز پایتون داده تقریبا مثه css میمونه.
و IDE Boa هم همینکارو میکنه.یا IDE WxPython هم همینکارو میکنه.
ولی از من به همه نصیحت سعی کنید خودتونو از ابزارها جدا کنید و خودکفا شید.
ببینید یه برنامه نویس C# در صورتی برنامه نویسه، که حتما تو ویندوز و حتما تو ویژوال استدیو و حتما تحت دات نت فریم ورک کار کنه.(واقعا این همه سلسله زیاد نیست؟)-خداییش خیلی از C# کارا اینو انکار کردن.ولی واقعا چند نفرشون تونستون جز این عمل کنند؟آره شاید تعداد اندکی بتونند ولی جامعه آماریشون چیزی جز اینه!
ولی اگه پایتون کار باشی رو هر ادیتوری و هر سروری پایتون کاری.حتی رو ویندوز و حتی تو اندروید هم میتونی کد بزنی.
ولی بازم میگم اگه از اون دسته آدمها هستید که باید یه ابزاری باشه،شک نکنید که پایتون بی نهایت IDE راحت داره.
Eclipse هم عالیه.میتونی توش حتی QT رو هم بیاری.
درکل اگه شکیبا باشید من یک جلسه کامل درباره IDE ها می نویسم.
البته اینم بگم که حتما تویه پروژه های بزرگ یه IDE که AutoCompelete و موارد کمک کننده دیگری که داره واقعا کمک بسیار زیادی میکنه، و یجوری تبدیل به نیاز IDE میشه!
من برای پروژه های بزرگ از IDE استفاده میکنم.
در جلسات آینده حتما IDE ها رو معرفی میکنم.
می گم باید یک ویکی بزنیم حالا سایتش مهم نیست (سایت رسمی پایتون بخش فارسی نداره )
درود دوست عزیز
راستش ویکی که چه عرض کنم،من واقعا پایه هستم یه پایگاه بسیار بزرگ و جذاب برای پایتون بسازم.
از همه دوستان هم که یاری کنند ممنون میشم.
به نظرم باید جوری باشه که علاوه بر اینکه مخاطب رو سمت خودش میکشه، قدرت پایتون رو به نمایش بذاره و تبدیل به یک کتابخانه، آموزش مجازیه بسیار بزرگه پایتون به زبان فارسی بشه!
چون من اعتقاد دارم که ما ایرانیها هوش بالایی داریم و حیفه که از پتانسیل موجود استفاده نشه!یا هدر بره.
و یکی از ایده های من اینه که بتونم تو اون سایت، پروژه های بسیار بزرگ و رایگان با هدف درآمد زایی برای همه درست کنیم و از اجتماع پایتون کاران برای این پروژه استفاده کنیم.تقریبا یه چیزی مثه گیت هاب
البته درسته قبول دارم، خیلی دارم آرزوهامو بزرگتر از واقعیت میگم،ولی به نظر من نقطه شروع مهمه و باید خود باوریمونو بالا ببریم و یک اتحاد بزرگ تشکیل بدیم تا این پروژه ناب انجام بشه!
-
درضمن دوستان اگه کسی مشتاق به گرفتن مدرک پایتون از دانشگاه رایس آمریکا هست میتونه بصورت رایگان دریافت کنه.فقط کافیه یه سر به لینک زیر بزنید:
https://www.coursera.org/course/interactivepython
البته برای دریافت اصل مدرک که همون کاغذیشه باید نزدیک به ۵۰ دلار بپردازید.که اگه نگیرید هم به نظر من زیاد مهم نیست،چون اون مدرک اینترنتیش کفایت میکنه!
به هر حال یه مدرک از اون دانشگاه داشته باشید هر جا برید رو هوا میزنند شمارو \\:D/ .
کجا ها برای استحدام داخل ایران کار پیدا میشه با این مدرک؟
خارج از کشور چطور؟ طوری هست که دعوت نامه برای افراد بفرستند؟! رایگان هست، ارزشش بالاه هست که من هم برم یاد بگیرم؟! امتحانش چطور؟
ممنونم از تاپک مفیدتون
کاش یه جای دیگه هم راه مینداختید که سوالاتمون رو دربارش بپرسیم
همچنین این زبان میتونه کاره html & php رو تقریبا انجام بده؟
-
همچنین این زبان میتونه کاره html & php رو تقریبا انجام بده؟
بله با HTML-CSS میتونید ظاهر رو طراحی کنید و برای ServerSide هم از فریمورک Django استفاده کنید.
-
درضمن دوستان اگه کسی مشتاق به گرفتن مدرک پایتون از دانشگاه رایس آمریکا هست میتونه بصورت رایگان دریافت کنه.فقط کافیه یه سر به لینک زیر بزنید:
https://www.coursera.org/course/interactivepython
البته برای دریافت اصل مدرک که همون کاغذیشه باید نزدیک به ۵۰ دلار بپردازید.که اگه نگیرید هم به نظر من زیاد مهم نیست،چون اون مدرک اینترنتیش کفایت میکنه!
به هر حال یه مدرک از اون دانشگاه داشته باشید هر جا برید رو هوا میزنند شمارو \\:D/ .
کجا ها برای استحدام داخل ایران کار پیدا میشه با این مدرک؟
خارج از کشور چطور؟ طوری هست که دعوت نامه برای افراد بفرستند؟! رایگان هست، ارزشش بالاه هست که من هم برم یاد بگیرم؟! امتحانش چطور؟
ممنونم از تاپک مفیدتون
کاش یه جای دیگه هم راه مینداختید که سوالاتمون رو دربارش بپرسیم
همچنین این زبان میتونه کاره html & php رو تقریبا انجام بده؟
با سلام
ممنون،امتحانش نسبتا آسونه،بله داشتن این مدرک برای کار چه در ایران و چه در خارج از کشور بسیار اهمیت داره.
توجه کنید که دارید از دانشگاه رایس میگیرین مدرکو!و رایگان هست ولی برای دریافت اصل مدرک که کاغذی هست باید نزدیک به ۵۰ دلار خرج کنید.
و در مورد css و html همونطور که دوست عزیزمون فرمودن بله با فریم ورک جنگو و یا فلکس یا خیلی موارد دیگه میشه.تازه جنگو موتور تمپلیت برای لاجیک و چینش محتوا داره.که خود این نکته بسیار کارو جذابتر میکنه.بعد html و css و Javascript در همه زبانها خاصیت خودشو داره و یک نقشو بازی میکنه!
بعد پایتون واقعا قابل قیاس با زبانهای دیگه نیست،خیلی گسترده تر از این حرفاست.
-
ممنون،امتحانش نسبتا آسونه،بله داشتن این مدرک برای کار چه در ایران و چه در خارج از کشور بسیار اهمیت داره.
توجه کنید که دارید از دانشگاه رایس میگیرین مدرکو!و رایگان هست ولی برای دریافت اصل مدرک که کاغذی هست باید نزدیک به ۵۰ دلار خرج کنید.
یه جا رو مثال بزن که برای مدرکهای coursera ارزش گذاری کرده باشه؟
هر جا را بری (چه با این مدرک چه بدون مدرک) باید بتونی الگوریتم بریزی و کد بزنی، بعد استخدام میشی
می گم باید یک ویکی بزنیم حالا سایتش مهم نیست (سایت رسمی پایتون بخش فارسی نداره )
www.pythoni.ca
http://forum.ubuntu.ir/index.php?topic=71062.0
-
همونطور که دوست عزیزمون فرمودن میشه PyQt کار کرد و ابزارش هم QT Designer هست،تازه از ویژوال استدیو هم آسونتره.حتی میتونی سیگنال دکمها رو هم بدون کد زدن تعریف کنی!حتی میتونی css یا جاوا اسکریپت و canvas و opengl کار کنی.
در کنار اون کیوی(kivy) هم خودش یه رابط بجز پایتون داده تقریبا مثه css میمونه.
و IDE Boa هم همینکارو میکنه.یا IDE WxPython هم همینکارو میکنه.
ولی از من به همه نصیحت سعی کنید خودتونو از ابزارها جدا کنید و خودکفا شید.
ولی اگه پایتون کار باشی رو هر ادیتوری و هر سروری پایتون کاری.حتی رو ویندوز و حتی تو اندروید هم میتونی کد بزنی.
ولی بازم میگم اگه از اون دسته آدمها هستید که باید یه ابزاری باشه،شک نکنید که پایتون بی نهایت IDE راحت داره.
Eclipse هم عالیه.میتونی توش حتی QT رو هم بیاری.
درکل اگه شکیبا باشید من یک جلسه کامل درباره IDE ها می نویسم.
من برای پروژه های بزرگ از IDE استفاده میکنم.
در جلسات آینده حتما IDE ها رو معرفی میکنم.
ممنون از دوستان عزیز
هم تو اوبونتو تازه کارم هم تو پایتون و نسخه۳۲ بیتی اوبونتو دارم . پایتونی هم که پیش فرض نصبه : +Python 2.7.2
این از این , حالا:
چه چیزی برای من مناسبه ؟
آیا باید پایتون فعلی را پاک کنم و نسخه بالاتری نصب کنم؟
کلا برای نصب چه چیزهایی باید دانلود کنم تا بتونم یک برنامه گرافیکی بنویسم مثل ماشین حساب اوبونتو و ... . ؟ میشه لینک مستقیم بدید
کی در مورد IDE ها مطلب مینویسید و کجا؟
-
با عرض سلام.من در حال یادگیری سی پلاس پلاس هستم و البته فرم ورک کیوتی
میخواستم بدونم که دلیلی وجود داره که بیام پایتون یاد بگیرم؟چون پرفمنس و قدرت پایتون از سی پلاس پلاس یه خورده کمتره
-
بیشتر از یهخورده کمتره! lol
البته بستگی به الگوریتم هم داره...
در کل مزایای پایتون:
- برای یادگیری بهترین گزینهاس. سینتکس سادهای داره و خوندن یک برنامه خوب پایتون مثل خوندن انگلیسی میمونه.
- برنامهنویس بهجای تمرکز روی چگونگی پیادهسازی برنامه، روی هدف تمرکز میکنه.
- کاربردهای زیادی در محیطهای مختلفی داره از برنامه نویسی دسکتاپ تا شبکه تا موبایل تا وب تا گیم...
- کتابخونههای استاندار و با کیفیت بسیار زیاد
- چند سکویی هست
- پشتیبانی قوی و در عین حال ساده از برنامه نویسی شیء گرا
- آزاد و متن باز (:
- قابلیت حمل
- توسعه پذیری ساده
- قابلیت استفاده توکار در برنامههای غیر پایتون برای افزودن قابلیت اسکریپت نویسی به اونها
- قابلیت ترکیب با زبانهایی مثل C و C++ برای اهداف مختلف. از جمله: اجرای سریع بخش حیاتی از برنامه.
- و مهمتر از همه اینها: برنامه نویسی با پایتون یک فان واقعیه! (:
-
- و مهمتر از همه اینها: برنامه نویسی با پایتون یک فان واقعیه! (:
واقعا! کلی حال میده!
-
توصیه میکنم هم ++C و هم پایتون رو یاد بگیرید. چون نمیتونن کامل جای همدیگه رو بگیرن.
اما اگه ++C رو شروع کردید، بهتر اول اونو کامل یاد بگیرید بعد بیاید سراغ پایتون
گرچه اگه با پایتون شروع میکردید کارتون راحتتر بود
-
ممنون،امتحانش نسبتا آسونه،بله داشتن این مدرک برای کار چه در ایران و چه در خارج از کشور بسیار اهمیت داره.
توجه کنید که دارید از دانشگاه رایس میگیرین مدرکو!و رایگان هست ولی برای دریافت اصل مدرک که کاغذی هست باید نزدیک به ۵۰ دلار خرج کنید.
یه جا رو مثال بزن که برای مدرکهای coursera ارزش گذاری کرده باشه؟
هر جا را بری (چه با این مدرک چه بدون مدرک) باید بتونی الگوریتم بریزی و کد بزنی، بعد استخدام میشی
من با coursera کاملاً موافقم. حتی اگه مدرک هم نده، برای یادگیری خودمون خیلی عالیه.
من که دانشگاه رو نصفه ول کردم چون خوشم نمیاد از آموزش آکادمیک مخصوصاً توی ایران.
ولی coursera واقعاً خیلی عالیه. چون هم مجازی هست هم توسط بهترین دانشگاهها مثل پرینستون و استنفورد تدارک دیده شده و هم میتونید درسها بدون محدودیت پیشنیاز و پسنیاز بردارید. فقط درسهایی که احساس میکنید توی کارتون به دردتون میخوره. حتی در حین اینکه دارید برای یه شرکت کار میکنید.
-
ممنون،امتحانش نسبتا آسونه،بله داشتن این مدرک برای کار چه در ایران و چه در خارج از کشور بسیار اهمیت داره.
توجه کنید که دارید از دانشگاه رایس میگیرین مدرکو!و رایگان هست ولی برای دریافت اصل مدرک که کاغذی هست باید نزدیک به ۵۰ دلار خرج کنید.
یه جا رو مثال بزن که برای مدرکهای coursera ارزش گذاری کرده باشه؟
هر جا را بری (چه با این مدرک چه بدون مدرک) باید بتونی الگوریتم بریزی و کد بزنی، بعد استخدام میشی
می گم باید یک ویکی بزنیم حالا سایتش مهم نیست (سایت رسمی پایتون بخش فارسی نداره )
www.pythoni.ca
http://forum.ubuntu.ir/index.php?topic=71062.0
درود
برای مثال شرکتی که من توش کار میکنم،اصلا از همکارم تست و امتحان هم نگرفت وقتی دیدن این مدرکو داره.
نکته دوم اینه که آیا وقتی شما مدرک از اون دانشگاه داری یعنی نمیتونی کد بزنی یا الگوریتم پیاده سازی کنی؟؟؟ ???
-
با عرض سلام.من در حال یادگیری سی پلاس پلاس هستم و البته فرم ورک کیوتی
میخواستم بدونم که دلیلی وجود داره که بیام پایتون یاد بگیرم؟چون پرفمنس و قدرت پایتون از سی پلاس پلاس یه خورده کمتره
با احترام
بله دلیلهای زیادی هست.
بعد واقعا سی پلاس پلاس خیلی کدها شلوغ و طولانی میشه!بعد شما تو سی پلاس پلاس دیگه کتابخونه های پایتون رو نداری!میدونی چقد بیچاره کننده هست وقتی بخوای تو کیوتی event-driven بنویسی، وقتی کتابخونه مثله twisted رو نداشته باشی؟
من نمی دونم داره event-driven سی پلاس پلاس یا نه!ولی ذهنم میگه زبان سی پلاس پلاس یه زبان پدر مادر داره،حتما میشه باهاش event-driven هم زد.ولی واقعا سخته با C++میتونی امتحان کنی، اگه کتابخونشو نداشته باشه،خودت باید پیاده سازیش کنی!
اینو یادت باشه تو پایکیوت به همه کتابخونه های پایتون دسترسی داری!
درضمن من توصیه ام به همه افراد اینه که یک زبان رو انتخاب کنید و تا تهش برید!حالا میخواد پایتون باشه میخواد c++ باشه.
سعی کنید دریاچه کم عمق از دانش نباشید.
جفت زبانها خیلی بزرگ و وسیعه! :o
-
همونطور که دوست عزیزمون فرمودن میشه PyQt کار کرد و ابزارش هم QT Designer هست،تازه از ویژوال استدیو هم آسونتره.حتی میتونی سیگنال دکمها رو هم بدون کد زدن تعریف کنی!حتی میتونی css یا جاوا اسکریپت و canvas و opengl کار کنی.
در کنار اون کیوی(kivy) هم خودش یه رابط بجز پایتون داده تقریبا مثه css میمونه.
و IDE Boa هم همینکارو میکنه.یا IDE WxPython هم همینکارو میکنه.
ولی از من به همه نصیحت سعی کنید خودتونو از ابزارها جدا کنید و خودکفا شید.
ولی اگه پایتون کار باشی رو هر ادیتوری و هر سروری پایتون کاری.حتی رو ویندوز و حتی تو اندروید هم میتونی کد بزنی.
ولی بازم میگم اگه از اون دسته آدمها هستید که باید یه ابزاری باشه،شک نکنید که پایتون بی نهایت IDE راحت داره.
Eclipse هم عالیه.میتونی توش حتی QT رو هم بیاری.
درکل اگه شکیبا باشید من یک جلسه کامل درباره IDE ها می نویسم.
من برای پروژه های بزرگ از IDE استفاده میکنم.
در جلسات آینده حتما IDE ها رو معرفی میکنم.
ممنون از دوستان عزیز
هم تو اوبونتو تازه کارم هم تو پایتون و نسخه۳۲ بیتی اوبونتو دارم . پایتونی هم که پیش فرض نصبه : +Python 2.7.2
این از این , حالا:
چه چیزی برای من مناسبه ؟
آیا باید پایتون فعلی را پاک کنم و نسخه بالاتری نصب کنم؟
کلا برای نصب چه چیزهایی باید دانلود کنم تا بتونم یک برنامه گرافیکی بنویسم مثل ماشین حساب اوبونتو و ... . ؟ میشه لینک مستقیم بدید
کی در مورد IDE ها مطلب مینویسید و کجا؟
سلام
اول اینکه نه نیازی نیست پایتون رو پاک کنی!یا ارتقا بدی
فعلا پایتون 2.7 برای شما خیلی مناسبه.
دوم اینکه شما برای برنامه های GUI خیلی کارها میتونی بکنی.ولی چون اول راهی من بهت توصیه میکنم QT Designer رو نصب کنی.بعد با برنامه pyuic4 تبدیلش کنی به کد پایتون بعد برای خودت هرچی خواستی اضافه کنی.
درضمن من برای اولش به شما توصیه میکنم با Qt Designer کد بزنی،ولی بعدش سعی کن که اونو حتما من بذاری کنار و از صفر خودت کد بزنی!
درمورد IDE ها هم تو همین هفته تو همین تاپیک مینویسم.
سوالی بود بپرسید.
-
چون کارتگرافیکم از OpenGL ES2.0 پشتیبانی نمیکنه ، من توی گوشی اندروییدیم با Qpython از Kivy استفاده میکنم.
برای غیر Kivy قبلنا از Kate و الآن از Geany استفاده میکنم. Vim به سلیقهی ما تنبلها نمیخوره و Eclipse اینا هم که برای کامپیوتر عهد دقیانوس ما سنگینن!
-
سلام، آقای حلاجی خیلی ممنوم از اینکه اطلاعاتتون رو به اشتراک میذارین، من به عنوان یک فرد مبتدی علاقه مند به برنامه نویسی با ++C خیلی حال میکنم و اگر کاری داشته باشم با اون انجام میدم ولی شما منو ترغیب کردین که نگاهی به پایتون بندازم. :)
دوستان سایتی سراغ ندارین که این فیلم های آموزشی coursera رو گذاشته باشه؟ این آموزش پایتون مکتبخونه برای courseraاست؟
دسترسی به سایت coursera برام سخته. ](*,)
-
سلام، آقای حلاجی خیلی ممنوم از اینکه اطلاعاتتون رو به اشتراک میذارین، من به عنوان یک فرد مبتدی علاقه مند به برنامه نویسی با ++C خیلی حال میکنم و اگر کاری داشته باشم با اون انجام میدم ولی شما منو ترغیب کردین که نگاهی به پایتون بندازم. :)
دوستان سایتی سراغ ندارین که این فیلم های آموزشی coursera رو گذاشته باشه؟ این آموزش پایتون مکتبخونه برای courseraاست؟
دسترسی به سایت coursera برام سخته. ](*,)
خواهش میکنم.
ببین هدفت اگه یادگیری پایتون هست، کاری به دوره های آموزشی coursera نداشته باش.چون coursera فیلماشو فقط به اندازه یک ماه بعد از اتمام دوره هاش میذاره و بعد از یک ماه بر میداره از سایتش.
من تا آینده نزدیک سایت اختصاصی برای پایتون به زبان فارسی میزنم.
فعلا شما میتونی از خود سایت python.org استفاده کنی یا اگه خارجی برات سخته تو گوگل به فارسی بزنی آموزش پایتون کلی برات میاره.
برای یادگیری هر رشته ایی باید اولش یکم سختی بکشی.
ولی من تا اونجا که بتونم به همتون کمک میکنم.
-
دوستان من میدونم که با سی پلاس و پایتون میشه یه برنامه حرفه ای یا بازی حرفه ای در حد وارکرفت ساخت اما وقتی توی اینترنت دنبال اموزش پایتون یا سی پلاس میگردم فقط اموزش هایی میاد که بدرد ریاضیات و محاسبه میخوره و حتی رنگ و بوی گرافیک هم نداره
کسی اموزشی داره که بشه توی پایتون یه نرم افزار گرافیکی و ویژال ساخت مثل صفحه لاگین بازی ورد اف وارکرفت اگه میشه که مطمئنا میدونم امکانپذیره لطفا اموزشش رو بدید من پایتون رو بلدم ولی نمیتونم هیچ نرم افزار مفیدی بسازم
مثلا اگه بخوام خیلی تلاش کنم با کیوت یه چیزی میسازم لطفا یه اموزش مفید ارایه بدید ممنون
-
دوستان من میدونم که با سی پلاس و پایتون میشه یه برنامه حرفه ای یا بازی حرفه ای در حد وارکرفت ساخت اما وقتی توی اینترنت دنبال اموزش پایتون یا سی پلاس میگردم فقط اموزش هایی میاد که بدرد ریاضیات و محاسبه میخوره و حتی رنگ و بوی گرافیک هم نداره
کسی اموزشی داره که بشه توی پایتون یه نرم افزار گرافیکی و ویژال ساخت مثل صفحه لاگین بازی ورد اف وارکرفت اگه میشه که مطمئنا میدونم امکانپذیره لطفا اموزشش رو بدید من پایتون رو بلدم ولی نمیتونم هیچ نرم افزار مفیدی بسازم
مثلا اگه بخوام خیلی تلاش کنم با کیوت یه چیزی میسازم لطفا یه اموزش مفید ارایه بدید ممنون
دوست عزیز چرا هست،خیلی هم هست توی اینترنت مطالب.
ببین نکته بدی که پایتون داره گسترده بودنشه!خیلی پهناور و وسیعه.همین امر هم خیلی ها رو اول کار گنگ میکنه تو پایتون.
شما میخوای گیم بنویسی،پس در مرحله اول باید بری سراغ ماژولهای گیم پایتون یا اون زبان.مثلا یکی از کتابخونه های قدرمتند پایتون برای گیم pygame هست که خود من کتابش رو هم دارم.
این سایت pygame هست: http://www.pygame.org/news.html
من فکر میکنم برا پایتون قشنگ سرچ نکردید.چون با همین pygame برای اندروید هم میشه به راحتی گیم نوشت که kivy هم داره از این استفاده میکنه!
این هم یه لینک که راهنمای خیلی خوبی هست برای آموزش pygame : http://inventwithpython.com/blog/2010/09/01/the-top-10-pygame-tutorials/
این هم لینک که بازی های حرفه اییه نوشته با pygame رو براتون لیست کرده: http://inventwithpython.com/blog/2013/02/19/what-professional-games-use-pygame/
واقعا ارزش کار کردن داره pygame چون هم سادس و هم جذابه کد زدن باهاش و خیلی قویه!
-
بعد واقعا سی پلاس پلاس خیلی کدها شلوغ و طولانی میشه!بعد شما تو سی پلاس پلاس دیگه کتابخونه های پایتون رو نداری!میدونی چقد بیچاره کننده هست وقتی بخوای تو کیوتی event-driven بنویسی، وقتی کتابخونه مثله twisted رو نداشته باشی؟
من نمی دونم داره event-driven سی پلاس پلاس یا نه!ولی ذهنم میگه زبان سی پلاس پلاس یه زبان پدر مادر داره،حتما میشه باهاش event-driven هم زد.ولی واقعا سخته با C++میتونی امتحان کنی، اگه کتابخونشو نداشته باشه،خودت باید پیاده سازیش کنی!
اینو یادت باشه تو پایکیوت به همه کتابخونه های پایتون دسترسی داری!
میشه گفت مفهوم event driven یکی از پایه های اصلی فریمورک کیوت هست که در کیوت با مکانیزم signal/slot پیاده شده: http://qt-project.org/doc/qt-5/signalsandslots.html. البته در سی پلاس پلاس چندین پیاده سازی دیگه هم برای این مفهوم وجود داره مثلا boost::signal2. در اکثر زبانها میشه به نوعی از مفهوم event driven استفاده کرد مثلا http://libevent.org رو ببینین یک کتابخونه به زبان C هست که این مفهوم رو ساپورت میکنه. از طرفی میشه گفت کتابخونه هایی که برای ++c وجود داره اگه بیشتر از پایتون نباشه کمتر هم نیست مثلا همین pyqt در واقع یک binding برای کیوت هست که با ++c نوشته شده.شاید بشه گفت 80 درصد کتابخونه های پایتون bindingهایی برای کتابخونه های ++c/c هستن مثلا برای ارتباط با mysql ممکنه شما چندین کتابخونه پایتون ببینین که یکی با استفاده از libmysql که به زبان C هست نوشته و دیگری به اصطلاح pure python هست که کاملا با استفاده از پایتون نوشته شده که هر کدوم از اینا مزایا و معایب خودشون رو دارن.
به هر حال چیزی که مشخصه اینه که برنامه نویسی با ++c به مراتب سخت تر از پایتونه ولی در مقابلش چیزی که بدست میاد سرعت اجرای برنامه هست مثلا در همین تاپیک از kivy نام برده شده که میشه با اون با استفاده از پایتون برنامه هایی برای اجرا بر روی موبایل نوشت و از طرفی امکان نوشتن برنامه با استفاده از کیوت هم وجود داره حالا چه فرقی بین این دو تا هست؟ فرقش اینه که کد نهایی که با کیوت تولید میشه native هست و فوق العاده سریع اجرا میشه ولی برنامه نوشته شده با kivy به مراتب کندتره، از طرفی اگه اشتباه نکنم kivy هنوز برای اجرای برنامه هاش به لانچر نیاز داره ولی کیوت این مشکل رو هم نداره. به نظر من پایتون در سمت سرور خیلی بهتر میتونه به کار بره تا در سمت کلاینت مثلا من خودم تا الان بیشتر با ++c برنامه نوشتم ولی همین امروز بدون اینکه خیلی در پایتون حرفه ای باشم با استفاده از flask که اونم اولین بار بود که ازش استفاده می کردم یه سرور نوشتم که در کمال تعجب در اولین تلاشها داشت درست کار می کرد! چیزی که اگه میخواست با ++c پیاده بشه احتمالا 10 برابر زمان بیشتری جهت نوشتن،تست و دیباگش نیاز بود!
-
بعد واقعا سی پلاس پلاس خیلی کدها شلوغ و طولانی میشه!بعد شما تو سی پلاس پلاس دیگه کتابخونه های پایتون رو نداری!میدونی چقد بیچاره کننده هست وقتی بخوای تو کیوتی event-driven بنویسی، وقتی کتابخونه مثله twisted رو نداشته باشی؟
من نمی دونم داره event-driven سی پلاس پلاس یا نه!ولی ذهنم میگه زبان سی پلاس پلاس یه زبان پدر مادر داره،حتما میشه باهاش event-driven هم زد.ولی واقعا سخته با C++میتونی امتحان کنی، اگه کتابخونشو نداشته باشه،خودت باید پیاده سازیش کنی!
اینو یادت باشه تو پایکیوت به همه کتابخونه های پایتون دسترسی داری!
میشه گفت مفهوم event driven یکی از پایه های اصلی فریمورک کیوت هست که در کیوت با مکانیزم signal/slot پیاده شده: http://qt-project.org/doc/qt-5/signalsandslots.html. البته در سی پلاس پلاس چندین پیاده سازی دیگه هم برای این مفهوم وجود داره مثلا boost::signal2. در اکثر زبانها میشه به نوعی از مفهوم event driven استفاده کرد مثلا http://libevent.org رو ببینین یک کتابخونه به زبان C هست که این مفهوم رو ساپورت میکنه. از طرفی میشه گفت کتابخونه هایی که برای ++c وجود داره اگه بیشتر از پایتون نباشه کمتر هم نیست مثلا همین pyqt در واقع یک binding برای کیوت هست که با ++c نوشته شده.شاید بشه گفت 80 درصد کتابخونه های پایتون bindingهایی برای کتابخونه های ++c/c هستن مثلا برای ارتباط با mysql ممکنه شما چندین کتابخونه پایتون ببینین که یکی با استفاده از libmysql که به زبان C هست نوشته و دیگری به اصطلاح pure python هست که کاملا با استفاده از پایتون نوشته شده که هر کدوم از اینا مزایا و معایب خودشون رو دارن.
به هر حال چیزی که مشخصه اینه که برنامه نویسی با ++c به مراتب سخت تر از پایتونه ولی در مقابلش چیزی که بدست میاد سرعت اجرای برنامه هست مثلا در همین تاپیک از kivy نام برده شده که میشه با اون با استفاده از پایتون برنامه هایی برای اجرا بر روی موبایل نوشت و از طرفی امکان نوشتن برنامه با استفاده از کیوت هم وجود داره حالا چه فرقی بین این دو تا هست؟ فرقش اینه که کد نهایی که با کیوت تولید میشه native هست و فوق العاده سریع اجرا میشه ولی برنامه نوشته شده با kivy به مراتب کندتره، از طرفی اگه اشتباه نکنم kivy هنوز برای اجرای برنامه هاش به لانچر نیاز داره ولی کیوت این مشکل رو هم نداره. به نظر من پایتون در سمت سرور خیلی بهتر میتونه به کار بره تا در سمت کلاینت مثلا من خودم تا الان بیشتر با ++c برنامه نوشتم ولی همین امروز بدون اینکه خیلی در پایتون حرفه ای باشم با استفاده از flask که اونم اولین بار بود که ازش استفاده می کردم یه سرور نوشتم که در کمال تعجب در اولین تلاشها داشت درست کار می کرد! چیزی که اگه میخواست با ++c پیاده بشه احتمالا 10 برابر زمان بیشتری جهت نوشتن،تست و دیباگش نیاز بود!
با حرفایی که در قسمت اول فرمودین مخالفم.یجورایی برعکسه.
نکته اول اینه که با اینکه من خودم عاشق پایکیوت هستم ولی ضعفش در مقابل kivy رو کاملا احساس میکنم و شما برای اجرای qt بر روی اندروید نیاز به لانچر Ministro دارید،که اون هم بعد از نصب برنامه از سایت QT میاد کتابخونه های QT رو دانلود میکنه که نسبتا هم سنگینه.ولی آره میشه یجوری پکیج کرد که کتابخونه هاشم توش باشه،اما خیلی سخته و خیلی حجم برنامه میره بالا!حداقل 16 مگ.ولی kivy اینطور نیست،وقتی شما پکیج کنی نصبش کنی تمامه!و خیلی هم سریعتر از پایکیوته یا QT خالیه(البته روی اندروید)!.من خودم خیلی روی آندروید کار کردم،هم با QT و هم با KIVY
دوم اینکه اگه منظورتون از event-driven همون signal/slot هست باید بگم که در اشتباه هستید.چون هر برنامه GUI چه دات نت چه QT و هر چی خودش یه لوپ داره که eventهای خودشو هندل میکنه.و اون لوپ جدا از مبحثه event-driven هست.
منظور از event-driven چیزه دیگه اییه و ترکیب event های مختلف و تسکهای مختلف برنامه است که طرز هندلش خودش یخورده بحث داره و بصورت thread نیست،در صورتی که لوپ برنامه های GUI بر اساس threadهست و sync آن با event-driven یه نمه خلاقیت میخواد باتوجه به ماژول مربوط به آن!
بعد یه چیز جالب فرمودین.واقعا ۸۰٪ کتابخونه های پایتون بایندینگی برای c++/c هست؟من هیچوقت منکر قدرت c و c++ نیستم و در اون حد و اندازم نیستم.من فقط میخوام دید بدم به کاربران ایرانی.پس برای همین هیچوقت اینجوری حرف نمیزنم.
آخه این آمار رو از کجا آوردید؟
-
لانچر ministro از ورژن 5.1 کیوت به بعد دیگه به صورت پیش فرض استفاده نمیشه و کتابخونه ها به برنامه اصلی لینک میشن.همین الان روی کیوت 5.2 بازی maroon که جزو مثالهای خود sdk هست رو کامپایل و روی اندروید تست کردم.فقط پروژه رو باز کردم build کردم و اجرا کردم هیچ کار اضافه ای نیاز نداشت.حجم apk نهایی هم 8.5 مگ شد.
event driven یک مفهوم کلی هست و خیلی جاها استفاده میشه و با روشهای مختلفی پیاده سازی میشه و در کیوت در قالب همون signal/slot پیاده شده.شاید یک مقایسه با twisted قضیه رو مشخص تر کنه.اولین کد مربوط به twisted هست که از صفحه اول سایتش برداشتم و دومی کد کوتاه شده ی برنامه fortune server از یکی از مثالهای فریمورک کیوت:
from twisted.internet import protocol, reactor
class Echo(protocol.Protocol):
def dataReceived(self, data):
self.transport.write(data)
class EchoFactory(protocol.Factory):
def buildProtocol(self, addr):
return Echo()
reactor.listenTCP(1234, EchoFactory())
reactor.run()
#include <QApplication>
#include <QtCore>
#include <stdlib.h>
#include "server.h"
Server::Server(QWidget *parent)
: QDialog(parent), tcpServer(0), networkSession(0)
{
//... deleted section
connect(tcpServer, SIGNAL(newConnection()), this, SLOT(sendFortune()));
//... deleted section
}
void Server::sessionOpened()
{
//... deleted section
tcpServer = new QTcpServer(this);
if (!tcpServer->listen()) {
QMessageBox::critical(this, tr("Fortune Server"),
tr("Unable to start the server: %1.")
.arg(tcpServer->errorString()));
close();
return;
}
//... deleted section
}
void Server::sendFortune()
{
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_0);
out << (quint16)0;
out << fortunes.at(qrand() % fortunes.size());
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
QTcpSocket *clientConnection = tcpServer->nextPendingConnection();
connect(clientConnection, SIGNAL(disconnected()),
clientConnection, SLOT(deleteLater()));
clientConnection->write(block);
clientConnection->disconnectFromHost();
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Server server;
server.show();
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
return app.exec();
}
در twisted خط آخر ()reactor.run رو داریم و در کیوت ;()return app.exec رو. اینجا جایی که event loop فعال میشه. در twisted در ازای برقراری کانکشن که یک event هست یک نمونه از کلاس Echo ساخته میشه و با رسیدن event بعدی یعنی رسیدن اطلاعات روی سوکت تابع dataReceived صدا زده میشه.
در کیوت شما این خط رو دارید:connect(tcpServer, SIGNAL(newConnection()), this, SLOT(sendFortune()));
اینجا جایی که شما event برقراری کانکشن رو به sendFortune متصل می کنین و در این تابع هم event دیسکانکت شدن کلاینت به deleteLater متصل شده که سوکت ایجاد شده رو بعد از دیسکانکت پاک می کنه.
از این مقایسه مشخصه که در کیوت هم بدون استفاده از thread مشابه همون روالی که در twisted طی میشه صورت می گیره.
در مورد عدد 80 هم حق با شماست و بهتر بود این عدد رو ذکر نمی کردم و فقط میگفتم تعداد زیادی از کتابخونه های پایتون bindingی برای کتابخونه های ++c/c هستن.البته من هدفم مطرح کردن چیز دیگه ای بود که شاید بهتر باشه باز برای اون مثال بزنم تا واضح تر بشه که البته خلاصه اش این میشه که پایتون(حداقل پیاده سازی فعلی اون) بدون ماژولهایی که با ++c/c برای اون نوشته شدن یک زبان غیر کاربردی خواهد بود به دلیل کند بودن! مثلا اینجا رو ببینین : http://python.org/download/releases/3.3.3 که این خط مد نظر منه:
A C implementation of the "decimal" module, with up to 120x speedup for decimal-heavy applications
خب فکر نکنم نیاز به توضیح داشته باشه افزایش سرعت تا 120 برابر در ماژول decimal اتفاق افتاده اونم به خاطر اینکه پیاده سازی جدید با C هست نه خود پایتون!
اینقدر موقع نوشتن این مطلب درگیر کارای دیگه شدم که باز امکان داره چیزهای غیر دقیقی گفته باشم!
در ضمن یک خبر خوب هم اینه که در پایتون 3.4 ماژول asyncio به پایتون اضافه میشه(http://docs.python.org/3.4/library/asyncio.html) که فکر کنم می تونه به عنوان جایگزینی برای twisted استفاده بشه.
-
لانچر ministro از ورژن 5.1 کیوت به بعد دیگه به صورت پیش فرض استفاده نمیشه و کتابخونه ها به برنامه اصلی لینک میشن.همین الان روی کیوت 5.2 بازی maroon که جزو مثالهای خود sdk هست رو کامپایل و روی اندروید تست کردم.فقط پروژه رو باز کردم build کردم و اجرا کردم هیچ کار اضافه ای نیاز نداشت.حجم apk نهایی هم 8.5 مگ شد.
event driven یک مفهوم کلی هست و خیلی جاها استفاده میشه و با روشهای مختلفی پیاده سازی میشه و در کیوت در قالب همون signal/slot پیاده شده.شاید یک مقایسه با twisted قضیه رو مشخص تر کنه.اولین کد مربوط به twisted هست که از صفحه اول سایتش برداشتم و دومی کد کوتاه شده ی برنامه fortune server از یکی از مثالهای فریمورک کیوت:
from twisted.internet import protocol, reactor
class Echo(protocol.Protocol):
def dataReceived(self, data):
self.transport.write(data)
class EchoFactory(protocol.Factory):
def buildProtocol(self, addr):
return Echo()
reactor.listenTCP(1234, EchoFactory())
reactor.run()
#include <QApplication>
#include <QtCore>
#include <stdlib.h>
#include "server.h"
Server::Server(QWidget *parent)
: QDialog(parent), tcpServer(0), networkSession(0)
{
//... deleted section
connect(tcpServer, SIGNAL(newConnection()), this, SLOT(sendFortune()));
//... deleted section
}
void Server::sessionOpened()
{
//... deleted section
tcpServer = new QTcpServer(this);
if (!tcpServer->listen()) {
QMessageBox::critical(this, tr("Fortune Server"),
tr("Unable to start the server: %1.")
.arg(tcpServer->errorString()));
close();
return;
}
//... deleted section
}
void Server::sendFortune()
{
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_0);
out << (quint16)0;
out << fortunes.at(qrand() % fortunes.size());
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
QTcpSocket *clientConnection = tcpServer->nextPendingConnection();
connect(clientConnection, SIGNAL(disconnected()),
clientConnection, SLOT(deleteLater()));
clientConnection->write(block);
clientConnection->disconnectFromHost();
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Server server;
server.show();
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
return app.exec();
}
در twisted خط آخر ()reactor.run رو داریم و در کیوت ;()return app.exec رو. اینجا جایی که event loop فعال میشه. در twisted در ازای برقراری کانکشن که یک event هست یک نمونه از کلاس Echo ساخته میشه و با رسیدن event بعدی یعنی رسیدن اطلاعات روی سوکت تابع dataReceived صدا زده میشه.
در کیوت شما این خط رو دارید:connect(tcpServer, SIGNAL(newConnection()), this, SLOT(sendFortune()));
اینجا جایی که شما event برقراری کانکشن رو به sendFortune متصل می کنین و در این تابع هم event دیسکانکت شدن کلاینت به deleteLater متصل شده که سوکت ایجاد شده رو بعد از دیسکانکت پاک می کنه.
از این مقایسه مشخصه که در کیوت هم بدون استفاده از thread مشابه همون روالی که در twisted طی میشه صورت می گیره.
در مورد عدد 80 هم حق با شماست و بهتر بود این عدد رو ذکر نمی کردم و فقط میگفتم تعداد زیادی از کتابخونه های پایتون bindingی برای کتابخونه های ++c/c هستن.البته من هدفم مطرح کردن چیز دیگه ای بود که شاید بهتر باشه باز برای اون مثال بزنم تا واضح تر بشه که البته خلاصه اش این میشه که پایتون(حداقل پیاده سازی فعلی اون) بدون ماژولهایی که با ++c/c برای اون نوشته شدن یک زبان غیر کاربردی خواهد بود به دلیل کند بودن! مثلا اینجا رو ببینین : http://python.org/download/releases/3.3.3 که این خط مد نظر منه:
A C implementation of the "decimal" module, with up to 120x speedup for decimal-heavy applications
خب فکر نکنم نیاز به توضیح داشته باشه افزایش سرعت تا 120 برابر در ماژول decimal اتفاق افتاده اونم به خاطر اینکه پیاده سازی جدید با C هست نه خود پایتون!
اینقدر موقع نوشتن این مطلب درگیر کارای دیگه شدم که باز امکان داره چیزهای غیر دقیقی گفته باشم!
در ضمن یک خبر خوب هم اینه که در پایتون 3.4 ماژول asyncio به پایتون اضافه میشه(http://docs.python.org/3.4/library/asyncio.html) که فکر کنم می تونه به عنوان جایگزینی برای twisted استفاده بشه.
خیلی خوبه که وقت میذارین.
من الان از شما میخوام که یک event لوپ دیگه به برنامه اضافه کنی.چه اتفاقی میوفته به نظرت؟
میگم بازم میگم اون لوپ کیوت مخصوصه خود GUI هست وگرنه همون pyqt و kivy هم از این event لوپها دارن.دیگه دلیلی نبود که چیزی مثه twisted یا تورنادو یا دیزل یا همین ماژول خوب asyncio بسازن!باور کن ساختن یه برنامه مثلا چت پیاده سازیش با این به مراتب سختره.البته اگه برنامه تون خاصیت لایو نداره مثه اکثر برنامه های ویندوزی از همون لوپ GUI استفاده کنید(یعنی kivy و pyqt).ولی برای مثلا ریلتایم کردن جدولها،مانیتور زنده تماسهای یک سازمان،لیست وضعیت حضور افراد در چت یا کار با سوکت و ... از twisted و امثال اونها استفاده کنید.
اینکه برنامه ایونتی بشه و موقعه ایی که ایونت رخ بده و کاری انجام بشه بهتره یا اینکه برنامه شما یه تابع رو هر دفعه تو لوپ GUI کال کنه تا یه تغییری افتاد رو بفهمه؟
بعد این حرفتون " پایتون(حداقل پیاده سازی فعلی اون) بدون ماژولهایی که با ++c/c برای اون نوشته شدن یک زبان غیر کاربردی خواهد بود " که از قبلی سنگینتره!
ببین بعضی از ماژولها واقعا سرعت c اونها بیشتره!مثلا خودم یکیشو میگم مثه cpickle!
ولی مگه چقدرن؟خداییش مثلا همین پایکیوت رو باز کن ببین از کدوم ماژول سی استفاده کرده جز خود QT.اونم تازه خاصیت چسب پایتونه که تونسته زبان برنامه دیگه رو تو خودش ایمپورت کنه.یا مثلا جنگو،برو تحقیق کن ببین،اصلا از ماژولهای سی استفاده کرده؟
بر طبق استاندارد PEP یکی از شروط ماژول نویسی پایتون اینه که تا اونجا که میشه سورس برنامه خلاص پایتون باشه.
بعد درضمن بعضیهاشون سرعتش بالاتره نه همه.
به هر حال به دید تخریب نباید به قضیه نیگاه کرد،وگرنه تهش این میشه که بگیم پایتون بدون بایندهای c, c++ بدردنخوره!این خیلی حرف شدیدیه!
از شمام بابت معرفی asyncio ممنونم.
-
به نظر میرسه شما کیوت رو مشابه کتابخونه هایی مثل gtk یا wxwidget در نظر گرفتین که برای gui استفاده میشن ولی کیوت کتابخونه نیست بلکه یک فریمورکه و این یعنی اینکه شما اگه بخواید از همه تواناییهای اون استفاده کنین باید روش کارش رو بپذیرین و همونطور که قبلا گفتم signal/slot یکی از موارد پایه ای در این فریمورکه که کل فریمورک رو رویدادگرا کرده و در همه بخشهای اون استفاده شده که یکی از اونها gui هست. کدی که در پایین اومده برنامه echo server در کیوت هست که اون رو برای مقایسه با مثال twisted نوشتم:
client.h
#ifndef CLIENT_H
#define CLIENT_H
#include <QtNetwork>
class Client : public QTcpSocket
{
Q_OBJECT
public:
explicit Client(QTcpSocket *parent = 0);
public slots:
void onReceive();
private:
QTcpSocket* m_socket;
};
#endif // CLIENT_H
client.cpp
#include "client.h"
Client::Client(QTcpSocket *parent) :
m_socket(parent)
{
}
void Client::onReceive()
{
QByteArray block;
block = m_socket->readAll();
m_socket->write(block);
}
server.h
#ifndef SERVER_H
#define SERVER_H
#include <QObject>
#include <QtNetwork>
class Server : public QObject
{
Q_OBJECT
public:
explicit Server(QObject *parent = 0);
private slots:
void onConnect();
private:
QTcpServer *tcpServer;
};
#endif // SERVER_H
server.cpp
#include "server.h"
#include "client.h"
Server::Server(QObject *parent) :
QObject(parent)
{
tcpServer = new QTcpServer;
tcpServer->listen(QHostAddress::LocalHost, 10000);
connect(tcpServer, SIGNAL(newConnection()), this, SLOT(onConnect()));
}
void Server::onConnect()
{
QTcpSocket *clientConnection = tcpServer->nextPendingConnection();
Client* client = new Client(clientConnection);
connect(clientConnection, SIGNAL(readyRead()), client, SLOT(onReceive()));
}
main.cpp
#include <QCoreApplication>
#include "server.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Server server;
return a.exec();
}
server.pro
QT += network core
QT -= gui
TARGET = tcpserver-test-1
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp \
server.cpp \
client.cpp
HEADERS += \
server.h \
client.h
نکته اول در این برنامه اینه که اصلا از کتابخونه gui کیوت استفاده نشده که بخوایم بگیم event loop کیوت مختص gui هست.نکته دوم اینه که با اینکه برنامه فقط یک thread اصلی داره شما می تونین چندین هزار کانکشن با telnet یا هر روش دیگه ای به این سرور بزنین و جواب بگیرین.در هیج جایی از برنامه هم شما کدی رو نمی بینین که تغییرات رو به صورت مداوم چک کنه تا در مقابل اونها عکس العمل نشون بده. اگه این برنامه رویدادگرا محسوب نشه پس چه عنوان دیگه ای میشه بهش داد؟!
درسته پایکیوت مثال خوبی هست البته برای همون حرف سنگینی که گفتم! در پایکیوت برای اینکه پایتون بتونه از کیوت استفاده کنه از sip استفاده شده :http://www.riverbankcomputing.com/software/sip/intro که کدهایی به زبان ++c/c تولید می کنه که بعد از کامپایل با استفاده از یک ماژول پایتونی می تونه بین پایتون و کیوت ارتباط برقرار کنه.
اگه هدف ایجاد یک سایت معمولی باشه فریمورکهایی مثل جنگو کفایت می کنه ولی اگه مثلا شما بخواین سایتی مثل یوتیوب یا حتی آپارات راه بندازین دیگه استفاده صرف از پایتون نمی تونه شما رو به هدفتون برسونه چون عملیات decode و encode فیلمها اینقدر سنگینه که به هیج وجه انجام اونها با پایتون اگه حتی امکان پذیر باشه به صرفه نیست.برای این موارد می تونین از bindingهایی که وجود داره استفاده کنین و به سرعت مورد نظر برسین.خیلی موارد دیگه هستن که پیاده سازیهای ++c/cی ماژولهای پایتون غیر قابل اجتناب هست مثل انواع parser, convertor و محاسبات ریاضی.
هدف من تخریب پایتون نیست و اگه خودم بخوام در سمت سرور کدی بزنم انتخاب اولم پایتون خواهد بود مگر اینکه جوابگوی کار مورد نظر نباشه یا رییسم دستور اکید برای استفاده از چیز دیگه ای رو بده!
-
به نظر میرسه شما کیوت رو مشابه کتابخونه هایی مثل gtk یا wxwidget در نظر گرفتین که برای gui استفاده میشن ولی کیوت کتابخونه نیست بلکه یک فریمورکه و این یعنی اینکه شما اگه بخواید از همه تواناییهای اون استفاده کنین باید روش کارش رو بپذیرین و همونطور که قبلا گفتم signal/slot یکی از موارد پایه ای در این فریمورکه که کل فریمورک رو رویدادگرا کرده و در همه بخشهای اون استفاده شده که یکی از اونها gui هست. کدی که در پایین اومده برنامه echo server در کیوت هست که اون رو برای مقایسه با مثال twisted نوشتم:
client.h
#ifndef CLIENT_H
#define CLIENT_H
#include <QtNetwork>
class Client : public QTcpSocket
{
Q_OBJECT
public:
explicit Client(QTcpSocket *parent = 0);
public slots:
void onReceive();
private:
QTcpSocket* m_socket;
};
#endif // CLIENT_H
client.cpp
#include "client.h"
Client::Client(QTcpSocket *parent) :
m_socket(parent)
{
}
void Client::onReceive()
{
QByteArray block;
block = m_socket->readAll();
m_socket->write(block);
}
server.h
#ifndef SERVER_H
#define SERVER_H
#include <QObject>
#include <QtNetwork>
class Server : public QObject
{
Q_OBJECT
public:
explicit Server(QObject *parent = 0);
private slots:
void onConnect();
private:
QTcpServer *tcpServer;
};
#endif // SERVER_H
server.cpp
#include "server.h"
#include "client.h"
Server::Server(QObject *parent) :
QObject(parent)
{
tcpServer = new QTcpServer;
tcpServer->listen(QHostAddress::LocalHost, 10000);
connect(tcpServer, SIGNAL(newConnection()), this, SLOT(onConnect()));
}
void Server::onConnect()
{
QTcpSocket *clientConnection = tcpServer->nextPendingConnection();
Client* client = new Client(clientConnection);
connect(clientConnection, SIGNAL(readyRead()), client, SLOT(onReceive()));
}
main.cpp
#include <QCoreApplication>
#include "server.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Server server;
return a.exec();
}
server.pro
QT += network core
QT -= gui
TARGET = tcpserver-test-1
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp \
server.cpp \
client.cpp
HEADERS += \
server.h \
client.h
نکته اول در این برنامه اینه که اصلا از کتابخونه gui کیوت استفاده نشده که بخوایم بگیم event loop کیوت مختص gui هست.نکته دوم اینه که با اینکه برنامه فقط یک thread اصلی داره شما می تونین چندین هزار کانکشن با telnet یا هر روش دیگه ای به این سرور بزنین و جواب بگیرین.در هیج جایی از برنامه هم شما کدی رو نمی بینین که تغییرات رو به صورت مداوم چک کنه تا در مقابل اونها عکس العمل نشون بده. اگه این برنامه رویدادگرا محسوب نشه پس چه عنوان دیگه ای میشه بهش داد؟!
درسته پایکیوت مثال خوبی هست البته برای همون حرف سنگینی که گفتم! در پایکیوت برای اینکه پایتون بتونه از کیوت استفاده کنه از sip استفاده شده :http://www.riverbankcomputing.com/software/sip/intro که کدهایی به زبان ++c/c تولید می کنه که بعد از کامپایل با استفاده از یک ماژول پایتونی می تونه بین پایتون و کیوت ارتباط برقرار کنه.
اگه هدف ایجاد یک سایت معمولی باشه فریمورکهایی مثل جنگو کفایت می کنه ولی اگه مثلا شما بخواین سایتی مثل یوتیوب یا حتی آپارات راه بندازین دیگه استفاده صرف از پایتون نمی تونه شما رو به هدفتون برسونه چون عملیات decode و encode فیلمها اینقدر سنگینه که به هیج وجه انجام اونها با پایتون اگه حتی امکان پذیر باشه به صرفه نیست.برای این موارد می تونین از bindingهایی که وجود داره استفاده کنین و به سرعت مورد نظر برسین.خیلی موارد دیگه هستن که پیاده سازیهای ++c/cی ماژولهای پایتون غیر قابل اجتناب هست مثل انواع parser, convertor و محاسبات ریاضی.
هدف من تخریب پایتون نیست و اگه خودم بخوام در سمت سرور کدی بزنم انتخاب اولم پایتون خواهد بود مگر اینکه جوابگوی کار مورد نظر نباشه یا رییسم دستور اکید برای استفاده از چیز دیگه ای رو بده!
با سلام
دوست عزیز گوگل یاهو و یوتیوب اصل کارشون رو پایتونه!حالا شما میگی پایتون(جنگو) برای سایتهای معمولیه؟
کلا بحث خوبه ولی در حد منطقیش.
وقتی شما از جانب خودتون میگید پایتون ۸۰٪ بایندینگی از c/c++ یا اینکه پایتون بدون ماژولهای سی کاربرد نداره،این نشون دهنده این هست که کلا جهان رو از منظر خودتون میبینید.و از بیرون به مسائل نگاه ندارید.و شما چقد مگه پایتون کار کردید؟شاید یه برنامه نویس c++/c باشید،ولی پایتون چی؟
من c++ خیلی کم کار کردم،ولی هیچوقت نمیگم c و c++ در مقابل پایتون هیچه!چون اکثر برنامه ها داره میاد به سمت پایتون.
اگه اینجوری حرف بزنم نشانه بی احترامی من به جامعه c/c++ کاراست،یا کلا خودمو خراب کردم.c/c++ واقعا قویه.ولی من دوست دارم یه تجربه جدید به بچه های برنامه نویس بدم که با پایتون آشنا بشند و خودشون قضاوت بکنند.خداییش تا تجربه نباشه حرف زیاده.
ولی بازم میگم اصلا قبول ندارم حرفتونو که میگید پایتون بیشتر بایندینگش c++ هست،و فریم ورک django,flask میشه گفت جز برترین فریم ورکهای اوله جهانه،و واقعا قدرت و سرعت و امنیت و امکانات رو با هم یکجا تقدیم شما میکنه.و سایتهای غولی رو باهاش اجرا میکنند.بعد من فکر نکنم الان کسی Python,php,.net,ruby,perl اینارو ول بکنه و بیاد با c , c++ برای سمت وب کد بزنه!آخه من که تاحالا نشنیدم کسی با c یا c++ بیاد کد بزنه واسه سمت وب.
بعد پایتون انعطاف پذیرترین زبانه،شما کتابخونه های c , c++، جاوا و دات نت رو میتونی بیاری توش و از اونا استفاده کنی.اسم این ضعف نیست دوست عزیز،خاصیت برجسته پایتون هست.
فقط اینو بدون که اگه پایتون سرعتش ضعیف بود الان اکثر یونیکس بیسها روی سیستم عاملشون پایتون بصورت پیش فرض نصب نبود،حتی سیستم عامل مک،کنسولشونو(ترمینال) بزنی و توش بنویسی پایتون برات مفسر پایتون رو میاره!الان اکثر سرورهای جهان روشون پایتونه!الان نمیدونم با چه سیستم عاملی کار میکنید،فقط اینو میدونم که اگر کاربر لینوکسی هستی،بدون اگه پایتون روی لینوکستونو پاک کنی تقریبا فلج میشی،چون اکثر برنامه حتما به پایتون نیاز دارند.
درکل ممنون از نظرتون.شما کلا c , c++ کار میکنید؟
-
یاهو و یوتیوب رو نمی دونم ولی اصل کار گوگل بر پایه ++c/c و بعد جاوا و در مرحله آخر پایتون هست.حتی وقتی کلید اینتر رو در صفحه جستجو می زنین htmlی که تولید میشه با استفاده از ++c هست.گوگل الگوریتم map reduce و big table رو هم با ++c پیاده کرده. پایتون احتمالا در همون جایی استفاده میشه که بیشتر مفیده یعنی به عنوان چسب! این مقاله رو دیگه خود Guido van Rossum نوشته : http://www.python.org/doc/essays/omg-darpa-mcc-position.html
و همونطور که ممکنه اطلاع داشته باشین الان از گوگل خارج شده و به dropbox پیوسته که به نظرم دلیلش اینه که می دیده گوگل خیلی نقش مثبتی در پیشرفت پایتون نمی تونه بازی کنه بر خلاف dropbox که بیشتر کاراش رو با پایتون انجام میده.البته dropbox هم برای اینکه بتونه از پایتون استفاده کنه در اون تغییراتی داده مثل نوشتن یک memory allocator جدید(البته با C !!) تا حافظه کمتری توسط برنامه های پایتونی استفاده بشه.
اگه دوستان دیگه ای هم بحث رو دنبال می کنن من اصلاحاتی رو در جوابهام اعمال کردم و ریفرنسهای مناسب رو هم دادم.دیگه از این به بعد می تونین خودتون بیشتر تحقیق کنین و سعی می کنیم از این به بعد بحث رو از مقایسه خارج کنیم و موارد دیگه ای رو که خاص پایتون هست مطرح کنیم که هدف اصلی این تاپیک بود.
من بیشتر کد ++c می زنم. در پروژه جدیدی هم دارم از پایتون استفاده می کنم. golang رو هم بررسی کردم و چند خط کد زدم و به نظرم در سمت سرور در بعضی موارد می تونه جایگزین خوبی برای پایتون باشه.
-
یاهو و یوتیوب رو نمی دونم ولی اصل کار گوگل بر پایه ++c/c و بعد جاوا و در مرحله آخر پایتون هست.حتی وقتی کلید اینتر رو در صفحه جستجو می زنین htmlی که تولید میشه با استفاده از ++c هست.گوگل الگوریتم map reduce و big table رو هم با ++c پیاده کرده. پایتون احتمالا در همون جایی استفاده میشه که بیشتر مفیده یعنی به عنوان چسب! این مقاله رو دیگه خود Guido van Rossum نوشته : http://www.python.org/doc/essays/omg-darpa-mcc-position.html
و همونطور که ممکنه اطلاع داشته باشین الان از گوگل خارج شده و به dropbox پیوسته که به نظرم دلیلش اینه که می دیده گوگل خیلی نقش مثبتی در پیشرفت پایتون نمی تونه بازی کنه بر خلاف dropbox که بیشتر کاراش رو با پایتون انجام میده.البته dropbox هم برای اینکه بتونه از پایتون استفاده کنه در اون تغییراتی داده مثل نوشتن یک memory allocator جدید(البته با C !!) تا حافظه کمتری توسط برنامه های پایتونی استفاده بشه.
اگه دوستان دیگه ای هم بحث رو دنبال می کنن من اصلاحاتی رو در جوابهام اعمال کردم و ریفرنسهای مناسب رو هم دادم.دیگه از این به بعد می تونین خودتون بیشتر تحقیق کنین و سعی می کنیم از این به بعد بحث رو از مقایسه خارج کنیم و موارد دیگه ای رو که خاص پایتون هست مطرح کنیم که هدف اصلی این تاپیک بود.
من بیشتر کد ++c می زنم. در پروژه جدیدی هم دارم از پایتون استفاده می کنم. golang رو هم بررسی کردم و چند خط کد زدم و به نظرم در سمت سرور در بعضی موارد می تونه جایگزین خوبی برای پایتون باشه.
خواهشی که از شما دارم رو پایه و اساس بنویسید.
ببین بالاتر از ویکی پدیا که نداریم.این لبنکش قبلا هم دادم.یک لیستی از مواردی و برنامه های که با پایتون زده شده:
http://en.wikipedia.org/wiki/List_of_Python_software
و
https://developers.google.com/appengine/kb/general
و
http://en.wikipedia.org/wiki/Google_App_Engine
و
http://www.python.org/about/success/usa/
بعد گوگل واقعا به پایتون اعتیاد داره.
یا ناسا بیخودی پایتون رو انتخاب کرده؟شما چی میگین؟
درکل داره از بحث خارج میشیم و بذاریم دوستان خودشون قضاوت کنند.
موفق باشید.
-
چیکار استفاده کنندش دارین؟ حالا گوگل ازش استفاده می کنه به ما چه! هر چی گوگل استفاده کنه بهترینه؟ چه سی پلاس پلاس چه پایتون چه هر چیز دیگه. من با پایتون حال می کنم پایتون کد میزنم با گوگلم کار ندارم :|
من از این تایپیک انتظار گفتن مزیت ها و معایب پایتون روو داشتم نه اینکه کیوت و سی پلاس پلاس و ... چین به چه درد می خورن.
تایپیکو بد بهم زدین >:(
-
من از همه دوستان عذر میخوام.و حق با شماست
والا من هم کاری ندارم، من فقط این تاپیکو به قصد معرفی این زبان با ویژگی هاش کردم.
در مرحله بعد در مورد IDE ها مطلب می نویسم
بازم از همه دوستان عذر میخوام و ازتون خواهشم میکنم در مورد پایتون فقط مطلب بذارید.
-
چیکار استفاده کنندش دارین؟ حالا گوگل ازش استفاده می کنه به ما چه! هر چی گوگل استفاده کنه بهترینه؟ چه سی پلاس پلاس چه پایتون چه هر چیز دیگه. من با پایتون حال می کنم پایتون کد میزنم با گوگلم کار ندارم :|
من از این تایپیک انتظار گفتن مزیت ها و معایب پایتون روو داشتم نه اینکه کیوت و سی پلاس پلاس و ... چین به چه درد می خورن.
تایپیکو بد بهم زدین >:(
ادامه بحث به صورت جنگ لینکی!:
http://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites
چرا ناسا از پایتون استفاده می کنه؟ به خاطر وجود ماژولهایی مثل numpy(نوشته شده با C) که در برخی موارد سرعت رو تا ۱۰۰ برابر افزایش میده : https://modelingguru.nasa.gov/docs/DOC-1762
حق با شماست ولی دوستمون طوری بحث رو مطرح می کنن مثل اینکه پایتون پایه اکثر نرم افزارهای دنیاست! من مزایا و معایب رو تا اینجا خلاصه می کنم(هر کدوم از اینها رو سرچ کنین می تونین مطلب مرتبط با اون رو در ویکیپدیا پیدا کنین) :
مزایا: dynamic typing, duck typing و expressiveness (لینک چون پیدا کردن این یکی یه خرده سخته : http://en.wikipedia.org/wiki/Comparison_of_programming_languages#Expressiveness) که همه این موارد در نهایت منجر به productiveتر شدن برنامه نویس میشه به طوری که در برخی موارد با پایتون بین ۲ تا ۱۰ برابر سریعتر میشه محصول رو تولید کرد نسبت به جاوا و سی پلاس پلاس .
معایب: کند بودن ذاتی زبان در کارهای محاسباتی(تا حدودی قابل حل با ماژولهای C)
-
با سلام و احترام
در این قصد داریم به معرفی IDE هایی که برای پایتون میشه استفاده کرد بحث کنیم.
ادیتور های موجود به قرار زیر می باشند:
همه ادیتورها در این لینک لیست شده و من مجبوب ترین هاشو بیشتر توضیح میدم:
https://wiki.python.org/moin/PythonEditors
خوب اول از همه Vim:
خیلی ها عاشقه vim هستند و از کد زدن هر زبانی در آن لذت میبرن.که خود من هم گاهی اوقات ازش استفاده میکنم و ادیتور خوبیه!ولی بیشتر مواقعی باید استفاده کرد که شما داری، روی سرور و در محیط ترمینال استفاده میکنی.و درضمن پروژتون زیاد بزرگ نباشه.
nano هم مثه Vim ولی vim فوق العاده مشدی تره!
komodo و Eclipse-pydev و pycharm ,netbeans , Eric
اینها همه خیلی عالیه و امکانات زیادی داره از جمله:
Automatic code formatting
Intellisense
Extensibility
Integrated Python Debugging
ErrorMarkup
Rapid application development support
Unit Testing
UML editing / viewing
integrated database support
Source Control integration
قابلیت پروژه ایی تعریف کردن
قابلیت تعریف جنگو،گوگل اپ انجین و ...
در موارد بالا من Eclipse رو خیلی تایید میکنم که باید روش pydev نصب کنید.هم رایگان هست و هم بسیار حرفه ایی و نیاز اکثر برنامه نویسهارو برآورده میکنه.
pydev یکسری مشتقات کم حجم شده داده که میگه بجای eclipse مثلا liclipse یا easyeclipse for python رو بگیرید که مخصوص پایتونه و نیاز به کانفیگ نداره.
این سایت pydev هست: http://pydev.org/
بجای pydev و تنظیماتش به یکی از این دو لینک مراجعه کنید و برنامشو دانلود کنید و شروع به کار کنید.دیگه وقتتونو برای تنظیمات pydev روی Eclipse نذارید:
سایت (easyeclipse) به آدرس: http://www.easyeclipse.org/site/distributions/python.html
سایت (liclipse) به آدرس: http://brainwy.github.io/liclipse/
بالاییها عالیه و حرف نداره.
درضمن موارد pycharm و komodo و jetbeans اینها نسخه تریال هستند،حواستون باشه!ولی Pycharm واقعا بهترین IDE هست،البته یک نسخه کم حجم رایگان هم گذاشته که بازم عالیه.
و یه خبر خوش به ویندوزی ها و بچه هایی که رو ویژوال استدیو کد میزنن:
مایکروسافت نسخه ۲۰۱۳ رو اوپن سورس داده و بر روی اون python رو هم میشه اضافه کرد و حتی django هم داره.از همه مهمتر اینکه شما میتونید پایتون رو با WPF مایکروسافت درگیر کنید و کار کنید،که این امکان رو مایکروسافت برای شما به ارمغان آورده.فک کنم باید آپگریدش کنید visual رو.اگه کسی از بچه های دات نت این کارو انجام داده ممنون میشم آموزش بدن به بچه ها!تقریبا کامله
ninja و wing هم تقریبا مثله pycharm هست.
و Pyshield و SPE و PTK هم با امکانات نسبتا پایینتری هستند ولی خیلی محیط برنامشون سبکتره.
از همشون سبکتر Sublime Text هست که خیلی هم حرفه ایی و حالت پروژه ایی هم داره ولی این هم لایسنسی هست(ارزش تست کردن داره).خودم هم با این کار میکنم و برای پروژه های بیش از اندازه غول از Eclipse استفاده میکنم.
Smart Indent رو اکثر IDE ها دارند.
در مورد IDE های GUI بگم:
Eclipse
wxGlade
Glade
Qt Desginer
wxpython
Eric
Quickly
wxFormBuilder
Boa Constructor
Visual Tkinter Python IDE
و ...
که در این میان glade , Qt-Desginer شما باید اول برنامه گرافیکی رو با موس درست کنید و بعد با تبدیل آن به کد پایتون سفارشیش کنید.
ٍEric حرف نداره و کاملترین IDE هست.
Quickly هم جدیده و شرکت اوبونتو تولید کرده که کم حجمه و خودش گفته این IDE نیست ولی برای طراحی هست.
رو Eclipse دقیقا میشه همون Qt-Desginer رو آورد.
بقیه موارد هم به نوبه خود عالی و جذابه.
درضمن دوستان اگه شما هم فک میکنید که میتونه پست منو کاملتر کنه راجبه IDE ها یا اونو اصلاح کنه خوشحال میشم بنویسید و اضافه کنید به این پست تا راهنمایی واسه پایتون کارا باشه.
-
با سلام و احترام
در این قصد داریم به معرفی IDE هایی که برای پایتون میشه استفاده کرد بحث کنیم.
ادیتور های موجود به قرار زیر می باشند:
همه ادیتورها در این لینک لیست شده و من مجبوب ترین هاشو بیشتر توضیح میدم:
https://wiki.python.org/moin/PythonEditors
خوب اول از همه Vim:
خیلی ها عاشقه vim هستند و از کد زدن هر زبانی در آن لذت میبرن.که خود من هم گاهی اوقات ازش استفاده میکنم و ادیتور خوبیه!ولی بیشتر مواقعی باید استفاده کرد که شما داری، روی سرور و در محیط ترمینال استفاده میکنی.و درضمن پروژتون زیاد بزرگ نباشه.
اگر یکم گوگل کنید می بینید که برای ویم پلاگین هایی هست که اون رو از اکلیپسم کامل تر می کنه. واقعا با پلاگین هایی که داره نمیشه بهش گفت ادیتور، سیستم عاملم کمشه!
http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide
http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/
-
با سلام و احترام
در این قصد داریم به معرفی IDE هایی که برای پایتون میشه استفاده کرد بحث کنیم.
ادیتور های موجود به قرار زیر می باشند:
همه ادیتورها در این لینک لیست شده و من مجبوب ترین هاشو بیشتر توضیح میدم:
https://wiki.python.org/moin/PythonEditors
خوب اول از همه Vim:
خیلی ها عاشقه vim هستند و از کد زدن هر زبانی در آن لذت میبرن.که خود من هم گاهی اوقات ازش استفاده میکنم و ادیتور خوبیه!ولی بیشتر مواقعی باید استفاده کرد که شما داری، روی سرور و در محیط ترمینال استفاده میکنی.و درضمن پروژتون زیاد بزرگ نباشه.
اگر یکم گوگل کنید می بینید که برای ویم پلاگین هایی هست که اون رو از اکلیپسم کامل تر می کنه. واقعا با پلاگین هایی که داره نمیشه بهش گفت ادیتور، سیستم عاملم کمشه!
http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide
http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/
ایول
خیلی خوبه،من خودم خیلی مشتاقم که بتونم Vim رو به طور کامل حرفه ایی کنم.
یعنی میشه بهش
Automatic code formatting
Intellisense
هم داد؟
اگه آره،لطفا اگه زحمتی نیست آموزششو بذارید انجام بدیم.
و همینطور ویژگیهای با ارزشش که خیلی جالبش میکنه رو ذکر کنید.
چون IDE ها واقعا خیلی مهم هستند.اگه واقعا اینطور که شما میفرمایید باشه من خودم هم به Vim کوچ کنم بطور کامل.
مرسی
-
فرق Qt DesginerباQt Creater چیه؟
آیا Qt Creater مربوط به C++ و Qt Desginer مربوط به پایتون ؟؟؟
pyqt چیه؟
-
خیر qtcreator یه آی دی ای کامله که باهاش میشه هم طراحی ویژوال((desine انجام داد هم کد زد هم کامپایل کرد هم ... یعنی در نهایت برنامه کامل و قابل اجرا رو ازش میگیری ولی qtdesiner فقط قسمت طراحی ویژوال داره یعنی باهاش میتونی فقط گرافیک رو طراحی کنی درواقع زیر مجموعه qtcreator هستش.
-
فرق Qt DesginerباQt Creater چیه؟
آیا Qt Creater مربوط به C++ و Qt Desginer مربوط به پایتون ؟؟؟
pyqt چیه؟
کیوت یک فریمورکه که باهاش میشه محیط گرافیکی ساخت(کارای زیادی باهاش میشه کرد ولی فعلا این برای شما کافیه) پایکیوت هم این ویژگی رو که برای سی پلاس پلاس بوده به پایتون آورده.
دیزاینر برای تهیه ی محیط گرافیکی برنامه به وسیله ی کیوت برای هر زبانی استفاده میشه (یه فایل دات یو آی میسازه که شما می تونید اون رو برای زبان مورد علاقتون کانورت کنید)
مثلا شما دیزاینر رو اجرا کردید و محیط گرافیکی رو ساختید و تو پوشه ی خانگیتون با نام test.ui ذخیره کردید. حالا می تونید تو ترمینال با دستور زیر اون رو به کد پایتون تبدیل کنید و بعد با هر آی دی ای (مثلا پای دِو در اکلیپس) تغییر بدید:
pyuic4 ./test.ui -o code.py
سورس در پرونده ای به نام code.py ذخیره میشه.
کریتور هم که احسان توضیح داد :)
-
پس برای برنامه های گرافیکی با پایتون qtcreator کاملتره؟
از چه پایگاه داده برای پایتون میشه استفاده کرد ؟ بهترین باشه
کلا برای ساخت یه برنامه گرافیکی با پایتون به چه چیزایی نیاز دارم؟
-
پس برای برنامه های گرافیکی با پایتون qtcreator کاملتره؟
کلا برای ساخت یه برنامه گرافیکی با پایتون به چه چیزایی نیاز دارم؟
1-designer
2-pyuic4 تو ترمینال
3-IDE(Eclipse - pydev)
-
از چه پایگاه داده برای پایتون میشه استفاده کرد ؟ بهترین باشه
من خودم mysql می زنم و به نظرم بهترینه
ولی خوب sqlite و monogo هم میشه استفاده کرد
-
1-designer
2-pyuic4 تو ترمینال
3-IDE(Eclipse - pydev)
از بین موارد بالا Qt4 designer و Eclipse تو سافتور سنتر بود
این سه تا رو چجوری نصب کنم mysql sqlite monogo
monogo که نیست
sqlite و mysql هم که تو سافتور سنتر تایپ میکنم چهار پنج تایی پیدا میکنه حالا دقیقا برای ابن دو مورد کدومو باید نصب کنم
.
-
در ادامه IDEها منم emacs رو با افزونه elpy معرفی میکنم.
خود emacs که فکر میکنم نیاز به معرفی نداشته باشه
برای elpy هم لینک زیر رو یه سر بزنید:
https://github.com/jorgenschaefer/elpy/wiki/Features
-
کاری نکن سر پیری بریم پایتون یاد بگیریم :'(
;D ;D ;D ;D از من پیرتر تازه از۳۲ سالگی اومدم شروع کنم پایتون :D :D
-
در ادامه IDEها منم emacs رو با افزونه elpy معرفی میکنم.
خود emacs که فکر میکنم نیاز به معرفی نداشته باشه
برای elpy هم لینک زیر رو یه سر بزنید:
https://github.com/jorgenschaefer/elpy/wiki/Features
من هم در ادامه برای دوستای صفر کیلومتر ویندوزی pyscripter رو معرفی میکنم که خیلی راحته ولی فک کنم ایران رو تو تحریم قرار داده
-
با سلام و احترام
دوستان عزیز سایت www.pysocial.com (http://www.pysocial.com) راه اندازی شده.
این سایت کاملا برای پایتون بوده و همه مطالب را پوشش میدهد.
به محض باز شدن چالشگاه آن آماده تاپیک می باشد و این مطالب همگی در آن گفته میشود.
-
در مورد kivyهم بله با گذاشتن یک فونت فارسی و استفاده از ماژول های bidi مشکل برطرف میشه ولی مشکل راست به چپ لغات نه.
درضمن کارتون رو دیدم خیلی عالی بود.اگه خواستید تبدیل به اندروید کنید بهتون راهنمایی کنم.البته اگه بلد نبودین.
قبلا تبدیلش کردم (:
مستندات فارسی برای کیوی نداریم ؛ پایه هستید در این زمینه قدمی برداریم؟
سلام دوست عزیز البته که ما مستندات کیوی رو به صورت فارسی برای شما در سایت پای سوشال آماده میکنیم من خودم چهار پایه هستم برای این کار شما خیالت راحت :D