<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.blognone.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>bow_der_kleine&#039;s blog</title>
 <link>http://www.blognone.com/blog/bowderkleine</link>
 <description>Blognone is Thai, Slashdot-liked, tech news site.</description>
 <language>en</language>
<item>
 <title>การดำเนินทำธุรกิจด้วยโอเพนซอร์ส</title>
 <link>http://www.blognone.com/news/26208/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%94%E0%B8%B3%E0%B9%80%E0%B8%99%E0%B8%B4%E0%B8%99%E0%B8%97%E0%B8%B3%E0%B8%98%E0%B8%B8%E0%B8%A3%E0%B8%81%E0%B8%B4%E0%B8%88%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%E0%B9%82%E0%B8%AD%E0%B9%80%E0%B8%9E%E0%B8%99%E0%B8%8B%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%AA</link>
 <description>&lt;p&gt;เหมือนจะกลายเป็นธรรมเนียมปฏิบัติไปแล้ว เมื่อมีข่าวเกี่ยวกับความขัดแย้งระหว่างซอฟแวร์ที่ฝั่ง โอเพนซอร์ส (ต่อไปจะเรียก OSS) กับฝั่ง Proprietary Software (ต่อไปจะเรียก PS) ก็จะมีการถกเถียง แลกเปลี่ยนประเด็นและความคิดเห็นกันอย่างกว้างขวาง ซึ่งส่วนมากก็มักจะเป็นประเด็นเดิม ๆ หัวข้อเดิม ๆ ที่ผมอ่านมาตั้งแต่เริ่มสนใจพัฒนาซอฟแวร์ใหม่ ๆ (ราว ๆ ปี 2002 เห็นจะได้)&lt;/p&gt;
&lt;p&gt;จากการลงข่าว&amp;nbsp;&lt;a href=&quot;http://www.blognone.com/news/26164&quot;&gt;WikiLeaks: ไมโครซอฟท์และ BSA กังวลต่อแนวทางโอเพนซอร์สของไทย&lt;/a&gt;&amp;nbsp;ใน blognone และก็เหมือนทุก ๆ ครั้งที่ผ่านมา ก็จะมีการแลกเปลี่ยนความคิดเห็นกันอย่างกว้างขวาง ซึ่งพอจะสรุปเป็นความคิดเห็นมีอยู่ 2 ประเด็นหลัก ๆ ดังนี้&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;หมายเหตุ&lt;/strong&gt; บทความนี้ดัดแปลงจากบทความ &lt;a href=&quot;http://www.ximplesoft.com/blog_edit/91&quot;&gt;Business Model for Open Source Software&lt;/a&gt; เผยแพร่ที่ &lt;a href=&quot;http://www.ximplesoft.com/&quot;&gt;XimpleSoft&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
		&lt;strong&gt;quality &amp;amp; usability&lt;/strong&gt; คนที่สนับสนุน PS มักจะตั้งป้อมไว้ว่า OSS ส่วนมากคุณภาพต่ำ ไม่เสถียร ไม่สมบูรณ์ ใช้ยาก มีฟังก์ชันต่าง ๆ ไม่ครบส่วนคนที่สนับสนุน OSS มักยืนยันว่าไม่จริง เพราะเราก็ใช้อยู่ ที่คุณว่าใช้ยาก เพราะคุณไม่คิดจะเรียนรู้ต่างหาก
	&lt;/li&gt;
&lt;li&gt;
		&lt;strong&gt;การทำธุรกิจ&lt;/strong&gt; คนที่สนับสนุน PS มักจะคิดว่า OSS ไม่เหมาะกับการทำธุรกิจ เพราะพัฒนาซอฟต์แวร์แล้วแจกฟรี บริษัทจะหารายได้จากไหน&amp;nbsp;ส่วนคนที่สนับสนุน OSS ก็จะบอกว่า ไม่จริง เพราะหลาย ๆ บริษัทก็สามารถทำกำไรได้จาก OSS
	&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;สำหรับข้อมูลในส่วนของผู้ใช้ ที่น่าสนใจมากอีกแหล่งคือ&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;http://thep.blogspot.com/2009/10/romance-of-three-software-kingdoms.html&quot;&gt;Romance of the Three (Software) Kingdoms&lt;/a&gt;&amp;nbsp;เป็นการนำเสนอภาพรวมของคนใช้ซอฟต์แวร์ 3 กลุ่มคือ OSS, PS และ ละเมิดลิขสิทธิ์&lt;/p&gt;
&lt;p&gt;ขอออกตัวไว้ก่อนเลยครับว่า ผมเป็นคนสนับสนุน OSS สำหรับในเรื่อง usability ที่คนที่ใช้งาน PS พูดถึง ผมเห็นด้วยและไม่เห็นด้วยบางส่วน เพราะซอฟต์แวร์หลาย ๆ ตัวที่เป็น OSS แล้วมี usability ที่ต่ำจริง ๆ เช่น &lt;a target=&quot;_blank&quot; href=&quot;http://www.gimp.org/&quot;&gt;GIMP&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;http://www.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt;&amp;nbsp;(ดันสำคัญทั้งสองตัวเสียด้วยสิ) หรือไม่เสถียรจริง ๆ เช่น &lt;a target=&quot;_blank&quot; href=&quot;http://www.inkscape.org&quot;&gt;Inkscape&lt;/a&gt;&amp;nbsp;แต่ก็มี OSS อีกจำนวนหนึ่ง ซึ่งมีคุณภาพเทียบเท่า PS หรือบางตัวอาจดีกว่าด้วยซ้ำเช่น FireFox, Chromium, Drupal, Apache, PHP, MySQL, PostgreSQL (ทำไมมันเกี่ยวกับเว็บไซท์หมดเลยหว่า?) เรื่องนี้ผมยืนยันว่า หากจำเป็นต้องใช้งาน PS โดยเฉพาะคนที่ใช้ PS เป็นเครื่องมือทำมาหากิน ก็จำเป็นต้องซื้อ อย่าละเมิดลิขสิทธิ์&lt;/p&gt;
&lt;p&gt;มาเข้าถึงประเด็นสำคัญคือ Business Model หรือวิธีการทำธุรกิจด้วย OSS ผมไม่เห็นด้วยแน่นอนว่า OSS ไม่เหมาะกับการทำธุรกิจ โดยดูได้จากตัวอย่างบริษัทไอทีมากมายทั่วโลก ที่ใช้ OSS เป็นส่วนขับเคลื่อน มากบ้าง น้อยบ้าง ตามแต่นโยบายของแต่ละที่ ซึ่งผมขอแยกลักษณะการทำธุรกิจที่เกี่ยวข้องกับ OSS ดังนี้&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OSS ในฐานะเครื่องมือ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;บริษัทไอทีจำนวนมากจะรู้ตัวหรือไม่รู้ตัว ได้ใช้ OSS เป็นเครื่องมือในการขับเคลื่อนธุรกิจของบริษัท หากจะให้ยกตัวอย่างยักษ์ใหญ่ก็มี&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Facebook ที่ Platform ของ Facebook เกือบทั้งหมดสร้างขึ้นจาก OSS (PHP, Cassandra, HipHop) แล้วมาปรับแต่งบางส่วนให้เหมาะสมกับการใช้งาน&lt;/li&gt;
&lt;li&gt;Twitter คล้าย ๆ Facebook&lt;/li&gt;
&lt;li&gt;Apple ระบบปฏิบัติการ &lt;a target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Mac_OS_X&quot;&gt;Mac OS X&lt;/a&gt; มีรากฐานมาจาก &lt;a target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/FreeBSD&quot;&gt;FreeBSD&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;และยังนับรวมถึงบริษัทที่ใช้ PHP, Java, MySQL, Linux, Apache, Drupal, Joomla, etc. เป็นเครื่องมือในการทำธุรกิจ หากพิจารณาบริษัทไอทีที่ทำงานเกี่ยวกับ web-based ผมไม่มีตัวเลขที่ชัดเจน แต่เดาว่ามีบริษัทเกินครึ่ง ที่มีส่วนเกี่ยวข้องกับ OSS ในฐานะเครื่องมือ ข้อดีของการใช้ OSS ในฐานะเครื่องมือคือ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ประหยัดงบประมาณ อันนี้ชัดเจนตรงตัว&lt;/li&gt;
&lt;li&gt;อิสรภาพในการทำงาน ประเด็นนี้เป็นประเด็นที่สำคัญมาก แต่หลายคนมองข้าม ลองนึกดูว่าเราต้องทำงานด้วย PS ที่ต้องซื้อลิขสิทธิ์ และติดตั้งได้บนจำนวนเครื่องที่จำกัด หากวันหนึ่ง เราต้องทำงานด้วยเครื่องอีกเครื่องหนึ่ง (เช่น ทำงานนอกสถานที่) ซึ่งไม่ได้ลงเครื่องมือที่เราใช้ เราจะทำอย่างไร แต่หากเราใช้ OSS เป็นเครื่องมือ เพียงแค่มีอินเทอร์เนต เราก็สามารถทำงานได้บนทุกเครื่องที่เราต้องการ&lt;/li&gt;
&lt;li&gt;การสร้างบุคลากร หากเครื่องมือที่ใช้ในบริษัท เป็นเครื่องมือที่หาง่าย ราคาถูก การสร้างบุคลากรก็ง่ายขึ้นด้วย เพราะเป็นการลดความเสียงในการลงทุนเพื่อการศึกษา ดังนั้น จะเห็นได้ว่าบริษัท PS จำนวนมาก พยายามออกซอฟต์แวร์เวอร์ชันฟรี หรือราคาถูกเพื่อการศึกษา เพื่อที่จะได้สร้างบุคลากรสำหรับซอฟต์แวร์ของตนเอง&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ซึ่งแน่นอนว่าหน้าที่ของ OSS ในลักษณะนี้ เราจะคาดหวังให้บริษัทต่าง ๆ contribute หรือมีส่วนร่วมในงานบางอย่าง เพื่อกลับไปสู่โครงการ OSS คงไม่ได้ แต่ส่วนมากแล้วบริษัทต่าง ๆ จะมีส่วนร่วมกับโครงการ OSS เพื่อตอบสนองความต้องการของตัวเอง เพื่อพัฒนา OSS ที่ใช้เป็นเครื่องมือ ในส่วนที่ยังตอบโจทย์ของบริษัทได้ไม่ดีนัก การมีส่วนร่วมลักษณะนี้ถือว่าเป็นการสร้างผลประโยชน์ต่างตอบแทนที่ดีมากวิธีหนึ่ง&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OSS ในฐานะสินค้า&lt;/strong&gt;
&lt;/p&gt;&lt;p&gt;การทำธุรกิจลักษณะนี้หากเทียบอัตราส่วนแล้วถือว่าน้อย เมื่อเทียบกับ OSS ในฐานะเครื่องมือ สาเหตุง่าย ๆ ก็เพราะว่า หากมี OSS ที่ฟรีอยู่แล้ว ใครจะมาเสียเงินซื้อซอฟต์แวร์ แต่ก็มี OSS จำนวนหนึ่ง ที่มีสัญญาอนุญาตในลักษณะ Dual Licensing กล่าวคือ จะมีการแยกแยะระหว่าง การนำซอฟต์แวร์ไปใช้งานเชิงพาณิชย์ และการนำซอฟต์แวร์ไปใช้ในลักษณะอื่น ๆ ซึ่งบริษัทผู้ผลิตซอฟต์แวร์ก็จะเก็บเงินจากหน่วยงานที่นำซอฟต์แวร์ไปใช้งานเชิงพาณิชย์&lt;/p&gt;
&lt;p&gt;หรืออีกลักษณะที่มีการทำกันค่อนมากคือ การแยกซอฟต์แวร์ออกเป็น 2 เวอร์ชัน คือ เวอร์ชันที่เป็น PS และเวอร์ชันที่เป็น OSS (แตกต่างจาก&amp;nbsp;Dual Licensing ตรงที่&amp;nbsp;Dual Licensing มีแค่เวอร์ชันเดียว)&lt;/p&gt;
&lt;p&gt;คำถามคือ ทำไมพัฒนาซอฟต์แวร์เป็นสินค้าโดยตรง (PS) ทำไมถึงต้องทำควบคู่กัน (OSS + PS) แนวคิดการทำธุรกิจในลักษณะนี้คือ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;เป็นการทำการตลาดให้กับซอฟต์แวร์ ด้วยการให้คนได้นำไปใช้ในลักษณะ OSS&lt;/li&gt;
&lt;li&gt;เป็นการเพิ่มความน่าเชื่อถือให้กับซอฟต์แวร์ จากปริมาณผู้ใช้ซอฟต์แวร์ผ่าน OSS และเป็นการเพิ่มความมั่นใจให้กับลูกค้าว่า ถึงแม้วันหนึ่งบริษัทผู้ผลิตอาจอยู่ไม่รอด แต่ตัวซอฟต์แวร์ยังคงอยู่รอด ด้วยโมเดลของ OSS&lt;/li&gt;
&lt;li&gt;เป็นการนำการมีส่วนร่วมของชุมชนมาใช้ให้เป็นประโยชน์ ในหลาย ๆ โครงการ การมีส่วนร่วมจากชุมชน OSS อาจมากกว่าส่วนที่บริษัทพัฒนาเองด้วยซ้ำ ซึ่งเป็นสิ่งที่ไม่สามารถทำได้เสมอไป ต้องอาศัยการผลักดันเรื่องชุมชน OSS ในหลาย ๆ จุด&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;OSS ในฐานะการสร้างคู่แข่งทางธุรกิจเพื่อความเชื่อมั่น&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;อาจฟังดูแปลก ๆ แต่ลองนึกดูครับว่า หากเราสร้างเทคโนโลยีใหม่ขึ้นมาหนึ่งอย่าง และเราเป็นบริษัทหน้าใหม่ สิ่งที่ลูกค้าจะถามคือ &quot;เราจะมั่นใจในเทคโนโลยีของคุณได้อย่างไร?&quot; แน่นอน เราสามารถสร้างความเชื่อมั่นในลักษณะอื่น ๆ ได้ แต่ทั้งนี้ การมีคู่แข่งทางธุรกิจ ที่ทำงานลักษณะเดียวกัน จะเพิ่มความมั่นใจให้กับลูกค้าได้อีกระดับหนึ่ง เพราะการที่มีบริษัทอื่น ๆ นอกเหนือจากบริษัทผู้ผลิตสนใจในเทคโนโลยีดังกล่าว แสดงให้เห็นว่าเทคโนโลยีได้ผ่านการตรวจสอบจากบริษัทที่นำไปใช้แล้วระดับนึง&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OSS ในฐานะใบเบิกทาง&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ในหลาย ๆ กรณี OSS ไม่สามารถสร้างผลประโยชน์ทางธุรกิจด้วยตัวมันเองได้ แต่สามารถสร้างผลประโยชน์ทางธุรกิจให้กับผู้ผลิต ด้วยสภาพแวดล้อมอื่น ๆ ที่อยู่รอบ ๆ ตัวมันได้ โดยใช้ OSS เป็นตัวเบิกทาง โดยธุรกิจแวดล้อม OSS อาจมีความเป็นไปได้ดังนี้&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ขายบริการหลังการขาย&lt;/strong&gt; เป็นการทำธุรกิจที่เป็นที่นิยมใช้พอสมควร เพราะมีบริษัทจำนวนมาก ที่สนใจอยากใช้ OSS แต่ไม่สามารถหาคนให้บริการหลังการขาย หรือการติดตั้งได้ ซึ่งตรงนี้จะมีผลกับการตัดสินใจของผู้ใช้อย่างมาก (โดยเฉพาะหากผู้ใช้สามารถหาคนรับผิดชอบได้ เมื่อซอฟต์แวร์มีปัญหา) และโดยส่วนมากแล้ว ผู้ใช้ยินดีที่จะจ่ายเงินในส่วนนี้ ในฐานะผู้ผลิต เราสามารถขายสินค้าได้ง่ายขึ้น (เพราะราคาเป็น 0) ประหยัดค่าใช้จ่ายในการผลิตลงไปได้ หากสามารถสร้างชุมชนมามีส่วนร่วมในการพัฒนาซอฟต์แวร์ที่เราผลิตได้ การดำเนินการลักษณะนี้ ถือว่าได้ผลประโยชน์ร่วมกันทุกฝ่าย (ผู้ซื้อ ซื้อของถูก, ชุมชนได้ใช้ของฟรี ปรับแต่งซอฟต์แวร์ได้ตามต้องการ) และเป็นแนวทางที่น่าสนใจอย่างมาก&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ขายส่วนเสริม&lt;/strong&gt; การทำธุรกิจนี้เป็นที่นิยมอย่างมากสำหรับงานที่เกี่ยวข้องกับเว็บไซท์ ที่ใช้ CMS เป็นฐานในการสร้างเว็บไซท์ โดยตัว CMS เองเป็น OSS แต่บริษัทสามารถขายส่วนเสริมให้กับลูกค้าได้ หรือพัฒนาส่วนเสริมตามความต้องการของลูกค้า ในส่วนนี้จะสามารถลดค่าใช้จ่ายได้ทั้งฝั่งผู้ซื้อ และผู้ผลิต เพราะไม่ต้องพัฒนาซอฟต์แวร์พื้นฐานใหม่ทั้งหมด&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ขายสิ่งแวดล้อมอื่น ๆ&lt;/strong&gt; ที่อยู่รอบ ๆ ตัวอย่างที่ดีที่สุดของการทำธุรกิจนี้คือ Android ที่ Google ไม่ได้มีรายได้จากการขาย Android แต่ Google &amp;nbsp;มีรายได้จากการโฆษณาผ่านการใช้ Android แน่นอนว่า การทำธุรกิจลักษณะนี้ จะเน้นการโฆษณาเป็นหลัก แต่ทั้งนี้ ก็มีการสร้างรายได้ด้วยวิธีอื่น ๆ ได้เช่นกัน&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;บทสรุป&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;จะเห็นได้ว่าการทำธุรกิจด้วย OSS มีให้เลือกใช้มากมายหลายลักษณะ และหลาย ๆ อย่างก็ผ่านการพิสูจน์มานับครั้งไม่ถ้วน ว่าได้ผล แต่ทั้งนี้การทำธุรกิจทุกรูปแบบที่เขียนถึง เป็นรูปแบบการทำธุรกิจที่คนทำธุรกิจโดยทั่วไปไม่คุ้นชิน สิ่งที่คนทำธุรกิจคุ้นชินคือ การมองซอฟต์แวร์เป็นสินค้าตัวหนึ่ง ซื้อมา ขายไป ซึ่งลักษณะการทำธุรกิจของ OSS มีความซับซ้อนกว่านั้น ดังนั้น การทำธุรกิจที่เกี่ยวข้องกับ OSS ต้องมีการปรับกระบวนการคิดพอสมควร&lt;/p&gt;</description>
 <comments>http://www.blognone.com/news/26208/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%94%E0%B8%B3%E0%B9%80%E0%B8%99%E0%B8%B4%E0%B8%99%E0%B8%97%E0%B8%B3%E0%B8%98%E0%B8%B8%E0%B8%A3%E0%B8%81%E0%B8%B4%E0%B8%88%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%E0%B9%82%E0%B8%AD%E0%B9%80%E0%B8%9E%E0%B8%99%E0%B8%8B%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%AA#comments</comments>
 <category domain="http://www.blognone.com/special">Special Report</category>
 <category domain="http://www.blognone.com/topics/depth">In-Depth</category>
 <category domain="http://www.blognone.com/topics/open-source">Open Source</category>
 <pubDate>Wed, 07 Sep 2011 09:53:49 +0000</pubDate>
 <dc:creator>bow_der_kleine</dc:creator>
 <guid isPermaLink="false">26208 at http://www.blognone.com</guid>
