Feb 21 2010

ทำไมคนเราถึงเกลียดภาษาอื่นๆ

Category: Generalm3rLinEz @ 09:02

แน่นอน ภาษา Programming นะครับ ไม่ใช่ จีน ญี่ปุ่น อังกฤษ :P

ไปเจอคำถามนี้และคำตอบที่น่าสนใจมาก ว่าการเกลียดภาษาอื่นๆมักจะแบ่งเป็น 3 แบบ

เกลียด เพราะได้ยินข่าวลือแย่ๆมา เช่น

  • “Ruby ช้า เขียนแล้วโค้ดสวยก็จริงแต่ทำงานช้าโคดๆ”
  • “เขียน VB, C#, .NET แล้วโง่ เอะอะอะไรก็ลากแปะ”
  • “Java ช้า”
  • “C++ มีแต่ไดโนเสาร์เขียน”

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

เกลียด เพราะใช้แล้วไม่พอใจ

พวกนี้เคยใช้จริง แล้วไม่พอใจจริง ซึ่งอาจเกิดจากสาเหตุ เช่น

  • โดนหัวหน้า อาจารย์ เจ้านาย บังคับให้ทำ ซึ่งทำแล้วปรากฎว่าใช้แล้วได้ผลไม่ดี (อาจจะแบบว่าใช้อย่างอื่นแล้วเหมาะกว่า เช่น เคยเอา C++ ไปเขียน Web App) ก็เลยไม่ชอบ
  • ใช้แล้วมัน “ไม่ใช่ว่ะ”
  • ไม่ค่อยมีข้อมูลในการใช้เรียนรู้ หรือ learning curve ชันไป

เกลียด โดยหลักการ

ไม่ชอบลักษณะ / คุณสมบัติ บางอย่างของภาษา โดยอาจจะรู้สึกว่าภาษาหนึ่งดีกว่าอีกภาษา ตรงที่ … เช่น

  • “ไม่ชอบ Java เพราะต้องทำงานบน JVM  … มันไม่ถูกต้องนะ! เขียน C++ แล้วให้ compile เป็น native สิ!” -- คลั่ง C++
  • “ไม่ชอบ C++ เพราะต้องมารับผิดชอบการเขียนให้มัน cross platform เอง ต้องมาเช็ค #ifdef เบื้อกอะไรตั้งมากมาย แล้วต้องมาเรียนรู้ platform-specific system calls เอง เฮ้อ” -- ผมเขียน Java
  • “ไม่ชอบ Java เพราะ syntax มันช่างบุโรคั่งและยืดเยื้อ รวมถึงแคร์เรื่อง backward compatibility เหลือเกิน ไม่ Elegant เหมือนภาษาผมเอาซะเลย” -- ผมเขียน C#

ส่วนตัวผมมีประสบการณ์กับการไม่ชอบทั้ง 3 แบบ

แบบ 1 สมัยเด็กๆผมรู้สึกว่า VB 6 ดูดีมีอนาคตกว่า VC++ มากๆ เพราะแค่ new project ใหม่ก็ได้ Window เปล่าๆมาอันนึงแล้ว ส่วน VC++ ต้องเขียนโค้ดเองกว่า 80 บรรทัดกว่าจะได้หน้าต่างว่างๆมา ผมก็เลยไม่เข้าใจอย่างยิ่งว่าทำไมคนถึงยังชอบไปเขียน C++ กัน ประกอบกับเจอพวก C++ หัวแข็งมากมายใน forum ดังสมัยนั้น (thaidev.com) ซึ่งบางที task VC++ บางอย่างที่มาถามๆกันในเว็บบอร์ด ผม “Thinking in VB 6” พรืดเดียวก็ออกแล้ว ผมจึงไม่ชอบ C++ และเป็นผู้ ไม่สนับสนุน อย่างเป็นทางการ ตั้งแต่นั้น

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

แบบ 2 ผมเกลียด C บน Microcontroller มากๆครับ! เนื่องจากว่ามันเป็นภาษาที่ค่อนข้างพิกา… เอ้ย จำกัด ไม่สามารถใช้ประโยชน์ของ C ได้อย่างเต็มที่, call stack ก็มีขนาดจำกัด แล้วยังมี bahavior ที่คาดเดาไม่ได้อีกหลายอย่าง (ขนาดผมเขียน C แบบพื้นฐานมากๆแล้วนะ) ประกอบกับผมขาด resource (เวลา + ฮาร์ดแวร์ที่ใช้เบิร์นโปรแกรมลงบอร์ด) ทำให้สุดท้ายผลมันออกมาไม่ดี แล้วก็มีเรื่องไม่ดีมากตามมาอีกหลายอย่าง (เพื่อนสนิทรู้กัน - -‘’) ผมเลย “พาล” เกลียด C บน Micro แบบฝังใจไปเลยจนทุกวันนี้

