เป็นคำถามที่ผมเห็นบน Slashdot (Ask Slashdot: Which Language To Learn?) คิดว่าน่าสนใจดีเลยเอาบ้าง
เรื่องคือมีโปรแกรมเมอร์คนหนึ่งกังวลว่า ออราเคิลจะนำพาจาวาไปในทิศทางที่เขาไม่ต้องการ เขาจึงคิดว่าช่วงนี้เป็นโอกาสอันดีที่จะเรียนรู้ภาษาโปรแกรมใหม่ๆ บ้าง
เขาจึงตั้งคำถามไปยังผู้อ่าน Slashdot ว่าภาษาอะไรเหมาะที่สุด ถ้าจะมองในแง่การหางานในอนาคต ต้นฉบับระบุว่าไม่ต้องการหัด .NET เพราะเป็นของไมโครซอฟท์ แต่ผมคิดว่ากรณีของเราเองก็คงไม่ได้จำกัดอะไรครับ
ดังนั้นคำถามของเราคือ "ถ้าไม่เขียนจาวา แล้วจะเขียนอะไรดี" (มองในแง่การหางานเป็นหลักเช่นกัน)
Comments
ศาสดาคงบอกว่า "จงเขียน Object-C ซิ"
ปล. ผมเขียนไม่เป็นนะครับ
C# ได้ไหมครับ OOP เหมือนกัน ฮ่าๆ
กับผมไม่มีผลกระทบนะ ยังไงก็ PHP+Javascript อยู่แล้ว
I need healing.
ถึงเวลาแล้วซินะ แต่เชื่อขนมกินได้เลย สุดท้าย Google จะตกลงแบ่งผลประโยชน์กับ Oracle ได้อย่างลงตัว ตอนนี้ก็แค่ออกอาการฟาดงวงฟาดหางว่าข้านี้ไม่ผิด แต่พอมีคนกลางมาตัดสิน ช้าง GG ก็ต้องเชื่องอยู่ในโอวาทของ OR อีกอย่างจะกลัวไปทำไมกับทิศทางที่ Oracle จะทำต่อไป มันอาจทำให้ภาษา Java เร็วขึ้นกว่าเดิมก็ได้ ไม่เต่าแบบตอนนี้ ไม่เขียนยากแบบตอนนี้ ทิศทางอาจได้เห็นความร่วมมือกับ IBM ก็ได้ ใครจะไปรู้อนาคต แต่ที่แน่ ๆ ในเป็น Java ตอนนี้ต่อไปก็เป็นพวกกลุ่ม Niche ล่ะ ค่าตัวแพงกว่าเดิม
เห็นมีคนเขียน blog ว่ามันคือเกมส์ เชิญ ให้ google ซื้อ ส่วนที่เป็น java ไปจาก oracle
เพราะ oracle ไม่ได้ทำเงินจาก java ถนัดนักในสายธุรกิจหลักที่ตัวเองทำ และดูทีท่า
oracle ไม่ได้อยากแตกสายธุรกิจออกไปจาก สายธุรกิจเดิม
อาจไม่ใช่ก็ได้นะครับ เพราะเคยอ่านเรื่องที่ Oracle กลัว Google เพราะอะไรในเว็บหนึ่ง เลยพอเห็นแล้วว่าทำไมต้อง SUN ทำไมต้อง Java และทำไมต้อง MySQL ก่อนจะโดน SUN ซื้อแล้ว ไว้ค้นเจอจะเอามาแปะเพิ่มให้
ROR
ROR ด้วยคน
LOL v_____v
COBOL
แหม่ จัดไปเลยครับ 555
SPICYDOG's Blog
ในส่วนตัวผมจากคนที่เคยเป็นจากคนที่เคยเป็นจาวาโปรแกรมเมอร์
ผมว่า .Net กับ php framework แจ่มกว่าเยอะ ทำงานเสร็จเร็วขึ้นมาก และถ้าฉายเดี่ยวก็ทำได้ดี
และอีกอย่างที่มาสนับสนุน .Net ก็คือในไทย Appเก่าๆ ตระกูล VS มีอีกเยอะ รับรองว่ามีหนทางทำมาหากินแน่ๆ
C# ครับ
C++ ครับ
D language เพราะมี lib ที่เป็น oss อย่าง gdc และก็มีใน .NET ด้วย
สำหรับตัวเองคง Ruby
ถ้าสำหรับหาเงินในบ้านเรา ผมคิดว่าในระดับ enterprise ส่วนมากจะเป็น Java กะ .NET นะครับ
ฉะนั้นถ้าไม่เอา Java ก็ต้องเป็น .NET ล่ะครับ
พอดีทำได้ทั้ง C# และ Java เลยไม่ลำบากหน่อย (แต่ทำ PHP มากที่สุดในชีวิต)
ปล. การไปตั้งแง่ว่า ภาษานั้นห่วย ภาษานี้กาก ภาษานู้นเมพ ผมว่าทำให้ความสามารถในการเรียนรู้ และการทำเงินนั้นน้อยลง ไปเรื่อยๆ
ปล.2 อีกอย่างผมคิดว่ายังมองไม่เห็นว่าทำไมต้องเลิกเขียนภาษาใดภาษานึง ตราบใดที่มันยังช่วยให้เราหากินได้อยู่
ปล.3 น่าจะเป็น นศ. ที่กำลังเรียนอยู่ที่จะได้ผลประโยชน์จากหัวข้อนี่มากที่สุด
"ปล. การไปตั้งแง่ว่า ภาษานั้นห่วย ภาษานี้กาก ภาษานู้นเมพ ผมว่าทำให้ความสามารถในการเรียนรู้ และการทำเงินนั้นน้อยลง ไปเรื่อยๆ"
ฮ่า ฮ่า ผมชอบประโยคนี้ครับ.... ปล.ไม่ได้เป็นโปรแกรมเมอร์
Assembly ครับ(ซะเมื่อไหร่ จะโดนยิงทิ้งมั๊ยเนี่ยผม)...
ส่วนตัวคิดว่า ตระกูล C ทั้งหลายยังน่าสนใจอยู่ครับ
Dream high, work hard.
ถ้าหางานคงไม่พ้น Java/C#
ทุกวันนี้เขียน C++ เป็นหลักอยู่แล้ว ก็เลยยังใช้ C++ ต่อไป
ถ้าเน้น Flexibility มาก ๆ ก็ใช้สคริปท์ พวก Python, Lua ก็ได้
ส่วนอะไรที่อยู่ตรงกลาง ก็ใช้ C++ + Lua ก็ไม่เลวเหมือนกัน ผมว่า
ทำงานเกี่ยวกับอะไรเหรอครับใช้ C++ เป็นหลัก
ทำงานกับ Product ที่เขียนด้วย C++ + MFC บนวินโดวส์ครับ
อยากดัน Mono แต่ถ้าเน้นหางานได้จริงก็คง C++ ครับ เป็นภาษาตลาดที่ถนัดที่สุดแล้ว ถ้าไม่นับ .net
ส่วน Delphi กระแสเงียบไปหน่อย หางานลำบาก T-T
Delphi อนาคตมืดมนยิ่งกว่า Java อีกครับ เพราะยังไม่รู้เลยว่าบริษัทผู้เป็นเจ้าของจะอยู่รอดหรือเปล่า (ตอนนี้เป็นของใครยังไม่แน่นอนเลย) Java อย่างน้อยก็มี Oracle แต่อาจเดินไปในทิศทางที่หลายคนอาจเซ็ง ๆ บ้าง
ผมใช้ฟอกซ์โปรเป็นภาษาที่เก่าแต่มันตอบสนองต่องานได้ดีกว่าตัวอื่น โดนเพื่อนที่ใช้ Delphi แขวะประจำว่าฟอกซ์โปรเก่าและตายแล้ว ผมเลยสวนไปว่า Delphi บริษัทแทบจะเจ๊งแล้วแทบบิดาก็ถูกซื้อตัวไปซะอีก เมื่อก่อนผมก็เขียน Delphi อยู่พักหนึ่ง มีอะไรหลายอย่างที่ดีและง่ายแต่ก็มีบางอย่างที่ต้องปรับปรุงอยู่เยอะ ถ้าโดนซื้อผมอยากให้เป็นพี่กรูดีกว่า แต่เกรงว่าจะเสร็จพวกเดวิล
ปัจจุบันเป็นของ Embarcadero นี่ครับ แล้วดูท่าทาง Embarcadero จะไม่มีทางทอดทิ้ง Delphi ด้วยเพราะ Product ของเขาเองก็ใช้ Delphi อยู่ครับ (คล้ายๆ Oracle กับ Java ตอนนี้เลย)
Sun ก็ไม่ได้ทอดทิ้ง Java ครับ แต่ ...
อยากให้มีภาษาที่เป็นของ community จริงๆ และใช้ในธุรกิจได้ดีจัง
พวกภาษาสคริปต์ก็ใช้ในธุรกิจได้ดีครับ แต่ต้องเปลี่ยน paradigm และวิธีคิดมากหน่อย
หากจะเอาแนวคิด OOP แบบ Java ผมว่าโดยตัวภาษา D กับ Vala พร้อมแล้ว แต่พวก library หรือ framework ยังต้องพัฒนาอีกมาก ทว่าหาก community ของ Java เลิกง้อ Java มาจับภาษาใดภาษาหนึ่ง คงไม่ใช่เรื่องยากเกินไป
เมื่อกี๊ ลองดูภาษา D พบว่าเป็นภาษาที่มีความคล้าย C++ ทีเดียว
ก็มันเป็นตัวต่อนี่ครับ A -> B -> C -> C++ (3.9G) -> D
จริงจังรึเปล่าครับนี่
May the Force Close be with you. || @nuttyi
รู้สึกว่าเจตนาจะเป็นแบบนั้นจริงๆครับ
มัน ALGOL > CPL > BCPL > B > C > C++ > D รึเปล่าครับ
แล้วที่เค้าตั้งชื่อแบบนั้น เพราะส่วนใหญ่มันก็พัฒนามาจากภาษาตัวก่อนหน้านั้น
ปล..ถ้าจะนับจริงๆ น่าจะ B > C > C++ นะครับ เพราะมาจากเบลล์ แลบเหมือนกัน B กับ C ก็คนสร้างคนเดียวกันด้วย
3.9G ฮ่าๆ
{$user} was not an Imposter
ผมใช้ Delphi เป็นหลัก แต่ก็ต้องยอมรับความจริงว่า อนาคตมันมืดมนจริงๆ งานแทบจะไม่มี คนเขียน Delphi ก็หายากขึ้นทุกวันๆ
ถ้าดูที่ VCL ผมว่า Delphi มันเยี่ยมมากเลยนะครับ
แต่ว่าตอนนี้ตัวภาษามันตาม C# ไม่ทันซะแล้ว เลยทำให้ VCL พัฒนาได้ไม่ไกลเท่าไรนัก
Feature ของภาษาที่เพิ่มขึ้นมาอย่าง Generics, Nested type declaration หรือแม้แต่ Closures
ก็ใช้ได้แบบตันๆ ทำอะไรมากไม่ค่อยได้ ถ้าฝืนพยายามทำก็พังเอาดื้อๆ (Compile แล้วเจอ Internal Error หรือถ้า Compile ผ่านก็รันไม่ค่อยจะได้ Exception เพียบ)
Feature ใหม่ๆของ Delphi ที่เพิ่มขึ้นมาในช่วงหลังๆ ดูจะออกนอกลู่นอกทางไปเยอะ
และค่อนข้างผิดหวังกับ Delphi XE มากๆ ไม่มี Cross platform development หรือแม้แต่ Native 64-bits compiler
มันยิ่งส่อแววให้เห็นว่า Embarcadero มีศักยภาพไม่เพียงพอ(หรือเปล่า?)
ตอนผมไปสัมนาเปิดตัว Delphi XE นี่ Cross platform เขาชูเรื่อง Delphi Prism บน Mono ครับ ส่วน Native 64 bit ถ้าจำไม่ผิดน่าจะ update ตามมาทีหลังมั้งครับ(เห็นมีคนยกมือถาม) แต่ส่วนตัวผมเองก็ยังไม่เคยลอง Delphi XE เหมือนกันครับ
ถ้าผมจำไม่ผิด Delphi Prism สุดท้ายแล้วก็ Compile ออกมาเป็น CLI หรือเปล่าครับ
ถ้าเป็นเช่นนั้น ผมว่าไปเขียนด้วย C# เลยก็น่าจะได้ เพราะสุดท้ายก็รันด้วย Mono อยู่แล้ว
และก็ไม่เคยใช้ Mono แบบจริงๆจังๆเลยครับ เลยไม่รู้ว่ามันดีแค่ไหน ออกแนวไม่ค่อยมั่นใจ
Delphi XE เคยคิดจะลองครับ แต่พอดู Feature ใหม่ที่เพิ่มเข้ามาก็พบว่า มันเพิ่มแต่ Tools ซะมาก เลยใช้ 2010 ต่อไปครับ
ผมว่าถ้ามี Native 64-bits ออกมา แล้วพัฒนาคุณสมบัติของภาษาให้ไล่ทันภาษาอื่นๆได้ ก็น่าจะดีนะครับ
ขอบ่นนิดหน่อย นานๆจะเจอคอ Delphi เหมือนกัน
ทุกวันนี้ใช้ Generics เจอปัญหากำหนดค่า Default ให้ ตัวแปรที่เป็น Generics ประจำเลย
ถ้าเป็น C# มันมี Language Construct ให้เลย (ใช้ default) ใน Delphi ตอนนี้ต้องใช้ SizeOf แล้ว ZeroMemory เอาเอง
มันขึ้นอยู่กับว่าคุณมอง Delphi เปนอะไรนะครับ
ถ้าคิดว่ามันเปนแค่ภาษา มันจะไปรันบน .NET หรือ Mono มันก็ไม่ใช่ปัญหา
.NET/Mono เปนเทคโนโลยีที่พยายามให้อิสระในการเลือกใช้ภาษากับเรา เราจะเขียน Delphi หรือ C# มันก็รันได้เหมือนกัน
มันอยู่ที่ภาษาที่คุณพอใจ คุณไม่ชอบปีกกาก็ใช้ VB.NET ไม่ก็ Delphi.NET และที่สำคัญคือคุณเริ่มต้นด้วยภาษาที่คุณชอบ คุณก็ได้ทำความคุ้นเคยกับ Library ที่ทุกภาษาใช้ชื่อเดียวกัน หน้าตาก็คล้ายๆกัน
พอชินแล้วจะเปลี่ยนไปใช้ภาษาอื่นเวลาจำเป็น ก็ง่ายขึ้น
+1 ครับ
เพราะ Delphi Prism มัน Compile ออกมาเป็น CLI รันบน .NET/Mono ได้เหมือนๆ C# นี่แหละครับ
ทำให้ผมคิดว่า ใช้ C# ไปเลยน่าจะดีกว่า เพราะมาจากคนสร้าง Platform โดยตรง
ส่วนภาษา Object Pascal ที่มีใช้ใน Delphi แบบ Native สงสัยคงจะต้องทำใจจริงๆล่ะครับ เพราะติดที่ Native นี่แหละ เลยทำให้ขาดความ Dynamic ไป
ทำใจนะครับ มันคงจะเป็นข้อจำกัดของพวกภาษา Native ที่ควบคุมอะไรหลังจาก Compile ไปแล้วไม่ได้มาก
ครับพยายามทำใจอยู่ครับ T_T
มันอึดอัดตรงที่ว่า Feature บางอย่างที่ว่าทำได้ ก็ดัน Internal Error ซะงั้น
บางอย่างที่น่าจะทำได้ควบคู่ไปกับ Feature ใหม่ ก็ดันใช้ไม่ได้
แต่เรื่องนี้ก็ไม่ได้กระทบผมเท่าใดนัก แต่มันแสดงให้เห็นถึงความล่าช้าของการพัฒนาภาษาด้วยครับ
html5
ถ้าไม่จำกัดว่าไม่ใช้ .net ผมก็คงเลือก C# ซึ่งก็พอเขียนได้เคยจาวามาก่อนเลยคุ้นเคยมากอยู่
แต่ถ้าตามโจทย์ที่ถาม คงเลือกหัด ruby (ตัวภาษานะไม่เกี่ยวกับ ROR เอาไว้ขั้นถัดไป) พึ่งลองเล่นแบบผ่านๆ ก็เอาได้ครับ
python แบบว่าชอบ แม้มันจะไม่ดัง ...
ผมก็หนุน C# นะ แต่คิดว่า D ก็น่าสนใจ
ส่วนนึงที่หนุน C# ก็เพราะมันมี Mono และได้ข่าวว่า Vala ก็ไม่ได้หน้าตาต่างกะ C# ซักเท่าไหร่
และเห็นไมโครซอฟท์ก็ไม่มีไลเซนส์ที่งี่เง่ากีดกันการพัฒนาแบบ Java
นอกนั้นก็มีฟีเจอร์ดีน่าสนใจ
ส่วนตัวแล้วคิดว่า ผมว่าถ้าเห็นว่า Java ทำงานได้ดีบน Server
ก็ไม่ใช่ปัญหา ก็เขียน Server ไป
แต่ถ้างานไคลเอนท์ อย่ามาโฆษณาเลยว่า Java เร็วส์ Java run Anywhere
ป.ล. สุดท้าย Java ก็เป็นของออราเคิล ไม่ใช่ภาษา Portable อีกต่อไป
ทำไมคนไม่ตั้งแง่รังเกียจรังงอนเหมือนที่ทำกับ C# บ้าง
สองมาตรฐาน?
2 มาตรฐานมีกันทุกคน ขึ้นอยู่กับข้อมูลที่ได้รับ ณ เวลานั้น ๆ เอาแน่เอานอนไม่ได้
ตั้งแต่รู้ว่ามี Mono ในโลกนี้ ยังมิเคยเขียนโปรแกรมอะไรบน Mono จริง ๆ ซักที ใช้แต่ .NET ของ MS แต่ถ้าพวก Third-party library นี่ ผสม dll ของ mono มาให้ทุกที เลยใช้ลักษณะแบบผ่าน ๆ
Client บน java ตัวนึง ที่นักพัฒนาภาษาอื่นหลาย ๆ ภาษาต้องมาพึ่งใบบุญ คือ Eclipse
ปัญหา UI ของ java อยู่ที่ swing ไม่ได้อยู่ที่ตัว java
RCP ไม่ได้เลวร้าย และกำลังเติบโต มีพื้นฐานที่แข็งแกร่งเป็นระบบระเบียบ
จริง ๆ แล้ว client บน java มีคนใช้มากพอสมควรแต่เป็น enterprise
ในต่างประเทศ
เท่าที่สังเกต คนที่รังเกียจรังงอน ภาษาใดภาษาหนึ่งอาจจะเป็นเพราะเขาไม่ได้
invest ในภาษานั้นอย่างเพียงพอ และรู้สึก กลัว อิจฉา ในโอกาศของผู้อื่น
เครื่องมือก็คือเครื่องมือ ไม่ได้มีไว้บูชา
+1
"เครื่องมือก็คือเครื่องมือ ไม่ได้มีไว้บูชา" +1 เห็นด้วยอย่างยิ่ง
ผมว่าบูชาบุพการีดีกว่าครับ
Netbeans ที่เขียนด้วย swing ก็มีนักพัฒนาภาษาอื่นๆ อีกหลายภาษา
มาพึ่งใบบุญเหมือนกันและถ้าเดาไม่ผิด IntelliJ ก็เป็นสุดยอด IDE
อีกตัวที่ใช้ Swing แต่.. เจ๋งโคตรๆ
Swing เองไม่ได้เลวร้าย ถ้าคุณใช้มันเป็น (แต่ผมใช้ไม่เป็น --")
ผมก็ยังคงคติเดิมภาษาไหนๆ ที่มันยังทำให้งานบรรลุล่วงได้
ภาษานั้นก็สุดยอดแล้ว เห็นหลายคนอวดครวญ ว่า Java ไปอยู่ในมือ
Oracle แล้วจะหมดอนาคต พาลเลิก ทิ้งความเชี่ยวชาญในการใช้
Tool ที่ชื่อ Java ไปเริ่มต้นใหม่ กับภาษาอื่นที่คิดว่ามีอนาคตกว่า(มั๊ง)
(แต่ถ้าเวลาเหลือก็โอเค) ในขณะที่บางคนในคนเหล่านั้นก็ยังกำลังศึกษา
PL/SQL อยู่
Java นั้น die hard ครับ เพราะมันเกิดมานานและถูกใช้แพร่หลาย
มานานมากแล้ว ผมอาจจะเลิกเขียนโปรแกรมไปก่อน Java จะอยู่
ตำแหน่งเดียวกับ COBOL (Rare item)ไปแล้วหลาย 10 ปี ก็เป็นไปได้
ประเด็นของ Swing อยู่ที่ การตั้งเป้าหมายอย่างสูงส่งแต่แรกของ
engineer ของ SUN ที่เน้น write once run anywhere แบบสุดขั้ว
เลยไม่สามารถ leverage api ระดับ native ได้มากนัก
และมีอีกหลายอย่างที่น่าติ เช่น ให้ default theme set หน้าตาห่วย ๆ มา
ไม่รู้จักไปจ้างมืออาชีพ อื่น ๆ มาช่วยปรับปรุง
แต่มี swing ก็ดีแล้ว ถือเป็นตัวอย่างของความหลากหลายของ เทคโนโลยี
ความเด่นของ swing คือ cross platform ไม่ใช่ performance
ซึ่งในมุมมองของผู้ใช้ส่วนใหญ่ สิ่งที่สำคัญที่สุดคือ ความรู้สึกในการใช้งาน
กดแล้วตอบสนองดี ไม่ช้า ไม่ค้าง ไม่กระพริบ
ซึ่งถ้าเครื่องช้าและผู้พัฒนาไม่ได้ ใส่ใจกับรายละเอียดในการจัดการ performance
ผลคือประสบการณ์เลวร้าย ของผู้ใช้
แต่สมรรถนะเครื่องที่ดีขึ้นและการพยายามปรับปรุงของ swing ก็ทำให้มันน่าใช้มากขึ้น
กว่าเดิมมาก
ผมเห็น Java ไม่ได้มีปัญหาแค่ UI ละ่ครับ
ที่แน่ใจเลยคือเมื่อก่อน JVM ช้ามาก พึ่งปรับปรุงไม่กี่ปีนี่เอง(และจำไม่ผิดคือกลายเป็น JIT เหมือน .NET ซะงั้น)
ที่แน่ๆคือมันอาจครอสได้หลาย Platform แต่มันก็ไม่ได้ Write once run anywhere จริง (ประโยคที่ผมได้ยินบ่อยกว่าคือ Write once bug everywhere)
Java มันก็ไม่ได้เลวร้าย เขียนอะไรที่ไม่ต้องสนใจเพอร์ฟอร์แมนซ์ก็ไม่ใช่ปัญหา
แต่มันก็ไม่เห็นจะดีไปกว่า C# ซักเท่าไหร่
ผมก็เห็นคนโปร C# ผมก็ด้วย
แต่ก็ไม่เคยเห็นใครบูชาเอาเป็นเอาตาย
แต่ที่เห็นทั่วไปคือ Java Zealot
เอาจริงหรือครับเรื่องที่คุณบอกว่าไม่เคยเห็นคนเขียน C# บูชา C# อย่างเอาเป็นเอาตาย ผมเห็นคุณ comment แต่ละอันก็ตั้งแง่กับ JAVA ซะ และยก C# มาซะทุกงาน ผมเขียน Java มา 3 ปี ผมก็ไม่ได้มองว่ามันแย่อย่างที่คุณพูด
ผมมีความเชื่อว่าภาษาภาษาหนึ่งไม่สามารถทำอะไรทุกอย่างได้อย่าง Perfect หรอกครับเลือกที่ตัวเองถนัด งานทุกอย่างมันก็จะเร็วกับดีขึ้นเอง ที่คุณบอกว่า Java ช้าเขียนยาก Tools ห่วย ผมอยากรู้ว่าคุณเขียน Java มากี่ปีแล้วครับเคยลองไปทุ่มเทศึกษากับ Java อย่างจริงจังหรือยังครับ ถ้าทำทั้งหมดแล้วผมก็ขอโทษครับ
ปล. ขอย้ำอีกครั้งผมไม่ได้บอกว่า Java มัน Perfect และเร็วไปซะทุกอย่าง
ถ้านั่นเรียกว่าบูชา มันก็เหมือนกับคุณและคนที่เข้ามาโปรจาว่าทุกคนในกระทู้นี้ล่ะครับ
(เอ่อ โปรนี่ไม่ได้หมายถึงเชียวชาญนะครับ หมายถึงนิยม)
ผมเองก็ไม่ได้คิดว่า C# ดีเลิศประเสริฐศรี ทุกครั้งที่ยกมาเทียบผมก็เอางานที่ C# ชนะได้
ผมไม่เคยพูดถึง Server เพราะผมยังจำได้ว่า JVM Server เบนช์มาร์คดีกว่า C# มาก
แต่ไม่ใช่กับ Client แน่
เขียน Eclipse 1 เทอม นี่ เดือนแรกผมก็เลิกแล้ว ใช้ Notepad แล้วก็อปมาแปะใน Eclipse แล้วกดรันเอา
เพราะแค่ Text Editor มันยังช้าเลย
ขอบอกว่าผมไม่ต้องทุ่มเทอะไรมากมายกับการฝึก C# ตอนฝึกก็ชิลๆ ภาษาเข้าใจง่าย VC# ก็ดี (express ด้วยนะ)
ภาษา Java ผมไม่รู้ทำไม แต่รู้สึกมันวุ่นวายกว่าผมเขียน C++ อีก
แหม...ผมก็นึกว่าคุณรู้ทุกส่วนของ Java หมดแล้ว เห็นวิจารณ์ว่าตรงนั้นก็ไม่ดี ตรงนี้ก็กาก
คุณสามารถจะเคลมตัวเองเป็นอะไรก็ได้ ด้วยการป่าวประกาศ แต่คนอื่นเขาจะดูจากพฤติกรรมของคุณและตัดสินคุณจาก
ท่าทีที่สอดคล้องต่อเนื่องกันยาวนาน
ผมเขียนโปรเจคหาเลี้ยงตัวเองด้วย .net/c# และ java มาแล้วทั้งคู่ จากประสบการณ์ส่วนตัวไม่ได้รู้สึกถึง
ความต่างกันอย่างชัดเจนในคุณภาพของ platform แบบที่คุณบอกมา ประเด็นมันจะไปอยู่ในแนวทาง
การออกแบบ framework/library เสียมากกว่า (แน่นอนภาษามีส่วนแต่ไม่ได้ชี้ขาดผลลัพทธ์)
คุณเขียน eclipse 1 เทอม ก็มาตัดสินเสียแล้ว ผมใช้มันมาหลายปี รวมทั้งใช้ vs แต่ละตัวมีเด่นมีด้อย
แต่คงไม่ใช่แบบที่คุณบอกมาแน่นอน
ส่วนการเรียนรู้ภาษามันเกี่ยวกับ ความเข้าใจใน programming language concept ถ้าเข้าใจแล้ว ภาษาไหนก็ไม่ได้ต่างกันมากมาย ในตระกูล/paradigm เดียวกัน ที่เหลือจะเป็นเรื่องความคุ้นเคยใน api ของ library/framework ต่าง ๆ เสียมากกว่า
ส่วนที่คุณบอก java วุ่นวายกว่า c++ ผมว่าเป็นความรู้สึกที่ เข้าใจได้ยาก
ถ้าจะอธิบายก็ยินดี
ผมมองต่างกับคุณนะการจะเลือก IDE ซักตัวมาใช่ผมไม่ได้ดูที่ความเร็วอย่างเดียวผมดูที่ feature กับ speed ผสมกันมากกว่าแล้วก็อีกอย่าง ผมไม่รู้หรอกนะว่า visual studio มันเร็วกว่า eclipse จริงหรือเปล่า แต่ผมใช้ eclipse มาผมก็ไม่เห็นว่ามันจะช้ามากมายผมกลับรู้สึกอีกว่าถ้าผมขาดพวก IDE อย่างเช่น eclipse, netbean ผมจะไม่สามารถทำงาน java ได้อย่างมีประสิทธิภาพ ที่ eclipse คุณช้าคุณใช่ plug-in มาเกินไปหรือเปล่า? ผมอยากรู้จริงเลยว่าคุณจะสามารถใช่ notepad เขียน java ในโปรเจ็คจริงๆได้หรือเปล่า
ผมว่าการฝึกภาษาไม่ยากหรอกครับผมจะยากตรงที่จะเขียนยังไงให้มันมีประสิทธิภาพ เขียนยังไงให้คนเข้าใจง่าย เขียนยังไงให้คนที่อาจจะมาทำต่ออ่านรู้เรื่อง
ผมก็ไม่เคยบอกว่าตัวเองเป็น Professional ผมก็แค่คนที่ใช้ Java หาเลี้ยงชีพ ผมเห็นว่าบ้างอย่างที่คุณพิมพ์มารู้สึกว่าไม่ค่อยจะถูกต้องนัก ผมว่าพิมแย้ง ผมจะได้ต้องได้รับตำแหน่งเป็นคนที่บูชา Java หรือว่า Java zealot หรือครับ?
คุณเอา Notepad มาเทียบกับ Eclipse งั้นผมก็คงเอา Visual Studio 2010 เทียบกับ BlueJ, DrJava หรือ jEdit ได้กระมัง
อืม เท่าที่ผมอ่าน Comment คุณดู เข้าใจว่า คุณเป็นโปร C# และไม่เคยบูชามัน
ส่วน Java Zealot นี่ค่อน ข้างคลุมเคลือ มันหมายถึงผมหรือปล่าว?
และดูเหมือนว่าคุณกำลังพูดถึงประเด็น JVM มากกว่า Java นะครับ ผมก็เริ่มสับสน
และเข้าใจว่าคุณกำลังบอกว่า JVM ทำ JIT ตาม .NET
"Programs written in Java have a reputation for being slower and requiring more memory than those written in C.[26] However, Java programs' execution speed improved significantly with the introduction of Just-in-time compilation in 1997/1998 for Java 1.1"
จาก http://en.wikipedia.org/wiki/Java_(programming_language)
คงไม่ต้องอธิบายอะไรเพิ่มเติม
ส่วนประโยค Write once run anywhere นีไม่รู้ว่าคุณได้ยินบ่อยๆมาจากไหนครับ
อยากขอแหล่งที่มา
และประโยคที่ว่า "Java มันก็ไม่ได้เลวร้าย เขียนอะไรที่ไม่ต้องสนใจเพอร์ฟอร์แมนซ์ก็ไม่ใช่ปัญหา"
เป็นความเห็นส่วนตัวของคุณใช่ไหมครับ ถ้าใช่ผมจะได้ไม่สงสัย
ส่วนตัวผมก็เห็นว่า C# ดี โดยโครงสร้างภาษาแล้วพัฒนากว่า Java เยอะ สาเหตุหนึ่งเกิดมาจาก
Java เกิดมาก่อน และเกิดมานาน การเปลี่ยนแปลงมันจะทำได้ค่อนข้างยาก และถ้ามันถูกใช้ใน
องค์กรธุรกิจมายาวนานแล้ว จะไปหักดิบเหมือน opensource ก็คงทำไม่ได้
ขอยอมรับว่าเปนความเห็นส่วนตัวครับ
ส่วนเรื่องการใช้ในวงการธุรกิจมายาวนาน ผมไม่เห็นด้วยเลยว่ามันจะเปลี่ยนแปลงโครงสร้างบ้างไม่ได้เลย
การเพิ่มฟีเจอร์ใหม่ๆ ให้ไม่ไปกระทบฟีเจอร์เก่าๆมันไม่ใช่เรื่องคอขาดบาดตายเลยผมว่า
ขนาด OpenGL ยังยอมกลืนน้ำลาย Deprecate ฟังค์ชั่นไปเยอะแยะ และถึงติด Deprecate ก็ไม่ใช่ว่ามันจะไม่ซัพพอร์ท
ว่าแต่แล้ว Java ไม่ใช่ OpenSource หรอกรึครับ?
ส่วน Write once run anywhere เซิร์ชกูเกิลก็ได้มั้งครับ?
ป.ล. ย้ำอีกทีว่า โปรในที่นี้คือนิยมครับ ไม่ใช่โปรเฟสชั่น
ส่วน Java Zealot ก็เหมือน Apple Zealot น่ะครับ
คนที่นิยมจาว่ากับสาวกจาว่า มันก็แตกต่างกันอยู่ ส่วนใครเป็นนี่ผมไม่ได้จำนะ
zealot ก็ไม่ดี hater ก็ไม่ดี
เคยออกแบบโปรแกรมมาเพื่อสิ่งหนึ่ง แต่ในอนาคตกลับ
ต้องการอีกสิ่งหนึ่งไหมครับ และก็รู้สึกว่าถ้าทำอย่างนั้นนะ
เขียนใหม่ดีกว่า clean กว่าเยอะ แต่ติดที่ว่าทำไม่ได้
นอกจากนั้นแล้ว บาง feature x ที่ไม่เข้าแนวทางที่
เคยวางมา ก็คงต้องพิจารณาหลายๆด้านมากกว่าการทำ
feature ตามภาษา y นะครับ
ใน Java ผมยกตัวอย่าง java.lang.Thread.stop()
ละกัน จะเห็นว่า deprecated มาเกิน 10 ปีแล้วครับ
แต่มันยังอยู่ครับ และถ้าไปดู API java.util.Date
นี่ก็ deprecated กันมายาวนานพอๆกันครับ ยังมีอีกเยอะครับ
แต่ผมจำไม่ได้
Java ก็ Opensource ครับ ขอโทษที จริงๆแล้ว
ผมจะหมายถึงพวกที่เริ่มจาก Community ครับ
เช่น Python นี่เล่นเขียนใหม่กันเลยทีเดียว (แต่ผมก็เห็นด้วยนะ)
แต่ Java คงทำอย่างนั้นลำบากหน่อย
ไม่ต้อง search ก็พอจะรู้ผลลัพธ์ครับ มันเป็นคำ
โฆษณาของ Sun เพื่อ Java ตั้งแต่เริ่มแรกใครๆก็รู้
ว่าแต่หลังๆมานี่(หลายปีพอสมควร)ผมไม่ค่อยเห็นใครพูดถึงนอก
จากคุณนะครับ เพราะภาษาหลายๆตัวก็ มาแนวทาง นั้นเช่นกัน
ที่ใช้ managed code แทนการใช้ native instruction
เพื่อให้ run ได้ใน platform อื่นๆ รวมทั้ง .NET
สงสัยผมต้องไปซื้อหนังสือ "นิยม C#" ของ Apress
มาอ่านสักเล่มเพิ่มเติม ล้อเล่นนะครับ ผมก็เข้าใจผิดนึกว่า
คุณบอกว่าคุณเป็น pro(fessional) C# ว่าแต่คุณไม่ได้ใช้
C# ในงานจริงหรอครับ เรียกผมว่าเป็น pro(fessional) java
ได้นะครับ เพราะผมใช้มันในการทำงานจริงๆ
Zealot นี่ผมไม่ชอบครับ เพื่อนผมมันชอบส่ง zealot
มาไว เหลือเกิน แต่ละตัวก็อึดเหลือแสน เอ๊ะ สงสัยคนละ zealot
โทษทีครับ ผมเข้าใจผิดเลยพาลรู้สึกไม่ดี ที่เห็นคำว่า zealot
หลายคนที่เขียน Java มาส่วนใหญ่จะเป็นอีกอย่างน้อยหนึ่งภาษา
ใน JVM ครับ ส่วนผมเคยเขียน PHP,Python,Perl,C,VB
ในงานจริงๆครับ ส่วน C# ได้ลองแค่ขำๆครับ ผมไม่ค่อยมี
เวลามากพอให้กับมันเลยยังใช้มันแทน Java ไม่ได้ แต่เท่าที่ลอง
ก็ประทับใจครับ ตอนนี้ใช้ Java กับ Groovy เป็นหลักและ
ก็เป็น professional java/groovy ครับ
ทุกวันนี้ผมก็ทำงานกับ C# ครับ
แต่ยังมิกล้ายกตัวเองเปนโปรเฟสชันนอลครับ
ส่วนตัวผมเห็นว่าการเป็นโปรเฟสชันนอล มันมีอะไรมากกว่าแค่ใช้มันเปน
ใครๆก็ใช้กระบี่เปน คนส่วนนึงก็เรียนวิชากระบี่ได้ แต่มันก็คนละเรื่องกับเจ้าสำนักกระบี่และศิษย์ที่สำเร็จวิชาชั้นสูง
เรื่องอื่นๆ ผมก็พอเข้าใจและเห็นด้วย
ยิ่งเรื่อง Thread Stop นี่ชัดมาก ประเด็นของผมคือ ทำไมจาว่าถึงไม่ทำมากกว่านี้
ตอนนี้ผมไม่ได้ติดตาม Java มาสองปีแล้ว จึงพูดหลายครั้งว่าผมไม่แน่ใจว่าตอนนี้เปนอย่างไร
แต่จาว่าที่ผมจำได้เมื่อสองสามปีก่อน คือไม่มี struct และ delegate ไม่มี pass by ref (ก็ไม่มี struct นี่นะ...) แล้วก็ยังคงช้าอืดอาด Benchmark แพ้ .NET
มันก็ไม่จำเป็นว่าจะต้องลอกฟีเจอร์คนอื่นเขามาให้ได้ ถ้ามันไม่ได้จริงๆ แต่อย่างน้อยก็ต้องมีของทดแทนกันบ้าง ไม่ใช่ปล่อยให้แซงเรื่องสำคัญๆเป็นปีๆ
อย่าง ValueType เนี่ย ไม่มีได้ยังไงกัน ตัวเพิ่ม Performance เลยนะ
อีกเรื่องก็ ภาษา Managed Code หลายๆภาษาตอนนี้ ก็จะโฆษณาว่า "รันได้หลายแพลตฟอร์ม" "Cross Platform" "Multi platform" ก็จริงครับ นี่ก็ปกติ
แต่ไม่เห็นใครยกหางตัวเองขนาดจาว่านะครับ ว่า Run Anywhere
และที่แย่คือมัน Anywhere ไม่ได้จริง แต่ก็ยังโฆษณาตลอดว่า Anywhere
นี่มันหลอกลวงผู้บริโภคนะ
อย่างน้อย .NET ไม่ค่อยจะโฆษณาเรื่องนี้หรอก เพราะ MS รู้ตัวเองดีว่าจะไม่ทำจริง
ถ่อมไปแล้วครับ คุณก็เป็น professional ด้าน C# ครับ
ไม่งั้นคงไม่สามารถแสดงมุมมองของมืออาชีพได้แบบนี้
ผมศึกษาและทำงานโดยใช้ Java มา 6 ปี ถ้าไม่เรียกตัวเองว่า
professional มันก็จะรู้สึกแปลกๆครับเหมือนหลอกตัวเอง
แต่ผมไม่เก่งมากครับ แค่พอทำงานได้
ขอตอบเป็นข้อๆละกัน
จากที่คุณกล่าวว่า "ไม่มี struct และ delegate ไม่มี pass by ref (ก็ไม่มี struct นี่นะ...) "
ผมงงๆ(กับคุณ)ครับ ขอ copy มาจาก MSDN ให้อ่านละกัน
Structs vs. Classes
Structs may seem similar to classes, but there are important differences that you should be aware of. First of all, classes are reference types and structs are value types. By using structs, you can create objects that behave like the built-in types and enjoy their benefits as well.
อืมสำหรับ ValueType นี่ภาษาไหนไม่มีครับ ?? แล้วจะเขียนโปรแกรมกันยังไง
ผมว่าเรื่อง ValueType นี่ Java performance น่าจะดีกว่านะ
เพราะมาเป็น primitive เลย ถ้าจะไปทาง OO หน่อยก็พวก wrapper ครับ
และกลุ่ม custom class ที่เราจะทำเป็น Immutable
คำว่า Write Once Run Anywhere เนี่ย มันเป็น Ambition , Engineering Aim ถ้าไม่มีอคติคง
ไม่ไปว่าเขาเสียหายขนาดนั้น มันเป็นที่มาของ platform ที่ base บน VM มีการใช้ bytecode
ซึ่ง .net ก็ทำตามด้วย หรือไม่ถูก? ms ไม่ใช่ทำ cross platform ไม่ได้ แต่เขาไม่ทำเพราะเขาอยาก lock คุณไว้ใน OS ของเขา ที่เป็นแหล่งรายได้หลัก ตรงนี้ควรยกย่อง SUN ด้วยซ้ำ สิ่งที่เขา contribute ให้กับ อุตสาหกรรมมีมากมาย.net ก็ได้รับมาด้วยไม่น้อย ในแวดวงการศึกษาที่ผลิตบุคลากรออกมาได้รับแรงบันดาลใจจากผลงานตัวนี้ไปเท่าไหร่แล้ว
วันที่ java เริ่มยังไม่มีตัวอื่นแบบเดียวกันให้ศึกษา เลียนแบบ หรือ ปรับปรุง เรียกได้ว่าเป็น pioneer ด้านนี้
"แต่ไม่เห็นใครยกหางตัวเองขนาดจาว่านะครับ ว่า Run Anywhere
และที่แย่คือมัน Anywhere ไม่ได้จริง แต่ก็ยังโฆษณาตลอดว่า Anywhere
นี่มันหลอกลวงผู้บริโภคนะ"
=> ก็ run anywhere ได้มากกว่า technology อื่น ๆ ทั้งหมด
รวมทั้งอุปกรณ์เล็กอุปกรณ์น้อยอีกด้วย
มันก็ไม่จำเป็นว่าจะต้องลอกฟีเจอร์คนอื่นเขามาให้ได้ ถ้ามันไม่ได้จริงๆ แต่อย่างน้อยก็ต้องมีของทดแทนกันบ้าง ไม่ใช่ปล่อยให้แซงเรื่องสำคัญๆเป็นปีๆ
อย่าง ValueType เนี่ย ไม่มีได้ยังไงกัน ตัวเพิ่ม Performance เลยนะ
=> ก็ aim มันต่างกัน เขามีปรัชญาของเขามาแต่ต้น และยังต้องคิดถึงว่ามันจะต้องไปอยู่ในระดับที่เล็กที่สุดได้เช่นใน
smartcard เขาไม่ได้คิดแต่เรื่อง performance
เรื่องแซงฟังดูตลก เพราะ ทำ platform พวกนี้ ออกตัวทีหลัง สามารถเรียนรู้จาก ตัวที่ออกก่อนได้ ต่างหาก ผมกลับคิดตรงกันข้าม technology ที่ออกมาก่อนหลาย ๆ ปี ยังคงเป็นคู่แข่งขันที่แข่งกันได้ ดูจะมีอะไรให้วิเคราะห์มากกว่า เพราะแสดงถึงความ sound ของ concept ด้านต่าง ๆ ที่ถูกทดสอบผ่านกาลเวลาและสถานการณ์ได้
ถ้า .net เปิดกว้างให้เท่า java แต่ต้นใครก็ไม่ปฎิเสธ
ต่อให้ตอนนี้ เกิดการเปลี่ยนแปลง คงไม่ไป mono อยู่ดี ผมคิดว่า opensource community เริ่ม
แข็งแรงพอที่จะมี platform ของตัวเองใหม่ตั้งแต่ต้น
แค่ใช้หากินก็เรียกว่าเป็นมืออาชีพได้แล้วครับ ถ้าไม่เก่งจริงเดี๋ยวก็โดนเลื่อยขาเก้าอี้หายไปเอง แล้วถึงตอนนั้นค่อยกลับมาเป็นมือสมัครเล่นใหม่ :-)
ส่วนตัว เรื่อง struct กับ delegate ... เอาเรื่อง struct ก่อน ถ้าเคยศึกษาเรื่องนี้ก็น่าจะพอรู้ว่า struct ใน C# (และใน C++ ด้วย) กับ class นั้นใกล้เคียงกันมาก ต่างกันนิดหน่อยเท่านั้นเอง (เช่น เป็น value type ไม่ใช่ reference type แต่เอาเข้าจริง ๆ ก็ใช้เทียบเคียงกันได้ไม่ลำบากนัก) เอาง่าย ๆ ก็คือเป็นการทำ type definition นั่นเอง จริง ๆ แล้ว java ที่เป็นภาษาที่มีพื้นฐานมากจาก C (แต่ใช้คอนเซพท์แบบ OO จาก Smalltalk) จะทำตรงนี้ก็ได้ ... แต่ทางผู้สร้างมองว่ามันไม่จำเป็นนัก คือ ไม่มีก็ยังใช้ class เทียบเคียงกันได้ เค้าก็เลยตัดออกจากสเปคไป (พร้อมกับจำกัดไม่ให้ user สร้าง value type ไปด้วยในตัว)
ส่วน delegate อืม ผมชอบนะ syntax clean มาก ใช้ไม่ยากด้วย แต่ถ้าถามว่าจำเป็นมั้ย ..... มีก็ดีนะครับ แต่ว่าเราใช้ inner class + interface (+anonymous class ด้วยเอ้า) แทนได้โดยการเขียนเป็น object ในลักษณะที่เรียกว่า Functor (หรือ Function Object) ก็เลยกลับมาเข้ากรณีที่ว่า ... ไม่จำเป็นต้องมี (อีกละ) (จริง ๆ แล้ว delegate ก็อยู่ในลักษณะของ Functor เหมือนกันนะผมว่า)
Java เป็นภาษาที่เน้นความเรียบง่ายน่ะครับ อะไรที่เขามองว่า ใช้แทนกันได้ ใกล้เคียงกัน/คล้ายคลึงกัน ก็ยุบเอาอันที่มันยืดหยุ่นที่สุดมาใช้ จริง ๆ มันก็มีการเปลี่ยนแปลงตัวภาษาอยู่บ้าง แต่น้อยมาก เช่นการเพิ่ม generic เข้ามาใน Java 5 เป็นต้น (ซึ่งก็จริง ๆ ก็ไม่ถึงกับจำเป็นหรอก แต่ cast บ่อย ๆ มันก็น่าเบื่อ + มันทำให้การเขียนโปรแกรมเป็นระเบียบขึ้นมาก เลยยกประโยชน์ให้จำเลย)
สุดท้ายบอกก่อนว่า ผมใช้ทั้งสองอย่าง และ ด่าทั้งสองอย่าง อะไรที่ดีก็ว่ากันตามชอบ อะไรไม่ดีก็พูดกันตรง ๆ ดีกว่าเน้อ
ปล. แต่เท่าที่อ่านดู J2EE กับ ASP.NET เร็วพอ ๆ กันนะ (ไม่รู้เค้ามั่วป่าว) อาจจะเพราะว่า ASP.NET รันบน Windows ที่มี GUI แต่ J2EE ไม่จำเป็นก็ได้มั้ง ???
ปลล. Winform บน Linux (ผ่าน Mono) หน้าตาเห่ยจนแทบใช้การไม่ได้ Swing สวยกว่าเยอะ! (แถมเร็วกว่าด้วยนะเออ!!) GTK+ ดูดีกว่า แต่ผมขี้เกียจไปอ่านวิธีเขียนใหม่อ่ะ ... (+ ต้องผูก lib ไปกับโปรแกรมด้วยเวลารันบน Windows)
ก็อย่างที่ว่าแหละครับ
ถามว่ามันจำเปนมั้ยที่ต้องมี Performance
ก็ไม่จำเปนหรอก จะทำงานวินาทีละ 10 ลูป ถ้ามันเร็วกว่าคนคิดมันก็โอเคแล้ว
แต่เอาจริงๆยิ่งเยอะก็ยิ่งดีไม่ใช่?
Value Type ก็ประมาณนั้นแหละครับ
กลับกัน ผมเห็นว่า delegate ยืดหยุ่นที่สุดแล้วนะ(และก็ยังง่ายพอตัว) ข้อเสียที่สำคัญของมันคือ overhead ก็ เพอร์ฟอร์แมนซ์
ถ้าจาว่าสนใจความยืดหยุ่นก็น่าจะเลือก delegate มากกว่านะครับ
ทุกวันนี้ผมเขียน C# ก็พยายามเลี่ยง delegate เพื่อ performance ตลอดเวลา แต่มันตลกที่ว่า Java ที่เน้นความยืดหยุ่นและไม่สนใจความเร็วมากนักกลับไม่เอาฟีเจอร์นี้
กลายเป็น C# ที่ All Around มากกว่า
Generic นี่ก็อีกตัว ผมชอบเล่น Generic มากเลยนะ มันทำให้ type safe ได้อย่างยืดหยุ่น(ผมรัก strong type) แถมไม่เสีย performance ด้วย
ที่ผมตอบแรงๆในกระทู้นี้ก็เหมือนปล่อยผีล่ะครับ เพราะเซ็งมานานแล้วกับ Java เร็วส์ Java run ได้ anywhere คิดอะไรไม่ออกก็มาใช้ Java สิ เขียนลงที่ไหนก็ได้ เก๋า เจ๋ง เมพ
แล้ว C# ก็โดนถล่มว่าครอสแพลทฟอร์มไม่ได้ มั่งล่ะ ของเล็กนุ่มมั่งล่ะ ลอกจาว่ามั่งล่ะ(จาว่าไม่ได้ลอก smalltalk รึไง)
ผมชอบ C# ที่ฟีเจอร์เยอะกว่า มีการพัฒนามากกว่า(จาว่าจะทำก็ทำได้ แต่ไม่ยอมทำ หึ)
ประโยชน์ของการที่มันมีฟีเจอร์ที่ไม่จำเป็นเยอะแยะ มันก็ทำให้เขียนอะไรได้หลากหลาย
และมีแต่ไม่ใช้ก็ไม่ต้องไปยุ่งกับมันก็ได้ อย่างที่บอกว่าผมแทบไม่ใช้ delegate เลย LINQ ก็ไม่ใช้
แต่อย่าง yield IEnumerator นี่ คงมีหลายคนไม่ใช้
แต่ผมชอบนะ ใช้มันทำอะไรเล็กๆน้อยๆบ่อยๆ
ทิ้งท้าย
ผมไม่อยากพูดว่า ValueType ไม่จำเป็นเลยนะ
เวลาเขียนเกมนี่เปนตัวสำคัญที่ใช้รีดความเร็วเลย ถ้าไม่มีนี่ขาดใจตาย
มันคอมแพคต์ดีในหลายๆจุดด้วยครับ ใช้ Encapsulate ก็ดี ใช้ union ก็ดี
ทำ struct ใหญ่ๆแล้ว pass by ref ไปมาแบบ Modular ก็สนุก ใช้กับ generic ยิ่งสนุกเข้าไปใหญ่
เล่นกับมันแล้วจะติดใจมาก
Slogan ของ Java ตั้งแต่ต้นเลยครับ ผมเป็น
คนแรกๆ ที่โหลดตัว SDK มาเล่น ด้วยประโยคนี้ล่ะ
คุณเอาอะไรมาตัดสินว่าจาวา Write One ไม่ได้ Run any whare ผมใช้จาวาเขียนโปรแกรม ERP (OFBiz) มาสามสีปีโปรแกรมที่ผมเขียนสามารถเอาไปรันบน Linux Windows Unix OSX ได้โดยไม่ต้องปรับแต่งอะไรเลยไม่ต้อง compile โปรแกรมใหม่ด้วย คือผมก็ไม่ได้ใช้ Java อย่างเดียวในการทำมาหากิน PHP ก็ใช้ C++ ก็ทำ C# ก็เคยผมไม่เคยไปบ่นว่าภาษาพวกนี้ช้าหรือมีข้อด้วยอะไรเลยเพราะภาษาแต่ละภาษามันมีข้อดีในตัวของมันเอง ขึ้นอยู่กับงานที่จะเอาไปทำ ถ้าเขียนซอฟต์แวร์ที่อาศัยเทคโนโลยีของไมโครซอฟต์เป็นหลักก็ใช้ C# VB.NET ไป ถ้าเขียน enterprise application ก็จาวาเพราะเท่าที่ทราบ open source หรือ ERP ดังๆ(OpenBravo, Compiere, Adempiere หรือ OFBiz เอง)ล้วนใช้จาวาไม่นับถ้าไม่นับ commercial แต่เท่าที่เห็นความเห็นใน BN จะมีความหรือความเห็นที่บอกว่าจาวาช้า จาวาค้าง จาวาบลาๆๆๆๆ หรือแม้กระทั้ง Applet ค้างเลยทำให้จาวากากก็มี
แปลว่า จาวาไม่ค้าง ใช่ไหมครับ?
ใช่ครับ ถ้ามันค้างผมก็คงไม่ใช้มันทำมาหากินหรอกครับ
ไม่ได้ จะแย้งอ่ะไรนะครับ คือมันต้องเซ็ทอัพ อะไรเป็นพิเศษไหมครับ
เพราะเครื่องผมไม่เคยใช้ Eclipse เขียนอะไรได้จนเสร็จโดยไม่ค้าง
เลยครับ
eclipse จะมี compiler มาให้ สังเกตุว่าจะสามารถคอมไพล์ได้โดยที่มีแต่ jre วิธีแก้คือ เปลี่ยนไปใช้ตัว jdk ก็ไม่ค้างแล้วครับ
windows->preferences->java->installed jre
เท่าที่ลองจากประสบการณ์ที่ผ่าน ๆ มา เคยใช้ Oracle SQL Developer (Swing) ใช้ตอนเช้านี่ OK เลย ทำงานได้ราบรื่นดี แต่พอเปิดทิ้งไว้ไปทานข้าวกลางวัน ได้ไม่ถึง 45 นาที มันไปแล้ว ค้างเติ่ง เครื่องอืดสุด ๆ (โปรแกรมเดียวเลยที่เปิด) ต้องปิดมันแล้ว Restart เครื่องอีกรอบ ส่วน Eclipse (SWT) มันไม่ค้าง แต่ดับไปเลย มี popup ขึ้นมาแจ้งว่า out of memory แล้วมีแต่ปุ่ม OK ให้กด แต่หากปรับจูน Xmx1024m สำหรับ eclipse 64 bit จะทำงานได้เร็วเสถียรพอควร ยังไม่เจอ out of memory แต่หากใช้กับ OS ที่เป็น 32 bit ค่า Xmx จะได้แค่ 948m เกินจากนี้ eclipse เปิดไม่ขึ้น
นี่แหละครับสาเหตุที่ทำให้ผมไม่เก่ง JAVA
ทั้งๆ ที่พยายามหัดเมื่อเกือบ 8 ปีที่แล้ว ตอนนั้น ใช้ JBuilder ครับ
ช้ามากๆ เหงือกแห้ง เลยไม่หัดมันแล้ว
ส่วน C++Builder ตอนนั้น Compile โปรแกรมผมใช้เวลา 11 นาทีต่อครั้งครับ ก็ใช้ลองวิชาในบางโปรเจค
ส่วน Delphi ใช้เวลา 2 นาที ก็เลยเก่ง Delphi ตั้งแต่นั้นมา
VB รันได้ทันทีเลยครับ แต่ความสามารถน้อยไปนิดนึงเลยไม่ได้สนใจมาก แต่ผมก็เป็นแฟน VB Classic มาหลายปีครับ
*เครื่องผมอาจจะช้าก็ได้นะครับ ตอนนั้น คอมมันเก่า ห่วยจริงๆ
การปรับต้องดูด้วยว่าเครื่องเรา RAM เท่าไหร่ แล้วขณะทำงานแล้วเปิด app อื่นๆแล้ว เหลือแรมเท่าไหร่ถ้ากำหนดมากเกินไป อาจะทำให้เครื่องคุณช้าได้เพราะรู้ๆอยู่ว่าจาวารับประทานแรมเป็นอาหารหลัก ลองศึกษาวิธีการปรับแต่งได้ที่นี่ครับ Java HotSpot VM Options
jvm มันทำ memory leak เหรอครับ
ที่แน่ๆคือเคยทำครับ
ตอนนี้ได้ยินว่าแก้แล้ว(แต่ก็ได้ยินว่าไอ้ปัญหา JVM ทำ Mem Leak เนี่ย ยาวนานหลายปีกว่าจะได้แก้)
จริงหรือเปล่าครับนี่ ถ้าจริงจะขบขันมาก โปรแกรมที่เขียนด้วย Java ไม่มีหน่วยความจำรั่ว เพราะ GC แต่ VM รั่วเอง :P
ปล. เป็นหัวข้อที่ถกกันยาวมาก ยาวกว่าที่ /. แล้วนะเออ
จากประสบการณ์ผม applet เคยค้าง
และก็ Eclipse, Netbeans เคยค้าง
applet นี่ผมไม่รู้ว่าทำไม แต่ Eclipse กับ Netbeans
นี่ใช้มันโหดไปหน่อย ก็สมควรค้างอยู่
แต่ถ้าจะพูดถึงแค่ Java อย่างเดียวนั้นมันคงไม่เป็นธรรม
เพราะผมเคยเจอค้างมาแล้วหลายตัวทั้ง Windows, Linux,
Microsoft Office ทุกรุ่นที่เคยใช้, IE, Firefox,
Chrome, OOo, ผู้หญิง(หมายถึงค้างเงินนะครับ)
และอีกมากมายนับไม่ถ้วน แม้แต่ notepad เวลาเผลอเปิดไฟล์ใหญ่ๆ
Flash ยังค้างเลยครับ
ทดสอบหน่อย จะดูว่า edit ได้รึเปล่า (อ้างอิง)
EDIT: ก็ได้ปกตินิ - -
หมายถึง reply คุณโดยตรงน่ะครับ
ลอง edit ดูใหม่ครับ
UI Java ไม่ได้เลวร้าย ครับ ถ้าศึกษามาดีพอ
http://www.jyloo.com/synthetica/themes/
"As with any technology,
you can easily build a slow app,
building a performant app takes some time, energy, and experience."
http://goo.gl/tlOL
จาว่าไม่ได้เลวร้ายหรอกครับ
แต่มันก็แย่กว่าในหลายๆด้านและหลายๆงาน
แล้วก็มีคนชอบหลอกให้คนไปใช้ Java ไปซะทุกงาน ทั้งที่หลายงาน C# ดีกว่า เหมาะกว่า
UI ว่าช้าแล้ว JVM เคยช้ายิ่งกว่านั้นอีกครับ
(เห็นว่าตอนนี้เร็วขึ้นมาสองสามปีแล้ว แต่ผมไม่ได้ติดตาม)
ส่วนตัวแล้ว แอพง่ายๆ จับๆใส่ๆเสร็จ แถมเพอร์ฟอร์แมนซ์ก็ดี
C# ก็ทำได้ครับ VC# ก็มีเครื่องมือพร้อม
ผมไม่เคยใช้ Eclipse(จริงๆเคยแตะๆ แต่ก็นานมาแล้ว) เลยไม่ทราบว่าดีกว่ารึเปล่า
แต่ถ้าไม่มี Tool แบบ VS ก็สู้ไม่ได้หรอกครับ
เห็นมีแต่คนบอกว่า Swing นี่แหละ ตัวช้าแล้วยังเรื่องมากเกิน ทำตัว One Size Fit All คนใช้ต้องมี EXP สูงส่ง
ผมฟังแล้วก็หันไปมอง Winform มันดูคอมแพคต์ ใช้ง่าย เพอร์ฟอร์แมนซ์ก็ดี
ประโยคที่คุณว่ามา ผมว่าไม่จริงเท่าไหร่เลย
วัดจากอะไรว่า performance ดีครับ ?
เท่าที่อ่าน คุณกำลังจะสื่อว่า
ถ้าให้เด็กประถม มาเขียน c#
แบบลากวางๆ performance ก็เทพได้ c# ดีขนาดนั้น ?
ผมเขียน c# เป็นครับ และรู่ว่ามันต่างกับ java ยังไง
ข้อดีข้อเสีย ก็รู้ครับ
แต่ผมไม่ชอบแนวทางการ buff ของคุณ
แถมให้ครับ
http://code.google.com/javadevtools/wbpro/index.html
ตอนนี้ผมไม่แน่ใจเพราะผ่านมานานแล้ว
แต่ผมแน่ใจว่า เมื่อก่อนนี้ ผมลองแอพง่ายๆ โง่ๆ เขียนเหมือนกัน ทำงานโง่ๆ ลูปเล่นวัด Performance
C# ก็เร็วกว่า Java
ส่วนตัวเชื่อว่าตอนนี้ก็อาจจะดีขึ้นอย่างที่เขาว่า
แต่ผมก็ไม่ค่อยเชื่อเลยว่ามันจะดีกว่าได้
ว่างๆอาจจะหาเวลา Benchmark อีกรอบ
ประเด็นอยู่ที่ ผมอาจจะตกคำว่า "ดีกว่า" ไป
เพราะแน่นอนว่าไปวัด Perf ยังไง C++ ก็เร็วกว่า
ไอ้การลากแปะนี่ VS เขียน C++ ก็ทำได้
แต่อย่างน้อยมันก็ดีกว่า Java
อย่างไรก็ตามแต่ เวลาโฆษณา คนก็ชอบบอกว่า จาว่าเร็วส์
ก็ลอยๆ ไม่มีตัวเปรียบเทียบเหมือนกัน
ผมเห็นคำว่า "ผมไม่แน่ใจ" ในแทบทุกโพสของคุณ ช่วยศึกษาให้แน่ใจแล้วค่อยมาฟันธงว่าอะไรดีหรือไม่ได้ได้ไหมครับ
ก็ไม่ควรใช้ ทฤษฎี "เหมา" ครับ
ประเทศพังเพราะคนคิดแบบนี้มาเยอะแล้ว
คนเขียน Java ไม่ใช่ทุกคนที่คิดว่า "จาวาเร็วส์" ครับ
และ
คนเขียน C# ก็ไม่ใช่ทุกคนที่คิดว่ามัน "เทพ" เช่นกัน
+1
ผมก็ไม่เคยคิดว่ามันเร็วครับ แต่เลือกเพราะ community + framework ครับ
โห ไม่ได้เข้ามาสองวันร้อนแรงมาก ไปๆมาๆ เหมือนคุณ Thaina จะเป็นสาวกมากว่าคนที่ตัวเองเรียกสาวกนะครับ นี่ :)
+1000 สาวก C#
ขอดูโค้ดเทพ และตัวอย่าง application ของคุณ Thaina หน่อยได้มั้ยครับ
เอา c# ของที่คุณถนัดก็ได้.... ???
ไม่ให้ดูถือว่าไม่เก่งจริง ส่วนผมไม่ให้ดูเพราะผมไม่เก่ง :P
Visit me at atthakorn.com
ปลุกผีกระทู้ลองเอาผลการทดสอบเมื่อนานมาแล้วไปอ่านเล่นๆดูอ่านให้จบนะครับ อ้ออย่าลืมอ่านคอมเม้นท์ด้วยนะครับ Hard Fight : Java vs. Python vs. Ruby
สำหรับผม ผมว่าคนเขียนเค้า Bias นะครับ แล้วท่าทางเค้าจะไม่รู้จัก STL
ด้วย Garbage Collector ไม่ได้สำคัญเลย ถ้าออกแบบโปรแกรมได้ดี
สำหรับการ Design UI แบบลากวางของจาวาแนะนำลองไปศึกษา
Matisse4MyEclipse Swing UI Designer หรือ Swing GUI Builder หรือ visualswing4eclipse หรือ WindowBuilder Pro
ผมเห็นด้วยกับ Thaina นะตอนสมันเรียนผมรู้สึกว่าใช้งานมันยุ่งยากจัง exception, event handle มันต้องทำอะไรมากมายกว่าจะใช้งานได้ อาจเป็นเพราะผมใช้ VB6 มาก่อน นอกจากนั้นแล้วโปรแกรมหลายตัวที่เขียนด้วย จาวา ที่ผมเคยเจอพวก freemind หรือ star diagram อะไรแบบนี้ก็ช้าและแฮ๊งง่ายมากๆเลย ส่วนโปรแกรมไหนที่เขียนด้วยตระกูล .Net framework มันไวกว่าดูเป็นเนทีฟมากกว่าเแฮะ
พอได้ลองมาใช้ eclipse หรือ netbeans ทำโปรเจ็คเล็กๆส่ง อ. ก็ไม่สะดวกเหมือนกับVB6เลย ผมเลยมีความรู้สึกทางลบกับ java เอามากๆ ใครคนไหนว่าดียังไงก็ไม่เชื่อแล้ว เพราะผมเคยได้รับประสบการณ์แบบนี้มาแล้ว
พอเรียนจบผมได้มีโอกาสมาใช้ Java อย่างจริงจังในงาน ก็พบว่ามันไม่ได้แย่เลยนะ ส่วน Netbeans รุ่นใหม่ๆก็ดีขึ้นอย่างมาก (ตอนนี้ผมชอบ Netbeans มากกว่า VS อีกมันฉลาดเลยทีเดียว) ส่วน library ให้เลือกใช้มากมายเข้ากับงานของเราได้แทบจะทุกแบบ พอผมเริ่มใช้ ubuntu งานเดิมที่เคยเขียนก็รันได้เลยไม่ต้องแก้โค้ดซักบรรทัด
ผมเลยคิดว่า ไอที่ว่ามันช้าหรือแฮ๊งเนี่ยก็น่าจะเป็นที่คนเขียนด้วยหล่ะมั้ง ไม่ใช้แค่ JVM หรือตัวภาษาเพียงอย่างเดียว
อารมณ์เดียวกับผมเลยตอนเรียน เกลียดมากเอะอะอะไรก็อยากใช้ VB ทำเพราะมันง่ายกว่า ดูสะดวกกว่า แต่พอมาทำงานจริงๆ และได้จับ Java มาตลอดระยะเวลา 5 ปีกว่า ผมไม่ได้เขียนได้ดี ได้เก่งอะไรมากมาย และค้นพบว่ามันไม่ได้เลวร้ายขนาดนั้น แถมมันทำให้ผมมีอันจะกิน มีเวลามานั่งโพสอะไรตามที่แบบนี้น่ะละ ในฐานะที่เขียน C# ด้วยถ้าเน้น Code อย่างเดียวโดยไม่ลากแปะ eclipse หรือ netbeans เจ๋งกว่า VS มากมาย ใน VS แค่ผมจะสร้าง class ให้ extend จาก class แม่+ implement abstract or interface ผมต้องมาพิมพ์เอง manual (หรือผมใช้ VS ไม่เป็นเอง)
คลิกขวาที่เชื่อคลาสแม่ มันจะมีคำว่า implement abstract class ที่จะออโต้ Text ของฟังค์ชั่นให้ครับ(แถม throw new NotImplementException() ให้ด้วย)
ถ้าเป็น interface ก็จะให้เลือกว่าจะ implicit หรือ explicit ครับ
Eclipse ไม่ต้องยกมือมาคลิ้กเมาส์ครับ ctrl + space bar แล้ว enter จบ นี้เป็นอีก function ที่ต้องผมเขียน C#.NET แล้วผมอยากให้มันมีมากๆ
ผมถนัดใช้เมาส์ครับ แทบไม่ได้จำ Hot Key ผมเลยไม่ทราบว่ามีหรือไม่
ส่วนตัวเชื่อว่ามีครับ แต่คงไม่ใช่ปุ่มเดียวกับ Eclipse
แนะนำเรื่อง Hot Key เลยครับ มันทำให้เขียนโค้ดมันขึ้นมากๆ แต่ผมเองก็ยังจำไม่ได้หมดหรอกเปลี่ยน tool บ่อย - -"
ขอโทษที ผมหมายถึงตอนสร้างเลยครับ อย่างใน eclipse นี่เวลาสร้าง class (พิมพ์จากหน้า dialog สำหรับใส่ชื่อ class) จะมีให้ extends , implement etc.มาให้เรียบร้อยครับ ผมถึงบอกเวลาถ้านับแค่เรื่อง coding นี่ผมให้ eclipse, netbeans ครับ ส่วนเรื่องพวก ลากวางจัด layout winform นี่ยอมให้ VS เลยเจ๋งจริงครับ ทำงานได้เร็วด้วย
ถ้าต้องการความเร็วระดับ Native ก็ควรใช้ SWT (ซึ่งก็ไม่ได้เร็วขนาดนั้นแต่ก็ถือว่าเร็วทีเดียว)
ถ้าต้องการความยืดหยุ่น Swing ผมว่าให้ได้มากกว่า Widget Toolkit หลาย ๆ ตัว แต่ว่าผมก็ยังไม่ค่อยชอบ Layout ที่มันให้มาอยู่ดี
ถ้าต้องการการลากวางผมว่า ... ผมยังไม่เห็นตัวไหนที่ให้ได้ดีนะ ยอมรับประมาณนึงว่า .Net ให้ได้มากกว่า แต่ว่าหลาย ๆ ครั้งไอ้ความต้องการลากวาง ๆ มันทำให้เสียความยืดหยุ่นไปเหมือนกันนะ (เคยต้องมาเขียนพวก Custom Control แล้วก็พบว่าเขียนโค๊ดด้วยมือดีกว่า ....)
มันมี Benchmark ของ SWT vs Winform มั่งใหมครับ?
ผมว่าเอามาเทียบกันมันก็ไม่ค่อยแฟร์นา พวก WinForm มันทำมาเพื่อ Platform เดียวโดยเฉพาะ ไม่แปลกถ้าจะเร็วกว่า
Ruby / Rails ครับ
javascript html c#
May the Force Close be with you. || @nuttyi
ถ้ามองในแง่การหางานก็คงไม่พ้นตระกูล C ยังไงก็มีงานแน่ๆ
ถ้าแนว script ก็คง PHP เป็นหลัก แล้วก็ JavaScript ActionScript
ถ้า niche ก็ python R
C++ ,C แล้วก็ Python ครับ
+1
C# ครับ. ที่มองไว้เพราะอนาคตเล็งว่าจะจ้างprogrammer C#
น่าจะหาคนเป็นได้ง่าย
ส่วนตัวก็ประทับใจ .net กับ Delphi เพราะทำงานใด้เร็ว
Delphi เชยแถมแพงมากๆแต่ก็ชื้อใช้เพราะใช้หากินได้เงินเร็วดี
ยังไงผมก็ขายแต่ตัว.exe แถมไม่ได้สมัครงานที่ไหนแน่นอน
ก็เลยเลือกภาษาได้ตามใจผม
ผมเลือก1 )Delphi. 2) c#.net 3)Lazarus for Linux development ครับ
แถมอีกนิด db เลือกfirebirdsql. ครับ
Delphi หาคนเขียนเป็นยากครับ .net คงรุ่งกว่า ดู ความสามารถในการวาดกราฟ เทียบกันแล้ว report ของ.net ใช้เอนจิน
MsGraph วาดกราฟ 3D สวยมากๆแม้ว่า reportทั้งคู่เป็น ของ fastreport เจ้าเดียวกันที่มีทั้งfor Delphi and for .net
;; Fasreport for Delphi วาดกราฟได้บ้านๆแย่กว่าครับ
แต่ทิ้งท้ายนะครับ ไม่มีภาษาไหน หายจากตลาดง่ายๆหรอกนะครับ
แถมภาษาคนเป็นน้อยๆ ยิ่งจ้างแพง
เคยเห็นประกาศรับสมัคร. Prgrammer vb classic ให้เงินเดือนสูงกว่าvb.net นะครับ
เกิดขึ้นแล้ว
ยิ่งหายากยิ่งแพง แต่ก็หางานยากเหมือนกันครับ
ในกรณีที่รับจ้างเขียนอาจมีปัญหาบ้างเหมือนกัน เช่น ลูกค้าถามว่าใช้ภาษาอะไรเขียน ถ้าบอกว่าเป็น VB, C++ ก็อาจพูดกันง่ายขึ้น พอบอกภาษาอื่นที่ไม่ติดตลาดลูกค้าอาจจะลังเลนิดนึง บางที่อาจถึงขั้นร้องยี้แล้วไปว่าจ้างอีกที่หนึ่งโดยไม่ได้ดูเนื้องานหรือความสามารถของโปรแกรมนั้นเลย
แต่จริงๆ อยากแนะนำ Programmer ให้เรียนพวก ABAP อะไรอย่างงี้ครับ ผมเห็นหางานง่ายจ้างแพงด้วย
PASCAL
free pascal ครับ ถึงไม่รันได้แบบ any where แต่ก็เขียนได้หลาย platform และสามารถ compile any where ได้ก็ OK แล้ว
native on every platforms
มาถึงตรงนี้ยังไม่มีใครตอบพวก Lisp Erlang SmallTalk Prolog หรือ Modular เลยแฮะ
ถ้าไม่รวม Erlang ผมคิดว่าพวกนี้มันถูกสงวนไว้สำหรับนักศึกษาซะอีก
C++
เลือกแนวที่เป็นหัวคลื่นใหม่ครับ เกาะยอดคลื่นได้ก็ไปไกลได้ครับ
1.Objective-C แนว Concept ของภาษาก็ดีแบบ Java ไม่รุ่มร่าม มี Library ดี ทำงานได้ดี เครื่องมือในการพัฒนาของ Apple ดีมาก
2.Ajax,HTML5 เป็นแนวใหม่สร้างสีสัน
คลื่นลูกเดิมเกาะไว้ก็ไม่เสียหายครับเพราะยังไงงานเดิมก็ต้องใช้และต่อยอดได้ครับ
ภาษา Java เป็นภาษาที่ดีมากแต่ผมเลิกใช้เพราะมันช้าและ UI ไม่ค่อยได้ดังใจ
จริงๆแล้วถ้า Sun ไม่ทิ้งจุดเด่นของ SunOS4.x (BSD Unix) ไปเป็น SunOS5.x
ที่เป็น (System V) และเอาจุดเด่นของ Window ของ Sun ที่ชื่อ XView ออกไปแล้วใช้ CDE Motif แทน ละก็ เครื่อง Sun ก็จะมีจุดเด่นแบบเครื่อง Apple สมัยนี้ แล้วทำ Java Processor อย่างที่เคยคิดจะทำหรือทำ Native Java Library.
Java ก็คงเป็น Objective-C และ Sun ก็คงเป็น Apple ได้
หมายเหตุ: XView เป็นระบบ X-Window ที่ใช้ Concept เดียวกับภาษา Java คือจะส่ง Postscript code ไปยัง X-Server เพื่อแสดงผล คือถ้าเราสั่งวาดวงกลมมันจะส่งคำสั่งเป็นคำสั่งในการวาดวงกลมไปในระบบ Network Window ไม่ได้ส่งเป็น Bitmap Graphics พร้อมกับความสามารถหลากหลายในการเขียนคำสั่งง่ายๆทำการ Synchronize การทำงานใน window หลายๆอัน เช่นลูกบอลจาก window นี้วิ่งผ่านไปยังอีก Window หนึ่ง แถม Window ต่างๆยังไม่ต้องเป็นสี่เหลี่ยม เป็น Irregular shape เช่นเป็น Windows รูปการ์ตูนก็ได้ การเขียนก็ไม่ยาก ในขณะที่ตอนนั้น Microsoft เริ่มลอก Apple Macintoch คือเป็น Windows 3.1 อยู่เลย (รู้สึกว่าคนเขียน XView นี่มี James gosling คนสร้าง Java อยู่ด้วย)
งานในบ้านเราส่วนใหญ่ ถ้าไม่ Java ก็คง C# ไม่ก็ C++
แต่ผมว่าคนที่ถามกังวลมากไปหน่อย ยังไงผมว่า Java ก็ยังคงอยู่ต่อไป (อีกสักพักใหญ่ๆ อาจแตกเป็นหลาย VM แต่ตัวภาษาน่าจะเหมือนเดิม) รวมถึงภาษาที่สถาบันการศึกษาใส่ให้นักศึกษาก็เป็น Java โดยเฉพาะอย่างยิ่งวิชา OO
มันเหมือนกับ C++ ที่ผ่านมากี่ปี ไม่ได้มีการพัฒนาอะไรมากขึ้นไปเลย มันก็ยังอยู่อย่างนั้น คนก็ใช้มันต่อไป
เช่นกัน Java ตอนนี้มีหลายโปรเจ็คสำหรับอนาคตที่ใช้ Java ไปแล้ว เช่น Android, MapReduce (Hadoop) เป็นต้น ดังนั้น Java คงมีอนาคตอีกสักพัก
ปล. เห็นใน comment ของ slashdot มีคนตอบภาษาจีนด้วย ผมว่าอันนี้ก็จริงมีแนวโน้มมากๆ
ก็ไม่เชิงหรอกครับ C++0x ออกปีหน้านี้แล้วส่วน Boost นี่สุดยอดนะครับ
ถ้าจำเป็นจริงๆก็ Python, C++ จะว่าไปก็ใช้หมดอ่ะ แล้วแต่งาน
ผมจะหันมาสนใจเว็บเฟรมเวิร์คแบบต่างๆ เช่น ROR, Python Django, CakePHP เพราะผมคิดว่าในอนาคตเราจะมีอุปกรณ์หลากหลายแบบ หลากหลาย os
แต่ software ที่ใช้จะเป็นอะไรที่ซ้ำๆ จะให้มาลงในทุกอุปกรณ์ก็เสียเวลา แถมยังมีเรื่องการทำอย่างไรให้ข้อมูลตรงกัน และแค่เขียนโปรแกรมให้มันรันได้ในทุก OS ก็แย่แล้ว
แต่ถ้าเป็นเว็บ อุปกรณ์ทุกชิ้นไปเรียกตัวโปรแกรมและข้อมูลจากที่เดียวกัน ทำให้ชีวิตง่ายขึ้น
ไม่มี VB.net เลย สงสัยต้องเปลี่ยนทางแล้ว หาคนมาทำงานด้วยยากจริงๆเลย
javascript
pittaya.com
จริงๆก็เขียน PHP อยู่แล้วไม่เดือดร้อนอะไร Java รู้ไว้แต่ไม่เคยใช้ทำงานจริงๆซักที
แต่ถ้าจะเอาให้พอเทียบกันได้ ถ้าไม่ .NET ก็คง Python
เอาหางานคง javascript ไม่รู้ในไทยจะมีใครจ้างไปเขียน js อย่างเดียวบ้างหรือเปล่า
ถ้าเอาแบบสร้างงานเอง erlang+html5+js
อาจเป็นโอกาสอันดีของภาษาสคริปต์อย่าง Python และ Lua ส่วน Ruby อาจไม่แรงเหมือนแต่ก่อน เพราะอาการงอแงของ Twitter (ซึ่งจริง ๆ ไม่ใช่ความผิดของ Ruby) ส่วน PHP จากที่แรงอยู่แล้ว อาจแรงขึ้นไปอีก
ในขณะเดียวกันก็เป็นโอกาสของภาษา native compiled อย่าง D กับ Vala แต่ผมเชียร์ Vala มากกว่านะ เพราะใกล้ชิดกับ GNU มากกว่า และตอนนี้ library ก็เริ่มอลังกาลแล้ว (http://valadoc.org/)
ตามสถานการณ์ บริษัทต่าง ๆ คงจะยังใช้ Java ต่อไป เพราะมีเงินให้ Oracle เหมือนกับที่บริษัทที่ใช้ .NET มีเงินจ่ายให้ MS และคิดว่าคงมีบริษัทไม่มาก ที่จะผละจาก Java ไปหา .NET เพราะ Oracle
ส่วนคนที่ไม่มีกำลังจ่าย อาจต้องมองหาทิศทางใหม่ ๆ ที่ไม่ใช่ .NET หรือแม้แต่ Mono เพราะมีความเป็นไปได้ว่าเหตุการณ์คล้าย ๆ กันจะเกิดขึ้นกับ Mono แม้ว่าความเป็นไปได้นั้นจะต่ำมากก็ตาม
แต่ที่แย่คือพวกโครงการ Open Source เพราะการ fork ไม่น่าช่วยแก้ปัญหาได้มากนัก ในที่สุดหาก Oracle ไม่พอใจก็หาเรื่องฟ้องได้อยู่ดี หากคิดให้ไกล ๆ ยาว ๆ เขียนโค้ดใหม่อาจง่ายกว่า (เหอ ๆ ๆ) ซึ่งการเขียนโค้ดใหม่ในโครงการ Open Source ไม่ใช่เรื่องผิดปกติ หากจำไม่ผิด Python, KDE, Gnome ก็เคยเขียนโค้ดใหม่กันมาแล้วทั้งนั้น
สำหรับผมคงไม่เดือดร้อน เพราะไม่เคยใช้ Java และภาษาสคริปต์อย่าง Python กับการเขียน extension ในจุดวิกฤตด้วย C/C++ น่าจะเป็นทางเลือกที่ดีที่สุด
นิทานเรื่องนี้สอนให้รู้ว่า ควรใช้ภาษาที่มีจุดเริ่มต้นที่เป็น Open Source เท่านั้น
Python ครับ ^__^
นึกไม่ออกเลยแฮะ เขียนแต่ Java - -
เกาะ เทคโนโลยี web, css , html
แล้วไปดัดแปลงเกาะกับภาษาไหนก็ได้ :)
ตอนนี้ทำ PERL.
ABAP
+1
คนตอบคำถามนี้ คงจะเป็นลูกค้าก่อน ลูกค้าสั่งภาษาอะไรมาก็ต้องใช้ภาษานั้น (ถ้าบังคับ)
ถ้าลูกค้าไม่กำหนดมา คงเลือก Scala ถ้า ต้องเปลี่ยน platform เลือก .net c#
สำหรับงานของผมส่วนใหญ่ ภาษาที่ type ไม่ strong คงเลือกเป็นอันดับหลัง ๆ
แต่ก็ขึ้นกับโจทย์ด้วยว่า ภาษาไหนเหมาะสม
จริง ๆ งานเป็นโจทย์ ที่กำหนดคำตอบของ ภาษา ที่เป็นไปได้อยู่แล้ว
อาจจะเป็น prolog ก็ได้ ถ้างานเกี่ยวกับ logic หรือต้องเขียน ภาษา rule-based อื่น ๆ
งานที่เป็นพวก concurrency ก็มีกลุ่มเฉพาะของมัน
โปรเจคเดียวอาจะใช้ หลายภาษาก็ได้ ยิ่งเดี๋ยวนี้ถ้าทำระบบใหญ่มันต้อง script-able
configurable สูง
สำหรับผมสิ่งที่มีผลต่องานมากกว่าคือ library/framework
อ้าว คนรู้จักนี่ หวัดดีครับคุณอ๊อด
วันนี้ผมไปหาลูกค้ามาเหนื่อยมากๆๆ ปั่นงาน DB APP เมื่อคืนถึงตีสอง แถมนอนไม่หลับอีก
เอาไปส่งลูกค้า ลูกค้าไม่มีเวลาดู นัดใหม่พรุ่งนี้ซะงั้น แต่ก็โชคดีมากๆ ที่เค้าเบิกเงินมารอเราแล้ว
เลขาลูกค้าให้ clean ไวรัสให้ซะงั้น กลับเย็นเลยวันนี้
C/C++ Groovy/Grails
เห็นด้วยครับ Groovy, Scala, jyhon, jruby ถ้าไม่มีใครทำ jvm อีกก็ C++
เลือกไม่ได้ครับ เค้าสั่งให้เขียนอะไรก็อันนั้นแหละ ทำได้ทุกอย่างเพื่อเงิน
ปล. QBasic มั้ยจ๊ะ
QBasic นี่ภาษาแรกของผมนะครับ ผมบูชามาก 5555
Flex MXML... เผ่นนน~
555+ ไม่นึกว่าจะมีคนเล่น Flex ด้วยอ่ะ แต่ผมก็เขียนอยู่นะ ใช้ใน intranet ของบริษัทเอง หาคนคุยด้วยไม่ค่อยได้เลย ลองไปถามเพื่อนๆ ไม่มีใครรู้จักสักคน ทั้งที่จริงๆ มันก็เป็นลูกผสม java + javascript ส่วนตัวไม่ชอบ java ครับ เนื่องจากชอบ PHP (เกี่ยวกันไหมเนี่ย หุหุ)
ผมชอบ actionscript กับ flex มากครับ แนวทางดีมาก
เสียแต่ flash runtime คงต้องพัฒนากว่านี้ให้มาก
ตอนนี้ใช้อยู่ในโปรเจค รู้สึกว่าทุ่นแรงมาก
งานส่วนใหญ่เมืองไทยก็ออกไปทาง J2EE เพราะ vendor ใหญ่อย่าง IBM กับ Oracle ก็ขาย Java เป็นหลัก
ถ้าไม่เขียน Java อาจจะหางานในบริษัทที่ทำ Outsource หรือ Enterprise App ยากพอสมควร
ที่มองเห็นภาษาอื่นก็น่าจะเป็น C#, C++ หรือ Mobile ทั้งหลายอย่าง Object-C
เมืองไทยถ้าจะหางานจริงๆ ภาษาอย่าง python, ruby ยังไม่เห็นบริษัทรับเท่าไหร่เลยนะ (ลอง search จาก jobsdb ก็ได้)
แฟนพันธุ์แท้สตีฟจ็อบส์ | MacThai.com
Java
เขียนเป็นแต่ C# + PHP
บนวินโดวส์สำหรับผมแล้วก็หนีไม่พ้น C# อยู่แล้ว ส่วน VB นี่ผมเอาออกจากสารบบไปละ
แต่ถ้าใน Linux คงหนีไม่พ้น Java เพราะจะเขียน Gtk+ หรือ mono คงไม่ไหว เพราะเบื่อตัว IDE
Python is the future.
Java เหมือนเดิม อยู่กับ Oracle ก็ดี งาน Enterprise ยังขึ้นอยู่กับ Java เยอะ ทั้งของ IBM และ Oracle ถ้าจะหาเงินเป็นเรื่องเป็นราวระดับร้อยล้าน Up มันก็หนีไม่พ้นอยู่แล้ว
ทุกวันนี้เจอแต่ MATLAB กับ VB แต่เชียร์ C# ครับ
สำหรับ application บน windows ผมคงตอบในฐานะ user ได้เท่านั้น
ส่วนตัวจะเปลี่ยนเป็นอะไรก็ได้ แต่ขออย่า .net ได้ไหม
run program โง่ๆ ที่เพื่อนเขียนมาให้เล่น Program นึง file แค่ 100-200k ต้องติดตั้ง .net framework หลาย 10 MB ถึง หลัก 100 MB เพื่อ ทำให้ run program ได้ แถมนานอีก ลงแล้วบางทีต้องลง update framework เข้าไปอีกถึงจะ run ได้่ บ้าไปแล้ว...
ต่างกับสมัยมันเล่น VB program file มีขนาด เท่ากันลงแค่ VB runtime 4 - 5 MB หรือ add dll ตัวสองตัวก็ run ได้แล้ว
...
ส่วน Web app สำหรับ ผม PHP + Perl
Ton-Or
ลง .net framework มันคงไม่ต่างจากลง java runtime มั๊งครับ
ถ้านับที่ขนาด ก็ต่างกันนิดหน่อย .NET 4 Framework 48.1M, Java JRE 6 อยู่ที่ 15.3M
Python ประมาณ 15M แต่ผมรู้สึกเหมือนได้อะไรมากกว่า JRE เยอะเลยแฮะ เหมือนได้ JRE + JDK + Editor + Debugger + ...
.net 4 XP มีปัญหาครับ ลงแล้ว กว่า network จะ start ช้ากว่า ใช้งานได้ หลังเปิดเครื่อง หรือ reboot นี่นานมากๆ แม้จะลงตัว update แ้ล้วก็ตาม
เอาออกก็ไม่ได้ ทำได้วิธีเดียวสำหรับเครื่องที่ เผลอ update ไปคือ disable server .net4 นั้นทิ้งไปครับ
Ton-Or
.NET Framework 4 ตัวมันเองไม่ใช่ Server นะครับ หมายถึง IIS 5 บน XP + .NET Framework 4 รึเปล่า?
.NET Framework 4 ครับ ขออภัยพิมพ์ไม่เต็มครับ เพราะเห็นเริ่มแรก ผมพูดถึง Framework อยู่แล้วเลยไม่ได้ใส่ครับ
Ton-Or
ผมว่า คนข้างบนเค้าหมายถึง
".NET Framework 4 ตัวมันเองไม่ใช่ Server" ที่คุณบอกมาหมายถึง IIS ที่เป็น server หรือป่าวที่ start ช้า
ไม่ได้บอกว่าคุณพิมพ์ผิดหรือพิมพ์ไม่เต็มครับ กลัวจะเข้าใจผิด
อ๋อขอบคุณครับ ผมเข้าใจส่วนนั้นผิดจริงๆ หล่ะ
สำหรับผมหมายถึง 2 ตัวนี้น่ะครับ บน XP 32 หรือ 64 ก็ตาม
Microsoft .NET Framework 4 Client Profile for Windows XP x86 (KB982670)
Microsoft .NET Framework 4 for Windows XP x86 (KB982671)
พอ update ใน XP แล้ว network ที่เครื่องจะ ทำงานได้ช้ามาก
อาการมันประมาณ หลัง restart เครื่อง แล้ว บางทีทุกอย่างทำงานได้หมด ยกเว้น Internet ต้องรอจนกว่า Service .Net 4 Client start ให้ได้ก่อนผมถึงจะเข้า web ได้น่ะครับ
ถ้าตั้ง Show Network Connect ไว้ด้วยจะสังเกตได้ง่าย เพราะกว่า Icon จะ Show ที่ tray icon นี่ช้ามากๆ
Program บน windows ผมเป็น user น่ะครับ ไม่มีงานทำด้านนี้ตรงๆ ส่วนใหญ่จะ test program ที่เพื่อนเขียนส่งมาให้เล่นมากกว่า พอเห็นมันเล่น .net แล้วผมต้องลงโน่นนี่นั่น ล่าสุดต้องลง .Net 4 แล้วมีปัญหาน่ะครับ
เลยขยาด Program ที่ใช้ .net
Ton-Or
ปกติผมจะ pack jre ไปให้ใน package zip เลยครับ ไม่ต้อง install
ซึ่งนี่ก็คงเป็นข้อดีอย่างหนึ่งของ java แต่การ bundle ไปอย่างนี้มีข้อเสียคือ
ขนาดโปรแกรมที่ใหญขึ้น แต่จริงๆแล้วก็เป็นข้อดีได้เหมือนกัน คือดู professional
เพราะขนาดโปรแกรมใหญ่ นี่ไม่ได้เล่นๆนะครับ ลูกค้าบางคนคิดจริงๆ
อีกอย่างคือต้องดู OS ของ client ด้วย ทำให้
มันไม่สามารถ run ได้ทุก OS โดยปราศจากการ config เพิ่มเติ่ม
+1 ชอบตรงนี้แหละครับ
.net ก็ bundle ได้ครับ
แต่ exe ตัวเดียว 50mb+
ถ้าเทียบกัน ตอนลง java runtime ไม่นานนะครับ เหมือนแค่ unzip file ขนาด 15 MB แค่นั้น
แต่ .net นี่ ลง antivirus พวกเสียตัง เข้าไปด้วยยิ่งนานโครตกว่าจะติดตั้งเสร็จ
ผมเคยเจอ เกมส์ออนไลน์ บาง program ต้องใช้ .net2 หรือ .net3 นี่หล่ะ
ลงเสร็จต้อง update อีกรอบ ไม่งั้น run ไม่ได้
Ton-Or
ผมไม่เคยเจอนะ ที่ลงแอนตี้ไวรัสอะไรพวกนั้น
ผิดแพกเกจรึเปล่าครับ
ผมเคยเขียน VB classic
C++Builder
Delphi
Lazarus
มา พบว่ามี delphi กับ Lazarus ครับที่ output เป็น file exe file เดียวก็รันได้ ไม่ต้องใช้ library เยอะๆ
ผมอาจจะเขียนไม่เก่งก็ได้ C++ ของบางเจ้าอาจรัน single file ได้เหมือนกันครับ (แบบไม่ pack นะครับ)
ชอบ free pascal ครับ
Lazarus ปะครับ
ครับ
.NETแฟนบอยคงไล่ให้คุณไปใช้ Windows 6.0+ ครับ
ปัญหานี้ผมยอมรับโดยสดุดีเลยทีเดียวโดยเฉพาะบ้านที่มีเน็ตเต่าๆแล้วไม่มีอันที่ว่ามา -*-
ไม่อยากติด .NET Framework ก็ใช้ Windows 7 ซิครับ
เอาไว้ผมหาทาง mo 7 ไว้เล่นเกมส์ แล้ว benchmark ผลออกมาได้แรงกว่า XP ที่ผมโมไว้อยู่ก่อนครับ
งานของผมส่วนใหญ่เกี่ยวกับเกมส์ น่ะครับ มีงาน ส่วนนึงที่เกี่ยวกับวางระบบร้านเกมส์ทั้งระบบน่ะครับ
อีกอย่าง เกมส์ online ตอนนี้ DX9 ทั้งนั้น ถ้าหาทางทำ 7 ให้เร็วกว่า ไม่ได้คงต้องรอ เกมส์ทั้งระบบย้ายไปวิ่งบน DX 11 ให้หมด ค่อยคิดจะใช้ 7 น่ะครับ
ผมยังไม่เคย test เกมส์ ที่ใช้ DX9 ใน 7 ได้แรงกว่า XP สักครั้งเลยครับ ไม่ว่าลูกค้าร้านเกมส์จะลงเครื่องเทพสักขนาดไหน ข้อมูลส่วนนี้เก็บรวมไว้อยู่ครับ เพราะตั้งใจว่าปลายๆ ปีจะเขียนรีวิวเรื่อง XP กับ 7 เกมส์ล้วนๆ ใครแรงกว่า ส่งไว้ที่นี่ ให้ติชมกันครับ
Ton-Or
แต่อย่างน้อยมันก็ใช้แรม 4GB ได้คุ้มค่านะ XP ได้สูงสุด 2GB เอง การ์ดจอเดี๋ยวนี้ก็ DX11
3 ครับ
Mo เป็น 4 เลยมะ พึ่งเห็นยังไม่เคยลอง
http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx
Ton-Or
ผมว่าน่าจะหาทางขยับขยายไปทาง DX10/DX11 ได้แล้วล่ะครับ
เขียนง่ายกว่า DX9 อีกนะ
แต่ผมว่าจะกลับไปเขียน OpenGL ละครับ
DX10 - 11 มันไม่ยอมทำ C# DLL ซักที
ถ้ายังไงก็ต้องเขียน Binding เอง เขียน OpenGL ไปเลยดีกว่า
ผมไม่ได้เขียน Program น่ะ ผมเป็น user ใน แต่จะเรียกตัวเองว่า Gammer แบบเมื่อก่อนไม่ได้เต็มที่เท่าไหร่หนัก เพราะไม่ได้เล่นเกมส์ ติดต่อ 2 - 3 อาทิตย์ ไม่ได้ไปไหนเลยแบบเมื่อก่อนแล้ว จะเป็นแนวทำ เครื่องให้ Gammer เล่นให้แรงสุดๆ เท่าที่ทำได้เสียมากกว่า
งา่นเกี่ยวกับระบบร้า่นเกมส์จะเป็นเกี่ยวกับ Server Gateway เป็น linux ใช้ความรู้ด้านอื่นที่ไม่ได้เกี่ยวข้องกับ Program มากนัก จะเป็น พวก iptables กับ config squid เสียมากกว่า ส่วน Server diskless เป็น program สำเร็จใน Windows จัดการไม่ยากนัก
แต่ส่วนที่เกี่ยวข้องกับเรื่อง .Net แล้วพลานเบื่อ .Net คือในส่วนของระบบ Client ในร้านเกมส์ นั่นหล่ะ ที่เคยเจอ แบบหลอนไปเลยคือลง .Net ไปแล้ว ใช้งานได้ปกติ เกมส์มีตัว update กลับทำงานไม่ได้กับ .Net ที่ลงไว้ต้องลง Service pack .Net Version เดิมทับ ผมเลยงงว่า .Net มันเป็นอะไร ดูมันวุ่นวายกว่า VB เสียเหลือเกิน
รวมถึงตอนช่วย Test Program ให้เพื่อนอย่างที่กล่าวไว้ข้างบนแล้วด้วย
ส่วนที่ยังยึดมันกับ XP DX9 เพราะเกมส์ Online ในบ้านเรา(ไม่นับเกมส์พวก COB ในเมืองนอกนะ) ร่วมๆ ประมาณ 100 กว่าเกมส์ นั้นยังไม่มีเกมส์ไหน ทำงาน บน DX 10 ,11 สักเกมส์น่ะครับ แต่สำหรับ spec เึีครื่องที่ลูกค้าลงกันเดี๋ยวนี้จะใช้ 7 มันก็เหลือเฟือครับ แต่ด้วยความยุ่งในการดูแลระยะยาว(เพราะผมยังไม่เข้าใจระบบ OS มันทั้งหมดจริงๆ ดูเอาจากยังหาทางจูนให้มันแรงกว่า XP ไม่ได้ทั้งๆ ที่ผมก็มั่นใจกว่า มันเสถียรกว่า) การปรับตัวของ user และรวมถึงเปลี่ยนแล้วมันไม่ได้เร็วกว่า เลยยังไม่คิดจะเปลี่ยนน่ะครับ
Starcaft II ที่กำลังเข้ามาทางสายร้านเกมส์ โดยจะเป็นแบบขายบัตรเติมเงินเล่นเป็นช่วงโมง ก็ยัง DX9 อยู่เลยน่ะครับ
Ton-Or
เพราะว่าเกมที่เราเล่นกันตอนนี้ เป็นเกมที่พัฒนาขึ้นเมื่อ 2-3 ปีก่อนไงครับ (ลองคิดดูว่า Starcraft II เริ่มโปรเจคเมื่อไหร่นะครับ) เกมในปัจจุบันเริ่มที่จะเปลี่ยนไปในยุคต่อไปกันแล้ว ถ้าหากว่าเราคิดแต่จะทำเกมให้คนปัจจุบันเล่น ... ไม่ทันแล้วครับ เพราะกว่าเราจะทำเสร็จมันก็อีกหลายปีให้หลังโน่น (โดยเฉลี่ยก็ปีครึ่งล่ะนะ) ต้องคิดว่าทำเกมให้คนในอนาคตเล่นครับ
เกมก็เหมือนเทคโนโลยีอื่นน่ะล่ะครับ กว่าเราจะได้เล่น กว่าเราจะได้ใช้ มันก็ตกรุ่นไปละ ถ้าเรายังคงจะสร้างของที่ตกรุ่นไปแล้ว ... พอทำเสร็จมันมิยิ่งตกรุ่นไปแล้วหรือ ?
ผมแค่คิดว่าการใช้ DirectX 9 เป็นภาระของนักพัฒนาเกม ซึ่งการใช้ DirectX รุ่นใหม่นั้นมันง่ายกว่ารุ่นเก่า (ถึงจะไม่เยอะก็ตาม) อีกอย่างโค๊ดเก่า ๆ ก็ใช้ไม่ได้ด้วย เพราะว่า API ต่างกันเยอะพอดู (รู้สึกว่า DX 10 จะปรับเปลี่ยน API ใหม่หมด หลาย ๆ ฟังก์ชั่นก็โดนทิ้งไปแล้ว)
แต่ก็อีกนั่นแหละ ถ้าเกิดว่าใช้ DirectX ตัวใหม่จริง ๆ แล้วไม่ได้ใช้ความสามารถมันเต็มที่ก็ไม่จำเป็นต้องใช้ล่ะครับ ... โดยเฉพาะว่าถ้าเรามีเอนจินเขียนเอาไว้อยู่แล้วก็ยิ่งไม่จำเป็นใหญ่ (ยกเว้นแต่อยากอัพเกรดเอนจินให้รองรับ เวอร์ชั่นใหม่ด้วย)
รู้สึกไม่ค่อยแฟร์เท่าไหร่ เพราะตัว Windows XP กับ Windows 7 เอง ก็กินทรัพยากรต่างกันโขแล้ว
ให้แฟร์ต้องทำให้มันกินทรัพยากรเท่าๆกันก่อนค่อยเทสต์ :P
ยังหาทางลด 7 หลัง install ไม่รวม Page File ให้น้อยกว่า 1G ยังไม่ได้เลยท่าน
XP ได้อยู่ ที่ 2 - 3 MB ร้อย และทำงานได้ปกติ แต่จำได้ว่ามีคนบอกได้น้อยกว่านี้ผมก็ว่าน่าจะได้อีก เพราะผมยังใส่ Driver ไว้อยู่เยอะ ยังไม่ได้ไล่ตัดให้หมด
...
Ton-Or
ผมตัดเหี้ยนเลย โดยเฉพาะพวก hotkey ของการ์ดจอ แล้วก็ auto update ทั้งหลายแหล่ :P
หมายถึงตัวไหนครับ XP หรือ 7
ส่ง config มาให้ผมเอาไปลองได้เปล่า xp ผม nlite 7 ผมใช้ vlite
ctonorแอดจีเมl ครับ
Ton-Or
ผมว่ากับ HDD เฉลี่ยปัจจุบันที่ขนาดอยู่ที่ >320GB การตัดให้เหลือต่ำกว่า 1GB นี่มันไม่ค่อยมีเหตุผลนะ ยิ่ง Pagefile ที่ปรกติควรจะใหญ่กว่าขนาดความจำหลัก 3 เท่า (แต่ไม่ควรเกิน 4GB) (สูตรใครจำไม่ได้แล้ว) นี่ยิ่งแล้วใหญ่
ยกเว้นแต่จะติดตั้งลง SSD ขนาด 16GB ก็อีกเรื่องนึง
นิสัยโปรแกรมเมอร์อย่างผมเขียนโปรแกรมเพื่อหาเงิน ไม่ชอบวิ่งตาม OS ครับเป็นไปได้อยากให้โปรแกรมตัวเองมี long term การใช้งานเยอะๆ มากกว่า ไม่ว่าจะเป็นความสะดวกในการพัฒนาหรืออายุการใช้งาน ถามว่า java สะดวกไหม ทุกภาษาก็มีข้อดีข้อเสีย แต่ภาษาที่ผูกติดกับ OS มากๆนี้ผมขอบาย ยิ่งเป็น .net นี่ผมขอเป็นตัวเลือกสุดท้ายดีกว่าครับ เพราะกว่าจะเขียนได้ต้อง regis โน่นนี่เข้าระบบ เผลอๆ บังคับให้เรา update โน่นนี่จนทำให้เครื่องผมมี service แปลกๆ และผลที่ตามมาที่ผมมักเจอคือต้อง format เครื่องใหม่ ถ้าตอบว่าซื้อเครื่องใหม่ซิ โอ้ไม่ดีกว่ายังรวยไม่พอ ผมชอบภาษาอะไรเหรอ ชอบภาษาที่ไม่ต้อง Register lib ต่างๆ เข้าระบบมาก และมี IDE ที่ใช้ในการพัฒนาแบบ copy ไปแล้วใช้ได้เลย อย่างเช่น eclipse เพราะ bundle jre ได้ เขียน PHP ก็ได้นี่ซิชีวิตง่ายกว่า หรือ codeblocks tool ในการเขียน C มีแบบ .zip ด้วย
เมพ Zealot
ปกติเวลาทำแอพผมมักจะพยายามใช้แค่ .NET 2.0 เพราะมั่นใจว่ารันได้ทุกเครื่องแน่ๆ
แต่คนปกติเค้าก็ปล่อย 3.0 มาเป็น default ตั้งแต่สร้างโปรเจคแล้วมั้งครับ
+1 ครับ รู้สึกว่ารุ่นสูงสุดที่ยังรองรับ win98 อยู่ก็คือ 2.0
C++ ครับ
ภาษามันก็แค่ Tool ครับ อย่าไปยึดติด ฝึกให้เชี่ยวชาญซัก 1 ภาษา ที่เหลือถึงเวลาจำเป็นก็ขุดมาใช้ ถ้าคุณเป็นโปรแกรมเมอร์ที่เก่ง ภาษาอะไรก็เขียนได้ ถ้า Logic คุณได้ แค่เรียน Syntax นิดหน่อย
(ยกเว้นภาษา Prolog อันนี้ผมก็ยอมแพ้เหมือนกัน -_-')
งานบางงานผมว่า java ดี
- เช่น ทำ App ที่ต้องการ Run หลายๆ Platform
- ทำ Web App
- ทำ Enterprise App
งานบางงานผมว่า .NET ดี
- ทำ Windows Client
- ทำ Web App
งานบางงานผมว่า C++ ดี
- ทำเกมบน Platform บางตัว
- เขียน Native Library ติดต่อ Hardware
งานบางงานผมว่า VB classic ดี
- ทำ App เล็กๆง่ายๆเร็วๆ -> เก็บเงินเร็วๆ :D
Edit เพิ่ม ลืม Javascript ไปได้ยังไง ภาษาหากินผม
งานบางงานผมว่า Javascript ดี
- ทำ Web Client ที่ติดต่อกับผู้ใช้แบบเร็วๆ
- ทำ AJAX ;-)
งงคนที่ตอบว่า Java อ่ะครับ เพราะเห็นคำถามมีอยู่ว่า "ถ้าไม่เขียนจาวา แล้วจะเขียนอะไรดี" -_-'
ก็ให้แปลเป็นว่า ไม่เขียนอะไรละกัน
แม้จะเป็นแค่ tool แต่ถ้าจะเขียนให้ได้งานดีๆ ก็ควรต้องรู้ลึกๆ ซึ่งต้องใช้เวลาอยู่กับแต่ละภาษามากพอครับ วลีที่เรียกว่า "จอมยุทธย่อมไม่เลือกกระบี่" นั้นจริง!! แต่ถ้าไม่ฝึกฝนให้ชินกับกระบี่หรือเปลี่ยนกระบี่ไปเรือย ใจกับกระบี่คงไม่มีวันที่จะรวมเป็นหนึ่งเดียว สุดท้ายอาจส่งผลเสียกับตัวเราเองครับ ส่วนตัวผมแล้วผมเลือกจะศึกษาอย่างมากไม่เกิน 3 ภาษาครับด้วยว่า เริ่มอายุมากขึ้นก็อาจเป็นไปได้ ทุกวันนี้จับ PHP เป็นหลักเพราะมันมีแนวทางของมันชัดเจนดี ตลอด 8 ปีที่จับมายังมีความประทับใจกับภาษานี้อยู่ภาษาอื่นๆที่จับบ้างก็มี javascript ร่วมกับ PHP ,vb classic ก็มีบ้าง และ c# นานๆที
อยากเตือนรุ่นน้องกันนิดนึง อย่าใช้ tool ตามกระแส หาภาษาที่เรารักให้เจอผมว่ายังไงก็ไม่มีตกงานครับ แต่ละภาษาทั้งฟรีและไม่ฟรี มันมีข้อดีในตัวมันอยู่
Java ใช้น้อยลง = Android (ที่ยังเอาแน่ไม่ได้กับอนาคต)
C# ตัวนี้ชอบที่สุด ความยืดหยุ่นสูงกว่า Java แถมมี pointer แบบ safe code ด้วย Java ก็ไม่มีอีกเช่นกัน ยิ่ง Delegate หรือ pointer of function ยิ่งสุโค่ย
VB.NET มีดีแค่นิดหน่อย อีกหน่อยจะเลิกจับ หันไปจับ Javascript + HTML5
WP7 กำลังรอความสมบูรณ์ของระบบ ถ้ามีฟีเจอร์น่าสนใจกว่าตอนนี้ ช่วงนี้ มันเหมือนผู้หญิงแต่งหน้าทาปากเสร็จแล้ว แต่ยังไม่ได้ใส่ถุงน่อง ใส่รองเท้า ความสมบูรณ์เลยยังไม่พร้อมออกมาเดินข้างนอก
C ก็มี function pointer ที่ทำเป็น delegate ได้ครับ หลัง ๆ ผมใช้ struct + function pointer แล้วเขียนโปรแกรมแบบ functional + OOP ก็แปลกไปอีกแบบ
ก็ที่เขาพูดเพราะ C มี แต่จาว่ามันไม่มีนี่ครับ
ทุกวันนี้ผมก็เขียน C# แบบ Modular นะ
เขียน struct เปนหลัก แล้วเขียนคลาสทำเปน Module มาจัดการ struct
จริงๆสาเหตุที่ต้องทำเพราะ้ต้องรีด Performance แต่เขียนไปเขียนมาก็รู้สึกว่ามันสนุกมากเลย
รวม Data ไว้ในที่เดียวกันเปน Array ทำพอยน์เตอร์ปลอมกับ memory ปลอม แล้วโยน index ไปมา หนุกหนาน
C# มันค่อนข้างจะปลอดภัยแล้วก็มีของดีๆหลายอย่าง ทำ Encapsulate / Polymorph / Generic ก็ง่ายขึ้น
ถ้าพูดจริงๆ Generic ของ C# มันก็คงใช้ยากกว่า C++ แต่ถ้าเทียบความเซฟแล้วผมว่า C# จะง่ายกว่า ไม่ต้องห่วงหน้าพะวงหลังน่ะนะครับ
C ก็ทำ Generic ได้เหมือนกันครับ โดยใช้ void * แต่โคตรจะไม่ปลอดภัย
ยิ่งเขียน C ยิ่งรู้ว่ามันเป็นภาษาที่ทำได้ทุกอย่างจริง ๆ โดยที่ performance ไม่ตก C++ นี่ยังมี performance ตกนะครับ มีบางเทคนิคที่ทำให้ C++ performance ตกไป 5-15% เช่น template หรือการ implement method นอกตัวคลาส
แต่ทุกอย่างที่ C ทำได้ ไม่ค่อยปลอดภัยสักอย่าง เวลาเขียนต้องมีวินัยมากเลยทีเดียว แถมดีบักยากอีก
เห็นด้วยครับ
ตอนนี้ผมหนุน C# + C นะ
งานระดับล่าง (อย่างเช่น OpenGL พวก Low API) ก็เขียน C ไป แล้ว import เข้า C#
กรรมใช้ template แล้วประสิทธิภาพตกด้วยหรือครับ
ปรกติผมใช้ตลอดเลย เข้าใจว่าเวลา Optimize เกิน
O2 ไปแล้ว โค้ดที่ได้มันก็ไม่ต่างกับปรกติหรือปล่าวครับ
คือเคยตามอ่านเปเปอร์ด้วยว่า การใช้ template มัน
ช่วย optimize ด้วยซ้ำเพราะคนออกแบบ library
เช่น STL ก็ช่วย optimize ทั้งความเร็วและปริมาณ
หน่วยความจำสำหรับ ข้อมูลชนิดต่างๆให้ด้วยอยู่แล้วน่ะครับ
เช่น vector เป็นต้น ครับ
ปล
ก็อยากจะขอด้วยนะครับ เพราะคงจะจำ
เป็นกับงานผม
template ลึก ๆ แล้วทำงานเหมือน macro ครับ ดังนั้น performance ไม่ต่างจากโค๊ดที่ไม่ใช้
เห็นด้วยเรื่อง tool ที่อย่าใช้ตามกระแส ตอนนี้หลักๆ ผมทำงานด้วย PHP
แต่การเรียนรู้ภาษาใหม่ๆ framework ใหม่ๆ (ถึงแม้ว่าไม่เกียวกับ tool ที่ใช้ทำงาน)มันเป็นเรื่องที่ควรลอง มันมีมุมมองใหม่ของภาษาที่ยังสดใหม่ ลักษณะพิเศษที่แตกต่าง ลองพอให้รู้ถ้าถูกใจก็ลองจับจริงจังเพิ่มดู ต้องยอมรับว่าผมเองใช้ Java แบบไม่ถึงแก่นเท่าไหร่เคยใช้แบบถูลู่ถูกังอยู่ แต่หลังจากใช้มันซักพัก กลับไปหา PHP VB ผมรู้สึกถึงแนวการเขียนที่เปลียนไป ไม่ว่าจะลอง python, C#, VB.net หรือว่าลอง PHP framework ก็ยิ่งกลับไปใช้ PHP ได้ดีขึ้น
ใจจริงอยากหา native lang. ใว้คู่กายซักอัน เคยลอง lazarus(ไม่ถนัดมืออย่างแรง), GCC แต่รู้สึกมันขาดๆ พึ่งได้ลอง D จากความเห็นของบางท่านด้านบน ก็น่าเล่นดีนะครับส่วนของ DFL ก็ดูใช้ไม่ยาก(แต่ดูเหมือนตัวภาษาจะโตช้า..)
ใช่ครับผมเองก็ยังลองภาษาใหม่เรื่อยๆ แต่ลองเพื่อรู้มากกว่า
lazarus ก็ใช้ใบบุญของ free pascal นั่นแหละครับผมใช้ตัวนี้แทนภาษา C เพราะเขียนง่ายกว่า ผมเคยลองทำตัว call เพื่อรันโปรแกรม java ทั้งใน linux (ubuntu) และ window สะดวกและง่ายกว่าครับ แต่ต้องรู้หน่อยเท่านั้นเอง
ครับ ขอยอมรับเลยว่าง่ายในหลายแง่ แต่ก็แค่เล่นอยู่พักนึงละครับ
เรื่องฮาเล็กๆ คือไฟล์ exe ใหญ่มากเฉลี่ย 10 เมก แล้วก็เอามาลดขนาดด้วย split --strip-all *.exe กับ upx *.exe จาก 11.7Mb เป็น 455Kb ซะอย่างงั้น ซึ่งตอนผมเล่นผมต้อง add custom tool เพื่อลดขนาดเองซะด้วยซิ
เขียนเป็น .bat ไฟล์ครับตัวอย่างนี้เลย(เอาไว้ใช้ตอนเขียนโปรแกรมเสร็จแล้ว)
ไฟล์ compile.bat
echo off
C:\lazarus\fpc\2.2.4\bin\i386-win32\fpc.exe -MObjFPC -Scgi -O2 -vewnhi -l -Fi. -Fu. -Fu. -FE. -oproject1_c.dll project1.lpr
pause
บรรทัดที่ 2 ได้มาจาก ไฟล์ project1.compiled ของ lazarus
เอาจาก tag ของ Compiler Value และ Params Value มาต่อกัน ไม่ต้องพึ่ง upx.exe แต่ถ้าใช้ upx.exe หลังจากวิธีของผมก็จะได้เล็กลงไปอีกครับ
เยี่ยมครับ ยาวด้วย.. น่าแปลกที่ตัวมันเองไม่ตั้งให้ compile แล้วได้ไฟล์เล็กๆ ทั้ง strip.exe ทั้ง upx.exe ก็มีมาให้ด้วยแล้วแท้ๆ
พูดไปแล้วก็น่าอายผมเขียนโปรแกรมครั้งแรกด้วย ไทยโชว์ ตอน ม.3 ถึงวันนี้ดันไม่ถนัดรูปแบบของ pascal ซะอย่างงั้น (ผมเลิกเล่น lazarus มาเป็นปีแล้วครับ หลังจากตอนนั้นลอง wxDev c++ รู้สึกชอบกว่า ตอนนี้กำลังลอง D คับ ว่าจะหา native compiler ที่เหมาะมือหนะ)
lazarus เป็น IDE ที่ใช้แล้วหงุดหงิดมากเลยครับ
เรียกได้ว่าขาดๆเกินๆ ไงๆไม่รู้ พอใช้ตัวนี้กับ 1 โปรเจคเสร็จ
ผมรีบซื้อ Delphi + component ใช้เลยครับ หมดไป 6 หมื่น
แต่ lazarus ก็พยายามใช้ต่อไปครับ ฟรีนี่
Visual Studio ไม่ถูกกว่าหรอครับ
ปล. ตอนโต้กระทู้คุณ mk ระวัง edit ข้อความไม่ได้
จริงครับ ของไม่ค่อยฮิตนี่ขายแพง
ตอนนี้คุณ edit ข้อความได้เหรอครับ?
ผมเห็นปกติ พอข้อความนึงโดน reply ก็อีดิทไม่ได้แล้วนะ
ก็ถ้ายังไม่มีใครมา reply ต่อจากของผม ผมก็ยัง Edit ได้ ยกเว้นของคุณ mk คนเดียวที่พอโพสปุ๊บ จะแก้ ก็แก้ไม่ได้แล้ว
ได้นะครับ
เคยลอง Python, Ruby, Perl, PHP, C#, VB.NET, Groovy
ถ้าจะให้แทน Java คงเลือก Groovy,C#,PHP ตามลำดับ
อะไรก็ได้ที่หางานได้เพราะยังไม่อยากอดตาย lol
แต่ถ้าเลือกได้คงจะใช่ Scala เพราะคิดว่า Syntax ค่อนข้างเหมือน Java ละใช่ Lib ของ Java ได้
แทน JAVA ด้วย PHP+JavaScript
คิดว่ามันคงดิ้นได้อีกไกล
แต่ไหง php ไม่ค่อยมีคนเขียนแบบ oop หว่า
งานผม php OOP เป็นหลักครับ
เคยเขียนแบบ OOP กับ PHP ครั้งนึง ตอนเขาบอกว่ามันทำได้ หลังจากนั้นก็ลืม... T-T
Jusci - Google Plus - Twitter
ผมคนหนึ่งล่ะ ไม่เขียนOOPแล้วเวลาจะไปต่อยอดงานใหม่
ถึงกับกระอั๊กเลยล่ะ
มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB
C# ครับ สนับสนุน.NET อยู่แล้วครับ
สนับสนุน .NET แต่รูปเป็น Python ฤาจะเป็น Python.NET
ใช้ทั้ง C# และ IronPython ครับ
แอบฮาคอมเมนต์นี้
เคยใช้ Windev โอ้โห้มันเจ๋งจริงๆ ผมลืมพวก visual ทั้งหลายแหละไปเลย
สโลแกน พัฒนาเสร็จเร็วขึ้น 10 เท่า โปรเจคเดียวกัน VB อาจทำเป็นเดือน แต่ windev ทำเสร็จในอาทิตย์เดียว!
แถมเขียนเสร็จจะเอาเป็น Java ก็คลิก gen ออกมา หรือโปรเจ็คเดียวกันให้ออกเป็น web-app ไม่กี่คลิ้กก็เสร็จแล้ว...
เสียอย่างเดียว windev ในเอเชีย มันไม่ได้ฮิตฮอตแบบในยุโรปเนี้ยสิ ไม่งั้นผมเอาดีด้าน windev ไปแล้ว
กลับสู่โลกความจริง ใช้ php python c# ต่อไป...
สงครามกลางเว็บ
เอ๊ะ พึ่งสังเกตว่า ทำไมข้อความหลังๆที่โพสโดนจัดเป็น center หมด
ลองใช้ Firefox กับ Chrome แล้วไม่โดนจัดเป็นตรงกลางนะครับ หน้าจะเป็นกลับ IE8 มากกว่า
ถ้า IE8 เป็นตั้งแต่ลายเซ็นของ comment ท่าน risc ครับ ที่ #232018 รู้สึกว่าตรงลายเซ็นจะมี tag center อันนึงที่ยังไม่ได้ปิด
เขียนคำว่ากับเป็นกลับอีกแล้ว
คุณ risc เขาไม่ได้ปิด แท็ก
<center>
ในลายเซ็นอ่ะครับJusci - Google Plus - Twitter
อ่อ ในลายเซ็นนี้เอง เยี่ยมมากครับทุกคน :D
ถ้าไม่ใช่ Java ก็ขอเป็นอะไรก็ได้ที่มีคนจ้างครับ ผมไม่ได้เก่งภาษาใดภาษาหนึ่งแบบเทพ แต่แค่ใช้เป็นพอทำมาหากินได้ เพราะต้องกินต้องใช้ครับ
Adobe Air ละครับ?
ไม่ค่อยมีความรู้เรื่องภาษาพวกนี้สักเท่าไร แต่ก็เห็น Adobe Air ในหลายๆ platform มันจะเหมือนกับ Java ที่ write one run anywhere รึเปล่าครับ
แอนดรอยด์ก็มี และเกมจาก air ก็สวยๆทั้งนั้นเลย
งาน Java ส่วนใหญ่มันไปคนละทางกับ Air และ Flash เลยน่ะครับ
JavaFX
Edit เพิ่ม จริง ๆ ผมว่า Flash (รวมทั้ง Silverlight) ก็ไม่ต่างอะไรกับ Java Applet นะ ... ถึงจะดูดีกว่าเยอะก็เถอะ :P
ผมเห็นจาว่ามักจะเปนงานจริงจัง ต้องการความเสถียรมากกว่าอะไรที่ดูหรูหรา
ทั้งตัวเครื่องมือหลายๆตัวมันก็เปนไปทางนั้น
จากที่ได้ทำ Shader มาซักระยะผมเริ่มรู้สึกว่า มันมีการเขียนโปรแกรมประเภท decimal ที่ทุกอย่างต้องตรงเป๊ะ ข้อมูลทั้งหมดต้องคงทนไม่ผิดพลาด
และแบบ float ที่ต้องแรนด้อมบ้าง คำนวนผิดไป 30 ก็ปัดทิ้งได้ ยังไงก็คำนวนใหม่ทิ้งของเก่าตลอดเวลา ข้อมูลทุกอย่างก็กะๆประมาณๆเอา
และผมเห็นจาว่าเน้นแบบแรก ส่วนแฟลชเน้นอย่างหลัง
ก็ติดไว้แล้วด้วยว่า "เปนส่วนใหญ่" นะครับ
แต่ java ไม่มี decimal เป็น primitive data type นะ (ฮา) ต้องใช้เป็นคลาสแทน สุดจะรันทด
คือถ้ามองกันที่่ว่า Flash เป็น Embeded Object บนหน้า Website แล้วเนี่ย บรรพบุรุษของ Object ประเภทนีก็คือ Java Applet นะครับ
กระทู้ยาวมาก ... เลยเปิดโลกให้ผมเห็นภาษา/เครื่องมืออะไรอีกหลายตัวที่ผมไม่ได้จับ
แต่ก่อนเคยชาบูจาวานะ (ดูตามชื่อผมก็คงจะเห็นภาพ) แต่ตอนนี้ก็ไม่ได้ง้อภาษาตัวใดตัวหนึ่ง (ภาษาไทยกับอังกฤษน่าเป็นห่วงกว่า) ผมทำงานวิจัยฝั่ง math model เป็นหลัก ผมขออะไรก็ได้ที่ทำงานทดลองได้เร็ว และไม่ต้องศึกษาค้นคว้าอะไรใหม่มาก สำหรับช่วงนี้ ผมขอ MATLAB (หรือ Octave) แล้วก็ GAMS, AMPL, และ CPLEX เท่านี้ชีวิตก็เบิกบานแล้วครับ
My Blog
ภาษาที่มีคนจ้างทำครับ แต่ถ้าจะทำเองเล่นๆก็คง C#
เมื่อก่อนหัดเขียน Java เพราะอยากทำ GUI App พอลองใช้แล้วไม่เวอร์ค เพราะมันอืดแถมเอกสารทำเสียเวลามาก เขียนทีไร เครื่องมือที่ไม่ได้ใช่บ่อยลืมตลอด ไล่คลาสจนไม่เข้าใจว่าทำไมมันไม่ทำอะไรง่ายๆวะ
อยากลองเขียน Ruby แต่ไม่รู้ว่าภาษาที่ไม่ได้ใช้ในงานหลักๆ จะทำเงินได้ซักแค่ไหนจะได้ใช้บ่อยแค่ไหนนอกจากงานส่วนตัว
อ่านเกือบทุกอัน แต่เห็นด้วยกันอันเดียวที่ว่า มันขึ้นอยู่กับ "ลูกค้า"
แล้วต้องเสริมต่อว่า ขึ้นอยู่กับประเภทงานของลูกค้าด้วย (client หรือ server ก็ต่างกันแล้ว)
ผมว่าเขียนตามลูกค้าสั่งและเขียนตามที่เราถนัดดีกว่า
ไม่ต้องไปเต้นตามคนอื่น และก็ไม่ต้องไปบังคับให้คนอื่นเต้นตามเรา
(อันนี้แอบเหน็บคอนเมนต์ข้างบนบางอัน)
ปล.ส่วนที่ถามว่าไม่เขียน java แล้วจะเขียนอะไร ผมว่าถ้า scope คำถามลึกลงหน่อยจะดีกว่า
บางคนตอบในเชิง desktop บางคน web บางคน server แล้วมันก็ตีกันมั่วเลย
ปล2.แอบชอบอีกหลายคอมเมนต์ เปิดหูเปิดตาได้ดีเลย
มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB
ชอบจังเลย กระทู้รวมเหล่าทวยเทพแห่งปี
กลายเป็นกระทู้แนว Java Inw - C# Inw, ไปอีกล่ะ อิอิ
สองภาษานี้ zealot เยอะดีจริงๆ
ปล. ไม่เห็น RoR, C++, Python มีแบบนี้มั่งอ่ะ?
ถ้าเป็น Zealot C++ นี่ต้องเก่ง C++ ด้วยรึเปล่าครับ ถ้าไม่ต้อง ผมขอเป็น Zealot C++ แล้วกัน :p
ผมเขียนทั้ง C++ และ Python พบว่าทั้งสองภาษาไม่สามารถ "จบ" ในตัวเองได้ครับ C++ อาจจะเก่งด้านประสิทธิภาพ งานหลังบ้าน แต่พอต้อง handle อะไรซับซ้อน ก็มักจะโยนให้งานหน้าบ้าน (๋Java/C#) ทำอยู่ดี
Python เองยิ่งแล้วใหญ่ ตัวมันเองประสิทธิภาพทั้งในแง่ของหน่วยความจำ และความเร็วไม่ได้ดีเลย ข้อดีสำคัญที่ผมเจอคือมันต่อเข้ากับภาษา C ง่ายมากๆ (ผ่านทางโมดูล ctypes) ตัวผมเองที่เขียน C ได้อยู่แล้วก็มักจะเอาโค้ดส่วนที่สำคัญต่อประสิทธิภาพรวมไปเขียน C อีกที
RoR นี่ไม่ทราบครับ ผมมีอคติรุนแรงที่จะเกลียด Perl เลยพลอยเกลียดลูกหลานมันไปด้วย
lewcpe.com, @wasonliw
อยากจะบอกว่าผมกะล่อนกับ Programming พอสมควรโดยเฉพาะสองภาษานี้
บางทีเขียน Java อยู่ รันโปรแกรมอื่นไม่ไหว เลิก ไปเขียน C#
พอมา C# ผมเขียนอาเรย์หมายมิติไม่ได้ มึน ก็พลิกไป Java -*-
ส่วน WPF ไม่ต้องพูดถึงเลยครับ เขียน+รันแต่ละทีนี่ร้อง WTF ยังกะเจอ Swing กันเลยทีเดียว T_T
ผมเป็นคนที่ไม่ค่อยเลือกเครื่องมือพัฒนาซักเท่าไหร่ เอาสะดวกไว้ก่อน
แต่ถ้ามันช้าบรมเมื่อไหร่ผมก็เลิกแล้วไปหาตัวใหม่ทันที
(ไร้สาระ)ผมรู้สึกว่าในบางความเห็นมันเดจาวูกับระบบปฏิบัติการตัวหนึ่งที่เหมาะกับ geek มาก
กล่าวคือ เมื่อมันเถียงในโหมด Desktop App แล้วสู้ไม่ได้ มันก็จะลากประเด็นเรื่อง Server มาปลอบใจตัวเองเสมอ
ประเด็นต่อจากนี้ (ในเมืองนอก) เขาจะเริ่มสู้กันด้วย Cloud Computing ซึ่งมันมี สมรภูมิ OS ระหว่าง Linux กับ Windows มาเอี่ยวด้วย และภาษาเครื่องมือที่ใช้ทำ จะบอกว่าไม่ต้องยึดติดกันก็ดูแปลกเกินไป ถ้าเห็น Economic crisis ของเมกาตอนนี้ จะพบว่า บริษัทต่าง ๆ ค้นพบสัจธรรมแล้ว ทำตัวเป็นคนดี Opensource จ๋า บริษัทไปไม่รอดแบบ SUN เป็นตัวอย่าง มันต้องแค่แจกฟรี แต่ไม่เปิดเผยซอร์สจนกว่าจะทำเสร็จแล้วขายได้ก่อน คือ หาจุดที่คิดว่าเป็น Center ของตัวเอง แล้วปล่อยเครื่องมือ Opensource ออกมาให้คนเข้ามาใช้ใน Field ของตัวเองเท่านั้น กลยุทธแบบที่ MS กำลังทำอยู่ตอนนี้กับ Windows โดยดูได้จากทิศทางการสนับสนุน Opensource ที่ดีขึ้นไม่ Evil มากแบบแต่ก่อน และที่ Google ทำกับ Android
เจ้าของเทคโนโลยีอยู่ได้ คนพัฒนาแฮปปี้ เป็น Business Solution ที่ยอมรับได้ครับ
กรณี Sun ไม่น่าจะเกี่ยวกับ open source นะ การตลาด Sun ห่วยเอง ดูอย่าง Google หรือ Red Hat สิครับ open source เกือบทุกอย่าง ไม่เห็นจะมีปัญหาอะไร ผมเคยคุยกับคนที่เคยทำงานที่ Sun เขาบ่นเรื่องการตลาดของ Sun ให้ฟังเป็นเรื่องเป็นราว
นั่นแหละครับ Business Solution ไม่มี เน้นแต่ Research ที่พลาญงบประมาณ แต่ไม่รู้จะหาเงินจากมันอย่างไร
C# เขียน array หลายมิติได้ตั้งสองแบบเลยนะครับ
แบบ Box ก็ [,,,]
แบบ Flexible ก็ [][][]
ส่วนตัวผมยังไม่เคยจับ WPF
ทุกวันนี้มันก็ยังไม่ต้องใช้อะนะ Winform ก็พอเหลือแหล่
ป.ล. ขอ +99 ให้ตรงส่วนไร้สาระ
ผมชอบ C++ ใช้คู่กับ Lua นะครับ (ด้วยความที่ runtime มันเล็กมาก ... 50kb เองมั้ง ลืมแล้ว) พวกที่เขียนเกมเขาชอบใช้กัน
ตัว platform มันอาจจะเล็กไปหน่อย แต่ก็มี lib ขยายความสามารถมากมาย (ด้วยความที่มันเชื่อมกับ C ได้ง่ายมาก) แต่ไม่ค่อยเห็นคนเอามาทำงานเวปสักเท่าไหร่
เคยลองใช้ Lua กับเวบครับ lib สำหรับเวบที่มีมันกากมาก แต่ Lua เป็นอะไรที่น่าสนใจจริง ๆ ยิ่ง LuaJIT เห็น performance แล้วตะลึง มันเร็วมาก เร็วจนน่าตกใจ
ทานโทษครับทำไม http://www.biolawcom.de/ เว็บคุณ ถึงโดน block
จนถึงตอนนี้ยังไม่ทราบเลยครับ เพราะไม่เคยมีคำสั่งศาลมาให้เห็น ซึ่งนักกฎหมายประจำเวบก็ยังงงจนมาถึงทุกวัันนี้ ว่า ศอฉ. เอาอำนาจอะไรมาปิด เพราะหากอ้างตาม กม. ไม่ว่าฉบับไหนก็ตาม ต้องมีคำสั่งศาลก่อนถึงจะปิดได้
ผมเห็นในแคชแล้วครับ พอเดาออกแล้ว ว่าทำไมถึงโดนเก็บครับ
ที่ผมเคยสัมผัสมานะครับ โปรแกรมเมอร์หลายๆ คนเลยนะครับ จะมีความคิดไปในแนวทางนี้
มันน่าคิดตรงคำว่า "โปรแกรมเมอร์" นี่แหละครับ เพราะเป็นอาชีพที่ Logic สูงกว่าอาชีพอื่น
มันมีอะไรที่ in common กันน่ะครับ
สำหรับผมก็ wait and see ครับ
C# programmer อยู่รวมกันเยอะๆ ดีเลย
ผมถามหน่อยนะครับ ว่าใช้ Report ตัวไหนกันบ้าง เอาทั้ง for Desktop และ for server ครับ
พอดีผมกำลังเลือกอยู่น่ะครับ หรือถ้าใจบุญอีกนิดช่วยแนะนำ DB ด้วยครับว่าใช้ตัวไหนกับ C# ดี เอาทั้งฟรี/เสียตังค์
ถ้าลูกค้าไม่เกี่ยง ผมขอส่ง scala เข้าประกวด อีกตัวครับ
เพิ่งหัดนะครับ แต่เท่าที่สัมผัสรู้สึกว่าออกแบบมาดีมาก
รองรับแนวคิดได้หลายแบบ (แบบค่อนข้างเป็นธรรมชาติ)
อยากเขียนเต็มให้เข้าใจง่ายก็ได้ เขียนลัดก็ได้ รองรับได้หลายสถานการณ์
performance ดีพอพอกับ java
แถมยังรับมรดก library/framework จาก java ได้
ที่เหลือก็ยังต้องรอ tool ให้รองรับมากกว่านี้
ระวัง Scala ช้านะครับเพราะ Applet ค้าง (ล้อเล่นนะครับ) Scala น่าใช้มากครับถ้าไม่ติดตรงที่ว่างานของผมส่วนมากเป็นเว็บแอพพลิเคชันและ Scala เองมี framework ให้เลือกไม่มากนักเท่าที่ทราบดัวหลักๆก็มี Lift ตัวหนึ่ง
ป.ล.
ส่วนท่านไหนนิยม C++ แนะนำให้ลอง Qt Creater นะครับใช้งานง่ายพอๆกับ Microsoft Visual Studio อีกอยากคือเป็น cross-platform มีรุ่นที่เป็นโอเพ่นซอร์สและที่ขายด้วย(แพงมาก)
ลองดู Playframework ซิครับมันรับรอง Scala แล้วก็ใช่ง่าย ผมว่า concept มันดีมากเลยตัวนี้
ผมไม่ค่อยชอบ Playframework อย่างนึงคือทำไมต้องให้ action
เป็น static ด้วยนะรู้ว่า promote REST แต่ปัญหามันคือทำให้ผมใช้
Spring ได้ไม่คล่องตัวนัก
เคยลองดูแล้วครับแต่ Grails น่าสนใจกว่า น่าสนใจตรงที่มันเข้ากับ Spring ได้ลงตัวกว่า(ก็ค่ายเดียวกัน)
เห็นด้วยครับ ก่อนจะมารวมกับ Spring ก็ได้ผูกกับ Spring แทบจะกลืนกินกันอยู่แล้ว
และมันดีที่มี plugin (ที่มีคุณภาพ) เยอะมาก
กำลังจะลอง Qt Creator ครับ :-) โหลดมาทิ้งไว้หลายวันละ
ลองใช้ดูครับน่าใช้มาก พอดีงานของผมบางงานจาวาไม่ค่อยเหมาะกับงานเท่าไหร่เช่นเขียนโปรแกรมติดต่อกับ hardware พอดีผมทำระบบให้โรงงานอุตสาหกรรม ซึ่งทางเลือกคือใช้ C++ จริงๆดู python เพราะด้วยความที่ตัวภาษาค่อนข้างเข้าใจง่าย
ผมเคยลอง Qt Creater อยู่แว้บนึง รู้สึกว่ามัน compile ช้ามาก (หรือมันต้อง config อะไรก่อน) ไม่ทราบว่าท่านอื่นเป็นเหมือนกันรึเปล่าครับ
เรื่องปกติของ C++ ครับ
คือมันช้ามากกว่าปกติน่ะครับ ช้าจนรับไม่ได้ (เพราะมันแค่ Hello World เอง)
ถ้าใช้ Qt แล้วเขียนโปรแกรมขายต้องจ่ายค่าลิขสิทธิ์ แต่ถ้าเขียนแล้วแจกฟรี (ภายใต้เงื่อนไข GPL) ไม่ต้องจ่ายใช่ไหมครับ?
Jusci - Google Plus - Twitter
ตอนนี้ Qt มีเป็น LGPL แล้ว ถ้าไม่ไปแก้ไขดัดแปลงโค๊ดของ Qt ก็เขียนขายได้นะ
I'M... , NOT A CLONE.
อ๋อครับ ขอบคุณครับ
เมื่อก่อนสับสนกับลิขสิทธิ์ Qt มาก แล้วพอใช้ KDE แล้วงงกับมัน เลยพาลถึง Qt ด้วยว่าสร้างระบบได้งงดี
Jusci - Google Plus - Twitter
โห ภาษาแปลกๆ เต็มไปหมด ทั้งที่รู้และไม่รู้จัก ได้เห็น สาวก และ ผู้ต่อต้่านสาวก ทำตัวแทบจะไม่แตกต่้างกันเลย กลายเป็น "สาวกผู้เกลียดสาวก" ไปโดยปริยาย ต่อไปคงได้เรียก "สาวกผู้เกลียดสาวก" แล้วจะมีคนรู้สึกรังเกียจพวก สาวกผู้เกลีดวสาวกอีกมั้ยนี่ ต้องหาชื่อเรียกคนกลุ่มนี้อีก :)
เป็นเพราะยังหนุ่มและยังไม่สนใจธรรมะ จริงๆนักคอมนี่จะเข้าใจธรรมะน่าจะลึกซึ้งเพราะมี logic
ผมมองว่าพวกเขายังถกกันได้ พวกเขาแสดงความชอบ ความไม่ชอบออกมาชัดเจนดี และถ้าชอบ-ไม่ชอบประเด็นไหนก็ถกกันเป็นรายคน ตามความเห็น ซึ่งผมว่าสนุกและเปิดโลกทัศน์
ยกตัวอย่างผมไม่ชอบความเห็นของทั้งสองท่านด้านบนนี้ เพราะไม่เกิดประโยชน์และไม่ตรงกับจุดมุ่งหมายของคุณ mk ผู้ตั้งกระทู้ ผมก็จะมาแสดงความเห็นตรงนี้ แต่จะไม่กล่าวว่า "บางคน" "คนที่รู้ว่าใคร" เพราะแบบนี้มันดราม่า และไม่ก่อประโยชน์ต่อผู้อ่าน
ต้องขอโทษด้วยที่ทำให้คุณเห็นว่าไม่เกิดประโชยน์ ที่ผมใช้คำว่า สาวก ก็เพราะแหล่งของคำเกิดจากที่นี่น่ะละครับ (จริงๆผมไม่เคยรู้และ เรียกใครแบบนั้น) ขอบคุณครับ
มีภาษา หรือ framework ไหนที่รองรับการเปลี่ยนแปลงอย่างสูง สำหรับงาน engineering ไหมครับผมจะได้ลองไปศึกษาดูครับ ตอนนี้ ใช้ VB.net รู้สึกว่าใกล้ถึงทางตันแล้ว
ผมใช้จาวามาประมาณ 10 ปีพอดีเลยครับ ยังใช้อยู่และไม่คิดจะเปลี่ยน
ใช้ทั้ง Desktop App และฝั่ง Server (Groovy/Grails) ค่อนข้างพอใจกับ Desktop App พอสมควร ส่วนตัวไม่รู้สึกว่ามีปัญหาอะไร ยกเว้นขึ้เกียจ pack JVM ไปกับโปรแกรม กับตอน Startup ที่ค่อนข้างช้าไปบ้าง (ตอนนี้ไวขึ้นเยอะ)
ส่วน Oracle จะดองหรือทำอะไรกับจาวาไม่ค่อยได้สนใจครับ หลังๆอาจจะมีผล แต่ตอนนี้เฉยๆ
ในกรณีถ้าจะเปลี่ยนจริงๆ ผมสนใจพวก Python/PHP ครับเคยลองบ้าง ชอบตอน deploy ง่ายดี
และคงต้องพิจารณาเรื่อง Community มากๆเลยครับ เพราะผมไม่ได้เก่งอะไร ติดอะไรก็ค้นเอา
อ่านคอมเม้นแถบล่างๆนี่ชักมึนๆละครับ ชอบและสนใจ แต่นูบมากครับ
std::cout << "Hello World!" << std::endl;
เขียนอะไรก็ได้มั้งท่าเค้าจ้างเขียน VB,pascal 10 ล้านก็เขียนอะไรที่ได้เงินหรือทำแล้วสบายใจหรือใจรัก
ผมรู้สึกเหมือนว่าหัวข้อนี้ ไม่ได้อยากรู้หรอกว่าจะเขียนอะไรแทนจาวา...
โดยส่วนตัวผมแบ่งภาษาที่ผมใช้ออกเป็น 2 แบบ ตามนี้ครับ
Native
ภาษาอะไรก็ได้ที่ Compile ออกมาแล้วได้เป็น Machine Code/Mnemonic
ภาษาที่ีผมคุ้นเคยก็ C, C++, Delphi ไม่นับรวม VB เพราะมันต้องพึ่ง VB Runtime (ถึงจะมีติดตั้งมาให้อยู่แล้วก็เถอะ)
ถ้าดูอนาคตจริงๆ ยังงัยซะ C, C++ ก็ไม่ตาย
Delphi นี่ลูกผีลูกคน
Non-Native
ก็พวกภาษาสคริปต์ทั้งหลาย เช่น PHP, JavaScript, Ruby, Lua, Python, etc
พวกนี้ผมยกให้ PHP แน่นอนครับ
รวมไปถึงภาษาที่ต้องมี Virtual Machine เช่น Java, .NET ทั้้งตระกูล
ผมยกให้ Java กับ C# ครับ แต่ถ้าไม่เอา Java ก็คงเหลือแต่ C# นั่นแหละ
ส่วนภาษาใหม่ๆ ที่ยังไม่ Mature เต็มที่ มันก็น่าจะสนใจหมดเลยนะครับ แต่ก็คงตอบไม่ได้ว่าจะเลือกภาษาไหนดี ต้องดูยาวๆ
สรุปก็คือภาษาตระกูล C ครับ C, C++, C# จะรวม Objective-C ก็ได้
+1 เป็นตระกูล C ไว้ ยังไงก็ไม่อดตายครับ
ท่านศาสดา Guido วิจารณ์ Scala http://neopythonic.blogspot.com/2008/11/scala.html
สรุปได้ประมาณว่าภาษาบ้าอะไรเนี่ย ทำเรื่องง่ายให้เป็นเรื่องยาก !!!
ส่วนที่ว่าจะเขียนภาษาอะไรนั้น หากแบ่งกลุ่มออกเป็น funny กับ money ก็คงเลือกไม่ยากแล้ว
คนที่ใช้ ASP.NET ถ้าจะต้องต่อ Database, LDAP หรือใช้ Server Resource ไม่แนะนำให้ริไปใช้ Silverlight ครับ Interface กันยากมาก ตัว Framework น่าจะช่วยเราได้มากกว่านี้
{$user} was not an Imposter
พออ่านคอมเม็นแล้วก็อดไม่ได้ที่จะตอบ แต่ก็ไม่ได้เจาะจงว่าใครภาษาไหนนะครับ
แต่ที่อ่านเข้าใจว่ามักเปรียบเทียบโดยใช้ความเห็นส่วนตัวที่ต่างช่วงเวลา เช่นบางคนใช้ java มาก่อนตอนช่วงเรียนมหาลัยแล้วรู้สึกไม่ดีกับมัน แต่ปัจจุบันใช้ C# และคิดว่า C# ดีกว่า java มากมายหลายขุมเมื่อเทียบกับ java เมื่อสมัยเรียนเคยใช้มา
ซึ่งทำให้ผู้อ่านเข้าใจผิด เพราะแน่นอนครับว่าถ้าเอา java 1.0 มาเทียบกับ c#.net 4.0 และ Tools ของ แรกเริ่ม กับ ผ่านมา 10 ปี มันคงจะไม่เหมือนกันแน่นอนครับ
ผมเองใช้ทั้ง java/C#/php ในการทำงาน ในสมัยก่อนผมเคยเรียนจาก java 1.2 มาก่อนตอนนั้นผมเองก็คิดว่ามันห่วยมากเลยทำอะไรก็ติดไปหมด UI ก็ไม่สวย เลยเลิกไป แต่พอกลับมาเรียนใหม่อีกครั้งเมื่อ 2 ปีที่ผ่านมาบอกได้ว่ามันคนละเรื่องกันเลย
ถ้าเน้นเขียนโปรแกรมออกมาได้เร็วผมก็ว่าใช้ php เร็วสุด C# กับ java ผมก็ว่าสูสีกันแล้วแต่ว่าจะใช้ทำอะไร เพราะความวุ่นวายก็ยังมีมากกว่า php อยู่ดี (ความยืดหยุ่นสูงย่อมนำมาซึ่งความวุ่นวายซับซ้อน) แต่ performance ยังไงซะ java ที่ไม่ได้ใช้ UI ก็ยังดีกว่า php จนทำให้มีระบบที่ใช้ php รันบน java แล้วได้ performance ดีขึ้นออกมา ส่วน C# มันใช้ทำมาหากินครับ ลูกค้าบอกถึงจะใช้ เพราะมันเป็นเรื่องของเงินมากกว่าว่าดีหรือไม่ดี ผมไม่ใช่คนขาย OS ดังนั้นถ้าถามผมว่าจะใช้ภาษาไหนเขียน web app ผมว่า java ไม่ต้อง plus อะไรมาก ถ้าลูกค้าไม่มีระบบแรกเริ่ม ก็แนะนำ java ต้นทุนที่ต้องเพิ่มก็จะน้อยหน่อย แต่ถ้ามี windows server แล้ว ก็แนะนำ C# ให้เป็นทางเลือกถ้าต้องการ เพราะ ถ้า linux mono กับ java ผมว่าไม่ต้องพูดกันเรื่อง performance ระดับ opensource มันต่างกัน ยิ่งระดับ commercial ห่างไม่เห็นฝุ่น
แน่นอน platform ไหนก็มีบัคครับ ไม่เว้นแม้แต่ C# แต่ต้องยอมรับว่า mono นั้นพัฒนาเร็วมากยิ่งรุ่น 4.0
ส่วนเรื่อง run anywhere นั้นคงไม่ต้องพูดถึงครับ java เป็นตัวเดียวที่พยายามทำเช่นนั้น เพราะ C# เองพยายามทำแต่ที่ทำเพราะโดนบีบจากสังคมมากกว่าตั้งใจทำ (ปัจจุบัน mono ก็ run .net 2.0 ได้ไม่หมด และไม่มีวันที่จะทำได้หมด) ดังนั้น run anywhere ผมว่าเป็นเรื่องของความตั้งใจที่จะให้เป็นเช่นนั้น แรกเริ่ม C# ก็ไม่ได้ตั้งใจจะให้ run anywhere ไม่งั้น .net 2.0 คงไม่ได้วางสถาปัตยกรรมเช่นนั้น
ดังนั้นถ้ามองในปัจจุบัน C# และ java มันก็คือๆกัน ถ้าให้หันไปใช้ c# กันหมด มันก็จะเป็นแบบ java/oracle แน่นอน เพราะ เมื่อ monopoly มันก็ไม่สนสังคม microsoft ก็คงบีบกลับมาให้ run บน windows แล้วได้ผลดีกว่าอย่างแน่นอน ดังนั้นอนาคตยังต้องรอการพิสูจน์ต่อไปครับ ภาษาที่ผมว่าแนะนำให้เรียนตอนนี้กลายเป็น javascript แทนแล้วครับ ^^" อนาคตไกลเพราะการแข่งขันพัฒนาโครงสร้างภาษาให้กับ browser มีมากทำให้เป็นประโยชน์ต่อ programmer มากกว่า java กับ c# เสียอีก แต่ก็อีกแหละครับอยู่ที่ว่าเอาไปใช้กับงานประเภทไหน ไม่มีภาษาใดภาษาหนึ่งดีสุดกับทุกสถานะการณ์ครับ
งั้นคุณเข้าใจผิดล่ะครับ เพราะผมใช้ C# เวลาเดียวกับ Java
พูดกันตามตรงเลยว่า ผมเรียน Java ในวิชา OOP ตอนผมอยู่ปี 3 เทอม 1 และติดปัญหากับ Eclipse มากมาย ทั้งช้าทั้งค้าง คอมไพล์ Hello World เปนความน่าเบื่อ เสียเวลาและพลังงานชีวิตโดยเปล่าประโยชน์ไปเปนจำนวนมาก
ไม่นับว่าใช้มันแล้วก็ไม่ประทับใจกับ swing ที่ทั้งอืดอาดและยุ่งยาก
และกลางเทอมนั้น ผมก็ลองหัด C# ซึ่งตอนนั้นเปนรุ่น 2.0 และพบว่า IDE นั้น ทั้งง่ายทั้งเร็ว และคุ้นเคย(เพราะใช้ VC++ 6.0 มาก่อน)
วิธีเขียน ตัวภาษา Syntax ก็สบายเหมาะกับมือใหม่ ไม่ยุ่งยากเหมือน C++ ไม่มี .h หรือ line lib ให้วุ่นวาย
สร้าง WinForm ก็ง่ายกว่า Swing เขียนด้วยโค้ดนะครับไม่ได้ใช้ลากวางซักกะนิด
(ถึงทุกวันนี้ผมก็เขียนฟอร์มด้วยโค้ดครับ ไม่ค่อยใช้ลากวาง งานที่ทำก็ไม่ได้ใช้ WinForm)
ผมกำลังคิดอยู่ว่า
ใครกันแน่ที่มาถึงก็สรุปเองเออเองว่า ที่เขาพูดน่ะ เพราะงี้ๆ
ทั้งๆที่ตัวเองก็ไม่ได้รู้จริงๆว่าคนอื่นเขาเจออะไรมาแบบไหน
ซึ่งทำให้ผู้อ่านเข้าใจผิดได้
ปัญหาของคำว่า Run Anywhere คือ
การบอกว่า กำลังพยายามทำ
กับการบอกว่า มันทำได้
มันคนละเรื่องกันเลย
Run Anywhere ของจาว่า เวลาพูดออกมา ไม่เคยซักครั้งที่มีคำว่า Try to
มีแต่บอกว่า Java let you write code once and it able to run anywhere
สิ่งที่ผมเห็นคือจาว่ามีฟีเจอร์ไร้สาระเพื่อที่จะต้องการให้มันรัน Anywhere ให้ได้ แต่ฟีเจอร์ที่สำคัญกลับตัดออก และสุดท้ายก็ Anywhere ไม่ได้จริง มีเงื่อนไข มีคอนดิชั่น
ดงคำที่ว่า write once debug everywhere
ผมก็ชื่นชมที่จาว่าที่พยายามรักษาจุดยืน
แต่ของที่มันมีจุดอ่อน ยังไงมันก็คือจุดอ่อน
ส่วนตัวแล้วผมมองตรงกันข้ามว่า ไอ้ความพยายามของจาว่า มันเปนอุดมคติเกินไป ที่คิดเผื่อว่ามันจะต้องรันได้ทุกแพลทฟอร์มให้ได้
กลับกันกับ .NET ที่ไม่ได้รีบร้อนจะรันให้ได้ทุกแพลทฟอร์ม แต่สร้าง Framework แล้วค่อยๆขยับขยายตัวเอง
เอาจริงๆ .NET ก็ไม่ได้ออกแบบมารองรับหลายแพลทฟอร์มแต่แรกอยู่แล้วครับ มันเน้นไปแค่ Windows PC กับ Server เพราะไมโครซอฟท์ต้องการผูกขาดผู้ใช้เข้ากับ Windows
มาถึงวันนี้ มี Mono ขึ้นมา ก็เปนแค่การแสดงให้คนเห็นว่าใจกว้าง ที่ยอมให้ C#(อันเป็นภาษาที่ดีและพัฒนาไปมากกว่าภาษา Java) กระจายออกไปจาก Windows
มันก็ไม่ใช่ว่าไมโครซอฟท์มีจุดยืนที่จะ Cross Platform เหมือนจาว่าแต่อย่างใด
จุดยืนมันต่างกันแต่ต้น
ตลอดมา ผมก็เห็นสาวกจาว่า ออกมาปกป้องจาว่าว่า "ผมก็ไม่ได้คิดว่าจาว่าเมพนะคับ แต่ละภาษา แต่ละเครื่องมือ มันก็มีงานถนัดของมัน"
และพ้นไปไม่ไม่ทันขาดคำ
"แต่จาว่าดีกว่านะคับ เขียนแล้วรันได้หลายแพลทฟอร์ม ดีกว่าภาษาโน้นภาษานี้คับ"
ผมล่ะเบื่อ
+1
"แต่จาว่าดีกว่านะคับ เขียนแล้วรันได้หลายแพลทฟอร์ม ดีกว่าภาษาโน้นภาษานี้คับ"
ผมเซ็งมากๆกับประโยคนี้
Argument "anywhere" ของคุณค่อนข้าง lame
คำว่า ทุกที่ ในภาษาของมนุษย์ ( mental process ของมนุษย์มีคำว่า ทุกที่ เรียกได้ว่า ทุกเผ่าพันธ์ทุกภาษา )
ถ้าคำว่าทุกที่ ผูกประโยชน์ออกมาที่ต้องเป็นสัจพจน์ที่คุณบอก สงสัยต้อง ทฤษฎี อีเทอร์ มั้งถึงเป็นแบบที่คุณบอกได้จริงๆ (ถ้าเอามาใช้กับ physical space)
คำในลักษณะดังกล่าวถูกนำมาใช้กันเป็นปกติ ใน context ต่าง ๆ กัน
ตอนนี้คนใช้ไอโฟนเยอะมากไปที่ไหนก็เห็น ?
GSM ทุกที่ ทุกเวลา ? ->
สนุกทุกที่ ถ้ามี ฮอนด้าแจสซ์ ->
Write Once Run Anywhere ( more than any other platforms )
เอาแบบนี้ไหม
"แต่จาว่าดีกว่านะคับ เขียนแล้วรันได้หลายแพลทฟอร์ม ดีกว่าภาษาโน้นภาษานี้คับ"
จริง ในแง่มุมนี้ ถ้าภาษาที่เปรียบเทียบทำไม่ได้ดีเท่า
และถ้ามันมีค่าและสำคัญสำหรับ คนตัดสินใจเลือก มันก็จะมีน้ำหนัก
โปรดใช้วิจารณญานในการอ่านความเห็นของคุณ Thaina เพราะว่ามันเป็นความคิดเห็นส่วนตัวและบางครั้งเป็นคำตอบที่ตอบด้วยความไม่แน่ใจหรืออาจจะแน่ใจว่าเมื่อก่อน และเป็นความรู้(สึก)ที่ได้มาจากตอนเรียน
เอ... พูดเหมือนความเห็นของคุณเชื่อถือได้ 100% ไม่จำเป็นต้องใช้วิจารณญาณเลยนะครับ
ผมเข้าใจว่า เปนสามัญสำนึกไม่ใช่หรือครับ ที่ทุกๆข่าว ทุกๆคอมเมนท์ ในบล็อกนอน ไม่ได้ถูก 100% ทุกคนต้องใช้วิจารณญาณเสมอ
ครับ มันเป็นความรู้และความรู้สึกที่ผมได้มาจากตอนเรียน
ถ้าเรียกให้ตรงก็คือประสบการณ์
ว่าผม มือใหม่ นู้บๆ ตอนมหาลัย
เรียนจาว่าในห้องเรียน ทั้งช้า ทั้งค้าง ทั้งน่าเบื่อ ทั้งยุ่งยาก
จากนั้นไม่นานนัก ก็ไปลองหัด C# ด้วยตัวเอง แป๊บเดียวก็เข้าใจ ไม่นานก็เขียนเป็น แถมสนุกมากด้วย
ถ้าตอนนี้ผมกลับไปเขียน Java ผมอาจจะรู้สึกว่าจาว่านั้น ง่าย เจ๋ง เมพ ไปเลย ก็ได้ (ละ เร็วส์ ไว้ในฐานที่เข้าใจ)
เพราะตอนนี้ผมเข้าใจการเขียนโปรแกรมมากขึ้น มีทักษะติดตัวมากขึ้น
แต่มันก็สะท้อนอะไรบางอย่างนะครับ
ไอ้ที่เรียกว่า Learning Curve น่ะครับ
ครับ ข้อมูลของผมเป็นข้อมูลเก่าครับ จาว่าตอนนี้อาจจะดีขึ้นกว่าตอนนั้นแบบไม่เห็นฝุ่น
แต่ถ้างั้น แปลว่า จาว่าตอนนั้นกากส์จริง ใช่ไม่ใช่?
หรือจะบอกว่า Java เร็วส์ เมพ ฟีเจอร์สุดยอดครบครัน ดีเลิศประเสริฐศรีกว่าภาษาไหนๆมาตลอด ไม่เคยมีใครแซงได้?
จาว่าไม่เคยค้าง? จาว่าไม่เคยช้า? จาว่า Run ได้ Anywhere?
ฟังที่คุณบอกตอน c# 2.0 ออก คุณอยู่ปีสาม ผมลองนึกย้อนไปตอนนั้น จำลองเป็นเหตุการณ์
เท่าที่จำได้และติดตามข่าวขณะนั้น java platform ถูกใช้งานไปแล้วทั่วโลก รวมทั้ง eclipse (ในรูปแบบต่างๆ)
ตอนนั้น ผมคิดว่าโครงการใหญ่ ๆ ทั่วโลกใช้ java มูลค่า ร้อยล้าน พันล้านก็มี นักพัฒนา เจ้าของโครงการ
(แน่นอนผมก็อยู่ในกลุ่มนั้นโครงการใหญ่พอสมควรแต่ไม่ได้มากมาย)
ในมุมนึงของโลก นักพัฒนาผู้มากประสบการณ์และความเชี่ยวชาญระดับยอมรับในวงการ ครึ่งร้อย กำลังใช้ java ทำระบบงานมูลค่าพันล้าน และบอกว่า มันช่วยแก้ปัญหาของระบบเก่า ๆ ได้มากมาย มันดีจริง ๆ สมัยผมเขียน c++/CORBA แทบจะบ้าตายเอาเสียให้ได้
ในอีกมุมนึงของโลก กำลังมีนักศึกษาคนนึงใช้ Eclipe ทำงานส่งอาจารย์กำลังบ่นหัวเสียกับอะไรบางอย่างที่ทำให้เขาไม่สามารถทำให้งานบรรลุเป้าหมาย โพล่งออกมาว่า จาวากากส์ ! ไปใช้ vs.net กับ c# ดีกว่า เมพขิง ๆ
คำถามที่ว่า จาว่าตอนน้้นกากส์จริงใช่หรือไม่
ผมคนนึงที่กล้ายืนยันว่า "ไม่" ด้วยเหตุการณ์ที่ยกมา
คุณก็ยืนยันว่า "ใช่" ด้วยเหตุการณ์ที่ยกมา
ผมไม่เคยบอกว่ามัน ดีเลิศกว่าภาษาไหน คำว่าดีไม่ดี ก็มีหลายแง่มุมให้พิจารณาอีกมาก
แต่ที่สำคัญอะไรเป็น fact ก็ต้องว่ากันตามจริง อย่าใช้อคติ ดีไม่ดี ว่ากันตามเนื้อผ้า
เช่นถ้าบอกว่า CBD support ของ c# ดีกว่า java ผมบอกว่า แน่นอนถูกต้อง
ระบบ assembly ดีกว่า jar ผมบอกว่า แน่นอนถูกต้อง
ผมย้ำเสมอว่า ควรต้องเอา Fact นำ Ideology
ในการสรุปเหตุผลเชิงเปรียบเทียบ ของสองอย่าง วิธีที่ถูกต้องคือพยายามศึกษาทั้งสองอย่างเสียก่อน
ให้มีน้ำหนักข้อมูลที่เหมาะสม อย่าเพิ่งมีธงนำ
มันยังมี ภาษา platform อื่น ๆ ให้ศึกษาอีกมาก ยิ่งเป็นมากยิ่งได้เปรียบ ยุคสมัยนี้ ข้อจำกัดมันน้อย ไม่มีอะไรมาปิดกั้นคุณได้ นอกเสียจาก...
เติมให้ครับ
ไม่มีอะไรมาปิดกั้นคุณได้นอกเสียจากอคติ เปิดมุมมองนิดหนึ่งแล้วคุณจะรู้ว่าโลกใบนี้น่าอยู่กว่าที่คุณคิด
ผมไม่ค่อยออกความเห็นเลยนะครับว่า Java ดีกว่าภาษาอื่นๆหรือไม่เคยมีภาษาไหนสู้ Java ได้เลย ไม่เคยพูดว่า C# ... เพราะผมก็ชอบ C# จะถามว่า Java เมพมั้ยก็ไม่ใช่แต่รู้ว่าจาวาเร็วส์ถึงจะไม่เร็วเท่า C#(ในความคิดของคุณของผมด้วย) คุณถามว่าจาวารันได้ anywhere มั้ยเท่าที่ทำอยู่ใน "ปัจจุบัน" (ไม่ใช่คิดว่าและไม่ใช่เมื่อก่อน)คือโปรแกรมผมและของคนอื่น(Eclipse, Tomcat, OFBiz, Pentaho, Alfresco, jEdit ฯลฯ )ที่ผมใช้อยู่ รันได้บน FreeBSD Linux OSX Windows จะเอาหลักฐานมั้ยครับนักวิทยาศาสตร์ทำอะไรต้องการหลักฐาน
เอ่อ ผมแค่สงสัยว่าจะไปขุดคุ้ยเรื่องจาวาสมัยเก่าๆ แก่ๆ ไปทำไม หรือแค่อยากหาข้อมูลอะไรก็ได้เพื่อมาสนับสนุนความคิดว่าจาวามันห่วย?
ถ้าคิดแบบนั้นอะไรมันก็ห่วยทั้งๆ นั้นแหละครับแรกๆ จะเอามาพูดถึงเพื่อ?
งั้นบอกบอกว่าอย่าไปใช้ linux ห่วยกาก รุ่นแรกๆ network ก็ไม่มี driver อะไรก็ไม่มีแบบนั้น มันจะเกิดประโยชน์อะไร?
"หรือจะบอกว่า Java เร็วส์ เมพ ฟีเจอร์สุดยอดครบครัน ดีเลิศประเสริฐศรีกว่าภาษาไหนๆมาตลอด ไม่เคยมีใครแซงได้?" << เท่าที่อ่านมาเหมือนจะบอกว่า C# เป็นอย่างนั้น?
โอ้วนึกว่าใน BN เค้าคุยกันแต่เรื่องปัจจุบันและอนาคตเพราะเป็นเว็บ IT ชั้นนำของไทยเพิ่งรู้ว่าเป็นเว็บเรียนวิชาประวัติศาสตร์จาวาค้างด้วย(พูดประชดและล้อเล่นคลายความตึงเคลียด)
Sun ไม่ได้ทอดทิ้งจาวาครับ แต่ Sun เอาตัวไม่รอดเอง สงสัยเป็นมูลนิธิมากเกินไป
Java ไปอยู่กับ Oracle น่าสงสารจริงๆ ผมว่าทำเป็นสนับสนุน ต่อเนื่องไปแบบเสแสร้ง
ไม่ได้มีความตั้งใจจริงเลยกับ Java สำหรับ Oracle
ผมทำนายว่า Oracle หากเห็นโอกาสดีๆ อาจขาย(ไม่ต้องตกใจ) Java ออกไป
คนซื้อก็ไม่ใช่ใคร M$ เอามารวมแพลตฟอร์มพัฒนา ให้หมด ทั้งขายทั้งแจก
รวบยอด คุณเขียนภาษาอะไรก็ได้ แล้วแต่ชอบ