</item>
<item>
 <title>Motorola MILESTONE จะได้อัพเกรดเป็น Froyo</title>
 <link>http://www.blognone.com/news/17804/motorola-milestone-%E0%B8%88%E0%B8%B0%E0%B9%84%E0%B8%94%E0%B9%89%E0%B8%AD%E0%B8%B1%E0%B8%9E%E0%B9%80%E0%B8%81%E0%B8%A3%E0%B8%94%E0%B9%80%E0%B8%9B%E0%B9%87%E0%B8%99-froyo</link>
 <description>&lt;p&gt;หลังจากที่ผู้ใช้ Motorola MILESTONE ไม่มั่นใจกับการอัพเกรด Android เป็นเวอร์ชัน 2.2 หรือที่รู้จักกันในนาม Froyo มาเป็นเวลาสักพัก จนหลายคนเริ่มหาทางออกด้วยการแก้ไข ROM ด้วยตัวเอง ตอนนี้ผู้ใช้ MILESTONE เริ่มมีความหวังแล้วว่าจะได้อัพเกรดเป็น Froyo อย่างเป็นทางการ โดยเปอร์เรเตอร์รายแรกที่ออกมายืนยันข่าวนี้แล้วคือ O2 Germany โดยจะเริ่มเปิดให้ผู้ใช้งานเริ่มอัพเกรดกันในเดือนกันยายน&lt;/p&gt;
&lt;p&gt;อย่างไรก็ตามข่าวไม่ได้พูดถึงฟีเจอร์ Wi-Fi Tethering แต่เพียงแค่การอัพเกรดเป็น Froyo ก็ทำให้ผู้ใช้จำนวนมากสบายใจได้ในระดับนึง&lt;/p&gt;
&lt;p&gt;ผมเห็นตรงกับแหล่งข่าวว่าเป็นที่น่าเสียใจที่ไม่ได้ยินข่าวนี้จากทาง Motorola โดยตรง&lt;/p&gt;
&lt;p&gt;ที่มา - &lt;a href=&quot;http://www.gsmarena.com/motorola_milestone_to_finally_get_to_taste_froyo_this_september-news-1856.php&quot;&gt;GSMArena&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.blognone.com/news/17804/motorola-milestone-%E0%B8%88%E0%B8%B0%E0%B9%84%E0%B8%94%E0%B9%89%E0%B8%AD%E0%B8%B1%E0%B8%9E%E0%B9%80%E0%B8%81%E0%B8%A3%E0%B8%94%E0%B9%80%E0%B8%9B%E0%B9%87%E0%B8%99-froyo#comments</comments>
 <category domain="http://www.blognone.com/topics/android">Android</category>
 <category domain="http://www.blognone.com/topics/motorola">Motorola</category>
 <pubDate>Wed, 04 Aug 2010 00:08:48 +0000</pubDate>
 <dc:creator>bow_der_kleine</dc:creator>
 <guid isPermaLink="false">17804 at http://www.blognone.com</guid>
</item>
<item>
 <title>Apple Apple Apple !</title>
 <link>http://www.blognone.com/news/11454/apple-apple-apple</link>
 <description>&lt;p&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/883/apfel.jpeg&quot; border=&quot;0&quot; alt=&quot;image&quot; hspace=&quot;10&quot; vspace=&quot;10&quot; width=&quot;114&quot; height=&quot;114&quot; align=&quot;left&quot; /&gt;สำหรับคนที่อ่านข่าวสารไอทีผ่านทาง &lt;a href=&quot;http://www.blognone.com/&quot;&gt;Blognone&lt;/a&gt;  ช่วงนี้อาจสังเกตได้ว่า จำนวนข่าวต่อวันของ Blognone ลดลงอย่างเห็นได้ชัด (ส่วนจำนวนเนื้อหาใหม่ ๆ ของ BioLawCom ต่อเดือนนั้นลดฮวบมานานแล้ว) ทีแรกผมก็นึกว่า เป็นเพราะช่วงนี้เป็นช่วงสงกรานต์ ทีมเขียนข่าวลาพักร้อน เลยไม่ค่อยได้เขียนกัน แต่แล้ว mk หนึ่งในผู้ก่อตั้ง และผู้เขียนหลัก ก็เฉลยความจริงออกมาว่า ขอบายเลิกเขียนข่าวไปสักพัก &lt;a href=&quot;http://www.isriya.com/node/2563/escape-from-mac-zealots&quot;&gt;เพราะเบื่อสาวก Apple&lt;/a&gt;  จึงทำให้จำนวนข่าวใน Blognone ลดลงด้วยประการฉะนี้แล&lt;/p&gt;
&lt;p&gt;ที่มา : &lt;a href=&quot;http://www.biolawcom.de/blog/883/Apple-Apple-Apple.html&quot;&gt;BioLawCom.De&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;สงครามค่ายไอที เป็นเรื่องที่มีให้เห็นตลอดเวลา ใหญ่บ้าง เล็กบ้าง แล้วแต่กาละเทศะ มีตั้งแต่สงครามระบบปฏิบัติการ Windows vs. Linux vs. Mac OS X สงครามภาษาเขียนโปรแกรม Java vs. Python vs. Ruby vs. C# สงครามฐานข้อมูล MySQL vs. PostgrSQL vs. MS SQL vs. Oracle สงคราม Open Source vs.&amp;nbsp; Proprietary สงคราม ค่ายหนัง ค่ายเพลง vs. BitTorrent สงคราม Search Engine etc. นับกันไม่หวาดไม่ไหว&lt;/p&gt;
&lt;p&gt;โดยส่วนตัว ผมชอบอ่านอะไรแบบนี้ ไม่ใช่เป็นเพราะผมซาดิสต์เท่านั้น แต่ผมรู้สึกว่า หากถกกันเรื่องพวกนี้ แล้วยกเหตุ และปัจจัยมาฟัดมาเหวี่ยงกัน นากจากจะได้ความเพลิดเพลินในการอ่านแล้ว ยังได้ความรู้และมุมมองใหม่ ๆ อีกด้วย (บางครั้งมันนำไปสู่ innovation) แต่ส่วนมากแล้ว กรอบในการปะทะคารมมักไม่ได้หยุดอยู่เพียงนั้น มันมักจะลามปาม ออกนอกลู่นอกทาง เกิดการกระทบกระแทกเสียดสี บางคนถึงขนาดละทิ้งหลักแห่งเหตุผล ไปลงเอากับความเชื่อ เข้าขั้นไสยศาสตร์ก็มีไม่น้อย ใช่ว่าอาการผีเข้าแนว ๆ นี้จะไม่เคยเกิดขึ้นกับผม มันไม่เคยละเว้นใคร ผมเองก็ต้องคอยระวังเนื้อ ระวังตัว ระวังปาก ระวังคำอยู่บ้างเหมือนกัน&lt;/p&gt;
&lt;p&gt;แต่เราจะรู้ได้อย่างไร ว่าเรากำลังถูกไสยศาสตร์เข้าครอบงำ ?&lt;/p&gt;
&lt;p&gt;หลวงพ่อ หรือหมอผีก็บอกเราไม่ได้ครับ เราต้องตรวจสอบตัวเอง เมื่อไรที่เรารู้สึกว่า สิ่งที่เราชอบไม่มีข้อเสียอะไรเลยแม้แต่น้อย ทุกอย่างดีไปหมด นั่นแหละ คุณกำลังถูกไสยศาสตร์เข้าครอบงำ และกำลังกลายเป็นสาวกของอะไรบางอย่าง ทุกอย่างในโลกนี้ ย่อมมีข้อดีและข้อเสียในตัวของมันเอง อยู่ที่ว่าข้อดีกับข้อเสียเหล่านั้น มันเหมาะสมกับสถานการณ์ที่เราจะนำมันมาใช้งานหรือไม่&lt;/p&gt;
&lt;p&gt;แต่ระยะหลังมานี้ ในโลกไซเบอร์ของคนไอที มีเหล่าสาวกของ Apple ปรากฏกายให้เห็นบ่อยครั้ง และบ่อยขึ้นเรื่อย ๆ จนสร้างความอึดอัดใจให้กับใครหลาย ๆ คน (รวมถึงกรณีตัวอย่างที่ยกมา คือ คุณ mk) ที่น่าสนใจคือ ทำไมสาวก Apple จึงมีมากขึ้นเรื่อย ๆ และอะไรที่สาวก Apple สร้างความอึดอัดใจให้กับคนอื่น&lt;/p&gt;
&lt;p&gt;ทำไมสาวก Apple จึงมีมากขึ้น ก็เพราะมีคนใช้ Apple กันมากขึ้น แล้วทำไมคนใช้ Apple กันมากขึ้น ตอบแบบกำปั้นทุบดิน คือ การตลาดของ Apple ดี ยุทธวิธีการขายของ Apple นั้นง่าย ๆ ครับ ทำสินค้าของตัวเองให้เป็นแฟชั่น มากกว่าจะเป็นสินค้าไอที ทำให้คนใช้รู้สึกว่า การใช้ Apple มันเท่ห์ ความเทห์ของ Apple อยู่ที่ดีไซน์อันโดดเด่น และการออกแบบตามหลักการ minimalist พร้อมกับโฆษณาตัวโต ๆ ว่า &lt;strong&gt;&amp;quot;The best practice&amp;quot;&lt;/strong&gt; แน่นอนว่า การตลาดและโฆษณาเพียงสองอย่างคงไม่พอ ตัวผลิตภัณฑ์เองก็ต้องมีคุณภาพ และราคาอยู่ในระดับที่ยอมรับได้ด้วย&lt;/p&gt;
&lt;p&gt;ผมยอมรับว่าผลิตภัณฑ์ Apple มีความลงตัวมาก ในเรื่องของ ดีไซน์ คุณภาพ ราคา และความเท่ห์ แต่ทั้งนี้ผลิตภัณฑ์ Apple มีความพิเศษอยู่ที่ เราไม่สามารถอธิบายปรากฏการณ์ต่าง ๆ ที่เกี่ยวข้องกับ Apple ได้ โดยพิจรณาเพียงแค่
ดีไซน์ คุณภาพ และราคาได้ เพราะมีสินค้าหลายยี่ห้อ ที่มอบดีไซน์ และคุณภาพของสินค้าให้กับลูกค้าได้พอ ๆ กับ Apple ในสนนราคาที่ต่ำกว่ามาก ดังนั้น ตัวแปรสำคัญที่สุดในเรื่องนี้ คือ &lt;strong&gt;ความเท่ห์&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;สิ่งที่ Apple หยิบยื่นให้กับลูกค้า ผ่าน MacBook ไม่เหมือนกับการขายโน้ตบุ้คคุณภาพอย่าง ThinkPad ที่ IBM หรือ Lenovo ทำ การขาย iPhone ไม่เหมือนกับการขาย Smart Phone อื่น ๆ ที่ Blackberry หรือ Nokia หรือ Motolora หรือ Samsung ทำ การขาย iPod ไม่เหมือนการขาย Walkman หรือเครื่องเล่น MP3 อื่น ๆ แต่สิ่งที่ Apple กำลังทำอยู่ไม่ต่างจากการขาย Prada หรือ Luis Vuitton หรือสินค้าฟุ่มเฟือยอื่น ๆ (แต่ผมก็ยอมรับว่าการซื้อ Apple ไม่ฟุ่มเฟือยเท่าซื้อ Prada หรือ Luis Vuitton) สิ่งที่มากับ MacBook, iPhone หรือ iPod ไม่ได้มีแค่วงจรอิเลคโทรนิค แต่รวมไปถึง life style ที่สามารถบอกสถานะทางสังคม วิธีการใช้ชีวิตของผู้ใช้ เป็นเครื่องมือที่ผู้ใช้ต้องการบอกคนอื่นว่า &lt;strong&gt;&amp;quot;ฉันก็ Cool เหมือนกันนะ&amp;quot;&lt;/strong&gt; (สำหรับคนที่ใช้ Apple ด้วยเหตุผลอื่น ๆ ก็อย่าว่ากันนะครับ ผมแค่พยายามอธิบายพฤติกรรมของเหล่าสาวกเฉย ๆ)&lt;/p&gt;
&lt;p&gt;ดังนั้นโฆษณา Apple ที่เราเห็น มันจะไม่ใช่โฆษณาขายสินค้าแต่เพียงอย่างเดียว แต่เป็นโฆษณาที่มาพร้อมกับ life style แบบเท่ห์ ๆ เสมอ เช่น มีเพลงประกอบเทห์ ๆ มีท่าเต้นเทห์ ๆ มีการใช้ชีวิตแบบเท่ห์ ๆ แต่เนื่องจากความเท่ห์เป็น relation หรือความสัมพัทธ์ การมีอยู่เพียงหนึ่งเดียวไม่สามารถประกาศความเท่ห์ได้ เราจึงได้เห็นโฆษณาชุด &lt;a href=&quot;http://www.blognone.com/node/11378&quot;&gt;Get a Mac&lt;/a&gt;  ซึ่งมีนัยะของการข่มผู้ใช้ PC ทั่วไปเพื่อประกาศความเท่ห์ของผู้ใช้ Apple อยู่&lt;/p&gt;
&lt;p&gt;ในเมื่อความเท่ห์เป็นปัจจัยสำคัญในการเลือกซื้อสินค้า Apple เป็นปัจจัยที่สำคัญพอ ๆ กับ ดีไซน์ คุณภาพ และราคา ลองคิดดูครับว่าจะเกิดอะไรขึ้น หากมีคนเสนอแนวคิดที่ว่า &lt;strong&gt;&amp;quot;ผลิตภัณฑ์ Apple ราคาแพงกว่าที่ควรจะเป็น&amp;quot;&lt;/strong&gt; หรือ &lt;strong&gt;&amp;quot;ผลิตภัณฑ์ Apple ไม่ได้มีคุณภาพดีกว่าผลิตภัณฑ์ยี่ห้ออื่น&amp;quot;&lt;/strong&gt; หรือ &lt;strong&gt;&amp;quot;Apple ไม่ได้ใช้ง่ายอย่างที่ใคร ๆ เข้าใจกัน&amp;quot;&lt;/strong&gt; ในห้วงความคิดแรก หลายคนอาจมองว่าไม่เกี่ยวกับความเท่ห์เท่าไร แต่จริง ๆ แล้วมันเกี่ยวแบบเต็ม ๆ เพราะความเท่ห์ของ Apple ไม่ได้มีเพียงเรื่องดีไซน์เท่านั้น แต่ยังรวมไปถึงความฉลาดในการเลือกซื้อด้วย เมื่อเป็นเช่นนั้น ความขัดแย้งย่อมบังเกิด การประกาศความเป็นสาวก เพื่อปกป้องความเท่ห์ของการเลือกใช้ Apple จึงมีให้เห็น สงครามสาวก Apple vs. The Other จึงเลี่ยงไม่ได้ และมักจะจบตรงบทสรุปที่ว่า สินค้า Apple ดีทุกประการ (ในสายตาสาวก) ส่วนคนอื่น ๆ ก็เบื่อและเลิกไปเอง (ส่วนหนึ่งเพราะคิดว่า ไม่ได้ควักเงินซื้อของให้สาวก)&lt;/p&gt;
&lt;p&gt;ด้วยประสบการณ์ส่วนตัว ผมคิดว่า ผมจะไม่ซื้อสินค้าของ Apple อีก หากการตลาดและ Product Line ของ Apple ยังคงเป็นอยู่แบบในตอนนี้ ผมเคยซื้อสินค้ายี่ห้อ Apple มาใช้งานสองชิ้น และเคยสัมผัส Mac OS X (จาก MacBook ของรุ่นน้อง) และ iPhone (จากร้าน Telekom)&amp;nbsp; มาบ้าง สำหรับ Mac OS X และ iPhone ผมคงไม่วิจารณ์อะไรมากนัก เพราะ จุดแข็งของ Mac OS X อยู่ที่ Usability แต่ Usability สำหรับผมคือความเคยชิน และผมเป็นคนไม่ชอบใช้ Smart Phone อยู่แล้วก็เลยไม่ได้สนใจ iPhone มากนัก&lt;/p&gt;
&lt;p&gt;แต่ iPod สองเครื่องที่ผมซื้อมา ทำให้ผมมีประสบการณ์ที่ไม่ดีกับ Apple อย่างมาก ด้วยเหตุผลดังนี้&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;การ upload เพลงขึ้น iPod ยากมาก ไม่ intuitive อย่างแรง ผมซื้อ iPod Shuffle ให้น้องสาวหนึ่งเครื่อง เวลาผ่านไปสองปี เธอยังไม่สามารถ upload เพลงขึ้น iPod ได้&lt;/li&gt;
&lt;li&gt;Software ที่ใช้บน iPod แฮงค์บ่อยมาก จนต้องเปลี่ยนเครื่องไปแล้วหนึ่งครั้ง จนถึงตอนนี้ก็ยังมีอาการแฮงค์อยู่เรื่อย ๆ และรู้สึกว่าผมไม่ได้เป็นคนเดียวด้วยสิ
    &lt;/li&gt;
