5 poin oleh GN⁺ 4 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Dokumenter sejarah 40 tahun C++ yang merangkum perjalanan dari awal di Bell Labs, adopsi global, hingga pertumbuhannya saat ini, dengan kemunculan tokoh-tokoh yang terlibat dalam sejarah C++, standardisasi, dan ekosistem alatnya
  • C++ berawal dari C with Classes yang dibuat Bjarne Stroustrup di Bell Labs dengan menggabungkan kemampuan kontrol perangkat keras dari C dan abstraksi berorientasi objek dari Simula, lalu berkembang menjadi bahasa abstraksi efisien untuk sistem berskala besar
  • Implementasi awal CFront mengubah C++ menjadi kode C sehingga infrastruktur dan pustaka C yang ada tetap bisa digunakan, dan setelah jumlah pengguna meningkat sejak 1983, kompatibilitas menjadi tantangan utama
  • Standardisasi ANSI/ISO yang dimulai karena tekanan dari IBM, HP, dan Sun mencegah perpecahan implementasi antar-vendor, dan standar 1997 mencakup namespace, exception, template, dan STL
  • Awal 2000-an menghadirkan musim dingin C++ akibat Java dan C#, runtuhnya dot-com, dan cepatnya peningkatan performa CPU, tetapi sekitar 2004 penskalaan frekuensi berhenti, paralelisme menjadi penting, dan C++11 memicu renaisans
  • Saat ini C++ digunakan di CERN, game, keuangan, AI dan HPC berbasis CUDA, serta sistem embedded, sementara keamanan memori, kompleksitas, ukuran komite standar, dan kurangnya pendanaan tetap menjadi tantangan utama

C with Classes yang lahir di Bell Labs

  • C++ adalah bahasa yang sudah berusia lebih dari 40 tahun, dan saat pertama kali dibuat belum ada alat seperti editor, penyorotan sintaks, penelusuran kode, pelengkapan otomatis, atau refactoring, sementara banyak pengembang masih memakai BASIC atau assembly yang berbeda untuk tiap chip
  • Pada masa ketika program yang lebih besar dan lebih kompleks mulai dibutuhkan, Bjarne Stroustrup ingin membangun sistem terdistribusi di Bell Labs, dan untuk menangani elemen seperti device driver, antarmuka jaringan, manajer memori, dan proses, dibutuhkan bahasa tingkat rendah
  • C memberi kendali penuh atas perangkat keras dan cocok untuk system programming, tetapi ketika program membesar, C kurang mampu mengekspresikan struktur seperti modul, kanal komunikasi, dan protokol
  • Stroustrup menyukai type safety yang kuat, tipe buatan pengguna, class, dan hierarki class dari Simula yang ia gunakan di Cambridge, tetapi ia menilai Simula terlalu lambat dan terlalu boros memori
  • Karena itu ia membuat C with Classes dengan memasukkan fungsi-fungsi dasar Simula ke dalam C, dan selama hampir 40 tahun berikutnya C++ dikembangkan ke arah agar bisa melakukan semua yang bisa dilakukan Simula maupun C

CFront, nama, dan penyebaran awal

  • C with Classes mula-mula dibuat dalam bentuk preprocessor C, tetapi ketika orang lain mulai memakainya, Stroustrup menilai perbedaannya dengan C belum cukup besar lalu menginvestasikan satu tahun untuk memperbaiki compiler dan bahasanya
  • CFront tidak menghasilkan machine code lewat backend tradisional, melainkan mengompilasi ke kode C, sehingga pengguna C++ bisa mempertahankan lingkungan C yang sudah ada tanpa harus mengadopsi seluruh infrastruktur atau pustaka baru
  • CFront dibuat pada 1983 dan merupakan compiler sungguhan yang melakukan lexical analysis, parsing, type checking, pembuatan representasi tree, dan optimisasi tree
  • Nama C++ berasal dari operator ++ di C yang berarti peningkatan; secara makna ++C mungkin lebih tepat, tetapi dipilih C++ demi kemudahan pengindeksan dan referensi
  • AT&T sempat mencoba menjual compiler C++ saat masuk ke bisnis komputer dan perangkat lunak, tetapi karena perangkat kerasnya tidak cukup laku, implementasi awal C++ pada praktiknya bisa tersebar luas hanya dengan biaya pita dan lisensi komersial yang rendah
  • Selama некоторое waktu Stroustrup menangani sendiri dokumentasi, compiler, implementasi bahasa, dan helpdesk, sementara investasi AT&T sangat kecil; pada suatu titik hanya dialokasikan 5.000 dolar untuk tiga tahun penyebaran bahasa pemrograman umum ini
  • Di CFront 2.0 ditemukan bug pada penanganan multiple inheritance, dan karena fitur inti yang sudah dijanjikan bisa rusak dengan cara yang tak bisa diperbaiki setelah sampai ke lapangan, versi perbaikannya dibuat dan didistribusikan dalam beberapa hari
  • Karena nomor rilis yang sama harus dipertahankan, versi itu dirilis sebagai 2.0.0 alih-alih 2.0.1, dan kompatibilitas menjadi tuntutan yang begitu dominan sampai secara bercanda disebut “C word”

