সফটওয়্যার কোম্পানি
"সফটওয়্যার" শব্দটি সর্বপ্রথম ব্যবহৃত হয় ১৯৫৩ সালে, তবে ১৯৬০ সালের পর থেকে এটি ব্যাপকভাবে ব্যবহার শুরু হয়। এর পূর্বে কম্পিউটারের প্রোগ্রাম তৈরীর কাজ করতে হতো ক্রেতার অথবা UNIVAC এবং আইবিএম নির্দিষ্ট এর মত নির্দিষ্ট কিছু প্রতিষ্ঠানের মাধ্যমে। কম্পিউটার ইউজেস কোম্পানি হল প্রথম বানিজ্যিক প্রতিষ্ঠান যেখানে কম্পিউটার সফটওয়্যার এবং সেবা প্রদান করা হয়। এটি প্রতিষ্ঠিত হয়েছিল ১৯৫৫ সালে। ১৯৬০ এর প্রথমদিকে সফটওয়্যার প্রস্ততকারী প্রতিষ্ঠানসমূহ ব্যাপকভাবে সম্প্রসারিত হয়। আর এর কিছুদিন আগে থেকেই সর্বসাধারণের মধ্যে কম্পিউটার বিক্রির পরিমাণ বেড়ে যায়। বিশ্ববিদ্যালয়, সরকারী এবং বেসরকারী প্রতিষ্ঠানে তাদের চাহিদা অনুযায়ি বিভিন্ন ধরনের সফরওয়্যারের প্রয়োজন হতে থাকে। এই সময় তৈরী হওয়া সফটওয়্যার সমূহের বেশ কিছু লেখা হয়েছিল নির্দিষ্ট প্রতিষ্ঠানের কর্মচারীদের মাধ্যমে। এর থেকে আবার বেশকিছু বিনামূল্যে দেয়া হয়েছিল ঐ নির্দিষ্ট হার্ডওয়্যার প্রতিষ্ঠান থেকে। আবার কম্পিউটার ইউজেস কোম্পানি(১৯৬৯ সালে প্রতিষ্ঠিত) এর মত বিভিনন বানিজ্যিক প্রতিষ্ঠানের মাধ্যমেও বেশ কিছু সফটওয়্যার তৈরী করিয়ে নেয়া হয়। এই সময়ই কম্পিউটার প্রস্তুকারী প্রতিষ্ঠানসমূহ যন্ত্রাংশের সাথে অপারেটিং সিস্টেম এবং প্রোগ্রামিং এনভাইরোনমেন্ট যুক্ত করে দিতে থাকে।
ল্যাংগুয়েজ বাইন্ডিং
সফটওয়্যার প্রকৌশলের পরিভাষায় আবদ্ধকরণ বা বাইন্ডিং বলতে এক ধরনের আবরক প্রোগ্রামসম্ভার বা র‍্যাপার লাইব্রেরিকে বোঝানো হয়, যেটি ব্যবহার করে কোন একটি প্রোগ্রামিং ভাষায় লেখা প্রোগ্রামসম্ভার বা লাইব্রেরিতে অন্য একটি প্রোগ্রামিং ভাষা ব্যবহার করে ঢুকে সেগুলির সুবিধা ভোগ করা যায়। অর্থাৎ আবদ্ধকরণ বা বাইন্ডিং দুটি পৃথক প্রোগ্রামিং ভাষার মধ্যে সংযোগসেতু হিসেবে কাজ করে। অনেক সফটওয়্যার প্রোগ্রামসম্ভার সিস্টেম প্রোগ্রামিং ভাষা যেমন সি, সি++ ইত্যাদি ব্যবহার করে লেখা হয়। অন্য কোন প্রোগ্রামিং ভাষা (বিশেষ করে উচ্চস্তরের প্রোগ্রামিং ভাষা) থেকে যেমন জাভা, কমন লিস্প, পাইথন ইত্যাদি ব্যবহার করে এইসব প্রোগ্রামসম্ভার ব্যবহার করতে হলে "আবদ্ধকরণ" বা বাইন্ডিং এপিএই প্রয়োজন হয়। অন্যথায় সি বা সি++ ভাষাতে লেখা কোন প্রোগ্রামসম্ভারে ঢুকতে হলে একজন সফটওয়্যার প্রস্তুতকারক বা সফটওয়্যার প্রোগ্রামলেখককে সি বা সি++ শিখতেই হত। উদাহরণস্বরূপ বলা যেতে পারে, যখন সি প্রোগ্রামিং ভাষা ব্যবহার করে লেখা কোন লাইব্রেরি বা প্রোগ্রামসম্ভার পাইথন ভাষা দিয়ে ব্যবহার করার প্রয়োজন হয়, তখন পাইথন আবদ্ধকরণ বা পাইথন বাইন্ডিং ব্যবহার করা হয় । আবার জাভা প্রোগ্রামিং ভাষা থেকে সাবভার্শন ব্যবহার করতে হলে লিবসভিএনজাভাএইচএল ব্যবহার করতে হবে।