Siapa di sini yang belajar Go? Apakah perusahaan lain ingin menggunakannya? Apakah mungkin digunakan secara luas?
Siapa di sini yang belajar Go? Apakah perusahaan lain ingin menggunakannya? Apakah mungkin digunakan secara luas?
Jawaban:
Ketika berbicara tentang bahasa pemrograman, pepatah lama, "bukan siapa Anda, tapi siapa yang Anda kenal" pasti benar. C dan C ++ disponsori oleh AT&T, Java dibawa kepada kami oleh Sun, keluarga .NET keluar dari Microsoft, dan semuanya menjadi sangat populer dengan sangat cepat. Kemudian kita memiliki Objective-C dan Python, yang ada selama beberapa waktu dan tetap benar-benar tidak jelas sampai ditemukan dan dihipnotis oleh Apple dan Google, dan kemudian tiba-tiba mereka benar-benar lepas landas. Tetapi bahasa tanpa sponsor utama cenderung merana dalam ketidakjelasan, tidak peduli seberapa baik mereka.
Go disponsori oleh Google. Tidak sulit untuk sampai pada kesimpulan yang tepat di sini. Berikan lima tahun dan itu akan sangat besar.
Saya sebenarnya tidak berpikir bahwa Go akan sesukses itu. Alasan mengapa itu tidak akan mencapai massa besar adalah bahwa itu dimaksudkan sebagai bahasa untuk pemrograman sistem.
Ada kebutuhan nyata untuk bahasa sistem dengan fitur yang lebih modern. C dan C ++ terlalu terikat oleh kode lama dan kompatibilitas di sini untuk meningkatkan banyak. Yang mengatakan, saya tidak berpikir Go memenuhi peran itu dalam bentuknya saat ini. Desainnya terlalu minimalis. Walaupun model konkurensi-nya menarik, ia menghadirkan beberapa fitur lain dari bahasa tingkat yang lebih tinggi ke dunia sistem. (Terakhir kali saya mengecek, yang memang diakui beberapa waktu lalu, bahkan tidak ada pengecualian.) Lebih jauh, setidaknya sejauh bahwa Bahasa Komputer Benchmark Game adalah ukuran yang baik (ini diakui sebagai indikator yang sangat kasar), itu bukan hampir secepat bahasa sistem "nyata".
Saya pikir bahasa dengan kesempatan terbaik untuk mengisi kekosongan bahasa sistem yang lebih modern adalah D . D secara teknis jauh lebih kuat daripada Go tetapi secara politis lebih lemah. Itu tidak didukung oleh perusahaan besar. Yang benar-benar dibutuhkan adalah beberapa perpustakaan (ini sedang ditangani dengan cepat sekarang karena spesifikasi bahasa stabil) dan aplikasi pembunuh.
foo, err := SomeFunc()
biasa. Untuk masalah besar, atau tempat di mana kesalahan tidak bekerja dengan baik, Anda dapat menggunakan panic()
dan recover()
. Namun, ini sengaja digunakan sangat jarang; tidak ada cara untuk melewatkan pengecualian jika tumpukan sangat pendek, dan tumpukan pendek adalah hal biasa di mana ada banyak utas bersamaan.
Saya belajar Go dan ya, digunakan secara produktif selain Google dan Heroku.
Go jelas merupakan bahasa yang bagus untuk Pemrograman Sistem. Kode sederhana seperti di C, struktur yang kuat seperti di C ++ dan fitur keamanan seperti di Jawa. Karena ini adalah bahasa yang sangat muda, banyak hal baik dari bahasa lain yang telah diwarisi:
i := 1
bukannya int i = 1
, func f(x, y, z int)
bukannya void f(int x, int y, int z)
, type Foo struct { a, b int }; bar := Foo{1, 2}
bukannyaclass Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
Mempertimbangkan semua hal-hal baik ini dan keselamatan serta kinerja yang hanya diketahui dari bahasa yang diketik secara statis, banyak orang dari komunitas bahasa dinamis mulai menyukai Go. Dalam kebanyakan kasus, Go-code tidak lebih lama dari Ruby-code, tetapi dalam setiap kasus lebih aman dan terstruktur lebih baik.
Tetapi pada akhirnya saya kira argumen pembunuh untuk Go adalah konkurensi. Ini adalah bahasa mirip-C yang memiliki dukungan konkurensi kuat yang hanya diketahui dari bahasa fungsional.
Saya akan mengatakan bahwa ini terutama tergantung pada perpustakaan / layanan / perangkat lunak yang akan dibuat di / untuk / menggunakan Go. Orang menggunakan sesuatu dalam tiga situasi (urutan masalah): ketika mereka praktis tidak memiliki pilihan lain (Objective-C), ketika lingkungan mereka menggunakannya (FORTRAN), ketika itu membuat hidup mereka lebih mudah (Ruby).
Mungkin agak terlambat untuk ini, tetapi Go menjadi bahasa populer sekarang dan kemungkinan akan masuk ke arus utama dengan Google mendorongnya ke depan. Ini sedang didorong sebagai bahasa yang digunakan untuk sistem dan produk dalam Google dan sedang didorong sebagai bahasa untuk digunakan dengan Google App Engine. Ada beberapa orang yang sangat tajam di backend Go building dan meningkatkannya. Ada beberapa orang yang sangat pintar dan imajinatif yang bekerja di perpustakaan pihak ketiga untuk Go.
Go mengisi kekosongan yang belum diisi oleh bahasa lain. Bagi saya, saya dulu mencoba mengisi kekosongan itu dengan Perl dan banyak solusi dan trik. Saya tidak percaya itu adalah bahasa yang sempurna untuk semua situasi dan semua orang, tetapi tentu saja itu adalah kandidat untuk sejumlah besar situasi. Sebagai contoh, ini berfungsi baik untuk aplikasi web sementara juga berfungsi baik untuk aplikasi desktop atau aplikasi berbasis server. Itu melakukan pekerjaan yang fantastis dengan HTTP dan WebSocket (yang berarti Anda dapat melewati Apache atau nginx sama sekali) sementara juga berjalan dengan sangat baik di Windows, Linux, dan OS X untuk kedua daemon dan untuk aplikasi desktop biasa. Saat ini satu-satunya situasi yang gagal bagi saya adalah untuk aplikasi Android, yang saya harap segera diperbaiki. Saya menggunakannya untuk aplikasi desktop Windows, aplikasi desktop Linux, dan aplikasi web berbasis Linux.
Saya percaya itu akan beberapa tahun sebelum benar-benar menyentuh arus utama, tetapi akan sampai di sana. Saya pikir itu perlu untuk mendapatkan lebih banyak perpustakaan pihak ketiga dibangun, seperti jenis nomor dan pilihan yang dimiliki Perl dengan CPAN. Itu akan sampai di sana.
Apa artinya "arus utama"? Tanpa mengetahui itu, sangat sulit untuk menjawab pertanyaan ini. Mari kita lihat sedikit itu.
Ada banyak definisi yang mungkin. Berikut ini beberapa di antaranya:
Pandangan manajemen:
Pandangan pengembang:
Pandangan karir:
Mengingat semua hal di atas, saya berpendapat bahwa satu-satunya jawaban yang jujur mungkin "terlalu dini untuk mengatakan" tapi saya percaya indikator terbaik dari umur panjang yang nyata adalah jumlah kecilbisnis yang menggunakan bahasa. Organisasi besar semuanya sangat baik - mereka bahkan mungkin penting untuk pertumbuhan bahasa atau sistem alat karena skala investasi yang dapat mereka terapkan - tetapi mereka agak rentan terhadap mode pakaian (dengan beberapa pengecualian). Sebaliknya, jika sebuah bisnis kecil membangun dirinya menggunakan bahasa untuk mengirimkan produk dan layanan, mereka sangat mungkin ingin berkontribusi untuk memastikan bahwa mereka masih akan dapat melakukannya di masa depan. Mereka juga membentuk landasan pasar kerja yang kuat di daerah tersebut, dan permintaan akan alat juga. Lucunya, itu adalah beberapa indikator pengarusutamaan dalam daftar saya (mungkin lebih, tergantung pada keinginan manajemen).
Jadi, berapa banyak orang di luar Google yang menggunakan Go untuk pekerjaan mereka? Saya tidak punya ide. (Saya tidak. Kebutuhan saya saat ini dilayani dengan baik oleh campuran Java, C dan Tcl. YMMV.)
Ini sudah lebih populer daripada beberapa bahasa.
Ada kemungkinan, bahwa Go adalah bahasa yang paling penting dalam 20+ tahun. Ini benar-benar menghadirkan beberapa manfaat besar dalam hal kumpulan data besar, yang situs media sosial, komputasi awan, Pencarian dan Seluler hadir.
Situs-situs seperti Facebook, Twitter, Linkedin, YouTube dan jaringan Penyajian Iklan memiliki lebih banyak kegunaan untuk Google Go daripada Ruby On Rails, setidaknya dalam beberapa konteks.
Saya melihat ke dalam Go ketika saya mendengarnya. Sebagai seorang pemula yang lengkap saya masih belajar bahasa-bahasa pemula (dalam kasus saya Java, C #, Python dan Skema) yang banyak untuk diterima, tetapi jika saya tidak asyik dengan begitu banyak bahasa yang berbeda saya akan dengan serius mempertimbangkannya
Saya pikir pada tingkat saya, tidak ada salahnya mendapatkan dasar-dasar sebelum melompat naik kereta musik. Meskipun, jika saya ingat benar, ketika saya mencari Go, saya menjadi sangat tertarik pada Erlang untuk beberapa alasan.
Saya baru saja melihat Go karena pertanyaan ini jadi saya tidak bisa mengomentari apakah itu akan menjadi bahasa utama, tetapi satu hal yang membuat saya sangat bersemangat:
http://golang.org/doc/go_spec.html#Channel_types
Saya pertama kali menemukan konsep Channels di Occam-pi dan saya harus mengatakan itu adalah salah satu konsep pemrograman terbaik yang pernah ada . Itu membuat konkurensi tampak begitu mudah di mana melakukan hal yang sama dalam bahasa tipe-C terkadang bisa menyebalkan.
Dari apa yang saya lihat (dalam 10 menit saya telah melihat), Go terlihat mencoba untuk menggabungkan banyak konsep pemrograman yang berbeda, tetapi itu memang berisiko menjadi Jack dari semua perdagangan, master tidak ada.
Saya menduga bahwa apakah itu menjadi mainstream akan tergantung pada apakah Google mengadopsinya sebagai bahasa yang didukung untuk appengine dan / atau GWT.
Saya berharap Go akan menjadi populer.
Sangat kuat dalam sintaksis. (Pelajari keuntungan dari python, C, Java). Ini bagus untuk CPU multi-core. (Fungsi saluran jauh lebih baik daripada pemrograman thread). Desain mencegah banyak perangkap programmer. (penunjuk yang salah, gaya pengkodean yang sama dengan alat gofmt, mencegah variabel uninitialized bug, Pada awalnya, saya mencobanya pada saat pertama karena python + C tetapi dengan kecepatan mendekati 1/2 kecepatan C.
Tetapi, setelah mempelajari secara mendalam, saya menemukan bahwa mungkin cocok untuk mengembangkan toleransi kesalahan dan arsitektur yang dapat diskalakan
after
pergi?