۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

۱۲ کتابخانه درجه یک برای برنامه نویسی C++

توسعه‌دهندگان C++ برای کمک به ساخت برنامه‌های Windows، برنامه‌های تلفن همراه، یادگیری ماشینی و برنامه‌های علمی و غیره به این کتابخانه‌ها نگاه می‌کنند.

توسعه‌دهندگان C++ برای کمک به ساخت برنامه‌های Windows، برنامه‌های تلفن همراه، یادگیری ماشینی و برنامه‌های علمی و غیره به این کتابخانه‌ها نگاه می‌کنند.

C++ یک زبان برنامه نویسی سیستم های همه منظوره است که اکنون بیش از ۴۰ سال قدمت دارد و در سال ۱۹۷۹ طراحی شده است. C++ به دور از از دست دادن قدرت، همچنان در صدرترین شاخص‌های محبوبیت زبان برنامه‌نویسی قرار دارد.

هموارسازی مسیر استفاده از C++ پشتیبانی گسترده ای از زبان در میان سازندگان IDE ها، ویرایشگرها، کامپایلرها، چارچوب های تست، کیفیت کد و ابزارهای دیگر است. توسعه دهندگان نرم افزار همچنین کتابخانه های بسیار خوبی برای کمک به ساخت برنامه های ++C در اختیار دارند. در اینجا ۱۲ موردی وجود دارد که توسعه دهندگان ++C بر آنها تکیه می کنند.

کتابخانه الگوی فعال

از Microsoft، Active Template Library (ATL) مجموعه‌ای از کلاس‌های C++ برای ساخت اشیاء COM (مدل شی مشترک) است که از ویژگی‌های COM مانند رابط‌های دوگانه، رابط‌های استاندارد شمارشگر COM، نقاط اتصال و کنترل‌های ActiveX پشتیبانی می‌کند. موجود با Visual Studio IDE، ATL را می توان برای ساخت اشیاء تک رشته ای، اشیاء مدل آپارتمانی، اشیاء مدل آزاد نخی، یا هر دو شیء با نخ آزاد و مدل آپارتمانی استفاده کرد.

کتابخانه Asio C++

کتابخانه Asio C++ برای برنامه‌نویسی شبکه و I/O سطح پایین استفاده می‌شود و مدل ناهمزمان سازگار Asio با ارائه بلوک‌های اساسی برای همزمانی، شبکه ++C و سایر انواع ورودی/خروجی، در برنامه‌های کاربردی از برنامه‌ها و بازی‌های گوشی‌های هوشمند گرفته تا وب‌سایت‌های بسیار تعاملی و سیستم‌های تراکنش بلادرنگ استفاده شده است. پروژه هایی که از Asio استفاده می کنند عبارتند از کتابخانه WebSocketPP و اشکال‌زدای راه دور DDT3 برای زبان Lua. Asio به عنوان منبع باز رایگان تحت مجوز نرم افزار Boost در دسترس است و در Linux، Windows، MacOS و FreeBSD پشتیبانی می شود.

تقویت

Boost کتابخانه‌های منبع سی پلاس پلاس قابل حمل رایگان و مورد بازبینی را فراهم می‌کند که از boost.org< قابل دسترسی است. /a>، که با کتابخانه استاندارد C++ کار می کند. کتابخانه های Boost برای استفاده در طیف وسیعی از برنامه ها در نظر گرفته شده است. در میان این مجموعه، کتابخانه‌هایی برای JSON، ریاضی، چند نمایه، سیستم فایل، و هندسه وجود دارد. Boost روی اکثر سیستم عامل های مدرن از جمله لینوکس، یونیکس و ویندوز کار می کند. توزیع‌های لینوکس و یونیکس مانند Debian، Fedora و NetBSD قبلاً شامل بسته‌های Boost از پیش ساخته شده‌اند.

CheerpJ مبتنی بر Wasm جاوا را در مرورگرهای وب اجرا می کند

سیدر

Cinder یک کتابخانه منبع باز برای “کدنویسی خلاقانه” در C++ است. Cinder که برای برنامه‌هایی مانند صدا، هندسه محاسباتی، گرافیک و ویدیو مفید است، از پنجره‌بندی و مدیریت رویدادهای مبتنی بر پلتفرم، همراه با انتزاع I/O پشتیبانی می‌کند و دارای یک API داخلی برای تجزیه XML و JSON است. این کتابخانه که بر اساس ویژگی‌های اصطلاحی C++ 11 مانند shared_ptr طراحی شده است، نمونه‌های متعددی دارد. Cinder از MacOS، iOS، Linux، Windows و Windows UWP پشتیبانی می کند.

