2 poin oleh GN⁺ 2024-08-13 | 1 komentar | Bagikan ke WhatsApp

Go adalah palu saya, dan segala sesuatu adalah paku

Pengantar

  • Markus adalah pengembang yang bekerja sendiri sekaligus pembuat produk digital
  • Ia bekerja sendiri tanpa tim dan mengejar cara kerja yang fleksibel
  • Ia menghindari stack teknologi yang rumit dan fokus memberikan nilai kepada pelanggan

Alasan memilih Go

Alasan 1: Go bisa melakukan hampir segalanya

  • Go itu sederhana, mudah dibaca, dan konsisten
  • Go dapat digunakan untuk berbagai keperluan seperti CLI, infrastruktur cloud, server HTTP, dan pekerjaan jaringan
  • Game Nintendo Switch, aplikasi GUI, hingga string synthesizer terminal juga bisa dikembangkan dengan Go

Alasan 2: Mengurangi perpindahan konteks

  • Menggunakan beberapa bahasa pemrograman membuat perpindahan sintaks menjadi sulit
  • Dengan hanya menggunakan satu bahasa, masalah ini bisa dihindari
  • Berbagai elemen seperti bahasa, compiler, IDE, toolchain, dan komunitas menjadi lebih mudah dikelola

Alasan 3: Pengetahuan yang mendalam

  • Berfokus pada satu bahasa memungkinkan kita membangun pengetahuan yang lebih mendalam
  • Fokus pada satu bahasa lebih produktif dibanding menangani banyak bahasa
  • Ini membantu mengurangi kompleksitas dalam pengembangan perangkat lunak

Kesimpulan

  • Markus berhasil menjalankan berbagai proyek dengan menggunakan Go
  • Ia meningkatkan produktivitas melalui pengetahuan yang mendalam tentang Go
  • Dengan Go, berbagai tantangan dapat diselesaikan

Ringkasan GN⁺

  • Markus, sebagai pengembang yang bekerja sendiri, memilih Go untuk mengurangi kompleksitas dan meningkatkan produktivitas
  • Go dapat digunakan untuk berbagai keperluan, serta mudah dikelola karena sederhana dan konsisten
  • Fokus pada satu bahasa memungkinkan pengetahuan yang lebih mendalam dan lebih efisien dibanding menangani banyak bahasa
  • Berbagai proyek dapat diselesaikan dengan sukses melalui Go, dan ini juga bisa bermanfaat bagi pengembang lain

1 komentar

 
GN⁺ 2024-08-13
Opini Hacker News
  • Pernah bekerja di perusahaan yang menggunakan Go untuk memproses data keuangan

    • Merasa tidak nyaman melihat rekan kerja menggunakan Go untuk tugas sekali pakai seperti mengagregasi file CSV atau memperbarui database
    • Sulit percaya saat melihat rekan kerja mengimplementasikan sendiri algoritme dasar alih-alih menggunakan Pandas
    • Menganggap itu pemborosan waktu perusahaan, dan terlihat seperti masalah gengsi untuk membuktikan bahwa Go saja sudah cukup
  • Banyak orang meremehkan biaya untuk benar-benar mempelajari sebuah bahasa

    • Butuh 2-4 tahun untuk mencapai tingkat di mana seseorang bisa berkata bahwa mereka "menguasai" suatu bahasa
    • Butuh 8-10 tahun untuk memahami bahasa, compiler, runtime, pustaka standar, dan cara idiomatisnya
    • Selama periode itu, kita bisa mengembangkan cara penggunaan bahasa tersebut dan melatih pemula dengan cepat
  • Menganggap Go cocok untuk hampir semua pekerjaan

    • Sangat produktif saat menggunakan Go
    • Jika proyek melebihi 100 baris, Go lebih baik daripada Python
    • Kelebihan Go:
      • Bahasanya sangat sederhana
      • Pustaka intinya dirancang dengan baik
      • Hanya dengan toolchain dan pustaka inti, sebagian besar pekerjaan bisa diselesaikan
  • Menganggap Go tidak cocok untuk proyek pribadi

    • Kodenya bertele-tele dan bahkan tugas sederhana pun membutuhkan banyak kode
    • Kurang memiliki enum yang layak, union type, null safety, dan sebagainya
    • Karena alasan-alasan itu, tidak merasa menyenangkan menggunakannya untuk proyek pribadi
  • Lebih menyukai Typescript dan Rust

    • Deno dan Typescript adalah alat yang lebih serbaguna daripada Go
    • Typescript lebih aman dan ergonomis, tetapi sedikit lebih lambat
    • Rust lebih aman dan lebih cepat, tetapi sulit dipelajari
    • Kelebihan Typescript:
      • null safety
      • generic yang didukung luas
      • discriminated union type
      • konkurensi yang aman
      • metode collection/iterator
    • Kelebihan Go:
      • Lebih efisien dari sisi ukuran dan penggunaan memori
      • GC Go lebih baik daripada V8
      • Lebih cepat untuk pekerjaan yang CPU-bound
      • Pustaka standarnya lebih besar
  • Sudah mencoba Go dan Typescript, tetapi lebih memilih Kotlin/JVM

    • Ada dikotomi Gradle/Maven dan rasa tidak nyaman terhadap build system, tetapi sangat puas dari sisi fitur bahasa dan runtime
  • Menganggap Go adalah alat serbaguna

    • Segalanya sederhana dan mudah digunakan
    • Bisa compile dan deploy dengan perintah sederhana tanpa banyak alat eksternal
    • Bahasa lain juga punya kelebihan, tetapi tidak sesederhana dan setidak merepotkan Go
  • Menyukai Go, tetapi tidak sampai mencintainya

    • Menganggap sistem tooling-nya berantakan
    • Go module terasa seperti belum selesai
    • Generic masih terasa primitif
    • Ekosistemnya terasa belum matang
  • Menyukai sebagian besar aspek Go, tetapi sebagai orang yang banyak menulis kode numerik, ketiadaan operator overloading adalah kekurangan

    • Masih terus menggunakan Python dan C++
    • Rust menarik sebagai pengganti C++, tetapi terlalu banyak aturan untuk menggantikan Python
  • Hidup terlalu singkat untuk menjadi mahir dalam banyak hal, jadi harus memilih dengan hati-hati

    • Alasan memilih Go:
      • Pustaka standar yang luar biasa
      • Mudah dibaca dan ditulis
      • Build menjadi satu binary statis tunggal
      • Tidak memerlukan container
      • Bisa digunakan di mana saja (pengembangan web, aplikasi desktop, pengembangan game, embedded, dll.)