มันยังคงคุ้มค่าที่จะเรียนรู้การพัฒนา GUI gui? [ปิด]


18

ในช่วงสองสามปีที่ผ่านมาโครงการที่สำคัญทั้งหมดที่ฉันทำงานอยู่นั้นใช้เว็บเป็นหลักหรือมีส่วนต่อประสานกับผู้ใช้ที่ไม่ใช่กราฟิก (บริการสคริปต์บรรทัดคำสั่ง ฯลฯ ... ) ฉันสามารถรวมแอพ WinForms หรือทำ WPF แบบเรียบง่ายเมื่อจำเป็น แต่ฉันไม่เคยเจาะลึกเรื่อง API ระดับล่างอย่าง MFC หรือ QT

ฉันเข้าใจว่าสิ่งนี้ขึ้นอยู่กับสถานการณ์ แต่โดยทั่วไปแล้วมันยังคงคุ้มค่าที่จะสละเวลาในการเรียนรู้การพัฒนาเดสก์ท็อปด้วยหรือเป็นแอปพลิเคชันที่ย้ายไปยังเว็บและอุปกรณ์พกพา นอกจากนี้คุณคาดหวังว่านักพัฒนาซอฟต์แวร์ที่คุณทำงานด้วยจะมีความเชี่ยวชาญใน gui บนเดสก์ท็อปหรือไม่


5
การพัฒนาแอพพลิเคชั่นบนเดสก์ท็อปนั้นยอดเยี่ยม แต่สำหรับคนที่รัก Knuth แล้วอย่ากังวลกับ MFC สิ่งที่คุณต้องการสำหรับ 95% ของงานเดสก์ท็อป Windows คือ WinForms หรือ WPF / XAML อีก 5% ของงานที่คุณไม่ต้องการ
Adam Crossland

1
@Adam: +1 สำหรับ "อีก 5% ของงานที่คุณไม่ต้องการ" - จริง :)
Bobby Tables

คำตอบ:


38

ฉันจะบอกว่าใช่มันเป็น มีผลกระทบลูกตุ้มในการพัฒนาโปรแกรม ทุกอย่างแรกวิ่งบนคอมพิวเตอร์โดยตรง จากนั้นเมื่อคอมพิวเตอร์มีพลังมากพอที่จะเรียกใช้หลายโปรแกรมพวกเขาได้รับเมนเฟรมที่มีเทอร์มินัลโง่ แต่เทอร์มินัลโง่นั้นดูดในแง่ของการใช้งานจริงดังนั้นทันทีที่คอมพิวเตอร์มีพลังมากพอที่จะใส่ฮาร์ดแวร์จำนวนพอสมควรในระบบขนาดเทอร์มินัลเรามีคอมพิวเตอร์ส่วนบุคคลและทุกอย่างก็วิ่งบนคอมพิวเตอร์โดยตรง

จากนั้นพวกเขาคิดค้นเวิลด์ไวด์เว็บและเรากลับไปที่เมนเฟรม (เซิร์ฟเวอร์) และเทอร์มินัลโง่ (เบราว์เซอร์) แต่เทอร์มินัลโง่ยังคงดูดในแง่ของการใช้งานและผู้คนเริ่มเรียนบทเรียน 30 ปีที่ผ่านมา และเรามีแนวโน้มที่จะห่างไกลจากสิ่งนั้นอีกครั้ง ปัจจุบันนี้มีการพัฒนาอย่างมากสำหรับแอพเดสก์ท็อป (หรือมือถือ) ที่ทำงานในพื้นที่ แต่สามารถเชื่อมต่ออินเทอร์เน็ตเพื่อวัตถุประสงค์เฉพาะเพื่อปรับปรุงการทำงานของพวกเขา