&lt;li&gt;หูฟังห่วยมาก ห่วยขนาดที่มันพังตั้งแต่วันแรกที่ใช้งาน และเสียงสู้หูฟัง Sony ราคา 7 ยูโรไม่ได้&lt;/li&gt;
&lt;li&gt;อ่านภาษาไทยไม่ได้&lt;/li&gt;
&lt;li&gt;มัน minimalist เกินไป จนทำอะไรแทบไม่ได้เลย (ยิ่งกว่า Gnome เสียอีก)&lt;/li&gt;
&lt;li&gt;สินค้าสเปคคล้ายคลึงกันแต่คนละยี่ห้อ ราคาถูกกว่ามากมาย&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;สุดท้ายผมเลยเลิกใช้ iPod ทั้งที่มันยังไม่พัง (แต่แฮงค์บ่อยมาก) แล้วซื้อ &lt;a href=&quot;http://www.gogear.philips.com/en/gb/fullsound/&quot;&gt;Phillip GoGear&lt;/a&gt;  มาใช้งานแทน รู้สึกมีความสุขในการใช้งานมากกว่ากันมากมาย ด้วยความไม่ประทับใจเหล่านี้ ผมจึงไม่อยากซื้อสินค้า Apple มาใช้งานอีก ยิ่งเมื่อพิจรณาถึงปัจจัยเรื่อง feature, คุณภาพ และราคาด้วยแล้ว ความน่าซื้อของ Apple ก็ยิ่งลดลง&lt;/p&gt;
&lt;p&gt;ผมตั้งใจไว้ว่า หลังจากเรียนจบจะซื้อโน้ตบุ้คใหม่หนึ่งเครื่อง (งานที่ผมทำอยู่เป็นงาน Simulation และ Data Processing ที่ใช้พลังการคำนวนเยอะที่สุดเท่าที่จะเป็นไปได้ เลยใช้เป็นข้ออ้างในการเปลี่ยนโน้ตบุคได้บ่อย ๆ) หนึ่งในตัวเลือกที่ผมสนใจคือ MacBook ด้วยเหตุผลที่ว่า หากใช้ MacBook ผมก็จะสามารถใช้ระบบปฏิบัติการที่สำคัญได้ครบทั้งสามตัว คือ Linux, Windows และ&amp;nbsp; Mac OS เพื่อที่จะใช้ทดสอบซอพท์แวร์ที่เขียนขึ้น แต่เมื่อคิดไปคิดมา มันเป็นเรื่องที่ไม่สมเหตุสมผลเอาเสียเลย ในการที่ผมต้องเสียเงินเพิ่มขึ้นเกือบสองเท่า (โน้ตบุ้คสเปคเดียวกัน ยี่ห้ออื่น ๆ ถูกกว่า MacBook ประมาณสองเท่า) เพื่อที่จะใช้ Mac OS ทั้งที่ Mac OS สามารถใช้งานบนโน้ตบุ้คเครื่องอื่น ๆ ได้ หาก Apple ต้องการ&lt;/p&gt;
&lt;p&gt;และนี่คือตัวอย่างหนึ่งเท่านั้น สำหรับนโยบายผูกขาดของ Apple ที่มีให้เห็นมากขึ้นเรื่อย ๆ ไม่ว่าจะเป็นกรณี iTunes หรือ App Store สำหรับ Apple แล้วทุกอย่างควรอยู่ในการควบคุม โดยมักใช้ข้ออ้างในเรื่องคุณภาพที่ลูกค้าควรได้รับ ซึ่งเป็นเรื่องที่ผมรับไม่ได้มากที่สุด เพราะมันขัดต่อแนวทาง Open Source ที่ผมชื่นชอบ&lt;/p&gt;
&lt;p&gt;ที่สุดแล้ว การตัดสินใจเลือกใช้สิ่งต่าง ๆ ก็เป็นสิทธิส่วนบุคคล ที่ทุกคนมีสิทธิที่จะตัดสินใจ แต่ในขณะเดียวกัน เราก็ไม่สามารถกำหนดให้ทุกคนคิดและตัดสินใจเหมือนเราได้&lt;/p&gt;</description>
 <comments>http://www.blognone.com/news/11454/apple-apple-apple#comments</comments>
 <category domain="http://www.blognone.com/special">Special Report</category>
 <category domain="http://www.blognone.com/topics/apple">Apple</category>
 <pubDate>Wed, 29 Apr 2009 11:31:02 +0000</pubDate>
 <dc:creator>bow_der_kleine</dc:creator>
 <guid isPermaLink="false">11454 at http://www.blognone.com</guid>
</item>
<item>
 <title>350 โอเพนซอร์สซอพต์แวร์สำหรับงาน enterprise</title>
 <link>http://www.blognone.com/news/9745/350-%E0%B9%82%E0%B8%AD%E0%B9%80%E0%B8%9E%E0%B8%99%E0%B8%8B%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%AA%E0%B8%8B%E0%B8%AD%E0%B8%9E%E0%B8%95%E0%B9%8C%E0%B9%81%E0%B8%A7%E0%B8%A3%E0%B9%8C%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99-enterprise</link>
 <description>&lt;p&gt;บริษัทให้คำปรึกษาการใช้งานซอพท์แวร์สัญชาติสวิสเซอร์แลนด์ &lt;a href=&quot;http://www.optaros.co/&quot;&gt;Optaros&lt;/a&gt; ได้นำเอกสารความยาว 64 หน้า เกี่ยวกับการใช้โอเพนซอร์สซอพต์แวร์ออกสู่สาธารณชน ในเอกสารดังกล่าว มีข้อมูลโดยสรุปเกี่ยวกับโอเพนซอร์สซอพต์แวร์กว่า 350 ตัว เพื่อใช้สำหรับงานพัฒนาโปรแกรม และงานระดับ enterprise ข้อมูลประกอบด้วย ความพร้อมของซอพท์แวร์ต่องาน enterprise, ความสามารถของซอพท์แวร์, ความเคลื่อนไหวของ community ผู้พัฒนา, ซัพพอร์ท และ สัญญาอนุญาต&lt;/p&gt;
&lt;p&gt;ผู้สนใจสามารถดาวน์โหลดโดยไม่ต้องเสียค่าใช้จ่ายใด ๆ ได้ที่ &lt;a href=&quot;http://www.optaros.de/nachrichten/white-papers-reports#open-source-katalog-2009&quot;&gt;Open Source Katalog 2009&lt;/a&gt; หรือใครอยากได้เป็นกระดาษไปนอนอ่าน สามารถสั่งซื้อได้ในราคา 8 ยูโร&lt;/p&gt;
&lt;p&gt;สำหรับบริษัทไทยที่มีความสนใจใคร่ใช้โอเพนซอร์ส บริษัทให้คำปรึกษาการใช้งานโอเพนซอร์สสัญชาติไทยอย่าง &lt;a href=&quot;http://www.osdev.co.th/&quot;&gt;โอเพนซอร์สดิเวลอปเมนต์ (OSDev)&lt;/a&gt; อาจเป็นทางเลือกหนึ่งที่น่าสนใจ&lt;/p&gt;
&lt;p&gt;ที่มา - &lt;a href=&quot;http://www.heise.de/newsticker/350-Open-Source-Loesungen-fuer-Unternehmen--/meldung/119492&quot;&gt;heise-online&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.blognone.com/news/9745/350-%E0%B9%82%E0%B8%AD%E0%B9%80%E0%B8%9E%E0%B8%99%E0%B8%8B%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%AA%E0%B8%8B%E0%B8%AD%E0%B8%9E%E0%B8%95%E0%B9%8C%E0%B9%81%E0%B8%A7%E0%B8%A3%E0%B9%8C%E0%B8%AA%E0%B8%B3%E0%B8%AB%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B8%87%E0%B8%B2%E0%B8%99-enterprise#comments</comments>
 <category domain="http://www.blognone.com/topics/open-source">Open Source</category>
 <category domain="http://www.blognone.com/topics/software">Software</category>
 <pubDate>Thu, 27 Nov 2008 23:46:23 +0000</pubDate>
 <dc:creator>bow_der_kleine</dc:creator>
 <guid isPermaLink="false">9745 at http://www.blognone.com</guid>
</item>
<item>
 <title>ซอพต์แวร์ผิดกฏหมาย (เพราะอย่างนี้ไง ไทยเลยไม่เจริญ)</title>
 <link>http://www.blognone.com/news/9723/%E0%B8%8B%E0%B8%AD%E0%B8%9E%E0%B8%95%E0%B9%8C%E0%B9%81%E0%B8%A7%E0%B8%A3%E0%B9%8C%E0%B8%9C%E0%B8%B4%E0%B8%94%E0%B8%81%E0%B8%8F%E0%B8%AB%E0%B8%A1%E0%B8%B2%E0%B8%A2-%E0%B9%80%E0%B8%9E%E0%B8%A3%E0%B8%B2%E0%B8%B0%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B8%99%E0%B8%B5%E0%B9%89%E0%B9%84%E0%B8%87-%E0%B9%84%E0%B8%97%E0%B8%A2%E0%B9%80%E0%B8%A5%E0%B8%A2%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B9%80%E0%B8%88%E0%B8%A3%E0%B8%B4%E0%B8%8D</link>
 <description>&lt;p&gt;ขอยืมคำพูดของ &lt;a href=&quot;http://www.thaicyberpoint.com&quot;&gt;Ford Antitrust&lt;/a&gt;  มาใช้สักหน่อยครับ &lt;strong&gt;&lt;a href=&quot;http://www.thaicyberpoint.com/ford/blog/id/567/&quot;&gt;&amp;quot;ซอฟต์แวร์ลิขสิทธิ์ จั่วหัวพูดถึงทีไร เว็บไม่แตกก็ร้อนกันไปเป็นแถบ ๆ&amp;quot;&lt;/a&gt;&lt;/strong&gt;  แต่เนื่องจากตอนนี้เยอรมันเข้าหน้าหนาวละ หากเขียนเรื่องนี้แล้วร้อนก็คงดี จะได้ประหยัดค่าทำความร้อนไปได้หลายยูโร ซึ่งตอนนี้ประเด็นนี้กำลังร้อนมาก ๆ ใน &lt;a href=&quot;http://www.blognone.com/node/9664&quot;&gt;blognone&lt;/a&gt;  ผมไม่ได้เข้าไปอ่านแป้บเดียว กว่าสามร้อยความคิดเห็นไปแล้ว ตามอ่านแทบไม่ทัน วานฝากผู้เกี่ยวข้อง ให้ปักหมุดประเด็นนี้ไว้นาน ๆ หน่อยก็ดีครับ เผื่อจะมีความคิดเห็นที่สี่ร้อย ห้าร้อย ให้ได้อ่านกัน&lt;/p&gt;
