พึ่งเคยใช้งานครั้งแรกโปรดอ่านที่นี่! howtouse!
x
  • Register
หางานด้าน IT อยู่เหรอ?

Objective-C (iOS) กับ Java (Android) ภาษาไหนน่าใช้และมีอนาคตกว่ากัน

+6 votes
ถามเมื่อ Apr 16, 2012 in Objective-C โดย Eggvalue (1,179 คะแนน)
recategorized Apr 16, 2012 โดย admin
   

4 Answers

+12 votes
 
Best answer

 

ถ้าดูจากตัวภาษา อนาคตไม่ต่างกันครับ Back up ดีทั้งคู่
 
ถ้ามองทางด้านความชอบ ก็แล้วแต่คนชอบครับ เขียน JAVA อยู่แล้วก้อไป Android ถ้าเขียน C/C++ ก็มาทาง Obj-C ครับ แต่ถ้าอยากข้ามภาษาก็ไม่เป็นไร เพราะ Objective-C (Obj-C) Version 2.0 เขียนไม่ต่างจาก JAVA เท่าไหร่ครับ ตอนนี้มี ARC ไม่ต้องเขียน allocate memory เองแล้วครับ แต่ framework บางตัวยังใช้ ARC ไม่ได้ ต้องจัดการเมมโมรี่เองครับ (Auto Reference Counting)
 
ถ้ามองด้านการลงทุนของ Developer. ภาษา JAVA จะได้เปรียบกว่า เพราะเครื่องไม้เครื่องมืออะไรก็น่าจะมีอยู่กันหมดทุกคน แต่ถ้าเป็น iOS นั้นเป็นระบบปิด ทุกอย่างต้องพึ่งพา Apple นับตั้งแต่ต้องมี MAC, iOS Devices, Provisioning, ทุกอย่างเสียตังหมด
 
ความยากง่ายของการเขียน ผมเคยเขียนทั้ง JAVA และ Obj-C ส่วนตัวคิดว่า Obj-C จะเริ่มค่อนข้างยากกว่า JAVA อยู่นิดนึง แต่เครื่องมือหรือ SDK (Xcode) นั้นมีประสิทธิภาพมาก ทำให้เขียนง่ายกว่าของ Android ครับ 
UI  ของ iOS สร้างง่ายกว่ามาก จะลากวางหรือสร้างการ coding ก็ได้ครับ คล้ายกับ Visual Studio แต่ต่างกันตรง Xcode เป็น MVC
 
ตัวอย่างของ JAVA จะเยอะกว่า Obj-C (8% ต่อ 2% อ้างอิงจาก GitHub) แต่ JAVA มีหลาย platform กว่าในขณะที่ Obj-C มีแค่ MAC OS กับ iOS เท่านั้น ดังนั้นตัวอย่างที่ใช้บนโมบายก็ไม่แตกต่างกันมากครับ
 
ความ Compatible สำหรับ Android นั้นมีหลายเวอร์ชัน, Core ของ OS, Screen Size, Memory, CPU ค่ายผู้ผลิต, และอื่นๆ ทำให้การเขียนให้ Compatible กับทุก OS ทุกค่ายนั้นเป็นไปได้ยาก  แต่สำหรับ iOS มีเพียง 2 ขนาดหน้าจอ และ version iOS ก็มีไม่มาก ดังนั้นการเขียนให้รันได้ครอบคลุมมีมากกว่ามากครับ และเขียนเช็คไม่ยากครับ
 
ตลาดงานและค่าตอบแทน บริษัทที่ผมทำอยู่ มีทั้ง 2 ทีมแยกกัน (Android/iOS) ทาง User จะยึด iOS เป็นหลักและให้ Android พัฒนาตาม ทั้ง features และ UI ดังนั้นทีม Android จึงทำงานกันค่อนข้างยากพอสมควร สุดท้ายแล้วจึงได้ยกเลิกทีม Android ไป เพราะ User ต้องการทำ iOS มากกว่า ค่าตอบแทนต่อโปรเจคของ iOS ก็สูงกว่า ส่วนอัตราเงินเดือนของ iOS ก็สูงกว่า เนื่องจากหาคนเขียน iOS เป็นค่อนข้างยาก ขณะที่โปรเจคของ iOS ก็มีเข้ามาเยอะ ส่วนโปรเจคของ Android ก็ยังมีนะครับ แต่เปลี่ยนจากเขียนเองไปจ้าง Freelance เขียนให้แทน เพราะคนเขียน Android นั้นหาง่าย คนเขียน JAVA ส่วนใหญ่ก็เขียน Android ไปด้วย เลยไม่จ้างมาเป็นพนักงานประจำครับ
 
ดังนั้น ถ้ามองในมุมของ Mobile Application ส่วนตัวผมคิดว่า iOS อนาคตจะสดใสกว่า Android อยู่บ้าง เนื่องจาก ตลาดแรงงานยังต้องการอีกเยอะ iOS กำลังบูม แต่คนเขียนได้ เขียนเป็น กลับมีจำนวนน้อย ทำให้ อัตราการจ้างงานและอัตราเงินเดือนก็สูงพอสมควร ข้อเสียของ Obj-C ก็คือการต้องอิงกับ Apple ที่ต้องเสียเงินในการเริ่มต้นพอสมควร แต่หลังจากสตาร์ทติดแล้ว คืนทุนง่ายและเร็วครับ AppStore พร้อมรับงานของเราอยู่ครับ 
 