เปรียบเทียบกับประสบการณ์เดียวกันบน Verilog (มันใช้งานละแบบกันน่ะ แค่เป็น hardware เหมือนกันเลยเอามาเทียบ) ผมประทับใจมากกก

แบบ 3 ถ้าจะมีคงเป็น PHP ซึ่งตอนนั้นผมขยับจาก ASP ไปเป็น ASP.NET พอดี สมัยนั้น ผมดูภาษามันแล้วรู้สึกว่าวิธีการ extends ภาษาด้วยการลง mod เพิ่มมันดูพิลึกๆ (มาก) แล้วก็ยังมีเรื่องต้อง compile คู่กับ MySQL lib ให้ตรงเวอร์ชันอีกไม่งั้นจะใช้ด้วยกันไม่ได้ ก็เลยไม่คิดจะศึกษาเพิ่มเติมนอกจากเขียนอะไรง่ายๆที่สมัยนั้นคนชอบเขียนกัน (Counter, Webboard, GuestBook) ซึ่งการไม่ศึกษา PHP ทำผมเสียโอกาสไปเยอะพอควร

เอาจริงๆผมไม่ค่อยเกลียดอะไรในระดับนี้เท่าไหร่นะ ด้วยเหตุผลที่ว่า ภาษาไหนที่มันไม่ดังผมก็จะไม่ค่อยสนใจ แล้วภาษาที่ดังขึ้นมาได้ก็แปลว่ามันผ่านกระบวนการ natural selection และมันโดนทดสอบด้วย “เวลา” มาระดับนึงแล้ว มันก็คงมีข้อดีของมันแหละ

ที่เห็นแล้วหงุดหงิดใจมากกว่าคือการเลือก tecnhology แล้วไม่ค่อยคำนึงความเป็นไปได้ + ความเหมาะสม ถ้าเป็นคนใกล้ตัวก็จะพยายามแนะนำและโน้มน้าว 555+ แต่ก็ยอมรับว่าบางทีเราก็ไม่ได้รู้ requirement เท่ากับเจ้าของงานเองก็อาจจะบอกอะไรไม่ได้มากเท่าเค้าเหมือนกัน

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

Tags:

Comments

1.
TAP TAP says:

รู้สึกว่าตัวเองไม่ได้เกลียดภาษาไหน แต่ไอ่การไม่ได้ไปศึกษาภาษานั้นๆ ผลก็ไม่ต่างจากคนที่เกลียดเลยแหะ

2.
อรุช อรุช says:

เห็นด้วยเรื่อง Verilog VS C แต่ไม่เห็นด้วยเรื่อง Natural Selection ของ Technology อะ เพราะบางทีของไม่ดังแต่ดี หรือของไม่ดีแต่ดัง นี่ก็มีให้เราเห็นกันถมเถไป

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

ว่าแต่กิมเอ็งนี่โอเครึเปล่า? แล้วเก็บค่าขั้นต่ำนี่กระทบมากน้อยแค่ไหน?

3.
ijemmy ijemmy says:

ฮาประโยคสุดท้ายอรุช

เข้าใจว่าคนจำนวนไม่น้อย เกลียดภาษาอื่นๆเพราะขี้เกียจเรียนรู้มากกว่า

พอเกลียดแล้ว ค่อยหาเหตุผลมาอธิบายต่อ เพื่อให้ตัวเองรู้สึกดีขึ้น

4.
m3rlinez m3rlinez says:

@อรุช >> เพราะบางทีของไม่ดังแต่ดี หรือของไม่ดีแต่ดัง
ถ้าเอาแบบดาร์วินจ๋ามากๆ ของดีแต่ไม่ดังมันต้องการเวลาเพิ่มเพื่อให้ดังน่ะ ส่วนของไม่ดีแต่ดังก็ต้องการเวลาทำให้มันตายไปเหมือนกัน ..

กิมเอ็งเพิ่มขั้นต่ำก็ฆ่ารายย่อยไปมหาศาลเลยน่ะ กำลังจะย้ายไป ktzmico (เขียนยากสัด) แต่ถ้าให้เดา .. เด๋วมันก็คงเพิ่มขั้นต่ำเหมือนกัน T_T

5.
กร กร says:

ผมว่ามันเป็นที่ความเชื่อนะ

ปล[0] หายไปนานเลยคุณ
ปล[1] shell script ดิวะ

6.
tot-anusak tot-anusak says:

คิดถึง อ.ประภาส
"ผมท้าให้คุณเขียนด้วย C ผมเขียนด้วย Assembly แข่งขัน ผมทำเสร็จก่อน"

เชร้ดดดดด.....

7.
อรุช อรุช says:

อ.เค้าเคยพูดงั้นเลยเรอะ เจ๋งสุดยอด

Add comment


(Will show your Gravatar icon)

biuquote
  • Comment
  • Preview
Loading