&lt;p&gt;อันที่จริงประเด็นเรื่องการละเมิดสัญญาอนุญาต (license) ไม่ได้เป็นประเด็นใหม่นัก ในความเคลื่อนไหวของคนโอเพนซอร์ส มักมีเรื่องนี้เข้ามาเป็นปัจจัยเสมอ เพราะคนใช้โอเพนซอร์สจำนวนไม่น้อยมีแนวคิดที่ว่า &lt;strong&gt;&amp;quot;ผมไม่อยากละเมิดสัญญาอนุญาต แต่ก็ไม่อยากเสียเงิน ผมก็เลยใช้โอเพนซอร์ส&amp;quot;&lt;/strong&gt; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Open_Source_Definition&quot;&gt;ซึ่งจริง ๆ แล้วปรัชญาโอเพนซอร์สมันมีมากกว่านั้น&lt;/a&gt;) คนที่ใช้งานซอฟต์แวร์โอเพนซอร์สส่วนมาก เห็นความสำคัญของเรื่องสัญญาอนุญาต การรณรงค์การใช้งานโอเพนซอร์ส จึงมาควบคู่กับเรื่องสัญญาอนุญาตเสมอ&lt;/p&gt;
&lt;p&gt;ผมเดาว่า คนที่เห็นความสำคัญของเรื่องสัญญาอนุญาต (ไม่จำเป็นต้องเป็นโอเพนซอร์ส)ซอฟต์แวร์ผิดกฏหมาย (เพราะอย่างนี้ไง ไทยเลยไม่เจริญ) คงโคตรจะรำคาญ เมื่อได้อ่านข้ออ้างอันฟังไม่ค่อยจะขึ้น ของพวกใช้ซอฟต์แวร์ผิดกฏหมาย เพราะลำพังการใช้ซอฟต์แวร์ผิดกฏหมายมันก็แย่พออยู่แล้ว บางคนยังภูมิใจที่ได้ใช้ หรือบางคนต่อเหน็บแนมว่าคนที่เขาใช้ของถูกกฏหมาย สิ่งแรกที่ควรทำความเข้าใจ ก่อนอ่านบรรทัดต่อไปจากนี้คือ การใช้ซอฟต์แวร์เถื่อนเป็นเรื่องผิดกฏหมาย คนใช้ไม่ควรภูมิใจ คนใช้ไม่ควรต่อว่าผู้อื่นในเรื่องการใช้ซอฟต์แวร์ถูกกฏหมาย ผู้ที่กระทำความผิดด้วยความภูมิใจ คือผู้ที่ไม่น่าให้อภัย&lt;/p&gt;
&lt;p&gt;ประเด็นที่ผมจั่วหัว เรื่องการใช้ซอฟต์แวร์ผิดกฏหมาย ทำให้ประเทศไม่เจริญ ไม่ใช่ประเด็นทางจริยธรรม แต่เป็นประเด็นแนวคิดเศรษฐกิจโลกยุคใหม่ &lt;/p&gt;
&lt;p&gt;ในเศรษฐกิจโลกยุคใหม่ ที่ทุกอย่างเชื่อมถึงกันเป็น globalization ประเทศที่ได้เปรียบทางเศรษฐกิจ จะไม่ใช่ประเทศที่ผลิตสินค้าอุตสาหกรรมได้มาก และเร็วกว่าประเทศอื่นอีกต่อไป ประเทศที่เคยได้ชื่อว่าประเทศอุตสาหกรรมใหม่ (NICs : New Industrie Countries) ในยุค 80&amp;#39;s กำลังประสบปัญหาเรื่องการตลาด และการผลิต ด้วยปัจจัยหลัก ๆ สองประการคือ&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ต้นทุนการผลิตที่สูงขึ้น เนื่องจากมาตรฐานชีวิตของคนในประเทศที่สูงขึ้น ทำให้ต้นทุนทรัพยากรมนุษย์ (ซึ่งเป็นต้นทุนหลักในอุตสาหกรรมส่วนมาก) สูงขึ้น การจ่ายเงินเดือนที่สูง ทำให้อุตสหกรรมต้องย้ายฐานการผลิตออกไปยังประเทศกำลังพัฒนา ซึ่งคุณภาพชวิตของคนในประเทศเหล่านี้ก็สูงขึ้นเรื่อย ๆ การย้ายฐานการผลิต จึงไม่ใช่ทางออกอีกต่อไป นอกจากนี้ปัญหาพลังงาน ยังทำให้ปัญหานี้เป็นปัญหาที่หนักขึ้นเรื่อย ๆ&lt;/li&gt;
&lt;li&gt;การแข่งขันในตลาดเสรี เป็นตัวกำหนด ทำให้อุตสาหกรรมต้องขายสินค้าตัวเองในราคาที่ต่ำลง&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;เมื่อต้นทุนสูงขึ้น ขายสินค้าได้ถูกลง อีกทั้งยังมีคู่แข่งใหม่ ๆ ในตลาดอย่าง จีน เกาหลี อินเดีย ไต้หวัน ทำให้จ้าวตลาดอย่าง อเมริกา ยุโรป และญี่ปุ่น ต้องระสับระส่ายไปตาม ๆ กัน อีกทั้ง ประเทศกำลังพัฒนาประเทศอื่น ๆ ก็กำลังขยับตัวขึ้นมาเป็นผู้ผลิตเช่นกัน ในเมื่อทุกคนต่างเป็นผู้ผลิต แล้วสินค้าที่ผลิตขึ้นมาจะไปขายใคร ? แล้วใครจะเป็นผู้อยู่รอดในการแข่งขันนี้ ?&lt;/p&gt;
&lt;p&gt;คำตอบคือ &lt;strong&gt;ผู้ที่มี Know-how และ Expertise คือผู้ที่อยู่รอด&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ดังนั้นการแข่งขันในโลกเศรษฐกิจยุคใหม่ จะไม่ใช่การแข่งขันทางการผลิตอีกต่อไป เพราะเรากำลังเดินมาถึงจุดอิ่มตัวทางด้านกำลังการผลิต และความเร็วในการผลิต การแข่งขันที่เราจะเห็นในอนาคต คือการแข่งขันกันในเรื่องของ Know-how เพราะผู้ที่ถือครอบครองความรู้ จะสามารถกำหนดทิศทางตลาด และการผลิตได้ สิ่งที่เราเห็นได้ชัดจากระบวนการดังกล่าวคือ การแยกฐานการผลิต และการวิจัยออกจากกัน (ซึ่งฐานการวิจัยจะกำหนดทิศทางทุกอย่างในการผลิต) มีการซื้อขายความรู้ และประสบการณ์กันมากขึ้น ด้วยราคาที่สูงขึ้น&lt;/p&gt;
&lt;p&gt;เมื่อย้อนกลับมาดูประเทศไทย จะด้วยปัญหาการเมือง วิกฤตทาการศึกษา หรืออะไรก็แล้วแต่ เรายังไม่ตื่นตัวเรื่องนี้กันเลยแม้แต่น้อย เรายังมองไม่เห็นภาพเลยว่า จะเกิดอะไรขึ้นในอนาคต ผมไม่เรียกร้องว่าประเทศไทยต้องเจริญ แต่อย่างน้อย เราก็ควรรู้ว่า สิ่งที่เราทำอยู่จะมีผลกระทบอย่างไร อันที่จริงเรื่องวิกฤต Know-how ไม่ได้มีเฉพาะในวงการไอทีเพียงอย่างเดียว แต่มีให้เห็นในทุกวงการ (ดังจะเห็นได้จากนักเรียนไทยส่วนมาก ทั้งเมืองไทย เมืองนอก มักเรียนกันเพื่อเอาวุฒิ) เพียงแต่วงการไอทีค่อนข้าง extreme หน่อย เพราะเป็นวงการที่ Know-how คือทุกอย่าง&lt;/p&gt;
&lt;p&gt;การใช้ซอฟต์แวร์ผิดกฏหมาย เป็นความชัดเจนที่จะปฏิเสธไม่ได้เลยว่า ผู้ใช้ไม่เห็นความสำคัญของ Know-how เพราะหากจะประเมินราคาของ Know-how ที่ถูกลงทุนไป เพื่อผลิตซอฟต์แวร์ตัวหนึ่ง ก็จะรู้ว่า ราคาซอฟต์แวร์ที่ขายกันอยู่ในท้องตลาดนั้น ถูกแสนถูกเพียงใด บางคนใช้เรื่อง Know-how เป็นข้ออ้างในการใช้ซอฟต์แวร์ผิดกฏหมาย โดยอาจจะบอกว่า เพราะเห็นความสำคัญของ Know-how ไง ก็เลยโขมยเขาใช้ เพราะเหมือนเป็นการโขมย Know-how ของเขามาด้วย เพราะอย่างนี้ไงครับ ถึงได้มีปัญหา เพราะยังแยกกันไม่ออกเลยว่า อะไรคือ Product อะไรคือ Know-how&lt;/p&gt;
&lt;p&gt;คนที่ได้รับผลการะทบจากการใช้ซอฟต์แวร์ผิดกฏหมายมากที่สุด คงไม่ใช่ Microsoft หรือ Adobe แต่เป็นโปรแกรมเมอร์คนไทยและตัวผู้ใช้เอง เพราะรายได้ของผู้ผลิตรายใหญ่อย่าง Microsoft หรือ Adobe สูงกว่ารายได้ที่เสียไปจากซอฟต์แวร์ผิดกฏหมาย อย่างเทียบกันไม่ได้ แต่การซื้อซอฟต์แวร์ผีแผ่นละร้อยมาใช้งาน เป็นการตัดแขนตัดขาของผู้ผลิตซอฟต์แวร์ในเมืองไทย ชนิดที่ไม่ให้ไปผุดไปเกิดกันเลยก็ว่าได้ เพราะเมื่อเป็นอย่างนี้แล้ว ผู้ผลิตรายย่อยจะเอาอะไรไปแข่ง ซอฟต์แวร์รคุณภาพห้าร้อย ขายราคาห้าร้อย ไปแข่งกับซอฟต์แวร์คุณภาพสามหมื่น ราคาร้อยเดียว ได้อย่างไร เผลอ ๆ ไอ้ราคาห้าร้อย อาจโดนเอาไปขายราคาร้อยเดียวอีก คงเซ็งน่าดู เมื่อเป็นอย่างนี้แล้ว ยังมีใครอยากจะสร้าง Know-how อีกครับ&lt;/p&gt;
&lt;p&gt;ส่วนผู้ใช้แม้ว่าจะไม่โดนผลกระทบมากมาย เหมือนผู้ผลิตซอฟต์แวร์รายย่อย แต่ก็ต้องรับกรรมที่ตัวเองก่อไว้เหมือนกัน อย่างที่เห็นชัด ๆ คือ ได้ใช้ซอฟต์แวร์ที่คุณภาพลดลง เพราะซอฟต์แวร์ผีแผ่นละร้อย มักมีสารปนเปื้อนมาให้ผู้ใช้ปวดหัวเล่นอยู่เสมอ ข้อนี้ไม่ใช่ความเชื่อของผม แต่เป็นประสบการณ์ตรง เรามักได้ยินคนไทยบ่นอยู่เสมอ ว่าวินโดวส์ไม่ดีอย่างนั้น ไม่ดีอย่างนี้ (ใช้ไปสักพักช้า ไวรัส ชอบแฮงค์ ฯลฯ) แต่เพื่อนร่วมงานผมกลับไม่ค่อยเจอปัญหาเหล่านี้ (ผมใช้ GNU/Linux คงเทียบกันไม่ได้) เพราะที่ทำงานผมใช้ซอฟต์แวร์แท้ 100%&lt;/p&gt;
&lt;p&gt;หรืออย่างเวลาที่ผมต้องไปล้างเครื่องให้ใคร ก็มักจะได้ยินเสียงบ่นว่า ไม่รู้เครื่องเป็นอะไร ต้องล้างใหม่ทุกสามเดือน สืบไปสืบมาซอฟต์แวร์ผีอื้อซ่า เลยต้องจัดการฟอร์แมตเครื่อง ลงซอฟต์แวร์โอเพนซอร์สให้ใช้สำหรับบางโปรแกรม ลงซอฟต์แวร์แท้ให้สำหรับบางโปรแกรม พร้อมสั่งกำชับ ห้ามลงซอฟต์แวร์ผิดกฏหมาย ห้ามลงโปรแกรมที่ไม่รู้ว่ามันเอาไว้ใช้ทำอะไร เวลาผ่านไปเป็นปี ไม่มีปัญหาอีกเลย อย่างนี้ไม่ใช่เพราะของปลอม ก็ไม่รู้จะว่าอย่างไร&lt;/p&gt;
&lt;p&gt;หากเราจะมองข้างประเด็นเรื่องของแถมอันไม่พึงประสงค์ จากซอฟต์แวร์ผิดกฏหมาย มันก็ยังมีประเด็นอื่นที่ต้องให้คิดอยู่ดี นั่นคือ เรื่องราคาซอฟต์แวร์ที่สูงกว่าความเป็นจริง เพราะบริษัทผู้ผลิตย่อมบวก cost เหล่านี้ลงไปในราคาซอฟต์แวร์เสมอ แม้ว่าผู้ที่ใช้ซอพ์แวร์เถื่อน จะไม่ได้รับผลกระทบนี้โดยตรง แต่ก็ขอให้รู้เอาไว้ครับ ว่าคุณกำลังเอาเปรียบผู้ใช้คนอื่นอยู่ ไม่ได้เอาเปรียบบริษัทซอฟต์แวร์อย่าง Microsoft หรือ Adobe เพียงอย่างเดียว&lt;/p&gt;
&lt;p&gt;ขอกลับมายังเรื่อง Know-how ในการสร้างซอฟต์แวร์ ว่าการสร้างนิสัยไม่รู้จักคุณค่าของ Know-how การไม่รู้จักเคารพสิทธิผู้อื่นในเรื่องทรัพย์สินทางปัญญา ด้วยการใช้ซอฟต์แวร์เถื่อน มันจะสร้างนิสัยไม่ดีอื่น ๆ ตามมา คือ &lt;strong&gt;การไม่เห็นความสำคัญของกระบวนการสร้างความรู้ &lt;/strong&gt;ที่สำคัญยิ่งกว่าตัว Know-how มากมายนัก แน่นอนว่า คนใช้ซอฟต์แวร์เถื่อน ต้องมีแนวคิดแบบ &lt;strong&gt;ผลนิยม&lt;/strong&gt; คือไม่รู้จะเสียเงินเยอะไปทำไม ในเมื่อผลสุดท้ายมันเหมือนกัน โดยลืมคิดไปว่า ไอ้ระหว่างทางกว่าจะไปถึงผลน่ะ มันมีกระบวนการอื่น ๆ อีกมากมาย คนที่คิดได้ในเรื่องกระบวนการตรงนี้ จะผลิตซอฟต์แวร์อีกกี่ร้อยกี่พันก็ไม่มีปัญหา แต่คนที่หวังจะเอาแต่ผลอย่างเดียว ก็ต้องคอยผลอย่างเดียวตลอดไป&lt;/p&gt;
&lt;p&gt;นอกจากนี้ยังมีประเด็นร้อนในวงการวิจัย ในยุคที่จีนเข้ามามีบทบาทต่อเศรษฐกิจโลกคือเรื่องของ &lt;strong&gt;จรรยาบรรณในงานวิจัยและพัฒนา&lt;/strong&gt; เมื่อวันก่อน ผมได้คุยกับโปรเฟสเซอร์ และหัวหน้าทีมงานวิจัยจาก NSN ในเรื่องความไว้วางใจของบริษัทต่าง ๆ ที่มีต่อบริษัทสัญชาติจีน เนื่องจากบริษัทและรัฐบาลในฝั่งยุโรป และอเมริกา มีประสบการณ์และภาพที่ไม่ดีนัก ต่อรัฐบาลและบริษัทสัญชาติจีน (ที่อาจมีรัฐบาลหนุนหลังอยู่อีกที) เพราะในช่วงทศวรรษที่ผ่านมา มีหลายครั้งที่บริษัทสัญชาติจีเล่นไม่ซื่อ มีการถ่ายทอดความรู้จากยุโรปและอเมริกาไปยังจีน ในลักษณะที่ไม่โปร่งใสนัก จนในระยะหลัง บริษัทในยุโรป และอเมริกาเลี่ยงที่จะทำสังฆกรรมกับจีน ซึ่งหลายคนคาดว่า ปัญหาดังกล่าว จะมีผลกระทบต่อเศรษฐกิจของจีนในระยะยาว (ตอนนี้ส่งผลบ้างแล้ว ในธุรกิจอาหาร และของเด็กเล่น)&lt;/p&gt;
&lt;p&gt;แม้แต่จีนซึ่งเป็นประเทศใหญ่ มีกำลังบริโภคและการผลิตที่สูง ยังได้รับผลกระทบในเรื่องจรรยาบรรณการละเมิดทรัพย์สินทางปัญญา ประเทศเล็ก ๆ และไม่มีอะไรไปต่อรองกับเขาอย่างไทย หากยังคิดจะเล่นไม่ซื่ออีก ใครเขาจะอยากมาทำธุรกิจด้วย!&lt;/p&gt;
&lt;p&gt;สำหรับคนที่ไม่ได้ทำงานด้านนี้โดยตรง ไม่มีความรู้เรื่องซอฟต์แวร์และสัญญาอนุญาต แล้วใช้ซอฟต์แวร์เถื่อน ผมค่อนข้างเฉย ๆ เพราะในเมื่อเขาไม่รู้ จะให้ทำอย่างไร แต่คนที่ทำงานด้านนี้โดยตรง จะอ้างไม่ได้ว่าไม่มีความรู้เรื่องนี้ (หากไม่มีความรู้เรื่องนี้ ก็ควรไปหาอาชีพอย่างอื่นทำ ที่ไม่ต้องใช้ความรู้เรื่องนี้) แม้ว่าคนเหล่านี้จะมีเหตุผลร้อยแปดพันเก้า ในการอ้างความชอบธรรมในการใช้ซอฟต์แวร์ผิดกฏหมาย แต่เหตุผล ที่เป็นเหตุผลจริง ๆ มีเพียงสองข้าเท่านั้น คือ เสียดายเงิน กับไม่เคารพสิทธิผู้อื่น&lt;/p&gt;
&lt;p&gt;สำหรับคนที่เสียดายเงิน คุณไม่ผิดครับ ที่เสียดายเงิน แต่ผิดที่ไปละเมิดสิทธิผู้อื่น และใช่ว่าคุณเสียดายเงิน แต่อยากใช้ หรือมีความจำเป็นต้องใช้ซอฟต์แวร์บางอย่าง แล้วไม่มีทางเลือกอย่างอื่น ก็อย่างที่ผมเขียนไว้ตั้งแต่ต้นครับ ว่าโอเพนซอร์สคือทางออก หากคุณบอกว่าโอเพนซอร์สใช้ยากเกินไปหรือไม่ดีพอ เลยต้องใช้ของเถื่อน ผมคงประเมินได้แค่ว่า คุณเป็นคนที่เสียดายเงิน และพร้อมจะละเมิดสิทธิของผู้อื่น เพื่อความสบายของตัวเอง (ประเมินตาม fact ล้วน ๆ)&lt;/p&gt;
&lt;p&gt;อันที่จริงประเด็นการใช้ซอฟต์แวร์ผิดกฏหมาย ไม่น่าจะเป็นประเด็นที่ต้องถกเถียงกันได้ เพราะความชัดเจนมันมีตั้งแต่แรกแล้ว ได้ชื่อว่าทำผิดกฏหมาย ไม่ว่าคุณจะมีข้ออ้างอย่างไร ข้ออ้างเหล่านั้นก็ไม่สามารถนำมาหักล้างกับความผิดได้&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;หมายเหตุ&lt;/strong&gt; เผยแพร่ครั้งแรกที่ &lt;a href=&quot;http://www.biolawcom.de/blog/855/Software-Piracy-in-Thailand.html&quot;&gt;BioLawCom.De&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.blognone.com/news/9723/%E0%B8%8B%E0%B8%AD%E0%B8%9E%E0%B8%95%E0%B9%8C%E0%B9%81%E0%B8%A7%E0%B8%A3%E0%B9%8C%E0%B8%9C%E0%B8%B4%E0%B8%94%E0%B8%81%E0%B8%8F%E0%B8%AB%E0%B8%A1%E0%B8%B2%E0%B8%A2-%E0%B9%80%E0%B8%9E%E0%B8%A3%E0%B8%B2%E0%B8%B0%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B8%99%E0%B8%B5%E0%B9%89%E0%B9%84%E0%B8%87-%E0%B9%84%E0%B8%97%E0%B8%A2%E0%B9%80%E0%B8%A5%E0%B8%A2%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B9%80%E0%B8%88%E0%B8%A3%E0%B8%B4%E0%B8%8D#comments</comments>
 <category domain="http://www.blognone.com/special">Special Report</category>
 <category domain="http://www.blognone.com/topics/copyright">Copyright</category>
 <category domain="http://www.blognone.com/topics/intellectual-property">Intellectual Property</category>
 <category domain="http://www.blognone.com/topics/piracy">Piracy</category>
 <pubDate>Tue, 25 Nov 2008 22:27:14 +0000</pubDate>
 <dc:creator>bow_der_kleine</dc:creator>
 <guid isPermaLink="false">9723 at http://www.blognone.com</guid>
