Python จะช้าเกินไปสำหรับการใช้งานฝั่งไคลเอ็นต์ในเบราว์เซอร์หรือไม่?


17

ฉันได้ยินคำแถลงว่า Python จะช้าเกินกว่าจะใช้งานได้ในเบราว์เซอร์

ฉันคิดว่า Javascript เหนือกว่าในแง่นี้เพราะ บริษัท อย่าง Google ที่ต้องการมันเร็ว (และทำให้เร็ว) เพราะพวกเขาต้องการมันเพื่อความอยู่รอด แต่ฉันอาจผิด

มีความแตกต่างในการออกแบบของ Python และ Javascript หรือไม่ที่มีผลกระทบต่อประสิทธิภาพของเบราว์เซอร์

ตั้งแต่ตอนนี้ยังไม่มีการใช้งาน Python ในฝั่งไคลเอนต์คำถามของฉันมาจากคำแถลงที่คนทำดังนั้นบางทีมันอาจจะมีบางอย่างที่เกี่ยวกับภาษาของตัวเอง (แม้ว่าฉันจะไม่เชื่อ)


2
Python ในเบราว์เซอร์? เกิดขึ้นเมื่อใด
yannis

6
มันไม่ได้ แจ้งให้ทราบล่วงหน้าwould?
Profpatsch

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

1
วิทยาศาสตร์เชิงทฤษฎี! : D คำถามของฉันมาจากคำแถลงที่มีคนทำดังนั้นบางทีมันอาจจะเกี่ยวข้องกับภาษาของมันเอง (แม้ว่าฉันจะไม่เชื่อก็ตาม)
Profpatsch

1
ครั้งหนึ่งเคยมีการใช้งานการรวม Python สำหรับ Internet Explorer ผ่านทางอินเตอร์เฟส COM ที่เปิดใช้งานตัวเลือก VBScript เพื่อสคริปต์ DOM ฉันคิดว่า MS ยกเลิกตัวเลือกในการใช้การรวม COM ในรุ่น 5 หรือ 6 ไม่สามารถเรียกคืนได้
Martijn Pieters

คำตอบ:


23

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

ที่กล่าวว่าคำตอบที่ง่ายที่สุดคือการใช้งานจาวาสคริอย่างรวดเร็วเช่นของ Google V8 พัดการดำเนินงานมาตรฐานของงูใหญ่ (CPython) ออกจากน้ำ V8 เป็นเครื่องเสมือนที่ได้รับการปรับให้เหมาะสมอย่างมากกับ JITer ที่รวดเร็วน่าอัศจรรย์ในขณะที่ CPython เป็น VM ที่ค่อนข้างง่ายเมื่อเปรียบเทียบ มีการนำ Python มาใช้กับ JIT แต่ก็ยังเร็วกว่าประมาณ 5-6 เท่า

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


นี่คือคำตอบที่ลึกซึ้งที่สุด ดังนั้นจึงไม่ใช่ศักยภาพเวลาและเงิน
Profpatsch

7
"ห้าปีที่ผ่านมามันจะเป็นเรื่องที่แตกต่าง" ... และห้าปีต่อจากนี้มันอาจจะแตกต่างกันอีกครั้ง
Bryan Oakley

1
>> ภาษาเป็นสิ่งที่เป็นนามธรรมการใช้งานเป็นสิ่งที่เป็นรูปธรรมที่สามารถวัดประสิทธิภาพได้ << ใช่การใช้ภาษาโปรแกรมเป็นสิ่งที่เป็นรูปธรรม ไม่การใช้งานภาษาโปรแกรมไม่มีประสิทธิภาพของคุณสมบัติที่สามารถวัดได้ ประสิทธิภาพเป็นคุณสมบัติของโปรแกรมเฉพาะที่ใช้การใช้ภาษาในบริบทเฉพาะ
igouy

2
@igouy ดังนั้นถ้าฉันจะเขียนโปรแกรมที่เหมือนกันสองหน้าที่หนึ่งใน C และหนึ่งใน Python คุณจะพิจารณาความแตกต่างของประสิทธิภาพการทำงานที่จะเป็นคุณสมบัติของแอพลิเคชันและไม่ใช้ภาษา?
ConditionRacer

