การเลือกระหว่าง CL และ Python สำหรับการพัฒนาเว็บ


13

ฉันมาจากพื้นหลังของจาวาและหลังจากที่ฉันได้อ่านบทความนี้โดยพอลเกรแฮมฉันเริ่มสงสัยว่าการเลือกภาษาใหม่คือ Common LISP เพื่อเร่งงานของฉัน (ฉันเป็นนักพัฒนาเว็บ)

ตอนนี้ฉันกำลังเขียนโครงการสัตว์เลี้ยง แต่ฉันมีแผนธุรกิจสำหรับอนาคต Paul พูดถึง LISP ในเรียงความของเขาว่าเป็น "อาวุธลับ" ฉันไม่ทราบว่าคำสั่งนี้เป็นจริงหลังจาก 10 ปี แต่ฉันจุ่มนิ้วเท้าของฉันลงในการสอน CL ที่ดีและดูเหมือนว่า LISP อาจเหนือกว่าสำหรับการพัฒนาเว็บ

พอลกล่าวถึง Python ว่าเป็นตัวเลือกที่ดีที่ฉันคุ้นเคย คำถามของฉันคือฉันควรเลือกโครงการใดในอนาคตของเว็บ

สิ่งที่ฉันคิดเกี่ยวกับ:

  • ฉันจะไม่พัฒนาแอพพลิเคชั่นเดสก์ท็อปดังนั้นฉันสามารถเลือกภาษาที่ต้องการได้
  • หลามดูเหมือนว่าจะมีชุมชนขนาดใหญ่มากซึ่งทำให้ห้องสมุด / กรอบงานมากกว่าเมื่อเปรียบเทียบกับเสียงกระเพื่อม
  • ฉันพบว่า lisp มีฟังก์ชั่นบางอย่าง (เช่นมาโคร) ซึ่งหาไม่ได้ที่อื่น
  • ฉันส่วนใหญ่ทำงานคนเดียวหรือกับโปรแกรมเมอร์ 1-2 คน แต่การหาคนที่มีความรู้ไม่เพียงพออาจเป็นเรื่องยาก

ดังนั้นสิ่งที่คุณคิดว่า?


ชุมชน Python มีขนาดใหญ่เท่าใดเมื่อเทียบกับ PHP ฉันคิดว่าการหานักพัฒนา Python อาจจะยากเช่นกันเมื่อเทียบกับการค้นหานักพัฒนา PHP ดังนั้นฉันมักจะเลือกระหว่างตัวเลือกเหล่านี้กับตัวเลือกเท่านั้นหากโครงการกำลังทดลอง
อเล็กซ์

ฉันไม่ชอบ PHP ดังนั้นนี่จึงไม่ใช่ตัวเลือกสำหรับฉัน ตั้งแต่ฉันเป็นเจ้านายคนเดียวของฉันไม่มีใครบังคับให้ฉันใช้สิ่งที่ฉันไม่ชอบ :)
Adam Arold

2
ชุมชนการพัฒนา @Vash Python อาจไม่ใหญ่เท่ากับ PHP แต่ก็ยังมีขนาดใหญ่มาก นอกจากนี้ฉันพบว่าเอกสารออนไลน์ของ Python นั้นเหนือกว่า PHP อย่างมาก
จำนวน

ฉันคิดว่าเป็นเรื่องจริง
Adam Arold

2
ฉันไม่เชื่อว่ายังไม่มีใครพูดถึง Clojure เลย!
Chiron

คำตอบ:


7

คุณมาจากพื้นหลังของ Java ดังนั้นทำไมไม่ลองตรวจสอบภาษาการเขียนโปรแกรม Clojure?
มันเป็นภาษา Lisp สมัยใหม่ที่อาศัยอยู่ใน JVM ดังนั้นคุณจึงสามารถเข้าถึง JARs ได้มากมาย

ในขณะที่คุณจะไม่พบกับเฟรมเวิร์กเว็บที่พร้อมใช้งานและสมบูรณ์เช่น Django และ Rails ในจักรวาล Clojure (อย่างน้อยตอนนี้) แต่โปรแกรมเมอร์กำลังใช้เฟรมเวิร์กเว็บ Noir และ Compojure
คุณสามารถปรับใช้เว็บแอพ Clojure ของคุณบนแพลตฟอร์ม Heroku

Clojure ให้ผลตอบแทนสูง แต่ช่วงการเรียนรู้สูงชันมาก คุณพร้อมที่จะเรียนรู้การเขียนโปรแกรมการทำงาน (สมมติว่าคุณไม่คุ้นเคย) อยู่นอกโลก OOP ได้ยังไง?

