ค้นหาภาษาการเขียนโปรแกรมใหม่สำหรับการพัฒนาเว็บหรือไม่ [ปิด]


14

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

Ruby เป็นภาษาการเขียนโปรแกรมแบบโอเพ่นซอร์สที่เน้นความเรียบง่ายและประสิทธิภาพ

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

หลังจากเป็นนักพัฒนา PHP มาหลายปีVic Cherubini ได้สรุปถึงชะตากรรมของฉัน:

ฉันรู้ว่า PHP เป็นอย่างดีมีกรอบการทำงานของตัวเองและสามารถทำงานได้อย่างรวดเร็วเพื่อให้ทำงานได้

ฉันตั้งโปรแกรมเช่นนี้ตลอดการปฏิวัติ MVC ฉันได้งานที่ดีขึ้นและดีขึ้น (อ่าน: จ่ายดีกว่าดีกว่าชื่อ) ในฐานะนักพัฒนา PHP แต่ตลอดการตระหนักว่ารหัสที่ฉันเขียนในเวลาของฉันเองนั้นยอดเยี่ยมมากและรหัสที่ฉันทำงานด้วยในที่ทำงานก็แย่มาก ชอบเลวร้ายยิ่งกว่าน่ากลัว เลวร้าย ระดับการค้าของ OS ไม่ดี การมีโปรเจคด้านข้างทำให้ฉันมีสติเพราะรหัสที่ฉันทำงานด้วยในที่ทำงานทำให้ฉันมีความสุข

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

ภาษาที่ฉันได้ดูประกอบด้วย JavaScript (สำหรับ node.js), Ruby, Python และ Erlang ฉันเคยคิดเกี่ยวกับ Scala หรือ C ++

ปัญหาคือการหาสิ่งที่ถูกสร้างขึ้นเพื่อตอบสนองความต้องการของฉันที่ดีที่สุด

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

ปรับปรุง

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


14
เป็นการยากที่จะบอกว่าสิ่งใดที่จะจัดการความต้องการของคุณได้ดีที่สุดหากคุณไม่ได้ระบุความต้องการเหล่านี้
vartec

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

มันคุ้มค่าที่ชี้ให้เห็นว่ายังมีมากขึ้นในการโปรแกรมกว่ามันของความเร็วในการทำงาน ความเร็วในการพัฒนาและวิธีที่คุณต้องสร้างแอปพลิเคชันของคุณ (เนื่องจากภาษา) มีบทบาทสำคัญ
Xeoncross

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

1
ฉันขอแนะนำให้คุณดูที่โพสต์ที่ยอดเยี่ยมนี้โดย Alex Martelli
phant0m

คำตอบ:


3

ฉันจะไม่โพสต์สิ่งนี้เป็นคำตอบ แต่ Xeoncross ขอให้ฉันดังนั้นเราไปที่นี่:

(Sidenote: หากมีคนสามารถแก้ไขปัญหา markdown ในตัวอย่างของโค้ดเล็ก ๆ น้อย ๆ ได้ฉันจะขอบคุณมัน)

โพสต์โดยAlex Martelliในcomp.lang.python : มีอะไรดีกว่า Ruby มากกว่า Python ในวันที่ 18 สิงหาคม 2546 เวลา 17:50 น

Erik Max Francis เขียนว่า:

"Brandon J. Van Every" เขียน:

มีอะไรดีกว่า Ruby มากกว่า Python ฉันแน่ใจว่ามีบางอย่าง มันคืออะไร? มันจะไม่สมเหตุสมผลกว่าหรือที่จะถามคน Ruby กับเรื่องนี้มากกว่าคน Python ใช่ไหม

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

แน่นอนว่าฉันจะได้รับเบื่อในรูบี, การพิมพ์โง่ "จบ" ในตอนท้ายของแต่ละบล็อก (มากกว่าแค่ unindenting) - แต่แล้วฉันจะได้รับที่จะหลีกเลี่ยงการพิมพ์เท่า ๆ กันโง่: ซึ่งงูหลามต้องที่ จุดเริ่มต้นของ แต่ละบล็อกดังนั้นมันเกือบจะเป็นล้าง :-) ความแตกต่างทางไวยากรณ์อื่น ๆ เช่น@fooเมื่อเทียบกับ self.fooหรือความสำคัญที่สูงขึ้นของกรณีใน Ruby vs Python เป็นเพียงเกี่ยวกับฉันที่ไม่เกี่ยวข้อง

