Rumah > pembangunan bahagian belakang > Golang > Adakah bahasa Go sumber terbuka?

Adakah bahasa Go sumber terbuka?

青灯夜游
Lepaskan: 2022-11-30 16:08:39
asal
6776 orang telah melayarinya

Bahasa go ialah sumber terbuka. Bahasa go telah diumumkan secara rasmi pada November 2009 dan menjadi projek sumber terbuka Ia telah dilaksanakan pada platform Linux dan Mac OS X, dan kemudiannya telah ditambahkan pada sistem Windows Bahasa go menggunakan protokol sumber terbuka BSD. Protokol sumber terbuka BSD ialah protokol yang memberi pengguna banyak kebebasan, mereka boleh menggunakannya secara bebas, mengubah suai kod sumber dan mengeluarkan semula kod yang diubah suai sebagai perisian sumber terbuka atau proprietari.

Adakah bahasa Go sumber terbuka?

Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.

bahasa go - bahasa pengaturcaraan sumber terbuka


Go (juga dikenali sebagai Golang) ialah jenis yang ditaip, disusun dan serentak secara statik yang dibangunkan oleh Google Dan bahasa pengaturcaraan dengan keupayaan pengumpulan sampah.

Robert Griesemer, Rob Pike dan Ken Thompson mula mereka bentuk Go pada September 2007, dan kemudian Ian Lance Taylor dan Russ Cox menyertai projek itu. Go dibangunkan berdasarkan sistem pengendalian Inferno. Go diumumkan secara rasmi pada November 2009, menjadi projek sumber terbuka dan dilaksanakan pada platform Linux dan Mac OS X Kemudian, pelaksanaan di bawah sistem Windows telah ditambah.

Ringkasnya: Bahasa Go ialah sumber terbuka dan mengguna pakai lesen BSD.

Protokol sumber terbuka BSD ialah protokol yang memberi pengguna banyak kebebasan. Anda boleh menggunakannya secara bebas, mengubah suai kod sumber dan mengeluarkan semula kod yang diubah suai sebagai perisian sumber terbuka atau proprietari. Apabila anda menerbitkan kod yang menggunakan protokol BSD, atau membangunkan produk anda sendiri berdasarkan kod protokol BSD, anda perlu memenuhi tiga syarat:

  • Jika produk yang dikeluarkan semula adalah Jika sumber kod disertakan, kod sumber mesti mengandungi lesen BSD daripada kod asal.

  • Jika anda mengedarkan semula perpustakaan/perisian kelas binari sahaja, anda perlu memasukkan protokol BSD dalam kod asal dalam penyata dokumentasi dan hak cipta perpustakaan/perisian kelas.

  • Jangan gunakan nama pengarang/organisasi kod sumber terbuka dan nama produk asal untuk tujuan pemasaran.

Kod BSD menggalakkan perkongsian kod, tetapi hak cipta pengarang kod perlu dihormati. BSD ialah protokol yang mesra kepada integrasi komersial kerana ia membenarkan pengguna mengubah suai dan mengedarkan semula kod, dan juga membenarkan perisian komersial dikeluarkan dan dijual menggunakan atau dibangunkan pada kod BSD. Banyak syarikat memilih protokol BSD apabila memilih produk sumber terbuka, kerana mereka boleh mengawal sepenuhnya kod pihak ketiga ini dan boleh mengubah suai atau membangunkannya semula apabila perlu.

Adakah bahasa Go sumber terbuka?

go huraian bahasa