พูดถึงเรื่อง AppStore แล้วก็มีประเด็นตรงที่ Apple กิน%จากยอดขาย App ของเรา 30% นะครับ และกว่า App จะได้ผ่านการ Approve ให้ขึ้นไปขายบน AppStoreได้ก็ต้องใช้เวลาในการ Review หรือทดสอบการทำงานของ App เราจากทีม Review ของ Apple ประมาณ 1-2สัปดาห์ หรืออาจมากกว่านั้นหากคิวยาว แต่ถ้าเป็น Android Market ก็สามารถ Publish ขึ้นได้เลย และถ้า iOS App ของเราไม่ผ่านการ Review ก็ต้องกลับไปแก้ใหม่ แก้ตามที่เขาแนะนำมา (Upload ไปเข้าคิวใหม่)  สรุปคือถ้าเขียนแล้ว Crash หรือใช้ Private API เขียนไม่ดี performance ไม่ได้ก็อาจถูก Rejected ได้ครับ ทั้งหมดนี้จะอยู่ใน Guild Line ของ Apple ครับ มีทั้งข้อห้าม ข้อแนะนำ จำเป็นต้องศึกษาด้วยเหมือนกันครับ
 
ความคิดเห็นของผมค่อนข้างเอียงไปทาง iOS นะครับ โปรดใช้วิจารณญานในการอ่านครับ ต้องดูอุปสงค์ อุปทานประกอบด้วยครับ
 

 

ตอบเมื่อ Apr 17, 2012 โดย Teva Mahaveera (272 คะแนน)
selected Apr 17, 2012 โดย Eggvalue
มันเป็นเรื่องน่าสนใจนะครับว่าทำไม apple กินตั้ง 30% แต่กลับมีคนทำขึ้นไปขายตั้งเยอะ มันอาจจะเป็นเรื่องขายได้ก็ได้มั้งครับ พี่คิดว่ายังไง
Apple ทำ AppStore/iTunes ออกมาดีครับ ถึงขายราคาไม่แพงแต่ขายได้เยอะ ขายแบบ World Wide ขายได้เรื่อยๆ หักไป 30% ก็ยังคุ้มกับการลงทุนครับ แทบไม่ต้องทำการตลาดเอง (ถ้าทำด้วยก็ดี) มีคนเข้ามาดูตลอด ไม่ต้องทำบัญชีเอง สิ้นเดือนก็ดูบิล ดูยอดขายได้เลย (ดูยอดโหลดแอพเราได้ตลอด) เราจะโอนเงินเข้าบัญชีเมื่อไหร่ก็ได้ (แต่มียอดขั้นต่ำ) แต่ถ้าขายไม่ได้เราก็ไม่เสียอะไรครับ ถ้าเป็น App Free ก็ไม่ต้องโดนหัก เราก็ได้ค่าโฆษณา AdMob/iAds ไป (ถ้าติดแบนเนอร์)
เราจ่ายค่า Developer รายปีแค่ $99 (บริษัท $299) แอพเล็กๆ ติดแบนเนอร์แปปเดียวก็ได้ตังแล้วคืน มันก็คุ้มแล้วครับ
ผมว่าถ้า App ios ไม่จำเป็นต้องเขียนใน MAC คนเขียนก็จะมากเป็นเงาตามตัวนะครับ
+2 votes
พอๆกันครับ Andrioid ดีกว่าตรงที่เป็น Java ซึุ่งถ้าเคยเขียนแล้ว สามารถไปสร้างแอพพลิเคชั่นอื่นได้นอกจาก Mobile Programing
ตอบเมื่อ Apr 16, 2012 โดย Nickyshox Bst (325 คะแนน)
+2 votes
ถามแค่ตัวภาษาผมก็ยังตอบ Java มากกว่า ObjC ครับ (มันทำอะไรได้มากกว่า) แต่ถ้าถามเรื่องสาย mobile ผมมองว่ามันมีอนาคตทั้งคู่ (มองว่ามันเป็นทางเลือกมากกว่า)
ตอบเมื่อ Apr 17, 2012 โดย Thanabodee Charoenpi (666 คะแนน)
+1 vote
ผมว่า อนาคตดูดี และสูสี่ทั้งคู่

แต่ถ้าจะให้ผมเริ่ม ผมเลือก Objective-C ดีกว่า ^^
ตอบเมื่อ Apr 17, 2012 โดย phanithanj (1,139 คะแนน)

Related questions

0 votes
1 คำตอบ
+1 vote
2 คำตอบ
543 views ถามเมื่อ Jul 14, 2012 in Java โดย Pratchaya Suputsopon (119 คะแนน)
0 votes
2 คำตอบ
+3 votes
4 คำตอบ
...