คนอื่น ๆ ไม่ต้องสงสัยเลยว่าพวกเขาเลือกภาษาการเขียนโปรแกรมในประเด็นดังกล่าวและพวกเขาสร้างการอภิปรายที่ร้อนแรงที่สุด - แต่สำหรับฉันนั่นเป็นเพียงตัวอย่างหนึ่งของกฎหมายของพาร์คินสันในการดำเนินการ (จำนวนการอภิปรายปัญหานั้นแปรผันตามสัดส่วนของปัญหา ความสำคัญจริง) หนึ่งความแตกต่างทางไวยากรณ์ที่ฉันพบว่าสำคัญและเป็นที่โปรดปรานของ Python - แต่คนอื่น ๆ จะไม่สงสัยเลยว่าสิ่งที่ตรงกันข้าม - คือ "คุณเรียกฟังก์ชันที่ไม่มีพารามิเตอร์" ได้อย่างไร ใน Python (เหมือนใน C) ในการเรียกใช้ฟังก์ชันคุณจะใช้ "ตัวดำเนินการโทร" เสมอ - วงเล็บท้ายหลังวัตถุที่คุณกำลังเรียก (ภายในวงเล็บเหล่านั้นจะไป args ที่คุณกำลังผ่านสาย - ถ้า คุณไม่ผ่าน args แล้ววงเล็บจะว่างเปล่า) สิ่งนี้ทำให้การอ้างถึงวัตถุเพียงอย่างเดียวโดยไม่มีโอเปอเรเตอร์ที่เกี่ยวข้องเป็นความหมายเพียงการอ้างอิงไปยังวัตถุ - ในบริบทใด ๆ โดยไม่มีกรณีพิเศษข้อยกเว้นกฎ ad-hoc และไม่ชอบ ใน Ruby (เหมือนใน Pascal) เพื่อเรียกใช้ฟังก์ชันที่มีอาร์กิวเมนต์คุณจะผ่าน args (โดยปกติจะอยู่ในวงเล็บแม้ว่าจะไม่ใช่กรณีที่คงเส้นคงวา) - แต่ถ้าฟังก์ชั่นนั้นไม่มี args แล้วเพียงแค่พูดถึงฟังก์ชั่น สิ่งนี้อาจตอบสนองความคาดหวังของหลาย ๆ คน (อย่างน้อยก็ไม่ต้องสงสัยเลยว่าผู้ที่เคยมีประสบการณ์การเขียนโปรแกรมมาก่อนเท่านั้นคือ Pascal หรือภาษาอื่น ๆ ที่มี "implcit call" เช่น Visual Basic) - แต่สำหรับฉันแล้วมันหมายถึง การกล่าวถึงวัตถุเพียงอย่างเดียวอาจหมายถึงการอ้างอิงไปยังวัตถุหรือการเรียกไปยังวัตถุ ขึ้นอยู่กับประเภทของวัตถุ - และในกรณีเหล่านั้นที่ฉันไม่สามารถอ้างอิงถึงวัตถุได้โดยเพียงแค่กล่าวถึงมันฉันจะต้องใช้ความชัดเจน "ให้ฉันอ้างอิงถึงสิ่งนี้อย่าเรียกมันว่า!" ผู้ประกอบการที่ไม่จำเป็นต้องใช้อย่างอื่น ฉันรู้สึกว่าสิ่งนี้ส่งผลกระทบต่อ "ชั้นหนึ่ง" ของฟังก์ชั่น (หรือวิธีการหรือวัตถุที่เรียกได้อื่น ๆ ) และความเป็นไปได้ของการเปลี่ยนวัตถุอย่างราบรื่น ดังนั้นสำหรับฉันความแตกต่างทางไวยากรณ์ที่เฉพาะเจาะจงนี้เป็นเครื่องหมายสีดำที่ร้ายแรงต่อ Ruby - แต่ฉันเข้าใจว่าทำไมคนอื่นถึงทำอย่างอื่นแม้ว่าฉันจะไม่เห็นด้วยกับพวกเขา :-) ด้านล่างไวยากรณ์เราได้รับความแตกต่างที่สำคัญในความหมายเบื้องต้น - ตัวอย่างเช่นสตริงใน Ruby เป็นวัตถุที่ไม่แน่นอน (เช่นใน C ++) ขณะที่อยู่ใน Python พวกเขาจะไม่สามารถเปลี่ยนแปลงได้ (เช่นใน Java หรือฉันเชื่อว่า C #) อีกครั้งคนที่ตัดสินโดยสิ่งที่พวกเขาคุ้นเคยอยู่แล้วอาจคิดว่านี่เป็นข้อดีสำหรับ Ruby (เว้นแต่พวกเขาจะคุ้นเคยกับ Java หรือ C # แน่นอน :-) ฉันฉันคิดว่าสตริงที่ไม่เปลี่ยนรูปนั้นเป็นความคิดที่ยอดเยี่ยม (และฉันไม่แปลกใจเลยที่ Java, ฉันคิดอย่างอิสระ, คิดใหม่แนวคิดที่มีอยู่แล้วใน Python) แม้ว่าฉันจะไม่รังเกียจว่าจะมี "บัฟเฟอร์สตริงที่ไม่แน่นอน" (และอันที่หนึ่งมีความสะดวกในการใช้งานที่ดีกว่า "สตริงบัฟเฟอร์" ของ Java); และฉันไม่ได้ตัดสินเรื่องนี้เนื่องจากความคุ้นเคย - ก่อนเรียน Java นอกเหนือจากภาษาโปรแกรมที่ใช้งานได้แล้ว คนที่ตัดสินจากสิ่งที่พวกเขาคุ้นเคยอยู่แล้วอาจคิดว่านี่เป็นข้อดีสำหรับ Ruby (เว้นแต่พวกเขาจะคุ้นเคยกับ Java หรือ C # แน่นอน :-) ฉันฉันคิดว่าสตริงที่ไม่เปลี่ยนรูปนั้นเป็นความคิดที่ยอดเยี่ยม (และฉันไม่แปลกใจเลยที่ Java, ฉันคิดอย่างอิสระ, คิดใหม่แนวคิดที่มีอยู่แล้วใน Python) แม้ว่าฉันจะไม่รังเกียจว่าจะมี "บัฟเฟอร์สตริงที่ไม่แน่นอน" (และอันที่หนึ่งมีความสะดวกในการใช้งานที่ดีกว่า "สตริงบัฟเฟอร์" ของ Java); และฉันไม่ได้ตัดสินเรื่องนี้เนื่องจากความคุ้นเคย - ก่อนเรียน Java นอกเหนือจากภาษาโปรแกรมที่ใช้งานได้แล้ว คนที่ตัดสินจากสิ่งที่พวกเขาคุ้นเคยอยู่แล้วอาจคิดว่านี่เป็นข้อดีสำหรับ Ruby (เว้นแต่พวกเขาจะคุ้นเคยกับ Java หรือ C # แน่นอน :-) ฉันฉันคิดว่าสตริงที่ไม่เปลี่ยนรูปนั้นเป็นความคิดที่ยอดเยี่ยม (และฉันไม่แปลกใจเลยที่ Java, ฉันคิดอย่างอิสระ, คิดใหม่แนวคิดที่มีอยู่แล้วใน Python) แม้ว่าฉันจะไม่รังเกียจว่าจะมี "บัฟเฟอร์สตริงที่ไม่แน่นอน" (และอันที่หนึ่งควรมีความสะดวกในการใช้งานที่ดีกว่า "สตริงบัฟเฟอร์" ของ Java); และฉันไม่ได้ตัดสินเรื่องนี้เนื่องจากความคุ้นเคย - ก่อนเรียน Java นอกเหนือจากภาษาโปรแกรมที่ใช้งานได้แล้ว ฉันคิดว่าสตริงที่ไม่เปลี่ยนรูปนั้นเป็นความคิดที่ยอดเยี่ยม (และฉันไม่แปลกใจเลยที่ Java, ฉันคิดอย่างอิสระ, นำเสนอความคิดที่มีอยู่แล้วใน Python) แม้ว่าฉันจะไม่รังเกียจที่จะมี "บัฟเฟอร์สตริงที่เปลี่ยนแปลงไม่ได้" เช่นกัน ความนึกคิดหนึ่งที่มีความสะดวกในการใช้งานที่ดีกว่า "สตริงบัฟเฟอร์" ของ Java); และฉันไม่ได้ตัดสินเรื่องนี้เนื่องจากความคุ้นเคย - ก่อนเรียน Java นอกเหนือจากภาษาโปรแกรมที่ใช้งานได้แล้ว ฉันคิดว่าสตริงที่ไม่เปลี่ยนรูปนั้นเป็นความคิดที่ยอดเยี่ยม (และฉันไม่แปลกใจเลยที่ Java, ฉันคิดอย่างอิสระ, นำเสนอความคิดที่มีอยู่แล้วใน Python) แม้ว่าฉันจะไม่รังเกียจที่จะมี "บัฟเฟอร์สตริงที่เปลี่ยนแปลงไม่ได้" เช่นกัน ความนึกคิดหนึ่งที่มีความสะดวกในการใช้งานที่ดีกว่า "สตริงบัฟเฟอร์" ของ Java); และฉันไม่ได้ตัดสินเรื่องนี้เนื่องจากความคุ้นเคย - ก่อนเรียน Java นอกเหนือจากภาษาโปรแกรมที่ใช้งานได้แล้วข้อมูลทั้งหมดเปลี่ยนแปลงไม่ได้ทุกภาษาที่ฉันรู้ว่ามีสายอักขระที่เปลี่ยนแปลงไม่ได้ - แต่เมื่อฉันเห็นแนวคิดสตริงที่ไม่เปลี่ยนรูปแบบครั้งแรกใน Java (ซึ่งฉันเรียนรู้ได้ดีก่อนที่ฉันจะเรียนรู้ Python) มันทำให้ฉันยอดเยี่ยมทันที การอ้างอิงความหมายของภาษาการเขียนโปรแกรมระดับสูง (ตรงข้ามกับความหมายของค่าที่เหมาะสมที่สุดกับภาษาที่อยู่ใกล้กับเครื่องและอยู่ไกลจากแอปพลิเคชันเช่น C) ที่มีสตริงเป็นแบบเฟิร์สคลาสในตัว สำคัญ) ประเภทข้อมูล

Ruby มีข้อได้เปรียบบางประการในความหมายเบื้องต้น - ตัวอย่างเช่นการลบ Python "list vs tuples" ที่แตกต่างอย่างมาก แต่ส่วนใหญ่คะแนน (อย่างที่ฉันเก็บไว้ด้วยความเรียบง่ายบวกที่ยิ่งใหญ่และละเอียดอ่อนความแตกต่างที่ชาญฉลาดที่น่าทึ่งลบ) เป็นกับทับทิม (เช่นมีทั้งช่วงปิดและครึ่งเปิดด้วยสัญลักษณ์ a .. b และ a .. .b [ใครต้องการที่จะอ้างว่าเป็นที่ชัดเจนหรือไม่ -)] ที่โง่ - IMHO แน่นอน!) อีกครั้งผู้ที่พิจารณาว่ามีสิ่งที่คล้ายกัน แต่มีความแตกต่างอย่างละเอียดที่แกนกลางของภาษา PLUS มากกว่า MINUS แน่นอนจะนับสิ่งเหล่านี้ "วิธีอื่น ๆ " จากวิธีที่ฉันนับ :-)