Pada tahun 2007, Rob, ketua jurutera perisian di Google yang sudah muak dengan penderitaan C Pike mengumpulkan dua orang berbakat, Robert Griesemer dan Ken Thompson, dan memutuskan untuk mencipta bahasa baharu untuk menggantikan C. Ini ialah Golang. Walaupun bahasa GO yang muncul pada abad ke-21 tidak dapat menggantikan C seperti yang dijangkakan, prestasi pelaksanaan hampir-C, kecekapan pembangunan bahasa hampir analisis dan kelajuan kompilasi hampir sempurna telah menjadi popular di seluruh dunia. Terutamanya dalam projek awan, kebanyakannya dibangunkan menggunakan Golang Harus dikatakan bahawa Golang telah lama berakar umbi di hati rakyat. Untuk projek baharu tanpa beban sejarah, Golang mungkin pilihan terbaik.

Rob Pike, yang dikenali sebagai bapa bahasa GO, berkata sama ada anda bersetuju dengan bahasa GO bergantung pada sama ada anda bersetuju bahawa kurang adalah lebih, atau kurang adalah kurang (Less is more or less is less ). Rob Pike meringkaskan keseluruhan falsafah reka bentuk bahasa GO dengan cara yang sangat mudah - merangkumi kesederhanaan dan kepraktisan sepenuhnya.

Ramai orang memanggil bahasa GO sebagai bahasa C abad ke-21, kerana GO bukan sahaja mempunyai kesederhanaan dan prestasi C, tetapi juga menyediakan pelbagai ciri praktikal untuk pembangunan sisi pelayan dalam persekitaran Internet abad ke-21 ini membolehkan pembangun mendapatkan apa yang mereka inginkan dengan mudah pada peringkat bahasa.

Bahasa Go ialah bahasa pengaturcaraan sumber terbuka kedua yang dikeluarkan oleh Google pada tahun 2009. Bahasa Go dioptimumkan khas untuk pengaturcaraan aplikasi sistem berbilang pemproses Program yang disusun menggunakan Go boleh sepantas kod C atau C, lebih selamat dan menyokong proses selari.

1. Pasukan pembangunan

Adakah bahasa Go sumber terbuka?

Kem pembangunan bahasa GO boleh dikatakan hebat sebelum ini, dan terdapat banyak yang utama ahli dalam industri perisian komputer Seorang tokoh sejarah yang mempunyai pengaruh yang mendalam terhadap pembangunan perisian komputer. Ken Thompson, dari Bell Labs, mereka bentuk bahasa B dan mencipta sistem pengendalian Unix (pada mulanya dilaksanakan dalam bahasa B Kemudian, semasa pembangunan Unix, dia mereka bentuk bahasa C dengan Dennis Ritchie, dan kemudian membina semula menggunakan C). bahasa sistem pengendalian Unix. Dennis Ritchie dan Ken Thompson dikenali sebagai bapa kepada Unix dan bahasa C, dan telah dianugerahkan bersama Anugerah Turing pada tahun 1983 sebagai pengiktirafan atas sumbangan cemerlang mereka kepada pembangunan perisian komputer. Rob Pike, juga dari Bell Labs, ialah ahli penting pasukan Unix Dia mencipta bahasa Limbo dan mereka bentuk pengekodan UTF-8 dengan Ken Thompson Dia adalah salah seorang pengarang "Persekitaran Pengaturcaraan Unix" dan "Pengaturcaraan Berlatih".

