อะไรเป็นแรงผลักดันในการยอมรับภาษาการเขียนโปรแกรมใหม่หรือไม่ [ปิด]


12

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



2
โอกาสและการสนับสนุนองค์กรเป็นปัจจัยสำคัญ steve-yegge.blogspot.com/2007/02/next-big-language.html
งาน

3
ไม่ใช่คำถามที่เหมาะสมสำหรับฟอรัมนี้
Ryan

สำหรับหนึ่งนี้ไม่ได้เป็นฟอรั่ม และสำหรับสองคนฉันคิดว่าสิ่งนี้เป็นไปตามหลักเกณฑ์สำหรับคำถามเชิงอัตวิสัย
DeadMG

1
การยอมรับภาษาการเขียนโปรแกรมนั้นเกี่ยวข้องกับปริมาณ hipsters ที่ตรงกันข้าม

คำตอบ:


18

ถ้าใครรู้จริง ๆ พวกเขาจะเป็นคนที่ร่ำรวยมาก ๆ

ที่กล่าวว่านี่คือการเดาของฉัน:

ความพร้อมใช้งาน

BASIC เป็นภาษาเล็ก ๆ น้อย ๆ ที่น่ากลัวที่มาพร้อมกับพีซี (ทั้งหมด?) เมื่อพวกเขาออกมาครั้งแรก Apple II (คอมพิวเตอร์เริ่มต้นสำหรับโรงเรียนมัธยมหลายแห่ง) และ ATARI 400/800 (คอมพิวเตอร์บ้านราคาถูกสุดเครื่องแรก) ทั้งคู่มาพร้อมกับเบสิก

หากคุณมีเครื่อง UNIX (ทั้ง AT&T system V หรือ Berkeley's) คุณมี C. หากคุณต้องการตั้งโปรแกรมเครื่องนั่นคือสิ่งที่คุณต้องใช้

แก้ไข : ด้วยแอดเวนต์และแพร่หลายของ 'สุทธิข้อกำหนดนี้เปลี่ยนเป็น:

  1. แพคเกจลีนุกซ์ลีนุกซ์รุ่นล่าสุดมีสำเนาจำนวนเท่าไรและมีการปรับปรุงให้ทันสมัยอยู่เสมอ? ห้องสมุดของบุคคลที่สามนั้นมีพร้อมสำหรับการติดตั้งหรือไม่
  2. ติดตั้งง่ายใน Windows (XP | Vista | 7,8 ... ) หรือไม่
  3. ครอบคลุมแพลตฟอร์ม Mac / iOS หรือไม่
  4. สามารถติดตั้งได้โดยไม่ต้องรำคาญกับ Unix รุ่นเก่าหรือไม่?
  5. และเมื่อติดตั้งแล้วการเข้าถึงห้องสมุดบุคคลที่สามทำได้ง่ายเพียงใดและสามารถอัปเกรดได้อย่างง่ายดายหรือไม่

ความง่ายดายในการเปลี่ยน

Java เป็นตัวอย่างที่ดีที่นี่ หากคุณรู้ว่าการเขียนโปรแกรม C Java ไม่ได้กระโดดไกลไปข้างหน้ามากนัก แต่มันก็มีคุณสมบัติมากมายที่ C ขาดและ C ++ ไม่สามารถให้บริการได้อย่างหมดจด

C ++ ด้วยเหตุผลที่ชัดเจนคือก้าวไปข้างหน้าอย่างง่ายจาก C และมันง่ายที่จะขายให้กับการจัดการในฐานะ "ปรับปรุง" C. C ++ มีประโยชน์เพิ่มเติมของการเข้ากันได้ย้อนหลังกับฐานรหัส C ดั้งเดิมที่มีอยู่เดิม

Perl เป็นการรวมกันของ C, awk, sed และยูทิลิตี้ Unix อื่น ๆ ทั้งหมดในหนึ่งชุด ก่อนที่จะปรากฎตัวการจัดการระบบส่วนใหญ่ทำโดยเชลล์สคริปต์ติดกาวทุกอย่างเข้าด้วยกันในลักษณะที่ไม่น่าพึงพอใจ การนำทุกอย่างมาอยู่ในขั้นตอนเดียวด้วยโครงสร้างข้อมูลและการควบคุมของภาษา C เหมือนเป็นสวรรค์

เติมเต็มความต้องการ

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

ฟอร์แทรนถูกปิดเพราะอนุญาตให้แปลความคิดทางคณิตศาสตร์เป็นรหัสได้ง่ายโดยไม่ต้องหลงทางในรายละเอียดของเครื่อง

เช่นเดียวกันกับ LISP และการจัดการเชิงสัญลักษณ์

Python โตขึ้นจากความต้องการใช้ Perl ที่ "ดีกว่า" (ฉันเอนเอียงที่นี่ดังนั้นฉันจะไม่พูดอะไรอีกเลย)

PHP นั้นเป็นพื้นฐานสำหรับเว็บ - มันถูกติดตั้งโดยค่าเริ่มต้นในเว็บเซิร์ฟเวอร์หลาย ๆ อันและมันง่ายที่จะแฮ็กสิ่งที่มีประโยชน์ได้อย่างรวดเร็ว

การสนับสนุนผู้ใช้ฐานรหัสที่สนับสนุน

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

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

ฟอร์แทรนมีรหัสคณิตศาสตร์ขนาดใหญ่ที่ยอมรับและตรวจสอบแล้ว เหมือนกันสำหรับ Java และเว็บ / systems-integration / MVC-systems; เหมือนกันสำหรับ Perl และ CPAN เหมือนกันสำหรับ T E X และการจัดการเอกสาร เป็นต้น

มันปัจจัย

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


อย่างไรก็ตามนี่คือการคาดเดาที่ดีที่สุดว่าทำไมบางคนถึงทำมัน ทำไมบางคนถึงไม่ดีถ้าพวกเขาไม่ผ่านเกณฑ์ด้านบนนั่นอาจเป็นเหตุผลว่าทำไมพวกเขาถึงล้มเหลว


1
ปัจจัยที่กำหนดในส่วนของเกณฑ์ของคุณเป็นองค์กร สนับสนุน Java อาจมีคะแนนสำหรับเช่นการเปลี่ยนแปลงได้อย่างง่ายดาย แต่หากไม่มีใครเต็มใจที่จะระเบิดเป็นล้าน ๆ ปีในปีเป็นส่วนหนึ่งของแผนการครอบงำโลกของพวกเขาก็ไม่ชัดเจนว่าความแตกต่างที่จะทำ ดังนั้นคุณกำลังขวาที่อุดมไปด้วยมากจะรู้คำตอบนี้ :-)
jaybee

