Saya ingin tahu bagaimana tim programmer biasanya mengelola pengembangan perangkat lunak mereka di tahun 80-an dan awal 90-an. Apakah semua kode sumber hanya disimpan pada satu mesin yang digunakan semua orang, atau apakah sumbernya diedarkan dan disalin secara manual melalui floppy dan digabung secara manual, atau apakah mereka benar-benar menggunakan sistem kontrol revisi melalui jaringan (misalnya CVS) seperti cara kami melakukannya sekarang? Atau mungkin sesuatu seperti CVS offline sedang digunakan?
Saat ini semua orang bergantung pada kontrol sumber .. ini adalah no-brainer. Tetapi di tahun 80-an, jaringan komputer tidak mudah untuk diatur, dan hal-hal seperti praktik terbaik masih dipecahkan ...
Saya tahu bahwa pada pemrograman tahun 70-an dan 60-an sangat berbeda sehingga kontrol revisi tidak diperlukan. Tetapi pada tahun 80-an dan 90-an orang mulai menggunakan komputer untuk menulis kode, dan aplikasi mulai bertambah dalam ukuran dan cakupan, jadi saya bertanya-tanya bagaimana orang mengelola semua itu saat itu.
Juga, bagaimana perbedaan antara platform? Katakanlah Apple vs Commodore 64 vs Amiga vs MS-DOS vs Windows vs Atari
Catatan: Saya kebanyakan berbicara tentang pemrograman pada mikrokomputer saat ini, bukan mesin UNIX besar.
sumber
Jawaban:
Pertama ketika mikrokomputer pertama kali keluar, perangkat lunak sebagian besar ditulis pada sistem Unix atau VMS dan "cross compiler / assembled" ke sistem target. Sistem komputer ini adalah multi-pengguna sering dengan banyak terminal dan memiliki sistem kontrol kode sumber seperti SCCS .
Jaringan adalah pilihan pada mikrokomputer dari pertengahan 1980-an, sering terhubung ke sistem Unix sebagai "server file" (mungkin hanya menggunakan RS232 dan Kermit untuk mentransfer file, dengan SCCS pada sistem Unix)
Lihat Sejarah Kontrol Versi oleh Eric Sink untuk mendapatkan gambaran umum tentang bagaimana sistem kontrol versi telah berubah selama bertahun-tahun.
Saya ingat pernah membaca tentang kontrol kode sumber di "BYTE" pada akhir 1980-an, jadi pasti sudah digunakan pada "sistem kecil" saat itu.
SourceSafe didirikan dengan baik pada pertengahan 90-an yang berjalan pada Dos, Windows, dll.
Tautan ini menunjukkan sebuah artikel tentang PVC yang berjalan pada PC dari tahun 1994 , itu pada versi 6.2, jadi sudah jelas untuk beberapa waktu, Wikipedia mengatakan ini berasal dari tahun 1985 .
Namun floppy disk bernomor digunakan oleh sebagian besar programmer yang bekerja pada perangkat lunak skala kecil hingga akhir 1990-an, untuk diganti dengan folder pada hard disk mereka, membuat salinan kode sumber setiap hari.
Saya ingat bekerja pada proyek perangkat lunak porting dari Unit ke Windows NT 3.5. Programmer yang tahu bagaimana memprogram untuk Windows sering bahkan belum pernah mendengar tentang kontrol kode sumber pada waktu itu.
Timeline ini diambil dari posting blog oleh codicesoftware , mereka menjual Plastic SCM, namun tinjauan sejarah sistem lain tampaknya masuk akal, beberapa sistem yang lebih tua sebelum RCS ditinggalkan gambar.
sumber
Ini mungkin tidak representatif untuk industri game pada umumnya, tetapi ini bekerja dengan baik di perusahaan game kecil kami. Tidak pernah bekerja dengan perangkat lunak bisnis, yang mungkin memiliki persyaratan lain.
Dari pertengahan 80-an hingga pertengahan 90-an saya sering menggunakan nomor versi di akhir nama file, misalnya "game.003". Saat itu saya sedang memprogram 90% di assembler dan semua kode berada dalam satu file besar, mungkin dengan satu atau dua termasuk, di mana saya secara manual harus memperbarui nomor versi ketika hal-hal berubah. Saya hanya akan menambah nomor setelah saya memiliki versi stabil yang saya yakin ingin saya pertahankan.
Ini akhirnya diskalakan dengan nyaman untuk sekitar 3 orang. Setelah itu kami mengembangkan tim dan berakhir dengan kekacauan file di seluruh tempat selama satu tahun atau lebih sampai saya bosan mencoba melacak perubahan individu dan kami mulai menggunakan Perforce sekitar 1997-98.
sumber
Anda harus melihat ini dalam konteks infrastruktur bersama pada saat itu. Pada awal tahun 80-an IBM merilis "komputer pribadi" dan Anda dapat mengambil ini secara harfiah. Cara paling umum untuk mengembangkan aplikasi untuk PC adalah membuat satu orang dan mencoba untuk menjualnya. Jadi satu floppy per versi yang dirilis mungkin akan umum. Anda dapat membeli label warna-warni yang bagus dan menuliskan nama produk Anda serta versinya. Untuk sebagian besar produk sukses pada masa itu, Anda tahu nama orang yang menulisnya.
Jaringan diperkenalkan sebagai add-on. API Klien diretas ke dalam DOS dan bagian server didedikasikan, sistem operasi berpemilik pada mesin yang terpisah. Biasanya mahal (bukan untuk massa) dan pada dasarnya hanya menawarkan berbagi file dan printer. Di dunia PC segalanya mulai berubah dengan diperkenalkannya Windows for Workgroups dan Windows NT. Itu membuka banyak kemungkinan. Jaringan akhirnya terintegrasi dalam lingkungan yang dikenal oleh seorang programmer dan seorang programmer Windows dapat menulis aplikasi yang dapat berbicara satu sama lain melalui jaringan. Ini adalah akhir dari NetWare sebagai sistem operasi jaringan yang dominan.
Segera beberapa sistem kontrol versi muncul dengan komponen klien dan server yang dapat Anda instal dengan mudah pada kombinasi mesin apa pun. Dengan plug-in untuk komponen IDE dan klien yang mendukung opsi baris perintah yang memungkinkan integrasi dalam sistem build.
Setelah web lepas landas dan PC-akses ke internet menjadi di mana-mana, Anda mendapatkan gerakan open source dan sistem kontrol sumber berbasis web. Lucunya, ketika PC diperkenalkan ini dipandang sebagai langkah berani dari komputasi terpusat ke komputasi terdistribusi. Tetapi definisi sentral versus didistribusikan telah kabur. Apakah cloud distribusi utama atau hanya komputer pusat monster baru yang memegang semua kekuatan, sama seperti mainframe IBM dulu?
sumber
Pada 90-an saya pasti menggunakan perangkat lunak untuk kontrol versi. Ada SCCS, dan MPW Apple memiliki kontrol versi bawaan (Proyektor). Dan saya pikir saya menggunakan Proyektor sekitar tahun 1992. Di satu perusahaan sistem kontrol versi adalah sebuah lemari besar dengan floppy disk setiap versi, diambil seminggu sekali.
sumber
Pekerjaan pemrograman musim panas pertama saya ketika saya masih kembali ke sekolah (kira-kira sekitar tahun saya kira) adalah menerapkan manajemen versi otomatis dan sistem cadangan untuk perusahaan kecil tempat saya bekerja. Kami memiliki 3 pcs yang terhubung ke server netware, dan pemilik akhirnya bosan menangani konflik versi dan mencari apa yang perlu dicadangkan ke disket, jadi kami membuat pengembang bekerja di pc mereka sendiri daripada langsung dalam file yang disimpan di server seperti yang mereka miliki sampai sekarang, dan saya menulis sebuah sistem yang membuat semua file mereka diatur untuk dibaca hanya sampai mereka menjalankan program yang memeriksa tidak ada orang lain yang menggunakannya, kemudian mencatat penggunaannya pada database btrieve pusat (database relasional dengan kueri sederhana api daripada sql penuh yang berjalan di server netware). Program lain memeriksa perubahan yang dimodifikasi dan menyalinnya ke server,
Walaupun sistem ini dibuat khusus untuk perusahaan kecil tempat saya bekerja, saya membayangkan banyak toko serupa memiliki proses yang serupa.
sumber
Dari pengalaman pribadi: 1985 pengembangan jaringan MS-DOS PVCS tersedia dan terlalu mahal. Untuk Apple dan semua PC non-MSDOS: tidak ada. Saya menggunakan T-lib ($ 50) dari tahun 1987. Port Unix (SCCS), mulai menyaring sekitar tahun 1990, SourceSafe sekitar tahun 1992.
Pada 1995, jika Anda tidak menggunakan VCS Anda tidak serius.
sumber
Pada 1993-1995 saya bersama seorang manajer pensiun dengan 15 pengembang melakukan pengembangan C / C ++ di SunOS dengan SPARCStation 20s dan Sun IPX. Basis kode kami berada di direktori yang dipasang NFS. Awalnya kami melakukan Copy Folder Versioning , tetapi pada beberapa titik kami pindah ke SCCS dan beberapa tim mulai menggunakan RCS .
Pada 1995 saya pindah ke perusahaan lain dengan 80+ pengembang melakukan pengembangan C / C ++ di New York, London, dan Hong Kong. Kami menggunakan ClearCase dengan add-on multi-situs untuk mengelola lingkungan pengembangan.
ClearCase pandai menyinkronkan basis kode antar situs, tetapi pada saat itu diperlukan hampir seorang administrator penuh waktu untuk menjaga semuanya tetap berjalan. Itu juga jauh lebih lambat karena ClearCase menyajikan file dalam sistem file virtual, dengan konfigurasi yang menentukan versi direktori dan nama file wildcard berdasarkan cabang, waktu, dan / atau tag. Dalam kasus patologis, seseorang dapat menentukan setiap file individu untuk memiliki versi yang berbeda.
sumber