ویژه

Eigen یک کتابخانه الگوی C++ برای جبر خطی، از جمله ماتریس‌ها، بردارها است. حل‌کننده‌های عددی و الگوریتم‌های مرتبط. همه اندازه های ماتریس پشتیبانی می شوند، از ماتریس های کوچک و ثابت گرفته تا ماتریس های بزرگ و متراکم دلخواه. الگوریتم ها برای قابلیت اطمینان انتخاب می شوند. همه انواع عددی استاندارد پشتیبانی می شوند. برای سرعت، Eigen دارای الگوهای بیان برای حذف هوشمندانه موقت و فعال کردن ارزیابی تنبل است. رایگان تحت مجوز عمومی موزیلا ۲ و قابل دانلود از صفحه پروژه Eigen، Eigen دارای یک API است که توسط طرفداران آن برای برنامه نویسان C++ گویا و تمیز و طبیعی توصیف شده است. مجموعه آزمایشی برای Eigen بر روی بسیاری از کامپایلرها اجرا شده است تا از قابلیت اطمینان اطمینان حاصل شود.

FloatX

FloatX یا Float eXtended، یک کتابخانه فقط سرصفحه برای نوع ممیز شناور با دقت پایین است. تقلید در حالی که به طور بومی با کامپایلرهای ++C سازگار است، FloatX می تواند توسط زبان های دیگری مانند Python یا Fortran فراخوانی شود. انواع نقطه شناور فراتر از انواع دقیق تک و دوگانه بومی گسترش یافته است. انواع قالب ارائه شده است که به کاربر امکان می دهد تعداد بیت های مورد استفاده برای توان و همچنین بخش های قابل توجهی از عدد ممیز شناور را انتخاب کند. FloatX بر اساس ایده کتابخانه FlexFloat برای شبیه سازی انواع شناور با دقت کاهش یافته است، اما یک ابر مجموعه از عملکرد FlexFloat را در C پیاده سازی می کند و بسته های C++ را ارائه می دهد. FloatX از ابتکار Open Transprecision Computing پدید آمد. تحت مجوز Apache 2.0 به صورت رایگان در دسترس است.

OpenCV

OpenCV، یا Open Source Computer Vision Library، یک کتابخانه بینایی کامپیوتر و یادگیری ماشین است که به صورت بومی در C++ نوشته شده است، و تحت مجوز آپاچی ۲ موجود است. OpenCV برای ارائه زیرساخت های مشترک برای برنامه های بینایی کامپیوتر و تسریع استفاده از ادراک ماشین در محصولات تجاری ساخته شده است. بیش از ۲۵۰۰ الگوریتم بهینه سازی شده برای تشخیص چهره، تشخیص اشیا، طبقه بندی اشیا، استخراج مدل های سه بعدی، جستجوی تصویر و بسیاری موارد دیگر، OpenCV جامعه کاربری بیش از ۴۷۰۰۰ نفر را جمع آوری کرده است. این کتابخانه در وب‌سایت پروژه OpenCV موجود است، رابط‌های C++، Java، Python و Matlab را ارائه می‌کند و از Windows، Linux پشتیبانی می‌کند. ، اندروید و MacOS. CUDA و رابط های OpenCL در حال توسعه هستند.

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

کتابخانه های Poco C++

برای ساده‌سازی توسعه C++، Poco (کامپوننت‌های قابل حمل) C++ Libraries کتابخانه‌های C++ چند پلتفرمی برای ساخت اینترنت هستند. و برنامه های شبکه برای اجرا در سیستم های مختلف از دسکتاپ و سرور گرفته تا دستگاه های تلفن همراه و اینترنت اشیا. کتابخانه ها همچنین می توانند برای ساخت میکروسرویس با API های REST برای یادگیری ماشین یا تجزیه و تحلیل داده ها استفاده شوند. کتابخانه‌های Poco از نظر مفهومی شبیه به کتابخانه کلاس جاوا، .NET Framework مایکروسافت یا Apple Cocoa هستند.

توسعه‌دهندگان می‌توانند از کتابخانه‌های Poco برای ساخت سرورهای برنامه در C++ که با پایگاه‌های داده SQL، Redis، یا MongoDB صحبت می‌کنند، یا برای ساختن نرم‌افزار برای دستگاه‌های IoT که با پشتیبان‌های ابری صحبت می‌کنند، استفاده کنند. از جمله ویژگی های کتابخانه ها می توان به چارچوب کش، مدیریت فرم HTML، سرویس گیرنده FTP برای انتقال فایل ها و سرور و سرویس گیرنده HTTP اشاره کرد. کتابخانه‌های Poco تحت مجوز نرم‌افزار Boost و قابل دانلود از GitHub رایگان در دسترس هستند.

