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


70

ใช้สถานการณ์นี้:

  • โปรแกรมเมอร์สร้างภาษาเพื่อแก้ปัญหา

  • จากนั้นเขาเผยแพร่ภาษานี้เพื่อช่วยผู้อื่นในการแก้ปัญหาเช่นนี้

  • โปรแกรมเมอร์คนอื่นค้นพบว่ามันดีกว่าจริง ๆ สำหรับปัญหาประเภทต่างๆ

  • โดยอาศัยแอปพลิเคชันใหม่นี้ภาษาจึงเป็นที่นิยมสำหรับแอปพลิเคชันนั้นเป็นหลัก

มีกรณีนี้เกิดขึ้นจริงหรือไม่?

กล่าวอีกนัยหนึ่งจุดประสงค์ของภาษานั้นมีผลต่อการใช้งานจริง ๆ หรือว่ามันได้รับความนิยมหรือไม่? เป็นสิ่งสำคัญที่ภาษามีจุดประสงค์ในการโฆษณาหรือไม่?


4
ตัวอย่าง HTML ของคุณดูเหมือนจะไม่ตรงกับสิ่งที่คุณค้นหาเอกสารทางเทคนิคแตกต่างจากเอกสารอื่น ๆ หรือไม่? จุดประสงค์หลักของ HTML ยังคงเหมือนเดิมในปี 1989 เพื่อให้วิธีการที่ง่ายสำหรับเอกสารในการอ้างอิงซึ่งกันและกัน IMHO HTML ตรงข้ามกับที่คุณต้องการจริงๆ
yannis

5
พิจารณารายการคำตอบที่ยาว อาจจะเป็นคำถามที่ตรงข้ามเป็นที่น่าสนใจเพิ่มเติมได้ที่: สิ่งที่ (นิยม) ภาษาเพียงแค่ใช้มันตั้งใจวัตถุประสงค์?
Jaap

@ Yanis: จุดดี มันไม่ใช่ตัวอย่างที่ดีที่สุดและสามารถโต้แย้งได้ทั้งสองทาง แก้ไขเพื่อลบ
Jon Purdy

@ Jaa: ฉันคิดเหมือนกัน!
leonbloy

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

คำตอบ:


118

เสียงกระเพื่อม ในขั้นต้นแม็คคาร์ธีระบุเสียงกระเพื่อมในกระดาษเพื่อแสดงว่าสัญลักษณ์ง่าย ๆ สองสามตัวนั้นเพียงพอที่จะสร้างภาษาที่สมบูรณ์แบบ เขารู้สึกประหลาดใจที่พบว่า Lisp สามารถนำไปใช้กับรหัสเครื่องได้ (Steve Russel ทำการแปล Lisp เป็นครั้งแรก) เสียงกระเพื่อมใช้กันอย่างแพร่หลายสำหรับการเขียนโปรแกรม AI


70
+1 Lisp ไม่ได้ตั้งใจจะเป็นภาษาโปรแกรม! ฉันไม่คิดว่าคุณจะทำได้
Kilian Foth

7
OTOH เราอาจโต้แย้งว่า LISP ได้รับการออกแบบมาเพื่อใช้งานที่ขอบระหว่างการเขียนโปรแกรมและคณิตศาสตร์และยังคงอยู่ที่นั่น
MSalters

1
ฉันเชื่อว่า McCarthy ใช้ Lisp เป็นตัวอย่างในชั้นเรียนของเขาและตั้งใจจะเขียนคอมไพเลอร์ แต่ได้กล่าวถึงในชั้นเรียนหนึ่งวันว่าการเขียนโค้ดด้วยมือฟังก์ชั่น eval จะใช้ล่าม แต่แน่นอนว่าไม่มีใครต้องการทำเช่นนั้น
Steven A. Lowe

เพื่อน Lisper ของฉันบอกฉันว่ามันไม่ได้ใช้ใน AI มาก ๆ มากขึ้น แต่ก็ยังคงมีการประยุกต์ใช้ทุกที่
greyfade