Standardisasi dan STL

  • C++ adalah alat untuk meningkatkan produktivitas internal AT&T, tetapi bahasa yang terkurung di satu perusahaan tidak mungkin sukses, sehingga dibutuhkan pengembang eksternal dan ekosistem pustaka
  • Sebelum web, jalur penyebaran informasi adalah grup seperti comp.lang.c++ di Usenet dan majalah komputer seperti Byte, dan pada akhir 1980-an Stroustrup memperkenalkan bahasa ini lewat ceramah di berbagai perusahaan dan organisasi
  • Penggunaannya terus bertambah tanpa kampanye iklan atau sponsor kuat, tetapi ketika Borland, Microsoft, IBM, Sun, dan vendor lain masing-masing membuat implementasi C++ serta desain template sendiri, kompatibilitas kode terpecah secara serius
  • Perwakilan IBM, HP, dan Sun meminta Stroustrup untuk melakukan standardisasi C++ di bawah aturan ANSI; Stroustrup menilai itu terlalu dini, tetapi setahun kemudian akhirnya setuju membuat dokumen dasar untuk standardisasi
  • Annotated Reference Manual, atau ARM, menjadi dokumen masukan untuk standardisasi dan mengarah pada dimasukkannya fitur seperti template, exception, dan namespace
  • Standar didefinisikan sebagai kontrak antara orang yang menulis kode C++ dan implementasi C++, sebuah mekanisme agar banyak vendor menerima kode yang sama dengan makna yang sama
  • STL buatan Alexander Stepanov berpusat pada gagasan bahwa algoritme harus bisa berjalan di semua struktur data yang berlaku, dan bahwa struktur data harus bisa saling mengisi data
  • Sebelum STL, semua orang membuat sendiri array, list, tree, container, dan pendekatan algoritmenya, tetapi STL menawarkan satu cara yang kuat untuk mendefinisikan algoritme dan container
  • Usulan STL ditentang karena dianggap terlalu terlambat dan terlalu besar untuk jadwal standardisasi, dan perusahaan besar seperti Microsoft juga menentangnya, tetapi setelah presentasi dan diskusi, sekitar 80% komite menyetujuinya sehingga masuk ke standar
  • C++ distandardisasi pada November 1997, dan namespace, exception, template, serta Standard Template Library ditambahkan sebagai fitur dasar utama
  • LLVM dimulai setelah standardisasi ini, sehingga tidak menanggung beban migrasi kode lama dan bisa memakai fitur-fitur baru sesuai cara yang dimaksudkan

