Perbedaan antara framework vs Library vs IDE vs API vs SDK vs Toolkit? [Tutup]

144

Saya ingin beberapa contoh. Saya selalu bingung, jadi dengan beberapa contoh saya mungkin bisa mengatasinya dengan lebih baik.

Juga: Apakah Eclipse sebuah API atau IDE?

Manoj hans
sumber
1
eclipse adalah IDE
Thielicious

Jawaban:

294

Sebuah IDE adalah sebuah lingkungan pengembangan terintegrasi - editor teks suped-up dengan dukungan tambahan untuk mengembangkan (seperti bentuk desainer, editor sumber daya, dll), kompilasi dan debugging aplikasi. misalnya Eclipse, Visual Studio.

Sebuah Perpustakaan adalah serangkaian kode yang Anda dapat panggilan dari kode Anda sendiri, untuk membantu Anda melakukan hal-hal lebih cepat / mudah. Misalnya, pustaka Pemrosesan Bitmap akan menyediakan fasilitas untuk memuat dan memanipulasi gambar bitmap, sehingga Anda tidak perlu menulis sendiri semua kode itu. Biasanya perpustakaan hanya akan menawarkan satu area fungsionalitas (pemrosesan gambar atau operasi pada file zip)

Sebuah API (application programming interface) adalah istilah yang berarti fungsi / metode dalam perpustakaan yang dapat Anda hubungi untuk meminta untuk melakukan hal-hal untuk Anda - antarmuka ke perpustakaan.

Sebuah SDK (software development kit) adalah sebuah perpustakaan atau kelompok perpustakaan (sering dengan aplikasi alat tambahan, file data dan contoh kode) yang membantu Anda dalam mengembangkan kode yang menggunakan sistem tertentu (misalnya kode ekstensi untuk menggunakan fitur dari sistem operasi ( Windows SDK), menggambar grafik 3D melalui sistem tertentu (DirectX SDK), menulis peralatan tambahan untuk memperluas aplikasi lain (Office SDK), atau menulis kode untuk membuat perangkat seperti Arduino atau ponsel melakukan apa yang Anda inginkan). SDK biasanya masih memiliki fokus tunggal.

Sebuah toolkit adalah seperti SDK - itu adalah kelompok alat (dan sering perpustakaan code) yang dapat Anda gunakan untuk membuatnya lebih mudah untuk mengakses perangkat atau sistem ... Meskipun mungkin dengan lebih fokus pada penyediaan alat dan aplikasi dari pada kode perpustakaan hanya .

Sebuah kerangka kerja adalah perpustakaan besar atau kelompok perpustakaan yang menyediakan berbagai layanan (bukan mungkin hanya satu kemampuan difokuskan karena kebanyakan perpustakaan / SDK lakukan). Sebagai contoh, .NET menyediakan kerangka kerja aplikasi - membuatnya lebih mudah untuk menggunakan sebagian besar (jika tidak semua) layanan berbeda yang Anda butuhkan (misalnya Windows, grafik, percetakan, komunikasi, dll) untuk menulis berbagai macam aplikasi - jadi satu. "Perpustakaan" menyediakan dukungan untuk hampir semua yang perlu Anda lakukan. Seringkali kerangka kerja menyediakan basis lengkap di mana Anda membangun kode Anda sendiri, daripada Anda membangun aplikasi yang menggunakan kode perpustakaan untuk melakukan bagian-bagian pekerjaannya.

Tentu saja ada banyak contoh di alam bebas yang tidak akan cocok dengan deskripsi ini.

Jason Williams
sumber
3
Anda dapat mengatakan bahwa SDK, perpustakaan, atau kerangka kerja berisi API.
Bastien Vandamme
6
SDK adalah implementasi khusus klien untuk memudahkan konsumsi API, misalnya, javascript SDK untuk API Facebook. Seringkali Anda akan melihat beberapa bahasa terwakili di bagian SDK pada dokumentasi API, misalnya, twilio API memiliki python, ruby, C #, dan Java SDK untuk API mereka. Hanya untuk membingungkan hal-hal sedikit lagi mereka menyebutnya API Perpustakaan dan SDK, dan saya sudah mendengar kedua istilah tersebut digunakan secara bergantian.
Rob
97

