เลือกซื้อ Mac สำหรับ การพัฒนาโปรแกรม (ภาค Mac mini)

ผมเคยได้เขียนเกี่ยวกับ แนวทางในการเลือกซื้อ mac สำหรับไว้ใช้เขียนโปรแกรม ไปตั้งแต่ 2 ปีก่อนๆ  และในปี 2014 นี้ Apple ก็ได้เปลี่ยน model ของ Mac ครบทุกรุ่น โดยเริ่มตั้งแต่ฝั่ง Labtop คือ Macbook Air และ Macbook Pro

Macbook Air – Macbook Pro

ในส่วนของโน๊ตบุ้คนี้ การใช้งานในการเขียนโปรแกรมโดยรวมแล้ว ก็ยังยืนยันคำเดิมว่า Macbook Pro นั้นแรงกว่า Macbook Air แทบจะทุกๆด้าน เพราะ CPU, Graphic ที่เร็วกว่า ทำให้ Macbook Pro นั้นชนะ Macbook Air ขาดลอย .. ถ้าคิดจะเลือก Macbook Pro มันก็เหลือแค่การตัดสินใจว่า จะเอา retina หรือเปล่า และเลือกใช้จอ ขนาดเท่าใด ก็เท่านั้นเอง ..

แต่อย่างไรก็ตาม สิ่งที่ Macbook Pro นั้นแพ้ Macbook Air อย่างแน่นอนคือ เรื่องความ เบา และบาง  ถึงแม้ว่าโมเดลใหม่ จะมีขนาดเล็กและน้ำหนักเบากว่ารุ่นก่อน แต่ Macbook Pro ก็ยังหนัก และหนา กว่า Air อย่างมาก สำหรับคนที่ไปไหนมาไหน บ่อยๆอย่างผม การจะถือของมีน้ำหนักเยอะๆ มันไม่ใช่เรื่องที่ดีเลย โดยเฉพาะ หากต้องเดินทางด้วยเครื่องบิน เพราะน้ำหนักของ สิ่งของเป็นเรื่องสำคัญมาก ยิ่งสัมภาระเยอะและหนัก ก็ยิ่งลำบากและหงุดหงิดในการเดินทาง ดังนั้น Macbook Air มันก็ตอบโจทย์สำหรับคนกลุ่มอย่างผมได้ดีกว่า .. ลดประสิทธิภาพของเครื่องลง แต่ได้ความเบาสบายมาแทน อย่างไรก็ตาม Macbook Air รุ่นจอเล็ก 11″ นั้นผมไม่แนะนำให้ซื้อมาใช้เพราะ เนื่องจากจอภาพมีขนาดเล็กเกินไป เขียนโปรแกรม ลำบาก อย่าลืมว่าหากเขียน iOS ต้องมีหน้าจอ iOS Simulator เข้ามาอีก

ดังนั้นหากตัดสินใจ จะเลือกซื้อ Pro หรือ Air แนะนำให้เลือกจาก การใช้ชีวิตประจำวันเป็นหลัก .. ถ้าไม่ค่อยได้เดินทาง หรือไม่ได้ถือไปไหนมาไหนบ่อยๆ ก็ยังแนะนำให้เลือก Macbook Pro เพราะเครื่องมันแรงกว่าเยอะ แต่ถ้าต้องเดินทางบ่อยๆ ชอบเอาไปไหนมาไหนด้วย  ผมแนะนำให้ซื้อ Macbook Air ถึงแม้ว่า spec มันจะด้อยกว่า แต่จะได้ความสะดวก บางและเบา กลับคืนมาแทน

** หากต้องการ upgrade ram ให้ทำตั้งแต่ตอนซื้อเลย เพราะทั้ง Macbook Air และ Macbook Pro Retina ไม่สามารถเพิ่ม ram ได้ภายหลัง **

iMac

ถ้าคิดจะซื้อ desktop สักเครื่อง iMac ก็คงเป็นคำตอบแรก ในปัจจุบัน (2014) มีเครื่อง iMac หลาย model ซึ่งจะแบ่งออกเป็น 21 กับ 27 นิ้ว ถ้าชอบหน้าจอใหญ่ๆ ก็แนะนำ 27 นิ้ว แต่ส่วนตัวคิดว่า 21 นิ้ว ก็เพียงพอแล้ว เคยใช้ 27 นิ้วแล้วมันใหญ่เกินไป มองไม่ทั่วจอ อันนี้ก็แล้วแต่ความถนัดเลย หากเงินถึง และชอบจอใหญ่ๆ จะซื้อ 27 นิ้วก็ได้  ในการเลือกซื้อ iMac นี้ผมไม่แนะนำให้ซื้อรุ่น iMac 21 นิ้ว รุ่นต่ำสุด (cpu 1.4GHz dual-core Intel Core i5) เพราะประสิทธิภาพมันแทบจะไม่ต่างอะไรกับ Macbook Air ควรจะซื้อรุ่น 21.5 inch, 2.5 GHz ขึ้นไป จะคุ้มค่าเงินมากกว่า

