رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

وبلاگ‌ها

 

محیط یکپارچه توسعه نرم‌افزار Xcode 10 منتشر شد

نرم افزار Apple Xcode از قویترین ابزارها برای برنامه نویسی های حرفه ای در مکینتاش می‌باشد که نسخه ۱۰ بتا آن منتشر شده است. برنامه نویسی محصولات اپل علاقه مندان بسیاری زیادی دارد که تمامی کاربران می توانند به وسیله این نرم افزار به ساده ترین روش و با کمترین خطا، حتی راحت تر از برنامه نویسی مشابه ویندوزی، برنامه نویسی سیستم های آی او اس و مخصوصا مک را انجام دهند. اِکس کُد ۱۰ شامل تمامی چیزهایی است که شما برای ایجاد برنامه های شگفت انگیز در محیط مک به آن‌ها نیاز دارید. در حال حاضر اِکس کُد و ابزار‌ها همه باهم در محیط تاریک و جدید بر روی مک بسیار عالی عمل می‌کنند. همچنین محیط ویرایشگر منبع به شما این امکان را می‌دهد که سریعاً تغییرات انجام شده بر روی کد خود را مشاهده کنید تا به سرعت بتوانید تغییرات مرتبط به کد‌های خود را دریافت نمایید. همچنین امکان ساخت ابزار‌های اختصاصی جهت تجزیه تحلیل داده‌ها در این نسخه فراهم شده است. سوئیفت نرم افزارها را با سرعت بسیار زیادی کامپایل می‌کند، به شما اجازه می‌دهد با سرعت بسیار بالایی برنامه های خود را ارائه دهید و به طور کلی این بسته از محیط توسعه بسیار سریعتر، امن‌تر و راحت‌تر از قبل شده است.   کد نوشته شده شما در اکس‌کد بسیار خیره کننده خواهد بود، چرا که محیط تاریک جدید در این نسخه بسیار جذاب و کدهای شما را به عنوان یک ستاره به نمایش می‌گذارد. تمامی بخش‌های محیط جدید به صورت تاریک باز طراحی شده است که شامل آیکون‌ها ، رنگ‌ها، رابط‌ها و تمامی جزئیات با دقت بسیار بالایی بهینه سازی شده اند.     اکس کُد در این نسخه برای شما قدرت بسیار زیادی در ابزار‌ها فراهم می‌کند تا شما بتوانید بهترین برنامه‌ها با محیط تاریک را برای پلتفرم macOS طراحی کنید. ابزار Interface Builder (به عنوان سازنده رابط) به شما این امکان را فراهم می‌سازد تا به راحتی و بسیار سریع بین محیط‌های تاریک و روشن، توسعه و پیش نمایش سوئیچ کنید. حتی شما می‌توانید در زمان دیباگینگ (اشکال زدائی) بین محیط‌های تاریک و روشن همراه بار رنگ‌های مختلف سوئیچ کنید این کار هیچ نیازی برای تنظیمات سیستمی ندارد. چه چیز‌هایی در اِکس کُد تازه هستند؟ به نظر می‌رسد که اکس کد ۱۰ در ترکیب حالت های تاریک در macOS Majave شگفت انگیز است و به شما اجازه می‌دهد تا به راحتی با آن سازگار شوید. نسخه بتا در Xcode ۱۰ شامل Swift 4.2 و SDK های بتا برای watchOS 5، iOS12، tvOS12 و  macOS Mojave می‌باشد. پشتیبانی از محیط تاریک برای توسعه برنامه‌های مک ظاهر تیره و جدید در سرتاسر محیط Xcode و ابزارها کاتالوگ‌های انواع رنگ‌های تیره و روشن برای سفارشی سازی رنگ‌ها و تصاویر رابط سازنده پیش نمایش تاریک و روشن که به شما اجازه می‌دهد بین این دو حالت در پیش نمایش سوئیچ کنید. اشکال زدائی برنامه های مک در حالت تاریک و روشن بدون تغییرات در سیستم اشکال زدائی کنترل منبع تغییرات در مخازن منبع و یا مخازج موجود در سرورهای آنلاین به صورت برجسته در درون ویرایشگر قابل مشاهده است. نمایش تغییرات ایجاد شده در کد شما تغییراتی که هنوز به مخازن اشتراکی مانند Github و غیره... منتقل نشده اند. تغییراتی که دیگران ایجاد کرده اند قابل مشاهده است. تعارضاتی که شما قبل از کامیت (Commit) باید آن‌ها را در نظر داشته باشید قابل مشاهده هستند. پشتیبانی از خدمات ارائه شده بر روی سرورهای گیت از طرف Atlassian Bitbucket به خوبی Gitlab و همچنین پشتیبانی از Github فراهم شده است. امکان پیشنهادی اکس کد برای تغییرات پایه مخازن شما به عنوان به روز رسانی به آخرین نسخه در صورتی که شما نیاز به کلید‌های SSH داشته باشید آن‌ها تولید و بر روی سرور ارائه دهنده‌ی سرویس شما آپلود (بارگذاری) خواهند شد. بهبود‌های ویرایشگر چندین نشانگر را در ویرایشگر کد خود قرار دهید تا تغییرات زیادی در یک بار انجام شود. نوار کشویی کد که اکنون به شما اجازه می‌دهد تا هر بلوک کد را که توسط پرانتز محصور شده است پنهان کنید. در صورتی که بیش از حد اسکرول شده باشد باعث می‌شود که آخرین خطوط کد را در وسط صفحه تنظیم کنید. زبان‌ها پشتیبانی از نسخه ۴.۲ سوئیفت فراهم شده است کتابخانه‌ی libstdc++ در این نسخه به طور کلی حذف شده است و این بدین معنی است پروژه‌های C++ به کتابخانه‌ی استاندارد libc++ مهاجرت خواهند کرد.   جهت دریافت نسخه‌ی بتا این لینک و همچنین دریافت نسخه‌ی پایدار ۹.۴ در این بخش مراجعه کنید. و بسیاری از تغییرات دیگر که در این سند می‌توانید آن‌ها را مشاهده کنید.

کامبیز اسدزاده

کامبیز اسدزاده

 

برخی جزئیات چیپست Z390 از سوی اینتل اعلام شد

اینتل اعلام کرده است که مادربورد‌های Z390 به زودی عرضه می‌شوند و سعی شده در آن‌ها تمامی مشکلات سری Z370 رفع شود. کمپانی اینتل اواخر هفته‌ی گذشته گزارشی منتشر کرده است که نشان می‌دهد مادربورد‌های مجهز به چیپست Z390 به زودی در دسترس همه قرار خواهند گرفت و این محصولات جدید علاوه بر اینکه در جایگاه سیستم‌های رده بالا طبقه بندی می‌شوند، دیگر برخی ایرادات و مشکلات عجیب سری ۳۰۰ چیپست‌های اینتل را به همراه نخواهند داشت. زمانی که اینتل در ماه اوکتبر (آبان) از پردازنده‌های نسل هشتم خود رونمایی کرد، تنها یک نمونه مادربورد هماهنگ و پشتیبان کننده از آن در دسترس وجود داشت و آن هم مادربورد‌های گران‌ قیمت سری Z370 بود. این مادربورد‌ها در کنار پردازند‌های قدرتمندی همچون Core i7-8700K می‌توانستند پیروز میدان باشند اما در صورتی که شما قصد تهیه یک پردازنده‌ Core i5 و Core i3 را داشتید، خرید این چنین مادربورد گران‌قیمی به هیچ وجه قابل قبول نبود. در ماه آپریل (فروردین) بالاخره اینتل از یک خط تولید کامل از محصولات سری ۳۰۰ رونمایی کرد اما مادربورد‌های H370، B360 و H310 دارای ویژگی‌هایی بودند که در پرچمدار این سری یعنی Z370 وجود نداشت. به عنوان مثال پشتیبانی از پورت‌های USB 3.1 Gen 2 با سرعت 10Gbps و وجود سخت‌افزار ارائه دهنده‌ی ارتباط وایرلس از مواردی بودند که در Z370 به دلیل عرضه‌ی زودهنگام وجود نداشت و باعث می‌شد خرید مادربورد‌های رده میانی و ارزان قیمت از هر لحاظ عاقلانه‌تر محسوب شود.   حال Intel با عرضه‌ی Z390 اعلام کرده است که در این محصول تمامی ویژگی‌های اساسی Z370 به همراه ویژگی‌های عرضه‌ شده در مادربورد‌های ارزان‌تر یکجا عرضه خواهد شد. طبق گفته‌های این شرکت مادربورد‌های Z390 دارای حداقل ۶ پورت USB 3.1 Gen2 خواهند بود، همچنین این مادربورد‌های می‌توانند به صورت پیش‌فرض از سوی تولید کنندگان مادربورد به سخت‌افزار ارائه دهنده‌ی اتصال وایرلس 802.11ac مجهز شوند. علاوه‌ بر این موارد، مادربورد‌های Z390 همانند مادربورد‌های Z370 از اورکلاک پردازنده‌های سری K پشتیبانی می‌کنند. همچنین اعلام شده که این سری از مادربورد‌ها قادر به پشتیبانی از حافظه‌های Intel Optane نیز هستند.    نکته‌ی جالب این است که احتمالا در نمایشگاه PC-centric که اوایل ماه ژوئن (تیر) برگزار خواهد شد، اینتل جزئیات بیشتری در رابطه با چیپست‌های Z390 منتشر کند، دقیقا زمانی که طبق اعلام خبرگزاری Bluechip شرکت AMD اعلام کرده است که از مادربورد‌های X490 برای پردازنده‌های نسل دوم Ryzen رونمای خواهد کرد.

کامبیز اسدزاده

کامبیز اسدزاده

 

رو نمایی ناسا از دفتر مسافرتی فراخورشیدی خود

ناسا به تازگی یک وب سایت تعاملی جدید راه اندازی کرده که کاربران را به دنیایی خارج از کهکشان راه شیری منتقل می‌کند. با بهره گیری از سایت دفتر مسافرتی فراخورشیدی قادر خواهید بود به یکی از دورترین زیستگاه‌های قابل سکونت کشف شده نظیر  Trappist-1d یا Kepler-16b سفر کنید و از مشاهده‌ی مناظر دیدنی آن‌ لذت ببرید. این ابزار در واقع یک تور مسافرتی است که کاربران را به چندین سال نوری آن طرف‌تر برده و یک منظره‌ی ۳۶۰ از یک سیاره‌ی فراخورشیدی در برابر دیدگانشان به نمایش می‌گذارد. منظره‌ای که شامل یک آسمان سرخ رنگ، سخره‌ها و کوه‌های سر به فلک کشیده و دو عدد خورشیدی می‌شود که این دو خورشید برای هر شيئی در این سیاره، دو سایه فراهم آورده‌اند.   با اینکه هنوز هیچ فضاپیمایی  به این سیاره‌ها حتی نزدیک هم نشده تا انسان‌ها بتوانند نگاهی به سطح آنها بیندازند اما دیتای به دست آمده از تلسکوپ‌های فضایی کپلر و هابل به دانشمندان این قابلیت را داده که به یک درک اولیه از شرایط موجود در این دنیا‌های بیگانه دست یابند و بتوانند مطالبی راجع به آنها بنویسند. حال هنرمندان و گرافیست‌‌های ناسا موفق شده‌اند با استفاده از این مطالب و اطلاعات به دست آمده، تصاویر گرافیکی خارق العاده طراحی کنند و تجربه‌ای جالب برای کاربران این سایت فراهم آورند.   «مارتین استیل» دانشمند برنامه‌نویس جدیدترین ماهواره‌ی عکسبرداری یا تلسکوپ فضایی TESS درباره‌ی این سایت می‌گوید:  

کامبیز اسدزاده

کامبیز اسدزاده

 

سونی در رویداد TGS 2018 اسپانسر سازندگان مستقل می‌شود

طبق جدیدترین اخبار بازی، انجمن سرگرمی‌های ژاپن در جدیدترین نشست خبری خود گفته است که در نمایشگاه توکیو گیم شو سال جاری نیز برنامه‌هایی برای توسعه‌دهندگان مستقل در نظر گرفته شده است. در نمایشگاه سال جاری نیز بار دیگر شاهد رویداد Sense of Wonder Night هستیم؛ رویدادی که در جریان آن سازنده‌های بازی‌های مستقل در محل مخصوص به خود، بازی‌هایشان را در معرض نمایش قرار می‌دهند. همچنین در ادامه مشخص شده است که کمپانی سونی، بار دیگر اسپانسر آن دسته از توسعه‌دهندگان بازی‌های مستقلی خواهد شد که در محل محصوص بازی‌های مستقل، بازی‌های خود را به نمایش گذاشته‌اند. در ادامه مشخص شده است که سونی تنها در هزینه‌های Sense of Wonder Night مشارکت نخواهد داشت و هزینه غرفه آن دسته از توسعه‌دهندگان بازی‌های مستقلی را که بازی و ارائه‌شان توسط دفتر مدیریت TGS تایید شده است پرداخت می‌کند.   این نوع اسپانسر بودن سونی از سال ۲۰۱۵ آغاز شد و همچنان ادامه داده شده است و می‌توان از آن به‌عنوان یک قوت قلب برای سازنده‌های مستقل یاد کرد. نمایشگاه Tokyo Game Show 2018 در تاریخ ۲۹ شهریورماه (۲۰ سپتامبر) آغاز خواهد شد و تا تاریخ یک مهر (۲۳ سپتامبر) ادامه خواهد داشت.
 

اینتل تراشه جدیدی با هسته‌های زئون و FPGA یکپارچه معرفی کرد