111

เดิมที Java นั้นมีไว้สำหรับการเขียนโปรแกรมระบบฝังตัว จากวิกิพีเดีย"Java ได้รับการออกแบบมาสำหรับโทรทัศน์แบบโต้ตอบ" แต่มันก็ได้รับความนิยมอย่างสูงในด้าน Application และ Web programming


4
ฮะ. ไม่อยากเชื่อเลยว่าฉันจะไม่คิดถึงสิ่งนี้ มันเป็นตัวอย่างที่เป็นที่ยอมรับในเนื้อหา ... แม้ว่าจะไม่ได้บอกว่าฉันจะไม่แปลกใจเลย
Jon Purdy

แม้ว่าจาวาเคยเปิดตัวสำหรับงานฝังตัวจริง ๆ (ก่อนฝังจาวาซึ่งมาหลังการโปรโมตสำหรับเว็บ)
Marcin

องค์ประกอบการออกแบบที่สำคัญในการออกแบบ Java คือความสามารถในการเรียกใช้รหัสที่ไม่น่าเชื่อถือ

13
เรื่องราวเลวร้ายยิ่งกว่า: ก) มันมีไว้สำหรับระบบฝังตัว B) แต่ไม่เคยเห็นแสงจนกว่าจะสามารถฝังในหน้าเว็บได้ C) มันไม่ได้รับความเคารพใด ๆ จนกว่าจะใช้สำหรับเว็บแอปพลิเคชัน 'enterprisey' และ D) ในที่สุดมันก็ถูกฝังในระบบปฏิบัติการโทรศัพท์หลายระบบ; แต่ไม่ใช่เป็นตัวควบคุมฮาร์ดแวร์เป็นแพลตฟอร์ม GUI แทน
Javier

มีโครงการสำหรับวางกล่องเซ็ตท็อปมากกว่า 10 ปีแล้ว - ค้นหา OCAP หรือ tru-2way
Bill K

32

Lua ได้รับการออกแบบมาเป็นภาษาการตั้งค่าเป็นหลักและท้ายที่สุดก็พบช่องที่เป็นภาษาสคริปต์ที่ได้รับความนิยมมากที่สุดสำหรับเกม เกมที่ได้รับความนิยมมากที่สุดในการใช้งาน World of Warcraft ไม่ได้ใช้กับการกำหนดค่าจริงๆโดยใช้ XML แทน


... และตอนนี้ด้วย LuaJIT ก็พบการใช้งานมากขึ้นในแอปพลิเคชันการประมวลผลแบบเรียลไทม์
Javier


@lukas: "ไม่จริง" อะไรนะ ? โปรดทราบว่ามันเป็นรุ่นก่อน, SOL และ DEL, ไม่ได้มีโฟลว์การควบคุม แต่เป็นภาษาการตั้งค่าอย่างแท้จริง Lua เป็นส่วนขยายของภาษาการตั้งค่าเหล่านั้นเพื่อรวมการสนับสนุนการเขียนโปรแกรม
โคลน

"Lua ถูกออกแบบมาเป็นภาษาการตั้งค่าเป็นหลัก" ฉันจะบอกว่าเป็นภาษาการเขียนโปรแกรม
Lukasz Madon

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

32

ความตั้งใจดั้งเดิมของ Larry Wall สำหรับPerlคือ " ภาษาสคริปต์ Unix วัตถุประสงค์ทั่วไปเพื่อให้การประมวลผลรายงานง่ายขึ้น " และหน้า manอธิบายภาษาเป็น:

Perl เป็นภาษาที่ตีความเหมาะสำหรับการสแกนไฟล์ข้อความโดยพลการแยกข้อมูลจากไฟล์ข้อความเหล่านั้นและรายงานการพิมพ์ตามข้อมูลนั้น

และแน่นอนหน้า man ยังบอกเราว่า Perl ย่อมาจากPractical Extraction และ Language Report (ชื่อจริงคือการสะกดผิดของชื่อเดิมPearlเปลี่ยนไปเมื่อ Wall ค้นพบภาษาไข่มุกที่มีอยู่แล้ว)