iMac Retina – 5K ?

โดยส่วนตัวผมเห็นว่า ไม่จำเป็นเลยที่จะต้องลงทุนซื้อรุ่น retina  เพราะสิ่งที่เราใช้งานเป็นประจำก็คือ การเขียนโปรแกรม ซึ่งมันไม่จำเป็นต้องการจอละเอียดขนาด 5K

 

Mac Pro

คงไม่ต้องพูดถึงเรื่องความแรง เพราะ Mac Pro  ตัวใหม่นี้แรงระดับพระกาฬ แน่นอนว่ามันมาพร้อมกับราคาโหดมากๆ คือเกือบแสนบาท แต่อย่างไรก็ตาม Mac Pro นี้จะให้ความคุ้มค่าในระยะยาว มากกว่า model อื่นๆ คือพูดง่ายๆว่า อย่างเช่น Mac Pro ตัว 2008 นั้นเร็วเท่ากับ iMac ปี 2012 สรุปว่ากว่าที่ iMac จะตาม Mac Pro ทันก็ต้องใช้เวลากว่า 4 ปี ดังนั้นแล้วในระยะยาว ถ้าซื้อแล้วใช้เกิน 5 ปี ก็คุ้มค่ามาก ต่อการลงทุน

Mac Mini

มาถึงเจ้าน้องเล็กคนสุดท้อง ของตระกูล Mac ผมต้องบอกเลยว่า ผิดหวังกับตัว Mac Mini 2014 มากทีเดียว เนื่องจาก ความเร็วโดยรวมต่อราคานั้น ลดลง .. อีกทั้งไม่สามารถเปลี่ยน ram ได้เหมือนกับรุ่นก่อนๆ ในรุ่น model กลาง คือ 2.6 GHz นั้น ได้ CPU dual core i5  แต่จ่ายราคา 24000 บาท .. ส่วน Mac mini ปี 2012 รุ่น quad core i7 ก็มีราคาเท่ากัน คือ 24000 ( อิงราคาจาก iStudio ณ วันที่เขียน) คือเรียกว่า .. ถ้าใช้เงินเท่ากัน ไปซื้อ model เก่า จะได้ความเร็วที่มากกว่า รุ่นใหม่ ด้วยซ้ำไป .. แต่สิ่งที่จะได้จากรุ่นใหม่ คือการ์ดจอที่แรงกว่าตัวเดิม นิดหน่อยเท่านั้นเอง … ผมถึงได้บอกว่า น่าผิดหวังมากสำหรับตัวใหม่

ดูจากการรูป ถ้าหากพิจารณาจากการทำงานแบบ Single Core จะเห็นว่ารุ่น ปี 2014 นั้นเร็วกกว่า ปี 2012 แค่นิดหน่อยเท่านั้น

macmini-october-2014-singlecore-thumb

และในส่วนผลลัพธ์ของการทำงานแบบ Multicore จะเห็นได้ว่า Mac Mini ปี 2014 นั้น แพ้ ปี 2012 (i7) แบบราบคาบ

macmini-october-2014-multicore-thumb

ดังนั้นแล้ว ผมจึงไม่แนะนำให้ซื้อ Mac Mini เลย ยกเว้นว่า งบ จำกัดมากจริงๆ เพราะมันเป็นตัวเลือกที่ไม่คุ้มเอาเสียเลย

Image Ref: http://www.primatelabs.com/blog/2014/10/estimating-mac-mini-performance/

Swift – The new road

นับตั้งแต่ Apple ได้ประกาศ iOS 8 ในเดือนมิถุนายนที่ผ่านมา แผนการเขียนหนังสือ Objective-C ที่วางแผนไว้ก็ต้องพับเก็บหมด แม้ว่าผมเขียนเสร็จไปแล้วก็ตาม ทั้งนี้ก็เป็นเพราะว่าทาง Apple ได้ประกาศภาษาใหม่ที่ใช้พัฒนา iOS ขึ้นมานั่นก็คือภาษา Swift ( Swift คือชื่อของ นก )

Why Swift ?