اینتل مدتی پیش شرکت الترا فعال در زمینه‌ی FPGA را خریداری و سرمایه‌گذاری فراوانی روی این شرکت و فناوری‌های آن کرد. حالا به مرور نتایج این سرمایه‌گذاری در حال نمایان شدن است. اینتل از تراشه‌ای جدید در بستر قابل توسعه‌ی زئون رونمایی کرده که علاوه بر دارا بودن پردازنده سطح سرور اسکای‌لیک با هسته‌های AVX-512 و توپولوژی جدید مِش، میزبان یک واحد جدید نیز هست. از مدت‌ها پیش شایعاتی مبنی بر برنامه‌ریزی اینتل برای قرار دادن یک واحد FPGA الترا به صورت یکپارچه با پردازنده‌های زئون به گوش رسیده بود، و حالا غول دنیای تراشه‌ها این کار را انجام داده است. این شرکت از تراشه Xeon Gold 6138P رونمایی کرده که یک اف‌پی‌جی‌ای Aria 10 GX 1150 الترا در درون خود دارد.   رونمایی اینتل از نسل جدید پردازنده زئون سال گذشته در نمایشگاه سوپرکامپیوتینگ ۲۰۱۶، اینتل یک تراشه زئون با پردازنده برادول معرفی کرد که در درون خود یک اف‌پی‌جی‌ای داشت، اما هیچ‌گونه جزییات بیشتری درباره آن ارائه نکرد و حتی تراشه را در معرض دید نیز قرار نداد. امسال نیز در نمایشگاه MWC بار دیگر یک پردازنده مقیاس‌پذیر را معرفی کرد که درون خود میزبان یک FPGA بود، اما باز هم تراشه را به نمایش نگذاشت و حتی به مراجعین اجازه باز کردن جعبه‌ای که تراشه را درون آن قرار داد بود را نداد. اینتل می‌گفت این تراشه برای به‌کارگیری در پردازش‌هایی مانند آن‌چه در شبکه مانند نسل پنجم ارتباطات همراه (5G) مورد نیاز است طراحی شده است اما به سوال‌هایی که از نوع هسته‌های پردازشی به کار رفته و مشخصات FPGA درون این تراشه پرسیده می‌شد، پاسخی نمی‌داد. به همین دلیل خبری از این تراشه مخابره نشد و چندان به این موضوع پرداخته نشد. دو ماه بعد ار آن از نمایشگاه PC-Watch خبر می‌رسد که اینتل از تراشه Xeon Gold 6138P رونمایی و تولید انبوه آن را نیز آغاز کرده است. برخی از مشتریان منتخب نیز پیش‌تر نمونه‌های اولیه این تراشه را دریافت کرده‌اند. در مراسم رونمایی اعلام شده که شرکت فوجیستو به عنوان یکی از همکاران اینتل برای ساخت سیسمتی مبتنی بر این تراشه برنامه‌ریزی کرده است.   اینتل پردازنده‌ی زئون را با پهنای باند 160 گیگابیت در هر سوکت (هنوز مشخص نیست این ارتباط دو جهته است یا خیر) و با استفاده از یک اتصال مجزا از حافظه پنهان (Catch) به FPGA متصل می‌کند. از آنجا که می‌دانیم اینتل از فناوری OmniPath Fabric برای اتصال پردازنده و FPGA استفاده کرده، این اتصال احتمالا پروتکلی متفاوت را روی رابط PCIe x16 که برای اجزای درون تراشه‌ای در نظر گرفته شده است، اجرا می‌کند. به این ترتیب می‌تواند از مزایای اتصال فوق العاده مسیر (UPI) اینتل نیز برای انطباق حافظه پنهان و دسترسی به داده‌ها در سراسر پلتفرم بهره گیرد. این موضوع به معنای آن است که اگر یکی از ارتباط‌های UPI از پردازنده برای FPGA استفاده کند تراشه می‌تواند تنظیمات Xeon و FPGA را به بهترین وجه به سوکت دوگانه کاهش دهد. اما اینتل برای تایید این نکات اطلاعاتی را در مورد تراشه جدید ارائه نداد. ما می‌توانیم وجود یک اسلایدر قدیمی Intel تأیید کنیم که پلتفرم باید از یک رابط سریال با سرعت بالا (HSSI) برای اتصال استفاده کند؛ این اسلاید همچنین بیان می‌کند که پردازنده‌های جدید دارای مشخصات قدرتمند مختلف به درگاه‌های استاندارد Skylake-SP هستند و به همین ترتیب Xeon Gold 6138P احتمالا بعید است که در پردازنده‌های سیستم های فعلی قرار گیرد.   اینتل برای این رونمایی یک طراحی مرجع سوییچینگ مجازی ساخته است که در آن از اف‌پی‌جی‌ای برای زیرساخت سوییچنگ اطلاعات کاربر (dataplane) استفاده کرده که با ماشین مجازی روی پردازنده کار می‌کند و پردازش‌های مورد نیاز را انجام می‌دهد. اینتل مدعی‌ است این طراحی مرجع ۳/۲ برابر بازده محاسباتی بیشتر و تاخیر ۵۰ درصدی را نسبت به مدل‌های پیاده شده بر روی پردازنده (بدون وجود اف‌پی‌جی‌ای) با استفاده از پلتفرم Open Virtual Switch دارا است. نتایج مورد ادعا از طریق روش DPDK اندازه‌گیری شده است.   سیستمی که مورد آزمایش قرار گرفته یک سرور 2P با دو تراشه Xeon Gold 6138P با اف‌پی‌جی‌ای یکپارچه‌ی Arria 10 GX 1150 و ۱۲ حافظه رم ۱۶ گیگابایتی DDR4 و همچنین یک کارت شبکه آلاسکا 100G مارول بوده است. با این تفاوت که این سیستم همچنین دارای یک اسلات PCIe 3.0 x10 در کنار یک اسلات PCIe 3.0 x8 است. که به نظر می‌رسد اعدادی غیرعادی هستند.   همچنین در این رونمایی اعلام شده که اینتل قصد دارد راه‌کاری مشابه برای استفاده از FPGAهای جداگانه (غیریکپارچه با پردازنده) و با ارتباطی سریع‌تر و یکپارچه ارائه دهد، که البته اطلاعات بیشتری درباره این ارتباط سریع ارائه نشده است. این راه‌کار قابلیت به کارگیری کدهای نوشته شده برای تراشه‌های دارای پردازنده و اف‌پی‌جی‌ای را خواهند داشت.
 

زبان فارسی به گوگل مپ اضافه شد

در آخرین به‌روزرسانی‌ گوگل، پشتیبانی از ۳۹ زبان دیگر از جمله زبان فارسی به گوگل مپ اضافه شد. در آخرین به‌روزرسانیگوگل مپ (Google map)، بیش از ۱.۲۵ میلیارد نفر دیگر می‌توانند به‌راحتی از این اپلیکیشن استفاده کنند. گوگل با اضافه کردن ۳۹ زبان دیگر به این اپلیکیشن، استفاده از آن را برای کاربران بیشتری راحت‌تر کرد. بر اساس آخرین اطلاعات گوگل، اکنون یک میلیارد نفر برای مسیریابی به گوگل مپ متکی هستند. شاید برای شما هم عجیب باشد که گوگل مپ در سال ۲۰۰۴ تنها با زبان انگلیسی معرفی شد. گوگل مپ در سیستم‌عامل iOS تا نسخه iOS 6 به‌صورت پیش‌فرض قرار داشت و بعد از آن با Apple Maps جایگزین شد. زبان‌های اضافه‌شده در تمامی نسخه‌های گوگل مپ از جمله اندروید، iOS، مک، ویندوز و نسخه وب قابل‌ دسترسی است. جدای از زبان فارسی اضافه‌شده که برای ما حائز اهمیت خواهد بود، از دیگر زبان‌ها می‌توان به آذربایجانی، ارمنی، اندونزیایی، ایسلندی، رومانیایی، ترکی و ازبکی اشاره کرد.
 

معرفی کتاب با «سرنوشت خرید» نخستین تاثیر

نویسنده: جیم لسینسکی مترجم: نگین احقربازرگان ناشر: ترانه پدرام تعداد صفحه: ۱۲۸ صفحه قطع: رقعی بها: ۲۵‌هزار تومان
  بیشتر ما از اهمیت لحظه بحرانی حضور خریدار در فروشگاه در کنار قفسه‌های محصول مطلع هستیم. نویسنده کتاب، به این لحظه «لحظه سرنوشت» می‌گوید. او معتقد است که مصرف‌کنندگان امروزی قبل از آن‌که به فروشگاه بروند، اطلاعات بسیاری درباره محصول دارند و این اطلاعات را از منابع آنلاین مختلف به دست می‌آورند که به آن "ZMOT" یا «لحظه صفر» گفته می‌شود. این کتاب بیشتر به‌صورت تئوری و در قالب آمار، اطلاعاتی درباره "ZMOT" به شما می‌دهد و راهنمای مناسب برای همه کسانی است که به لحظه‌های پیش از خرید علاقه‌مندند. لحظه‌هایی که نخستین تاثیر را بر خریدار می‌گذارد و فرایند خرید را شروع می‌کند. اگر مایلید در کشف اطلاعات به خریداران کمک کنید و بفهمید آن‌ها دقیقا به دنبال چه هستند، این کتاب مسیر صحیح را به شما نشان می‌دهد.
  در صفحه ۸۹ کتاب می‌خوانیم: «گوگل مطالعه‌ای درباره آگهی‌های خریدنی انجام داد و نتایج را تحلیل کرد. هدف از این پژوهش، بررسی این مساله بود که اگر تبلیغ‌کننده‌ها آگهی‌های خریدنی را متوقف کنند، چه اتفاقی می‌افتد. برای پاسخ به این سوال، هزاران کمپین متوقف را بررسی کردیم که ببینیم آیا این تبلیغ‌کننده‌ها می‌توانند کلیک‌هایی که از آگهی‌های خریدنی به دست می‌آورند، از نتایج سرچ طبیعی به دست آورند. در بیشتر مواقع نمی‌توانستند. به‌طور خلاصه با "ZMOT" این قدرت را دارید که پیش از حضور مشتری در فروشگاه، او را تحت تاثیر قرار دهید. «سرنوشت خرید» در  هفت فصل با عنوان‌های «تغییر قانون‌ها»، «مدل فکری جدید»، «همه‌چیز درباره "ZMOT" ما در گوگل»، «امتیاز‌ها و نقد‌ها، تبلیغات دهان‌به‌دهان»، «تفکر به‌موقع، نه چاره‌اندیشی»، «چه‌طور در "ZMOT" پیروز شویم؟»، «لحظه سرنوشت بعدی چیست؟» و پیوست و بخشی با عنوان «و در پایان...» تدوین شده است.
 

بهترین ویرایشگر برنامه نویسی برای ویندوز و مک در سال ۲۰۱۸