Perl ไปเป็นทางยาวตั้งแต่นั้นมามันเป็นภาษาจากการที่พระเจ้าทรงกระทำจักรวาล

ป้อนคำอธิบายรูปภาพที่นี่


23
หนึ่งควรแก้ไขที่: Lister ขยะทางพยาธิวิทยาผสมผสาน
ริชาร์ด

3
มีมากกว่าหนึ่งวิธีในการย่ออักษร! อย่าง Perly

ตัวย่อสำหรับ Perl ใด ๆ ที่จริงแล้วเป็นตัวย่อ
CanSpice

1
@DarkTemplar วิธีที่ฉันตีความคือ Perl ได้พุ่งมันเป็นวิธีเกือบทุกที่ จากจุดเริ่มต้นที่ต่ำต้อยของ Perl กลายเป็นภาษาเว็บที่ได้รับความนิยมอย่างมากภาษาสคริปต์ที่นิยมอย่างมากภาษาเอนกประสงค์ที่ได้รับความนิยมค่อนข้างไวยากรณ์การแสดงออกปกติกลายเป็นสิ่งที่ชัดเจนให้กำเนิดภาษาอื่น (php) ฯลฯ อ้างอิงเสียงกระเพื่อมซึ่งเป็นคำตอบที่ได้รับการยอมรับคำถามดังนั้นฉันคิดว่ามันเป็นความสนุกสนาน (แม้ว่าจะไม่ถูกต้อง) การพรรณนาถึงความสัมพันธ์ของทั้งสองภาษา (หนึ่งคือฝันที่หนึ่งอีกคนหนึ่งใช้จริง)
yannis

1
@DarkTemplar Yeap มันอยู่ในสิบอันดับแรกในดัชนี TIOBE แน่นอนว่าคุณไม่ควรทำดัชนี TIOBE อย่างจริงจังมันค่อนข้างสัมพันธ์และเป็นอัตนัย แต่ก็ยังเป็นตัวบ่งชี้ที่ดีของความนิยมทางภาษา
yannis

28

ฉันเดาว่าJavaScriptเหมาะกับคำถามนี้เช่นกันเพราะฉันไม่คิดว่า Brendan Eich ย้อนกลับไปในยุคของ Netscape เคยจินตนาการว่าLiveScriptของเขาในอนาคตจะถูกใช้เพื่อสร้างแอปพลิเคชันที่เรียกว่าเว็บ "ในปัจจุบัน"

JavaScript ได้ย้ายจากการตรวจสอบรูปแบบที่เรียบง่ายและรูปภาพไปยังเครื่องมือที่มีประสิทธิภาพที่สามารถเทียบเคียงกับแอปพลิเคชันออฟไลน์ได้ทั้งในแง่ของการใช้งานและความสวยงาม

น่าเสียดายที่ฉันคิดว่าหลายคนยังมองว่ามันเป็นของเล่น


31
สิ่งที่น่าสนใจคือมันกำลังก้าวไปสู่การเป็นภาษาแอสเซมบลีของเว็บ ในคำอื่น ๆ สิ่งที่ภาษาอื่น ๆ ได้ถูกรวบรวมลงไปและดำเนินการใน. ผมไม่เชื่อว่าเบรนแดนไอซ์คาดว่า

3
มีบางอย่างที่จะเพิ่ม: มันไม่ได้เป็นเพียงภาษาสคริปต์ฝั่งไคลเอ็นต์ หลายโครงการเช่น node.js หรือแรดใช้จาวาสคริปต์เป็นภาษาฝั่งเซิร์ฟเวอร์
gion_13

แค่อยากรู้อยากเห็น แต่อะไรคือ "ภาษาสคริปต์ฝั่งไคลเอ็นต์" กับ "ภาษาฝั่งเซิร์ฟเวอร์" ....... ?
Dark Templar