อย่าเข้าใจผิดโดยการเปรียบเทียบเหล่านี้ในการคิดว่าทั้งสองภาษานั้นมี ความสำคัญมากแตกต่างใจคุณ พวกเขาไม่ได้ แต่ถ้าฉันขอให้เปรียบเทียบ "capelli d'angelo" กับ "spaghettini" หลังจากชี้ให้เห็นว่าพาสต้าทั้งสองชนิดนี้ไม่มีความแตกต่างกับใครและสามารถใช้แทนกันในจานใด ๆ ที่คุณอาจต้องการเตรียมไว้อย่างหลีกเลี่ยงไม่ได้ เมื่อต้องการย้ายไปยังการตรวจด้วยกล้องจุลทรรศน์ว่าความยาวและเส้นผ่าศูนย์กลางแตกต่างกันอย่างไรการสิ้นสุดของเส้นเกลียวจะเรียวในกรณีหนึ่งและไม่ใช่ในอีกกรณีและอื่น ๆ - เพื่อลองอธิบายว่าทำไมฉันเองควรมี capelli 'angelo เป็นพาสต้าในน้ำซุปทุกชนิด แต่ชอบ spaghettini เป็น pastasciutta ที่จะไปกับซอสที่เหมาะสมสำหรับรูปแบบพาสต้าบาง ๆ ที่ยาวนาน (น้ำมันมะกอกกระเทียมสับพริกแดงสับละเอียดและแอนโชวี่บดละเอียด) ตัวอย่างเช่น - แต่ถ้าคุณหั่นกระเทียมและพริกแทนที่จะหั่นเป็นชิ้นเล็ก ๆ คุณควรเลือกสปาเก็ตตี้ซาวด์มากกว่าสปาเก็ตตินีที่บางกว่า หรือแม้แต่ - ฉันเป็นคนนอกรีต ... ! - แสงสะระแหน่ ... ] ใบไม้ - ในช่วงเวลาสุดท้ายก่อนที่จะเสิร์ฟจาน) อุ๊ปส์ขอโทษแสดงว่าฉันเดินทางไปต่างประเทศและไม่เคยมีพาสต้าซักพักฉันเดา แต่การเปรียบเทียบก็ยังค่อนข้างดี! -) และจะได้รับคำแนะนำที่ดีที่จะนำหน้า achoview และเพิ่มใบโหระพาสดแทน [หรือแม้แต่ - ฉันเป็นคนนอกรีต ... ! - แสงสะระแหน่ ... ] ใบไม้ - ในช่วงเวลาสุดท้ายก่อนที่จะเสิร์ฟจาน) อุ๊ปส์ขอโทษแสดงว่าฉันเดินทางไปต่างประเทศและไม่เคยมีพาสต้าซักพักฉันเดา แต่การเปรียบเทียบก็ยังค่อนข้างดี! -) และจะได้รับคำแนะนำที่ดีที่จะนำหน้า achoview และเพิ่มใบโหระพาสดแทน [หรือแม้แต่ - ฉันเป็นคนนอกรีต ... ! - แสงสะระแหน่ ... ] ใบไม้ - ในช่วงเวลาสุดท้ายก่อนที่จะเสิร์ฟจาน) อุ๊ปส์ขอโทษแสดงว่าฉันเดินทางไปต่างประเทศและไม่เคยมีพาสต้าซักพักฉันเดา แต่การเปรียบเทียบก็ยังค่อนข้างดี! -)