1
@ConditionRacer: มีหลายวิธีในการเขียนโปรแกรมเดียวกันดังนั้นถึงแม้ว่าโปรแกรม python จะมีคุณสมบัติด้านประสิทธิภาพที่แตกต่างจากเวอร์ชั่น C แต่ก็ไม่สามารถพิสูจน์ได้ว่าไม่มีเวอร์ชัน python ที่เทียบเท่ากับเวอร์ชัน C ดูสิ่งต่าง ๆ เช่นasm.js ... ในภาษาใด ๆ ที่คุณสามารถใช้อาร์เรย์ขนาดยักษ์เพื่อจัดเก็บสถานะของโปรแกรมทั้งหมดของคุณและสามารถใช้ชุดย่อยที่เหมาะสมที่สุดของการดำเนินการดั้งเดิมของภาษาได้อย่างง่ายดาย (ตามที่พวกเขาพูดว่า "คุณสามารถเขียน C ในภาษาใดก็ได้")
Mankarse

5

ในยุคเก่าของเว็บเมื่อ Java applets ที่รูปแบบหลักเพียงอย่างเดียวของฝั่งเนื้อหาลูกค้าที่ผู้คนตระหนักว่าจำเป็นต้องมีวิธีในการรับแบบฟอร์มบนหน้าเว็บเพื่อให้สามารถโต้ตอบกับ applets บนหน้าเว็บ

จากนี้ภาษาสคริปต์เพื่อเชื่อมโยงแอปเพล็ต java กับหน้าเว็บถูกสร้างขึ้นด้วยชื่อ ... จาวาสคริปต์

เราสามารถเห็นร่องรอยของมรดกนี้ด้วยคำถาม SO เช่น [ 1 ], [ 2 ], [ 3 ] - และเอกสารราชการสองฉบับ: การเรียกใช้โค้ด JavaScript จาก Appletและเรียกใช้เมธอด Applet จากโค้ด JavaScript