Analogi Mobil

masukkan deskripsi gambar di sini

IDE: MS Office of Programming. Di sinilah Anda mengetik kode Anda, ditambah beberapa fitur tambahan untuk menjadikan Anda seorang programmer yang lebih bahagia. (misalnya Eclipse, Netbeans ). Bodi mobil: Ini yang benar-benar Anda sentuh, lihat, dan kerjakan.

Perpustakaan: Perpustakaan adalah kumpulan fungsi, sering dikelompokkan ke dalam beberapa file program, tetapi dikemas ke dalam file arsip tunggal. Ini berisi program yang dibuat oleh orang lain, sehingga Anda tidak perlu menemukan kembali roda. (misalnya junit.jar, log4j.jar ). Pustaka pada umumnya memiliki peran kunci, tetapi melakukan semua fungsinya di belakang layar, ia tidak memiliki GUI. Mesin mobil.

API: Dokumentasi penerbit perpustakaan. Ini adalah bagaimana Anda harus menggunakan perpustakaan saya. (mis. API log4j , API junit ). Panduan pengguna mobil - ya, mobil juga datang dengan satu!


Kit

Apa itu kit? Ini adalah kumpulan dari banyak item terkait yang bekerja bersama untuk menyediakan layanan tertentu. Ketika seseorang mengatakan kit obat, Anda mendapatkan semua yang Anda butuhkan untuk keadaan darurat: plester, aspirin, kasa dan antiseptik, dll.

masukkan deskripsi gambar di sini

SDK : Happy Meal McDonald's . Anda memiliki semua yang Anda butuhkan (dan tidak perlu) kemas rapi: hidangan utama, minuman, makanan penutup, dan mainan bonus. SDK adalah sekelompok komponen perangkat lunak yang berbeda yang dirangkai menjadi sebuah paket, sehingga mereka "siap untuk beraksi" langsung dari kotak. Ini sering menyertakan banyak pustaka dan bisa , tetapi mungkin tidak perlu menyertakan plugin, dokumentasi API, bahkan sebuah IDE itu sendiri. (mis . Kit Pengembangan iOS ).

Toolkit : GUI. GUI. GUI. Ketika Anda mendengar 'toolkit' dalam konteks pemrograman, itu akan sering merujuk ke satu set perpustakaan yang dimaksudkan untuk pengembangan GUI. Karena toolkit adalah UI-sentris, mereka sering disertai dengan plugin (atau IDE mandiri) yang menyediakan utilitas melukis layar. (mis. GWT )

Kerangka Kerja : Meskipun bukan gagasan umum, kerangka kerja dapat dilihat sebagai kit. Ini juga memiliki perpustakaan (atau koleksi perpustakaan yang bekerja bersama-sama) yang menyediakan struktur & pola pengkodean tertentu (dengan demikian kata, kerangka kerja ). (misalnya Kerangka Pegas)

Jop
sumber
41
API bukan hanya dokumentasi. Sebenarnya ini bukan dokumentasi sama sekali. Saya mengerti analogi Anda tetapi dokumentasi atau dokumentasi API adalah manual mobil Anda dan API lebih merupakan papan dan tombol mobil Anda.
Bastien Vandamme
1
Anda dapat melakukan perbedaan antara GUI dan API. GUI (Graphical User Interface) adalah antarmuka untuk pengguna non profesional akhir. API (Application Programming Interface) adalah antarmuka untuk program lain. Ketika Anda mengembangkan dan aplikasi Anda dapat membuat GUI atau API atau keduanya. Anda juga dapat membuat jenis antarmuka lainnya.
Bastien Vandamme
Selalu ada API di belakang GUI. GUI hanya menyederhanakan use case. Dalam TI lebih untuk alasan un / profesional seperti antarmuka grafis, bukan kode. Namun tentang logika mobil Anda: Anda mungkin tidak dapat mengendarai mobil sendiri, Anda harus belajar dan tahu cara mengemudi (anggap pelajaran mengemudi sebagai tutorial atau dokumentasi). Jika Anda tidak ingin mencapainya, Anda mungkin ingin naik bus atau taksi karena tidak ada keterampilan mengemudi (dalam hal ini di sini tidak ada keterampilan pemrograman) - maka saya akan mempertimbangkan sarana transportasi publik sebagai GUI. Kedengarannya lucu tapi benar sekali.
Thielicious
Saya tidak setuju dengan "[perpustakaan] tidak memiliki GUI". Di dunia JavaScript, sangat umum bagi perpustakaan untuk memuat GUI.
user1505520
5