ดังนั้นกลับไปที่ Python และ Ruby เรามาถึงสอง biggies (ในแง่ของภาษาที่เหมาะสม - ออกจากห้องสมุดและอุปกรณ์เสริมที่สำคัญอื่น ๆ เช่นเครื่องมือและสภาพแวดล้อมวิธีการฝัง / ขยายแต่ละภาษา ฯลฯ ฯลฯ จาก สำหรับตอนนี้ - พวกเขาจะไม่นำไปใช้กับการใช้งานทั้งหมดของแต่ละภาษาอย่างไรก็ตาม Jython vs Classic Python เป็นการนำภาษา Python มาใช้งานสองแบบ!):

  1. iterators ของ Ruby และ codeblocks เทียบกับ iterators และ Python ของ Python;

  2. TOTAL ของ Ruby "ไดนามิก" ที่ไม่มีการควบคุมรวมถึงความสามารถในการ "เปิด" คลาสที่มีอยู่ใด ๆ รวมถึงคลาสที่มีอยู่แล้วและเปลี่ยนพฤติกรรมในเวลาทำงาน - เทียบกับพลังแบบ Python ที่กว้างใหญ่ แต่ไม่มี     ขอบเขต ซึ่งไม่เคยเปลี่ยนพฤติกรรมของที่มีอยู่ คลาสที่มีอยู่แล้วและอินสแตนซ์ของมัน