</item>
<item>
 <title>รัฐบาลเยอรมันเตือน &quot;ไม่ควรใช้ Chrome&quot;</title>
 <link>http://www.blognone.com/news/8876/%E0%B8%A3%E0%B8%B1%E0%B8%90%E0%B8%9A%E0%B8%B2%E0%B8%A5%E0%B9%80%E0%B8%A2%E0%B8%AD%E0%B8%A3%E0%B8%A1%E0%B8%B1%E0%B8%99%E0%B9%80%E0%B8%95%E0%B8%B7%E0%B8%AD%E0%B8%99-quot%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%84%E0%B8%A7%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89-chromequot</link>
 <description>&lt;p&gt;หลังจากที่ Google ได้ส่ง &lt;a href=&quot;http://gears.google.com/chrome/&quot;&gt;Google Chrome&lt;/a&gt; เวบบราวเซอร์ตัวใหม่เข้าลงแข่ง ประชันความสามารถกับเวบบราวเซอร์ตัวอื่น ๆ เป็นที่ฮือฮาในวงการผู้ใช้อินเตอร์เนตทั่วโลก ความแรงของ Google Chrome ทำให้นักท่องอินเตอร์เนตชาวเยอรมันจำนวนมากสนใจ และดาวน์โหลดมาทดลองใช้งาน&lt;/p&gt;
&lt;p&gt;ล่าสุดทาง &lt;a href=&quot;http://www.bsi.de/&quot;&gt;Bundesamt für Sicherheit in der Informationstechnik (BSI)&lt;/a&gt; หรือแปลได้ว่า สำนักงานความปลอดภัยในเทคโนโลยีข้อมูลข่าวสารแห่งสหพันธรัฐเยอรมนี ได้ออกมาเตือนประชาชนไม่ให้ทดลองใช้ Google Chrome เพราะ Google Chrome จะส่งข้อมูลส่วนตัวบางอย่างของผู้ใช้งานกลับไปยังบริษัท&lt;/p&gt;
&lt;p&gt;น่ี่ไม่ใช่ครั้งแรกที่ BSI ออกมาเตือนประชาชนในเรื่องการใช้งานเวบบราวเซอร์ ก่อนหน้านี้ BSI เคยออกมาแนะนำประชาชนให้ใช้งาน Firefox แทน Internet Explorer โดยอ้างถึงความปลอดภัยในเรื่องการป้องกัน Phishing&lt;/p&gt;
&lt;p&gt;น่าสนใจว่าเหตุใดกระทรวง ICT บ้านเราจึงไม่เคยสนใจในเรื่องความเป็นส่วนตัว และความปลอดภัยของผู้ใช้งานอินเตอร์เนตบ้าง แต่กลับละเมิดความเป็นส่วนตัวของผู้ใช้งานเสียเอง โดยการสั่งให้เก็บ log อีก&lt;/p&gt;
&lt;p&gt;ที่มา - &lt;a href=&quot;http://www.e-recht24.de/news/datenschutz/948.html&quot;&gt;e-recht24&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.blognone.com/news/8876/%E0%B8%A3%E0%B8%B1%E0%B8%90%E0%B8%9A%E0%B8%B2%E0%B8%A5%E0%B9%80%E0%B8%A2%E0%B8%AD%E0%B8%A3%E0%B8%A1%E0%B8%B1%E0%B8%99%E0%B9%80%E0%B8%95%E0%B8%B7%E0%B8%AD%E0%B8%99-quot%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%84%E0%B8%A7%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89-chromequot#comments</comments>
 <category domain="http://www.blognone.com/topics/browser">Browser</category>
 <category domain="http://www.blognone.com/topics/chrome">Chrome</category>
 <category domain="http://www.blognone.com/topics/germany">Germany</category>
 <category domain="http://www.blognone.com/topics/google">Google</category>
 <pubDate>Mon, 08 Sep 2008 10:17:04 +0000</pubDate>
 <dc:creator>bow_der_kleine</dc:creator>
 <guid isPermaLink="false">8876 at http://www.blognone.com</guid>
</item>
<item>
 <title>Hard Fight : Java vs. Python vs. Ruby</title>
 <link>http://www.blognone.com/news/4385/hard-fight-java-vs-python-vs-ruby</link>
 <description>&lt;p&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/fight.jpg&quot; border=&quot;0&quot; alt=&quot;image&quot; hspace=&quot;10&quot; vspace=&quot;10&quot; width=&quot;137&quot; height=&quot;91&quot; align=&quot;left&quot; /&gt;ผมเป็นคนที่ชอบศึกษาเรื่องภาษาเขียนโปรแกรม ดังจะเห็นได้จาก จำนวนบล็อกที่ผมเขียนเกี่ยวกับภาษาเขียนโปรแกรม ที่มีมากกว่าในเรื่องอื่น ๆ จากการศึกษาโดยการเข้าไปหาข้อมูลในอินเตอร์เนตพบว่า เรื่องภาษาเขียนโปรแกรมเป็นเรื่องศาสนา คือ เป็นเรื่องที่มีพื้นฐานอยู่บนความเชื่อ มากกว่าเหตุผล&lt;/p&gt;