4
@jaybee - ไม่แน่ใจว่าการสนับสนุนจากองค์กรโดยผู้สร้างภาษาจำเป็นต้องได้รับการช่วยเหลือ Fortran และ C ไม่ได้รับความช่วยเหลือเป็นพิเศษโดยมาจาก IBM / ATT ดูเหมือนว่าลิงค์ของ Oracle จะมีผลร้ายต่อ Java พื้นฐาน, Perl, Python, Ruby และอื่น ๆ ทั้งหมดไม่มี บริษัท เอกชนที่อยู่เบื้องหลังพวกเขา การสนับสนุนคอร์ปภายในที่ผู้ใช้ / ลูกค้าเป็นสิ่งสำคัญ แต่หลังจากนั้นนานจะกลายเป็นแพร่หลาย
Martin Beckett

1
@ Martin Beckett: คุณอาจมีประเด็น ฉันคิดว่าถึงแม้ว่าดาวเคราะห์ทุกประเภทอาจจำเป็นต้องปรับให้เข้ากับภาษาเพื่อให้ได้มวลวิกฤต แต่วิธีการ "ทันสมัย" ในการควบคุมดาวเคราะห์เหล่านี้ให้อยู่ในแนวเดียวกันดูเหมือนว่าเป็นการเผาผลาญเงินสด ตัวอย่างเช่น Mark ใช้ Haskell เป็นตัวอย่าง - มันอาจมีฐานผู้ใช้เสียงที่ยอดเยี่ยม แต่ GHC ชนะการโต้แย้งมากมายสำหรับพวกเขา ผู้เรียบเรียงเช่น GHC
jaybee

@ Jaybee - มีโชคมากมาย แต่สำหรับภาษาเว็บใหม่ ๆ ที่ยอดเยี่ยมมันอาจเป็นทักษะการตลาดของผู้สร้าง / ผู้ยอมรับในยุคแรก ๆ
Martin Beckett