โดยส่วนตัวแล้วฉันคิดว่า1การล้าง (ความแตกต่างนั้นลึกมากจนฉันสามารถเห็นคนที่เกลียดการเข้าใกล้และกราบไหว้คนอื่นได้ง่าย แต่ในส่วนตัวของฉัน และ [2] ปัญหาสำคัญ - หนึ่งที่ทำให้ Ruby เหมาะสำหรับ "tinkering" มากยิ่งขึ้น แต่ BUT Python นั้นเหมาะกว่าสำหรับการใช้งานในแอปพลิเคชันขนาดใหญ่ มันตลกในทางหนึ่งเพราะทั้งสองภาษานั้นมีพลังมากกว่าคนอื่น ๆ ส่วนใหญ่ในที่สุดความแตกต่างที่สำคัญระหว่างพวกเขาจาก POV ของฉันควรขึ้นอยู่กับสิ่งนั้น - ทับทิม "ไปสิบเอ็ด" ในเรื่องนี้ (อ้างอิง นี่คือ "Spinal Tap" แน่นอน) ในทับทิมฉันสามารถทำมันได้ ! นั่นคือฉันสามารถเปลี่ยนคลาสสตริงในตัวแบบไดนามิกได้

a = "สวัสดีชาวโลก" 
b = "สวัสดีชาวโลก" 
ถ้า a == b 
    พิมพ์ "เท่ากัน! \ n" 
อื่น 
    พิมพ์ "different! \ n" 
ปลาย
 

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

ถ้าฉันต้องใช้ Ruby สำหรับแอปพลิเคชั่นขนาดใหญ่ฉันจะพยายามใช้ข้อ จำกัด ของสไตล์การเข้ารหัสการทดสอบจำนวนมาก (จะเรียกใช้ซ้ำเมื่อใดก็ตามที่มีการเปลี่ยนแปลงใด ๆ - แม้สิ่งที่ควรจะไม่เกี่ยวข้องทั้งหมด ... ) และทำนองเดียวกัน เพื่อห้ามการใช้งานคุณสมบัติภาษานี้ แต่การไม่มีคุณสมบัติในตอนแรกดีกว่าในความคิดของฉัน - เช่นเดียวกับ Python จะเป็นภาษาที่ดียิ่งขึ้นสำหรับการเขียนโปรแกรมประยุกต์หากจำนวนบิวด์อินบางตัวอาจ "ถูกลบ" ดังนั้นฉันจึงรู้ว่า เช่น eg len("ciao")คือ 4 (แทนที่จะต้องกังวลว่าใครบางคนเปลี่ยนความผูกพันของชื่อlenใน__builtins__ โมดูล ... หรือไม่ ฉันหวังว่าในที่สุด Python จะ "ตอกย้ำ" โครงสร้างภายในของมัน

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

อเล็กซ์


ฉันได้รับรางวัลนี้เป็นคำตอบเพราะเป็นภาพรวมที่ยอดเยี่ยมและค่อนข้างไม่ลำเอียงของ Ruby และ Python โดยรวม อธิบายวิธีการทำงานภาษาและจะไม่ได้ทำงาน
Xeoncross

27

โชคดี

ไม่มีคำอธิบายตัวอย่างที่ให้ไว้มีวัตถุประสงค์หรือทดสอบได้ พวกเขาทุกคนต่างก็ขัดต่อความคิดเห็น

... ความเรียบง่ายและผลผลิต ... รวดเร็วยิ่งขึ้น ... มีประสิทธิภาพมากขึ้น

ลองมัน

ลองทำตัวอย่างเล็ก ๆ น้อย ๆ ที่คุณน่าจะลองแล้วลองทำกับภาษาที่คุณสนใจ จากนั้นโพสต์รีวิววัตถุประสงค์ของคุณแล้วเราทุกคนจะรู้


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

1
@Xeoncross: ด้วยภาษาที่คุณลองแต่ละครั้งคุณจะเพิ่มประสบการณ์ของคุณและคุณจะสามารถใช้ประโยชน์ได้ในภาษาอื่น ๆ 4 เดือนในการดำน้ำเป็นภาษาที่ไม่เคยหายไป; และถ้าภาษานั้นแย่จริงๆคุณต้องใช้เวลาน้อยกว่าสองสัปดาห์ในการค้นหา
tdammers

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

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

3
ฉันจะแปลกใจถ้ามีความแตกต่างอย่างมีนัยสำคัญระหว่างภาษาสมัยใหม่เพื่อวัตถุประสงค์ทั่วไป ที่นั่นฉันพูดออกมาดัง ๆ และในตัวเอียง ให้เปลวไฟเริ่มขึ้น!
Steven A. Lowe

8

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

ฉันใช้วิธีการใช้ภาษาที่เหมาะสมกับงาน คุณถามเฉพาะเกี่ยวกับการพัฒนาเว็บไซต์แต่มันก็ยังเป็นหมวดหมู่ที่ค่อนข้างกว้าง - เหมือนกับว่าคุณสนใจถ่ายรูป Micro? Astro? ฯลฯ แม้ว่าฉันจะยอมรับว่า PHP ไม่ใช่ภาษาที่ตอบสนองต่ออารมณ์ในการทำงานสำหรับลูกค้าจำนวนมากมันเป็นภาษาที่ถูกต้องตามปัจจัยหลายประการ แต่อย่างน้อยก็มีความสามารถระยะยาวในการค้นหาโปรแกรมเมอร์เพื่อแก้ไขเว็บไซต์หลังจากที่คุณออกจาก และ / หรือโดนรถบัส

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


เพราะฉันเก่ง PHP - ฉันจะทำงานต่อไปเพราะฉันยังสามารถมีชีวิตที่ดีได้ ฉันส่วนใหญ่คิดเกี่ยวกับภาษาใหม่สำหรับโครงการของฉันเอง สิ่งที่ช่วยเพิ่มรสชาติให้กับชีวิตฉัน ผมทำงานในเพียงเกี่ยวกับทุกการพัฒนาเว็บที่คุณสามารถคิด, NLP, การแยกข้อความ CMS, API ของการจัดเก็บ ฯลฯ นอกจากนี้คนที่มีประสบการณ์ในหลายภาษามีมากน้อยของการมีอคติกว่าคนที่มีเพียงหนึ่งในขั้นตอนการออกแบบ
Xeoncross

อา. ถ้าอย่างนั้นฉันจะให้คำตอบมาตรฐานกับ "ภาษาที่ดีที่สุด" - คำถามประเภท: Python ไม่สนใจ "ช่องว่างสำคัญ" (ซึ่งเป็นไปได้ที่จะทำ) มันใกล้เคียงกับภาษาที่สมบูรณ์แบบสำหรับฉัน นอกจากนี้ยังมีห้องสมุดคุณภาพสูงจำนวนมากที่น่าตื่นตาตื่นใจด้วย Python APIs เช่น NLTK, ชุดภาษาธรรมชาติ ( nltk.org )
Peter Rowell

อ๊ะ แต่อะไรที่เกี่ยวกับ Python ที่ทำให้ดีขึ้น? ภาษาส่วนใหญ่ล้วนใช้ชุดเครื่องมือเดียวกัน - มันคือการออกแบบภาษาที่แนะนำสิ่งต่าง ๆ เช่นการทำเธรดการทำงานพร้อมกันข้อกำหนดของ VM การคอมไพล์ / การตีความการคงอยู่ ฯลฯ
Xeoncross

Python เป็นโปรแกรมที่สนุกธรรมดานั่นคือสิ่งที่ทำให้ "ดีขึ้น" สำหรับฉัน มันง่ายพอที่คุณไม่จำเป็นต้องใช้ IDE ตัวใหญ่ในการเขียนโค้ด แต่ยังมีคุณสมบัติที่น่าสนใจมากมายเช่นวัตถุความสามารถในการตั้งโปรแกรมการทำงานห้องสมุด / กรอบ / เครื่องมือที่มีอยู่จำนวนมากและชุมชนที่เจริญรุ่งเรืองและกระตือรือร้นพร้อมด้วยเอกสารเปิด / ฟรีมากมายที่จะนำคุณไป
John Gaines Jr.

2
จริง คำอธิบายที่ง่ายที่สุดคือ Python ทำงานเหมือนกับที่สมองของฉันทำและทำให้ฉันมีประสิทธิภาพมากขึ้น ฉันแทบจะไม่เคยถามตัวเองว่า "ฉันจะทำสิ่งนี้ใน Python ได้อย่างไร" แม้ว่า GIL (Global ล่ามล็อค) เป็นบิตของปัญหาก็ไม่ได้มีแนวโน้มที่จะส่งผลกระทบต่อผมว่ามากเพราะผมมักจะจัดการมากขึ้นด้วยmultiprocessสถานการณ์ (ท่อสะดุดตาแบบหลายขั้นตอนการประมวลผล NL) กว่ามัลติทาสก์ ฉันยังชอบความหลากหลายของการเชื่อมต่อตัวเลือกสำหรับการเข้าถึงห้องสมุดใหม่ภายนอก: ctypes, Boost ฯลฯ
ปีเตอร์ Rowell

7

หลาม

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

  • Django - กรอบระดับสูงที่สมบูรณ์พร้อมระบบ ORM ขั้นสูงระบบควบคุมอุณหภูมิการจัดการแบบฟอร์ม ฯลฯ
  • Twisted - เฟรมเวิร์กสำหรับการเขียนโปรแกรมเครือข่ายแบบอะซิงโครนัส (แบบอะซิงโครนัส) สามารถใช้สำหรับการแชท, ซ็อกเก็ตเซิร์ฟเวอร์, บริการเว็บคุณตั้งชื่อมัน
  • Tornado - เป็นเฟรมเวิร์กที่ขับเคลื่อนด้วยเหตุการณ์ แต่อันนี้ถูกออกแบบมาสำหรับบริการเว็บแบบอะซิงโครนัส

ทับทิม

ทับทิมยังเป็นภาษาสากล แต่จนถึงตอนนี้ผลิตภัณฑ์ที่โดดเด่นที่สุดคือ Ruby on Rails การออกแบบได้รับแรงบันดาลใจสำหรับหลาย ๆ คน (รวมถึง Django ที่กล่าวถึงข้างต้น)

JavaScript

ปัจจุบันตัวเลือกฝั่งเซิร์ฟเวอร์เดียวสำหรับ JS คือ node.js มันคล้ายกับ Tornado และ Twisted (ซึ่งเป็นแรงบันดาลใจ) อย่างไรก็ตามมันยังขาดเฟรมเวิร์กที่มีคุณสมบัติครบถ้วนคล้ายกับ Django หรือ RoR ที่สร้างจากด้านบน

สกาล่า

การใช้ภาษาที่ใช้งานได้ดีเยี่ยมสำหรับการคำนวณแบบขนานขนาดใหญ่ตราบใดที่การเขียนโปรแกรมเว็บเพื่อวัตถุประสงค์ทั่วไปมีอยู่นั่นคือ Lift - web framework ที่ได้รับแรงบันดาลใจจาก RoR ซึ่งใช้เป็นตัวอย่างโดย FourSquare


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

+1 สำหรับ Django มันทำให้ฉันลืมเมื่อฉันเรียนรู้ ... นั่นหรือฉันอยู่ในอาการมึนงงงงงวยเพราะฉันเรียนรู้และ Python พร้อมกัน ไม่ว่าจะด้วยวิธีใดเทคโนโลยีที่ยอดเยี่ยมที่ฉันต้องการกลับไปหา "เวลาว่าง" ที่ไม่อาจหลีกเลี่ยงได้
zourtney

1
"... มันยังขาดเฟรมเวิร์กที่เต็มเปี่ยม" Check out Express สำหรับ Node - expressjs.com
T. Stone

@T: ใช่ฉันเคยดู Express หนึ่งในจุดแข็งของ Django และ RoR คือ ORM Express ไม่ได้มีมัน
vartec

3

ในโครงการเว็บล่าสุดของฉันฉันเริ่มต้นด้วย PHP เพราะฉันเคยใช้กับโครงการเว็บมาก่อน (เริ่มต้นอย่างรวดเร็ว) แต่ฉันมีปัญหามากมายเกี่ยวกับภาษาเช่นการสนับสนุน UTF-8 ไม่ดีและการพิมพ์แบบไดนามิก ฉันมีพื้นหลัง Java บางส่วนและฉันสนุกกับการพิมพ์แบบคงที่และเครื่องมือการรีแฟคเตอร์ที่ดี Java ยังมีประสิทธิภาพที่ดีเมื่อเทียบกับ PHP แต่ฉันก็ชอบความหมายของการเขียนโปรแกรมเชิงหน้าที่

Scala and Play Framework

จากประสบการณ์ข้างต้นฉันสนุกกับการเขียนโปรแกรมภาษาสกาล่ามันเป็นแบบคงที่มีการสนับสนุนทั้งการเขียนโปรแกรมเชิงวัตถุและการทำงานและมีประสิทธิภาพที่ดีเมื่อเทียบกับภาษาอื่น ๆ ที่ใช้สำหรับการพัฒนาเว็บ แต่ฉันไม่ชอบเว็บเฟรมเวิร์กสำหรับ Java และ servlets และฉันพบPlay Frameworkที่รองรับทั้งScalaและ Java และมีวงจรการพัฒนาที่รวดเร็วมาก - บันทึกไฟล์และอัปเดตหน้าเว็บของคุณ ฉันพอใจกับ Scala & Play Framework เมื่อเดือนที่แล้ว แต่การสนับสนุน Scala ใน Play Framework ยังไม่เป็นผู้ใหญ่มากและยังไม่มีเครื่องมือสนับสนุน

ในระยะสั้นฉันแนะนำ Scala เป็นภาษาโปรแกรมและ Play Framework เป็นเว็บเฟรมเวิร์ก


Play ดูเท่ห์ไม่ได้มีโอกาสได้ทดลองขับจริงๆ ( จริงๆ ) มาจากพื้นหลัง php ที่คล้ายกันฉันพบว่าLiftนั้นค่อนข้างง่ายที่จะเข้าใจ ดูเหมือนว่ามันจะโตกว่า Play เล็กน้อย แต่ฉันใหม่เกินไปที่จะเป็น Scala
yannis

3

ที่จริงแล้วคุณกำลังค้นหาทรัพยากรสามประเภท:

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

ทรัพยากรทั้งสองนั้นจะลำเอียง

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

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


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

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

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


สิ่งสุดท้ายมักลืมไปแล้วว่ามันสำคัญมากที่จะต้องประเมิน "สภาพแวดล้อม" ของภาษา:

  • เฟรมเวิร์ก (หรือกรอบที่ใช้มากที่สุด) ดีแค่ไหน?
  • การหาบริการโฮสต์เป็นเรื่องง่ายหรือไม่ คุณชื่นชม IDE หรือไม่
  • มีห้องสมุดบุคคลที่สามที่เขียนได้ดีมากมายหรือไม่?
  • ชุมชนประกอบด้วยนักพัฒนามืออาชีพสูงหรือส่วนใหญ่เป็นผู้เริ่มต้นที่ไม่รู้อะไรเลยเกี่ยวกับการเขียนโปรแกรมโดยทั่วไปหรือเกี่ยวกับภาษาเอง
  • เอกสารมีความละเอียดเพียงพอและง่ายต่อการค้นหาและทำความเข้าใจ
  • ภาษาและกรอบงานมีการปรับปรุงบ่อยครั้งหรือไม่?
  • เป็นต้น

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

2

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

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

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


1

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


นั่นไม่ใช่ความคิดที่เลวจริงๆ ฉันยังคิดที่จะใช้เวลามากขึ้นในการวาดภาพประกอบและ Photoshop ทำงานออกแบบของฉัน ถึงกระนั้นฉันต้องการค้นหาเพิ่มเติมเกี่ยวกับตัวเลือกแอปพลิเคชันเว็บที่นั่น
Xeoncross

0

คุณถึงขีด จำกัด ของ PHP จริง ๆ หรือเพียงแค่ขีด จำกัด ของ PHP ตามที่คุณรู้หรือไม่?

คุณดูเป็นDrupalหรือไม่? มันเป็น CMS ที่ใช้ PHP และกรอบการเขียนโปรแกรมซึ่งสนับสนุนมาตรฐานการเขียนโปรแกรมและแนวทางปฏิบัติที่ดีอย่างยิ่ง (ต้องทำงานกับ OSCommerce ในงานก่อนหน้านี้ฉันรู้สึกถึงความเจ็บปวดของคุณ) แม้ว่าจะใช้ PHP แต่ก็แตกต่างกันพอที่จะใช้วิธี "ถูกต้อง" ในการทำ PHP บริสุทธิ์ล้วนไม่ใช่วิธีที่ถูกต้องใน Drupal และคุณจะมีช่วงการเรียนรู้ที่ดีที่จะปีนขึ้นไปเพื่อเป็นผู้เชี่ยวชาญ อย่างไรก็ตามมันอาจเปลี่ยนมุมมองของคุณเกี่ยวกับความสามารถของ PHP ในฐานะภาษาและการพัฒนาเว็บโดยรวม


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