5
+1 สำหรับการชี้ให้เห็นว่าแนวโน้มเหล่านี้ทำงานเป็นรอบ อย่างไรก็ตามฉันเห็นกรณีที่มีแอปเทอร์มินัลเขียนซ้ำเป็นแอพเดสก์ท็อปและผู้ใช้สามารถทำงานได้อย่างมีประสิทธิภาพมากขึ้นด้วยแอพเทอร์มินัล
Larry Coleman

2
ความแตกต่างกับเบราว์เซอร์คือความจริงแล้วพวกเขาสามารถเรียกใช้รหัสในระบบภายในเครื่องและความสามารถนี้เติบโตขึ้นกับการสร้างเบราว์เซอร์แต่ละรุ่น ผลที่ตามมาก็คือความแตกต่างในการใช้งานระหว่างเดสก์ท็อปและเว็บแอปนั้นไม่ใหญ่มากนัก สำหรับคนจำนวนมาก (รวมถึงตัวเอง) gmail นั้นมีประโยชน์มากกว่าการมอง ลูกตุ้มแกว่งน้อยลงในแต่ละครั้งและมันจะหยุดลงครึ่งหนึ่งโดยแอพเป็นส่วนผสมของชิ้นส่วนท้องถิ่นและคลาวด์โดยไม่คำนึงถึงเทคโนโลยีพื้นฐาน
Joeri Sebrechts

13
+1 ฉันเกลียดเมื่อมีคนเริ่มอ้างว่าเดสก์ท็อปนั้นตายแล้วมันไร้สาระ
ดร. Hannibal Lecter

1
@Joeri: เทอร์มินัลส่วนใหญ่สามารถทำอย่างน้อยสองสามบิตและชิ้นในพื้นที่ JavaScript ที่ฉันเคยเห็นมีจำนวนลดน้อยลงสิ่งที่ IBM 3270 (สำหรับตัวอย่าง) สามารถทำได้ภายในเครื่องเช่นกัน
Jerry Coffin

1
@Joeri Sebrichts - เมื่อ Gmail อนุญาตให้ฉันลากและวางอีเมลลงในรายการงานหรือปฏิทินที่ฉันอาจเห็นด้วยกับคุณ แต่จนถึงตอนนี้ก็มีคุณสมบัติน้อยเกินไป
JeffO

11

แม้ว่าคุณจะไม่เคยตั้งใจจะพัฒนาเดสก์ท็อป แต่ฉันขอแนะนำให้คุณได้รับประสบการณ์มากพอที่คุณจะได้รับความเห็นที่มีข้อมูลเมื่อมันจะดีกว่าที่จะใช้โซลูชันเดสก์ท็อปบนเว็บไคลเอ็นต์


+1: สมมติว่า 'เดสก์ท็อปนั้นตายแล้ว' และแอปพลิเคชัน pigenholing เป็นสิ่งที่ตรงกันข้ามกับนักพัฒนาเดสก์ท็อปที่บริสุทธิ์โดยกล่าวว่า เลือกสิ่งที่คุณต้องการทำงานด้วย แต่รู้จักอีกฝ่ายพอที่จะรับรู้ถึงประโยชน์ / ข้อผิดพลาดที่แท้จริง
Steven Evers

8

ใช่ แต่ไม่ใช่ในแบบที่คุณคิด

การเขียนโปรแกรม GUI นั้นไม่ยากอีกต่อไปหรือไม่ต้องการทักษะพิเศษนอกเหนือจากความคุ้นเคยกับอินเตอร์เฟสการเขียนโปรแกรม gui การเชื่อมโยงปุ่มและหน้าต่างและตัวควบคุมเข้าด้วยกันนั้นไม่ใช่เรื่องยากอย่างยิ่งและเป็นเรื่องง่ายในสภาพแวดล้อมการเขียนโปรแกรมที่ทันสมัย การเขียนโปรแกรม GUI เป็นสิ่งที่เรียนรู้ได้ง่ายเมื่อต้องการ