11

ภาษาได้รับความนิยมเนื่องจากมีความได้เปรียบเหนือภาษาที่มีอยู่ในพื้นที่ที่ต้องการ

ชวา

  • การจัดการหน่วยความจำอัตโนมัติ (เปรียบเทียบกับ C ++ และ C)
  • ภาษา / API ที่สร้างขึ้นในเธรด
  • ทำงานบนเครื่องเสมือน (หมายถึงนักพัฒนาสามารถใช้ Windows บนเครื่องพัฒนาสำหรับการทดสอบและปรับใช้แอปพลิเคชันโดยไม่ต้องแก้ไขบน Linux / Unix)
  • การเขียนโปรแกรมเครือข่ายนั้นง่ายกว่าในภาษาที่เป็นที่นิยมมากที่สุดก่อนหน้านี้ (C ++ และ C) และ Java เปิดตัวเมื่ออินเทอร์เน็ตเริ่มเป็นที่นิยม

PHP

  • ทำให้การพัฒนาเว็บไซต์เป็นเรื่องง่าย
  • สนับสนุนการเชื่อมต่อกับฐานข้อมูล MySQL ในตัว
  • ไม่จำเป็นต้องรวบรวมและมันง่ายที่จะรวมสคริปต์ลงในไฟล์ HTML ของคุณ

JavaScript

  • เพียงภาษาสำหรับเว็บเบราว์เซอร์
  • เว็บเบราว์เซอร์ถูกใช้มากขึ้นเรื่อย ๆ ในฐานะ thin client (เว็บแอปพลิเคชัน)
  • รหัสมือถือ - ติดตั้งง่ายและไม่มีการติดตั้ง

Objective-C

  • ภาษาสำหรับสภาพแวดล้อม Mac OS X และ iPhone และ iPhone ก็ประสบความสำเร็จอย่างมาก

ทับทิม

  • ร่วมกับ Ruby on Rails - เว็บเฟรมเวิร์กทำให้การพัฒนาเว็บขนาดใหญ่ง่ายขึ้นด้วย MVC

ค#

  • ภาษาสำหรับสภาพแวดล้อม Windows ในช่วงสิบปีที่ผ่านมา Microsoft API เกือบทั้งหมดใช้งานง่ายกับ C # เช่น Winforms และ WPF และ WCF

ActionScript

  • เพียงภาษา Addobe Flash / Flex ซึ่งได้มีความสำเร็จอย่างมากสำหรับเนื้อหาของสื่อบนอินเทอร์เน็ตและสิ่งที่จับ JavaScript ไม่สามารถ

Erlang

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

1
รูปแบบการทำงานพร้อมกันของ Erlang ไม่เหมือนกันมันแตกต่างจากที่ใช้โดยภาษาที่จำเป็นอย่างน่าเกลียด :) สกาล่ามีประเภทเดียวกัน ในทำนองเดียวกัน Clojure และ Haskell เชี่ยวชาญใน STM
ทางเลือก

4
@mathepic: จริง แต่ภาษาทั้งหมดนั้นใหม่กว่า Erlang ดังนั้นมันจึงเป็นเอกลักษณ์สำหรับ Erlang ในตอนแรก - เช่นเดียวกับคุณสมบัติลากูนเกือบทั้งหมดที่ฉันได้ระบุไว้ ความคิดที่ดีคุ้มค่ากับการขโมย
Jonas

1
C # เป็นภาษา. net ฉันคิดว่า windows เขียนจริงใน c ++ ฉันผิดในเรื่องนี้ ฉันจะบอกว่า C # กลายเป็นที่นิยมโดยใช้ภาษาที่คนรู้จัก (C) ด้วยกรอบใหม่ที่ทำให้การพัฒนาแอพพลิเคชั่นที่มีประสิทธิภาพง่ายขึ้นด้วยเครื่องมือแก้ไขที่ทรงพลังใช้งานง่ายและคำนึงถึงความต้องการของนักพัฒนาและการใช้งานจริง
SoylentGray

1
@Chad C # ไม่เกี่ยวข้องกับ C
ทางเลือก