ด้วยภาษาที่มีอยู่เบราว์เซอร์ของเวลา (Netscape เป็นหนึ่งที่โดดเด่น) ทำให้จาวาสคริปต์มีความได้เปรียบในการแข่งขัน (จาวาสคริปต์ที่ออกแบบที่ Netscape - Netscape เป็นจาวาสคริปต์ฝั่งเซิร์ฟเวอร์แรกกับเซิร์ฟเวอร์กลับใน '94 - เกือบสองทศวรรษก่อนโหนด .js) เบราว์เซอร์อื่น ๆ ตามหลังชุดสูท ผู้คนกำลังเขียนหน้าเว็บที่ใช้จาวาสคริปต์ความพยายามอื่น ๆ ในการเขียนสคริปต์ฝั่งไคลเอ็นต์จะหมายถึงหน้าเว็บที่เข้ากันไม่ได้อย่างสมบูรณ์ระหว่างสิ่งที่ทำงานกับสิ่งที่ไม่ - หรือการทำซ้ำโค้ด (นี่คือบล็อก {insert language here} ที่ไม่ใช้จาวาสคริปต์ เบราว์เซอร์และนี่คือบล็อก javascript สำหรับคนอื่น ๆ )

เนื่องจาก Netscape เป็นเบราว์เซอร์ที่โดดเด่นในช่วงเวลาหนึ่งจาวาสคริปต์จึงหยุดชะงัก ในขณะที่มรดกของ Netscape หายไปในเชิงอรรถของไฟล์ต้นฉบับของ Mozilla แต่จาวาสคริปต์ก็ยังคงใช้งานได้และไม่มีอะไรที่จะสามารถจัดการได้

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

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


1
นี่เป็นภาพรวมที่ดีมากของ“ มันผ่านมาอย่างไร…” และเท่าที่ฉันต้องการจะทำเครื่องหมายเป็นคำตอบที่ถูกต้องมันตอบคำถาม“ ทำไม Javascript เป็นภาษาฝั่งไคลเอ็นต์ที่ใช้ในวันนี้” ไม่ใช่“ มีปัญหาการออกแบบที่ทำให้ Python ช้าเกินไปสำหรับการใช้งานฝั่งไคลเอ็นต์หรือไม่”
Profpatsch

VRML ... ว้าวพาฉันกลับมาแล้ว!
FrustratedWithFormsDesigner

1
@Profpatsch ไม่มีปัญหาการออกแบบทางเทคนิคกับจาวาสคริปต์ที่ทำให้มันไม่เหมาะสมสำหรับการใช้ภาษาฝั่งไคลเอ็นต์ - นอกเหนือจากนั้นไม่มีอะไรใช้มันและถ้ามันมีข้อได้เปรียบที่สำคัญบางอย่าง (น่าจะรวมถึงการโต้ตอบกับจาวาแอพเพล็ต) ปัญหาไม่ใช่เรื่องทางเทคนิคและหากไม่มีใครเข้าใจประวัติของ "ทำไมจาวาสคริปต์" ก็ไม่สามารถตอบได้ "ทำไมไม่ใช้งูหลาม"

2
@MichaelT: คุณเขียนว่า "ไม่มีปัญหาการออกแบบทางเทคนิคกับจาวาสคริปต์ที่ทำให้ไม่เหมาะสมสำหรับการใช้ภาษาฝั่งไคลเอ็นต์" คุณหมายถึง Python ไม่ใช่ JS ??
Carl Smith

@CarlSmith Ahh ใช่ ความผิดพลาดของฉัน ... และฉันไม่สามารถแก้ไขความคิดเห็นเกินเวลาที่กำหนด ขอบคุณสำหรับการแก้ไข

4

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

อัปเดต: โปรดดูความคิดเห็นด้านล่างนี้เพื่ออธิบายว่าทำไมการรวบรวม Python ถึง JS จะมีค่าใช้จ่ายสูงกว่าที่ระบุไว้ที่นี่

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


7
จุดแรกของคุณไม่เป็นไปตาม ทุกอย่างสามารถรวบรวมได้เกือบทุกอย่าง (รวมถึงรหัสเครื่อง) แต่นั่นไม่ได้หมายความว่าโปรแกรมที่เขียนในภาษา L และเรียบเรียงเป็นภาษา C นั้นเร็วเท่ากับโปรแกรมเทียบเท่าที่เขียนด้วยภาษา C

1
ดี CoffeeScript เป็นหลักไวยากรณ์ที่แตกต่างกันสำหรับแนวคิดหลักเช่นเดียวกับ JavaScript และ C เป็นภาษาแอสเซมบลีแบบพกพาเป็นหลัก Python และ Javascript แตกต่างกันมาก ในการใช้ Python อย่างถูกต้องคุณจะต้องสนับสนุน (ท่ามกลางสิ่งอื่น ๆ นับพันล้านรายการ) โมเดลคลาสการดำเนินการโอเวอร์โหลดเมโทรคลาส ฯลฯ และส่วนใหญ่ไม่ได้แม็พกับ JavaScript อย่างง่ายดายและมีประสิทธิภาพ ปัญหาเดียวกันกับการรวบรวมอย่างใดอย่างหนึ่งไปยัง C หรือรหัสเครื่อง ผู้เชี่ยวชาญ JIT อาจเป็นความหวังเดียวของคุณ แต่คอมไพเลอร์ของ JIT ที่กำหนดเป้าหมาย JS ยังไม่ได้รับการพิสูจน์ในทางปฏิบัติ

3
ปัญหาหนึ่งคือความจริงที่ว่าคุณไม่สามารถบีบอัด Python อย่างที่คุณสามารถ JS ได้ - กำจัดช่องว่างและบรรทัดใหม่ทั้งหมดและจะมีการกำหนดขอบเขตของคุณ! ดังนั้นคุณจะจบลงด้วยการโหลดนานขึ้นสำหรับชิ้นส่วนสำคัญของ Python
TMN

1
@TMN ประเด็นที่น่าสนใจแม้ว่าใครจะหวังว่าการแสดงออกของ Pythonจะไปไกลเพื่อบรรเทา (และใช่นั่นคือการนับบรรทัดไม่ใช่ตัวละคร แต่ยังคงเป็นภาษาที่ค่อนข้างแสดงออกของ Python)
Daniel B

2
@TMN สิ่งที่ Daniel B พูดและ gzip ควรลดความแตกต่างด้วย โอ้และงูใหญ่ไม่ต้องการบรรทัดและช่องว่างใหม่เหล่านั้นส่วนใหญ่ บรรทัดจำนวนมาก (แต่ไม่ใช่ทั้งหมด) สามารถรวมเข้าด้วยกันได้ดีใน Python เช่นa = something(); frobincate(a); return quuxและif condition: react()เป็นบรรทัดเดียวในแต่ละบรรทัด และ n ระดับการเยื้องต้องการเพียงช่องว่าง n เท่านั้นไม่ใช่ช่องว่าง n * 4

2

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

ความคิดสุ่ม:

(1) คุณอาจเรียกใช้ Python แบบโลคัลผ่านทาง Java applet โดยใช้ Jython ส่วนที่ยากที่ฉันเห็นที่นี่คือแอปเพล็ตนั้นเข้มงวดมากดังนั้นคุณอาจต้องแก้ไข Jython ให้พอดีกับข้อ จำกัด การเข้าถึง ตัวอย่างเช่นถ้ามันเขียนลงในไฟล์บันทึกคุณอาจต้องลบรหัสบันทึก แอปเพล็ตไม่จำเป็นต้องมองเห็นได้ชัดเจน

(2) บางคนสามารถสร้างตัวแปลง / คอมไพเลอร์ Python-to-JavaScript นี่จะเป็นงานจำนวนมาก


5
Someone could build a Python-to-JavaScript "compiler"/converterดีที่มีคนทำอยู่แล้ว
yannis


ฉันไม่เคยทำแบบนี้มาก่อน แต่ฉันรู้ว่ามีคนเขียนแอปเพล็ต Java ด้วย Jython นั่นไม่ใช่สิ่งเดียวกันแม้ว่าจะเป็นการแทนที่ Javascript ในเบราว์เซอร์ด้วย Python
Martijn Pieters

Brythonทำงานได้อย่างรวดเร็วและน่าสนใจอย่างน้อยก็สำหรับส่วนที่ค่อนข้างแยกได้บนหน้าเว็บ (การโต้ตอบกับDOM tree)
Profpatsch

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

1

มันขึ้นอยู่กับการนำภาษามาใช้และไม่จำเป็นต้องเป็นภาษานั้นเอง ล่าม JavaScript ส่วนใหญ่นั้นเร็วกว่าการใช้ Python เกือบทั้งหมด

นี่ไม่ได้หมายความว่าภาษา Python ไม่สามารถใช้งานด้วยความเร็วเกือบเท่ากันกับ JavaScript โอปอลใช้ภาษา Ruby และไลบรารีมาตรฐานเกือบทั้งหมดในเบราว์เซอร์โดยการรวบรวมรหัส Ruby ลงในโค้ด JavaScript ที่รวมอยู่ในการปิด วางเหนือค่าใช้จ่ายของรวมถึงห้องสมุดโอปอล, ความเร็วของมันอยู่ใกล้กับที่ของ JavaScript ตรงกว่าล่าม Ruby อื่น ๆ ที่ฉันรู้

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

แก้ไข: นี่คือรายการของการใช้งาน Python สำหรับเบราว์เซอร์ที่รวบรวม / เรียกใช้บน JavaScript

https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js#python

และในกรณีที่คุณมีความสนใจคุณสามารถตรวจสอบโอปอลที่ฉันชอบ

http://opalrb.org/

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


0

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

ดูที่http://www.skulpt.org/หรือhttp://www.brython.info/สำหรับผู้เริ่มต้น

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


-4

Python เป็นภาษา "คอนโซล" ซึ่งทำงานบนเซิร์ฟเวอร์

Javascript เป็นภาษา "เบราว์เซอร์" ซึ่งทำงานบนไคลเอนต์

เช่นนี้พวกเขาไม่ได้แข่งขันโดยตรง

... แน่นอนว่ามี node.js และอาจเป็นปลั๊กอินของเบราว์เซอร์หลาม แต่ก็มีคำถามเกี่ยวกับประสิทธิภาพของการใช้งานเฉพาะเพิ่มเติม

ยิ่งไปกว่านั้นสำหรับแอพพลิเคชั่นส่วนใหญ่ไพ ธ อนจะทำได้ดียกเว้นถ้าคุณต้องทำการคำนวณอย่างกว้างขวางและบีบรอบ CPU

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


2
จาวาสคริปต์ฝั่งเซิร์ฟเวอร์มีรอบใน '94 jscช่วยให้คุณทำงานกับจาวาสคริปต์เป็นคอนโซลเหมือนกับที่ได้รับถ้าพิมพ์pythonที่คอนโซล

@MichaelT: ตกลงฉันแก้ไขคำตอบของฉันตามนั้น
dagnelies

2
นอกจากนี้คุณสามารถเขียนแอปเดสก์ท็อปใน Python .... ฉันไม่เห็นเหตุผลที่แท้จริงสำหรับความแตกต่างที่คุณทำ
Chris Travers

นอกจากนี้เครื่องมือสร้างแบบจำลอง 3 มิติ Blender ใช้ Python สำหรับทุกสิ่งตั้งแต่ UI ไปจนถึงการสร้างตาข่าย หากนั่นไม่ใช่การแข่งขันที่มีประสิทธิภาพอะไรคืออะไร?
Andrew Grey

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