بهترین ویرایشگر کدنویسی، بهترین اسلحه مخفی یک برنامه‌نویس است. مثل یک چاقوی سوئیسی که می‌تواند بهترین دوست یک سرباز تنها، در عملیات نفوذ باشد. دوست شما کیست؟ بهترین ویرایشگر کد، بهترین دوست برنامه‌نویس است. پیشرفت روزافزون صنعت تکنولوژی و سرعت تحولات آن در سال‌های اخیر شگفتی‌های زیادی را خلق کرده و با رشد هوش مصنوعی و عرضه‌ی انواع دستگاه‌‌های هوشمند بسیاری از رؤیاهای انسان تحقق‌یافته است. برای ساختن و پرداختن به بسیاری از ایده‌ها دیگر نیاز به فعالیت‌های مشقت‌بار و پیچیده نیست. با تهیه مقداری لوازم مکانیکی و بردهای دیجیتال و کمی سررشته از مکانیک و الکترونیک هرکسی در خانه می‌تواند ابداعات جالبی در زندگی خود داشته باشد؛ اما جان‌مایه تحقق این تخیلات در زندگی روزمره ما، دانشی به نام برنامه‌نویسی است. حالا هرکسی می‌تواند با صرف کمی وقت و تدبیر برنامه‌هایی هرچند ساده طراحی کند. آن‌ها را با قطعات و بردهای آماده همراه کند و به این قطعات جان ببخشد. هرچند اگر بخواهد می‌تواند در نوشتن این کدها چنان تبحر پیدا کند که آن را تبدیل به یک شغل دائم و پردرآمد کند. سرعت پیشرفت تکنولوژی برای برنامه نویسان حرفه‌ای هم می‌طلبد که با سرعت و دقت بیشتری کدهای جادویی خود را خلق کنند تا در بازار پررقابت فناوری برگ برنده‌ای داشته باشند. اهمیت این موضوع باعث رونق بسیار، در بازار و صنعت طراحی زبان‌های سطح بالا شده است.   نقطه مشترک این علاقه‌مندان و آن فداییان برنامه‌نویسی، ابزاری است به نام ادیتور یا ویرایشگر‌ متن. ادیتور ها هستند که باقدرت و سرعت و هوشمندی خود دستورات و ایده‌های برنامه نویسان را تبدیل به کدهای تمیز و مرتبی می‌کنند که کارآمد و باارزش هستند. آن‌ها مبتدیان را راهنمایی می‌کنند و حرفه‌ای‌ها را یاری می‌بخشند که با اطمینان و سرعت بیشتری کدهای خود را وارد کنند.   ادیتور ها در همان گام اول با همه برنامه‌نویس‌ها همراه می‌شوند ولی تنها برنامه نویسان حرفه‌ای هستند که می‌دانند بودن یا نبودن یک سمبل مانند. در انتهای یک کد چقدر مسئله بزرگی است. حال گشتن و نیافتن این مسئله، در میان هزاران خط کد می‌تواند عمر کیبورد و مانیتور را زیر مشت و لگد برنامه‌نویس، کوتاه کند. ادیتور های قدرتمند همچون خدمتگزارانی مهربان در کنار این مردان خشمگین هستند تا به آن‌ها کمک کنند هرگز دچار چنین مشکلاتی نشوند، ایده‌ای ناب خود را بیرون بریزند شکوه زندگی یک برنامه‌نویس را تجربه کنند.   زبان برنامه‌نویسی و زبان نشانه‌گذاری زبان‌های برنامه‌نویسی آن دسته از زبان‌هایی هستند که برنامه نویسان به‌وسیله آن‌ها الگوریتم‌های خود را برای ماشین قابل‌فهم می‌کنند. زبان‌های مطرح مانند جاوا یا زبان سی پلاس پلاس از این دسته هستند. زبان‌های نشانه‌گذاری Markup Language آن دسته از زبان‌های هستند که متن و نشانه‌های معنی‌دار را باهم ترکیب می‌کنند و در آن‌ها الگوریتمی دیده نمی‌شود، مانند زبان ‌HTML یا XML. ویرایشگر متن یا ادیتور کد نرم‌افزارهایی هستند که برای ویراستاری متون و کدهای زبان‌های برنامه‌نویسی با توجه به شیوه‌نامه یا نحو زبان (Syntax) استفاده می‌شوند؛ لیست بهترین ویرایشگر برنامه‌نویسی در ویندوز و مک در مورد آن‌ها است. از آن‌سو نرم‌افزارهای محیط یکپارچه توسعه نرم‌افزار (Integrated Development Environment) از قدرت و توانمندی بیشتری برخوردار است. از امکانات مهم IDE می‌توان به ویرایشگری کدها، کامپایل کردن و دیباگ کردن برنامه‌ها اشاره کرد. وجه دیگر این نوع نرم‌افزارها رابط کاربری گرافیکی، برای سهولت در برنامه‌نویسی است. ویژوال استودیو(Microsoft Visual Studio) و اکلیپس (Eclipse) از دسته IDE مطرح هستند. همیشه برای برنامه‌نویسی نیازی به استفاده‌ از IDE نیست. این کار را می‌توان با استفاده‌ از نرم‌افزارهای ساده؛ ولی قدرتمند مثل ویرایشگر کد انجام داد، همانند نوشتن برنامه‌ای برای یک برد اپن‌سورس مثل آردوینو (Arduino). همین نوع ویرایشگر کدها که در لیست بهترین ویرایشگر٬ها معرفی می‌شوند در طراحی خود این توانایی را دارند که با اضافه کردن پلاگین‌ها، مرزها را بشکنند و به برنامه‌های IDE نزدیک شوند. ویرایشگرهای کد به دلیل راحتی نرم‌افزار در نصب، اجرای روان، انعطاف‌پذیری، توانایی در ارتقاء و همچنین گستره پشتیبانی از زبان‌های مطرح در یک ادیتور متن سبک و کم‌حجم، امروزه بسیار موردتوجه هستند. همیشه برای برنامه‌نویسی نیازی به استفاده‌ از IDE نیست. این کار را می‌توان با استفاده‌ از نرم‌افزارهای ساده؛ ولی قدرتمند مثل ویرایشگر کد انجام داد، همانند نوشتن برنامه‌ای برای یک برد اپن‌سورس مثل آردوینو (Arduino). همین نوع ویرایشگر کدها که در لیست بهترین ویرایشگر٬ها معرفی می‌شوند در طراحی خود این توانایی را دارند که با اضافه کردن پلاگین‌ها، مرزها را بشکنند و به برنامه‌های IDE نزدیک شوند. ویرایشگرهای کد به دلیل راحتی نرم‌افزار در نصب، اجرای روان، انعطاف‌پذیری، توانایی در ارتقاء و همچنین گستره پشتیبانی از زبان‌های مطرح در یک ادیتور متن سبک و کم‌حجم، امروزه بسیار موردتوجه هستند.   لیست بهترین ویرایشگر برنامه‌نویسی برای مک و ویندوز شناخت ادیتورها و امکانات آن‌ها، تجزیه‌ و تحلیل، سرعت، هوشمندی و انعطاف‌پذیری آن‌ها به شما کمک می‌کند، همانند یک تکاور زبده برای هر عملیات برنامه‌نویسی حتی بدون وجود IDE آماده ‌باشید. سبک بودن،‌ قابلیت نصب روی انواع سیستم‌عامل‌ها، حتی پرتابل بودن این ادیتورها از مزیت‌های تاکتیکی است که هر برنامه‌نویس حرفه‌ای به اهمیت آن اعتراف دارد و جویای حال و احوال لیست بهترین ویرایشگر برنامه‌نویسی نیز خواهد بود.   ویرایشگر نوت‌پد‌ پلاس پلاس(Notepad plus plus) نوت پد پلاس پلاس قدرتمند و مملو از امکانات ریزودرشت برای سرعت بخشیدن به کارها با دقت بالاست. این ادیتور متن و ویرایشگر کد برنامه‌نویسی یک پسرعمو هم در ویندوز دارد. هرچند که با حضور ++Notepad در ویندوز کمتر کسی پای مجلس نوت‌پد قدیمی می‌نشیند. نوت‌پد پلاس پلاس رایگان و اپن‌سورس است. علاوه بر آن رابط کاربری خوبی هم دارد. یکی از جذاب‌ترین بخش‌های این ادیتور، خاصیت تب ویرایشی (Tabbed Editing) است. شما می‌توانید هم‌زمان و به‌راحتی با چند فایل مختلف در یک پنجره کار کنید. npp در ویرایش متون HTML بیشتر شهره است؛ ولی با کد نویسی در زبان‌های دیگر، هیچ‌گاه پشیمان نخواهید شد. نوت پد به‌صورت استاندارد کدهای شما در ‌ زبان‌های مختلف رنگی می‌کند تا بهتر و راحت‌تر آن‌ها را تشخیص دهید. اگر این کار شمارا راضی نمی‌کند، قابلیت سفارشی کردن هم در این ادیتور مهیا است. npp در حین کدنویسی، پا به پای شما با کدها همراه‌ است. علاوه بر اینکه به شما پیشنهادی برای تایپ سریع می‌دهد به‌محض واردکردن کدهای اشتباه براساس شیوه کدنویسی با برجسته کردن اشتباهات، چیزی کم نمی‌گذارد. نوت‌پد در هنگام نصب چند پلاگین کاربردی و مفید با خود به همراه دارد و البته می‌تواند از مخزن پلاگین در ادیتور به پلاگین‌های جدید نیز دسترسی داشته باشید. npp حقیقتا شایسته چنین جایگاهی، در لیست بهترین ویرایشگر برنامه‌نویسی سال ۲۰۱۸ است. ویژگی‌های برجسته: Notepad plus plus برای ویندوز (Windows) ساخته‌شده است؛ اما علاقه‌مندان به آن می‌توانند در مک‌اواس ۱۰ (Mac OS X) و لینوکس (Linux) و یونیکس (Unix) هم آن را تجربه کنند. نوت‌پد پلاس پلاس نرم‌افزاری سبک است و به‌آسانی نصب می‌شود. پلاگین‌های زیادی را می‌شود به آن اضافه کرد و با ماکرونویسی می‌توانید از امکانات موجود هم فراتر بروید. از قابلیت Tabbed Editing پشتیبانی می‌کند. قابلیت ساخت بوک‌مارک Bookmark برای نشانه‌گذاری دارد. با دراگ و دراپ کردن فایل‌ها به محیط نرم‌افزار می‌توانید آن‌ها را باز کنید. پشتیبانی از قابلیت فول‌اسکرین هوشمندی در تشخیص صحت شیوه کدنویسی قابلیت یکپارچه‌سازی مداوم (Compiler Integration) در پروژه که با هر تغییر کد پروژه دوباره ‌Build می‌شود تا همه کدهای قبلی و جدید باهم هماهنگ باشند. پشتیبانی از قابلیت FTP توانایی چک کردن لغات و مقایسه فایل‌ها توانایی Code folding که باعث می‌شود کدها در بلوک‌هایی به‌صورت فشرده قرار بگیرند تا سرعت و مدیریت کدها بهتر شود. تنظیم منوی برنامه به زبان فارسی رایگان و متن‌باز است نکاتی برای ارتقاء و بهبود: ویرایش فایل از طریق HTTP, SSH و WebDav به‌طور پیش‌فرض پشتیبانی نمی‌شود. برای نصب روی مک‌اواس ۱۰ نیاز به نرم‌افزار wine دارید که البته برای اجرای دیگر نرم‌افزراهای ویندوز روی مک و لینوکس نیز لازم است. نتیجه: تجربه این ویرایشگر در زبان‌های PHP،HTML،CSS و JavaScript فوق‌العاده جذاب است. کمتر ادیتور سورس کدی در لیست بهترین ویرایشگر برنامه‌نویسی، دقت نوت‌پد++ در تذکر به اشتباهات کدنویسی را دارد و در بازه‌های زمانی کوتاه و به‌سرعت در حال ارتقاء امکانات ادیتوری خود است.   ویرایشگر سابلایم تکست (Sublime Text) سابلایم تکست ادیتور دیگری از دسته سبک وزن‌ها باقدرت ویرایش بالا در لیست بهترین ویرایشگر برنامه‌نویسی است. این ادیتور با سی++ و پایتون نوشته‌شده است. انعطاف‌پذیری بسیار خوبی در سفارشی کردن دارد و به برنامه‌نویس کمک می‌کند با سرعت و کارایی بالا کدنویسی کند. در سابلایم تکست با متدهای جالبی از ویرایش برمی‌خورید که در کمتر نرم‌افزار ویرایشی دیگر دیده می‌شود. اسنیپت‌ها (Snippets) بخش جذاب دیگری از تجربه کار در سابلایم تکست است. به‌عبارت‌دیگر سابلایم تکست به برنامه‌نویس این قابلیت را می‌دهد هر جا الگویی را دید حتی در ویرایش، از سابلایم بتواند برای اجرای سریع آن استفاده کند. این کار به قوی شدن فکر برنامه‌نویس کمک خوبی می‌کند و درعین‌حال باعث می‌شود مهاجرت به نرم‌افزارهای دیگر هم سخت شود. جعبه‌فرمان‌های (Command Palette) سابلایم، مثل یک خدمتکار مفید در اختیار شماست تا با کیبورد اکثر کارها را در Sublime Text مدیریت کنید. کار با کیبورد هم یکی از مهم‌ترین مهارت‌های یک برنامه‌نویس است. سابلایم تکست از نظر گرافیک صفحه کاربری و تم زمینه سیاه که محبوب برنامه نویسان است چیزی کم نمی‌گذارد و در لیست بهترین ویرایشگر برنامه‌نویسی سال ۲۰۱۸ جایگاهی کمترین از این، برای آن منصفانه نیست. ویژگی‌های برجسته: قابلیت ویرایش هوشمند هم‌زمان چند خط قابل‌استفاده در سیستم‌عامل‌های  Windows،  macOS،  Linux قابلیت چند سکویی قابلیت ارائه سریع لیست فایل موجود در یک فولدر و ورود به آن رابط کاربری محبوب انعطاف‌پذیری و سفارشی شدن بالا با نصب پلاگین توانایی پشتیبانی از فریمورک OpenFL و زبان برنامه‌نویسی  Haxe حمایت از توابع وردپرس تشخیص قدرتمند خطاهای زبان برنامه‌نویسی و برجسته کردن آن‌ها با نصب بسته مخصوص هر زبان نکاتی برای ارتقاء و بهبود: حمایت کم از زبان‌های راست‌نویس حمایت کم در لینوکس رایگان فقط در حالت Trial تأکید شدید برای کار با کیبورد به مذاق همه شیرین نیست نتیجه: این ویرایشگر اعتیادآور است. این ویرایشگر یکی از بهترین‌ها برای زبان HTML و PHP است. هرچند ویرایشگرهای دیگر هم در این زمینه خوب کار می‌کنند؛ ولی سابلایم با خلاقیت‌هایش به  برنامه‌نویس در کدنویسی سمت کلاینت و سرور طعم دیگری دارد.   ویرایشگر اتم (Atom) اتم یک ویرایشگر متن ساده و راحت است. ازنظر ظاهری شبیه سابلایم تکست است ولی اغلب برنامه نویسان با آن بیشتر اخت می‌شوند و ارتباط بهتری برقرار می‌کنند. برای نصب قالب هم انتخاب‌های زیادی برای Atom وجود دارد. این ویرایشگر که با node.js طراحی‌شده چند سکویی و اپن‌سورس است. قابلیت ویژه اتم توانایی هک هسته آن توسط کاربران برای کارایی بیشتراست. اتم با بخش مدیریت پکیج خود به‌راحتی می‌تواند فراتر از ویرایشگر متن عمل کند. Atom توسط گیت‌هاب توسعه‌یافته است. این ‌یک مزیت عمده است چراکه گیت‌هاب باهدف افزایش کارایی و کارآمدی توسعه‌دهندگان خلق‌شده است و رزومه موفق آن نیازی به تائید ندارد. اتم در اتصال به گیت‌هاب نیز به‌خوبی عمل می‌کند. ویرایشگر سورس کد اتم در مجموعه ابزارهای خود یک جستجوگر فازی جذاب هم دارد که شیوه کارش ترکیب دو متد جستجوگر کلمات و غلط‌گیر املایی است، از همین رو به جستجوگر فازی معروف شده است. ویژگی‌های برجسته: سادگی و جذابیت در طراحی  رابط کاربری پشتیبانی از جعبه‌فرمان همانند سابلایم‌ تکست ابزارهای ویژه برای توسعه مدیریت مجتمع برای پشتیبانی از پلاگین‌ها شیوه سفارشی‌سازی ساده و سهل در رابط کاربری جامعه فعال پشتیبانی در گیت‌هاب برای رفع مشکلات قابلیت چند سکویی تشخیص شیوه کدنویسی زبان‌های برنامه‌نویس مختلف رایگان و متن‌باز قابلیت جستجوی فازی نکاتی برای ارتقاء و بهبود: در مقایسه با دیگر ویرایشگرهای متن کند است مدیریت سخت فایل‌های بزرگ  نتیجه: اتم توسط توسعه‌دهنده‌ها برای توسعه‌دهنده‌ها ساخته‌شده است. وجود یک جامعه خوب و فعال که به پشتیبانی از این ویرایشگر مشغول هستند، یک مزیت استراتژیک بسیار خوب برای هر نرم‌افزاری است. این علاقه و تلاش به علت قابلیت اپن‌سورس عمیق و کامل این نرم‌افزار است که باعث شده در میان دیگر ویرایشگرها، درعین‌حال سادگی در لیست بهترین ویرایشگر برنامه‌نویسی گردوخاکی به پا کند. چنانکه نام اتم به٬عنوان رقیبی تازه‌نفس، برای رقابت با IDE ها مطرح است. پس با اتم هرروز می‌توانید منتظر شنیدن خبرهای خوب و جالبی در مورد Atom و ابزارهای جدیدش باشید.    ویرایشگر کدا (Coda) ویرایشگر Coda با بانک کد و قالب  پروپیمان خود، سرعت و بهره‌وری را برای کاربران یک‌کاسه کرده است. کار اصلی این ویرایشگر طراحی سایت است. با مجموعه امکانات پیاده‌سازی شده در کدا حتی برای مبتدیان نیز برنامه‌نویسی می‌تواند مفرح و درعین‌حال مفید و کارآمد باشد. ادیتور کدا، از سال ۲۰۰۷ به‌صورت یک ویرایشگر متن ساده وارد عرصه برنامه‌نویسی شد و امروز یکی از بهترین نرم‌افزارهای تکامل‌یافته در سیستم‌عامل مک به شمار می‌رود. شاید بتوان گفت نمونه قابل‌مقایسه آن در ویندوز نرم‌افزار Adobe dreamweaver است. در بخش‌های مختلف طراحی وب، از طراحی ظاهری  وب‌سایت گرفته تا پیاده‌سازی کدهای سمت سرور و حتی پشتیبانی از قابلیت FTP همگی در ویرایشگر کدا به‌خوبی کار می‌کنند که نتیجه آن محبوبیت بالای این ادیتور در لیست بهترین ویرایشگر برنامه‌نویسی سال است. وجود کتابخانه‌های غنی در نرم‌افزار Coda کار با آن را راحت و آسان کرده است. ویرایشگر کدا در بخش طراحی رابط کاربری سایت تا جایی پیشرفته که به‌صورت دراگ و دراپ می‌توانید اجزای سایت خود را طراحی کنید. این باعث شده که طیف گسترده‌ای از برنامه نویسان از مبتدی تا حرفه‌ای این نرم‌افزار را به‌عنوان انتخاب اول خود به همراه داشته باشند. البته کدا مخصوص سیستم‌عامل مک است و از ورژن OS X 10.7.5 به بعد قابل‌استفاده در آن است. ویژگی‌های برجسته: استفاده از رابط کاربری انقلابی مک به نام Leopard تکمیل خودکار کدها ویرایش بلوکی و رنگ‌آمیزی کدها برحسب زبان قابلیت دراگ و دراپ برای ساخت اجزا وب‌سایت مدیریت FTP قابلیت سفارشی کردن رابط کاربری کتابخانه کد برای زبان‌های مختلف پشتیبانی از MySQL نکاتی برای ارتقاء و بهبود: عدم پشتیبانی در دیگر سیستم‌ها به‌جز مک کرش کردن هرازگاهی در ارتباطات شبکه قیمت بالا در مقایسه نسبت به دیگر ویرایشگرها تنها هفت روز رایگان است و باید خریداری شود نتیجه: کدا در طراحی وب، کامل و خوب است. هر آنچه شما ابزار و کد بخواهید در آن یکجا جمع شده است. با توجه به قیمت و ویژگی‌های که دارد در مک و لیست بهترین ویرایشگر برنامه‌نویسی جزو بهترین‌ها است. با نصب آن هیچ‌وقت هم از امکانات جدید و بروزرسانی های آن بی‌خبر نخواهید بود.   ویرایشگر تکست میت (TextMate) تکست میت یکی از دیگر ویرایشگرهای شهره در سیستم‌عامل مک است. البته بیشتر برای کار با برنامه‌نویسی در زبان روبی و فریمورک روبی آن ریلز استفاده می‌شود. در کل TextMate یک ویرایشگر عالی برای توسعه‌دهندگان زبان‌های مدرن برنامه‌نویسی است.     ویژگی‌های برجسته: قابلیت جستجو و جایگزینی  جعبه تاریخچه قابلیت انتخاب و تایپ  سریع ستونی در میان متون تکمیل خودکار کد پشتیبانی از بلوک‌بندی کدها مناسب برای پروژه‌های تیمی پشتیبانی بیش از ۵۰ زبان برنامه‌نویسی قابلیت رنگ‌آمیزی کدها پشتیبانی Xcode قابلیت کار با FTP رایگان قابلیت فرورفتگی خودکار در کدها  نکاتی برای ارتقاء و بهبود: رابط کاربری نه‌چندان دل‌چسب پشتیبانی نکردن از قابلیت فول‌اسکرین تنها در سیستم‌عامل مک کار می‌کند نتیجه: جای تعجب نیست که در میان ادیتورهای ارزان در مک، این ادیتور بهترین گزینه باشد. شاید برای کسانی که در ویندوز ویرایشگرهای رایگان و قدرتمندی را می‌شناسند عجیب باشد؛ ولی معمولاً در مکینتاش هرچقدر پول بدهید، آش می‌خورید. این را هم فراموش نکنیم که تکست میت از برندگان جایزه طراحی اپل در سال ۲۰۰۶ بوده است پس شایسته حضور در لیست بهترین ویرایشگر برنامه‌نویسی نیز هست.    ویرایشگر Text Wrangler ویرایشگر ساده اما قدرتمند Text Wrangler که از بهترین ابزارها برای مدیریت یونیکس و سرور است. رابط کاربری هوشمند و مجموعه‌ای از ابزارهای قدرتمند برای ویرایش و جستجو متن و کدها است. این ویرایشگر با Xcod همکاری می‌کند و با پشتیبانی از AppleScript جایگاه خوبی برای خود در لیست بهترین ویرایشگر برنامه‌نویسی دست‌وپا کرده است. فایل خروجی این نرم‌افزار را می‌توانید در استاندارد‌ یونی‌کد برای یونیکس و داس و مک تهیه کنید. ویژگی‌های برجسته: عملکرد مطلوب در ویرایش فایل‌های بزرگ قابلیت استفاده از ماکرو و نصب پلاگین پشتیبانی از قابلیت FTP پشتیبانی از SSH برای ویرایش فایل از راه دور مقایسه هم‌زمان دو سند رنگ‌آمیزی بر اساس شیوه کدنویسی زبان‌های برنامه‌نویسی بلوک کردن  و خاصیت تا شوندگی در کدها و متن‌ها کامل کردن خودکار کدها چک املا کلمات رایگان پشتیبانی از ۴۴ زبان برنامه‌نویسی از HTML, JavaScript, Perl, Python, VBScript تا  SQL نکاتی برای ارتقاء و بهبود:  عدم پشتیبانی از HTTP و WebDav ناسازگار با مکینتاش G4 تنها از زبان انگلیسی پشتیبانی‌ می‌کند عدم پشتیبانی برای ویرایش گروهی نتیجه: ویرایشگر  Text Wrangler باوجود چند محدودیت، قدرتمند و رایگان است ولی اگر شمارا راضی نمی‌کند با صرف مبلغی می‌توانید به ادیتور که از آن الهام گرفته‌شده‌ است، یعنی BBEdit دست پیدا کنید که ادیتور بسیار خوبی در سیستم‌های مک است. ویرایشگر جی ادیت (jEdit) این محصول قدرتمند از آن جاوا نیرو گرفته است که برنامه‌نویسان حرفه‌ای با آغوش باز پذیرای آن هستند. نفوذ امنیت، ذاتی جاوا در رگ و پی این نرم‌افزار باعث شده است که فایل بایت ساخته‌شده توسط آن، عرق هکرها را برای رمزگشایی درآورد.   هزاران پلاگین و ماکرو که برای این ادیتور ساخته‌شده‌اند، نشان می‌دهد که ‌در قلب برنامه نویسان جای گرفته است. همین پلاگین‌ها باعث شده که jEdit مرزهای  ویرایشگری را بشکند و به  قلمرو IDE راه پیدا کند و البته به لیست بهترین ویرایشگر برنامه‌نویسی سال ۲۰۱۸.   ویژگی‌های برجسته: ایجاد تورفتگی خودکار در متن بلوکه بندی کد و ایجاد خاصیت تا شوندگی متن‌ها موتور قدرتمند برای اجرای عبارات باقاعده (regular expressions) قابلیت چک املا لغات پشتیبانی از قابلیت FTP پشتیبانی از یونیکد و UTF8 حجم کم در ابتدا و قابل توسعه با پلاگین‌ها قابل‌ استفاده در ویندوز، مک، یونیکس رایگان پشتیبانی بیش از 200 زبان برنامه‌نویسی نکاتی برای ارتقاء و بهبود: زمان بارگیری آن کمی طولانی است قابل‌استفاده به روی ویندوز، مک، یونیکس عدم پشتیبانی برای ویرایش گروهی عدم پشتیبانی از فایل‌های بزرگ عدم پشتیبانی از SSH برای مدیریت فایل از راه دور نتیجه: انتخاب مناسبی برای کسانی که می‌خواهند ادیتوری پیشرفته و امن داشته باشند. به‌هرحال جاوایی بودن آن ممکن است گاهی شمارا معطل کند ولی باوجود ویژگی‌های خاصی که دارد، این کندی بارگذاری به‌راحتی قابل‌چشم‌پوشی است. از آن می‌توان به‌عنوان یک ویرایشگر متن رایگان و با کدنویسی تمیز و امن که آینده خوبی دارد، نام برد.   ویرایشگر Araneae ویرایشگر ساده و مفیدی از دنیای ویندوز که قدرت و تجربه لذت‌بخش برنامه‌نویسی را برای شما به ارمغان می‌آورد. در عین سادگی برای کاربر حرفه‌ای نیز ابزار مناسبی در خود دارد و بعد از نصب، بدون هیچ پلاگین اضافه‌ای می‌توانید به برنامه‌نویسی در زبان‌های HTML, CSS, XHTML, PHP بپردازید. ویژگی‌های برجسته: رنگ‌آمیزی کدها قابلیت جالب دراگ و دراپ برای تصاویر جستجو و ویرایش سریع پیش‌نمایش از مرورگر حتی بدون نیاز به سیو (Save) فایل حمایت از تب‌های چندگانه ویرایشی رایگان نکاتی برای ارتقاء و بهبود: عدم پشتیبانی از پلاگین و ماکرو خارجی  نتیجه: ویرایشگر Araneae بسیار مناسب برای فعالیت‌های طراحی وب‌سایت است که با استفاده از آخرین تکنولوژی‌های وب، شما را در کارتان موفق می‌کند. این نرم‌افزار می‌تواند یک رقیب جدی برای دیگر ادیتور‌ها در لیست بهترین ویرایشگر برنامه‌نویسی و رفیق خوبی برای برنامه نویسان PHP باشد.   ویرایشگر Visual Studio Code از نام آن پیداست که برادر کوچک‌تر ویژوال استودیو IDE مطرح دنیای برنامه‌نویسی است. محصولی از مایکروسافت که در سیستم‌عاملی Mac OS X و لینوکس هم کار می‌کند. بزرگ‌ترین ویژگی این ادیتور، تجربه ویرایش کدنویسی باحال و هوای ویژوال استودیو ایجاد می‌کند بدون اینکه نیاز باشد نسخه کامل IDE ویژوال استودیو را با حجمی حدود 3 گیگ به روی یک سیستم معمولی پیاده کرده و مرارت‌ها بکشید. این ادیتور سبک و کارآمد است و منصفانه نیست، تمام انتظاراتی که از برادر بزرگ‌تر داریم از Visual Studio Code نیز بخواهید.   ویژگی‌های برجسته: پشتیبانی از ۳۰ زبان برنامه‌نویسی و صدالبته ASP.NET و #C زمان نصب کم و روال ساده در اجرا قابلیت مقایسه دو فایل رنگ‌آمیزی کدها افزونه‌های فراوان وجود نسخه پرتابل قابلیت ارتباط با گیت‌هاب و استفاده از امکانات آن رایگان نکاتی برای ارتقاء و بهبود: عدم پشتیبانی خوب از افزونه‌ها نتیجه: این ویرایشگر عالی فضای بسیار کمی را اشغال می‌کند. هر برنامه‌نویس دلداده #C بر اهمیت وجود این ادیتور سورس کد، در لیست بهترین ویرایشگر برنامه‌نویسی واقف است. این ویرایشگر فوق‌العاده محبوب به شما فرصت عالی تجربه زبان‌های ASP.NET و #C را می‌دهد تا با لذت و آرامش بیشتری در استفاده از آن‌ها ماهر شوید و بتوانید در آینده با فراغ بال، برادر بزرگ‌تر را ملاقات کنید.   ویرایشگر UltraEdit ویرایشگر UltraEdit محصول شرکت رایانه‌ای IDM Computer Solutions یک ویرایشگر محبوب در نزد هکرها، برنامه‌نویسان و توسعه‌دهندگان و البته لیست بهترین ویرایشگر برنامه‌نویسی است. ادیتور اولترا‌ ادیت در پشتیبانی از زبان‌های مطرح خوب عمل می‌کند، همچنان که تیم پشتیبانی نرم‌افزار از سال ۱۹۹۴ برای بهبود و اجرای پیشنهاد‌ها و انتقادهای کاربران این ادیتور، خوب عمل کرده است. ادیتور UltraEdit در سیستم‌عامل‌های ویندوز، مک و لینوکس نیز در دسترس است.   ویژگی‌های برجسته: قابلیت انتخاب چندگانه و ویرایش هم‌زمان رنگ‌آمیزی کدها و هشدار اصلاح کد قابلیت Ftp قابلیت ویرایشگر HEX قابلیت املای کلمات قابلیت رمز سازی و رمزگشایی قابلیت ویرایش فایل‌های باینری پشتیبانی از فایل‌های بزرگ پشتیبانی از SSH نکاتی برای ارتقاء و بهبود: قیمت بالا نتیجه: قیمت این نرم‌افزار گران است ولی ویژگی‌های زیادی را پشتیبانی می‌کند که در برنامه‌نویسی بسیار مفید هستند. برای مقایسه عادلانه‌تر ازنظر قیمت در مقایسه با ویژگی‌های ارائه‌شده در دیگر نرم‌افزارهای هم قیمت چندان هم گران نیست ازاین‌جهت یکی از بهترین نرم‌افزارهای تجاری است که می‌شود از آن نام برد.   هیچ‌وقت از داشتن ادیتور سورس کد پشیمان نمی‌شوید و هر زمان نیز به ابزاری سریع و کارآمد نیاز داشته باشید، به‌راحتی در اختیار شماست. این لیست نیز بهترین ویرایشگرهای کدنویسی را که امسال بیشترین توجه را در نزد برنامه‌نویسان جلب کرده‌اند، برای انتخاب سریع‌تر و بهتر شما، جمع کرده است. هرکدام را که به طبع شما نزدیک‌تر است انتخاب کنید و با تمرین در آن چالاکی خود را در برنامه‌نویسی، به رقبا نشان دهید.
 

