Mengapa paradigma berorientasi objek butuh waktu lama untuk menjadi mainstream?

12

Saya membaca pertanyaan ini dan itu membuat saya berpikir tentang hal yang cukup baru. Bahasa berorientasi objek. Saya tidak yakin kapan yang pertama dibuat, tetapi mengapa perlu waktu lama sebelum mereka menjadi mainstream?

  • C menjadi sangat populer, tetapi tidak menjadi C ++ berorientasi objek selama bertahun-tahun (dekade?) Kemudian
  • Tidak ada bahasa utama sebelum tahun 90-an yang berorientasi objek
  • Berorientasi objek benar-benar lepas landas dengan Java dan C ++ sekitar waktu yang sama

Sekarang, pertanyaan saya, mengapa ini memakan waktu begitu lama? Mengapa C awalnya tidak dipahami sebagai bahasa berorientasi objek? Mengambil subset yang sangat kecil dari C ++ tidak akan banyak mempengaruhi bahasa inti, jadi mengapa ide ini tidak populer sampai tahun 90-an?

Earlz
sumber
1
Ha! Saya yakin seseorang pada akhirnya akan menanyakan hal ini;) Namun Anda perlu melakukan sedikit riset lebih lanjut, Smalltalk mungkin belum terlalu populer, tapi saya pikir itu dianggap sebagai arus utama, setidaknya dengan definisi istilah di awal 70-an (dan mari kita jangan lupa Simula). Juga, apakah Anda berbicara secara khusus tentang orientasi objek berbasis kelas?
yannis
6
Pertanyaan menarik. Saya baru-baru ini menemukan bahwa Simula 67 memiliki metode virtual (di '60 -ties sudah!). Tampaknya banyak konsep terpenting dalam CS ditemukan selama dua, tiga dekade pertama sejarahnya (1950-1970). Banyak hal baru yang kita lihat hari ini sebenarnya adalah campuran dari konsep yang sangat lama.
Giorgio
3
@Giorgio: Saya menganggap penemuan itu ritus peralihan yang menandai Anda tumbuh dari tergila-gila dengan yang terbaru dan terhebat menjadi pengembang yang berpengalaman yang dapat melihat melalui mode dan membedakan apa yang sebenarnya berguna.
Michael Borgwardt
@Michael Borgwardt: Saya sangat setuju dengan Anda (dan saya tidak mudah tergila-gila dengan teknologi terbaru :-)). Saya pikir pengembang yang berpengalaman harus menilai teknologi dari seberapa efektifnya ia dapat menyelesaikan masalahnya. Seorang pemula mungkin terkesan dengan hal-hal baru dan menganggapnya lebih baik hanya karena itu baru (hype). Mengenai OOP: Saya tahu bahwa konsep-konsep ini dikembangkan selama bertahun-tahun, tetapi ketika saya melihat Simula dan melihat bahwa mereka telah menemukan banyak konsep yang biasa kita gunakan hari ini, saya benar-benar kagum.
Giorgio

Jawaban:

25

Pertama, mari kita coba membuat garis waktu:

  • 1963 - Sketchpad Ivan Sutherland dianggap sebagai karya perintis dalam orientasi objek dan GUI.
  • 1967 Simula muncul, dan apakah Smalltak atau harus dianggap sebagai bahasa berorientasi objek pertama masih menjadi bahan perdebatan.
  • 1969 - Dennis Ritchie mulai mengembangkan C .
  • 1972 - Smalltalk , bahasa yang sangat dipengaruhi oleh Simula, muncul. Ini adalah gagasan Alan Kay, yang umumnya dianggap sebagai penemu istilah "orientasi objek" (Alan Kay juga mengilhami karakter eponim di Tron ;).
  • 1979 - Bjarne Stroustrup mulai mengerjakan C dengan Classes, pendahulu C ++ .
  • 1983 - Objective C muncul, dan pada dasarnya adalah upaya untuk menambahkan rasa Smalltalk tentang orientasi objek ke C.
  • 1985 - Obyek Pascal muncul, dan hampir segera dipopulerkan oleh Turbo Pascal 5.5.
  • 1986 - Pekerjaan dimulai pada CLOS , upaya untuk membawa orientasi objek ke Common Lisp.
  • 1991 - Visual Basic dirilis.
  • 1995 - Java dirilis.
  • 1995 - Delphi dirilis.

Pengaruh utama Ritchie adalah BCPL dan ALGOL (keduanya adalah bahasa yang sangat penting), dan C diciptakan pada saat pendekatan Simula dan Smalltalk terhadap orientasi objek belum dikenal. Itu selesai sekitar tahun 1972 dan C dengan Kelas muncul hanya 7 tahun kemudian, dengan Dennis Ritchie dan Brian Kernighan terlibat dalam permulaannya :

