ปัญหาของตัวอักษร XML ของ Scala คืออะไร


9

ในโพสต์นี้ Martin (หัวหน้า honcho ภาษา) เขียน:

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

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


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

คำตอบ:


11

ฉันเชื่อว่ามาร์ตินอธิบายเหตุผลในการโพสต์ของเขาเป็นอย่างดี:

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

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

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


IMHO ในโลกอุดมคติภาษาควรมีฟีเจอร์หลักที่อนุญาตให้ชุมชนนักพัฒนาขยายเท่านั้น ส่วนขยายไม่ควรเป็นส่วนหนึ่งของภาษาหลัก แต่ควรให้เป็นไลบรารี ดังนั้นในที่สุดการแก้ไขภาษาอาจระบุไลบรารีมาตรฐานใหม่ แต่ไม่มีคุณสมบัติภาษาใหม่ แน่นอนการนิยามภาษาแกนกลางที่มีพลังมากพอไม่ใช่งานที่ไม่สำคัญ แต่ฉันคิดว่าบางภาษา (เช่น Lisp) เข้ามาใกล้มากทีเดียว
จอร์โจ

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