“ ประวัติศาสตร์วัฒนธรรมภาษา” มีบทบาทอะไรบ้างในการเล่นกับแท่น?


15

ฉันเพิ่งพบสิ่งนี้บทความจากไม่กี่ปีที่ผ่านมา มันระบุว่าความแตกต่างอย่างมีนัยสำคัญในวัฒนธรรมโดยรอบ VB และ C # ไม่ใช่ความแตกต่างที่เกิดขึ้นจริงในภาษามีส่วนร่วมในการเขียนโค้ด C # โดยทั่วไปมีความสามารถมากกว่า VB ตัวแปลงสัญญาณ เห็นได้ชัดว่าทำให้เกิดเปลวไฟสงครามมากมายและคำถามว่า C # ers หรือ VBers เป็นคนโง่จะไม่ได้รับคำตอบ ดังที่กล่าวไว้ผู้เขียนอ้างว่าวัฒนธรรมรอบ ๆ แพลตฟอร์มเฉพาะนั้นมีส่วนทำให้คุณภาพของทีมยังคงมีเหตุผล ตัวอย่างเช่นแม้ว่า Java มีประสิทธิภาพมากกว่าในการพัฒนาแอปด้วยในขณะนี้ทีมนักพัฒนาของ Google Go ดูเหมือนจะมีความสามารถโดยเฉลี่ยสูงกว่าทีมนักพัฒนา Java เนื่องจากเรียนรู้ Go นักพัฒนาอาจมี ที่จะเป็นลูกบุญธรรมสุดยอดและหวือชายแดนแฮ็ค ดังนั้นโดยสรุปวัฒนธรรมยอมแพ้อย่างใดอย่างหนึ่งหรืออีกแพลตฟอร์มหนึ่งส่งผลกระทบต่อคุณภาพของนักพัฒนาโดยเฉลี่ยบนแพลตฟอร์มนั้นได้อย่างไร


มันเป็นวัน C # กับ VB.NET หรือไม่?

@ DeveloperArt- นั่นไม่ใช่ความตั้งใจของฉัน ในความเป็นจริงคำถามที่ฉันได้น่าสนใจเนื่องจากความจริงที่ว่าบทความดูเหมือนวันนี้มาก แต่แนวคิดอาจจะสามารถกู้ได้ บทความทำให้ดูเหมือนว่า C # devs เป็นอัจฉริยะทั้งหมด ฉันเป็นหนึ่งเดียวดังนั้นฉันรู้ว่ามือแรกที่เราทุกคนสามารถเป็นเพียงเลอะเทอะเมื่ออารมณ์ความรู้สึก
Morgan Herlocker

1
@ ผู้พัฒนาศิลปะ: ฉันอ่านบทความเมื่อวานนี้และฉันค่อนข้างแน่ใจว่ามันเป็นลิงค์โพสต์ในคำตอบที่นี่ที่พาฉันไป บางทีนั่นอาจเป็นสาเหตุที่ Prof Plum กระทบเช่นกันคำถามหนึ่งคำถาม C # กับ VB.NET นำไปสู่คำถามอื่น :-)
Carson63000

คำตอบ:


8

คำถามที่น่าสนใจจริงๆ ความเห็นส่วนตัวของฉันคือมันเป็นสิ่งที่ถูกถามบ่อยเกินไปและไม่มีน้ำจริงๆเลย

สคริปต์ kiddies (และ บริษัท ที่จ้างพวกเขา) ให้ภาษาที่ถูกเลือกเป็นตัวกำหนดสถานะของพวกเขาในระดับของ "โปรแกรมเมอร์" วิศวกรที่ดีไม่สามารถสนใจภาษาทางเลือกได้น้อยลง แต่ให้ความสนใจกับการแก้ปัญหาด้วยวิธีที่เหมาะสมที่สุด (ชัดที่สุดคือข้อความทั่วไปและสามารถนำไปใช้กับปัจจัยต่าง ๆ ได้) ไม่ว่าจะเป็น C #, VB, C ++, Python หรือชุดประกอบที่เขียนด้วยมือมันไม่สำคัญว่าจะมีประโยชน์ชัดเจนในการใช้เทคโนโลยีนั้นเพื่อแก้ปัญหา

