اگر در یک متن، به لغاتی برخورد کنید که معنای آنها را نمیدانید، به احتمال زیاد، خواندن آن متن را به پایان نمیرسانید. برای مثال اگر برنامهنویس باشید و بخواهید ابزار جدیدی را یاد بگیرید، با برخورد به کلمات ثقیل، ممکن است استرس بگیرید و اصلا آموزش را ادامه ندهید؛ در نتیجه، مسیر زندگیتان عوض میشود و شاید به کل، برنامهنویسی را کنار بگذارید! در این مقاله سعی میکنیم، کلماتی که در دنیای برنامهنویسی، به خصوص ابزارهای برنامهنویسی هوش مصنوعی، کاربرد دارند را توضیح دهیم. پس از خواندن این مقاله، به خوبی تفاوت فریمورک و پلتفرم، تفاوت API و کتابخانه و … را درک خواهید کرد.
پلتفرم (Platform) چیست؟
پلتفرم، سختافزار یا نرمافزاری است که قرار است برنامهی ما در آن اجرا شود. برای مثال، برنامهی ما ممکن است برای ویندوز، اندروید، iOS، ایکسباکس، PS4 یا … ساخته شده باشد. این محیطها، همگی، پلتفرم محسوب میشوند. هر پلتفرمی، شرایط خاص خود را دارد و ملزومات ویژهای را میطلبد. پلتفرمها، حتی از نظر ظاهری نیز با هم متفاوتند؛ به همین دلیل، هنگام ساخت یک برنامه، باید دقت کنیم که پلتفرم اجرای آن برنامه چگونه پلتفرمی است و چه ویژگیهایی دارد.
کتابخانه (Library) چیست؟
کتابخانه، مجموعهای از کدهای مختلف است که توابع پر استفاده را در اختیار کاربر قرار میدهد تا در وقت او صرفهجویی شود. برای مثال، یک کتابخانه ریاضی، توابع مهم ریاضی مانند تابع نمایی، لگاریتمی، مثلثاتی و … را در برمیگیرد. زبانهای برنامهنویسی، معمولا کتابخانههای متعددی برای انجام امور مختلف دارند. کتابخانههایی با موضوعات پردازش داده، رسم نمودار، آنالیز متن و …. نوشتن این توابع از ابتدا، معمولا انرژی و زمان زیادی را از برنامهنویس میگیرد.
API چیست؟
API، سرواژهی عبارت Application Programming Interface (رابط برنامهنویسی نرمافزار) است. API آن قسمتی از یک کتابخانه است که برنامهنویس به آن دسترسی دارد. API، در واقع نمایندهی کتابخانه و شامل اطلاعاتی است که کارکرد کتابخانه را توضیح میدهد.
تفاوت API و کتابخانه چیست؟
به طور خلاصه، کتابخانه به اصل یک کد مربوط میشود اما API، تنها یک پوستهی ظاهری است. APIهای متعددی توسط شرکتهای بزرگی مانند گوگل و فیسبوک ساخته شدهاند که ما هر روز از آنها استفاده میکنیم.
IDE چیست؟
IDE، سرواژهی عبارت Integrated Development Environment (محیط توسعه یکپارچه) است. IDE، یک نرمافزار است که در فرآیند کدنویسی، به شما کمک میکند. محیط توسعه یکپارچه، در خودکارسازی فرآیندهایی مانند عیبیابی (debugging)، اصلاح مجدد کد (refactoring) و … به ما کمک میکند. برای کدنویسی از ویرایشگر سادهای مانند NotePad هم میتوان استفاده کرد؛ اما، کدنویسی در چنین محیطی بسیار سخت است و یک IDE میتواند فرآیند برنامهنویسی را برای ما لذتبخشتر و راحتتر کند. از معروفترین IDEها، میتوان به ویژوال استودیو (Visual Studio) یا اکلیپس (Eclipse) اشاره کرد.
SDK چیست؟
SDK، سرواژهی عبارت Software Development Kit (بسته توسعهی نرمافزار) است. SDK، یک بستهی کامل از ابزارهای توسعهی نرمافزار برای پلتفرمی خاص است. این بسته میتواند ابزارهای متعددی از جمله، کتابخانهها، APIها، IDEها و … را شامل میشود. برای مثال یک SDK اندروید، همهی ابزارهای مورد نیاز برای توسعهی یک اپلیکیشن اندرویدی را دارا میباشد.
بستهی ابزار (ToolKit) چیست؟
همانطور که از اسمش مشخص است، ToolKit، مجموعهای از ابزارهای مختلفی است که در توسعهی قسمت خاصی از یک محصول به کار میروند.
فریمورک (Framework) چیست؟
فریمورک، یک چارچوب یا اسکلت استاندارد برای ساخت و توسعهی نرمافزارهاست. فریمورک، اسکلت کلی یک نرمافزار را برای شما فراهم میکند و شما میتوانید جاهای خالی آن را با کدهای مدنظر خود پر کنید. با استفاده از یک فریمورک، برای نوشتن برنامههای مشابه، صرفهجویی زیادی در زمان میشود و کدها منظمتر نوشته میشوند. برای مثال، فریمورک Java Swing ساختار کلی کد نویسی برای رابط کاربری گرافیکی جاوا را در اختیار برنامهنویس قرار میدهد. از فریمورکهای معروف در حوزهی یادگیری ماشینی و هوش مصنوعی میتوان به تنسورفلو (TensorFlow) اشاره کرد.