&lt;p&gt;ทฤษฎีทางความเชื่อเกี่ยวกับภาษาเขียนโปรแกรมจำนวนมาก ได้ถูกกล่าวอ้างโดยไม่ได้รับข้อพิสูจน์ โดยเฉพาะจากเหล่าสาวกของภาษานั้น ๆ บางครั้งเวลาผมอ่านก็เคลิ้มตามไปเหมือนกัน บางครั้งก็อดตั้งคำถามไม่ได้ว่า มันจะจริงเหรอ ???&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;หมายเหตุ : &lt;/strong&gt; ขอโฆษณาต้นฉบับหน่อยครับ ที่ &lt;a href=&quot;http://www.biolawcom.de/&quot;&gt;BioLawCom.De&lt;/a&gt; :D&lt;/p&gt;
&lt;!--break--&gt;&lt;!--break--&gt;&lt;p&gt;
ผมจึงรู้สึกว่า น่าจะเขียนบล็อกขึ้นมาหนึ่งบล็อก เพื่อเปรียบเทียบคุณสมบัติต่าง ๆ ของภาษาเขียนโปรแกรมขึ้นมาหนึ่งบล็อก เพื่อเปรียบเทียบให้เห็นกันจะ ๆ และพยายามเป็นกลางให้มากที่สุด (อันนี้แหละยาก) เผื่อว่าใครจะเอาข้อมูลไปใช้ประกอบการตัดสินใจ โดยภาษาที่ผมจะนำมาเปรียบมวยมีด้วยกัน 3 ภาษา คือ Java, Python และ Ruby เพราะเป็นภาษาที่ได้รับความนิยมในขณะนี้ และดูที่อนาคตจะไปได้สวย (จริง ๆ อยากเขียน C# เหมือนกัน แต่ดูเหมือน C# จะแผ่วไปเยอะในช่วงหลัง)&lt;/p&gt;
&lt;p&gt;อันที่จริงมีคนเปรียบมวย Python กับ Java ไว้แล้วเยอะเหมือนกัน ไม่ว่าจะเป็น &lt;a href=&quot;http://ferg.org/projects/python_java_side-by-side.html&quot;&gt;Python &amp;amp; Java: Side by Side Comparison&lt;/a&gt;&lt;br /&gt;
(รู้สึกหน้านี้จะเสีย ลองไปอ่านที่ &lt;a href=&quot;http://209.85.135.104/search?q=cache:FaJx1g7WFYsJ:ferg.org/projects/python_java_side-by-side.html+python+vs+java&amp;amp;hl=de&amp;amp;ct=clnk&amp;amp;cd=1&amp;amp;gl=de&amp;amp;client=firefox&quot;&gt;Google-Cache&lt;/a&gt;  ดูครับ), &lt;a href=&quot;http://www.dmh2000.com/cjpr/&quot;&gt;C++ vs Java vs Python vs Ruby : a first impression&lt;/a&gt;  และ  &lt;a href=&quot;http://furryland.org/~mikec/bench/&quot;&gt;Python vs. Perl vs. Java vs. C++ Runtimes&lt;/a&gt; แต่ส่วนมากมักเป็นข้อมูลเก่า (ยกเว้น  C++ vs Java vs Python vs Ruby : a first impression ข้อมูลค่อนข้างใหม่) ผมจึงอยากอัพเดดข้อมูลบางอย่างเพิ่มเติมลงไป และทดสอบโดยใช้โปรแกรมที่ใกล้เคียงกับการใช้งานจริงมากที่สุด&lt;/p&gt;
&lt;h4&gt;&lt;u&gt;About me&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;ก่อนอื่นผมต้องแนะนำตัว เกี่ยวกับพื้นหลังการเขียนโปรแกรมของผมก่อนครับ เพื่อให้คนอ่านใช้ประกอบวิจรณญาณในการอ่าน&lt;/p&gt;
&lt;p&gt;ทุกวันนี้ผมทำงานโดยใช้ Python ในการเขียนโปรแกรม Simulation เกี่ยวกับเคเบิลใยแก้วนำแสง ดังนั้น คนอ่านไม่ต้องแปลกใจครับ หากผมจะลำเอียงไปทาง Python แต่ผมจะพยายามรักษาความเป็นกลางไว้ให้มากที่สุดครับ&lt;/p&gt;
&lt;p&gt;ส่วน Java นั้น ในมหาวิทยาลัยผม บังคับเรียนหนึ่งเทอม จำนวน 2 หน่วยกิจ ขออนุญาตขี้โม้หน่อยนึงครับ ว่าตอนสอบผมได้คะแนนเกือบเต็ม เป็นหนึ่งในไม่กี่วิชา ที่ผมได้คะแนนดีกว่าเพื่อนเยอรมัน และผมเคยพยายามทำโปรเจคโดยใช้ Java เลยมีหนังสือ Java เต็มบ้าน แต่สุดท้ายก็ไม่สำเร็จ เพราะจนถึงทุกวันนี้ผมยังงงอยู่เลยว่า อาจารย์ที่ปรึกษาคนนั้นต้องการอะไรจากผม ดังนั้น ผมคิดว่าความรู้ Java ที่ผมมีนั้นก็พอไปวัดไปวาได้เหมือนกัน แต่หลัง ๆ มา ผมไม่ค่อยชอบ Java เท่าไร&lt;/p&gt;
&lt;p&gt;ผมไม่เคยศึกษา Ruby อย่างเป็นเรื่องเป็นราว แต่ก็ผ่าน ๆ ตามาบ้าง โดยการใช้งาน &lt;a href=&quot;http://www.rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt;  ความรู้ Ruby ผมจึงเป็นแบบ งูงู ปลาปลา อย่าถือสากันนะครับ :D&lt;/p&gt;
&lt;h4&gt;&lt;u&gt;About this fight&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;การเปรียบมวยครั้งนี้ ผมได้เขียนขึ้นโดยวิเคราะห์จากการเขียนโปรแกรม &lt;a href=&quot;http://www.biolawcom.de/?/blog/571&quot;&gt;โปรแกรมค้นหาข้อมูลสำหรับ CMS&lt;/a&gt; ซึ่งเดิมทีนั้น ผมเขียนขึ้นโดยใช้ PHP แล้วนำมาเขียนใหม่โดยใช้  Java, Python และ Ruby โดยมีการตัดโค้ดบางส่วนออก และปรับปรุงอีกเล็กน้อย เพื่อให้เหมาะสมกับการทดสอบ&lt;/p&gt;
&lt;p&gt;ส่วนการทดสอบความเร็วนั้น ผมได้อ้างอิงตาม &lt;a href=&quot;http://furryland.org/~mikec/bench/&quot;&gt;Python vs. Perl vs. Java vs. C++ Runtimes&lt;/a&gt; โดยมาปรับปรุงสำหรับ Ruby และเพิ่มการทดสอบในกรณีอื่น ๆ เข้าไปอีกเล็กน้อย&lt;/p&gt;
&lt;p&gt;ในแต่ละยกผมจะให้คะแนน แต่ละภาษาโดยให้เป็น &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; ยิ่งมากยิ่งดี โดยมีคะแนนเต็ม &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; (คิดถึงตอนเรียนอนุบาลเลย)&lt;/p&gt;
&lt;h4&gt;&lt;u&gt;Round 1 : The first impression&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;ในยกนี้ผมวิเคราะห์ตามความรู้สึกของผม ที่ได้เขียนโปรแกรมในภาษานั้น ๆ เป็นครั้งแรก ประกอบกับความรู้สึกของเพื่อน ๆ ที่เขียนโปรแกรมภาษานั้น ๆ เป็น&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; &lt;strong&gt;: &lt;/strong&gt;เป็นภาษาที่เหมาะกับวิศวกรซอพท์แวร์ แต่ไม่ค่อยถูกโฉลกกับคนวงการอื่น ๆ ในครั้งแรกที่เริ่มเขียน Java อะไร ๆ ก็ดูยากไปหมด ผมและเพื่อนทุกคนเห็นพ้องต้องกันตอนเรียน Java ว่า Java ยากกว่า C อีก อีกทั้งตัวภาษาไม่เอื้อต่องานประเภท Quick and Dirty คือลองเขียนเล่น ๆ สั้น ๆ คนที่จะเขียนโปรแกรม Java โปรแกรมแรกได้นั้น ต้องรู้จัก JRE, JDK, class, object, public, static, void, main ก่อนถึงจะเขียนได้ อีกทั้งยังเจอ Concept แปลก ๆ ที่คนที่ไม่เคยเขียน Java มาก่อน ก็ต้องงงไปตาม ๆ กัน เช่น Interface, Abstact Class, Iteration, Type Cast เป็นต้น สรุปคือ กว่าจะเขียน Java เป็นต้องใช้เวลาค่อนข้างนาน &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : คงเหมือนกับภาษา Script ภาษาอื่น ๆ ที่ไม่ต้องรู้อะไรมากก็ลงมือเขียนได้เลย มี Interactive-Console ให้ใช้งาน ลองเล่นไปตามเรื่องตามราว แต่สิ่งที่กวนประสาทมาก ๆ คือ Indent เป็นเรื่องที่ต้องใช้เวลาในการปรับตัวกันนานพอสมควร&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby&lt;/strong&gt; : &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : ครั้งแรกที่ลองใช้งาน อะไร ๆ ก็ดูง่ายไปหมด หากรู้จักภาษา Script  อื่น ๆ มาก่อน Ruby แล้ว การเรียนรู้ Ruby ก็จะใช้เวลาน้อยมาก
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;u&gt;Round 2 : Community&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;Community เป็นปัจจัยสำคัญมากในการเลือกใช้งานภาษาเขียนโปรแกรมในปัจจุบัน ภาษาที่มี Community ที่แข็งแกร่ง ย่อมหมายถึงโอกาสอยู่รอดของภาษาในอีกสิบปี ยี่สิบปีข้างหน้าก็จะสูงตามไปด้วย&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : เนื่องจาก Java เป็นภาษาที่ได้รับความนิยมสูงสุด มีบริษัทยักษ์ใหญ่จำนวนมากให้การสนับสนุน Java และเลือก Java เป็นภาษาหลักในพัฒนาซอพท์แวร์ของตัวเอง อีกทั้งในขณะนี้ Java กลายเป็น OpenSource เป็นที่เรียบร้อยแล้ว ดังนั้น Community ของ Java จึงแข็งแกร่งไร้เทียมทาน&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;: Python เป็น OpenSource โดยกำเนิด และเป็นภาษาที่ได้รับความนิยมมากขึ้นเรื่อย ๆ มีองค์กรณ์สนับสนุนอย่างเป็นทางการมากมาย (PSF, Google, Zope) แม้ความนิยมในตัว Python ยังไม่เทียบเท่า Java แต่ความแข็งแกร่งของ Community ก็ไม่ได้เป็นรอง Java แม้แต่น้อย&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;: แม้ว่า Ruby จะเป็นภาษาที่ค่อนข้องใหม่ แต่ในระยะเวลาสองปีที่ผ่านมา Ruby ได้รับความนิยมเพิ่มขึ้นอย่างรวดเร็ว สาเหตุก็เนื่องมาจาก Ruby on Rails ความแข็งแกร่งของ Community ของ Ruby จึงเพิ่มขึ้นอย่างน่าจับตามอง แม้กระนั้นก็ตาม Community ของ Ruby ยังอยู่ในภาวะสร้างตัว จึงยังไม่แข็งกร่งเท่าภาษาเขียนโปรแกรมรุ่นพี่อย่าง Java และ Python แต่คาดว่าอีกปีหรือสองปี Ruby อาจเทียบชั้นมาตีเสมอได้ไม่ยาก
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;u&gt;Round 3 : Library&lt;/u&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : เนื่องจาก Java เป็นภาษาที่ได้รับความนิยมอย่างสูง จึงไม่ใช่เรื่องแปลกที่ Java จะมี Library ให้เลือกใช้มากมาย โดยเฉพาะอย่างยิ่งการเขียนโปรแกรมเชิงธุรกิจ แต่ Library ส่วนใหญ่ของ Java ได้รับการออกแบบมาซับซ้อนเกินไป ทำให้ใช้ยาก อีกทั้งยังขาด Library สำหรับโปรแกรมทางวิทยาศาสตร์อีกจำนวนมาก
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; width=&quot;16&quot; height=&quot;15&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : แม้ว่า Library ของ Python คลอบคลุมการใช้งานมากกว่า Java (ทางวิทยาศาสตร์, Image Processing, Latex, 3D-Rendering, etc.) แต่ Library ส่วนใหญ่ยังมีมาตรฐานไม่เทียบเท่าของ Java ส่วนหนึ่งเนื่องมาจากเป็นโครงการ OpenSource ขนาดเล็ก
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : ความเป็นภาษาใหม่ของ Ruby ทำให้ Ruby มี Library ให้เลือกใช้ยังไม่มากนัก แต่ Library ของ Ruby ก็น่าจับตามอง เนื่องเพราะเป็น Library ที่ใช้งานง่าย และมีมาตรฐาน เมื่อเปรียบเทียบกับ Java และ Python
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;u&gt;Round 4 : Time to code&lt;/u&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : ใครบอกว่า Java เขียนง่ายผมคนหนึ่งล่ะที่ไม่เชื่อ คนส่วนใหญ่บอกว่า Java เขียนง่ายกว่า C++ ผมเห็นด้วยเพียงครึ่งเดียว Concept ของ Java แม้จะทำให้เขียนโปรแกรมง่ายกว่า C++ ก็จริง แต่ก็เข้าใจยากกว่าเหมือนกัน (แค่ Itration อ. ที่สอนต้องใช้เวลาอธิบายอยู่หลายอาทิตย์ กว่าพวกผมจะเข้าใจ) และเนื่องจาก Java ยังเป็น Compiled Language อยู่ การลองโน่นลองนี่จึงไม่ใช่เรื่องง่าย เพราะต้องเสียเวลาในการ Compile อีกทั้งความพยายามออกแบบ Java ให้ Common มากที่สุด ก็ทำให้ Java ซับซ้อนเกินกว่าเหตุ
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : ความเป็น Script ของ Python ทำให้การเขียนโค้ดด้วย Python รวดเร็วทันใจอยู่แล้ว บวกกับคอนเซพท์ที่เข้าใจง่ายของ Python ยิ่งทำการเขียนโค้ดของ Python เร็วขึ้นไปอีก เครื่องมือในการหาข้อผิดพลาดที่พร้อม คุณภาพโค้ดที่ได้ก็สูง เพราะโดนบังคับโดยตัวภาษา โครงสร้างของภาษาที่รองรับโครงการขนาดใหญ่ โดยส่วนตัวผมเห็นว่า Python น่าจะเป็นภาษาที่เขียนโค้ดได้เร็วที่สุดในขณะนี้
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : คุณสมบัติดี ๆ หลายอย่างของ Perl และ Python ถูกสอดแทรกลงใน Ruby ได้อย่างลงตัว แม้ว่า Ruby จะเป็นภาษาที่ใช้เครื่องหมายมากเกินไป (ออกแนว Perl) ทำให้โค้ดที่ได้อ่านยากไปบ้าง แต่ก็ถูกทดแทนด้วยคอนเซพท์หลายอย่างที่ไม่เหมือนใคร (symbol, attr_reader)  ในขั้นต้นการเขียนโค้ดด้วย Ruby อาจเร็วกว่า Python แต่ในระยะยาว Ruby อาจประสบปัญหาเดียวกับ Perl คือ Write only coding
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;u&gt;Round 5 : How does the language do ?&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;5.1 : Block&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : สำหรับผมแล้วการแบ่งบล็อกด้วยวงเล็บปีกกา {} เป็นการแบ่งบล็อกที่ผมชอบมากที่สุด เพราะสามารถทำได้ง่าย รวดเร็ว และชัดเจน แม้ว่าจะมีปัญหาเกิดขึ้นบ้าง เวลาที่มีบล็อกซ้อนบล็อกมากเกินไป แต่ปัญหานี้ไม่ว่าจะใช้วิธีการแบ่งบล็อกแบบไหน ก็เกิดขึ้นได้ทั้งนั้น การเลี่ยงการเขียนบล็อกซ้อนบล็อกจึงน่าจะเป็นทางออกที่ดีกว่า
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : แม้ว่าการแบ่งบล็อกด้วย indentation มีข้อดีหลายอย่าง ทั้งง่าย รวดเร็ว เป็นการบังคับให้คนเขียนโปรแกรมเขียนโค้ดที่อ่านง่าย แต่ก็มีอันตรายแอบแฝงหลายอย่าง เช่น การใช้ Tabalator ผสมกับการเว้นวรรค ขนาด indentation ที่ไม่เท่ากัน การเขียนโปรแกรมด้วย Python จึงต้องใช้ Editor ที่มีคุณภาพพอสมควร เพื่อป้องกันปัญหาดังกล่าว อีกทั้งต้องมีการตกลงกันระหว่าคนเขียนโปรแกรมว่าจะใช้ indentation แบบใด
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : การแบ่งบล็อกด้วย begin และ end แม้ว่าจะทำให้อ่านง่ายขึ้น แต่ก็ง่ายกว่าการใช้วงเล็บปีกกาไม่มากนัก Ruby เองก็ไม่ใช่ภาษาที่อ่านง่ายอยู่แล้ว การใช้ begin และ end จึงไม่มีข้อได้เปรียบที่ชัดเจน นอกจากจะทำให้โค้ดยาวขึ้น&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;5.2 : Loop&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : การวนลูปของ Java เริ่มต้นเดิมทีได้นำวิธีการของ C มาใช้ จากนั้นก็เพิ่ม Iteration เข้ามา แม้ว่า Iteration จะได้เปรียบ for ธรรมดาอยู่หลายอย่าง แต่ก็ทำให้โค้ดที่ได้อ่านยาก ต้องเขียนโค้ดยาว งง ๆ คนส่วนมากจึงยังคงใช้ for ธรรมดามากกว่า Iteration ใน Java 5 จึงได้มี for-each เพิ่มเข้ามา แต่ก็ยัง for-each ที่ยัง งง ๆ อยู่ ถึงตอนนี้ผมยังคอมไพล์โปรแกรมที่มี for-each ไม่ผ่านเลยครับ
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : คอนเซพท์ for-loop ของ Python ถือว่าเป็นคอนเซพท์ที่ดีมาก มีการนำ iteration  มาใช้โดยที่คนเขียนไม่ต้องทำความเข้าใจเรื่อง iteration แต่อย่างใด for-each เป็นการวนลูปที่เร็วที่สุดใน Python (เร็วกว่า while) มีฟังก์ชั่น zip() ให้ใช้ ทำให้สามารถใช้ for-each กับข้อมูลสองชุดที่มีขนาดเท่ากันพร้อมกันได้
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : คอนเซพท์วนลูปของ Ruby คล้ายคลึงกับของ Python มาก ข้อเสียเดียวที่ผมมองเห็นในการวนลูปของ Ruby คือ incosistence Ruby มีการวนลูปหลายรูปแบบเกินไป ทำให้เกิดความสับสนในการใช้งานในบางครั้ง
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;5.3 : Container&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : ตอนผมเรียน Java อ.ที่สอนท่านชอบบอกว่า Collection-Classes ของ Java มันเจ๋งอย่างไรบ้าง หากเปรียบมวยกับ Array ของ C++ มันก็เจ๋งกว่าจริง ๆ นั่นแหละ แต่มันซับซ้อนมาก ๆ มากเกินไป การทำความเข้าใจ Collection-Classes ของ Java ให้แตกฉาน เป็นศาสตร์ และศิลป์ในตัว ต้องใช้เวลานาน มีจำนวน Classes ให้เลือกใช้มากเกินไป ทั้งที่แต่ละ Class ก็ไม่ต่างกันมาก การนำข้อมูลดิบใส่ลงไปใน Container ก็ไม่ใช่เรื่องง่าย ๆ (ดูตัวออย่างโปรแกรม)
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : ใน Python มี Container เพียงสามแบบ คือ [List], {Dictionary} และ (Tuple) สามารถนำไปใช้งานง่าย คลอบคลุมทุกการใช้งาน เจ๋งไหม
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : คอยเซพท์ Container ของ Ruby เหมือนของ Python ทุกอย่าง แต่ไม่มี Tuple ให้ใช้
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;u&gt;Round 6 : OOP&lt;/u&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : Java เป็นภาษาเขียนโปรแกรมที่นำทฤษฎี OOP มาใช้งานได้เต็มรูปแบบ และสมบูรณ์ที่สุด มีเพียง C# เท่านั้น ที่สามารถเทียบชั้นกับ Java ได้ในเรื่องนี้ แต่คำถามคือ เรามีความจำเป็นเพียงใด ในการใช้ OOP เต็มรูปแบบ
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : แม้ว่า Python จะรองรับการเขียนโปรแกรมแบบ OOP แต่ผมก็มองว่าเป็น OOP แบบขำ ๆ มีคอนเซพท์ OOP หลายอย่างที่ขาดใน Python  (public, private, protected, interface, abstact calss, etc.) อีกทั้งทุกอย่างใน Python ไม่จำเป็ต้องเป็น Object สำหรับคนที่เรียน วิชา Software Engineering หรือ Software Architect มา อาจเริ่มต้นกับ Python ไปไม่ถูกเหมือนกัน แต่สิ่งเหล่านี้ถูกทดแทนได้โดย Meta- , Functional-Programming และ Dynamic Typing
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : Ruby อาจไม่รองรับ OOP เท่า Java แต่ดีกว่า Python และทำหน้าที่ OOP ได้อย่างไม่ขาดตกบกพร่อง OOP ในส่วนที่ขาดไปของ Ruby สามารถทดแทนได้ด้วย Dynamic Typing 
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;u&gt;Round 7 : Web-Development&lt;/u&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : แม้ว่า Java จะสร้างชื่อเสียงของตัวเองด้วยการใช้งานบนอินเตอร์เนต แต่ Framework เกี่ยวกับ Web-Development ของ Java ก็ไม่เคยประสบความสำเร็จอย่างจริงจัง Applet โดนโลกลืมอย่างน่าสงสาร Servlet และ JSP ก็โดน PHP กินส่วนแบ่ง ทิ้งห่างอย่างไม่เห็นฝุ่น เพราะมันดันใช้ยาก และตะกละตะกลาม แม้ว่าจะมี Web-Framework ใหม่ ๆ ออกมาให้ใช้งานมากมาย  แต่ก็กินส่วนแบ่งกันเอง และไม่มีนวัตกรรมใหม่ ๆ ที่น่าสนใจ 
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : &lt;a href=&quot;http://plone.org&quot;&gt;Plone&lt;/a&gt; ถือเป็น Killer Application ของ Python และเป็นเครื่องยืนยันได้ถึงคุณภาพด้านนี้ของ Python ได้อย่างดี อีกทั้ง Google และ YouTube ต่างก็หันมาใช้ Python อย่างออกหน้าออกตา สำหรับ Framework ก็มีทั้ง &lt;a href=&quot;http://www.zope.org/&quot;&gt;Zope&lt;/a&gt; , &lt;a href=&quot;http://www.djangoproject.com/&quot;&gt;Django&lt;/a&gt;  และ &lt;a href=&quot;http://www.turbogears.org/&quot;&gt;Turbo-Gear&lt;/a&gt;  ให้เลือกใช้ แต่ปัญหามันอยู่ตรงนี้แหละครับ มันมีให้เลือกใช้เยอะเกินไปจน inconsistence
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : บอกได้คำเดียวครับว่า &lt;a href=&quot;http://www.rubyonrails.org/&quot;&gt;Rails&lt;/a&gt;  มันสุดยอด
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;u&gt;Round 8 : GUI&lt;/u&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : เป็นจุดอ่อนของที่ติดตัว  Java มานานนับปี &lt;a href=&quot;http://en.wikipedia.org/wiki/Abstract_Window_Toolkit&quot;&gt;AWT&lt;/a&gt; , &lt;a href=&quot;http://en.wikipedia.org/wiki/Standard_Widget_Toolkit&quot;&gt;SWT&lt;/a&gt;  และ &lt;a href=&quot;http://en.wikipedia.org/wiki/Swing_%28Java%29&quot;&gt;Swing&lt;/a&gt; ต่างก็มีจุดอ่อนจุดแข็งของตัวเอง แต่เมื่อเปรียบเทียบทั้งสามกับ GUI ภาษาอื่น บอกได้เลยครับว่ามันห่วย สาเหตุก็เนื่องมาจาก Java มันเป็น Manage Code จึงไม่สามารถดึงพลังของ CPU มาใช้สำหรับ GUI ได้เท่า Native Code
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : Python เป็นภาษาเขียนโปรแกรมที่มี GUI ให้เลือกใช้มากที่สุดภาษาหนึ่ง ไม่ว่าจะเป็น Tk, Qt, KDE, GTK, Gnome, wxPython และทุก GUI-Toolkit ต่างก็เป็น GUI-Toolkit ที่มีประสิทธิภาพทั้งสิ้น
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : ความเป็นภาษาใหม่ของ Ruby ทำให้ Ruby ยังมี GUI ให้ใช้ไม่มากนัก แต่ไม่นานครับ ตอนนี้นักพัฒนาโปรแกรมของ Ruby ต่างเร่งผลิต Toolkit เหล่านี้ให้เราใช้งานอยู่ อีกสองสามปี ผมคิดว่า GUI ของ Ruby คงเทียบชั้น Python ได้ไม่ยาก
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;u&gt;Round 9 : ETC.&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;9.1 : Tools&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : เนื่องจาก Java เป็นภาษาที่เขียนยาก แต่มีคนใช้เยอะ เลยมี IDE ดี ๆ ให้เลือกใช้งานหลากหลายตามไปด้วย สองผู้นำในวงการ IDE ของ Java ได้แก่ &lt;a href=&quot;http://www.netbeans.org/&quot;&gt;NetBeans&lt;/a&gt;  และ &lt;a href=&quot;http://www.eclipse.org/&quot;&gt;Eclipse&lt;/a&gt; ซึ่งทั้งสองเป็น IDE ที่มีคุณภาพสูง แถมทั้งคู่เป็น OpenSource อีกต่างหาก นอกจาก IDE แล้ว Java ยังมีเครื่องมืออื่น ๆ ให้เลือกใช้อย่างจุใจ  
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : IDLE เป็นเครื่องมือมาตรฐานที่ติดตัวมากับ Python อันประกอบด้วย Editor และ Interactive-Python ซึ่งเป็นเครื่องมือที่เหมาะสำหรับงานขั้นพื้นฐานเท่านั้น แม้ว่า Python จะเป็นภาษาที่ค่อนข้างได้รับความนิยม แต่ถือว่ามีเครื่องมือจำพวก IDE ให้เลือกใช้งานน้อยมาก
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : ความเป็นน้องใหม่ของ Ruby ทำให้ Ruby เสียเปรียบในหลาย ๆ ด้าน ไม่เว้นแม้แต่ด้านเครื่องมือการพัฒนาโปรแกรม โดยส่วนตัวผมคิดว่า ในอนาคตเราก็อาจไม่มีเครื่องมืออลังการอย่าง NetBeans หรือ Eclipse สำหรับ Ruby หรือ Python มาใช้งานกัน เพราะคุณสมบัติของภาษา Script ทำให้เครื่องมือต่าง เป็นเพียงเครื่องอำนวยความสดวก มากกว่าเครื่องมือจำเป็น
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;9.2 : Platform&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : คอนเซพท์ Write once run any where ของ Java นั้น ถือเป็นนวรรตกรรมบรรลือโลก ที่ถึงตอนนี้ยังไม่มีใครมาเทียบรัศมี (.NET ฟังดูดี แต่ในความเป็นจริงมันงี่เง่า เพราะใช้งานได้เฉพาะ OS ความหวังจึงน่าจะอยู่ที่ Mono) Byte-Code ที่ได้ไม่ต้องเปลี่ยนแปลงใด ๆ ก็ใช้งานได้ทุก OS ดังนั้นเรื่อง Plattform ต้องยกให้ Java เขาไป
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : แม้ว่า Python จะรองรับหลาย OS ไม่แพ้ Java แต่โค้ดบางส่วน ก็ต้องมีการแก้ไขเพื่อให้เข้ากับ OS โดยเฉพาะในส่วนที่ใช้ Module os ของ Python อีกทั้งการนำไปใช้งาน ก็เป็นการนำซอร์สโค้ดไปใช้ ไม่ได้เป็น Byte-Code อย่าง Java
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : เหมือน Python ครับ :P
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;u&gt;Round 10 : Performance&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;ในที่สุดก็มาถึงยกสุดท้าย ยกที่สำคัญที่สุด เรื่องความเร็วมักเป็นปัจจัยสำคัญ ที่ได้รับการพิจรณราในการตัดสินใจไม่ใช้ภาษา Script เพราะคนส่วนใหญ่มีความเชื่อว่า ภาษา Script เป็นภาษาที่ช้า แต่จากประสบการณ์และความรู้สึกของผม ภาษา Script ไม่ได้มีความเร็วเพียงแค่ เพียงพออย่างพอเพียง แต่เร็วกว่าภาษา Managed Code อย่าง Java เสียด้วยซ้ำ แต่ก็เป็นเพียงความรู้สึกที่ไม่ได้รับการพิสูจน์ (คนอ่านอย่าคิดลึกเชียวล่ะ) ครั้งนี้ถือเป็นโอกาสดี เลยเอาเสียหน่อย&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Platform&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Computer-Modell : Notebook Samsung R55&lt;br /&gt;
CPU : Intel Core 2 Duo Centrino T5500&lt;br /&gt;
CPU-Freq : 1830 MHz&lt;br /&gt;
RAM : 1 GB&lt;br /&gt;
OS : Ubuntu 6.04 LTS&lt;/p&gt;
&lt;p&gt;Java-1.4 : gij (GNU libgcj) version 4.1.0 (Ubuntu 4.1.0-1ubuntu8)&lt;br /&gt;
Java-1.6 : Java(TM) SE Runtime Environment (build 1.6.0-b105)&lt;br /&gt;
Python : Python 2.4.3 (#2, Oct  6 2006, 07:52:30) , [GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2&lt;br /&gt;
Ruby : ruby 1.8.4 (2005-12-24) [i486-linux]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;หมายเหตุ &lt;/strong&gt;สำหรับ Java ให้ยึด Java 1.6 เป็นหลักครับ เพราะ Java ของ GNU มันไม่ดีเท่า Java 1.6 ของ Sun แต่สูสี Java 1.4 ของค่ายอื่น ๆ อยู่ (แต่จากการคาดการณ์ ผมคิดว่าคนส่วนใหญ่ยังใช้ Java 1.4 อยู่นะ)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Speed&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/speed.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;table border=&quot;1&quot; width=&quot;90%&quot; align=&quot;center&quot; style=&quot;border: 1px solid gray&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;Test&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;Java 1.4&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;Java 1.6&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;Python&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;Ruby&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Console&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;12.2&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;13.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;11.7&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;12.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hash&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;7.4&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;2.0&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;3.6&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;11.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IO&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;1.2&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;0.7&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;1.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;6.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;List&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;2.2&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;0.4&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;0.4&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Math&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;0.7&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;0.5&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;0.3&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;4.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Real-World-Application&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;14.8&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;3.6&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;0.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;1.5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Memory-usage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/mem.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;table border=&quot;1&quot; width=&quot;90%&quot; align=&quot;center&quot; style=&quot;border: 1px solid gray&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;Test&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;Java 1.4&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;Java 1.6&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;Python&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;Ruby&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Console&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;17.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;8.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;17.5&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;1.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hash&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;17.7&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;8.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;2.4&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;40.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IO&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;17.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;8.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;2.3&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;1.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;List&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;17.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;8.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;2.3&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;4.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Math&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;24.7&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;22.3&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;13.9&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;19.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Real-World-Application&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;45.3&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;37.2&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;6.2&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;16.7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Console&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ในส่วนนี้ไม่มีใครได้เปรียบเสียเปรียบอย่างได้ชัดในเรื่องความเร็ว แต่การใช้ Memory ต้องยกใช้ Ruby ส่วน Python มีการใช้ Memory มากผิดปกติ สาเหตุน่าจะมาจาก range() ที่ต้องผลิต list ขนาดยักษ์&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;code&quot; id=&quot;code_1&quot;&gt;
&lt;pre class=&quot;java&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; test &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; main&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; args&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;        &lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;; i &amp;lt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;1000000&lt;/span&gt;; i++&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;            &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3ASystem+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;python&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;for&lt;/span&gt; x &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;range&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;1000000&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;    &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;print&lt;/span&gt; x&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Ruby&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color:#006666;&quot;&gt;1000000&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;times&lt;/span&gt; &lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;do&lt;/span&gt; |i|&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color:#CC0066; font-weight:bold;&quot;&gt;puts&lt;/span&gt; i&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Hash&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ruby ทำได้ไม่ดีนัก ทั้งในเรื่องความเร็ว และการใช้ Memory ในทางกลับกัน Python กลับทำได้ดีจนน่าแปลกใจ มีการใช้ Memory ขั้นต่ำสุด ความเร็วห่างจาก Java 1.6 ไม่มากนัก &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;java&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.util.*;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; test &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; main&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; args&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;; i &amp;lt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;6000&lt;/span&gt;; i++&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AMap+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Map&lt;/span&gt;&lt;/a&gt; x = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AHashMap+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;HashMap&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			&lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; j = &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;; j &amp;lt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;1000&lt;/span&gt;; j++&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;				&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AInteger+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;/a&gt; I=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AInteger+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;				&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AInteger+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;/a&gt; J=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AInteger+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;j&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;				x.&lt;span style=&quot;color: #006600;&quot;&gt;put&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;J,I&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;				x.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;J&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Python&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;python&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;for&lt;/span&gt; i &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;range&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;6000&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;    x=&lt;span style=&quot;color: black;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;    &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;for&lt;/span&gt; j &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;range&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;1000&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;        x&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;=i&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;        x&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Ruby&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color:#006666;&quot;&gt;6000&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;times&lt;/span&gt; &lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;do&lt;/span&gt; |i|&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	x=&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color:#006666;&quot;&gt;1000&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;times&lt;/span&gt; &lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;do&lt;/span&gt; |j|&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		x&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt; = i&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		x&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;IO&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ในเรื่องความเร็ว ไม่มีอะไรน่าแปลกใจ แต่การใช้  Memory ของทุกภาษาอยู่ในขั้นต่ำสุด&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;java&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.io.*;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; test&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; main&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; args&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;try&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AFile+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;File&lt;/span&gt;&lt;/a&gt; f = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AFile+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;File&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/tmp/scratch&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3APrintWriter+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;PrintWriter&lt;/span&gt;&lt;/a&gt; pw= &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3APrintWriter+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;PrintWriter&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;				&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3ABufferedWriter+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;BufferedWriter&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;				&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AFileWriter+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;FileWriter&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;f&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			&lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;; i &amp;lt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;1000000&lt;/span&gt;; i++&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;				pw.&lt;span style=&quot;color: #006600;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			pw.&lt;span style=&quot;color: #006600;&quot;&gt;close&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AIOException+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;IOException&lt;/span&gt;&lt;/a&gt; ioe&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			ioe.&lt;span style=&quot;color: #006600;&quot;&gt;printStackTrace&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Python&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;python&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;f=&lt;span style=&quot;color: #008000;&quot;&gt;open&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;/tmp/scratch&#039;&lt;/span&gt;,&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;wb&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;for&lt;/span&gt; i &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;xrange&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;1000000&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;    f.&lt;span style=&quot;color: black;&quot;&gt;write&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;f.&lt;span style=&quot;color: black;&quot;&gt;close&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Ruby&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;f = File.&lt;span style=&quot;color:#9900CC;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#996600;&quot;&gt;&amp;quot;/tmp/scratch&amp;quot;&lt;/span&gt;, &lt;span 
style=&quot;color:#996600;&quot;&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color:#006666;&quot;&gt;1000000&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;times&lt;/span&gt; &lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;do&lt;/span&gt; |i|&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	f.&lt;span style=&quot;color:#9900CC;&quot;&gt;syswrite&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;i.&lt;span style=&quot;color:#9900CC;&quot;&gt;to_s&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;f.&lt;span style=&quot;color:#9900CC;&quot;&gt;close&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;List&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;งานนี้มีการใช้ทริกเล็กน้อยสำหรับ Python ทำให้ Python มีความเร็วเทียบเท่า Java-1.6 ขึ้นมาได้ ส่วน Ruby รั้งท้ายเหมือนเดิม&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;java&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.util.*;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; test &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; main&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; args&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AList+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;List&lt;/span&gt;&lt;/a&gt; initial = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AArrayList+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;ArrayList&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	initial.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;a&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	initial.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;b&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	initial.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;c&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	initial.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;d&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	initial.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;e&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	initial.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;f&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	initial.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;g&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;        &lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;; i &amp;lt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;3000&lt;/span&gt;; i++&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;            &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AList+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;List&lt;/span&gt;&lt;/a&gt; v = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AArrayList+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;ArrayList&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;initial&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;            &lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; j = &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;; j &amp;lt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;1000&lt;/span&gt;; j++&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;                v.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AInteger+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;j&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;                v.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;j&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Python&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;python&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;a = &lt;span style=&quot;color: #008000;&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;lambda&lt;/span&gt; x : &lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;a&#039;&lt;/span&gt;,&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;b&#039;&lt;/span&gt;,&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;c&#039;&lt;/span&gt;,&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;d&#039;&lt;/span&gt;,&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;e&#039;&lt;/span&gt;,&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;f&#039;&lt;/span&gt;,&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;g&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;+&lt;span style=&quot;color: #008000;&quot;&gt;range&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;1000&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;,&lt;span style=&quot;color: #008000;&quot;&gt;range&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;3000&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;for&lt;/span&gt; i &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;in&lt;/span&gt; a : i&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Ruby&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color:#006666;&quot;&gt;3000&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;times&lt;/span&gt; &lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;do&lt;/span&gt; |i|&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	v=&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;&#039;a&#039;,&#039;b&#039;,&#039;c&#039;,&#039;d&#039;,&#039;e&#039;,&#039;f&#039;,&#039;g&#039;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color:#006666;&quot;&gt;1000&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;times&lt;/span&gt; &lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;do&lt;/span&gt; |j|&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		v.&lt;span style=&quot;color:#9900CC;&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;j&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		v&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Math&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;การทดสอบในส่วนนี้ค่อนข้างใกล้เคียงการใช้งานจริงที่ผมใช้อยู่ ที่ตลกคือ การจัดการ Memory และระบบ Typecast ของ Java ตอนแรกผมใช้ Class ArrayList ในการเก็บข้อมูล แต่ก็ต้องมานั่งปวดหัวกับเรื่อง Typecast มากกว่าจะมาจดจ่อกับตัวโปรแกรม เลยต้องหันใช้ double[] แทน แต่ตัว double[] ก็เก็บข้อมูลได้เพียง 2000000 หน่วย และไม่สามารถประกาศตัวแปรขนาด 2000000 หน่วย ติดต่อกันได้เกิน 3 ตัวแปร ไม่งั้นมีเรื่อง ส่วน Ruby ก็ช้าจนน่าเกลียด &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;java&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import java.lang.Math;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; test &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; main&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AString+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; args&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; x       = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;200000&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; gauss   = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;200000&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; laplace = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;200000&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; si      = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;200000&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; sisqr   = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;200000&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; bp      = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;200000&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt; ; i &amp;lt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;200000&lt;/span&gt;; i++&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			x&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;       = &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;i/&lt;span style=&quot;color: #cc66cc;&quot;&gt;10000.0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;-10.0&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			gauss&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;   = &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AMath+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;exp&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;-1.0&lt;/span&gt; * x&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; * x&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			laplace&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; = &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AMath+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;exp&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;-1.0&lt;/span&gt; * &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AMath+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;abs&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			si&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;      = &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AMath+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;sin&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;*&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AMath+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;PI&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;/&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;*&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AMath+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;PI&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			sisqr&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;   = si&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;*si&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;			bp&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;      = si&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;*&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3AMath+java.sun.com&amp;amp;bntI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;cos&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;*&lt;span style=&quot;color: #cc66cc;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;		&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Python&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;python&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;import&lt;/span&gt; numpy&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;x = numpy.&lt;span style=&quot;color: black;&quot;&gt;arange&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;-10&lt;/span&gt;,&lt;span style=&quot;color: #ff4500;&quot;&gt;10&lt;/span&gt;,&lt;span style=&quot;color: #ff4500;&quot;&gt;0.0001&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;gauss   = numpy.&lt;span style=&quot;color: black;&quot;&gt;exp&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;-&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;x**&lt;span style=&quot;color: #ff4500;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;laplace = numpy.&lt;span style=&quot;color: black;&quot;&gt;exp&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;-numpy.&lt;span style=&quot;color: #008000;&quot;&gt;abs&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;si      = numpy.&lt;span style=&quot;color: black;&quot;&gt;sin&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;x*numpy.&lt;span style=&quot;color: black;&quot;&gt;pi&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;/&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;numpy.&lt;span style=&quot;color: black;&quot;&gt;pi&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;sisqr   = si**&lt;span style=&quot;color: #ff4500;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;bp      = si*numpy.&lt;span style=&quot;color: black;&quot;&gt;cos&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;x*&lt;span style=&quot;color: #ff4500;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Ruby&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;ruby&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;x = &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;gauss = &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;laplace = &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;si = &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;sisqr = &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;bp = &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color:#006666;&quot;&gt;200000&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;times&lt;/span&gt; &lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;do&lt;/span&gt; |i|&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	x.&lt;span style=&quot;color:#9900CC;&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;i / &lt;span style=&quot;color:#006666;&quot;&gt;10000.0&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006666;&quot;&gt;-10.0&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	gauss.&lt;span style=&quot;color:#9900CC;&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt; Math.&lt;span style=&quot;color:#9900CC;&quot;&gt;exp&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006666;&quot;&gt;-1.0&lt;/span&gt; * x&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt; * x&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	laplace.&lt;span style=&quot;color:#9900CC;&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;Math.&lt;span style=&quot;color:#9900CC;&quot;&gt;exp&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006666;&quot;&gt;-1.0&lt;/span&gt; * x&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color:#9900CC;&quot;&gt;abs&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	si.&lt;span style=&quot;color:#9900CC;&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;Math.&lt;span style=&quot;color:#9900CC;&quot;&gt;sin&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;* Math::PI&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt; * Math::PI&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	sisqr.&lt;span style=&quot;color:#9900CC;&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;si&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;*si&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;	bp.&lt;span style=&quot;color:#9900CC;&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;si&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;*Math.&lt;span style=&quot;color:#9900CC;&quot;&gt;cos&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#93;&lt;/span&gt;*&lt;span style=&quot;color:#006666;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&lt;span style=&quot;color:#9966CC; font-weight:bold;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: Tahoma;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;Real-World-Application&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;การทดสอบสุดท้าย ผมคิดว่าน่าจะใกล้เคียงกับการใช้งานจริงมากที่สุด ในการทดสอบนี้ตัวโปรแกรมต้องสร้าง Query เพื่อสอบถามไปยังฐานข้อมูลก่อน เมื่อได้ข้อมูลมาแล้ว จึงเปลี่ยนแปลงรูปแบบข้อมูลด้วย RegEx และ Splitจากนั้นข้อมูลจะถูกเก็บไว้ใน Hash สุดท้ายก็แสดงผลข้อมูลออกมาทาง Console จะเห็นได้ว่า การทดสอบนี้ มีส่วนประกอบที่ใช้ในการเขียนโปรแกรมเวบไซท์ค่อนข้างครบ&lt;/p&gt;
&lt;p&gt;ข้อมูลที่อยู่ในฐานข้อมูลก็คือข้อมูลของ BioLawCom.De คำที่ผมใช้หาในฐานข้อมูลคือ ตัวอักษร &lt;strong&gt;a &lt;/strong&gt;ข้อมูลที่ได้มีทั้งสิ้น 690 rows&lt;/p&gt;
&lt;p&gt;สิ่งที่น่าเบื่อมากใน Java คือ Typecast และไม่สามารถบรรจุข้อมูลลงใน Hash และ List ได้แบบง่าย ๆ อย่าง Python กว่าผมจะเขียนโปรแกรมนี้ด้วย Java ได้ต้องใช้เวลานานมาก เพราะต้องแก้ไขข้อผิดพลาดเกือบทุกครั้งที่คอมไพล์ ส่วน Ruby และ Python นั้นมีความคล้ายคลึงกันมาก ต่างกันเพียงแค่รายละเอียดเล็กน้อยเท่านั้น&lt;/p&gt;
&lt;p&gt;โปรแกรมที่ได้จาก Ruby และ Python มีขนาดใกล้เคียงกันมาก แต่ของ Java มีขนาดใหญ่กว่าเกือบสองเท่า เวลาที่ใช้ในการเขียนอาจจะมากกว่าห้าหรือสิบเท่า ผลที่ออกมาก็ไม่คุ้มกับเวลาที่เสียไปเอาเสียเลย Java ทั้งใช้เวลามากกว่า และใช้ Memory มากกว่า น่าผิดหวังมาก ส่วน Python นั้นนำโด่ง ทิ้งห่าง Ruby เกือบสองเท่า&lt;/p&gt;
&lt;p&gt;(เนื่องจากโค้ดยาวมาก ดังนั้น ผมเลยแยกโค้ดออกมาต่างหาก สามารถดาวน์โหลดได้ที่ &lt;a href=&quot;http://www.biolawcom.de/files/member/1/blog/583/Real.zip&quot;&gt;Real.zip&lt;/a&gt;  ครับ)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; width=&quot;16&quot; height=&quot;15&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : มีความเร็วเหนือกว่า Ruby และ Python ในเรื่องง่าย ๆ และพื้น ๆ เท่านั้น โปรแกรมที่มีความซับซ้อนมากขึ้น Java จะเริ่มตะกละ และอุ้ยอ้าย การจะเขียน Application ขนาดใหญ่ด้วย Java จึงต้องเตรียมรับเรื่องนี้ไว้ให้ดี
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python : &lt;/strong&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : ต้องยกให้เป็นผู้ชนะในครั้งนี้ครับ เพราะมีความเร็วสูงสุดใน 4 จาก 6  การทดสอบ  ในการทดสอบที่ Python ช้ากว่า Java ก็มีความแตกต่างเกิดขึ้นไม่มากนัก
	&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruby :&lt;/strong&gt; &lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt;&lt;img style=&quot;width: 16px; height: 15px&quot; src=&quot;http://www.biolawcom.de/files/member/1/blog/583/bookmark.png&quot; border=&quot;0&quot; alt=&quot;image&quot; /&gt; : แม้ว่า Ruby จะไม่ชนะในการทดสอบใดเลย แต่ก็รักษาตำแหน่งการใช้ Memory น้อยได้โดยตลอด แม้ว่าการทดสอบพื้น ๆ Ruby จะเป็น looser แต่ในการใช้งานจริง โดยเฉพาะ Web-Application Ruby ก็สามารถรักษาความเร็วของตัวเองได้ดีทีเดียว แต่สำหรับโปรแกรมจำพวก Simulation ลืม Ruby ไปได้เลยครับ
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;ในส่วนของผลรวมคะแนน ผมคิดว่าแต่ละคนคงมีตัวคูณสำหรับคะแนนจากแต่ละยกที่ไม่เท่ากัน สำหรับผม ในเรื่อง Peformance x 3 และ Time to code x 2 และ Python ก็เป็นแชมป์ในครั้งนี้ แต่ทั้งหมดทั้งสิ้นก็เป็นการให้คะแนนโดยผมเพียงคนเดียว ซึ่งอาจไม่ตรงใจหลาย ๆ คน ก็สามารถให้คะแนนแต่ละส่วนกันได้ตามความพอใจครับ&lt;/p&gt;
&lt;p&gt;ทั้งนี้และทั้งนั้น ในส่วนของ Performance และ Time to code เป็นส่วนสำคัญมาก และ ผลก็คงเปลี่ยนแปลงจากนี้ไปได้ไม่มาก จากสองส่วนนี้ผมพอจะสรุปได้ว่า Java เป็นอะไรที่ไม่น่าใช้เอาเสียเลย เพราะต้องเสียเวลาเขียนโค้ดนาน แต่โปรแกรมที่ได้กลับไม่มีข้อได้เปรียบใด ๆ&lt;/p&gt;
&lt;p&gt;สำหรับบริษัทพัฒนาโปรแกรม หากเลือกใช้ Java เหมือนกับเป็นการเสียเงินลงทุนไป 5-10 เท่าโดยใช่เหตุ ส่วนหนึ่งต้องลงทุนไปกับการเขียนโค้ดที่ต้องใช้เวลานานขึ้น ส่วนหนึ่งต้องเสียไปกับการซื้อเครื่องมือมาช่วยในการพัฒนาโปรแกรม ส่วนหนึ่งต้องเสียไปในการอบรมพนักงาน และอื่น ๆ อีกมากมาย&lt;/p&gt;
&lt;p&gt;ข้อได้เปรียบเดียวของ Java คือ เครื่องมือที่พร้อม และมีทฤษฎีรองรับมากมาย ทฤษฎีการวางโครงสร้างระบบส่วนมาก ใช้ Java เป็นภาษาอ้างอิง ในส่วนของทฤษฎีผมมองว่า เราสามารถนำมาปรับใช้กับ Python และ Ruby ได้ไม่ยาก&lt;/p&gt;
&lt;p&gt;ส่วน Python นั้นเป็นภาษาที่สามารถนำไปใช้งานได้หลายรูปแบบ ใช้เวลาในการเขียนโค้ดน้อย โปรแกรมที่ได้มี Performance สูง (ว่ากันว่า Python 3000 จะมีความเร็วเพิ่มขึ้นอีก 20-30%) จึงไม่ใช่เรื่องแปลกที่ Python จะเป็นภาษาที่ได้รับความนิยมมากขึ้นเรื่อย ๆ&lt;/p&gt;
&lt;p&gt;ข้อเสียเปรียบเดียวของ Ruby คือ เป็นภาษาที่ยังใหม่อยู่ จึงยังอาจไม่พร้อมในหลาย ๆ เรื่อง แต่ Community ของ Ruby ก็โตวันโตคืน ทำให้ Ruby ได้รับการพัฒนาอย่างรวดเร็ว และ อาจเทียบชั้นภาษารุ่นพี่อย่าง Java และ Python ได้ในอนาคตอันใกล้ &lt;/p&gt;
&lt;p&gt;แม้กระนั้นก็ตาม Web-Application  ถือเป็นจุดแข็งที่สำคัญที่สุดของ Ruby คุณภาพของ Ruby on Rails อาจทำให้ Ruby เป็นภาษาที่เข้ามาแทนที่ PHP ในอนาคต แต่เรื่องนี้เราคงด่วนสรุปไม่ได้ เพราะขณะนี้มีโปรแกรมจำนวนมากใช้ PHP การเข้ามาแทนที่ PHP ของ Ruby จึงต้องใช้ระยะเวลา และปัจจัยอื่น ๆ อีกมากมาย&lt;/p&gt;
</description>
 <comments>http://www.blognone.com/news/4385/hard-fight-java-vs-python-vs-ruby#comments</comments>
 <category domain="http://www.blognone.com/special">Special Report</category>
 <category domain="http://www.blognone.com/topics/development">Development</category>
 <category domain="http://www.blognone.com/topics/java">Java</category>
 <category domain="http://www.blognone.com/topics/python">Python</category>
 <category domain="http://www.blognone.com/topics/ruby">Ruby</category>
 <pubDate>Mon, 09 Apr 2007 08:15:46 +0000</pubDate>
 <dc:creator>bow_der_kleine</dc:creator>
 <guid isPermaLink="false">4385 at http://www.blognone.com</guid>
</item>
</channel>
</rss>