کسب‌وکارها افت کیفیت اینترنت را گزارش دهند

وزیر ارتباطات و فناوری اطلاعات گفت: ما افت سرعت نداشته‌ایم، اما شاهد کاهش کیفیت بودیم که امیدواریم به‌زودی برطرف شود؛ افت کیفیت اینترنت حق‌الناس است. محمدجواد آذری جهرمی در حاشیه جلسه هیات دولت این هفته در جمع خبرنگاران اظهار کرد: با توجه به حکم قضایی صادره برای فیلترینگ  تگلرام سازمان تنظیمات مقررات اشکالاتی را در مورد سرعت اینترنت جمع‌آوری کرد که  جلسه‌ای با شرکت‌های اینترنتی داشتیم راه‌کارهایی برای رفع افت کیفتی که در سرویس‌های اینترنتی ایجادشده بود اندیشیده و استفاده از روش‌هایی که کیفیت را بهبود ببخشد، آغاز شد. او در تشریح گفته‌هایش یادآور شد: کیفیت، دو بحث دارد. یکی به کیفیت ارایه خدمات شرکت‌های اینترنتی بازمی‌گردد که همواره بحث بر سر این موضوع وجود داشته است و برخی از مطالبات به افت کیفیت در اثر فیلترینگ  بازمی‌گردد. همه این موضوعات مورد توجه است؛ چرا که افت کیفیت سرویس بخشی از حق‌الناس است و ما بر حل این موضوع جدیت داریم. مطالبه به‌حق مردم را پیگیری می‌کنیم و امیدواریم به سرانجام مطلوبی برسد. وزیر ارتباطات و فن‌آوری اطلاعات در ادامه گفت: آن موضوعاتی که تا امروز تلاش شده تا شرایط بهتری پیدا کند یکی کیفیت بازی‌های رایانه‌ای بوده است که بخش عمده‌ای از جوانان به آن سروکار داشتند و مورد اعتراض بود. برای کسب‌و‌کارها نیز تمهیداتی اندیشیده شده است تا از طریق شرکت‌ها مشکلاتشان برطرف شود. او ادامه داد: سرویس‌های داخلی که مسیریابی‌شان از داخل دچار مشکل شده بود با تشکیل کارگروهی مشکلاتشان هدایت شد. دیروز جلسه‌ای با مدیران شرکت مخابرات داشتم تا این مشکل را کامل برطرف کنم. موضوع کیفیت بحثی است که خود من با آن مشکل دارم و خواهان برطرف شدنش هستم امیدوارم ظرف روزهای آینده رضایت را به سرویس‌ها بازگردانیم. آذری جهرمی گفت: از مردم تقاضا داریم اگر در حوزه کیفیت مشکلاتی دارند با جزییات اطلاع دهند. کانال‌هایی برای کسب‌و‌کارهای کوچک فراهم کرده‌ایم شرکت ارتباطات زیرساخت ارتباط ایمیلی را فراهم آورده‌‌ایم که  کسب‌و‌کارها می‌توانند اطلاعاتشان را ارسال کنند. او افزود: همچنین برای خبرگزاری‌ها و خبرنگاران تسهیلاتی از سوی وزارت ارشاد فراهم آمده است. خبرنگاران و خبرگزاری‌ها می‌توانند اطلاعاتشان را از طریق وزارت ارشاد برای حل مشکلات به ما برسانند. وزیر ارتباطات و فن‌آوری ارتباطات خاطرنشان کرد: مردم می‌توانند از طریق 195 نظراتشان را درباره مشکلات اینترنتی ارایه کنند. ما افت سرعت نداشته‌ایم اما شاهد کاهش کیفیت بودیم که امیدواریم به‌زودی برطرف شود. او در پاسخ به این پرسش که آیا در مورد تلگرام تصمیمات جدیدی گرفته‌شده است یا خیر گفت: ما صاحب تصمیم نیستیم اگر صاحب تصمیم‌ها تصمیم جدیدی گرفتند خودشان اعلام می‌کنند. آذری جهرمی اظهار کرد: نرم‌افزاری‌هایی که در عرصه فضای مجازی ارایه خدمت می‌کنند باید از صنف خودشان مجوز بگیرند. و مطابق قانون موجود صنفشان برای آن‌ها تصمیم‌گیری می‌کند. کسب‌وکارهای اینترنتی یک صنف دارند و کسب‌وکارهای سنتی یک صنف دیگر دارند . اپلیکیشن‌ها بر اساس نوع فعالیتشان از یکی از این اصناف مجوز می‌گیرند و از سوی دیگر برای خدمات بانکی‌شان مجوز  «ای نماد» را می‌گیرند و در حوزه گردشگری از سازمان میراث مجوزشان را تهیه می‌کنند. البته قرار است که تمام این مجوزها تجمیع شود و به‌صورت پنجره واحد در اختیار متقاضیان قرار گیرد. او در پایان با اشاره به در پیش بودن راه‌پیمایی روز قدس گفت: مردم ایران همواره حامی مردم فلسطین بوده‌اند .مردم فلسطین در شرایط نامناسبی هستند. از یک‌سو اشغال کشورشان و از سوی دیگر حملاتی که به آن‌ها می‌شود شرایط را برایشان سخت‌تر می‌کند. حرکتی که به تدبیر امام راحل جهت نام‌گذاری یک روز بین‌المللی به نام روز قدس صورت گرفته است ازجمله تصمیم‌های مهم در راستای حمایت از این مردم بوده است.
 

شش ابزار نهفته که باید درموردشان بدانید

