“Dil kültürel tarihi” bir platformda nasıl bir rol oynuyor?


15

Geçenlerde bunun karşısında tökezledimbirkaç yıl önceki makale. Dildeki gerçek farklılıklar değil, VB ve C # çevreleyen kültürdeki önemli farklılıkların, C # kodlayıcıların genellikle VB kodlayıcılardan daha yetenekli olmasına katkıda bulunduğunu savunmaktadır. Açıkçası, bu çok fazla alev savaşına neden oldu ve C # ers'in mi yoksa VBer'lerin mi yoksa serseri olup olmadığı sorusu asla cevaplanmayacak. Bununla birlikte, yazarlar, belirli bir platformu çevreleyen kültürün ekibin kalitesine katkıda bulunduğunu hala makul olabileceğini iddia ediyorlar. Örneğin, Java şu anda uygulama geliştirmek için daha verimli olmasına rağmen, Google Go geliştiricileri ekibinin, bir Java geliştiricilerinden oluşan bir ekipten ortalama olarak daha yüksek bir kalibre gibi görünmesi muhtemeldir. süper erken benimseyen ve sınır korsan vızıltı olmak. Kısacası,Bir veya daha fazla platformu çevreleyen kültür, eğer varsa, o platformdaki ortalama geliştiricinin kalitesini nasıl etkiler?


C # vs VB.NET bir gün mü?

@ DeveloperArt- Bu benim niyetim değil. Aslında, bu soru bugünün çok tarihli görünmesi nedeniyle ilginçti, ancak kavram kurtarılabilir olabilir. Makale, C # devs tüm dahiler gibi görünüyor yapar. Ben birim, bu yüzden ilk elden biliyorum ki ruh hali çarptığında hepimiz özensiz olabiliriz.
Morgan Herlocker

1
@Developer Art: Bu makaleyi dün okudum ve eminim ki beni buraya götüren bir cevapta yayınlanan bir bağlantıydı. Belki de Prof Plum da böyle vurdu - bir C # ve VB.NET sorusu diğerine yol açar. :-)
Carson63000

Yanıtlar:


8

Gerçekten ilginç bir soru. Benim kişisel fikrim, çok sık sorulan ve gerçekten hiç su tutmayan biri.

Senaryo kiddileri (ve onları işe alan şirketler), seçim dilinin "programcıların" kademeleri arasındaki statülerini belirlemesine izin verir. İyi mühendisler seçim dili hakkında daha az umursamazlardı, ancak verilen problemleri en uygun şekilde çözmeye odaklanırlar (açıkçası optimal bir genel ifadedir ve birçok farklı faktöre uygulanabilir). Bu C #, VB, C ++, Python veya elle yazılmış montaj olsun, sorunu çözmek için bu teknolojiyi kullanmanın açık bir yararı olduğu için önemli değil.

Kısacası, problemleri çözmek için kullandıkları dilin aksine düzenli olarak çözdüğü sorunların karmaşıklığına bakmanın daha değerli olduğunu düşünüyorum.

Bu konuda sadece iki sentim :)


2
+1: Dahası, şirket sınırlarını bir şekilde aşan bir VB kültürü olduğu fikri gülünç. Bu kültür kendini nasıl koruyacaktı? İş dışında VB programcıları arasında gizli toplantılar mı yapıyorsunuz? Bu "kültürü" uygulamak için VB programcılarının bir "birliği" veya "birliği" mi? 30 yıl boyunca 100 mağaza arasında dolaşarak, şimdiye kadar gördüğüm tek kültürün tamamen yerel olduğunu söyleyebilirim. Dil seçimi, soruda belirtilen bu "diğer" kültürü oluşturmaz.
S.Lott

1
İlginç. Eğer bunu + 1'lerseniz, kimin oy kullanmadığını ve nedenini merak edin: P
Demian Brecht

1
@ S.Lott: O zaman düzeltilmiş duruyorum (varsayımların yan ürününü sevmeliyim;)). Çoğu zaman, bazen herhangi bir geri bildirim almadan bunlar gibi konularda aşağıdan notlar aldım, bu bazen değerli olabilir ve bana daha önce habersiz olduğum bilgileri sağlayabilir :)
Demian Brecht

1
@prof: mu otomasyon gerçekten onlar neyi kısayolları anlamak için bir aşağı yapmak veya üstün düşünürdüm olabilir daha verimli aynı çıktıyı elde etmek alabilir ama? :) Tabii ki, bu aşırı genelleme ve doğru cevaplamak neredeyse imkansız. Go kodlayıcılarının daha tutkulu olmalarına dikkat çekiyorum. Fortran hakkında tutkulu olan insanları hala bulabilirsiniz. Bu olur , ancak, git programcı hakkında daha tutkulu olduğuna inanmak için bana yol yeni iyi bir şey imho :) olan teknoloji ve uygulamaları,
Demian Brecht