@DarkTemplar ภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ทำงานบนเซิร์ฟเวอร์และส่งออกไปยังเบราว์เซอร์ ภาษาสคริปต์ฝั่งไคลเอ็นต์จะถูกส่งไปยังเบราว์เซอร์ตามที่เป็นอยู่และเรียกใช้ที่นั่น (แน่นอนว่าภาษาฝั่งเซิร์ฟเวอร์สามารถใช้เพื่อส่งออกภาษาฝั่งไคลเอ็นต์ได้หากคุณต้องการ) ภาษาเดียวที่ทำงานในเบราว์เซอร์ส่วนใหญ่คือจาวาสคริปต์
TRiG

19

Erlang มันถูกประดิษฐ์ขึ้นเมื่อนานมาแล้วในแล็บอีริคสันเพื่อพัฒนาแอปพลิเคชั่นโทรศัพท์ซึ่งอาจเป็นเพราะสายของอุปกรณ์สวิตช์และเข้าถึง ตอนนี้ได้พัฒนาเป็นภาษาไดนามิกวัตถุประสงค์ทั่วไปที่มีแนวโน้มด้วยแนวคิดที่น่าสนใจของการเกิดพร้อมกัน

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


และนี่ไม่ใช่แรงบันดาลใจสำหรับ node.js ใช่ไหม
dodgy_coder

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

15

ปาสคาล สร้างขึ้นเพื่อสอนการเขียนโปรแกรม


3
เฮ้อธิบายได้เยอะ…
กระตุ้น

2
@poke: จากคำสาปฉันรู้
Nerevar

เฮ้ฉันเห็นสิ่งที่คุณทำที่นั่น
Trufa

เฮ้ใครช่วยอธิบายคำตอบนี้หน่อยได้ไหม ฮ่า ๆ. ฉันเป็น noob!
Dark Templar


14

เดิมทีPHP นั้นหมายถึงโฮมเพจส่วนตัวแต่ในปัจจุบันใช้สำหรับเว็บแอปพลิเคชันที่ใหญ่กว่าเดิมเล็กน้อยเช่นกัน


18
แน่นอนว่าผู้ใช้ PHP รายใหญ่ที่สุด Facebook นั้นยังคงมีอยู่ในตลาดโฮมเพจส่วนบุคคล
Jaap

3
"PHP / FI ถูกสร้างขึ้นโดย Rasmus Lerdorf ในปี 2538 โดยเริ่มแรกเป็นสคริปต์ Perl ชุดง่าย ๆ สำหรับการติดตามการเข้าถึงประวัติการทำงานออนไลน์ของเขา" มันมาไกลแล้วนะที่รัก
nickf

ในขณะที่ PHP ยังคงเป็นภาษาเว็บเป็นอย่างมาก แต่ก็มีการพลิกกลับบทบาท: PHP มีความหมายว่าจะฝังตัวเป็นตัวอย่างเล็ก ๆ ใน HTML ในขณะที่โครงการจำนวนมากสร้างสตริง HTML ภายใน PHP พวกเขายังคงต้องใช้<?phpแท็กตอนเริ่มต้นของไฟล์
Warbo

14

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


1
นั่นเป็นเรื่องที่ไม่รุนแรงนักหรอก Java และ C มีมัลแวร์ร่วมกันอยู่พอสมควร
Jeremy

@JChild: หลายปีผ่านไปนับตั้งแต่ความคิดเห็นของคุณ อย่างไรก็ตามถึงกระนั้นการปกป้อง VB ก็เป็นสิ่งที่แปลกมากที่จะทำ
Magus

@Magus มันไม่ใช่ VB เลย มันเป็น VBScript คุณจะรู้ว่าไฟล์ที่มีนามสกุล. vbs คนที่คุณคิดว่าเป็นไวรัสโดยอัตโนมัติเมื่อคุณเห็นพวกเขา
user16764

13

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


8
... และจะนำ c ++ เขียนโปรแกรมเพื่อน้ำตาที่มีมากเกินไปยาวสร้างครั้ง ;-)
quant_dev