อย่างไรก็ตามในขณะที่การเชื่อมโยงปุ่มและกล่องข้อความค่อนข้างง่ายการรู้ว่าเมื่อไรและที่ไหนที่จะวางปุ่มและการออกแบบ gui ที่มนุษย์ใช้นั้นเป็นเรื่องยากมาก นั่นเป็นทักษะที่มีค่าและมีความสำคัญมาก อย่างไรก็ตามหลักการออกแบบที่ใช้กับอินเตอร์เฟสดั้งเดิมเทียบกับเว็บนั้นคล้ายคลึงกันมาก

ดังนั้นเรียนรู้วิธีการออกแบบส่วนต่อประสานผู้ใช้ที่ดีที่มีประสิทธิภาพและไม่สับสนผู้ใช้และคุณจะคุ้นเคยกับการเขียนโปรแกรมสำหรับพวกเขาฟรี


2
โดยเฉพาะอย่างยิ่งในช่วงเวลาเหล่านี้ประสบการณ์ผู้ใช้เป็นผู้ออกแบบซอฟต์แวร์ สถาปัตยกรรมไม่ได้อยู่ในความดูแลอีกต่อไป

5

มันขึ้นอยู่กับสถานการณ์ของคุณ เมื่อเร็ว ๆ นี้ฉันทำงานให้กับ บริษัท Fortune 500 ที่มีหลายโครงการในการแปลงแอปพลิเคชันเว็บกลับไปเป็นแอปพลิเคชันเดสก์ท็อป (SmartClient / Click-Once) ในสถานการณ์เฉพาะของพวกเขามันสมเหตุสมผลและตัดปัญหาการใช้งานหลาย ๆ แอพที่มีอยู่ของพวกเขาที่ได้รับความเดือดร้อนจาก

หากคุณเป็นพนักงานเต็มเวลาและ บริษัท ของคุณไม่ได้ออกแบบแอปเดสก์ท็อปโดยทั่วไปแล้วอาจไม่เหมาะสมที่จะเพิ่มความเร็วใน Winforms หรือ WPF อย่างไรก็ตามหากคุณเป็นผู้ให้คำปรึกษาและคุณต้องการที่จะให้บริการอื่นแก่ลูกค้าของคุณก็จะไม่เกิดความเสียหาย


4

อืมนอกเหนือจาก GMail, Stack-Exchange และธนาคารบ้านของฉันฉันใช้ซอฟต์แวร์ที่ไม่ใช่เว็บทั้งวัน ตอนนี้การถือกำเนิดของสมาร์ทโฟนและแท็บเล็ตทำให้เว็บแอปพลิเคชันน่าสนใจยิ่งขึ้นสำหรับฉัน (ฉันใช้ไคลเอนต์ Facebook บนสมาร์ทโฟนของฉัน) นั่นคือด้านผู้ใช้

ด้านนักพัฒนาซอฟต์แวร์: ในช่วง 10 ปีที่ผ่านมาฉันทำงานเกือบไม่ใช่ซอฟต์แวร์เว็บ (และอาชีพของฉันครอบคลุมโดเมนที่แตกต่างกันมากเนื่องจากฉันทำงานเป็นที่ปรึกษาด้านซอฟต์แวร์) และฉันไม่เห็นแนวโน้มของเว็บในอนาคตในงานของฉัน

ใช่มันยังคงต้องเรียนรู้สภาพแวดล้อม GUI บนเดสก์ท็อป


2
ว้าวคุณไม่ได้ใช้ Internet Search Engine เหรอ?
JBRWilkinson

1
@JBRWilkinson: ไม่ฉันพึ่งพาโกเฟอร์ อย่างจริงจังฉันแน่ใจว่าฉันใช้ Google ตลอดทั้งวัน แต่นั่นไม่ใช่การแทนที่สำหรับเครื่องมือเดสก์ท็อปหรือแอปพลิเคชันใด ๆ
Wizard79

2

