سلام دوست خوبم. من خودم هم اینا رو جایی مستقیما نخوندم (به نظرم بیشتر واژه هایی ان که بعد از پیشنهاد از چند جای معتبر - به شکل های مختلف - خود به خود عمومیت پیدا میکنن و تعاریفی هم که ازشون میشه معمولا بسته به منبع تعریف و مورد استفاده و فرهنگ کاربرد و اینجور چیزا فرق میکنه) ولی برداشت خودمو عرض میکنم خدمتتون. اول چند تا تعریف از کتابخونه از چند تا مرجع مختلف:
A library is a collection of sources, resources, and services, and the structure in which it is housed;
http://en.wikipedia.org/wiki/Library
(1) A collection of files.
(2) In programming, a library is a collection of precompiled routines that a program can use.
http://www.webopedia.com/TERM/L/library.html
In computing, a library is a collection of similar objects that are stored for occasional use - most frequently, programs in source code or object code form, data files, scripts, templates, fonts, and physical storage units such as tape cartridges. Here are some common types of libraries.
http://searchsqlserver.techtarget.co...nition/library
که این اخری خیلی باز کرده مطلبو و از چند دیدگاه لغتو تعریف کرده. که نشوندهده اینه که چیزی که بشه بهش گفت تعریف هنوز ارائه نشده (اگه با بازی با کلمات اشتباه نشه منظورمو اینطوری بیان میکنم: تعریف باید جامع و مانع باشه، جامع یعنی باید جهان شمول باشه - در جهان مورد کاربرد نه این جهان به این بزرگیو نمیگم - و تمامی جنبه ها رو پوشش بده؛ و مانع یعنی این که نشه از توش چیزی رو حذف و یا چیزی رو بهش اضافه کرد)
Library یا همون کتابخونه، مجموعه ای از کدهای با کاربرد عمومی در راستای اهدافی همسو. مثلا کتابخونه stdio.h کتابخونه ایه که کدها و متود هایی که برای کار با ورودی و خروجی استاندارد تو سی نیازن توش گرد آوری شده (کاربرد عمومیه و اهداف همسو هستن: کار با ورودی و خروجی استاندارد) یا کتابخونه های دات نت که هممون باهاشون آشناییم یا کتابخونه های جاوا و غیره.
Framework یا بستر کاری: نمیدونم چطوری بگم تو ذهنم چیه، یه بستر برای کار (خیلی تابلوئه میدونم) عموما بسترها از اجتماع کتابخونه ها و ابزار و امکانات برای رسیدن به اهداف تجاری به وجود میان. مثل دات نت که مجموعه ایه از یه عالمه کتابخونه در کنار ابزار دیگه مثل MS SQL و زبان و کامپایلرها و سرور و دسکتاپ و ... یعنی وقتی برای پیشبرد یه فرایند تجاری، یه بستر کاری رو انتخاب کردیم، عملا باید از تمامی ابزارهای دیگه بی نیاز باشیم و اون بستر همه موارد مورد نیاز برای توسعه و نیل به هدف رو فراهم کرده باشه.
plugin یه قابلیت که به یه ابزار موجود اضافه میشه. بهترین مثالش پلاگین های فایرفاکس هستن که هممون میشناسیم یا پلاگ این های جی کوئری. این نرم افزار یا مثلا جی کوئری وجود داره و پلاگ این ها قابلیت هایی رو بهش اضافه میکنن (اما خود ابزار کماکان مستقل از اونا میتونه به حیات و فعالیتش ادامه بده).
SDK یا Software Development Kit که تا اونجایی که یادمه اولین بار از جاوا دراومد (JDK = Java Development Kit) و بعد توسط مراجع دیگه به SDK تغییر نام یافت (به خاطر عمومیت پیدا کردن مفهوم و این که دیگه فقط با جاوا طرف نبودیم، پس به یه اسم عمومی تر نیاز بود) کیت توسعه نرم افزار. میتونم اینطوری منظورمو بگم که یه بسته برنامه نویسیه که برنامه نویس رو قادر میکنه برای یه framework برنامه بنویسه. یعنی کیت ها بر مبنای بستر ها به وجود میان. شامل ابزار توسعه، داکیومنت، سمپل ها و چنین چیزایی هستن.
کلا همه اینا برآیند یافته های من بود که برای خودم خلاصه کردم. حالا درست و غلطشون رو نمیدونم و از نظرات دوستان دیگه حتما استفاده میکنم.
موفق و پیروز باشید.