8
และข้อความผิดพลาดที่น่ากลัว
DeadMG

11

พื้นฐานเป็นอีกกรณีที่มีชื่อเสียง ชื่อของมันคือรหัส ( Symbolic Instruction Code การเริ่มต้นของผู้เริ่มต้น ) บอกใบ้เกี่ยวกับที่มาของมันว่าเป็นภาษาของผู้เรียน


24
heh - microsoft แทนที่ "ผู้เริ่มต้น" กับ "ธุรกิจ" และถูกดูดเป็นล้าน ๆ คน
Steven A. Lowe

11

VHDLและVerilog (aka VerilogHDL) เดิมมีวัตถุประสงค์เพื่ออธิบายวงจรดิจิตอลและส่วนประกอบ พวกเขาถูกใช้เป็นรูปแบบของเอกสารประกอบและเพื่อจำลองพฤติกรรมของส่วนประกอบ ต่อมา Synopsys และผู้อื่นพัฒนาเทคโนโลยีที่สามารถแปล (ส่วนย่อยของ) คำอธิบายเหล่านี้เป็นรายการสุทธิของประตูซึ่งสามารถนำมาใช้ในการผลิตฮาร์ดแวร์จริง

VHDL และ Verilog เรียกว่า Hardware Description Languages ​​(HDLs) ด้วยเหตุผลทางประวัติศาสตร์ วันนี้พวกเขาใช้จริงเป็นภาษาออกแบบฮาร์ดแวร์(ตัวย่อเดียวกัน)


การพัฒนารูปแบบการขับเคลื่อนที่ดีในชีวิตจริง
Jaap

@ เครื่องหมายใช่ VHDL เป็นวงจรรวมความเร็วสูงภาษาคำอธิบายฮาร์ดแวร์ Verilog เป็นภาษาที่แตกต่างอย่างสิ้นเชิง Verilog บางครั้งเรียกว่า Verilog HDL en.wikipedia.org/wiki/Verilog
Philippe

2
QHDL คล้ายกับ VHDL และใช้สำหรับอธิบายวงจรสำหรับคอมพิวเตอร์ควอนตัม ฉันนึกภาพออกไม่ได้ว่าภาษากำลังแยกจากจุดกำเนิด
Mark Booth

@ Mark Wow นั่นน่าสนใจ "QHDL"! Google แสดงเสียงดังมาก คุณมีข้อมูลอ้างอิงหรือไม่?
ฟิลิปป์

1
ฉันค้นพบเกี่ยวกับเรื่องนี้ที่เซสชั่น "Quantum Computing for Programmers" ของ Paul Blacks ในการประชุม ACCU 2011 สไลด์ของเขาอยู่ที่accu.org/content/conf2011/…
Mark Booth

10

ML เริ่มต้นเป็นภาษาสำหรับการพัฒนาและการเขียนบทนักทฤษฎีบท มันเป็น "เมตาดาต้า" ของผู้ทดสอบทฤษฎีบท


Alright เป็นที่น่าสังเกตว่าเหตุผลนี้เป็นคำตอบที่ถูกต้องคือตอนนี้แอปพลิเคชันหลักคือคอมไพเลอร์และเครื่องมือภาษาอื่น ๆ (อย่างน้อยเท่าที่ฉันรู้)
Jon Purdy

6
+1 แต่การบอกว่า ML กลายเป็น "ที่นิยมอย่างมาก" นั้นค่อนข้างยืด
นิดหน่อย

บางที แต่นอกเหนือจากผู้ใช้โดยตรงในปัจจุบันก็มีอิทธิพลกับภาษาที่พิมพ์ทุกครั้งที่เกิดขึ้นหลังจากนั้น
Ryan Culpepper

7