ดังนั้นในระยะสั้นฉันคิดว่ามันมีค่ามากกว่าที่จะดูความซับซ้อนของปัญหาที่เราแก้ไขเป็นประจำเมื่อเทียบกับภาษาที่ใช้ในการแก้ปัญหา

เพียงแค่สองเซ็นต์ของฉันในเรื่อง :)


2
+1: ยิ่งกว่านั้นความคิดที่ว่ามีวัฒนธรรม VB ที่สามารถก้าวข้ามขอบเขตของ บริษัท ไปได้อย่างน่าหัวเราะ วัฒนธรรมนี้จะรักษาตัวเองได้อย่างไร การประชุมลับในหมู่โปรแกรมเมอร์ VB นอกที่ทำงาน? "union" หรือ "กิลด์" ของโปรแกรมเมอร์ VB เพื่อบังคับใช้ "วัฒนธรรม" นี้หรือไม่? จากการใช้เวลา 30 ปีที่กระเด้งไปมาในร้านไอที 100 แห่งฉันสามารถพูดได้ว่าวัฒนธรรมเดียวที่ฉันเคยเห็นมีการแปลเป็นภาษาท้องถิ่นล้วนๆ การเลือกภาษาไม่ได้สร้างวัฒนธรรม "อื่น ๆ " นี้อ้างอิงในคำถาม
S.Lott

1
น่าสนใจ หากคุณ +1 ให้สงสัยว่าใครเป็นผู้โหวตและทำไม: P
Demian Brecht

1
@ S.Lott: ฉันยืนแก้ไขแล้ว (ต้องรักผลพลอยได้ของสมมติฐาน;)) ครั้งกว่าไม่ผมได้รับ downvotes ในหัวข้อต่างๆเช่นเหล่านี้โดยไม่จริงได้รับการตอบรับใด ๆ ซึ่งบางครั้งอาจจะมีคุณค่าและให้ข้อมูลซึ่งผมก็ลืมไปก่อนหน้านี้ :)
Demian เบรชต์

1
@prof: การทำให้เป็นอัตโนมัติด้อยกว่าจริง ๆหรือคุณคิดว่าเหนือกว่าเพราะพวกเขาเข้าใจว่าทางลัดใดที่พวกเขาสามารถใช้เพื่อให้ได้ผลลัพธ์เดียวกัน แต่มีประสิทธิภาพมากขึ้นหรือไม่ :) แน่นอนว่ามันเป็นลักษณะทั่วไปมากเกินไปและแทบจะเป็นไปไม่ได้ที่จะตอบถูกต้อง ฉันเป็นคนที่ชอบทำตัวเป็นรั้วเกี่ยวกับโกเดอร์ที่หลงใหลมากขึ้น คุณยังสามารถหาคนที่หลงใหล Fortran มันจะอย่างไรทำให้ฉันเชื่อว่าโปรแกรมเมอร์ไปเป็นหลงใหลเพิ่มเติมเกี่ยวกับใหม่เทคโนโลยีและการปฏิบัติซึ่งเป็นสิ่งที่ดี IMHO :)
Demian เบรชต์

1
@Prof Plum: "ตัวเลือกแพลตฟอร์ม / ภาษาไม่มีส่วนเกี่ยวข้องกับคุณภาพโดยเฉลี่ยของผู้พัฒนา" แก้ไข. จะเป็นอย่างอื่นได้อย่างไร? ยิ่งกว่าสิ่งใดวัฒนธรรมขององค์กรก็มีความสำคัญ ผู้เขียนโค้ดของ Google Go - เป็นของตัวเอง องค์กรจำกัด คนที่จะ VB หรือสนับสนุนให้พวกเขาที่จะใช้ไป คนคือทุกคน
S.Lott

4

คุณภาพของรหัสที่พัฒนาขึ้นในแต่ละภาษาเหล่านี้ขึ้นอยู่กับปรัชญาพื้นฐานเหล่านี้และน้อยกว่าสำหรับนักพัฒนาแต่ละคน