Pertimbangkan Pengembangan Android:

IDE: Eclipse dll.

Perpustakaan: perpustakaan android.app.Activity (Kelas dengan semua kode)

API: Interface pada dasarnya semua fungsi yang kita panggil

SDK: Android SDK memberi Anda perpustakaan API dan alat pengembang yang diperlukan untuk membangun, menguji, dan men-debug aplikasi untuk Android (---- tools - DDMS, platform ---- Emulator - versi OS Android, ---- platform- alat - ADB, ---- API dokumen)

ToolKit: Bisa jadi Bundel ADT

Kerangka kerja: Perpustakaan besar tetapi lebih berorientasi arsitektur

ashishpinninti
sumber
3

Dengan kata lain...

IDE Bahkan notepad Anda adalah IDE. Setiap perangkat lunak yang Anda tulis / kompilasi dengan kode adalah IDE.

Perpustakaan Kumpulan kode yang menyederhanakan fungsi / metode untuk penggunaan cepat.

API Antarmuka pemrograman untuk fungsi / konfigurasi yang Anda gunakan, penggunaannya sering didokumentasikan.

SDK Extras dan / atau untuk tujuan pengembangan / pengujian.

Aplikasi Tiny ToolKit untuk penggunaan cepat, seringkali GUI.

Aplikasi GUI dengan antarmuka grafis, tidak memerlukan pengetahuan pemrograman seperti API.

Kerangka Bunch of APIs / huge Library / Snippets yang dibungkus dalam namespace / atau dienkapsulasi dari lingkup luar untuk penanganan yang ringkas tanpa konflik dengan kode lainnya.

MVC Pola desain yang dipisahkan dalam Model, Tampilan, dan Pengontrol untuk aplikasi besar. Mereka tidak tergantung satu sama lain dan dapat diubah / diperbaiki / diganti tanpa memperhatikan kode lainnya.

Contoh:

Mobil (Model)
Objek yang sedang disajikan.
Contoh dalam TI: Formulir HTML.


Kamera (Tampilan)
Sesuatu yang dapat melihat objek (mobil).
Contoh dalam TI: Browser yang merender situs web dengan formulir.


Driver (Pengendali)
Seseorang yang mengendarai mobil itu.
Contoh dalam TI: Fungsi yang menangani data formulir yang dikirim.

Cuplikan Kode kecil hanya beberapa baris, mungkin bahkan tidak lengkap tetapi layak untuk dibagikan dengan cepat.

Fungsi Eksklusif Plug-in hanya untuk kerangka kerja / API / perpustakaan tertentu.

Add-on Modul atau layanan tambahan untuk GUI tertentu.

Sangat berbahaya
sumber
2

SDK mewakili kit pengembangan perangkat lunak, dan IDE mewakili lingkungan pengembangan terintegrasi. IDE adalah perangkat lunak atau program yang digunakan untuk menulis, mengkompilasi, menjalankan, dan men-debug seperti Xcode. SDK adalah mesin yang mendasari IDE, termasuk semua perpustakaan platform yang perlu diakses aplikasi. Ini lebih mendasar daripada IDE karena biasanya tidak memiliki alat grafis.

Haitham
sumber