Velox

Velox یک کتابخانه اجرایی قابل جاسازی و بردار برای سیستم‌های OLAP است. این کتابخانه برای بهینه سازی سیستم های پردازش داده ها و موتورهای پرس و جو در نظر گرفته شده است. این پروژه به عنوان یک پروژه مهندسی داخلی در فیس بوک در سال ۲۰۲۰ آغاز شد و سپس منبع باز شد. در سناریوهای استفاده رایج، Velox یک طرح پرس و جو کاملاً بهینه شده را به عنوان ورودی می گیرد و محاسبات توصیف شده را انجام می دهد. مولفه ها شامل یک سیستم تایپ سطح بالا، یک ماژول حافظه ستونی، بسته های تابع و سریال سازهای شبکه است. Velox در GitHub در مخزن انکوباتور Facebook موجود است.

کتابخانه الگوی ویندوز

در اصل از مایکروسافت، کتابخانه الگوی ویندوز (WTL) (از سال ۲۰۰۴< /a>) یک کتابخانه منبع باز برای ساخت برنامه های سبک وزن ویندوز و اجزای UI. WTL که به عنوان جایگزینی برای جعبه ابزار Microsoft Foundation Classes قرار دارد، ATL را گسترش می‌دهد و مجموعه‌ای از کلاس‌ها را برای کنترل‌ها، گفتگوها، پنجره‌های قاب و اشیاء GDI ارائه می‌کند.

Deno 1.21 REPL، مدیریت خطا را بهبود می بخشد

Wt

Wt یک کتابخانه رابط کاربری گرافیکی وب در C++ مدرن است که به توسعه‌دهندگان اجازه می‌دهد تا بدون نیاز به نوشتن جاوا اسکریپت، رابط‌های کاربری تعاملی وب با ویجت‌ها بسازند. یک راه حل سمت سرور، Wt مدیریت درخواست و رندر صفحه را انجام می دهد، امنیت داخلی، رندر PDF، سیستم نقاشی دوبعدی و سه بعدی، کتابخانه نقشه برداری شی رابطه ای، کتابخانه نمودار و چارچوب احراز هویت را فراهم می کند. کتابخانه هسته منبع باز است و یک چارچوب ترکیبی تک صفحه ای ارائه می دهد که می تواند در لینوکس، یونیکس یا ویندوز مستقر شود.

Wt که توسط شرکت مهندسی نرم افزار Emweb توسعه یافته است، با مرورگرهای HTML5 و HTML4 و همچنین با عوامل کاربر ساده HTML سازگار است. و Wt می تواند با کتابخانه های جاوا اسکریپت شخص ثالث یکپارچه شود. با Wt، یک برنامه کاربردی به عنوان سلسله مراتبی از ویجت ها تعریف می شود – از ویجت های عمومی مانند دکمه های فشاری تا ویجت های تخصصی مانند یک ویجت کامل وبلاگ. درخت ویجت به صورت HTML/JavaScript در مرورگر ارائه می شود. Wt را می توان از صفحه وب پروژه دانلود کرد. هر دو شرایط استفاده از منبع باز و تجاری در دسترس هستند.

Yocto/GL

Yocto/GL مجموعه ای از کتابخانه های کوچک C++17 برای ساخت الگوریتم های گرافیکی مبتنی بر فیزیکی است. برای سهولت در توسعه به سبک داده گرا نوشته شده است و به کتابخانه های کوچک تقسیم می شود تا ناوبری کد را آسان تر کند. داده ها در ساختارهای ساده ذخیره می شوند و با توابع رایگان یا مستقیم قابل دسترسی هستند.

Yocto/GL شامل کدهایی از مولد اعداد تصادفی PCG، boost hash_combine و کتابخانه‌های خارجی از دامنه عمومی یا دارای مجوزهای خاص خود است. توسعه دهندگان Yocto/GL یک رویکرد تابعی را به جای شی گرا ترجیح می دهند و توابع رایگان را به روش های کلاس ترجیح می دهند. توابع و داده ها در فضای نام خواهر و برادر موجود در فضای نام yocto تعریف می شوند.

Yocto/GL تحت مجوز MIT منتشر شده و از GitHub در دسترس است. یک کامپایلر C++17 مورد نیاز است.