در گذشته، سیستم های نهفته اغلب سیستم عامل های بسیار کوچک بدون فایل سیستم را اجرا می کردند و یا توسط bare metal (به عملیات حذف رابط برای صحبت با سخت افزار و کم کردن پروسه، bare metal گفته می شود) اجرا می شدند. با افزایش قدرت و کاهش هزینه ی سخت افزار، برای مثال سیستم مجتمع در تراشه (system on chip, SOCs)، بسیاری از سیستم های نهفته به سمت تبدیل شدن به یک سیستم عامل کامل که اکثرا تحت لینوکس هستند، پیش میروند. یکی از مزیت های اجرای لینوکس بر روی سیستم نهفته، در دسترس بودن تمامی ابزار های آشنای لینوکس در این محیط است.  در حالی که ممکن است محصول نهایی همراه آن ها عرضه نشود، شما به عنوان یک توسعه دهنده می توانید به شِل (shell)، دستورات اساسی و یک پشته شبکه کامل دسترسی داشته باشید. اگر اپلیکیشن نسبتا کوچک باشد، حتی ممکن است که کد بر روی یک سیستم نهفته، مانند Raspberry Pi، کامپایل شود. در این بخش، من بر برخی از مواردی که به طور خاص برای سیستم های نهفته مفید هستند، تمرکز خواهم کرد. این موارد شامل برنامه هایی جهت اجرا بر روی سیتم های نهفته یا ابزار هایی جهت اجرا بر روی ماشین های توسعه ی جداگانه است که برای توسعه و یا ارتباط با سیستم های نهفته مفید هستند.   ابزار BusyBox
همانطور که اشاره شد، دسترسی به شِل و دستورات لینوکسی/یونیکسی (برای مثال ls، grep و ...) برای سیستم های نهفته عموما مفید است. BusyBox ابزار های رایج یونیکس را در یک سیستم اجرایی کوچک فراهم می آورد. این دستورالعمل ها عمدتا جایگزینی برای دستورات کامل یونیکسی هستند که هم رایج اند و هم برخی گزینه های کم کاربرد را حذف کرده اند. این حالت به طور قابل توجهی سبب کوچکتر شدن رد پای کلی (در حافظه و فضای سیستم فایل) می شود که به طور تقریبی شامل 300 دستور و قابل تنظیم است، بنابراین شما می توانید دستورات مورد نظر را در زمان کامپایل اضافه یا حذف کنید.   ابزار Minicom
اغلب اوقات نیاز به برقراری ارتباط با سیستم نهفته از طریق یک رابط سریال وجود دارد. این نیاز ممکن است قبل از اینکه سیستم در حال اتصال به شبکه و در حال اجرا باشد، یا برای دسترسی به بارگذاری بوت صورت گیرد. برای انجام این کار یک برنامه شبیه ساز ترمینال در سمت کامپیوتر میزبان استفاده می شود. به نظر می رسد که Minicom شبیه ساز ترمینال استاندارد defacto برای لینوکس است. با وجود اینکه غیر گرافیکی است و استفاده از آن سخت است، شامل مجموعه ای از ویژگی های غنی است که ارزش صرف زمان برای یادگیری نحوه ی استفاده از آن را دارد. در پلتفرم ویندوز، ابزار استاندارد HyperTerminal بود، اما با شروع با ویندوز 7 دیگر پشتیبانی نشد یا در ویندوز گنجانده نشده است. شما می توانید نسخه تجاری HyperTerminal را که پشتیبانی می شود خریداری کنید یا از یکی از چندین برنامه های دیگر شبیه ترمینال استفاده کنید. اگر شما یک کپی از ویندوز XP دارید، می توانید فایل های مناسب (hypertrm.dll و hypertrm.exe) را به یک سیستم جدیدتر (از جمله ویندوز 10) کپی کنید و عموما کار می کند حتی اگر پشتیبانی نمی شود.    ابزار ssh/sftp
به طور معمول سیستم نهفته از شبکه پشتیبانی می کنند و اغلب این روش، ترجیحی برای انتقال فایل ها به سیستم در طول توسعه است. شما می توانید سرور ssh بر روی دستگاه اجرا کنید و سپس از ssh برای دسترسی به سیستم از یک دستگاه توسعه استفاده کنید. برنامه sftp نیز می تواند مفید باشد، ارائه یک رابط مشابه به ftp (برنامه انتقال فایل)، اما با استفاده از پروتکل امن تر ssh. اکثر محیط های یکپارچه ی توسعه نرم‌افزار (IDE)، مانند Qt Creator، با استفاده از ssh یا sftp برای انتقال فایل ها و اجرای دستورات از راه دور، از طریق یک رابط کاربری گرافیکی که معمولا ساده تر از فراخوانی دستورات به طور مستقیم است، پشتیبانی می کند. سرور های ssh جایگزینی وجود دارند که می توانند سبک تر و کم حجم تر از سرورهای کامل مانند OpenSSH  و مناسب تر برای اجرای سیستم جاسازی شده. یک انتخاب محبوب Dropbear است.   ابزار Adb
Android Debug Bridge (adb) یک ابزار خط فرمان برای برقراری ارتباط با یک دستگاه برای انجام اقدامات مختلف مانند نصب، اشکالزدایی و دسترسی به شِل است. این یک ابزار استاندارد برای توسعه در اندروید است و در اندروید SDK گنجانده شده است. Adb همچنین می تواند در سیستم های غیر اندرویدی استفاده شود.   ابزار Yocto bitbake
پروژه Yocto یک ابتکار منبع باز است که قالب ها، ابزار ها و روش های ایجاد یک سیستم مبتنی بر لینوکس را برای محصولات نهفته فراهم می کند. این شرکت در سال 2010 به عنوان همکاری میان بسیاری از تولید کنندگان سخت افزار، فروشندگان سیستم عامل های open source و شرکت های الکترونیک تاسیس شد. Qt Company آن را به عنوان پایه Qt تجاری خود برای سیستم های نهفته، boot2qt استفاده می کند.   Buildroot
Buildroot یکی دیگر از ابزارهای رایج برای سیستم های نهفته برای تولید یک toolchain کامپایل چند سکویی، سیستم فایل ریشه، تصویر هسته و بوت لودر است. این ابزار قدرتمندتر از Yocto است، اما می تواند ساده تر از آن استفاده شود. انتخاب بین Yocto و buildroot، معمولا در ارزش و كيفيت تكنيكي خلاصه نميشود، بلكه انچه توسط bsp vendor ساپورت ميشود اهميت دارد. 
 

پنج ترَند توسعه نرم‌افزار که شرکت‌های بزرگ را شکل می‌دهند

توسعه منبع باز، تغییر ساختاربندی، یادگیری ماشین، طراحی بر مبنای نیاز مشتری در زمان بلند مدت تغییرات دیجیتال آینده را شکل خواهند داد. نرم افزار های منبع باز، تغییرات ساختار برنامه ها، بازنویسی مجدد، یادگیری ماشین ، و طراحی مبتنی بر مشتری بزرگ ترین تغییرات دیجیتال آینده خواهند بود. به طور مثال استارتاپ هایی مانند uber  و lyft را می‌شناسید که صنعت حمل و نقل را به کلی دگرگون کرده‌اند. Twitter و Facebook نیز این کار را با ارتباطات انجام داده‌اند. Netflix  و Hulu نیز این کار را با تلوزیون های کابلی انجام داده‌اند. تمام این شرکت‌ها یک صنعت را متحول کرده و یا صنعت جدیدی ساخته اند. اکنون نیز تمام شرکت ها نیازمند این هستند که تکنولوژی های قدیمی را کنار گذاشته و دوباره خود را بسازند تا توانایی رقابت داشته باشند. منبع باز به شکل دهی دنیای ما ادامه می‌دهد یکی از اجزای پازل فرهنگ و همکاری Open Source است و به عنوان عامل مرکزی پشت هر یک از این شرکت های موفق می‌باشد. هر کدام از اینها به صورت منبع باز توسعه داده شده اند. این تغییرات در حال اتفاق افتادن است که این روش نقش بزرگی در آن دارد. برای دهه های طولانی Open Source به ما این اجازه را می‌داد تا از طریق سیستم های عامل و برنامه نویسی نوآوری ایجاد کنیم. انتشار به صورت Open Source نه تنها باعث رشد کسب وکارهای شخصی شد بلکه باعث تغییرات بزرگ در کل صنایع گردیده است. استفاده از منبع باز  و برنامه نویسی به کمک آن و حضور فعال در بین برنامه نویسان open source به یک ضرورت برای عقب نماندن از تکنولوژی و حضور در یک جامعه بزرگتر است. در مورد تمام فعالیت هایی که در شرکتتان انجام می‌دهید فکر کنید، کسب و کارهایی که از منبع باز استفاده نمی‌کنند و در مقابل آن مقاومت نشان می‌دهند بایستی تغییرات را بپذیرند و یا اینکه به زودی محو خواهند شد. توسعه نرم افزار توسعه کسب و کار است ایده اینکه تمام کسب و کار یک کسب و کار نرم افزاری هستند امروزه دیگر نباید کسی را شگفت زده کند. اما چیزی که باعث شگفت زدگی می‌شود تغییراتی هستند که در توسعه نرم افزار، امور عملیات شرکت ها و تیم های داده هستد و خوشبختانه شما و تیمتان در مرکز این تغییرات هستید. به عنوان افراد حرفه ای در تکنولوژی شما در حال این تغییر هستید که چگونه کسب‌وکار از نرم افزارها برای تصمیم گیری بهتر، ارتباط با مشتریان، افزایش پایداری کسب و کار، امنیت و مقیاس پذیری آن استفاده می‌کنند. بسیاری از آنها بر روی دوش شما ( توسعه دهندگان نرم‌افزار) است که نیازهای خارج از تیمتان در مورد کسب‌وکارها را بیابید و بر روی آنها کار کنید. بایستی راهی بیابید که با کدنویسی چطور می توان رشد یک کسب و کار را افزایش داد. بازبینی ساختار و توسعه دوباره یک کسب و کار را متمایز می‌کند. معماری یک نرم‌افزار و سیستم‌های یک شرکت مانند بدن یک انسان هستند. اگر شما بتوانید از آنها به درستی استفاده مراقب کنید می توانید یک عمر طولانی و سالم داشته باشید و این دقیقا برای شرکت ها نیز صدق می‌کند و این می‌تواند به سادگی با چک کردن اینکه چه چیزی در حال اتفاق افتادن است ( مدل کسب‌وکار) برنامه ریزی برای بهبود و بالاتر بردن امنیتش باعث کاهش هزینه های تعمیر شود و عمر سیستم را بالاتر ببرد. خبر خوب این است که در زمینه های رساندن،‌ اجرا، و ذخیره سازی پیشرفت های خوبی انجام شده است و شما فقط نیاز دارید تا تمام تمرکز خود را بر روی رشد کسب و کار خودتان قرار دهید و نیازی نیست به مسائلی مانند XaaS ، معماری بدون سرور، سیستم های توزیع،‌ میکروسرویس‌ها و غیره توجه داشته باشید. شما می توانید مدل قدیمی را به سادگی کنار گذاشته و به سمت تکنولوژی های جدید مانند OpenStack و قدرت پردازشی آن بروید که می تواند یک محیط قابل اطمینان و مقیاس پذیر را در اختیار شما قرار بدهد و شما به راحتی نرم افزارهای خود را بر روی سرویس های Cloud  نظیر Docker و Kubernetes قرار بدهید. اجازه بدهید تا کامپیوترتان فکر کند (‌به صورت متفاوت) یادگیری ماشین دوباره مورد توجه همه قرار گرفته است و خوشبختانه اینبار همه از نرم افزارهای منبع باز  استفاده می‌کنند. OpenAI (Elon Musk) ، Watson(IBM) ، TensorFlow(Google) و CNTK(Microsoft) بر روی محصولات جدیدی مانند Alexa شروع به سرمایه‌گذاری کرده اند و می خواهند ساختاربندی را به صورت اتوماتیک انجام دهند. کافی است این را در کنار Big Data قرار بدهید و متوجه شوید محصولات این شرکت‌ها چقدر می‌توانند در مقایسه با چند ماه گذشته بهتر عمل کنند. یادگیری ماشین تاثیر بسیار بالایی در تصمیم‌گیری شرکت‌ها، نحوه تعامل آنها، نحوه انتقال اطلاعات و .... خواهد داشت و دیگری نیازی به نگران بودن در مورد وظایف low-level وجود ندارد. توجه به مشتری همواره شما را به سوی موفقیت هدایت می‌کند زمانی که شما می‌خواهید در مورد یک محصول که قرار است آن را به دست مشتری برسانید شروع به برنامه‌ریزی، طراحی و ساخت پرتال‌های متفاوت می‌کنید، بایستی موارد زیادی را از قبیل بودجه، تقویم زمانی، اهداف شرکت را در نظر بگیرید. اما هیچ یک از اینها نباید اهمیت بالاتری از مشتریان واقعی شما داشته باشند. مشتری شما می تواند یک کاربر یا یک شرکت باشد. اما اگر شما شروع به ساخت محصولی بکنید که قبل از آن از مشتریانتان اعتبارسنجی نکرده‌اید، تمام کاری که انجام داده‌اید فقط یک حدس مورد نیاز مشتریانتان است. شما بایستی مشتری را در مرکز انجام یک پروژه قرار دهید. تجربه آنها در واقع نشان دهنده میزان موفقیت شماست. از آنجایی که تکنولوژی به صورت سریعی در میان شرکت‌ها در حرکت می‌باشد، شرکت‌های سنتی تکنولوژی بایستی خود را آماده این تغییرات بکنند تا بتوانند در مسیر خود در تغییرات دیجیتال باقی بمانند.  
 

شش دلیلی که باید نسخه نگاری را کنترل کنید

برای بسیاری از توسعه دهندگان نرم افزار کار کردن بدون کنترل نسخه غیر قابل تصور است. فواید کنترل و پیگیری تاریخچه تغییرات کدها برای درک کردن دنیای توسعه نرم افزار بسیار بالاست. با توجه به این نباید از نتایج به دست آمده از تحقیق انجام شده توسط DevOps که استفاده از تاریخه کدها بسیار بالاست شگفت زده شد. اما پرسیدن در مورد کنترل نسخه دیتابیس موضوع دیگری است. تنها ۵۸ ٪ از کسانی که در این تحقیق شرکت کرده اند گفته اند که کنترل نسخه دیتابیسشان را رصد می‌کنند. البته به طریقی این قابل درک است که چرا کنترل نسخه برای مدت بسیار زیادی بر روی دیتابیس انجام نمی پذیرفت. اما اکنون زمان این رسیده است که دیگر تیم‌ها بتوانند بر روی دیتابیس کار کنند. اگر شما هنوز کنترل نسخه برای دیتابیس خود انجام نداده اید ما در اینجا دلایلی آورده ایم که اینکار برای شما بسیار حیاطی می‌باشد: به راحتی می‌توانید تغییرات کدها را با تیمتان به اشتراک بگذارید
کنارهم قرار دادن دیتابیس کد‌ها با سیستم کنترل نسخه کار کردن اعضای تیم بر روی کدهای دیتابیس و مسئولیت پذیری آن‌ها را بر روی کارهایشان بیشتر می‌کند. توانایی به اشتراک گذاردن مداوم و مدیریت تغییرات برای تیم های که در کنار هم کار نمی کنند بسیار حیاتی است. به وسیله  SQL Sourse Control   اعضای می توانند بر روی یک دیتابیس به اشتراک گذارده شده و یا هر کدام بر روی یک دیتابیس LOCAL که یک کپی از نسخه اصلی است کار کنند. با افزودن ویژگی‌هایی مانند object locking شما می می‌توانید از تداخل های احتمالی جلوگیری کنید و کار را بدون تداخل جلو ببرید. از نحوه توسعه نمای بهتری به دست خواهید آورد:
سیستم کنترل نسخه برای شما یک نمای کلی از توسعه کلی کاری که انجام می‌دهید نشان می‌دهد. کنترل نسخه برای شما تاریخچه تغییرات را نشان می‌دهد و به راحتی با سیستم های کنترلی و پیگیری کار ‌می‌کند. به طور مثال SQL Source Control به شما اجازه همگام سازی وظایف دیتابیس را با Mircosoft Team Foundation Server work item ها می‌دهد و به وسیله آن به راحتی می توانید جریان کار را کنترل کنید. به شما توانایی Rollback و بازگشتن به ورژن قبلی دیتابیس را می‌دهد.
در حالی که شما همواره یک استراتژی Backup مناسب دارید. استفاده از کنترل نسخه برای دیتابیس یک مکانیزم برای back up  گرفتن از SQL کدهای شما در اختیارتان قرار می‌دهد. با استفاده از SQL Source Control کار کردن و بازگرداندن نسخه های قبلی بسیار آسان و ساده هستند. حسابرسی و خوانایی کدها را ساده‌تر می کند
تغییر ورژن کنترل،‌اولین قدم برای آماده سازی خوانایی کدها و یک قدم ضروری برای بهتر کردن حسابرسی و مدیریت ریسک می‌باشد. حسابرسی صحیح نیازمند یک سازماندهی برای کلیه تغییران بر روی دیتابیس می‌باشد و آن نیازمند جزییان برای دسترسی است. با استفاده از SQL Source Control شما می‌توانید نسخه کامل تاریخچه دیتابیس و یا database object را دسترسی داشته باشید و ببینید که چه کسی تغییرات را ایجاد کرده است، چه زمانی آنها را انجام داده است و چرا. پایه ریزی برای Database Automation
داشتن یک نسخه از دیتابیس مدیریت تغییرات را ساده تر می‌کند. پردازش‌های پیچیده اتوماتیک‌تر و تکرارپذیرتر می‌شوند و تغییرات نیز قابل پیش‌بینی می‌گردند. استفاده از کدی که در داخل SQL Source Control به عنوان پایه ساختن و تست های DLM Automation را اتوماتیک می‌کند و این بدین معنی است که مسائل سریع‌تر پیدا می‌شوند و کدی با کیفیت بالاتر تولید و منتشر می‌گردد. همگام‌سازی دیتابیس و تغییرات کد‌های نرم‌افزار
داشتن یک دیتابیس با کنترل نسخه دقیقا در کنار اپلیکیشن تغییرات کد‌های دیتاییس و اپلیکیشن را همگام می‌کند. شما همواره خواهید دانست که چه نسخه‌ای از کد بر روی چه ورژنی از نرم‌افزار قرار داده شده است. این به شما کمک می‌کند تا انجام پروژه به صورت تیمی را بسیار ساده‌تر کنید، اثربخشی کار را بالاتر ببرید و مشکلات را سریع تر برطرف کنید. SQL Source Control که به سیستم های کنترل نسخه مانند TFS, Git, Subversion متصل شود تغییرات کدها را ذخیره می‌کند. خلاصه:
در حالی که این مساله صحیح است که کنترل نسخه همواره به دست نمی‌اید، اما در دسترس بودن ابزارهایی مانند SQL Source Control به این معنی است که دیگر دلیلی برای بعضی از شرکت‌ها که این کار انجام می‌دهند نباشد. اگر شما یکی از ۴۲ ٪ هستید که تا اکنون این کار برای دیتابیس خودتان انجام نداده اید، شاید این ۶ دلیل بالا بتواند نظر شما را عوض کند.
 