แน่นอน "มันขึ้นอยู่กับ" - แต่ฉันคิดว่าประสบการณ์ของคุณเป็นเรื่องปกติ ฉันไม่ค่อยได้สร้างไคลเอนต์หนาสำหรับแอปพลิเคชันใด ๆ ที่ฉันเขียน เว้นแต่จะมีเหตุผลเฉพาะที่ลูกค้าต้องทำงานบนเดสก์ท็อป (ปัญหาการเชื่อมต่อหรือเกม 3 มิติเป็นต้น) - ฉันเชื่อว่ามันง่ายกว่าสำหรับนักพัฒนาและผู้ดูแลระบบในการรักษา "อินสแตนซ์" ของแอปพลิเคชัน หากพวกเขามีทักษะในการออกแบบเว็บแอปพลิเคชันพวกเขาควรจะย้ายเข้าสู่ขอบเขตของแอปเดสก์ท็อปโดยทั่วไป

ที่จริงแล้วฉันคิดว่ามันสำคัญกว่าที่ผู้พัฒนาไคลเอ็นต์รายหนาเรียนรู้การเขียนโปรแกรมเว็บแอปพลิเคชัน - การไร้สัญชาติที่สืบทอดมาจาก HTTP ทำให้กระบวนทัศน์การพัฒนาแอพพลิเคชั่นยากยิ่งขึ้น บนแผงควบคุม)

อย่าลืม - คุณมีเทคโนโลยีเช่น Silverlight และ Adobe Flex / AIR ที่สามารถข้ามเส้นแบ่งระหว่างเดสก์ท็อป / เว็บแอปพลิเคชัน


+1 สำหรับการพัฒนาเว็บเป็นเรื่องยากมากขึ้น ฉันเริ่มเป็นนักพัฒนาเดสก์ท็อปและต้องเข้าสู่การพัฒนาเว็บไซต์ มันมีความซับซ้อนมากขึ้นอย่างแน่นอน (เห็นได้ชัดว่านี่เป็นการสมมติงานที่เทียบเคียงได้ซึ่งไม่ใช่เรื่องง่าย)
Bobby Tables

@Guzica - ใช่ฉันได้พบกับทัศนคติที่คล้ายกันจาก devs ที่ดีที่ฉันได้ทำงานร่วมกับผู้ที่ถูกล็อคเข้าสู่การพัฒนาแอพเดสก์ท็อป เมื่อพวกเขาพยายามทำให้สวิตช์นั้นไม่ใช่เรื่องง่ายสำหรับพวกเขาอย่างที่คิดไว้ ฉันไม่รู้ว่าสิ่งนี้มีความซับซ้อนใด ๆ ในการเขียนโปรแกรมเว็บแอพมันเป็นวิธีที่แตกต่างกันในการเขียนโปรแกรมและข้อสันนิษฐานพื้นฐานของคุณมากมายเกี่ยวกับสิ่งที่ระบบสามารถทำได้ต้องเปลี่ยน (นอกเหนือจากการเรียนรู้กรอบใหม่)
วัตสัน

การทำสิ่งต่าง ๆ ด้วยเครื่องมือที่มี จำกัด จะทำได้ยากกว่าเสมอซึ่งไม่ได้ทำให้ "ซับซ้อนขึ้น" มันทำให้ยุ่งยากมากขึ้น
Sam

0

อ้างอิงจากทีม IE9:

ไม่ควรมีช่องว่างระหว่างแอปพื้นฐานและเว็บ การเร่งความเร็ว HW, JS อย่างรวดเร็วและการปักหมุดไซต์จะเริ่มขึ้น