แต่ละภาษามีวัฒนธรรมที่อยู่รอบ ๆ เพราะแต่ละภาษาได้รับการพัฒนาด้วยเหตุผลที่บางคนมีวาระการประชุมและมีปรัชญาพื้นฐานว่าทำไมภาษาของพวกเขาจะดีขึ้นในบางสิ่งมากกว่าที่มีอยู่ในเวลานั้น

เช่นเดียวกับศาสนาภาษาการเขียนโปรแกรมมักจะดึงดูดผู้คนที่มีความโน้มเอียงที่เหมือนกันกับผู้ว่าจ้างหลักและปรัชญาของผู้สร้างภาษา

ตัวอย่างการรับรู้คุณภาพของการแก้ปัญหา

ในค่าย Microsoft เดียวคุณมี:

ปรัชญาของ C # ก็คือมันให้ความสำคัญกับ Object Oriented มากขึ้นส่งเสริมสำนวนที่ทันสมัยมากขึ้นและต้องการความรู้มากขึ้นในการทำอย่างถูกต้องดังนั้นจึงควรให้โซลูชันที่มีคุณภาพสูงขึ้น นี่คือสิ่งที่ดึงดูดผู้คนให้ใช้ VB

ในค่าย Microsoft อื่น ๆ :

ปรัชญาของ VB คือฉันสามารถทำได้อย่างรวดเร็วและด้วยความรู้หรือความพยายามเพียงเล็กน้อยในการสร้างบางสิ่งบางอย่างที่จะทำให้ใครคนหนึ่งคลิกปุ่มและทำสิ่งที่มีประโยชน์และคุณค่าทางธุรกิจว่ามันสำคัญอย่างไร นี่คือสิ่งที่ดึงดูดผู้คนไปที่ C #

นี่คือลิ้นและแก้มที่ใช้กับภาษาและปรัชญาของพวกเขา:

คน Perl มักจะสนใจเกี่ยวกับสิ่งที่ตรงกันข้ามกับที่คน Python ใส่ใจ

คน Java สนใจเกี่ยวกับการทำเงิน

ภาษา JVM (Groovy, Scala) ใส่ใจเกี่ยวกับ JMV ไม่ใช่ภาษา Java

ภาษาเฉพาะของ Microsoft ทั้งหมด (VB, C #, F #, C ++ ที่มีการจัดการ) มักสนใจเกี่ยวกับการทำเงินบน Windows

คนของ Erlang ใส่ใจกับทุกสิ่งที่ทุกคนที่คนอื่นไม่ต้องการดูแลและไม่เห็นคุณค่าสิ่งที่พวกเขาไม่รู้

คนเสียงกระเพื่อมไม่สนใจสิ่งที่คนอื่นคิดว่าพวกเขาสนใจ

สิ่งที่กลุ่มคนเหล่านี้ใส่ใจเกี่ยวกับรูปร่างภาษาการพัฒนาและชุมชน

ปรัชญาเปลี่ยนไปด้วยประสบการณ์และความต้องการ

ฉันใช้ ASM และ BASIC เพราะในปี 1983นั่นคือทั้งหมดที่คุณมี ฉันต้องการเขียนเกมและการสาธิตเหล่านี้เป็นเครื่องมือที่จะทำ ASM ส่วนใหญ่สำหรับการสาธิต

ฉันยอมรับ C และ C ++ กลับมาเมื่อมันเป็นวิธีเดียวที่จะเขียนสิ่งต่าง ๆ เช่นการเรนเดอร์ 3D และสิ่งอื่นใดที่ค่อนข้างสำคัญในเรื่องพื้นที่และเวลา มันไม่ใช่ ASM ดังนั้นฉันจึงเรียนรู้

ฉันนำ VB มาใช้เพื่อทำเงินมันเป็นสิ่งที่ใกล้เคียงที่สุดกับสภาพแวดล้อมการพัฒนาของ Scala, Director และ CanDo ที่ฉันคุ้นเคยกับ Amiga ฉันเห็นด้วยกับปรัชญาการพัฒนาที่รวดเร็ว

ฉันยอมรับ Java ก่อนเพื่อสร้างรายได้ดีขึ้น ฉันทำเงินกับ VB จนถึงปี 1999 และทิ้งไว้เมื่อ Java 1.2 มีเสถียรภาพและเป็นผู้ใหญ่และเว็บก็เริ่มเล่นอย่างเต็มที่ในตอนนั้นฉันมีประสบการณ์ Java 4 ปีเมื่อผู้คนเริ่มจริงจังกับมันจริงๆ ฉันเห็นด้วยกับการเขียนครั้งเดียวทำงานได้ทุกที่และยิ่งรหัสของฉันวิ่งได้มากเท่าไหร่ก็ยิ่งขายได้ง่ายขึ้นเท่านั้น ปรัชญา.

ฉันใช้ Python ในช่วงปลายปี 2005 เพราะมันทำให้คันของ Java ไม่เป็นรอย ฉันต้องการเขียนโค้ดอย่างรวดเร็วเพื่อใช้งานไลบรารี่บางตัวที่มีเฉพาะในซีและฉันก็ต้องทำเว็บไพ ธ อไรซ์ต้นแบบอย่างรวดเร็ว Python นั้นเร็วกว่าและใช้โค้ดน้อยลงเพื่อทำสิ่งเดียวกันใน Java บางสิ่งบางอย่างไปผลิตเนื่องจาก Java บางคนยังคง Python สิ่งต่าง ๆ มากมายไม่เคยทำให้มันเป็นป่าฉันเห็นด้วยกับแบตเตอรี่ของมันรวมถึงปรัชญาสำนวนเดียวเช่นเดียวกับแบตเตอรี่อื่น ๆ

ฉันใช้ Lua เมื่อฉันต้องการวางเอ็นจิ้นสคริปต์น้ำหนักเบาลงในโปรแกรม C ++ และ Java นี่เป็นวิธีก่อนการสนับสนุน JSR233 ใน Java ฉันเห็นด้วยกับการฝังภาษาสคริปต์อย่างเต็มรูปแบบที่ใช้งานง่ายควรเป็นปรัชญา Lua แบบง่าย ๆ

ฉันใช้ Erlang ในปี 2549 เมื่อฉันเริ่มต้องการความยืดหยุ่นที่มากและการประมวลผลแบบมัลติคอร์ที่ไม่เจ็บปวดสำหรับปัญหาที่ขนานกันอย่างมากและมีการดำเนินการข้ามแพลตฟอร์ม ** ฉันเห็นด้วยกับการไม่มีรัฐที่ใช้ร่วมกันการส่งข้อความปรัชญาของรัฐที่ไม่เปลี่ยนแปลง * 8

ฉันใช้ Objective-C เมื่อฉันเริ่มต้องสร้างแอปพลิเคชัน OSX และ iOS ฉันเห็นด้วยกับการเพิ่มเพียงแค่สิทธิของ Object Orientation ใน C เพื่อให้เป็นปรัชญาที่ดีขึ้น ยังทำเงินได้ดีกว่า

ฉันยอมรับ JavaScript อย่างเป็นทางการในปี 2009 เพราะฉันเห็นด้วยกับปรัชญา CouchDB และใช้ JavaScript ยังคงไม่ชอบ JavaScript เมื่อฉันต้องจัดการกับ DOM

ฉันยังไม่ได้ใช้ LISP อย่างเป็นทางการ แต่ฉันจะไปในที่สุด! ฉันเห็นด้วยกับผู้ที่ไม่ทราบว่าเสียงกระเพื่อมถูกประณามว่าจะคิดค้นมันขึ้นมาใหม่


0

คำถามที่น่าสนใจอย่างแน่นอน มันเป็นหนึ่งในสิ่งที่คุณเข้าใจคำตอบในระดับจิตใต้สำนึก แต่พยายามที่จะทำให้เป็นคำพูด

มันถูกมองว่าเป็นห่วงเวรกรรม

วัฒนธรรมมีความรับผิดชอบต่อองค์ประกอบ "ชาติพันธุ์" ของนักพัฒนาที่ดึงดูดไปยังแพลตฟอร์ม องค์ประกอบนั้นจะกำหนดคุณสมบัติของโปรแกรมเมอร์ "เฉลี่ย" คุณภาพของนักพัฒนาที่ใช้แพลตฟอร์มนี้มีอิทธิพลต่อวัฒนธรรมหรือการรับรู้ภายนอกซึ่งส่งผลกระทบต่อนักพัฒนาที่มาถึงแพลตฟอร์มหรือออกจากแพลตฟอร์ม ค่าของ "คุณภาพ" จะเปลี่ยนตามผลลัพธ์

ฉันพยายามหากฎเฉพาะ แต่ฉันพบว่ามันยากที่จะพูดคุยทั่วไป เราจำเป็นต้องตรวจสอบแต่ละแพลตฟอร์มแยกกัน ข้อสังเกตเล็กน้อยที่ฉันได้ทำ:

  • ความเร็วที่แพลตฟอร์มเฉพาะได้รับการพัฒนาขยายและปรับปรุงนั้นมีความสัมพันธ์โดยตรงกับคุณภาพของผู้พัฒนา การไหลอย่างต่อเนื่องของคุณสมบัติและเครื่องมือที่เป็นประกายใหม่ดึงดูดนักพัฒนาที่กระตือรือร้น (ซึ่งโดยเฉลี่ยมีความสามารถในการทำงานที่มีคุณภาพมากขึ้น) และขับไล่จิตใจอนุรักษ์นิยมที่หงุดหงิดโดยการเรียนรู้อย่างต่อเนื่อง

  • ขีด จำกัด น้อยกว่าแพลตฟอร์มเสนอแม้ค่าใช้จ่ายของความเสี่ยงที่สูงขึ้นในการยิงตัวเองในเท้าอย่างเท่าเทียมกันดึงดูดใจการทดลองที่กระตือรือร้น

  • สิ่งที่ซับซ้อนยิ่งขึ้นซึ่งเป็นสิ่งที่เราจำเป็นต้องเข้าใจและเป็นผู้เชี่ยวชาญในการใช้แพลตฟอร์มนั้นดึงดูดผู้ที่ได้รับการแก้ไขอย่างเท่าเทียมกันและทำให้ผู้พัฒนาที่ขี้เกียจ


วัฒนธรรมนี้ก้าวข้ามขอบเขตของ บริษัท ได้อย่างไร
S.Lott

1
เทคโนโลยี @Lott ถ่ายทอดขอบเขตทางวัฒนธรรมได้เกือบตลอดเวลา มีการแบ่งทางวัฒนธรรมอย่างมากระหว่างผู้ใช้ระบบปฏิบัติการที่แตกต่างกัน นักออกแบบกราฟิกและวิศวกรเสียงจำนวนมากที่ฉันรู้ว่ามันเป็นตัวทำลายข้อตกลงที่จะไป บริษัท ที่ใช้อะไรก็ได้ยกเว้น Mac Mac ได้ส่งเสริมวัฒนธรรมรอบสองกลุ่มนี้โดยเฉพาะที่จับต้องได้อย่างแท้จริง ภาษาการเขียนโปรแกรมเป็นเครื่องมือเช่นเดียวกับ Photoshop และ GIMP ดังนั้นจึงไม่น่าแปลกใจที่พวกเขามีวัฒนธรรมที่สร้างขึ้นรอบตัวพวกเขา หากพวกเขาไม่ทำเช่นนั้นเราจะไม่มีสงครามเปลวไฟ
Morgan Herlocker

@Prof Plum: ตัวอย่างของคุณไม่ได้จับคู่กับ "culture" โดยอาศัยเครื่องมือ ตัวอย่างของคุณตรงกันข้าม วัฒนธรรมที่แท้จริง (วิศวกรเสียง) เลือกเครื่องมือทั่วไป ไม่ใช่ว่าผู้ใช้ทุกคนของ Logic Pro ถูกบังคับให้เป็นวิศวกรเสียงเพราะอย่างใด Logic Pro สร้างวัฒนธรรม ฉันคิดว่าตัวอย่างในความคิดเห็นของคุณ (งานเดียวกัน -> เครื่องมือที่คล้ายกัน) เป็นข้อพิสูจน์ที่ยอดเยี่ยมว่าไม่มี "ประวัติศาสตร์วัฒนธรรมภาษา" ค่อนข้างมีวัฒนธรรมการใช้เคสหรือวัฒนธรรมการใช้งานทั่วไปของผู้ใช้ปลายทาง
S.Lott
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.