فرق بین کامپایل استاتیک و داینامیک

فرق بین کامپایل استاتیک و داینامیک قبل از اینکه فرق بین ایستا (استاتیک) - Static و پویا (داینامیک) - Dynamic را بدانیم لازم است در رابطه با چرخه زندگی نوشتن یک برنامه و اجرای آن آشنا شویم. هر برنامه برای اولین بار توسط یک محیط توسعه (Editor) یا IDE توسط برنامه نویسان انتخاب و به صورت فایل متنی قابل ویرایش می باشد. سپس فایل متنی که شامل کد های نوشته شده توسط برنامه نویس تحت زبان برنامه نویسی مانند C، C++ و غیره... می باشد توسط کامپایلر به کد شیء ای تبدیل می شود که ماشین بتواند آن را درک کرده و اجرا کند. برنامه ای که ما می نویسیم ممکن است به عنوان یک مورد توسط دیگر برنامه ها یا کتابخانه هایی از برنامه ها مورد استفاده قرار بگیرد برقراری ارتباط (پیوند کردن) یا همان لینک کردن پروسه ای است که برا اجرای موفقیت آمیز برنامه های نوشته شده ما بکار می رود برقراری ارتباط بین ایستا و پویا دو پروسه ای از جمع آوری و ترکیب فایل های شیئ های مختلفی است که به منظور ایجاد یک فایل اجرایی می باشند. در این بخش ما تصمیم بر این داریم تا تفاوت بین آن ها را با جزئیات مورد بررسی قرار دهیم. عمل پیوند یا ترکیب در زمان کامپایل انجام شود، در واقع زمانی که کد منبع به زبان ماشین ترجمه می شود، در زمان بار گذاری، زمانی که برنامه در داخله حافظه بار گذاری می شود، و حتی زمان اجرای آن توسط برنامه صورت می گیرد این عمل زمان پیوند و یا ترکیب (اتصال) است. در نهایت این فرآیند توسط برنامه ای اجرا می شود که به آن لینکر - پیوند دهنده (ترکیب کننده) می گویند. اتصال دهنده ها به عنوان ویرایستار لینک نیز معرفی می شوند. لینک شدن (پیوند شدن) به آخرین مرحله از کامپایل می گویند. در زبان علمی اصطلاح لینکر یا Linker معروف است اما در زبان فارسی بهترین گزینه مربوطه را میتوان با عنوان اتصال دهنده، پیوند دهنده، ترکیب کننده نام برد. همه آن ها نشانگر یک هدف به منظور ترکیب اشیاء با یکدیگر هستند که در مرحله کامپایل صورت می گیرد. پس از ایجاد پیوند در برنامه، برای اجرای آن برنامه باید داخل حافظه منتقل شود. در انجام این کار باید آدرس هایی برای اجرای داده ها و دستور العمل ها اختصاص یابد. به طور خلاصه روند زیر می تواند به عنوان چرخه زندگی یک برنامه خلاصه شود (نوشتن - لینک کردن - بارگذاری - اجرا) فرق بین کامپایل استاتیک و داینامیک در زیر تفاوت های عمده ارتباط بین استاتیک و داینامیک آورده شده است : استاتیک  ارتباط به روش استاتیک فرآیندی است که تمامی ماژول ها و کتابخانه های برنامه در فایل اجرایی نهایی کپی می شوند. این روش توسط لینکر در مرحله آخر کامپایل انجام می شود. اتصال دهنده - لینکر طبق روال ترکیبی کتابخانه ها را با کد برنامه و همراه مراجع - منابع خارجی ترکیب کرده و برای تولید یک بارگذاری مناسب در حافظه آماده سازی می کند. زمانی که برنامه بار گذاری می شود، سیستم عامل محلی را در حافظه به صورت یک فایل اجرایی که شامل کد های اجرایی و داده ها می باشد مشخص می کند. ارتباط به شیوه استاتیک توسط برنامه ای با نام لینکر انجام می شود که در آخرین مرحله فرآیند کامپایل یک برنامه صورت می گیرد. لینکر ها نیز به عنوان ویرایشگر پیوند نیز عنوان می شوند. فایل های استاتیک به طور قابل توجهی دارای اندازه بسیار بزرگی هستند زیرا برنامه های خارجی و کتابخانه های لینک شده همه در یک جا و در فایل نهایی اجرایی جمع آوری شده اند. در اتصال استاتیک اگر هر یک از برنامه های خارجی تغییر کرده باشد باید آن ها دوباره کامپایل شوند و مجددا عمل اتصال صورت گیرد در غیر اینصورت هیچ تغییری در به روز رسانی های مرتبط با فایل اجرایی مشاهده نخواهد شد. برنامه های استاتیکی زمان بارگذاری ثابتی در هر بار اجرای برنامه در حافظه را در نظر می گیرند. و زمانی که برای بارگذاری طول می کشد ثابت است. برنامه هایی که از کتابخانه های استاتیکی استفاده می کنند معمولا سریعتر از برنامه هایی هستند که کتابخانه های آن ها به صورت پویا می باشد. در برنامه های استاتیکی، تمامی کد ها شامل یک فایل اجرایی می باشند. بنابراین، آن ها هرگز در برنامه هایی که دارای مشکلاتی هستند اجرا نخواهند شد. داینامیک در ارتباط پویا نام کتابخانه های خارجی (کتابخانه های به اشتراک گذاری شده) در فایل اجرایی نهایی قرار داده شده اند نه خود کتابخانه. در حالی که ارتباط واقعی در زمان اجرا در هر دو فایل در حافظه قرار می گیرند. اتصال پویا این اجازه را می دهند تا برنامه های متعددی به صورت یک ماژول کپی شده و قابل اجرا مورد استفاده قرار بگیرد. اتصال پویا بر خلاف اتصال استاتیک در زمان اجرا توسط سیستم عامل انجام می شود. در اتصال پویا فقط یک نسخه از کتابخانه به اشتراک گذاری شده در حافظه نگه داری می شود. این به طور قابل توجهی اندازه برنامه های اجرایی را کاهش می دهد، در نتیجه صرفحه جویی در حافظه و فضای دیسک صورت خواهد گرفت. در اتصال پویا بر خلاف اتصال استاتیک نیازی به کامپایل کامل پروژه نمی باشد در صورتی که لازم باشد تغییراتی در هر یک از فایل ها صورت بگیرد تنها کافی است آن را کامپایل و در کنار برنامه قرار دهید. این یکی از بزرگترین مزیت های کامپایل داینامیکی می باشد. در اتصال پویا زمان بارگذاری برنامه در حافظه ممکن است کاهش یابد. این در صورتی است که کتابخانه های مشترک در حافظه بارگذاری شده اند. برنامه هایی که از کتابخانه های مشترک استفاده می کنند معمولا کندتر از برنامه هایی هستند که از کتابخانه های استاتیکی استفاده می کنند. برنامه های پویا وابسته به داشتن کتابخانه های سازگار هستند. اگر کتابخانه تغییر یابد (برای مثال، یک کامپایلر جدید منتشر شود ممکن است کتابخانه را تغییر دهد)، در این صورت ممکن است برنامه مجدداً تحت کتابخانه جدید باز نویسی و به روز رسانی شوند. اگر کتابخانه از روی سیستم حذف شود، برنامه ای که وابسته آن کتابخانه می باشد دیگر کار نخواهد کرد.
 

چه کسانی Full-Stack Developer هستند

برنامه‌نویس تنها در این عنوان خلاصه نمی‌شود و لازم است بدانید که برنامه‌نویسان در چند دسته متفاوت وجود دارند که برخی از آن ها به صورت Back-End و برخی Front-End فعالیت می‌کنند. در کل به کسانی که توانایی برنامه نویس در بخش Back-End را دارند به آن‌ها Back-End Developer می‌گویند. همچنین برنامه‌نویسانی که توانایی توسعه در بخش طراحی رابط کاربری و تجربه کاربری را با عنوان Front-End دارند Front-End Developer می‌گویند. در زیر یک اینفوگرافیک برای مشخص سازی وظایف برنامه‌نویسان درج شده است که در این مرحله تنها به وظایف آن‌ها اشاره دارد نه به چرخه تولید نرم افزار، بنابراین در اینفوگرافیک‌های بعدی به چرخه همزمان تولید و توسعه خواهیم پرداخت. یک برنامه‌نویس حرفه ای یا همان فول اِستک دولپر می‌بایست مهارت‌های زیر را دارا باشد: مسلط به زبان‌های برنامه‌نویسی پایه آشنایی با UX و UI کنترل کیفیت محصول انواع فناوری‌ها و کتابخانه‌ها انواع دیتابیس و مدیریت آن‌ها هک و امنیت بهینه سازی موتور‌های جستجو درک نیاز‌های کاربران در محصول آشنایی با سیستم عامل‌های مختلف آشنایی با کراس پلتفرم آشنایی با شبکه آشنایی با مدیریت سرور و هاستینگ آشنایی با سیستم های مدیریتی و مجازی مانند VM آشنایی با سخت افزار آشنایی با رابط های برنامه نویسی API ها آشنایی با انواع محیط های توسعه و موارد دیگر که در یک پروژه از صفر تا صد می‌توان به آن‌ها نیاز پیدا کرد  برنامه‌نویسان Full-Stack Developer به تنهایی می‌توانند درتولید و توسعه یک محصول موثر باشند و زمانی که با مشکلی مواجه شوند نمی‌گویند من آن را بلد نیستم، بلکه حتما آن را حل خواهند کرد. به طور کلی کسب مهارت در سطح بالا در حد یک توسعه‌‌ دهنده فول است بسیار سخت است اما نباید بگوییم که غیر ممکن است، در صورتی که چنین تعریفی برای یک برنامه نویس فول‌استک در نظر بگیریم، بدون اغراق باید گفت تعداد اندکی از این برنامه‌نویسان موجود است که بتوانیم چنین لقبی را به آن‌ها اختصاص بدهیم بنابراین چنین برنامه‌نویسانی بسیار ارزشمند هستند  لذا به خوبی می‌دانند یک نرم افزار چگونه طراحی‌ می‌شود و توانایی این را دارند از صفر تا صد یک نرم‌افزار را طراحی و روانه بازار کنند. علاوه بر این توسعه دهنده Full-Stack کسی است که واژگانی مانند نبود، نمیشه، امکان نداره، نمیتوم، کار من نیست و ... را بر زبان نمی‌آورند و اگر هم چیزی را ندانند تمام تلاش خود را می‌کنند تا بدون نیاز به کمک شخصی دیگر آن را حل کنند. این نوع برنامه نویسان بسیار با ارزش و مهم هستند، و نکته جالب اینجاست که آن‌ها سال‌ها تلاش کرده اند و مسلماً به تنهایی صاحب کسب‌و‌کار خود بوده و برای کسی کار نمی‌کنند. برای برنامه‌نویس فول‌اِستک فرقی نمی‌کند محصول تحت چه پلتفرمی باشد، او می‌تواند تحت دسکتاپ، وب، موبایل و دیگر پلتفرم ها آن را تولید کند.
 

اینترنت اشیاء : چرا ابزار ها مهم هستند؟