1
@ คณิตศาสตร์ - ฉันทำงานเกี่ยวกับการเขียนโปรแกรม C, C ++ และ C # ฉันสามารถพูดได้ว่า C # ยังคงรักษารากของมันเท่าที่ผู้เรียกเก็บเงิน ได้รับมันเกินกว่า C ซึ่งไม่ได้หมายความว่ามันไม่ได้ใช้ประโยชน์จากภาษา
SoylentGray

5

ฉันจะเป็นคนเจ้าเล่ห์: เงินและมาด้วยเรื่องนี้การตลาด

ไม่ใช่เรื่องบังเอิญที่ C # รองรับโดย Microsoft, Java โดย Oracle และ Objective C โดย Apple เฉพาะ Go's ของ Google เท่านั้นที่ยังไม่ได้ยก

แน่นอนว่าเงินไม่ใช่เหตุผลเดียว แต่มีกระเป๋าลึกแน่ใจว่าจะช่วยให้ภาษาของคุณในตลาด


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

1
C # และ Obj-C ไม่ได้รับการสนับสนุนมากนักในฐานะ "บังคับ" โดย เป็นการยากที่จะเขียนโปรแกรมแอพ windows ใน c ++ ด้วย apis ที่จัดหา MSFT เท่านั้นและ AFAIK เท่านั้น obj-C เท่านั้นที่ได้รับอนุญาตบนแอปเปิ้ลแพลตฟอร์มมือถืออย่างน้อยที่สุด ในทางกลับกันการฟ้องร้องผู้ผลิต Android ของออราเคิลอาจส่งผลร้ายต่อ Java
Martin Beckett

1
@Martin - คุณถูกต้องส่วนใหญ่ WRT Obj-C ในทางเทคนิคคุณสามารถใช้สิ่งต่าง ๆ เช่น Appcelerator Ttanium เพื่อใช้ภาษาอื่น ๆ ในการเขียนแอพ แต่มันก็ยังถูกแปลงเป็น Obj-C สำหรับการปรับใช้ (และมันเป็นการต่อสู้เพื่อให้ได้มาซึ่งสิ่งนั้น) แอปเปิ้ลจะสั่งห้ามสิ่งอื่น (แม้แต่ PhoneGap ก็มีสายที่ดี)
Shauna

3

ในอีกด้านหนึ่งก็คือการตลาดการนำเสนอที่แม่นยำยิ่งขึ้นบล็อก ฯลฯ สิ่งสำคัญคือต้องมีคุณสมบัติที่โปรแกรมเมอร์หลักสามารถเชื่อมโยงและเห็นประโยชน์มากกว่าสิ่งที่พวกเขารู้ (Java vs. C ++ - ตัวรวบรวมขยะเทียบกับการจัดการหน่วยความจำ) สิ่งสุดท้ายคือต้องมีสิ่งกีดขวางทางเข้าน้อย - ตัวอย่างเอกสารที่ดีติดตั้งอย่างราบรื่นชุมชนที่ดีและการสนับสนุนการพัฒนาที่มีชีวิตชีวา


1

เกือบทุกภาษามีโปรแกรมแก้ปัญหาที่ไม่เป็นเรื่องจริงในโลกที่เขียนขึ้นโดยใช้พวกเขาตั้งแต่อายุยังน้อย

Unix ถูกเขียนใน C ดังนั้นเครื่องมือใน Unix ก็คือตอนที่ C ยังเด็กมากและมีการพัฒนา

Anaconda (โปรแกรมติดตั้งของ RedHat) เขียนด้วย Python เมื่อ Python ยังเด็กและไม่ได้รับความนิยมในปัจจุบัน

นี่คือสิ่งที่ฉันสามารถเรียกคืนจากมือได้ รายการนี้สามารถสัมผัสแต่ละภาษาที่มีชีวิตรอดปีก่อสร้าง

จากนั้นการยอมรับในมหาวิทยาลัยขนาดใหญ่สามารถช่วยให้อายุการใช้งานของภาษายาวนานขึ้น Java เป็นที่นิยมอย่างมากในมหาวิทยาลัยในฐานะภาษาสอน ในบางระดับเสียงกระเพื่อมและภาษาถิ่นของเสียงกระเพื่อมเพลิดเพลินกับสถานะนี้เช่นกัน

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