ฉันคิดว่ามันเป็นเดิมพันที่ปลอดภัยที่เทคโนโลยีเหล่านี้จะเติบโตใกล้กัน หากคุณเป็นผู้พัฒนาจาวามีความแตกต่างเพียงเล็กน้อยระหว่างการพัฒนาแอพเดสก์ท็อปและเว็บแอพ (ใช้ GWT) มันไม่สมเหตุสมผลที่จะคาดหวังแพลตฟอร์มการพัฒนา "เดสก์ท็อป" มากขึ้นเรื่อย ๆ เพื่อให้สามารถกำหนดเป้าหมายเครื่องมือเบราว์เซอร์ได้ นอกจากนี้ยังไม่มีเหตุผลที่จะคาดหวังว่าแอปเดสก์ท็อปมากขึ้นเรื่อย ๆ ที่จะมีรูปแบบการกระจายทางเว็บ (อัปเดตอัตโนมัติในพื้นหลังการประมวลผลแบบแซนด์บ็อกซ์เช่นโครม)


3
นั่นคือ BS ทั้งหมด ฉันกำลังทำงานกับแอพพลิเคชั่นการวัดเวลาในการตอบสนองที่ต้องอยู่ภายในเครื่องเพื่อทำการวัดและแสดงผลเวลาแฝงของการส่งข้อมูลตลาด "เรียลไทม์" สิ่งนี้จะไม่ถูกย้ายไปยังคลาวด์
ทิม

มันเป็น BS โดยรวมเพราะคุณพบความต้องการที่คลุมเครืออย่างน่าขันสำหรับแอปพลิเคชันที่จะเป็นในท้องถิ่น
Mike M.

@Tim: คุณพูดถูกว่าแอพบางตัวอาจอยู่ในท้องที่เสมอ นอกจากนี้ยังเป็นความจริงที่ว่าแอพอื่น ๆ จะไม่สามารถอยู่ในพื้นที่ได้ (เช่น Google แปล) แต่การทำงานในพื้นที่ไม่ได้หมายความว่ามันไม่ได้มาจากคลาวด์ Chrome ทำงานในเครื่อง แต่เป็นแอปที่ใช้ระบบคลาวด์ (คุณสามารถควบคุมได้ว่าเป็น "รุ่น" หรือไม่) มีความพยายามที่จะผูกรหัสเนทีฟลงในแพลตฟอร์มเบราว์เซอร์ (Google NaCl) และพยายามผูกภาษาเว็บเข้ากับแอพเนทีฟ (Adobe Air)
Joeri Sebrechts

1
@Mike M - มันไม่ปิดบังขัน ที่งานก่อนหน้าของฉันฉันทำงานกับซอฟต์แวร์ shipboard ของกองทัพเรือ สิ่งเหล่านั้นก็ไม่น่าจะอยู่ในกลุ่มเมฆ โดเมนที่ฉันทำงานอยู่มีแนวโน้มที่จะไม่โยกย้าย - พวกเขาต้องอยู่ในพื้นที่นั้นด้วยเหตุผลด้านความหน่วงและเหตุผลของฮาร์ดแวร์อินเตอร์เฟส เว็บเป็นสิ่งที่ดี แต่พวกเราบางคนยังทำงานในพื้นที่แอปตามปกติด้วยเหตุผล
ทิม

@Tim จุดของฉันคือคุณได้พบสถานการณ์ที่ไม่ได้ถือ ผู้เขียนตระหนักถึงสิ่งนี้เมื่อเขาพูดมากที่สุด คุณมีจุดเคาน์เตอร์และมันยอดเยี่ยมมาก คุณไม่เคยพิสูจน์ว่าสิ่งทั้งหมดไม่มีพื้นฐาน แน่นอนว่าจะมีเวลาที่จะต้องอยู่ในท้องถิ่นด้วยเหตุผลมากมาย แต่สำหรับคนส่วนใหญ่แล้วการโยนสายเคเบิลใยแก้วนำแสงบางส่วนและระยะทาง 1,200 ไมล์ของคุณสามารถข้ามไปได้ในเวลา 10 มิลลิวินาที? ในฐานะผู้ใช้ฉันจะโอเคกับแอพพลิเคชันเดสก์ท็อปทุกเครื่องที่ใช้เวลาโหลดนานกว่า 10 มิลลิวินาที
Mike M.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.