2. Ciri-ciri bahasa go

  • Pengumpulan sampah automatik mengurangkan kesukaran pembangunan
    Pengurusan memori dan sumber sentiasa menjadi masalah masalah yang sangat mengecewakan . Dalam bahasa lain (seperti C atau C), ingatan ini mesti diperuntukkan sebelum menggunakannya, dan kemudian dilepaskan selepas digunakan. Penyimpangan kecil boleh menyebabkan kebocoran memori, menyebabkan program atau bahkan sistem ranap. Mekanisme pengumpulan sampah moden bagi bahasa Go mengurangkan dengan ketara kesukaran pembangunan, meninggalkan pengurusan memori yang tidak menarik kepada penyusun profesional, membolehkan pengaturcara menumpukan pada perkara yang lebih menarik.

  • Sokong berbilang nilai pulangan untuk fungsi
    Pada masa ini, kebanyakan bahasa arus perdana kecuali Python tidak menyokong berbilang nilai pulangan untuk fungsi, tetapi dalam banyak kes pembangun memerlukan ini ciri sangat. Fungsi nilai berbilang pulangan bahasa Go membolehkan pembangun tidak lagi perlu menentukan nilai tunggal hanya untuk mengembalikan berbilang nilai Ia digunakan untuk proses pengendalian ralat standard dan menyediakan fungsi terbina dalam panik dan pulih untuk menyelesaikan lontaran dan menangkap pengecualian. Berbanding dengan mekanisme penangkapan pengecualian dalam bahasa seperti C dan Java, mekanisme pengendalian ralat bagi bahasa

    Go boleh mengurangkan jumlah kod Pembangun tidak perlu lagi menambah sejumlah besar pernyataan cuba-tangkap hanya untuk keselamatan program.
  • Golang tidak menyokong kaedah resolusi pengecualian berstruktur seperti cuba...tangkap, kerana ia merasakan ia akan meningkatkan jumlah kod dan akan disalahgunakan, tidak kira sekecil mana pengecualian itu, ia akan dilemparkan . Kaedah pengendalian pengecualian yang dianjurkan oleh golang ialah:


    Pengecualian biasa: penerima memulangkan objek ralat dan pemanggil menentukan objek ralat.
    Pengecualian serius: merujuk kepada panik yang terganggu (seperti pembahagian dengan 0), yang ditangkap dan diproses menggunakan mekanisme penangguhan...pulihkan...panik. Pengecualian serius biasanya secara automatik dilemparkan secara dalaman oleh golang, dan tidak memerlukan pengguna untuk melontarnya secara aktif, mengelakkan situasi di mana cuba...tangkap tradisional ditulis di mana-mana. Sudah tentu, pengguna juga boleh menggunakan panik('xxxx') untuk melontar secara aktif, tetapi ini akan merosot mekanisme ini menjadi mekanisme pengecualian berstruktur.

    • Pengaturcaraan Serentak
    • Bahasa Go jauh lebih mudah daripada kebanyakan bahasa dari segi pengaturcaraan serentak Ini adalah salah satu sorotan terbesarnya dan juga titik masuk masa depannya. Cip tawar-menawar yang penting dalam senario konkurensi tinggi dan berprestasi tinggi.
    Berbeza daripada berbilang proses tradisional atau berbilang benang, unit pelaksanaan serentak golang ialah coroutine yang dipanggil goroutine.
  • Dalam era berbilang teras hari ini, kepentingan pengaturcaraan serentak adalah jelas. Sudah tentu, banyak bahasa menyokong pengaturcaraan berbilang benang dan berbilang proses, tetapi malangnya, melaksanakan dan mengawalnya tidak begitu mudah dan menyenangkan. Perbezaan dengan Golang ialah tahap bahasa menyokong konkurensi coroutine (goroutine) (coroutine juga dipanggil micro-threads, yang lebih ringan, lebih murah dan berprestasi lebih tinggi daripada threads Ia sangat mudah untuk dikendalikan kata kunci (go) Digunakan untuk memulakan coroutine, dan beribu-ribu coroutine boleh dimulakan pada mesin yang sama.


  • Pengaturcaraan Rangkaian
    Memandangkan golang dilahirkan dalam era Internet, ia sememangnya terdesentralisasi dan diedarkan Salah satu manifestasi khususnya ialah ia menyediakan antara muka rangkaian yang kaya dan mudah. seperti net.Dial untuk soket (berdasarkan pada tcp/udp, merangkum sambung tradisional, dengar, terima dan antara muka lain), http.Get/Post() untuk http, client.Call('class_name.method_name', args) untuk rpc , &balas), dsb.

  • Kompilasi
    Menjalankan program Go yang disusun tidak memerlukan pemasangan tambahan persekitaran yang sedang berjalan seperti nod java atau js Pada masa yang sama, Go menyediakan sokongan kompilasi silang asli , kompilasi silang Platform ini sangat mudah untuk dibangunkan dan digunakan.

    Sudah tentu, menyusun dan menjalankan juga lebih mudah untuk menghasilkan kecekapan operasi yang lebih baik, tetapi kita tidak boleh percaya karut dalam hal ini Semakin banyak persekitaran operasi bahasa pengaturcaraan mula menyokong JIT, yang menjadikan kompilasi seperti Go bring The kelebihan prestasi menjadi kurang jelas.


  • 3 senario penggunaan bahasa Go