Pada saat itu, saya menganggap C bahasa pemrograman sistem terbaik yang tersedia. Itu tidak sejelas itu (1979) seperti yang terjadi kemudian, tetapi saya memiliki pakar seperti Dennis Ritchie, Steve Johnson, Sandy Fraser, Greg Chesson, Doug McIlroy, dan Brian Kernighan di koridor tempat saya dapat belajar dan mendapatkan umpan balik. Tanpa bantuan dan saran mereka, dan tanpa C, C ++ akan lahir mati.

Berlawanan dengan rumor yang berulang, saya tidak pernah diberitahu bahwa saya harus menggunakan C; saya juga tidak pernah diberitahu untuk tidak menggunakan C. Bahkan, manual C ++ pertama tumbuh dari sumber troff manual C yang diberikan Dennis kepada saya. Banyak bahasa baru dirancang di Bell labs; setidaknya dalam "Penelitian", tidak ada aturan yang menegakkan kefanatikan bahasa.

Objective C muncul 11 ​​tahun kemudian, dan keduanya serta C ++ adalah upaya besar dan sukses untuk membawa orientasi objek ke C. Kesenjangan mungkin tampak lama sekarang, tapi saya tidak berpikir itu terlalu lama pada saat itu, ingat kita sedang berbicara tentang era sebelum World Wide Web. 1993, ketika Mosaic (browser pertama) muncul adalah titik balik dalam industri ini. Java dan Delphi, dirilis beberapa tahun kemudian, memiliki keuntungan besar dibandingkan pendahulunya, setidaknya dalam hal popularitas. Web ini juga salah satu platform Sun menargetkan dengan mereka janji Wora , mungkin yang lebih penting pada waktu itu, dan Jawa tengah gencar dipasarkan sebagai satu bahasa untuk platform kemudian baru lahir.

Faktor kunci lainnya adalah bahwa akhir 1980-an dan awal 1990-an adalah waktu ketika GUI mulai menjadi populer, terutama dalam komputasi rumah, sementara pada saat yang sama perangkat keras menjadi lebih murah dan lebih murah. Orientasi objek adalah paradigma yang sangat nyaman ketika mengembangkan GUI dan aplikasi berorientasi grafis secara umum, dan Turbo Pascal, Delphi, Visual Basic dan (mungkin sampai batas yang lebih rendah) Java dipuji (pada saat itu) untuk kesederhanaan yang mereka bawa ke pengembangan GUI.

Pemasaran Sun yang agresif terhadap Jawa jelas juga memainkan peran, namun karena saya masih ingat dengan jelas interaksi pertama saya dengannya, saya jelas tidak terkesan. Reaksi pertama saya ke Jawa adalah "hm, tidak lebih dari sumber yang lapar menafsirkan C ++, saya akan tetap berpegang pada Turbo Pascal, terima kasih banyak" (hei, saya hanya 17 pada saat itu;). Saya tidak tahu bagaimana orang lain bereaksi terhadap Jawa pada saat itu, tetapi bagi saya itu hanya iseng dan saya dengan cepat pindah ke Delphi (dan Visual Basic, sigh), dan baru mulai menggunakan Java beberapa tahun kemudian, di perguruan tinggi , dan hanya karena itu adalah kursus wajib.

Meskipun benar bahwa Java, dan citarasanya pada orientasi objek, menjadi sangat populer dengan cepat, saya benar-benar tidak berpikir paradigma itu tidak cukup populer sebelum pertengahan 1990-an, pengenalan web mengubah definisi popularitas kami. Bagaimanapun, pertengahan 1990-an adalah masa ketika pengembangan perangkat lunak secara umum memiliki popularitas, dengan web, proliferasi GUI, dan perangkat keras yang lebih murah menjadi faktor utama. Jawa hanya di tempat yang tepat di waktu yang tepat.

Bacaan lebih lanjut:

Pertanyaan-pertanyaan Terkait:

yannis
sumber
Temuan terbaru: SEJARAH ALGOL 68 - Meskipun tidak ada hubungannya dengan orientasi objek, ini adalah bacaan yang menarik untuk penggemar sejarah pemrograman.
yannis
Pada tahun 1994, Python 1.0 dirilis .
gerrit
2
@gerit saya tahu, dan ada beberapa bahasa lain yang dirilis pada awal dan pertengahan 90-an yang sengaja saya lewatkan (misalnya Perl, PHP, Ruby, JavaScript), baik karena mereka tidak terlalu populer pada awalnya, atau karena mereka tidak benar-benar mendukung orientasi objek sejak awal. Python sebenarnya bukan bahasa yang berpengaruh selama tahun-tahun pertamanya ...
yannis