3.1
Bahasa Sistem dan Enterprise
Katalog ini menaruh seluruh pedoman bahasa dalam satu bagian datar. Bagian ## Programming Languages membentang dari baris 14 sampai 245 dan dipecah menjadi 43 subbagian ###, satu subbagian per bahasa, tanpa pengelompokan lanjutan (README.md:14-2451). Halaman ini memilah subbagian yang menyasar kode tingkat sistem dan kode enterprise: 19 subbagian dengan total 51 tautan. Bahasa web dan skrip dinamis dibahas di Bahasa Web dan Skrip Dinamis, sedangkan bahasa fungsional dan format data dibahas di Bahasa Fungsional dan Format Data.
Tiga sumbu panduan
Entri pada halaman ini tidak seragam jenisnya. Ada yang mengatur gaya dan format penulisan, ada yang mengatur desain API publik, dan ada yang mengatur keamanan serta penamaan. Pemisahan itu terbaca dari deskripsi tiap tautan: Rust Style Guide dan Rust API Guidelines berdiri sebagai dua entri terpisah dalam satu subbagian (README.md:205-2082), begitu pula .NET Standard, .NET Secure Coding Guidelines, dan .NET Naming Guidelines (README.md:151-1553).
graph TD
LS["Programming Languages: 43 subbagian"] --> ST["Gaya dan format"]
LS --> AP["Desain API publik"]
LS --> SC["Keamanan dan penamaan"]
ST --> ST1["Google C++ Style Guide"]
ST --> ST2["Rust Style Guide"]
ST --> ST3["Metova Swift style guide, archived 2022"]
AP --> AP1["Rust API Guidelines"]
AP --> AP2["API Design Guidelines, Swift.org"]
AP --> AP3[".NET Standard"]
SC --> SC1["NASA C++ Coding Standards"]
SC --> SC2[".NET Secure Coding Guidelines"]
SC --> SC3[".NET Naming Guidelines"]
style LS fill:#f59e0b,color:#000
style ST fill:#2d7d46,color:#fff
style AP fill:#8b5cf6,color:#fff
style SC fill:#dc2626,color:#fff
style SC1 fill:#dc2626,color:#fff
style ST3 fill:#f59e0b,color:#000
%% fig: Tiga sumbu panduan pada bahasa sistem dan enterprise
%% desc: Subbagian bahasa dipetakan ke tiga jenis panduan; warna menandai jalur gaya, permukaan API publik, dan risiko keamanan.Sumbu gaya dan format dipenuhi hampir semua bahasa di halaman ini. Sumbu desain API publik hanya muncul eksplisit pada Rust dan Swift, yang masing-masing punya satu tautan khusus untuk itu (README.md:205-2082, README.md:222-2294). Sumbu keamanan muncul eksplisit pada C++, .NET, dan Swift.
Keluarga C: C, C#, Objective-C
| Bahasa | Panduan | Sumber | Rujukan |
|---|---|---|---|
| C | C Coding Standard, C Programming/Structure and style, Making The Best Use of C | Carnegie Mellon University, buku panduan komunitas, GNU | README.md:24-285 |
| C# | C# Coding Conventions, C# Style Guide, C# Coding Standards and Naming Conventions | Microsoft, Kodeco, dofactory | README.md:30-346 |
| Objective-C | Objective-C Style guide, Google Objective-C Style Guide, NYTimes Objective-C Style Guide | GitHub, Google, The New York Times | README.md:161-1657 |
Subbagian C memuat tiga tautan dengan pembagian tugas yang jelas: satu panduan umum konvensi, satu uraian struktur dan gaya, dan satu bab khusus tentang cara memakai C saat menulis perangkat lunak GNU (README.md:24-285). Subbagian C# menaruh panduan resmi Microsoft di urutan pertama, lalu dua panduan komunitas dan vendor (README.md:30-346). Objective-C memuat tiga tautan yang seluruhnya berupa panduan gaya milik organisasi tertentu (README.md:161-1657).
C++ sebagai subbagian terpadat
Subbagian C++ berisi 8 tautan, jumlah terbesar di antara bahasa mana pun di halaman ini, dan setiap tautan berasal dari organisasi berbeda (README.md:36-458). Sebaran pemiliknya lebih beragam daripada subbagian lain, sehingga pedoman C++ harus dipilih berdasarkan lingkup proyek, bukan diambil semuanya sekaligus.
graph TD
CPP["Subbagian C++: 8 tautan"] --> CORE["C++ Core Guidelines"]
CPP --> GGL["Google C++ Style Guide"]
CPP --> LLVM["LLVM C++ Coding Standards"]
CPP --> MZL["Mozilla C++ Coding style"]
CPP --> CRM["Chromium C++ style guide"]
CPP --> WKT["Webkit C++ Code Style Guidelines"]
CPP --> OCB["OceanBase C++ Coding Standards"]
CPP --> NSA["NASA C++ Coding Standards"]
NSA --> SF["Safety-critical systems"]
CPP -.-> LNX["Linux kernel coding style, halaman Platforms"]
CPP -.-> APC["Apache Developers C Language Style Guide, halaman Platforms"]
style CPP fill:#f59e0b,color:#000
style CORE fill:#2d7d46,color:#fff
style GGL fill:#8b5cf6,color:#fff
style LLVM fill:#8b5cf6,color:#fff
style MZL fill:#8b5cf6,color:#fff
style CRM fill:#8b5cf6,color:#fff
style WKT fill:#8b5cf6,color:#fff
style OCB fill:#8b5cf6,color:#fff
style NSA fill:#dc2626,color:#fff
style SF fill:#dc2626,color:#fff
%% fig: Pemilik panduan pada subbagian C++
%% desc: Delapan tautan C++ dibagi menjadi panduan komunitas, panduan internal proyek, dan panduan safety-critical; garis putus-putus menunjuk entri C yang tinggal di halaman Platforms.Enam dari delapan tautan itu adalah standar internal sebuah proyek: LLVM, Mozilla, Chromium, WebKit, Google, dan OceanBase (README.md:36-458). Satu tautan menyebut sasarannya secara eksplisit, yaitu NASA C++ Coding Standards and Style Guide untuk safety-critical systems (README.md:449).
⚠️ Tautan seperti
OceanBase C++ Coding StandardsdanChromium C++ style guidediberi keterangan terikat pada proyeknya masing-masing. Jangan mengutipnya sebagai standar umum C++ tanpa menyebut sumbernya.
Entri C lainnya tidak berada di bagian bahasa. Apache Developers' C Language Style Guide dan Linux kernel coding style diletakkan di bagian Platforms, sehingga dibahas di Platforms dan Desain API (README.md:268-27010, README.md:310-31211).
JVM enterprise: Java, Kotlin, Scala, Groovy
| Bahasa | Panduan | Sumber | Rujukan |
|---|---|---|---|
| Java | Code Conventions for the Java Programming Language, Google Java Style Guide, Java Programming Style Guide, Alibaba-Java-Coding-Guidelines | Oracle, Google, forum komunitas, Alibaba | README.md:109-11412 |
| Kotlin | Coding Conventions | dokumentasi resmi kotlinlang.org | README.md:137-13913 |
| Scala | Effective Scala, Scala Style Guide, Databricks Scala Guide, Scala Best Practices | Twitter, dokumentasi resmi Scala, Databricks, komunitas | README.md:210-21514 |
| Groovy | Apache Groovy style guide | Apache | README.md:101-10315 |
Subbagian Java adalah satu-satunya di kelompok ini yang menandai entrinya sebagai historis, dan entri itu justru yang berasal dari Oracle (README.md:11116). Kotlin hanya punya satu tautan, yaitu konvensi resmi dari dokumentasi bahasa (README.md:137-13913). Scala dan Groovy sebaliknya menumpuk panduan gaya pada tingkat organisasi pemakai bahasa, seperti Databricks dan Apache (README.md:210-21514, README.md:101-10315).
⚠️
Code Conventions for the Java Programming Languagediberi keterangan Historical Java coding conventions (README.md:11116). PakaiGoogle Java Style Guidesebagai rujukan aktif untuk Java (README.md:11217).
Pemeriksaan kepatuhan Java di katalog ini ditangani di halaman lain lewat Checkstyle, yang disebut sebagai tool pemeriksa kepatuhan kode sumber Java terhadap sebuah Code Standard (README.md:36618). Lihat Tools dan Linter.
Go dan Rust
| Bahasa | Panduan | Sumber | Rujukan |
|---|---|---|---|
| Go | Effective Go, Go Standard Project Layout, Google Go Style Guide, Uber Go Style Guide | go.dev, golang-standards, Google, Uber | README.md:94-9919 |
| Rust | Rust Style Guide, Rust API Guidelines | rust-lang | README.md:205-2082 |
Go adalah satu-satunya bahasa di halaman ini yang menautkan panduan tata letak proyek, Go Standard Project Layout, di samping panduan idiom dan gaya (README.md:94-9919). Rust hanya punya dua tautan, tetapi keduanya menutup dua sumbu sekaligus: gaya penulisan dan desain API publik (README.md:205-2082).
.NET dan Swift
| Bahasa | Panduan | Sumber | Rujukan |
|---|---|---|---|
| .NET | .NET Standard, .NET Secure Coding Guidelines, .NET Naming Guidelines | dotnet, Microsoft | README.md:151-1553 |
| Swift | API Design Guidelines, Swift, Swift style guide, Swift Style Guide, Metova's Swift style guide, Xmartlabs Swift Style Guide | Swift.org, GitHub, Kodeco, LinkedIn, Metova, Xmartlabs | README.md:222-2294 |
Subbagian .NET tidak memuat panduan gaya penulisan biasa. Ketiga tautannya adalah spesifikasi API lintas implementasi, panduan penulisan kode aman, dan konvensi penamaan pustaka (README.md:151-1553). Swift sebaliknya memuat 6 tautan dan merupakan subbagian terbesar kedua di halaman ini, dengan empat di antaranya berupa panduan gaya milik organisasi pemakai Swift (README.md:222-2294).
⚠️
Metova's Swift style guidediberi keterangan archived, deprecated 2022 (README.md:22820). Jangan jadikan rujukan untuk kode baru.
Bahasa sistem lain
| Bahasa | Panduan | Sumber | Rujukan |
|---|---|---|---|
| Ada | Ada Programming/Coding standards | buku panduan komunitas | README.md:16-1821 |
| D | The D Style | dlang.org | README.md:56-5822 |
| Delphi | Delphi's Object Pascal Style Guide | Embarcadero | README.md:64-6623 |
| Fortran | Fortran Best Practices | fortran-lang.org | README.md:90-9224 |
| Nim | Nim Style Guide | nim-lang.org, NEP-1 | README.md:157-15925 |
| Pascal | Coding style, GNU Pascal Coding Standards | Free Pascal, GNU | README.md:167-17026 |
| Visual Basic | Visual Basic Concepts, Visual Basic/Coding Standards | Microsoft, buku panduan komunitas | README.md:237-24027 |
Tujuh subbagian ini berisi 1 sampai 2 tautan saja, sehingga tidak ada pilihan ganda yang perlu ditimbang (README.md:16-1821, README.md:157-15925, README.md:237-240). Nim menyebut panduannya sebagai RFC bernomor NEP-1 (README.md:157-159). Delphi dan Pascal sama-sama menunjuk ke panduan Object Pascal, satu dari Embarcadero dan dua dari Free Pascal serta GNU (README.md:64-66, README.md:167-170).
Batas dengan halaman lain
Beberapa pedoman yang secara teknis menyangkut bahasa sistem justru diletakkan di bagian Platforms, sehingga tidak diulang di sini. GNU coding standards mengatur kode dan dokumentasi perangkat lunak GNU (README.md:302-30428), dan JavaEE Specification berupa spesifikasi resmi Java EE (README.md:306-30829); keduanya dibahas di Platforms dan Desain API. Bahasa web dan skrip dinamis seperti JavaScript, TypeScript, PHP, Ruby, dan Python ada di Bahasa Web dan Skrip Dinamis, sedangkan Clojure, Haskell, F#, JSON, dan XML ada di Bahasa Fungsional dan Format Data.