1
@Prof Plum: "platform / dil seçiminin geliştiricinin ortalama kalitesi ile ilgisi yoktur". Doğru. Aksi nasıl olabilir? Her şeyden çok, organizasyonun kültürü önemlidir. Google Go kodlayıcıları - kendileri - yalnızca insanlardır. Organizasyon VB insanları sınırlandıran veya Git kullanmaya teşvik eder. İnsanların hepsi insanlar.
S.Lott

4

Bu dillerin her birinde geliştirilen kod kalitesi, bu temel felsefelere ve bireysel geliştiricilere göre daha az

Her dilin etrafında bir kültür vardır, çünkü her dil, gündemine ve temel felsefesine sahip bir kişi tarafından, dilinin neden o zaman var olandan daha iyi bir şeyde daha iyi olacağına dair bir nedenden dolayı geliştirildi .

Dinler gibi, programlama dilleri de, dil yaratıcısının temel ilkelerine ve felsefelerine zaten aynı yatkınlığa sahip insanları çekme eğilimindedir.

Algılanan Çözüm Kalitesi Örneği

Bir Microsoft kampında:

C # felsefesi, daha tamamen Nesne Odaklı olması, daha modern deyimleri teşvik etmesi ve doğru şekilde yapmak için daha fazla bilgi gerektirmesi ve bu nedenle daha yüksek kaliteli çözümler sunmasıdır. İnsanları VB üzerinden çeken budur.

Diğer Microsoft kampında:

VB felsefesi, birisinin bir düğmeyi tıklayıp faydalı ve iş değeri olan bir şeyi yapmasına izin verecek bir şeyi hızlı ve az bir bilgi veya çaba ile yapabileceğim, nasıl önemli olmadığıdır. İnsanları C # üzerinden çeken budur.

İşte bazı dil ve yanak dilleri ve felsefelerini ele alıyor:

Perl insanları Python'un önem verdiği zıt şeyi önemsiyor.

Java insanları para kazanmayı önemsiyor.

JVM dilleri (Groovy, Scala) dili Java ile değil JMV'yi önemser.

Microsoft'a özgü tüm diller (VB, C #, F #, yönetilen C ++) Windows'da para kazanma konusunda bakım eğilimindedir.

Erlang insanları, diğer insanların ilgilenmesi gerekmeyen herkese önem verir ve bilmediklerini takdir etmez.

Lisp insanları, başka kimsenin umurunda olduğunu düşündüklerini umursamıyorlar.

Bu grupların neyi önemsediği, dili, gelişimini ve topluluğunu şekillendirir.

Felsefeler deneyim ve ihtiyaç ile değişir

ASM ve BASIC'i kabul ettim çünkü 1983'te sahip olduğunuz tek şey buydu. Oyunlar ve demolar yazmak istedim, bunu yapmanın araçları bunlardı. Demolar için çoğunlukla ASM.

3D render ve uzay ve zaman açısından kritik olan hemen hemen her şeyi yazmanın tek yolu C ve sonra C ++ 'ı geri aldım. ASM değildi bu yüzden öğrendim.

Para kazanmak için VB'yi kabul ettim, Amiga'da alışkın olduğum Scala, Direktör ve CanDo geliştirme ortamlarına en yakın şeydi. Hızlı gelişim felsefesini kabul ettim

Daha iyi para kazanmak için Java'yı erken kabul ettim. 1999 yılına kadar VB ile para kazandım ve Java 1.2 kararlı ve olgunlaştığında ve web o zamana kadar tamamen devreye girdiğinde geride bıraktım, insanlar gerçekten ciddiye almaya başladığında 4 yıllık Java deneyimim vardı. Ben bir kez yazma ile kabul etti, benim kod daha fazla yerde daha kolay satmak mümkün olacağını koştu her yerde çalıştırın . Felsefe.

Python'u 2005'in sonlarında kabul ettim çünkü Java'nın yapmadığı bir kaşıntı çizdi. Ben C yalnızca bazı kütüphaneler kullanmak hızla yazma koduna gerekli ve ayrıca Yapmam gereken hızlı Python Java aynı şeyi yapmak için daha hızlı ve daha az kod oldu prototip webservice. Bazıları Java'nın bir kısmı Python olarak kaldığı için üretime gitti, birçok şey onu asla vahşi hale getirmedi. Pilleri, tek deyim felsefeleri ve diğerleri ile anlaştım.

