By Arnon Puitrakul - 06 มกราคม 2016
ในปัจจุบัน ก็คงปฏิเสธไม่ได้ว่า ไม่มีใครที่ไม่รู้จักภาษายอดนิยมอย่าง Java เพราะตอนนี้เป็นภาษาที่ฮิตอยู่อันดับที่ 2 รองจาก Python กันเลยทีเดียว และหลาย ๆ คนก็อาจจะเคยเรียนมาบ้าง หรือกำลังใช้งานมันอย่างชำชองอย่างรุนแรง แต่พอไปถามคนบางคนก็ไม่รู้จริง ๆ ว่า การทำงานของมัน หรือ Concept เป็นอย่างไร วันนี้เราจะมาดูกันว่า Java แท้จริงแล้วมันคืออะไรกันแน่
ถ้าใครกำลังคิดว่ามันคือ กาแฟ ก็เออใช่ !!! จะบ้าเหรอ พูดถึง Java ในฝั่งของคอมพิวเตอร์ต่างหากเล่า ถ้ามีคนมาถามว่า Java คืออะไร เราจะตอบมันว่ายังไงดี ? จริง ๆ แล้วคำตอบก็ขึ้นอยู่กับว่า จะตอบว่ามันเป็นอะไรดี เพราะว่าตัว Java จริง ๆ แล้วมันไม่ใช่แค่ Programming Language เท่านั้นนะ เพราะว่ามันก็ยังเป็น Platform เหมือนกับ OS ต่าง ๆ นั่นแหละ
มาดูกันที่สิ่งแรกที่เราจะตอบไปก่อนว่า Java คืออะไร ? อ่อ มันก็คือ Programming Language ไง แล้วก็เป็นภาษาที่รองรับการเขียนโปรแกรมเชิงวัตถุอย่างเต็มรูปแบบด้วยนะ (Object Oriented Programming) และเมื่อเทียบกับ C++ ที่เป็นภาษาที่รองรับการเขียนโปรแกรมเชิงวัตถุเหมือนกันแล้ว Code โปรแกรมเดียวกัน เมื่อเขียนด้วย Java จะพบว่า มันสั้นกว่า กระชับกว่า และอ่านง่ายกว่า C++ เยอะเลย ทั้งนี้จากประสบการณ์คิดว่า เป็นเพราะการใช้ภาษาที่ค่อนข้าง Friendly กับมนุษย์คนเขียนอย่างเรา ๆ มากกว่า
ตัว Java อย่างที่บอกนอกจากที่มันจะเป็น Programming Language แล้ว มันก็ยังเป็น Platform ด้วย เพราะฉะนั้น เราสามารถเขียนโปรแกรมด้วยภาษา Java เพียงครั้งเดียว แต่สามารถเอาไป Execute ที่ไหนก็ได้ที่ Install ตัว Java Platform อยู่ (Platform Independent) อย่างที่สโลแกนบอกคือ Write Once Run Anywhere ส่วนจะทำงานยังไงนั้น เดี๋ยวไปดูต่อเรื่องของ Platform ในหัวข้อถัดไป
ข้อดีที่ทำให้นักพัฒนาส่วนใหญ่เลือกใช้ Java ในการพัฒนาโปรแกรมมีอยู่หลายข้อเหมือนกัน เช่น ฟรี อันนี้สำคัญมากเลยนะ เมื่อเราไปเทียบกับ .NET ที่จำกัดวงที่ใช้ได้เฉพาะใน Windows Platform เท่านั้น ทำให้มีค่าใช้จ่ายในเรื่องของ License ของ Windows และ Tool ในการพัฒนาและบำรุงรักษาอีก ฉะนั้นการใช้ Platform ที่ไม่มีค่าใช้จ่ายทำให้องค์กรสามารถลดต้นทุนไปได้เยอะพอสมควรเลย
ส่วนอีกเหตุผลนึงเลยคือ มี Library ให้เราเลือกใช้เยอะมาก นอกจากจะเป็น Library ที่ตัวภาษา Java จัดมาให้แล้วก็ยังสามารถไปหาโหลด Library จากนักพัฒนาคนอื่นได้อีกมากมายจนเป็น Community กันเลยทีเดียว
มีมือใหม่หลาย ๆ คนไม่รู้ว่า ไปได้ยินมาจากไหนเหมือนกันว่า Java = OOP ขอให้ทำความเข้าใจกันใหม่นะว่า Java != OOP นะ Java Programming Language คือภาษาที่ใช้ Concept ของ OOP เข้ามาช่วยให้เราพัฒนาโปรแกรมได้ง่ายขึ้นเฉย ๆ นะ คนล่ะเรื่องเลย
ทีนี้เรามาถึงเรื่องของ Platform ของตัว Java กันบ้าง มันคือเหมือนสภาพแวดล้อมที่ทำให้เราสามารถ Execute โปรแกรมที่เขียนจากภาษา Java ได้นั่นเอง ประกอบด้วย 2 ส่วนคือ Java Visual Mechine (JVM) และ Runtime Library โดยทาง Sun ที่เป็นเจ้าของ Java ได้ทำการกำหนด Platform ไว้ 3 Edition ด้วยกัน
ในการที่เราจะได้โปรแกรมที่เขียนจากภาษา Java สักตัวนึง เราจะต้องจับ Programming Language มาทำงานร่วมกับ Java Platform ก่อนอื่น เราก็ทำการเขียนโปรแกรมด้วยภาษา Java ตามปกติ จากนั้นเราก็สั่ง Compile ตัว Javac (Java Compiler) จะทำการแปลงไฟล์ .java ที่เป็น Source Code เป็น .class ที่เป็น Byte Code และสุดท้าย เราก็เอา Byte Code ที่เป็น .class ไป Execute บนเครื่องไหนก็ได้ ที่ทำการลง Java Platform ไว้ได้ โดยเราจะป้อนมันลงไปใน Java Visual Mechine (JVM) เพื่อ Execute นั่นเอง
แตกต่างกับหลาย ๆ ภาษาที่เมื่อเรา Compile มันจะแปลงจาก Source Code ให้กลายเป็น Mechine Language หรือ ภาษาเครื่อง ที่เครื่องสามารถ Execute ได้ทันที ทำให้เวลาเราไป Clone Git โปรแกรมอะไรมาใช้ หรือเอาโปรแกรมของคนอื่นมาใช้ เราก็ต้องสั่ง Compile มันก่อนถึงจะ Execute ได้ แต่เมื่อเทียบกับโปรแกรมที่เขียนด้วย Java เราสามารถ Execute ได้เลย ไม่ต้องมานั่ง Compile ก่อน
แต่การที่เราต้อง Execute โปรแกรมของเราผ่าน JVM เสมอ ทำให้มันมีข้อด้อยจากการพัฒนาโปรแกรมภาษาอื่นนั่นคือ Performance แต่ถามว่ามันน่างุดหงิดขนาดนั้นมั้ย ? ตอบเลยว่า ไม่เลย ถ้าเราไม่ได้พัฒนาโปรแกรมใหญ่ขนาดนั้นมันก็ไม่ค่อยเห็นผลเท่าไหร่
ผมก็หวังว่าผู้ที่อ่านกำลังอ่านมาถึงข้างล่างตรงนี้คงจะได้รู้จัก Programming Language ยอดนิยมอย่าง Java มากขึ้น และตอบคำถามบ้างคำถามที่หลาย ๆ คนถามมาได้ด้วย
AI เข้ามามีบทบาทในการทำงานสำหรับฝั่ง Software Developer ค่อนข้างมาก วันนี้เราจะมาเล่าวิธีการที่ทำให้เราสาารถใช้งาน Feature พวกนี้ได้แบบฟรี ๆ ในเครื่องของเรากันด้วย Visual Studio Code และ Continue กัน...
เมื่อหลายวันก่อน เราไปทำงานแล้วใช้ Terminal แบบปีศาจมาก ๆ จนเพื่อนถามว่า เราทำยังไงถึงสามารถสลับ Terminal Session ไปมาได้แบบบ้าคลั่งขนาดนั้น เบื้องหลังของผมน่ะเหรอกัปตัน ผมใช้ tmux ยังไงละ วันนี้เราจะมาแชร์ให้อ่านกันว่า มันเอามาใช้งานจริงได้อย่างไร เป็น Beginner Guide สำหรับคนที่อยากลองละกัน...
Firewall ถือว่าเป็นเครื่องมือในการป้องกันภัยขั้นพื้นฐานที่ปัจจุบันใคร ๆ ก็ติดตั้งใช้งานกันอยู่แล้ว แต่หากเรากำลังใช้ Ubuntu อยู่ จริง ๆ แล้วเขามี Firewall มาให้เราใช้งานได้เลยนะ มันชื่อว่า UFW วันนี้เราจะมาทำความรู้จัก และทดลองตั้ง Rule สำหรับการดักจับการเชื่อมต่อที่ไม่เกี่ยวข้องกันดีกว่า...
Obsidian เป็นโปรแกรมสำหรับการจด Note ที่เรียกว่า สารพัดประโยชน์มาก ๆ เราสามารถเอามาทำอะไรได้เยอะมาก ๆ หนึ่งในสิ่งที่เราเอามาทำคือ นำมาใช้เป็นระบบสำหรับการจัดการ Todo List ในแต่ละวันของเรา ทำอะไรบ้าง วันนี้เราจะมาเล่าให้อ่านกันว่า เราจัดการะบบอย่างไร...