ต้องยอมรับอย่างหนึ่งว่า Objective-C นั้นล้าหลังมาก เนื่องจากเป็นภาษา ที่เกิดมานานแล้ว ก่อนจะเกิด Java ด้วยซ้ำไป ทำให้ตัวภาษานั้นขาด feature หลายๆอย่างที่ภาษาโปรแกรมสมัยใหม่มี  แม้ปีหลังๆจะเพิ่มเติมหลายสิ่งเข้ามา เช่น properties , extension และ ARC  และตัวภาษาปรับปรุงให้มีประสิทธิภาพดีมากขึ้นกว่าเดิม แต่อย่างไรก็ตาม ภาษา Objective-C นั้นเป็นภาษาที่ใช้เวลาในการเรียนรู้ค่อนข้างสูง และมี syntax หน้าตาค่อนข้างประหลาดเช่น ยกตัวอย่างเช่น การเรียกใช้เมธอด ก็จะใช้สัญลักษณ์ [ ] ดังเช่น

[obj method];

แต่ในกรณีของภาษาอื่นๆเช่น java , c++ , c# และแม้กระทั่ง python ก็จะเขียนแทบจะเหมือนๆกัน คือ

obj.method();

เห็นได้ชัดเลยว่าภาษา Objective-C นั้น มันช่างแต่งต่างจากชาวบ้านเหลือเกิน ยิ่งในช่วงหลังมี block เข้ามาด้วย ตัว syntax ของภาษาก็ยิ่งแปลกประหลาดไปกันใหญ่ ปัญหาสองอย่างนี้มันเป็นปัญหาที่สาหัสพอสมควร เพราะนับวันผู้ใช้ Objective-C ก็มากขึ้นเรื่อยๆ และถ้ามองย้อนใน 5  ปีหลัง จะเห็นว่าภาษา Objective-C เพิ่ม feature ไปหลายอย่างมากมาย  เมื่อมองระยะยาวแล้วมันก็เหมือนแก้ปัญหาเฉพาะหน้าไปเรื่อยๆ  ทางออกของ Apple ก็คือสร้างภาษาใหม่ทดแทนภาษา Objective-C เพื่อแก้ปัญหาในระยะยาว และนั่นเลยเป็นที่มาของภาษา Swift

Swift History

ภาษา Swift นั้นมีจุดกำเนิดมาจาก Chris Lattner เขาเป็นคนเดียวกับ คนที่สร้าง LLVM Compiler ซึ่งเป็นคอมไพลเลอร์สมัยใหม่ มีประสิทธิภาพสูง (ผมเคยเขียนเรื่อง LLVM ไว้แล้ว)  Chris นั้นได้เข้ามาทำงานกับ Apple ตั้งแต่เมื่อ 2005 จากวิทยานิพนธ์ ป.เอก เรื่อง LLVM ( ถ้าหากสนใจการทำงาของ llvm ลองไปอ่านที่ Chris เขียนไว้ได้ http://aosabook.org/en/llvm.html )  เมื่อ Chis เริ่มทำงานกับ Apple สิ่งแรกที่ได้ปรับปรุงให้กับ Objective-C ก็คือโปรเจค Clang ซึ่งเป็น front-end compiler ให้กับภาษา C , C++ และ Objective-C จากการโปรเจคนี้เองทำให้ Chris เห็นข้อจำกัดของ Objective-C และต้องการจะเปลี่ยนมัน เขาจึงเริ่มสร้างภาษา Swift ในปี 2010

หากดูภาพใหญ่ของภาษา Swift แล้ว มันมีส่วนคล้ายกับภาษา Objective-C อยู่มาก ดังคำกล่าวในงานเปิดตัว Swift ไว้ว่า “Objective-C with out C” และเมื่อดู syntax ของภาษา Swift จะพบว่ามีลักษณะคล้ายกับภาษาสคริป แต่ตัวมันเองนั้นกลับไม่ใช่ภาษาสคลิป เหมือนอย่าง java script , php หรือ python แต่อย่างใด เพราะโปรแกรมภาษา Swift นั้นต้องผ่านการคอมไพล์ให้เป็นไบนารี่ไฟล์ เหมือนกับภาษา Objective-C , C, C++ เสียก่อน ถึงจะทำงานได้ (ไว้วันหลังจะเขียน blog เกี่ยวกับ feature ของภาษา)

คริสได้บอกว่าเค้าสร้าง Swift ด้วยการผสมผสานภาษาต่างๆเข้าไว้ด้วยกัน

“drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list”

ในการออกแบบภาษายังมีผู้เชี่ยวชาญทาง compiler และ document guru เข้ามาทำงานนี้อีกหลายคน ดังนั้นแล้วภาษา Swift จึงเต็มไปด้วยสิ่งใหม่ๆ idea ใหม่ๆ และการทำงานที่ง่าย และเรียนรู้เร็ว

Continue reading Swift – The new road