C ++ ve Java programlarıma hafif bir betik motoru koymam gerektiğinde Lua'yı kullandım. Bu, Java'daki JSR233 desteğinden çok daha önceydi. Kullanımı kolay bir Lua felsefesi olması gereken tam özellikli bir betik dili yerleştirme konusunda anlaştım.

Erlang'ı 2006'da, büyük ölçüde paralel problemler üzerinde büyük ölçekli ölçeklenebilirliğe ve nispeten ağrısız çok çekirdekli yürütmeye ve çapraz platform yürütmeye ihtiyaç duyduğumda kabul ettim. ** Paylaşılan durumu, mesaj geçişi, değişmez devlet felsefesi ile aynı fikirdeyim. * 8

OSX ve iOS uygulamaları oluşturmaya ihtiyaç duyduğumda Objective-C'yi kullandım. Daha iyi bir felsefe yapmak için sadece Nesne Yönelimi'ni C'ye ekleme hakkına katılıyorum . Ayrıca daha iyi para kazanmak için.

CouchDB felsefesini kabul ettiğim için JavaScript'i resmi olarak 2009'da kabul ettim ve JavaScript kullanıyor. DOM ile uğraşmam gerektiğinde hala JavaScript'i sevmiyorum.

Lisp'i hala resmen kabul etmedim, ama sonunda yapacağım! Onunla aynı fikirdeyim Lisp bilmeyenler felsefesini yeniden icat etmeye mahkumdur .


0

Gerçekten ilginç bir soru. Cevabı bilinçaltı düzeyde anladığınız ama kelimelere dökmeye çalıştığınızlardan biridir.

En iyi nedensellik döngüsü olarak görülür.

Kültür, platforma ilgi duyan geliştiricilerin "etnik" kompozisyonundan sorumludur. Bu kompozisyon da "ortalama" programlayıcının niteliklerini tanımlar. Şimdi platformu kullanan geliştiricilerin kalitesi, kültürü ya da dışarıdaki algısını etkiler; sonuç olarak platforma gelen ya da platformdan çıkan geliştiriciler üzerinde bir etkisi vardır. Sonuç olarak "kalite" nin değeri değişir.

Belirli kurallar bulmaya çalışıyordum ama genelleme yapmakta zorlanıyorum. Her platformu ayrı ayrı incelememiz gerekir. Birkaç gözlem yaptım:

  • Belirli bir platformun geliştirilme, genişletilme, iyileştirilme hızı, geliştiricilerin kalitesi ile doğrudan bir korelasyona sahiptir. Yeni parlak özelliklerin ve araçların sürekli akışı, (ortalama olarak daha kaliteli çalışma yeteneğine sahip) hevesli geliştiricileri çekiyor ve sürekli öğrenme çabası tarafından tahriş olan muhafazakar zihinleri itiyor.

  • Bir platformun kendini ayağa vurmak için daha yüksek risk pahasına bile sunduğu daha az sınırlar, aynı derecede hevesli deneysel zihinleri çeker

  • Platformu kullanmak için anlaşılması ve ustalaşması gereken şeyler ne kadar karmaşıksa, kararlı bireyleri eşit derecede çeker ve tembel geliştiricileri korkutur


Bu kültür şirket sınırlarını nasıl aşar?
S.Lott

1
@Lott Teknoloji neredeyse her zaman kültürel sınırları geçer. Farklı işletim sistemi kullanıcıları arasında büyük kültürel ayrımlar vardır. Tanıdığım birçok grafik tasarımcı ve ses mühendisi Mac dışında bir şey kullanan bir şirkete gitmenin bir anlaşma kırıcı olduğunu düşünürdü. Mac bu iki grubun etrafında, özellikle tamamen elle tutulur bir kültür geliştirdi. Programlama dilleri tıpkı Photoshop ve GIMP gibi araçlardır, bu yüzden etraflarında kültürler oluşturdukları şaşırtıcı değildir. Eğer olmasaydı, alev savaşları olmazdı.
Morgan Herlocker

@Prof Erik: Örnekleriniz araçlara dayalı "kültür" ile eşleşmiyor. Örnekleriniz tam tersidir. Gerçek kültür (ses mühendisleri) ortak araçlar seçer. Logic Pro'nun tüm kullanıcıları ses mühendisi olmak zorunda değildir, çünkü bir şekilde Logic Pro bir kültür oluşturur. Bence yorumunuzdaki örnekler (aynı iş -> benzer araçlar) "dil kültürel tarihi" olmadığının mükemmel kanıtıdır. Aksine, ortak kullanım örneği kültürü veya ortak son kullanıcı iş kültürü vardır.
S.Lott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.