Musim dingin dan renaisans C++11

  • Pada 1990-an, C++ menjadi bahasa yang mengubah pengembangan yang sebelumnya berpusat pada Fortran di bidang perangkat lunak dan komputasi fisika energi tinggi seperti di CERN, dan pustaka serta kode lama dipindahkan ke C++ atau dibuat ulang agar cocok dengan C++
  • Dalam pengembangan game, ketika kartu video dan API mulai menangani pekerjaan tingkat rendah, muncul arus perpindahan dari C dan assembly ke C++, dan C++ dipakai dalam ekosistem engine seperti Unreal
  • Di keuangan, muncul program trading dan high-frequency trading yang membuat latensi mikrodetik menjadi penting, dan C++ dipakai sebagai bahasa yang bisa memberi latensi rendah tanpa harus melakukan mikro-optimisasi di setiap baris
  • Bersamaan dengan runtuhnya dot-com pada 2000, Java naik sebagai “bahasa masa depan” dan “bahasa internet” lewat pemasaran kuat dari Sun, dan Java muncul sebagai respons eksplisit terhadap kompleksitas C++
  • Di internal Microsoft ada keinginan untuk menggabungkan kemudahan pengembangan berbasis form ala Visual Basic dengan performa dan daya ekspresi C++, dan hasilnya adalah C#
  • Pada 2000–2005 bukan hanya terjadi stagnasi sederhana, tetapi kemunduran C++, karena saat itu frekuensi CPU terus meningkat sehingga banyak perancang bahasa dan pengembang menganggap performa kurang penting
  • Sekitar 2004, penskalaan frekuensi prosesor berakhir, batas performa dan daya pada single core muncul, dan hasil dari instruction-level parallelism mulai menurun, menandai berakhirnya era ketika perangkat keras otomatis membuat program lebih cepat
  • Multi-core dan paralelisme menjadi penting, tetapi standar C++ saat itu sama sekali belum memiliki threading, dan email Herb Sutter “C++ multi-threading: is the standardization committee listening” menyoroti masalah itu
  • C++0X dimulai pada 2002 dan semula ditargetkan selesai pada 2007–2009, tetapi terus tertunda karena ingin memasukkan lebih banyak fitur penting, hingga akhirnya memakan waktu 13 tahun
  • C++11 memperkenalkan move semantics, concurrency, auto, range-based for loop, smart pointer, lambda, constexpr, dan lainnya, serta menjadi standar pertama di keluarga bahasa C yang secara resmi menangani threading
  • C++11 menjadi renaisans karena kebutuhan akan fitur bahasa yang lebih mudah dan lebih aman bertemu dengan kebutuhan untuk memaksimalkan performa perangkat keras
  • Setelah itu diperkenalkan train model untuk merilis standar tepat waktu, dan komite memilih siklus tiga tahunan alih-alih dua tahunan
  • C++14 adalah rilis kecil berisi hal-hal yang belum sempat masuk ke C++11 dan perbaikan bug, sementara C++17 dan C++23 menambahkan banyak fitur bahasa dan pustaka standar

Skala dan tantangan saat ini

  • Kompleksitas C++ terus membesar, dan bahasa ini dikritik karena memiliki banyak cara untuk inisialisasi variabel serta dinilai sebagai “kompleksitas yang sulit dipahami”
  • Komite standar juga membesar hingga beranggotakan 527 orang, dan ada kekhawatiran bahwa kini jumlah komite dan ketuanya setara dengan seluruh jumlah anggota pada masa awal
  • Dalam desain bahasa, menambah hampir selalu mungkin tetapi menghapus hampir mustahil, sehingga pertanyaan yang lebih penting daripada apa yang harus dimasukkan adalah kapan harus menolak sesuatu
  • C++ dipakai di pembangkitan listrik, turbin angin, rice cooker, arena bowling, film Hollywood, mobil, keuangan, kamera, dan banyak tempat lain, hingga muncul ungkapan bahwa bahasa ini ada “kurang lebih di mana-mana”
  • Codebase C++ milik HRT terdiri dari lebih dari 1 juta baris dan 15.000 file, dan pada 2025 saja sekitar 800 pengembang membuat 84.000 commit
  • Dalam game, Unity memakai C# sedangkan Unreal memakai C++, dan game seperti Call of Duty yang membutuhkan frame rate tinggi serta grafis cepat menggunakan C++ karena faktor kecepatan
  • Di Nvidia dan komputasi akselerasi, C++ juga penting; meski di permukaan orang memakai Python, beban komputasi sebenarnya ditangani oleh pustaka CUDA yang sangat dioptimalkan
  • Rust dan C++ disebut sebagai bahasa yang tumbuh cepat, dan ditampilkan angka bahwa jumlah pengembang C++ meningkat dari 9,4 juta pada 2022 menjadi 16,3 juta pada 2025
  • Permintaan akan bahasa yang penting dalam efisiensi daya dibanding performa terus ada, sehingga C++ mempertahankan posisi yang unggul dan sulit digantikan di sejumlah use case
  • Pada saat yang sama, ada kekhawatiran bahwa pendanaan untuk C++ bisa berkurang karena para pemain besar beralih ke AI
  • Selama pandemi, pemerintah dan regulator mulai mendorong peralihan dari C++ yang pada dasarnya tidak memberikan keamanan memori, dan keamanan memori dipandang sebagai masalah terpenting yang harus diselesaikan
  • Di C++26, demi penguatan perangkat lunak, variabel yang belum diinisialisasi tidak lagi menjadi undefined behavior, dan pustaka standar C++26 akan menyediakan opsi bounds safety untuk tipe umum seperti string, span, dan vector
  • Static reflection di C++26 adalah fitur yang memungkinkan kode program melihat kode program, dan dinilai sebagai salah satu fitur tunggal terstandar yang paling berdampak
  • AI mungkin akan sangat memengaruhi keamanan bahasa dan cara bahasa pemrograman digunakan, tetapi kesimpulannya tetap bahwa belum ada yang tahu pasti apa yang akan terjadi ke depan