تحول توسط اینترنت اشیاء (IoT)، این واضح است که افزوده شدن به تعداد دستگاه های متصل به این فناوری با سرعت چشمگیری در حال افزایش است. همه جا در اطراف زندگی روزمره ما، استفاده بیشترو بیشتری را از آن ها داریم. علاوه بر این که به آن ها متصل هستیم، دستگاه های با صفحه لمسی بیشتری به رابط گرافیکی مدرن مجهز می شوند. در این میان در اطراف ما به راحتی دیده می شود که کاربران زیادی نرم افزار های خود را توسط کیوت برای این دستگاه ها می سازند. برای رسیدن به شماری از این اعداد و ارقام توسط گروه Gartner که تخمین زده است تا سال ۲۰۲۰ رشد دستگاه های متصل به این فناوری حدود ۲۰٬۷ میلیارد دستگاه خواهد بود. (حتی پیش بینی شده است که بالاتر از آن یعنی حدود ۳۰ میلیارد دستگاه) مجهز به فناوری مرتبط خواهد شد که تحت سی پلاس پلاس و کیوت توسعه پیدا می کنند. نه تنها شمار زیادی از دستگاه ها در حال رشد هستند، اما در این میان پیچیدگی و تعداد نرم افزار ها نیز در حال رشد هستند. برای مثال، امروزه خودرو ها می‌توانند بیش از ۱۰۰ میلیون خط کد را در اختیار داشته باشند، انتظار می رود این روند به سه برابر در آینده به عنوان قابلیت های نرم افزاری در خودرو ها افزایش یابد. خودرو ها بخش پیچیده ای از این فرآیند محسوب می شوند، اما حتی برای ساده ترین اتصال به دستگاه ها نیاز به نرم افزار های زیادی می باشد که قادر باشند الزامات را برای اتصال به طور امن با قابلیت های مفید را با رشد چشم گیری در اختیار مصرف کنندگان قرار دهند.   در اینجا بر روی یک نمودار خطی چگونگی دستگاه های در حال رشد را تخمین می‌زنیم:   در داخل این دستگاه ها چه چیزی وجود دارد؟ چه نوع نرم افزاری دستگاه های متصل شده را مدیریت می کند؟ چه نوع مهارت هایی برای ساخت اینها نیاز است؟ اینگونه تخمین زده شده است که تا به امروز 95% از دستگاه های تعبیه شده (Embedded) اِمبد ها توسط زبان برنامه نویسی C و ++C  ساخته شده اند، و اینگونه پیشبینی شده است که این فرآیند در آینده به طور قابل توجهی تغییر نخواهد یافت. سپس، از سوی دیگر با توجه به مطالعاتی که در جهان بر روی ۴.۴ میلیون توسع دهنده C++  و ۱.۹ میلیون توسعه دهنده زبان C در سال ۲۰۱۵  صورت گرفته است. یک مطالعه بر اساس نتایج سال ۲۰۰۱ توسط IDC، نشان می دهد که تعداد توسعه دهندگان زبان ++C در آن زمان حدود ۳ میلیون نفر بوده است. معنی این نتایج اینگونه است که تعداد توسعه دهندگان ++C به طور پیوسته در حال رشد است که حدود 3% در سال بوده و انتظار می روند با همین روند به جمع توسعه دهندگان در سال های آتی افزوده شود.   بنابراین، یک تجسم کلی از رشد توسعه دهندگان ++C در نمودار زیر آورده شده است:     بر اساس برآورده های تعداد دستگاه های تخمین زده شده، که اکثر آن ها باید توسط C و ++C انجام شده باشند، و در حال حاضر با سرعت بسیار زیادی همین روند رو به رشد می باشد و انتظار می رود این روند با سرعت بسیار بیشتری ادامه یابد. با توجه به افزایش پیچیدگی در عملکرد، تعداد نرم افزار های موجود در حال رشد است. اگرچه برخی از دستگاه های جدید از عملکرد بسیار ساده ای برخوردار خواهند بود، اما دستگاه های بسیار بیشتری با پیچیدگی های بیشتری مورد نیاز مصرف کنندگان است. در حال حاضر، این مقایسه بین دو گرایش معمای جالبی را برای ما فراهم می کند که توجه به آن جالب است: چطور میلیون ها نفر از توسعه دهندگان سی‌پلاس‌پلاس نیازمندی ها را برای ساخت و متصل کردن میلیاردها دستگاه به یکدیگر مطابقت می دهند. با قرار دادن این دو نمودار در کنار هم، می توانیم به وضوح نمودار پارادوکس را تجسم کرده و به یک (راه حل) ممکن برسیم: بنابراین چگونه بر آن افزوده می شود؟ آیا ما انتظار این را خواهیم داشت که در سال ۲۰۲۰ یک توسعه دهنده سی‌پلاس‌پلاس  ۲۰ برابر بیشتر از آن چیزی را بنویسد که در ۱ دهه قبل نوشته است؟ این راه حل کارساز نخواهد بود. حتی اگر همه توسعه دهندگان ++C تمرکزشان بر روی دستگاه ها باشد! لذا هنوز توسعه دهنده ++C به اندازه کافی موجود نیست. توسعه دهندگان  C++ به راحتی می توانند آموزش های حرفه ای را ببینند و سال هایی را برای دوره های خود در نظر بگیرند تا به درجه استادی برسند. بنابراین، چیزی که باید انجام شود دو چیز است: فعال کردن توسعه دهندگان C++ در این زمینه ها و همچنین آموزش برای برنامه نویسان غیر ++C برای ساخت دستگاه ها. بنابراین، برای تعبیه شدن نیاز ها باید با شرایط جدیدتری سازگار شد. تنها راه برای مقابله با رشد این است که ابزار های خوبی برای دستگاه ها در اختیار قرار گیرد. پیش بینی می شود با ابزار هایی که Qt قرار است فراهم کند رویکرد قابل قبولی برای ساخت دستگاه ها فراهم آورد. زیرا شعار کیوت این است "کد کمتر،سازندگی بیشتر، تولید و استقرار در همه جا" این شعار تابه امروز پیش بینی شده بود. کیوت دارای سابقه ی دستگاه های اِمبد، دسکتاپ و موبایل و ساخت و توسعه اپلیکیشن های کاربردی با روش بهتر و ساده تر در تمامی پلتفرم ها می باشد. این احتمال وجود دارد که حتی استفاده از قابلیت های نرم افزاری کافی نیست. همچنین لازم است برای افزایش بهره وری از برنامه نویسان خبره  ++C جهت توسعه بهتر استفاده شود.با استفاده از Qt رابط های برنامه نویسی به طور گسترده و مشهوری مستند سازی شده اند. بنابراین توسعه دهندگان ++C سازنده تر و مفید تر از قبل هستند. همچنین Qt زبان اعلانی با نام QML را جهت سهولت کار در طراحی فراهم کرده است، و رشد اینکه تعداد کثیری از مردم که می خواهند فراتر از توسعه دهندگان سی پلاس پلاس در توسعه دستگاه ها قدم بگذارند ایجاب شده است. در حال حاضر میلیون ها توسعه دهنده با Qt در جهان آشنا هستند که روز به روز برای به دست گرفتن آن میکوشند. با وجود زبان QML، مشکل اینگونه حل شده است تا بدون داشتن مهارت های بسیار بالا از  ++C توسعه دهندگان بتوانند در زمینه رابط کاربری تیم خود را مدیریت کنند. البته برای ساخت هسته نرم افزار های دستگاه های تعبیه شده نیاز به ++C امریست ضروری. اما چیز دیگری می تواند کمک بهتری برای توسعه در اختیار قرار دهد. استفاده از Qt که اجازه می دهد هر دو نوع توسعه دهندگان غیر   ++C و متخصصین ++C عملیاتی را که می خواهند بر روی دستگاه ها توسعه دهند فراهم می کند. و این اجازه می دهد توسعه دهندگان ++C  تمرکز بهتری در تمامی زمینه ها داشته باشند.    
 

سرویس DevDoc منبعی جهت دسترسی به مستندات زبان‌های برنامه‌نویسی

اگر شما توسعه‌دهنده هستید، مسلماً بار‌ها به دنبال بررسی کاربرد یک دستور، تابع یا کلاس خاصی در یک زبان برنامه نویسی بوده‌اید. بنابراین مراجعه به مراجع زبان‌ و یا زبان‌های برنامه‌نویسی ای که شما با آن کار می‌کنید یکی از راه‌کار‌هایی است که می‌توانید به پاسخ صحیح در رابطه با نیاز خود برسید. من قصد دارم ابزار یا به اصطلاح سرویس دهنده‌ای را برای شما معرفی کنم که به شما امکان دسترسی بسیار ساده و کار‌آمد به مستندات تمامی زبان‌های رایج را فراهم می‌کند.  معرفی
سرویس DevDocs مستندات رابط‌های برنامه‌نویسی متعددی را باهم ترکیب و در قالب یک رابط کاربری سریع، سازمان یافته شده و قابل جستجو و در دسترس را فراهم کرده است. در اینجا آن چیزی را که قبل از شروع استفاده باید بدانید آورده ایم. خلاصه‌ای از ویژگی‌ها جهت دسترسی به تنظیمات رابط کاربری و سفارشی سازی محیط به بخش Prefrences مراجعه کنید. در صورتی که مایل به استفاده از ماوس نیستید می‌توانید از میانبر‌های کلیدی بسیار ساده و کارآمد استفاده کنید که در این بخش معرفی شده اند. جستجوی خاص و ساده پشتیبانی از قالب (fuzzy) به شما اجازه خواهد داد تا با خلاصه نویسی مانند (bgcp) به نتیجه (background-clip) برسید. برای جستجوی اسناد خاص با تایپ کردن خلاصه آن و سپس فشردن کلید tab می‌توانید به آن‌ها دسترسی داشته باشید. همچنین شما می‌توانید با استفاده از نوار آدرس مرورگر بخ نتایج جستجوی خود دسترسی داشته باشید. سرویس DevDocs در حالت آفلاین٫ در نسخه موبایل و افزونه‌ای که می‌تواند بر روی مرورگر گوگل کروم نصب شود در دسترس خواهد بود. جهت دنبال کردن آخرین رخداد‌ها و اخبار‌ها در باره این سرویس آن را در توئیتر می‌توانید با آدرس DevDocs@ دنبال کنید. سرویس DevDocs به طور کامل منبع باز است و سورس آن بر روی گیت‌هاب در دسترس است. در صورتی که شما یک کُدر و یا برنامه‌نویس مبتدی هستید می‌توانید از این مرجع نیز استفاده کنید. نسخه آفلاین
جهت نصب نسخه‌های آفلاین به این بخش مراجعه و گزینه مورد نظر خود را انتخاب کنید. پلاگین و افزونه‌ها وب اپلیکیشن مخصوص گوگل کروم اپلیکیشن دسکتاپ پکیج Sublime پکیج Atom افزونه Visual Studio Code افزونه‌ها و ابزار‌های بیشتر...
 

دستگاه IoT خود را توسط Qt تقویت کنید

از زبان سازندگان تیم Nymea بشنوید که چگونه در مورد دلایل استفاده خود از Qt در حوزه اینترنت اشیاء می‌گویند. در اینجا تیم Nymea که سازنده پلتفرم IoT با نام Nymea اس اینگونه می‌گویند. ما از ابتدای کار خود از Qt استفاده کرده ایم. شما ممکن است فکر کنید و اینگونه به نظر برسد که انتخاب کیوت برای دستگاه‌هایی که دارای رابط کاربری نیستند یک انتخاب غیر عادی باشد! اجازه دهید تا این مبحث را کمی برای شما روشن کنیم. اساساً، در بیانیه قبلی٬ سه تصور غلط وجود دارد. کیوت یک چهارچوب رابط کاربری است : بله اما بسیار بیشتر از چیزی است که تصورش را می‌کنید
اولین و بزرگترین تصور غلط این است که Qt تنها بر روی پروژه هایی تمرکز کرده است که عمدتا در حوزه رابط کاربری UI می‌باشند. درست است که کیوت چندین سال پیش به عنوان یک ابزار قدرتمند رابط توسعه رابط کاربری فعالیتش را آغاز کرده است. اما آن زمان٬ کیوت یک مجموعه کامل از کتابخانه‌ها و ابزارهای پشتیبانی شده در هر لایه کامل نبود که امروزه این به حقیقت پیوسته است. حتی شما اگر گزینه‌های گرافیکی را نداشته باشید، کیوت بهره وری شما را به یک مرتبه افزایش خواهد داد. که در موردش بعدا بیشتر اشاره خواهم کرد. رابط کاربری دارای جنبه‌های بسیاری است
در حال حاضر، اجازه دهید اینگونه بگویم که: هیچ نمایشگری برابر با هیچ رابط کاربری نیست. حتی وقتی شما در حال ساخت یک دستگاه اِمبِد بدون نمایشگر هستید تقریبا هیچ رابط کاربری برای آن وجود ندارد. در مثال ما رابط کاربری شامل یک رابط وِب در حال اجرا در جعبه IoT و برنامه مشتری است. اپلیکیشن مشتری٬ اجرا بر روی تلفن‌های هوشمند٬ کامپیوترها و یا صفحه های نمایشی دیواری که عمدتا برقراری ارتباط و صحبت با دستگاه از طریق لایه UI صورت می‌گیرد. در اینجا، فناوری کیوت کوئیک (Qt Quick) می‌تواند یک تجربه مدرن را با قابلیت  (یک بار نوشته شدن و در همه جا اجرا شدن) را ارائه دهد و جالبترین بخش از کیوت نسخه ۵.۱۰ این است که در زمانی نیاز از برنامه های مشابه می‌توان بر اساس فناوری Qt WebGL به عنوان یک ویژگی جدید استفاده کرد. بدون سربارگذاری اضافی : تنها مواردی را مستقر کنید که به آن ها نیاز دارید
یک نظر دیگر که اغلب شنیده ایم این است که وارد کردن کیوت به دستگاههای اِمبد سربار بزرگی خواهد بود. در حالی که در روزهای اولیه٬ کیوت از برخی از ماژول شامل شده بود که در این سالها بسیار تغییر کرده اند آن‌ها بهتر و پیشرفته تر از قبل شده اند و در جدید ترین نسخه کیوت ۵ مدولاسیون کیوت کنترلهای بسیاری را در بخشهایی از کیوت جهت نصب یک نقطه اشتراکی و قابل ردیابی را تسهیل کرده است. در این روزهای اخیر کیوت توانسته است این امکان را فراهم سازد تا تجهیزات لازم را بر روی دستگاه‌ها به حداقل برساند و نیاز به آن را به طور کامل از بین ببرد. کیوت چگونه توانسته است بهره وری مارا بر روی Nymea افزایش دهد
همانطور که در بالا ذکر شد، من مایلم به برخی از ویژگیهای کیوت که موجب افزایش بهره وری Nymea شده است را عنوان کنم تا بررسی کنید. تعداد زیادی از آنها به صورت لیست در اینجا وجود دارد٬ اما مهمترین آنها برای پُشته میان افزار ما عبارتند از: معماری پلاگین
معماری پلاگین کیوت مناسب برای بارگیری پلاگین‌ها است، و تمام پیچیدگی و بارگذاری کتابخانه ها را از بین می‌برد٬ استفاده ازNymea بر اساس پلاگین‌ها یک مزیت قابل توجهی است. هسته این پلتفرم یک نکته از تنظیمات نرم افزار مدیریت و هوشمندانه اشیاء می‌باشد که در آن تمام سخت افزارهای واقعی و خدمات آنلاین٬ به اصطلاح اشیاء در سیستم از طریق پلاگین فعال هستند. پروتکل های انتقال
تنها چند تماس با رابط های برنامه نویسی Qt همه چیز را که مورد نیاز است در اختیار شما قرار می‌دهد. میان افزار Nymea رابط ها را از طریق سوکتها (TCP/IP یا سوکت های محلی) ٬ WebSockets, Rest, Bluetooth RFCOMM ارائه می‌دهد و همه آن‌ها به سادگی در دست کیوت با استفاده از رمزنگاری SSL (گواهی معتبر) برای ارتباط امن فراهم شده اند. رابط های برنامه نویسی مبتنی بر JSONRPC
کیوت پشتیبانی از JSON را پیشنهاد می‌کند و اجازه می‌دهد تا به راحتی بین ساختار های دالی به اشیاء JSON دسترسی داشته باشید. این در زمان تعامل با مشتتریان برای ما یک نکته مثبت بسیار بزرگی محسوب می‌شود. چهارچوب آزمایش و اشکالزدایی
توسعه دهندگان از مزایای یک رابط برنامه نویس بسیار انتزاعی لذت می‌برند. کدهای پایه Nymea هنگام آزمایش به صورت خودکار توسط سیستم Qt Test مورد آزمایش قرار می‌گیرند و این باعث می‌شود مواردی را برای آزمایش قابلیتها و همچنین تهیه گزارش و چاپ آن‌ها همراه با آمار در انواع مختلف در قالب مشابه UnitXML در اختیار داشته باشیم. علاوه بر این٬ آن را قادر می‌سازد تا با دیگر سیستم‌های خطایابی مانند Valgrind و دیگر ابزارهای خارجی و قدیمی که برای سی++ کار‌های قدیمی و حرفه ای مهم است را فراهم می‌کند. مستندات رابط های برنامه نویسی با استفاده از QDoc
کیوت یک مرجع بسیار شگفت انگیز در آدرس doc.qt.io را ارائه میدهد. سیستم QDoc امکان این را فراهم می سازد که با نصب CI دسترسی برای سفارشی سازی ظاهر و همچنین مستند سازی ویژه ای را برای پروژه خود فراهم سازید که برای Nymea به آدرس. یک عالمه حامی ریز و کوچک در امتداد مسیر
کیوت مقادیر بیشماری از ویژگی ها را در اختیار توسعه دهندگان قرار می‌دهد که از پارامترهای خط فرمان و تجزیه تحلیل ورودی گرفته تا خروجی و اتصالات به اینترنت و همچنین مکانیزم های مختلف IPC در سیستم هایی مانند D-Bus که هرکدام از این ویژگی های به نوبه خود آماده استفاده هستند. همه (یا تقریبا همه آنها) به طور کامل چند-سکویی هستند، در حالی که Nymea برای اجرا بر روی دستگاه های مبتنی بر لینوکس متمرکز شده است٬ با این حال به کمک کیوت میتوانیم آن را برای دیگر پلتفرمها نیز بسازیم. البته برخی از ویژگی های یکپارچه مانند رابط های برنامه نویسی D-Bus بر روی تمامی سیستم عامل ها کار نخواهند کرد، اما این چنین موارد در کل بسیار نادر هستند. در حال حاضر nymea دارای مخزن مبتنی بر dpkg برای پشتیبانی تحت همه توزیعهای ابنتو و دبیان و همچنین بسته های ناگهانی متناسب با چنین توزیعهایی تعبیه شده است. برنامه مصرف کننده برای دسکتاپ و اندروید ساخته شده است. تیم ما برای توسعه آن بر روی پلتفرم iOS نیز در حال تلاش است که بر پایه WebGL برای پشتیبانی از تمامی قابلیتهای Qt Quick به عنوان یک رابط کاربری خوب در Nymea تمرکز کرده است. نکته مهم و کلی این است
کیوت یک چهارچوب ایده آل برای پروژه‌های شما در حوزه UI یا غیر آن است. تعداد زیادی از رابط های برنامه نویسی آزمایش شده و با کیفیت بالا کار و زندگی هریک از توسعه دهندگان را بسیار راحتر میکند. به ویژه وقتی به راحتی API ها توجه شود. در عین حال کیوت همچنان به شما این امکان را فراهم میکند تا از مزایای ++C لذت ببرید. بنابراین کیوت برای IoT بسیار مناسب است. درباره Nymea
شرکتی است که دستگاههای هوشمند را می‌سازند. سریع، قابل برنامه ریزی و بدون دردسر. تیم M2M ما یکپارچه بودن رابط های برنامه نویسی را تضمین می‌کند چرا که ما به قدرت راه حل های حاشیه ای انباشته شده (جمع شده، ترکیب شده) ایمان داریم.
 

