Kode tanpa wajah akan mematikan pemrograman, dan kami tidak akan melakukan apa-apa.


Selama pertengkaran berikutnya, seorang teman menyuarakan pemikiran yang sangat menyentuh saya. “Dalam YaP paling populer, ada begitu banyak cara berbeda untuk melakukan hal yang sama. Ini mengarah pada masalah. Tapi di Go, semuanya tidak begitu. Filosofi dari bahasa ini adalah bahwa di Go, pengembang yang berbeda memecahkan masalah yang sama dengan cara yang sama. Karena itu, kode mereka mudah dibaca, dapat diprediksi, dan dapat diandalkan. Dan bisnis besar memilih Go. ” Ini adalah argumen yang cukup kuat yang perlu dipertimbangkan dengan cermat sebelum menyangkal.


Karena itu, saya menyebar dua kali lipat, menempel pada kurangnya obat generik, dan membawa ide yang cerdas, hidup bersamanya selama beberapa hari, dan pada beberapa titik membentuk visi suramnya.


Tugas saya adalah memilih solusi yang paling cocok dari jumlah kombinasi yang tak terbatas. Inilah yang saya dapatkan bayarannya, dan inilah yang saya sukai dari pekerjaan saya, dan karenanya hidup saya. Tapi mereka bilang - solusi super tidak diperlukan. Kamu butuh yang biasa. Karena produk jadi lebih penting daripada implementasinya.


Jika mereka membuang saya ke jalan dan mengambil orang bodoh di tempat saya, dia dapat dengan mudah bekerja dengan kode saya. Sehingga perusahaan akan jauh lebih nyaman. Bisnis tidak mau bergantung pada kesempatan. Gagasan bahwa suasana hati buruk pengembang terkemuka akan mengambil untung dari bisnis tidak menarik bagi manajer puncak. Mereka menjadi manajer puncak karena mereka tahu cara menghindari situasi ketika bisnis suci mereka kehilangan uang. Dan sekarang kita hidup di masa ketika "dilakukan dengan baik" dan "menguntungkan" adalah dua hal yang berbeda.


Dan saya mengerti bagaimana kita sampai pada ini. Saya akan jelaskan sekarang, perhatikan jari-jari Anda:



Saya, seperti kebanyakan insinyur, percaya bahwa saya melakukan hal-hal besar. Apa yang saya ciptakan, otomatisasi, lakukan dengan kerja keras dan otak saya, kehidupan semua umat manusia lebih baik, sementara semua ahli Obsidian hanya menggiling lidah mereka. Tetapi kemudian saya menarik diri saya keluar dari editor kode saya, dan saya ngeri melihat betapa kejamnya saya.


Apa yang aku lakukan?


Jadi saya memikirkan arsitektur sistem yang sangat dimuat, tetapi dalam 95% kasus mereka akan menggunakannya untuk memilah selfie dengan pola dan foto anjing favorit dengan cepat di telepon. Jadi saya sedang mengembangkan klien VPN, dan apa yang akan mereka lakukan dengannya? Tonton segala macam film porno dan bajak laut bodoh?


Otak saya dilayani oleh Wishlist kecil demi menit sehingga orang-orang membawakan saya uang, sehingga saya juga memuaskan Wishlist saya.


ITU melakukan hal-hal yang baik, tetapi persentasenya dapat diabaikan. Sebagian besar memenuhi kebutuhan aneh yang sama sekali tidak ada sebelumnya karena TI tidak ada. Artinya, insinyur tidak melakukan hal-hal besar, insinyur hanya memelihara infrastruktur untuk mentransfer adonan di antara orang-orang.


Dalam keadaan seperti itu, menulis kode yang baik tidak lagi diperlukan. Ini hanya diperlukan agar saya lebih senang bekerja, dan saya tidak akan kelelahan lagi. Tetapi cepat atau lambat, manajer puncak itu datang dan berkata, “Itu saja, siapkan dan tembak. Sudah waktunya untuk memotong jarahan. "


Alih-alih "kebaikan universal" yang abstrak, TI belajar memanjakan Daftar Keinginan yang rendah dan hanya karena ini telah tumbuh menjadi industri raksasa, tempat ratusan juta orang bekerja. Pemrograman dulu masalah elit, sekarang pengisap akan duduk selama satu tahun atau lebih dan pergi menulis kode.


Dan ketika dia masuk ke industri, tidak akan ada waktu untuk menggali lebih dalam - produk dibutuhkan malam ini, jika tidak kita akan kehilangan uang. Menggali teknologi yang dalam dan berubah menjadi hobi, diperlukan hanya agar tidak menjadi gila karena menyadari ketidakberdayaan Anda sendiri.


Dalam sistem di mana Anda perlu melemparkan fitur baru ke pasar seminggu sekali, Anda memerlukan pendekatan sederhana dan alat primitif. Ketika beberapa pengembang keren muncul dengan teknologi baru, ia mencoba membuatnya sehingga diminati oleh mayoritas, karena permintaan mayoritas adalah nilai utama dunia modern. Itu sebabnya ada filosofi dan semacamnya di sini Go.