C
แต่เดิมพัฒนาขึ้นมาเพื่อใช้กับระบบปฏิบัติการ Unix แต่ภาษาก็เป็นที่นิยมมากแม้แต่เดนนิสริตชี่ก็แปลกใจ
ในหนังสือชื่อซีภาษาซี ริตชี่กล่าวว่า "มันแพร่กระจายไปไกลกว่าจุดกำเนิดในฐานะภาษาของระบบปฏิบัติการ UNIX และเขาแปลกใจเพียงใดเมื่อมันกลายเป็นภาษายอดนิยมสำหรับการพัฒนาแอปพลิเคชัน


11
ตอนแรกมันถูกออกแบบมาเพื่อพัฒนาระบบและแอพพลิเคชั่นระดับต่ำในรูปแบบข้ามแพลตฟอร์ม มันยังคงสอดคล้องกับเป้าหมายดั้งเดิมแม้จะได้รับความนิยมดังนั้นมันจึงไม่เหมาะสม
Jon Purdy

3
@ จอนมันเหมาะกับมันมากเมื่อเทียบกับวัตถุประสงค์โดยการเป็นวิธีที่ง่ายที่สุดในการยิงตัวคุณเอง
yannis

1
@Yannis: ฮ่าฮ่าจริง แต่ฉันกำลังถามเกี่ยวกับภาษาที่จุดประสงค์หลักเปลี่ยนไปอย่างสิ้นเชิงไม่ใช่ภาษาที่ขยายใหญ่ขึ้นเพื่อวัตถุประสงค์เพิ่มเติม
Jon Purdy

ฉันจะเพิ่มที่ C กลายเป็นที่นิยมเป็นหนึ่งในภาษาสำคัญสำหรับการแข่งขันรหัส obfuscated
Peter G.

ไม่ได้ออกแบบมาเพื่อใช้กับระบบปฏิบัติการใช่หรือไม่
Nikko

3

C ++ได้รับการออกแบบมาเป็น“ C พร้อมคลาส” เพื่ออำนวยความสะดวกการเขียนโปรแกรมเชิงวัตถุใน C ++

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

ดังนั้นแอปพลิเคชันจำนวนมากจึงใช้ภาษา C ++ ไม่ใช่ภาษาโปรแกรมเชิงวัตถุ แต่เป็นภาษาโปรแกรมที่ใช้อัลกอริธึมซึ่งอาศัยการรวบรวมพหุสัณฐานเวลาและ Metaprogramming


7
แต่ C ++ ถูกออกแบบมาเพื่อวัตถุประสงค์ทั่วไปและใช้เป็นภาษาวัตถุประสงค์ทั่วไป
BenjaminB

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

ที่จริงแล้วกระบวนทัศน์แบบหลายกระบวนทัศน์นั้นมีอยู่ในการออกแบบโดยอาศัยคุณสมบัติของ OO เข้ากับ C ในขณะที่ยังคงความสามารถในการใช้คุณสมบัติขั้นตอนเพิ่มเติมตามความเหมาะสม
Jon Purdy

@ จอนตกลงฉันจะยอมรับว่า อย่างไรก็ตามการเขียนโปรแกรมและแม่แบบทั่วไป metaprogramming ไม่ได้อยู่ในคุณสมบัติเหล่านี้ และทุกวันนี้ C ++ เป็นหนึ่งในภาษา (และเป็นภาษาหลัก) เท่านั้นที่สนับสนุนคุณสมบัติเหล่านี้
Konrad Rudolph

จริงแท้แน่นอน. นรกการสนับสนุนสำหรับการเขียนโปรแกรมทั่วไปและconstมีสองเหตุผลที่สำคัญที่สุดที่ผมใช้ C ++
Jon Purdy

2

ADA - แต่เดิมออกแบบภายใต้สัญญากระทรวงเพื่อ avionics แม้ว่าจะยังคงใช้ในแอปพลิเคชันนั้น แต่ก็ยังได้รับความนิยมเช่นธุรกิจกลางเรียลไทม์


5
มันถูกสร้างเป็นภาษาวัตถุประสงค์ทั่วไป กระทรวงต้องการให้ใช้ภาษาได้ทุกอย่างเพื่อลดจำนวนภาษาที่ใช้
BenjaminB