Memandangkan ciri-ciri bahasa Go dan niat asal reka bentuknya, bahasa Go, sebagai bahasa pengaturcaraan pelayan, sangat sesuai untuk memproses Log, pembungkusan data, pemprosesan mesin maya, sistem fail, sistem teragih, ejen pangkalan data, dan lain-lain dari segi pengaturcaraan rangkaian, bahasa Go digunakan secara meluas dalam aplikasi Web, aplikasi API, muat turun aplikasi, dan lain-lain; sebagai tambahan, bahasa Go juga sesuai untuk ingatan Dalam bidang pangkalan data dan platform awan, banyak platform awan asing sedang dibangunkan menggunakan Go.

Pengaturcaraan pelayan, jika anda menggunakan C atau C untuk melakukan perkara-perkara itu sebelum ini, ia sangat sesuai digunakan Pergi untuk melakukannya, seperti pemprosesan log, pembungkusan data, pemprosesan mesin maya, sistem fail, dsb.

  • Sistem teragih, ejen pangkalan data, perisian tengah, dsb., seperti Etcd.

  • Pengaturcaraan rangkaian, kawasan ini paling banyak digunakan pada masa ini, termasuk aplikasi Web, aplikasi API, aplikasi muat turun dan pakej net/http terbina dalam Go pada asasnya menyepadukan fungsi rangkaian yang biasa kami gunakan Semua direalisasikan.

  • Pengendalian pangkalan data

  • Membangunkan platform awan Pada masa ini, banyak platform awan asing menggunakan pembangunan Go.

  • Melaksanakan logik perniagaan perkhidmatan bahagian pelayan dan merupakan alternatif yang baik kepada C, Java, Ruby, Python dan Php. Ia juga boleh digunakan untuk melaksanakan perisian tengah konkurensi tinggi.

    Perbandingan bahasa go dan bahasa sumber terbuka lain


    • Kecekapan pembangunan Bahasa GO mudah digunakan dan perihalan kod Kecekapan tinggi, standard pengekodan bersatu dan cepat untuk bermula.

    1. Niat asal reka bentuk bahasa Go

    Buka go 05. Perbandingan antara bahasa Go dan bahasa lain
    URL Rujukan: https://studygolang.com/articles/24885

    Go berharap untuk menjadi bahasa C era Internet. Falsafah pengaturcaraan asas kebanyakan bahasa peringkat sistem (termasuk Java dan C#) berasal daripada C, seterusnya membangunkan sifat berorientasikan objek C. Tetapi pereka bahasa Go mempunyai pandangan yang berbeza Mereka percaya bahawa bahasa C patut dipelajari. Akar populariti bahasa C yang kekal ialah ia cukup mudah. Oleh itu, bahasa Go cukup mudah.

    Go direka oleh dan untuk mereka yang membangunkan sistem yang besar; ia adalah untuk menyelesaikan masalah kejuruteraan, bukan untuk mengkaji reka bentuk bahasa untuk menjadikan pengaturcaraan kami lebih selesa dan mudah. **

    Walau bagaimanapun, memandangkan beberapa realiti dalaman Google pada masa itu, seperti ramai jurutera yang datang dari jabatan C, bahasa yang direka bentuk baharu mestilah mudah dipelajari, sebaik-baiknya bahasa yang serupa dengan C telah ada tiada bahasa baharu dalam bahasa 20 tahun, jadi bahasa yang direka bentuk baharu mestilah moden (seperti GC terbina dalam) dan situasi lain. Akhirnya, berdasarkan pengalaman praktikal, mereka mereka bentuk bahasa Go ke arah matlamat mereka.

    2. Bahasa Go dan JAVA

    bahasa tersusun, kelajuan sederhana (2.67s), pada masa ini. Kebanyakan laman web besar ditulis dalam Java, seperti Taobao, JD.com, dll. Ciri-ciri utamanya ialah kestabilan, sumber terbuka yang baik, set spesifikasi penulisannya sendiri, kecekapan pembangunan sederhana, dan pada masa ini ia merupakan bahasa paling arus perdana.

    3 bahasa Go dan C/C

    • C
      Pelaksanaan pantas (4.28), kesukaran pembelajaran sederhana, dan kelajuan pembangunan sederhana. Walau bagaimanapun, disebabkan oleh banyak kekurangan C#, tapak web terdahulu yang besar seperti JD.com dan Ctrip semuanya dibangunkan dalam C#, tetapi kini mereka telah dipindahkan ke Java.

    • C/C
      Nenek moyang bahasa pengaturcaraan sedia ada, dari mana semua bahasa lain dilahirkan. Kelajuan pelaksanaan terpantas tidak dapat ditandingi. Tetapi ia adalah yang paling rumit untuk ditulis dan sukar untuk dikembangkan.

    Dari segi ciri bahasa, Java dan C agak berbeza, manakala go dan C lebih dekat.

    4. Bahasa dan ular sawa Go

    Bagaimana untuk memilih antara ular sawa, golang, java dan c pada tahun 2019?
    URL Rujukan: https://zhuanlan.zhihu.com/p/65177007
    Pembelajaran perbandingan: Golang VS Python3
    URL Rujukan: https://zhuanlan.zhihu.com/p/65613337

    Kedua-dua Golang dan Python kini merupakan salah satu bahasa pembangunan paling popular dalam bidang masing-masing.

    Sintaks Golang yang cekap dan mesra telah memenangi banyak pembangun bahagian belakang dan merupakan salah satu bahasa yang paling sesuai untuk pengaturcaraan rangkaian konkurensi tinggi.

    Tidak perlu dikatakan, Python ialah salah satu daripada sepuluh pemastautin tetap teratas dalam kedudukan TIOBE dan kini telah stabil dalam lima teratas. Ia telah menjadi bahasa yang mesti dipelajari dalam bidang pembelajaran mesin, AI, dan analisis data.

    • Berbanding dengan python, go mempunyai kelebihan yang jelas dalam prestasi, kerana bahasa yang ditafsir dan bahasa yang disusun tidak sama dari segi kelajuan larian. Selain itu, go mempunyai Sintaksnya ringkas dan reka bentuk sistem jenis lebih baik daripada python.

    • Walaupun prestasinya kukuh, kecekapan pembangunan tidak lebih buruk daripada bahasa dinamik seperti Python. Ia biasanya susunan magnitud lebih tinggi daripada aplikasi Python asli dan sesuai untuk menulis beberapa perkhidmatan kesesakan. Penggunaan memori juga sangat menjimatkan.

    Python
    Bahasa skrip, paling perlahan (258s), kodnya ringkas, kemajuan pembelajaran pendek, dan kelajuan pembangunan pantas. Douban ditulis dalam Python. Rangka kerja pelayan terkenal untuk Python termasuk django dan flask. Walau bagaimanapun, Python tidak stabil untuk projek besar, jadi sesetengah syarikat yang menggunakan Python kemudiannya berhijrah ke Java.

    [Cadangan berkaitan: Pergi tutorial video]

Atas ialah kandungan terperinci Adakah bahasa Go sumber terbuka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan