ฉันควรรบกวนการเรียนรู้เกี่ยวกับภาษาขนาดเล็กหรือภาษาเฉพาะ [ปิด]


22

หากคุณเรียกดูคำถามรหัสกอล์ฟ StackExchangeคุณสังเกตเห็นตันของที่ไม่ได้มาตรฐาน แต่จริงโลก (เช่นไม่ได้สมอง-F * CK) ภาษาเช่นF # , Scala , R , JและClojure การเยี่ยมชมเว็บไซต์ของพวกเขาบางภาษามีลักษณะที่น่าสนใจในการแก้ปัญหาในภาษาที่คุณใช้อยู่

อย่างไรก็ตามมีการเข้ารหัสในเวลาว่างและการเข้ารหัสเพื่อเงิน สิ่งที่ใกล้เคียงที่สุดกับความจริงที่ว่าเราใช้ภาษาใดคือดัชนี TIOBEซึ่งไม่มีรายการของภาษาข้างต้นใน 10-15 อันดับแรก ซึ่งทำให้ฉันสงสัยว่าฉันจะใช้พวกเขาหรือไม่

ฉันควรจะรำคาญที่จะเรียนภาษาเฉพาะกลุ่มเล็ก ๆ บ้างไหม? ดูเหมือนว่าฉันจะทำเงินไม่ได้และบางคนก็อาจล้มเหลวอยู่ดี


4
ถ้าสิ่งที่คุณใส่ใจคือการทำเงินทำไมคุณถึงถามคำถามนี้?
ChaosPandion

4
F # เป็นภาษาชั้นหนึ่งตั้งแต่ VS2010 ฉันจะไม่บอกว่ามันไม่ได้มาตรฐานและฉันคิดว่ามันจะได้รับการยอมรับอย่างกว้างขวางในไม่ช้า
Brian R. Bondy

8
หากสิ่งที่คุณต้องการเพียงแค่ทำเงินคุณควรหลีกเลี่ยงการเขียนโปรแกรม การเป็นนักแสดงยอดนิยมล่ะ?
P Shved

2
@TheLQ: คุณต้องการที่จะเป็นกระแสหลัก? คุณกลัวที่จะทำตามขั้นตอนใด ๆ ที่คุณไม่ทราบว่าจะต้องใช้เงินจำนวนเท่าใดก่อนที่คุณจะทำ จากนั้นโปรดเป็นเนื้อหาที่มีการจ่ายเงินหลัก นี่คือทั้งหมดที่คุณจะได้รับด้วยความคิดของคุณถ้าทั้งหมด
Ingo

1
ภาษาเฉพาะบางภาษาอาจทำให้คุณมีประสิทธิผลมากขึ้นซึ่งจะทำให้คุณได้รับเงินมากกว่าภาษาหลัก
Giorgio

คำตอบ:


25

Sapir-Whorf สมมุติฐาน มันระบุว่ามากหรือน้อยที่สิ่งที่คุณคิดว่าถูก จำกัด ด้วยสิ่งที่คุณมีภาษาที่จะอธิบาย ผลที่ตามมาคือคนหลายภาษาสามารถคิดในลักษณะที่ผู้พูดภาษาเดียวอาจไม่สามารถ

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


1
เผง ตัวอย่างเช่นฉันพบว่าในบางสถานการณ์ภาษาที่ใช้งานได้อย่างหมดจดก็ไม่พอเพียง อย่างไรก็ตามฉันพบว่าตัวเองดึงแนวคิดการทำงานในภาษาที่รองรับการเขียนโปรแกรมการทำงาน (เช่น. javascript, c ++ 0x เป็นต้น)
แคม

4
ฉันขบขันว่าผู้คนยังคงใช้สมมุติฐานของ Sapir-Whorf (ส่วนใหญ่แม้ว่าจะไม่ได้ทำให้เสียชื่อเสียงในภาษาศาสตร์) เป็นการเปรียบเทียบ แน่นอนฉันเห็นด้วยกับความรู้สึกที่เกี่ยวกับการเขียนโปรแกรม แต่ฉันคิดว่าการเปรียบเทียบที่แตกต่างกันจะดีกว่าถ้าเราต้องการให้คนเอาจริงเอาจัง
Jonathan Sterling

1
ฉันไม่เชื่อว่าสมมติฐานมิฉะนั้นเราจะไม่เคยย้ายเกินกว่าคำราม ในทำนองเดียวกันสำหรับการเขียนโปรแกรมอย่าคิดว่าคนจะถูก จำกัด ด้วยภาษา
John Smith

24

ฉันจะเรียนรู้ภาษาใด ๆ ที่แนะนำให้ฉันรู้จักกับแนวคิดและกระบวนทัศน์ที่ฉันไม่เคยเห็นมาก่อน นั่นเป็นเหตุผลที่ฉันได้เรียนรู้ Haskell และ Scheme - พวกเขาแนะนำให้ฉันรู้จักกับการเขียนโปรแกรมฟังก์ชั่นและการเขียนโปรแกรมตามหน้าที่ ฉันจะไม่ใส่ใจน้อยกว่าว่ารูปแบบและฮาเซลมีการใช้กันอย่างแพร่หลายนอกเหนือจากสิ่งที่จะส่งผลกระทบต่อเอกสารและทรัพยากรที่มีอยู่

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

เหตุผลอื่น ๆ ที่คุณอาจต้องการเรียนรู้ภาษา 'เล็ก / โพรง':

  • ภาษาช่วยให้คุณแก้ปัญหาเฉพาะเจาะจง (ประเภท) ปัญหา 'ดีกว่า' (เร็วขึ้นด้วยวิธีแก้ปัญหาที่ดีกว่าพกพาสะดวก ฯลฯ ) มากกว่าภาษาอื่น ๆ

  • ภาษาช่วยให้คุณแก้ปัญหาได้เช่นเดียวกับภาษายอดนิยม แต่ก็มีคุณสมบัติเจ๋ง ๆ ที่คุณชอบ (เช่น clojure)

  • คุณต้องการช่วยพัฒนาภาษา

7

ฉันใช้ Clojure (หนึ่งใน "ภาษาเฉพาะ" ที่คุณพูดถึง) และพบว่ามันเป็นประสบการณ์ที่คุ้มค่ามาก

  • มันทำให้ฉันมีประสิทธิภาพมากขึ้น (เทียบกับ Java และ C # ที่ฉันใช้เป็นหลักก่อนหน้านี้) ในขณะที่ฉันดำเนินธุรกิจของตัวเองผลผลิตเท่ากับเงิน :-) ดังนั้นในความหมายนั้น Clojure ก็ประสบความสำเร็จแล้วอย่างน้อยก็จากมุมมองของฉัน
  • ฉันได้เรียนรู้เทคนิคใหม่ ๆ ที่ทำให้ฉันเป็นนักพัฒนาซอฟต์แวร์ที่ดีขึ้น แม้ว่าฉันจะกลับไปเขียน Java ฉันก็ยังสามารถใช้ความรู้นี้ได้ดี
  • มันสนุกอย่างแท้จริงที่ได้เรียนรู้ภาษาใหม่แตกต่างจากสิ่งที่ฉันเคยทำมาก่อน หากคุณสนุกกับสิ่งที่คุณทำจริง ๆ มันคุ้มค่าในสิทธิของตนเอง
  • เนื่องจากเป็นภาษา JVM จึงไม่สำคัญว่าชุดไลบรารีมีขนาดค่อนข้างเล็กหรือไม่เพราะคุณยังสามารถเข้าถึงไลบรารีทั้งหมดในระบบนิเวศ Java / JVM นี่เป็นข้อได้เปรียบที่ยิ่งใหญ่สำหรับภาษาที่ใช้กับ JVM (เช่นเดียวกับ Scala)

โดยส่วนตัวแล้วฉันให้ความสนใจอย่าง จำกัด เช่น TIOBE - พวกเขาไม่ได้บอกอะไรคุณมากกว่าในอดีตที่ผ่านมา มีประโยชน์บางทีถ้าคุณต้องการงานที่ดูแลระบบเก่าให้น้อยลงถ้าคุณต้องการเรียนรู้และขยายขอบเขตอันไกลโพ้นของคุณ


4

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


4

การพูดในฐานะนักพัฒนามืออาชีพในภาษาเฉพาะเป็นไปได้ที่จะหาเลี้ยงชีพ แม้ว่าจะมี Upside และ Downside

สิ่งที่ยากขึ้น:

  • การหางานทำใช้เวลานานกว่า
  • งานมีแนวโน้มที่จะต้องให้คุณย้าย
  • คุณจะได้รับความเคารพเล็กน้อยจากโปรแกรมเมอร์หลัก (และดังนั้นความต้านทานมากขึ้น)

สิ่งที่ง่ายขึ้น:

  • โปรแกรมเมอร์ขนาดเล็กทำให้ การแข่งขันสำหรับงานง่ายขึ้น
  • คุณสามารถรู้โปรแกรมเมอร์สำคัญทุกคนในสาขาของคุณ
  • การพัฒนาชื่อเสียงนั้นง่ายกว่าในกระแสหลัก

สิ่งที่เพิ่งเป็น :

  • จ่ายมีแนวโน้มที่จะแปรผันมากขึ้นเนื่องจากมีมาตรฐานน้อย
  • ใช้เวลากับการให้ความรู้แก่ผู้อื่นเกี่ยวกับจุดแข็งและจุดอ่อนของช่องของคุณ

โดยรวมแล้วหากอาชีพเป็นสิ่งที่คุณกังวลคุณไม่ควรเป็นม้าตัวเมียตัวหลักหรือซอก


2

ขณะนี้ฉันเรียนรู้ Ruby โดยใช้เพื่อแก้ปัญหาProject Eulerเพียงเพราะฉันใช้เวลาส่วนใหญ่ในการเขียนโปรแกรม C หรือ PHP (และบางครั้ง C #) และฉันต้องการขยายขอบเขตของฉัน จนถึงตอนนี้ได้เปิดตาของฉันจริงๆกับสิ่งที่สามารถทำได้ แม้ว่าฉันจะไม่เคยใช้มันกับงาน "ของจริง" ก็ตามฉันเชื่อว่าเวลาที่ใช้ในการเรียนรู้เกี่ยวกับมันจะคุ้มค่า


+1 สำหรับออยเลอร์โครงการ ฉันทำแบบเดียวกันในขณะที่ฉันเรียนรู้ python

1

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

หากภาษานั้นได้รับความนิยมคุณจะมีความชำนาญในภาษานั้นอยู่แล้วดังนั้นคุณจะมีความต้องการสูง

ความน่าจะเป็นต่ำและผลตอบแทนสูง


2
โดยส่วนตัวฉันจะพยายามเรียนรู้แนวความคิดมากกว่าภาษา ... พื้นที่สมองที่ จำกัด ถ้าคุณรู้ว่าฉันหมายถึงอะไร
ChaosPandion

1

อย่างที่คนอื่นพูดไปแล้วการเรียนภาษาเฉพาะเพราะมันเป็นภาษาเฉพาะไม่สมเหตุสมผล แม้ว่าบ่อยครั้งที่ภาษาเฉพาะจะค้นหาแนวคิดเพิ่มเติม / ลึกล้ำกว่าภาษากระแสหลักที่สามารถจ่ายได้หรือต้องการ

และบางครั้งภาษาเฉพาะได้ไกลไปไกลเกินกว่าภาษาหลักใด ๆ - Smalltalk, Prolog และภาษา Lisp กระฉับกระเฉง พวกเขาอาจจะไม่ได้รับความนิยม แต่ก็ไม่ได้หายไปเช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.