1 komentar

 
GN⁺ 4 jam lalu
Komentar Hacker News
  • Ucapan Ken Thompson yang mengkritik C++ sebagai tumpukan ide yang tidak konsisten dan rumit masih terasa mengena. Terakhir kali memakainya untuk kerja adalah C++98, dan 11/17/20 cuma sempat disentuh sedikit karena rasa penasaran
    Kalau c++/cfront tidak menumpang aura C, rasanya meragukan apakah ia akan dipakai luas, dan menurutku itu sekaligus menjadi identitas maupun batasan yang tidak berusaha diubah oleh C++. Sangat menjengkelkan menghabiskan waktu yang mirip untuk “membersihkan” implementasi dengan alat seperti Coverity/Valgrind, padahal itu hal yang seharusnya bisa ditangani compiler
    Di era C++98, lewat buku Bjarne tentang struktur internal, masih cukup mungkin memahami apa yang sedang terjadi, tetapi setelah itu buku-buku jenis “effective, more effective, proficient, performant C++” membengkak seperti industri, sehingga sebelum LLM muncul aku sudah menyerah berharap bisa memahami kode lama buatan orang lain. Jauh lebih memuaskan menghabiskan waktu untuk mempelajari domain masalahnya
    Meski begitu, karena ada tokoh-tokoh yang kusukai seperti Kernighan dan Stepanov, dokumenter ini tetap ingin kutonton

    • Fakta yang tidak terlalu dikenal: ketika sedang mempertimbangkan apakah Zortech C akan diperluas menjadi C++, aku khawatir soal hak kekayaan intelektual AT&T, jadi aku menghubungi pengacara IP AT&T, Ryan Williams
      Aku bertanya apakah membuat compiler C++ perlu lisensi, dan apakah namanya harus disebut sesuatu selain C++; dia tertawa dan bilang terserah saja, lalu bahkan berterima kasih karena aku satu-satunya orang compiler yang pernah meminta izin. Beberapa tahun lalu aku melihat obituarinya; dia orang yang baik
    • Landasan keberhasilan C++ adalah Zortech C++. Saat itu 90% pemrograman dilakukan di MS-DOS, dan cfront nyaris tidak layak dipakai di DOS
      Kompilasinya lambat sampai menyiksa, dan tidak mendukung pointer near/far yang wajib untuk aplikasi yang tidak sepele. Zortech C++ menyelesaikan masalah-masalah itu dan terjual laris, menciptakan massa kritis yang dibutuhkan untuk keberhasilan C++
      Trafik comp.lang.c++ melonjak tajam, dan Borland melihat penjualan kami lalu membatalkan produk bahasa berorientasi objek mereka sendiri dan membuat Turbo C++. Microsoft juga melihat keberhasilan Borland lalu membuat C++ mereka sendiri
      Kami juga menjual banyak compiler Zortech C++ ke Microsoft, dan mereka memakainya untuk mengembangkan COM. Aku juga pernah mendengar rumor bahwa Microsoft sedang membuat C berorientasi objek mereka sendiri bernama C*, tetapi aku tidak pernah memastikannya
    • Banyak orang melewatkan bahwa C mungkin bertahan justru karena C++ ada. Kalau C++ tidak ada, tekanannya untuk memasukkan lebih banyak fitur ke dalam C sendiri pasti akan sangat besar
      Salah satu alasan komite C bisa lama bertahan tanpa menambahkan terlalu banyak hal adalah karena mereka bisa menunjuk ke C++ dan berkata, “itu urusan mereka, bukan urusan kami.” Tanpa C++, entah C akan menjadi bahasa seperti apa dengan kelas, template, dan lambda
    • C++98 juga cukup berbeda dari C++11. Buku C++11 karya Bjarne terasa sama sekali berbeda dibanding edisi 98
    • Aku sangat menghormati Ken Thompson dan para tokoh UNIX lama, tetapi kurasa mereka pun akan mengakui bahwa dunia nyata itu berantakan dan solusi terbaik yang terisolasi tidak selalu menang
      C dan UNIX yang mereka buat juga mengalahkan sistem LISP dan Smalltalk yang lebih maju, karena implementasinya lebih sederhana. Bahkan sistem operasi berbasis Plan 9 mereka yang lebih maju pun tidak mampu menyingkirkan keluarga Unix yang lebih tersebar luas
      Pada akhirnya, daya distribusi dan “cukup bagus” tampaknya selalu menang. Menurutku bahasa dinamis seperti Perl, Python, Ruby, JavaScript, dan PHP, serta Java yang dipasarkan sangat kuat, memberi fitur tingkat tinggi yang cukup bagus sehingga orang tidak beralih ke Lisp dan Smalltalk
      Dari sudut pandang ini, C++ mungkin merupakan cara untuk menambahkan fitur tingkat tinggi ke bahasa low-level berperforma tinggi yang sudah diadopsi luas, sehingga menjadi teknologi yang cukup bagus untuk adopsi massal
  • Akhir-akhir ini aku banyak bekerja dengan C++, jadi kupikir aku akan menonton videonya sambil menunggu build selesai. Durasi videonya pas sekali, dan syukurlah videonya juga sangat bagus

    • Aku selalu berusaha membaca sebanyak mungkin soal sejarah C++, dan video ini juga sangat kuantisipasi. Proses evolusi C++ terasa benar-benar menarik
    • Aku penasaran ini cuma posting bercanda atau build-nya memang benar-benar memakan waktu sekitar satu jam. Kalau iya, itu benar-benar tidak masuk akal
  • Secara pribadi, selama sekitar 15 tahun memakai berbagai bahasa, C++ adalah bahasa paling elegan yang pernah kupakai. Kalau kamu tipe “systematizer” dan ingin punya model mental yang sangat presisi tentang apa yang kamu tulis sampai bit terakhir, tidak ada yang menandingi C++
    Aku mengakui ada keterbatasan dan ketidakpastian yang datang dari compiler dan sebagainya, tetapi tetap begitu menurutku

    • Bisa beri contoh model mental yang presisi tentang objek seperti apa?
    • Menurutku hal yang sama juga bisa dikatakan tentang Rust
    • Bahasa yang elegan adalah bahasa yang bisa melakukan banyak hal dengan sangat sedikit. Forth dan Scheme adalah bahasa yang elegan
      Tentu saja orang bebas suka bekerja dengan C++, dan memang benar banyak hal bisa dicapai dengan C++, tetapi rasanya tidak terlalu kontroversial untuk mengatakan bahwa C++ sulit dianggap melakukan itu dengan “sangat sedikit”
  • Senang melihat Andrei Alexandrescu masuk dalam dokumenter ini. Modern C++ Design adalah buku yang saat kubaca benar-benar membuka cara berpikirku, dan mungkin masih bisa begitu sampai sekarang. Ada yang pernah membacanya?

    • Presentasinya termasuk yang paling kusukai. Dia pembicara yang hebat, sangat engaging, dan punya selera humor yang luar biasa serta memakainya dengan sangat baik
    • Menurutku masih tetap menyenangkan, tetapi buku-buku Andrei adalah dorongan terakhir yang membuatku menjauh dari C++ selama bertahun-tahun. Buku-bukunya sangat bagus, dan sekaligus memantapkanku untuk pindah ke bahasa lain. Waktu itu Go
    • Setuju. Modern C++ Design mungkin adalah buku pemrograman yang memberiku paling banyak dalam karierku
    • Aku juga merasakan hal yang sama. Aku pernah bertemu Andrei sekali di Meetup München, dan ketika kukatakan bahwa dia mengajariku cara berpikir, percakapannya jadi agak canggung. Tapi tetap menyenangkan
    • Aku baru membacanya belum lama ini. Beberapa bab bagus, dan khususnya policy class menarik karena menunjukkan bagaimana itu memperbaiki sebagian masalah dalam desain berorientasi objek
      Aku menyarankan merangkum tiap bab ke chatbot AI dan menanyakan padanan modernnya. Beberapa idiomnya sudah diperbaiki, dan satu bagian utuh tampaknya bisa digantikan dengan penggunaan std::variant dan std::visit
  • C++ memang harus ditinggalkan. Saya paham banyak orang sudah berinvestasi dan sangat banyak kode ditulis dalam C++. Dulu saya penggemarnya dan sampai sekarang ini masih bahasa utama saya untuk pekerjaan, tetapi pada 2026, ketika LLM bisa menemukan semua kerentanan dan jumlah penyerang juga bertambah, kita butuh bahasa dengan keamanan sebagai bawaan
    C++ adalah bahasa yang mengharuskan keamanan diaktifkan secara opsional dan menuntut kewaspadaan ekstrem untuk mendapatkannya. Itu tidak berhasil, dan pengalaman puluhan tahun membuktikannya

    • Lalu harus diganti dengan apa?
    • Kalau LLM bisa menemukan semua kerentanan bahkan tanpa source code, bukankah akan lebih mudah lagi jika kodenya tersedia?
    • C++ adalah bahasa yang hebat pada zamannya. Tidak ada bahasa yang lebih cepat sambil tetap memberikan abstraksi sekuat itu. C++11 juga menunjukkan betapa besar bahasa ini bisa berubah saat hal-hal seperti shared_ptr masuk
      Hampir semua ide pernah dicoba, dan kita jadi tahu apa yang berhasil dan apa yang tidak di medan nyata. RAII, pemisahan move dan copy, smart pointer, placement-new, generic bisa dipertahankan
      Sebaliknya, auto_ptr, copy bawaan, cara implementasi exception tertentu, multiple virtual inheritance, dan template yang mengganti seluruh potongan kode bisa dibuang. Menurut saya pertarungannya sudah selesai, dan Rust adalah hasil perapian terbaik dari hal-hal yang terbukti berhasil. Bonusnya, waktu kompilasinya juga ikut diwarisi
  • Mengejutkan bahwa arus pengembangan C++ masih terus berlanjut. Kalau game atau program dibuat dengan C++, biasanya enak karena performanya kurang lebih terjamin, tapi kalau disuruh menulis C++ sendiri rasanya saya mau menangis
    Terlalu banyak yang harus dihafal dan standarnya juga terlalu beragam. Kalau saya masuk proyek untuk maintenance lalu ternyata itu proyek C++, semangat saya langsung turun. Pokoknya terlalu sulit. Saya senang kalau orang lain yang menuliskannya, tapi itu bukan bahasa yang ingin saya pakai sendiri

    • Secara pribadi, saya tidak merasa pemrograman C++ sesulit itu. Kekurangannya adalah perlu pemanasan otak, dan itu harus diulang untuk tiap proyek, tetapi begitu flywheel-nya mulai berputar, saya bisa menulis kode hampir tanpa usaha
      Apa pun bahasanya, saya tetap perlu pemanasan serupa, jadi bagi saya tidak jauh berbeda dari memakai Python, Go, atau Java
    • Dalam pengembangan game, C++ menjadi bahasa yang jauh lebih sederhana. Itu karena codebase game biasanya mengabaikan sebagian besar standard library C++, dan memang ada alasannya. Lihat misalnya [0]
      Tanpa standard library, C++ masih lumayan oke
      Masalah utama ekosistem C++ adalah semua orang membentuk subset bahasanya sendiri. Akibatnya, yang ada bukan satu ekosistem, melainkan banyak ekosistem dengan gaya yang saling bertabrakan serta subset bahasa/standard library yang berbeda-beda. Ini membuat reuse kode lewat library jadi jauh lebih sulit daripada yang seharusnya
      [0] https://hftuniversity.com/post/the-c-standard-library-has-be...
    • Memang benar C++ punya banyak fitur. Tapi seperti yang sudah saya katakan di tempat lain, sebagian besar proyek menetapkan aturan sendiri dan subset fitur yang dipakai
      Keunggulan besar dari himpunan fitur yang luas ini adalah C++ memungkinkan abstraksi yang baik dari level sangat rendah sampai sangat tinggi. Anda bisa melakukan hal-hal low-level seperti inline assembly, operasi bit, dan manipulasi memori langsung, atau memakainya di level sangat tinggi hampir seperti bahasa scripting. Apa pun yang dituntut domain masalahnya, C++ bisa menanganinya
    • Dengan mengetahui 70% bahasa ini saja, Anda sudah bisa cukup produktif. Anggapan bahwa C++ hanya cocok untuk area seperti game engine adalah kesalahpahaman umum, dan untuk ranah aplikasi pun cukup layak
      Tambahan lagi, melihat info profil Anda, kecuali Anda berada di Korea Utara, sebaiknya tambahkan satu angka 0 pada tarif Anda. Dengan begitu Anda bisa mendapatkan klien yang lebih jangka panjang dan lebih peduli kualitas
    • Salah satu hobi saya adalah mengobrak-abrik toko barang bekas sambil mengagumi benda-benda norak dari zaman yang sudah lewat, menyaring rongsokan modern yang dibuat dengan buruk, dan merasa senang bila menemukan alat yang sederhana dan kokoh
      Menjalani hidup sebagai programmer C++ rasanya persis seperti itu
  • Setiap kali saya mengajar web developer, saya selalu bilang bahwa bahasa internet itu bukan JavaScript melainkan C++. Web developer hanyalah pengguna yang bermain di dalam program yang dibuat oleh developer C++

    • Kalau analogi itu diteruskan, browser developer juga hanyalah pengguna yang bermain di dalam program C/sistem operasi/kernel
    • Saya cenderung melihat web dan internet sebagai dua hal yang berbeda. Kalau ditanya bahasa web, mungkin saya akan memilih HTML
      Tapi bahasa internet itu sendiri jauh kurang jelas
  • Dokumenter gratis tentang topik yang saya sukai seperti ini benar-benar bagus. Terima kasih
    Hanya saja saya agak aneh: saya tidak bisa menonton dokumenter yang dibangun dari cara orang-orang mengucapkan kalimat-kalimat pendek secara sambung-menyambung. Saya paham niatnya adalah “membiarkan mereka yang bercerita”, tetapi itu membuat saya terdistraksi, jadi saya butuh narator yang memberi tahu saya apa yang harus dipikirkan
    Meski begitu, saya tetap mengirimkan apresiasi kepada para pembuatnya

  • Saya agak ketinggalan tren belakangan ini, tapi baru-baru ini ada dokumenter Python, Clojure, dan mungkin bahasa lain juga. Apakah orang yang sama memang membuat seri yang membahas banyak bahasa? Kebetulan saja? Atau sekarang semua bahasa pemrograman memang sedang berlomba membuat dokumenter video sendiri?

    • Betul, ini dibuat oleh orang yang sama: https://www.cultrepo.com/
      Sepertinya mereka membuat dokumenter tentang perangkat lunak open source
  • Ada pendapat menarik dari Chandler Carruth tentang topik ini: https://hachyderm.io/@chandlerc/116694268329657881

    • Masuk akal. Videonya memang terasa jauh lebih seperti hagiografi, dan saya juga merasa suara-suara kritisnya kurang
      Baru pada 10 menit terakhir mereka sedikit membahas kritik umum seperti kompleksitas yang terus membesar atau keamanan memori. Meski begitu, saya tetap menontonnya dengan senang hati