มันค่อนข้างเฮฮา Ada เป็นภาษาที่สร้างขึ้นอย่างชัดเจนโดยมีเป้าหมายเพื่อลดจำนวนภาษาที่แตกต่างกันออกไป โดยเมตริกนั้น ("ออกแบบโดยมีจุดประสงค์เดียวใช้เพื่อวัตถุประสงค์อื่น") Ada ควรได้รับการโหวตให้อยู่ด้านบนสุดของรายการด้วย Lisp ซึ่งเป็นภาษาต่อต้านภาษาอื่น
Jared Updike

2

"จุดประสงค์ของภาษานั้นมีผลต่อการใช้งานจริง ๆ หรือว่ามันได้รับความนิยมหรือไม่"

ฉันไม่คิดว่าจุดประสงค์ของภาษานั้นมีผลต่อการใช้งานจริงและความนิยม: มีบางภาษาที่ยอดเยี่ยมที่ได้รับการออกแบบมาตั้งแต่เริ่มต้นให้เป็นนวัตกรรมมีความยืดหยุ่นและเก่งกาจ แต่ไม่เคยใช้กันอย่างแพร่หลายหรือเป็นที่นิยมยกเว้นใน ตลาดแนวดิ่งที่มีความเชี่ยวชาญเป็นพิเศษ - ตัวอย่างเช่นไอเฟล OTOH, Basic, Pascal, C และอื่น ๆ มีอิทธิพลต่อภูมิประเทศมาหลายปีแม้ว่าพวกมันจะถูกออกแบบมาเพื่อวัตถุประสงค์ที่ จำกัด และเฉพาะเจาะจง

ข้อพิจารณาด้านการตลาด / การเงินและการสนับสนุนของ IMO นั้นมีบทบาทสำคัญเสมอในการแพร่กระจายและการขยายของภาษาบางภาษา ตัวอย่างเช่น: Borland มาพร้อมกับ TurboPascal และแพ็คเกจตลาดและสนับสนุน MS มาพร้อมกับ C # และแพ็คเกจทำตลาดและสนับสนุน เป็นผลให้ภาษาเหล่านี้กลายเป็นที่นิยมอุตสาหกรรมเครื่องมือของบุคคลที่สามที่ได้เด้งแล้วขึ้นและนักพัฒนาและองค์กรต่าง ๆ ก็เพิ่มจำนวนขึ้นเรื่อย ๆ

แต่ในช่วงไม่กี่ปีที่ผ่านมาภาษาและเครื่องมือของ openSource กำลังเปลี่ยนรูปแบบและตอนนี้ภาษาก็กลายเป็นที่นิยมโดยใช้ 'บุญ' มากกว่าการตลาดเช่น Ruby, Python และ Perl แต่นั่นไม่ใช่เพราะ 'เจตนา' ของนักประดิษฐ์มากพอ ๆ กับภาษาที่สร้างขึ้นเพื่อเพิ่มศักยภาพและการใช้งานที่สะดวก


2

ฉันไม่คิดว่ามีภาษายอดนิยมที่ไม่ได้รับการชดเชยจากความตั้งใจดั้งเดิม แม้กระทั่ง C ก็ถูกเขียนขึ้นเพื่อสร้างระบบปฏิบัติการพกพา (unix)

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


postscript - เป็นที่แพร่หลาย (เกือบทุกคอมพิวเตอร์และเครื่องพิมพ์) แต่ใช้สำหรับการพิมพ์กราฟิกเท่านั้น แม้ว่าหนึ่งสามารถยืนยันว่ามันถูก repurposed เมื่อใช้ภายในของ pdf
13

1

ฉันได้ยินมาว่าRubyถูกออกแบบมาเป็นภาษาที่ใช้เขียนบทกวี แต่กลับกลายเป็นว่าคุณสามารถเขียนโค้ดที่สวยงามได้เช่นกัน!

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


2
ฟังดูน่าสนใจ. แหล่งใด?
Anto

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