Python เป็นด้านที่ปลอดภัย: เป็นผู้ใหญ่หนังสือจำนวนมากกรอบงานเว็บจำนวนมากคลังความรู้ขนาดใหญ่และง่ายต่อการเรียนรู้

ดังนั้นการตัดสินใจเป็นของคุณจริงๆ


1
ฉันเช็คเอาท์ Clojure เมื่อเร็ว ๆ นี้และฉันคิดว่ามันเป็นสิ่งที่เหมาะสมกับความต้องการของฉันมากที่สุด! ขอบคุณสำหรับคำแนะนำ!
Adam Arold

7

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

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

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

นอกจากนี้ยังมีการฟื้นฟูของภาษาที่ใช้งานได้ในทุกวันนี้ คุณสามารถดู F # สำหรับ. NET หรือ Scala บน JVM หากคุณต้องการเลือกแนวคิดการทำงานบางอย่าง

ดังนั้นให้คุณเลือก หากทั้งสองเป็นภาษาจริงคุณควรเรียนสิ่งใดต่อไปนี้: ละติน / กรีกโบราณหรือฝรั่งเศส / เยอรมัน / อิตาลี / สเปน / จีน / อาหรับ


ฉันเคยเห็นงานโฆษณากระเพื่อมในพื้นที่ชิคาโก - ไม่เพียงแค่นั้นพวกเขาจะจ้างคุณโดยไม่มีประสบการณ์และฝึกอบรมคุณ ฉันต้องการกิ๊กนั้น แต่การเดินทางจะฆ่าฉัน ฉันจะยอมรับ แต่ฉันคิดว่านั่นเป็นเกือบโฆษณาเดียวที่ฉันเคยเห็นมาหลายปี
ไบรอัน Oakley

ตกลงฉันจะทำอะไร: ฉันจะเรียนรู้ LISP และ Python ด้วย แต่ฉันจะใช้ Python เพราะเหตุผลที่คุณและคนอื่น ๆ พูดถึงข้างต้น ขอขอบคุณสำหรับการชี้แจง.
Adam Arold

3

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

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

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


3

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

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

ถ้าฉันกำลังตรวจสอบการจ้างคนที่เก่งใน Lisp เทียบกับคนที่เก่งใน Python ฉันจะสันนิษฐานทันทีว่า Lisp คนนั้นเป็นโปรแกรมเมอร์และนักวิทยาศาสตร์คอมพิวเตอร์ที่ดีกว่าคน Python (ทุกอย่างเท่าเทียมกัน)

ฉันลำเอียงอย่างโหดร้ายฉันแน่ใจ


1
ฉันลำเอียงหรือไม่เห็นจุดของคุณ!
Adam Arold

2

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

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

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


2

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

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

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


0

เสียงกระเพื่อมเป็นเพียงเครื่องมือเช่นเดียวกับภาษาอื่น ๆ ทุกภาษา มันมีคุณสมบัติที่มีประโยชน์แน่นอน ในเวลาเดียวกันมันเป็นไปได้ที่จะมีผลลัพธ์เดียวกันกับภาษาอื่น ๆ เพียงแค่อาจต้องใช้เวลาและรหัสมากขึ้น ปัญหาหลักของ Lisp ก็คือคุณจะต้องได้รับอย่างน้อย VPS hosting เนื่องจากไม่มีโฮสต์ที่ใช้ร่วมกัน (ที่ฉันรู้จัก) ที่รองรับ Lisp หลากหลายบนแพลตฟอร์มของพวกเขา

สิ่งหนึ่งที่ฉันอยากจะแนะนำคือเมื่อคุณเป็นโปรแกรมเมอร์ Java ลองดูที่ Groovy (หรือแม้แต่ Scala) พวกเขาจะช่วยให้คุณใช้ห้องสมุด Java และ API ของคุณและจะช่วยเพิ่มผลผลิต


VPS ไม่ใช่ปัญหาเพราะความคิดของฉันไม่สามารถทำงานร่วมกับโฮสติ้งที่ใช้ร่วมกันได้
Adam Arold

0

ฉันไม่รู้เกี่ยวกับเสียงกระเพื่อมมากกว่าต้นกำเนิด สิ่งที่ฉันรู้เกี่ยวกับ Python คือ:

5 นาทีหลังจากจานบินบินครั้งแรกชุมชน Python จะรวบรวมบางสิ่งบางอย่างเพื่อเชื่อมต่อกับระบบ I / O

นอกจากนี้การเริ่มต้นจาก JavaScript ฉันพบว่า Python มีขนาดที่เป็นธรรมชาติมาก บางทีการสนทนาอาจเป็นจริง

นอกจากนี้ Django ก็เป็นกรอบในการเลียนแบบทุกวันนี้

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