Burada kim Go Go öğreniyor? Başka şirketler bunu kullanmayı düşünüyor mu? Yaygın olarak kullanılması muhtemel midir?
Burada kim Go Go öğreniyor? Başka şirketler bunu kullanmayı düşünüyor mu? Yaygın olarak kullanılması muhtemel midir?
Yanıtlar:
Programlama dilleri söz konusu olduğunda, eski atasözü, "o kim değil, o kim olduğunu biliyor" kesinlikle geçerlidir. C ve C ++ AT&T tarafından desteklendi, Java bize Sun tarafından getirildi, .NET ailesi Microsoft'tan çıktı ve hepsi çok hızlı bir şekilde popüler oldu. Sonra, bir süredir etrafta olan ve sırasıyla Apple ve Google tarafından keşfedilene ve hipnotize edilinceye kadar gerçekten belirsiz olan Objective-C ve Python'umuz var ve sonra aniden ayrıldılar. Ancak büyük bir sponsoru olmayan diller ne kadar iyi olursa olsun, gizlilik içinde zayıflama eğilimindedir.
Go, Google tarafından desteklenmektedir. Burada doğru sonuca varmak zor değil. Beş yıl verin ve çok büyük olacak.
Aslında Go'nun bu kadar başarılı olacağını düşünmüyorum. Büyük kitlelere ulaşmamasının bir nedeni, sistem programlaması için bir dil olması gerektiğidir .
Daha modern özelliklere sahip bir sistem diline gerçek bir ihtiyaç var. C ve C ++, eski kodlarla çok sınırlıdır ve daha fazlasını geliştirmek için geriye dönük uyumluluktur. Bununla birlikte, Go'nun bu rolü şu an yerine getirdiğini sanmıyorum. Tasarımı çok minimalist. Eşzamanlılık modeli heyecan verici olsa da, üst seviye dillerden sistem dünyasına birkaç başka özellik getiriyor. (En son kontrol ettiğimde, bir süre önce kuşkusuz ki, istisnalar bile yoktu.) Ayrıca, en azından, Bilgisayar Dili Kıyaslama Oyunu'nun iyi bir önlem olduğu ölçüde (şüphesiz çok kaba bir gösterge), öyle değil. neredeyse bir "gerçek" sistem dili olması gerektiği kadar hızlı.
Ben daha modern bir sistem dilinin boşluğunu doldurmak için en iyi şansı olan dilin D olduğunu düşünüyorum . D teknik olarak Go'dan çok daha güçlü fakat politik olarak daha zayıf. Büyük bir şirket tarafından desteklenmiyor. Gerçekte ihtiyaç duyduğu şey bazı kütüphaneler (bu, dilin belirlediği özelliklerde sabit bir şekilde ele alındığı) ve bir katil uygulama.
foo, err := SomeFunc()
normal hale getirerek, çoklu dönüş değerlerine izin verir . Başlıca konular veya hataların çok iyi çalışmadığı noktalar için, panic()
ve kullanabilirsiniz recover()
. Bununla birlikte, bunlar kasıtlı olarak çok nadir kullanılmaktadır; istif çok kısa ise istisnaları istifleme yolundan geçmenin bir yolu yoktur ve çok sayıda eşzamanlı iş parçacığının olduğu yerlerde kısa istifler yaygındır.
Go öğreniyorum ve evet, Google ve Heroku’nun yanı sıra üretken olarak kullanılıyor.
Go kesinlikle Sistem Programlama için güzel bir dildir. C'deki gibi basit kod, C ++'daki gibi güçlü yapılar ve Java'daki güvenlik özellikleri. Çok genç bir dil olduğu için diğer dillerden bir çok güzel şey miras kalmıştır:
i := 1
yerine int i = 1
, func f(x, y, z int)
yerine void f(int x, int y, int z)
, type Foo struct { a, b int }; bar := Foo{1, 2}
yerineclass Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
Tüm bu güzel şeyleri ve sadece statik olarak yazılmış dillerden bilinen güvenlik ve performansı göz önüne alarak, dinamik diller topluluğundan birçok insan Go'dan hoşlanmaya başladı. Çoğu durumda Go-kodu Ruby kodundan çok daha uzun olmamakla birlikte her durumda daha güvenli ve daha iyi yapılandırılmıştır.
Ama sonunda Go'nun katil argümanının eşzamanlılık olduğunu tahmin ediyorum. Yalnızca işlevsel dillerden bilinen güçlü eşzamanlılık desteğine sahip C benzeri bir dildir.
Bunun esas olarak Go'da kullanılacak / kullanılacak kütüphanelere / hizmetlere / yazılıma bağlı olduğunu söyleyebilirim. İnsanlar üç durumda bir şey kullanırlar (sipariş önemlidir): pratikte başka seçenekleri olmadığı zaman (Amaç-C), çevreleri onu kullandığında (FORTRAN), yaşamlarını kolaylaştırdığı zaman (Ruby).
Bunun için biraz geç olabilir, ancak Go şu anda popüler bir dil haline geliyor ve Google’ı ileri sürerek ana akıma girecek. Google’daki sistemler ve ürünler için kullanılan bir dil olarak itiliyor ve Google App Engine ile kullanmak için bir dil olarak itiliyor. Go binasının arka tarafında çok keskin insanlar var ve onu geliştiriyorlar. Go için üçüncü taraf kütüphanelerinde çalışan çok zeki ve yaratıcı insanlar var.
Go, diğer dillerin tam doldurmadığı bir boşluğu dolduruyor. Benim için, bu boşluğu Perl ve bir sürü geçici çözüm ve püf noktası ile doldurmaya çalışırdım. Bunun tüm durumlar ve tüm insanlar için mükemmel bir dil olduğuna inanmıyorum, ancak kesinlikle çok sayıda durum için aday. Örneğin, masaüstü uygulamaları veya sunucu tabanlı uygulamalar için harika çalışırken, web uygulamaları için harika çalışıyor. HTTP ve WebSocket ile harika bir iş çıkarıyor (hem Apache'yi hem de nginx'i tamamen atlayabilirsiniz). Ayrıca Windows, Linux ve OS X'te hem servis hem de normal masaüstü uygulamaları için çok iyi çalışıyor. Şu an benim için başarısız olan tek durum Android uygulamaları için, umarım yakında düzeltilebilir. Windows masaüstü uygulamaları, Linux masaüstü uygulamaları ve Linux tabanlı web uygulamaları için kullanıyorum.
Ana akıma girmeden birkaç yıl olacağına inanıyorum, ama oraya varacak. Perl'in CPAN'da sahip olduğu sayı ve seçim gibi, daha çok sayıda üçüncü taraf kütüphanesi kurması gerektiğini düşünüyorum. Oraya gelecek.
“Ana akım” ne anlama geliyor? Bunu bilmeden, bu soruya cevap vermek çok zor. Şuna biraz bakalım.
Pek çok olası tanım var. Burda biraz var:
Yönetim görünümü:
Geliştiricilerin görüşü:
Kariyer görüşü:
Yukarıdakilerin hepsine bakıldığında, tek dürüst cevabın muhtemelen “söylemek için çok erken” olduğunu iddia ediyorum, ancak herhangi bir gerçek ömrün en iyi göstergesinin küçüklerin sayısı olduğuna inanıyorum.dili kullanan işletmeler. Büyük organizasyonlar çok iyi durumdalar - uygulayabilecekleri yatırım ölçeği nedeniyle bir dilin veya araç sisteminin büyümesi için bile gerekli olabilirler - ancak modası geçmeye eğilimli (birkaç istisna dışında). Buna karşılık, küçük bir işletme, ürünü ve hizmetleri sunmak için dili kullanma konusunda kendini geliştirmişse, gelecekte de bunu yapabilmelerini sağlamak için katkıda bulunmaları çok muhtemeldir. Ayrıca, bölgede güçlü bir iş piyasasının temel taşını oluşturuyor ve alet talep ediyorlar. İlginçtir ki, bunlar listemdeki ana akımlık göstergeleridir (muhtemelen yönetimin kaprislerine bağlı olarak).
Peki, Google’ın dışındaki kaç kişi Go’yu işlerinde kullanıyor? Hiç bir fikrim yok. (Ben değilim. İhtiyaçlarım şu anda Java, C ve Tcl. YMMV karışımıyla iyi bir şekilde karşılanmaktadır.)
Zaten bazı dillerden daha popüler.
Muhtemelen, Go 20+ yıl içinde en önemli dildir. Sosyal medya sitelerinin, bulut bilişimin, Arama ve Mobil'in sunduğu büyük veri kümeleri açısından gerçekten büyük faydalar sağlıyor.
Facebook, Twitter, Linkedin, YouTube ve Ad-Serving ağları gibi siteler Google Go için en az bazı bağlamlarda Ruby On Rails'ten çok daha fazla yararlanıyor.
Bunu duyduğumda Go'ya baktım. Tam bir acemi olarak, hala benim için çok fazla olan acemi dilleri öğreniyorum (benim durumumda Java, C #, Python ve Scheme), fakat çok fazla farklı dilde yer almasaydım, bunu ciddiye alabilirdim.
Benim seviyeme geldiğinde, bant vagonlarına atlanmadan önce temelleri azaltmanın bir zararı olmadığını düşünüyorum. Olsa da, doğru hatırlıyorsam, yukarıdan bakarken Go, bir nedenden ötürü Erlang'ı çok etkilemiştim.
Go'ya sadece bu soru yüzünden baktım, bu yüzden anadil olarak geçip geçmeyeceği konusunda gerçekten bir yorum yapamam, ancak bir şey beni gerçekten heyecanlandırdı:
http://golang.org/doc/go_spec.html#Channel_types
İlk olarak Occam-pi'daki Kanallar kavramına rastladım ve bunun şimdiye kadarki en iyi programlama kavramlarından biri olduğunu söylemeliyim . Eşzamanlılığın çok kolay görünmesini sağlar, aynı şeyi C tipi bir dilde yapmak bazen acı verici olabilir.
Gördüklerime göre (baktım 10 dakika içinde), Go birçok farklı programlama kavramını bir araya getirmeye çalışıyor gibi görünüyor, ancak bunun hiçbirinin ustası olmadığına dair tüm esnafların Jack'i olma riski taşıyor.
Ana akım haline gelip gelmeyeceğinin Google’ın appengine ve / veya GWT için desteklenen bir dil olarak benimsemesine bağlı olup olmayacağından şüpheleniyorum.
Keşke Go popüler olacaksa.
Sözdiziminde güçlü. (Python, C, Java'nın avantajlarını öğrenin). Çok çekirdekli işlemci için iyidir. (Kanal, iplik programlamasından çok daha iyi çalışır). Tasarım birçok programcının tuzağını engelliyor. (yanlış işaretçi, aynı gofmt aracıyla aynı kodlama stili, değişken başlatılmamış hatayı önler, İlk seferde ilk kez python + C olduğundan, ancak 1/2 C hızına yakın bir zamanda denedim.
Ancak, derinlemesine öğrendikten sonra hata toleransı ve ölçeklenebilir mimari geliştirmenin uygun olabileceğini öğrendim
after
gitmek için nedir?