Dan saya pikir - saya tidak membutuhkan semua ini. Ini semua menyebabkan penolakan.


Jika Anda perhatikan lebih dekat, VSCode saya penuh dengan gejala berbahaya. Tslint saya tidak memungkinkan saya untuk menambah ruang ekstra. Kode saya tidak dibuat jika saya memberi nama variabel dengan huruf yang salah. Kompiler saya tidak akan berfungsi karena saya belum menambahkan komentar ke metode publik. Semuanya sederhana di sini - tulis, kawan, kode yang sama. Kode tanpa wajah. Ini bukan novel untuk Anda, apa sih gaya penulisnya ?!


Saya umumnya setuju bahwa konvensi semacam itu adalah hal yang baik, tetapi hanya selama mereka berhubungan dengan penampilan kode. Saat Anda diambil kesempatan untuk memilih bagaimana kode ini akan bekerja adalah mimpi terburuk saya. Bayangkan sebuah kasus: Anda menulis modul sensitif kinerja yang kompleks, dan mereka berkata kepada Anda: “Dengar, itu terlalu rumit. Mari kita buat lebih sederhana, itu tidak penting bahwa itu akan bekerja lebih buruk. " Apakah itu terdengar tidak masuk akal? Dan itu akan terjadi. Serius. Ya, sudah. Mereka tidak menambahkan obat generik ke Go karena obat generik itu kompleks.


Go adalah efek bisnis, bukan solusi teknik. Dia bertentangan dengan dirinya sendiri. Di sini ia menginginkan keandalan, dan ini meninggalkan kerumitan. Tetapi kompleksitas dalam industri muncul untuk keandalan. Generik ada hanya demi keandalan, untuk mengantisipasi bug dev-time potensial. Dan ya, mereka cukup rumit.


Dalam pemrograman, saya ingin menjadi kreatif. Saya ingin memiliki sejumlah besar opsi ketika merancang suatu sistem. Kami mensimulasikan realitas dalam dunia mesin, tetapi saya tahu pasti: kenyataan bukanlah hal yang sederhana, tidak ada jawaban benar dan salah di dalamnya. Dan saya merasa bahwa teknologi seperti Go mencari jawaban sederhana. Seperti, mari kita punya satu keputusan yang tepat untuk setiap tugas. Tapi ini bohong! Mungkin berhasil, tetapi selalu ada solusi yang lebih baik. Dan di bawah tekanan fakta bahwa kami tidak memiliki anggaran untuk solusi berkualitas tinggi, kami membunuh perangkat lunak sendiri, dan kemudian kami kecewa bahwa semuanya bekerja dengan buruk.



Filosofi kode berwajah ingin membuat saya mesin yang menyalin-tempel boilerplate. Dan memikirkan hal ini, saya sampai pada kontradiksi yang bahkan lebih mengerikan.


Saya selalu percaya bahwa pesan dasar pengembangan adalah: "Segala sesuatu yang dapat diotomatisasi harus diotomatisasi." Tapi ironisnya, pesan saya juga fatal.


Saya tidak siap untuk melakukan sesuatu yang bisa dilakukan oleh mesin yang bisa saya buat. Ini tidak rasional, dan saya diajarkan untuk bersikap rasional. Tetapi karena saya harus mengotomatiskan semuanya, ternyata saya harus mengotomatisasi dan otomatisasi - yaitu pengembangan. Dan ternyata kita harus senang dengan bahasa-bahasa yang secara bertahap membawa kita pada hal ini. Artinya, profesi saya, seperti kebanyakan orang lain, di dunia yang ideal seharusnya tidak ada.


Kemajuan tidak bisa dihentikan. Tapi dia bisa pergi dengan cara yang berbeda, yang saya yakin pasti. Jika pemrograman sekarang beralih ke trek Go dan praktik tanpa wajah, maka kita akan sampai pada kurva yang sangat dan bukan otomatisasi yang dioptimalkan yang dapat Anda bayangkan.


Solusi saya untuk masalah ini adalah utopis dan tidak akan tahan terhadap kritik. Saya mengerti bahwa sudah terlambat untuk menawarkannya, tetapi tetap saja.


Saya akan memisahkan bisnis dan TI sehingga hanya organisasi nirlaba yang dapat melakukan pemrograman. Dan bahwa prioritas mereka adalah peningkatan teknologi yang dalam, bebas dari arus harian. Bahwa persyaratan "kami melepaskan apa yang ada, jika tidak, keuntungan akan hilang" secara moral tidak dapat diterima. Saya akan melakukan yang terbaik untuk menjaga ambang masuk pemrograman setinggi mungkin sehingga alat tidak beradaptasi dengan pengembang rata-rata ketika seorang insinyur yang berpengalaman dan lulusan kursus kemarin dipaksa untuk menulis kode yang sama.


Ya, ini akan memperlambat kemajuan selama berabad-abad dan menghilangkan kehidupan kita dari semua roti manis yang kita tempati setiap hari. Tetapi setidaknya ini akan mengembalikan gagasan kemajuan ke jenis yang kita yakini saat-saat impuls idealis kita yang terkuat.

Source: https://habr.com/ru/post/id434478/


All Articles