قاتل خفته HTML5 که ممکن است شما از آن بی خبر باشید!

برای سال های بسیار زیادی است که HTML یک زبان جهانی برای ساخت صفحات وب بوده است و تا کنون در مقابل زبان‌های دیگر به شدت مقاومت نشان داده است که در بین آنها بهترین امنیت و سرعت مورد نظر ارائه داده است. با این حال جهان فراتر از مرورگر اینترنتی رفته و وارد موبایل و دستگاههای هوشمند بسیاری شده است و برخی از توسعه دهندگان HTML5 را برای توسعه در حوزه IoT بسیار آهسته و ضعیف دانسته اند. شاید پاسخ آن را Qt بتواند ارائه دهد که خود یک چهار چوب چند سکویی بشمار می‌آید. چرا HTML بسیار موفق بوده است؟
زبان HTML بسیار موفق بوده است، زیرا همراه توسعه و پیشرفت اینترنت و برنامه های توسعه یافته شده در طول رشد صنعت اینترنت همراه شده است. این یک روش سنتی و درست برای توسعه صفحات وب می‌باشد. در سال‌های اخیر ابزار های توسعه جدید٬ با ایجاد و توسعه خود شروع به حفاری HTML کرده اند و خود تاثیر بر روی آن می‌گذارند، اما برنامه های تحت دسکتاپ بدون هیچ مشکلی همچنان استفاده از HTML را ادامه می‌دهند. اشکالات اصلی استفاده از HTML در چیست؟
ظهور گوشی‌های هوشمند و رسانه های اجتماعی پیشرفت صنعت وب را توسعه داده است. امروزه برنامه های کاربردی در طیف گسترده ای تغییر شکل و اندازه می‌دهند. برنامه‌های سنتی دسکتاپی٬ برنامه های کاربردی وب در هر دستگاه با مرورگر٬ برنامه های تلفن همراه٬ دستگاه های اِمبد و دستگاه های مرتبط با اینترنت اشیاء (IoT) و غیره. دستگاه های مرتبط به IoT در حال حاضر نیاز به رابط کاربری و ویژگی های اتصال دارند تا در ارتباط بهتری قرار بگیرند٬ همچنین از اپراتورها انتظار می رود که تجربه کاربری مشابه را در دستگاه‌های شخصی خود داشته باشند. در این میان HTML هرگز برای سیستم های هوشمند و امبد‌ها و دستگاه‌های این چنینی در نظر گرفته نشده است و دارای نقایصی است. در حالی که در مخالف آن جهت توسعه صنعت تحت روش‌ها و زبان‌های بومی استفاده مورد استفاده قرار می‌گیرد. یکی دیگر از معایب HTML5 این است که موقع انتخاب HTML5 شما می‌بایست در کنار آن یک چهارچوب جاوا اسکریپتی را نیز انتخاب کنید. در کنار آن می‌توان به مقایسه چهار چوب‌های موجود پرداخت که برخی از آنها ممکن است در آینده از بین بروند و برخی از آن ها باقی بمانند! اینکه در آینده چه اتفاقی خواهد افتاد نامعلوم است. بنابراین فشار زیادی برای انتخاب بین چهارچوب‌ها وجود دارد. چهارچوب توسعه چند-سکویی Qt چیست و چگونه به توسعه دهندگان کمک می‌کند؟
کیوت یک چهارچوب چند-سکویی توسعه بر پایه ++C است و شامل هر دو گزینه کتابخانه و ابزارهای ساخت و توسعه رابط کاربری برنامه‌های کاربردی می‌باشد. یکی از روشهای طراحی در کیوت استفاده از زبان اعلانی QML می‌باشد که طراحی شده است تا به توسعه دهندگان این امکان را بدهد تا بتوانند رابط کاربری با کارآیی بالا را طراحی و پیاده سازی نمایند که قابل اجرا بر روی تمامی دستگاه ها مانند دسکتاپ٬ موبایل و ... باشد. طراحی رابط کاربری توسط QML به صورت بصری است که همراه کنترل ها آماده٬ مانند دکمه‌ها٬ سوئچ‌ها و ... را می‌توان بر روی بوم طراحی سریع آن‌ها را کشیده و طراحی کرد. همانند چهار چوب‌هایی که برای توسعه وب و موبایل طراحی شده اند٬ زبانهای برنامه نویسی مانند QML در کیوت به خاطر محدودیت‌ها و حذف HTML توسط شرکت‌های بزرگ سهم قابل توجهی را به دست آورده اند. مزایای استفاده از QML در برابر HTML در چیست؟
بعد از اینکه بارها این سوال ها را مطرح کرده‌ایم٬ یک شرکت مشاوره نرم افزاری اتریشی تصمیم به تست مقایسه‌ای بین این دو زبان گرفت تا بتواند پاسخ مناسبی را برای این سوال تعیین کند. آنها برای هرکدام از زبانها ۱۶۰ ساعت در اختیار توسعه دهندگان مشابه قرار دادند برای مثال ۱۶۰ ساعت توسعه بر روی HTML5 و ۱۶۰ ساعت توسعه بر روی QML تا نمونه هایی را در قالب Demo جهت مقایسه طراحی نمایند تا بتوانند آنها را زمانی که برای ایجاد یک محصول مشابه مورد استفاده قرار می‌دهند از لحاظ عملکرد و پایداری مقایسه کنند. نسخه های دمو نشان می‌دهد اگر چه زمان مشابهی در هر دو نسخه صرف توسعه شده بود٬ اما پیاده سازی با Qt QML یک رابط کاربری کاربردی تر و کاملتری را نسبت به نسخه HTML5 ارائه می‌دهد. فرآیند تست و اشکال زدایی با Qt QML ساده تر است٬ زیرا HTML5 نیاز به آزمایش های بیشتری در مرورگرهای مختلف دارد. به طور کلی نسخه Qt QML زمان کمتری را جهت پاسخ دهی (در اجرا) و ویژگیهای فعال تری را مانند صفحه کلید مجازی و حرکات پیچیده ارائه می‌دهد که این موارد در HTML5 بدون افزودن آنها قابل ارائه نیست. همچنین QML قابلیت ترکیب و قدرت گرفتن از ++C را دارد که نکته‌ی بسیار مهمی است. کیوت چگونه برای دستگاه های هوشمند و امبد کار می‌کند و چه رویکرد متفاوتی از برنامه‌های سنتی دسکتاپی و HTML دارد؟ برنامه هایی که بر پایه کیوت هستند٬ برای یک هدف تدوین و کامپایل می‌شوند٬ این به این معنی است که بدون در نظر گرفتن قوانین کاربردی بر روی پلتفرم همان رفتاری را انجام خواهد داد که بر روی پلتفرم قرار است اجرا شود. برنامه های تحت HTML5 برای اجرا بر روی مرورگر هستند، برای مثال مرورگر Google's Chrome این به این معنی است که برنامه در پلتفرم های دیگر مانند FireFox ممکن است یک رفتار دیگری را نشان دهد. HTML یک زبان است در حالی که Qt یک چهارچوب کامل با گزینه‌های طراحی و زبانهای مختلف است. با کیوت شما واقعا توانایی استفاده هر گزینه‌ای را نسبت به کاربرد آن خواهید داشت. شما می‌توانید ابزارهای طراحی خود را با کشیدن و رها کردن بر روی بوم خود قرار داده و به راحتی آن را با زبانی مانند ++C تنظیم کنید. کدهای اعلان شده در QML هستند و یا می‌توان آن‌ها را با ++C ترکیب کرد. همچنین شما می‌توانید در صورتی که نیاز داشته باشید کد‌های HTML را بر روی کیوت بر پایه مرورگر کروم فعال و استفاده نمایید. در بازار کیوت چقدر نفوز دارد؟
با وجود اینکه کیوت حدود ۲۵ سال است عمر دارد٬ ممکن است برخی بگویند که این چهارچوب پیش از این زمان ذکر شده توسعه داده شده است. با افزایش توسعه اینترنت اشیاء که نیاز به هرجا و هر صفحه نمایشی را افزایش داده است٬ این در حالی است که توسعه دهندگان در همان مقدار باقی مانده اند. این به این معنی است که توسعه دهندگان نیاز به این دارند که بیشتر سازنده باشند و سعی نکنند که مشکلاتی را حل کنند که قبلا برای آن ها راه حلی پیدا شده است. کیوت توسط بیش از ۱ میلیون توسعه دهنده در بیش از ۷۰ صنایع مورد استفاده قرار گرفته است و در سال گذشته بیش از ۲۰ درصد رشد داشته است و برای تکنولوژی هایی که تا مدت طولانی وجود دارند، منحصر بفرد است. هر کجا که یک رابط کاربری خارق العاده را می‌بینید آن شانس خوبی است که با کیوت توسعه داده شده است. از وسایل هوشمند درون خودرو و ابزارهای دیجیتال گرفته تا صفحه های نمایش HUD در خودرو های مانند تسلا یا مرسدس، و یا سیستم هایی که از طریق FDA و IEC جهت تامین ایمنی بیماران از طریق سیستم های اتوماسیون برای ساختمان ها و صنایع و حتی در تلوزیون های دیجیتال و یخچال فریزر شما که در این نقطه کیوت به طور گسترده ای به تصویر رسیده است٬ اما عصر طلایی آن در حال آغاز شدن است. هزینه کلی و مالکیت کیوت چگونه است؟
کیوت دارای یک مدل مجوز دوگانه است. کیوت یک مدل منبع باز و کاملا رایگان و همچنین یک مدل تجاری ارائه می‌دهد که در مدل تجاری پلتفرمی را پیشنهاد می‌کند که برای استفاده و دسترسی به R&D و پشتیبانی تجاری می‌باشد. HTML5 رایگان است (با گزینه‌ای برای پرداخت هزینه برای ابزار های غیر ضروری) اما یکپارچگی وابستگی‌ها مانند نگه داری و دستیابی به همان کارایی است که شما به طور نسبی با Qt نیاز دارید. توسعه دهندگان HTML برای اینکه نیاز به دسترسی لایه‌های زیرین داشته باشند یا روش های پیشرفته تری استفاده کنند تا بتوانند کارایی بهتر و پیشرفته تری را ارائه دهند و سیستم شما را پشتیبانی و بهینه نگه دارند نیازمند استفاده و هزینه کردن به سخت افزار‌هایی هستند.اما در کیوت شرکت کیوت کسی است که پشت این چهارچوب است و مراقب تمامی وابستگی‌ها می‌باشد٬ هزینه تعمیرات و نگه داری ها را کاهش می‌دهد٬ سیستم شما را اثبات می‌کند و خطرات کلی شما را کاهش می‌دهد. سناریو هایی که در استفاده Qt به جای HTML مفید تر است کدامند؟ همچنین بالعکس آن چطور است؟
با رشد چشمگیر IoT و افزایش دستگاه های امبد که به خود کیوت می‌رسند. QML و Qt برای بیشترین استفاده از منابع محدود طراحی شده اند و بنابراین ممکن است انتخاب خوبی برای توسعه دهندگان دستگاههای هوشمند و به خصوص امبد باشد. از سوی دیگر HTML اهداف خود را بر روی وب به راحتی اجرا می‌کند که در سراسر سیستم عامل های دسکتاپ و موبایل است. همانطور که بسیاری از توسعه دهندگان HTML برای استفاده از آن با HTML آشنا هستند٬ اگر شما کسی هستید که برنامه نویسی ++C را نمی‌دانید می‌توانید از HTML استفاده کنید. با این حال Qt طیف گسترده ای از سیستم عامل ها را پشتیبانی می‌کند و از لحاظ پاسخدهی، زمان راه اندازی (زمان اجرای برنامه) و تجربه کاربری و رابط کاربری بسیار بهتر عمل می کند. آیا Qt فرصتی واقعی برای کنار گذاشتن HTML به عنوان زبان برنامه نویسی انتخاب کرده است؟
در وبلاگ‌ها و انجمن‌ها بحث هایی در حال انجام است که آیا QML واقعا جایگزین HTML در وب خواهد شد یا خیر. از یک جنبه عملکرد مردم می‌گویند که می‌تواند این کار را انجام دهد٬ اما از دیدگاه علمی، برای تغییر آن نیاز خواهد بود تا غول هایی مانند گوگل جایگاه و روش‌های خود را نسبت به این موضوع تغییر دهند. به طور کلی HTML زبان بسیار محبوبی در صنعت وب محسوب می‌شود اما باتوجه به توسعه روز افزون پلتفرم‌های مختلف و مخصوصا موبایل‌ها و اینترنت اشیاء QML یک رقیب بسیار جدی طراحی و پیاده سازی UI و UX محسوب می‌شود که بسیار قدرتمند تر از HTML عمل می‌کند.   نکته افزوده شده توسط (کامبیز اسدزاده)
با توجه به اینکه صنعت وب با HTML و JavaScript ترکیب شده است باید در نظر داشته باشیم که QML از هر دو فناوری فوق پشتیبانی می‌کند. این به این معنی است که شما موقع استفاده از QML از یک زبانی اعلانی استفاده می‌کنید که بر پایه JavaScript است که علاوه بر قابلیت‌های جاوا اسکریپت می‌توانید از CSS و HTML نیز استفاده کرده و بک اند برنامه خود را تحت زبان قدرتمند ++C تعبیه کنید.  
×