จะยุติการพึ่งพาของฉันบน. NET ได้อย่างไร? [ปิด]


10

ฉันพัฒนาแอพพลิเคชั่น Windows GUI มาหลายปีแล้วและกระโดดเข้าสู่. NET ในต้นปี 2548 .NET เป็นแพลตฟอร์มที่น่าทึ่งอย่างไม่ต้องสงสัยและฉันยังคงใช้มันอยู่ แต่ด้วยเทคโนโลยีที่หลากหลายฉันไม่ต้องการอยู่ต่อ ทุ่มเทให้กับค่ายนี้ ฉันต้องการเรียนรู้ภาษาใหม่ที่ฉันสามารถพัฒนาแอปพลิเคชัน GUI

ฉันกำลังเรียนรู้ Ruby และเพิ่งติดตั้ง Python ฉันอ่านเกี่ยวกับ WxRuby ซึ่งเป็นกรอบสำหรับการพัฒนาแอพ Windows GUI ในทับทิม ฉันกำลังค้นหาเฟรมเวิร์กที่คล้ายกันสำหรับ Python

นอกเหนือจากนั้นฉันต้องการทราบว่าภาษาใดเหมาะสมกว่าสำหรับแอป GUI ระดับการผลิต ฉันสงสัยว่า Ruby ให้ความสำคัญกับแพลตฟอร์มของเว็บมากกว่าเนื่องจาก Ruby on Rails

ฉันรู้ว่าฉันอาจไม่ได้รับคลาส. NET เหล่านั้นและ Visual Studio IDE ที่น่าประทับใจ แต่ถึงกระนั้นฉันก็ยังต้องการเดินทางไปตามเส้นทางที่น้อยลง ฉันไม่ต้องการไปกับ IronPython และ IronRuby แต่ในภายหลังบางครั้งฉันอาจใช้มือสำรวจพวกเขา


5
ความอัปยศที่แท้จริงที่ Microsoft ตัดสินใจที่จะสุ่มทิ้ง IronPython และ IronRuby ฉันไม่คิดว่าพวกเขาเข้าใจจริงๆว่าข้อความที่พวกเขาส่งออกไปรบกวนอุตสาหกรรม / ชุมชนในการทำเช่นนั้น
Rei Miyasaka

2
@Mahmoud พวกเขาหยุดใช้เงินกับมัน พวกเขาเพียงแค่ให้ชุมชนดำเนินการทันที Jim Hugunin ผู้นำด้านการพัฒนาไม่สามารถทำงานกับ Microsoft ได้อีกต่อไปดังนั้นโดยธรรมชาติเขาจึงออกจาก บริษัท เช่นกัน: hugunin.net/microsoft_farewell.html
Rei Miyasaka


9
@ โทมัสมันยังคงทิ้ง เพียงเพราะฉันคลองแฟนของฉันไม่ได้หมายความว่าเธอจะไม่อยู่อีกต่อไปหรือไม่ทำงานได้ ... สิ่งที่หลังอาจหมายถึง
Rei Miyasaka

2
@Rei ตราบใดที่คุณเป็นห่วงเธอไม่มีอีกต่อไป :) Ditched เป็นตั๋วเที่ยวเดียวสำหรับบาร์เดี่ยวที่คุณสามารถไปเที่ยวกับ MSDOS, FoxPro, VB6, Silverlight, Flight Sim, IronPython และ IronRuby และบอก เรื่องราวของความรักที่คุณมีในอดีต
gbjbaanb

คำตอบ:


14

ตรวจสอบ Qt

มันมีเนื้อหามากมายเช่นเดียวกับ. NET และ IDE (QtCreator) นั้นเรียบง่าย แต่ทรงพลัง แน่นอนว่ามันใช้งานได้ดีกับภาษาซีพลัสพลัส แต่การผูก Python นั้นสมบูรณ์และทันสมัยอยู่เสมอ

มันเป็นแพลตฟอร์มข้ามแพลตฟอร์มจริงๆและนั่นรวมถึงแพลตฟอร์มมือถือด้วย :-)


1
มันยากที่จะโทรหา Qt ซึ่งเป็นระบบภาษา C ++ เนื่องจากมันต้องการคอมไพเลอร์แยกต่างหากก่อนที่จะสร้าง ไม่ใช่ระบบที่ไม่ดีเลย
Billy ONeal

1
ไม่เลยมันคือ 'native' ในฐานะ "คอมไพล์ตรงกับภาษาเครื่องไม่มี bytecode / VM / JIT ที่นั่น" เช่นเดียวกับ: "ไม่มีเลเยอร์การจำลองแพลตฟอร์มโค้ดผลลัพธ์เป็นระบบปฏิบัติการเฉพาะ" พรีคอมmocไพเลอร์ไม่มีอะไรมากไปกว่าซินแท็กซ์น้ำตาลที่จะทำให้โค้ดดูง่ายขึ้นในบางมุม (ส่วนใหญ่จัดการสัญญาณ) มันเหมาะกับโซ่คอมไพล์ในที่เดียวกับ C preprocessor มันเป็นส่วนใหญ่เป็นสิ่งประดิษฐ์ทางประวัติศาสตร์ของการรักษาเสถียรภาพ API ก่อนบาง c ++ คุณสมบัติมีเสถียรภาพทั่วคอมไพเลอร์
ฮาเวียร์

เพื่อความเป็นธรรมกระทรวงพาณิชย์ได้เพิ่มพลวัตที่ C ++ ขาดแม้กระทั่งทุกวันนี้
Tamás Szelei

6

wxRuby เป็นเพียงการเชื่อมโยงของ Ruby สำหรับwxWidgetsซึ่งเป็นชุดเครื่องมือ GUI ข้ามแพลตฟอร์มที่ยอดเยี่ยม มีการรวมที่คล้ายกันสำหรับ Python ที่เรียกว่า wxPython รวมถึงการผูกสำหรับภาษาอื่น ๆ อีกมากมาย


วิดเจ็ตอยู่ที่นั่น แต่พวกมันรวมเข้ากับภาษาหลักได้อย่างไร ชุมชนมีการสนับสนุนอย่างไร
RPK

1
@RPK - คุณจะมีชุมชนขนาดเล็กพอสมควรโดยใช้ชุดเครื่องมือ GUI ที่กำหนดด้วย Python หรือ Ruby ชุมชน wxPython ใหญ่กว่า Ruby แม้ว่า; ชุมชน Ruby ถูกครอบงำโดย Rails ในขณะนี้ แต่ Python มีความหลากหลายที่ชัดเจนกว่า
Jeremy

@Jeremy ชุมชน Ruby ไม่ได้ถูกครอบงำโดย Rails แต่ให้การรับรู้ว่ามันเป็นสิ่งที่น่าละอาย
ทางเลือก

5

ฉันไม่แน่ใจว่าคำถามของคุณ จำกัด อยู่ที่การพิจารณาว่า Ruby หรือ Python ดีกว่าหรือถ้าคุณถามภาษาอื่นที่คุณอาจต้องการเรียนรู้เพื่อพัฒนาแอพ Windows GUI โดยทั่วไป ฉันสมมติว่าหลัง

นอกจากนี้ยังมีการเขียนโปรแกรม Java, Delphi หรือ Win32 ดั้งเดิม สิ่งเหล่านี้เหมาะสำหรับการพัฒนาแอพ GUI บน Windows รหัส Win32 ดั้งเดิมสามารถ (ต้อง?) ยังคงถูกเขียนผ่าน Visual Studio แต่ไม่มีการพึ่งพา. NET


4
+1 สำหรับ Delphi สร้างแอป Windows แบบ 32 บิตที่รวดเร็วและไม่ต้องมีกระเป๋าสัมภาระของ. NET รุ่น 64 บิตอาจจะมาในช่วงปี 2011
tcrosley

1
Java GUI ช้าหรือไม่ พิสูจน์แล้วว่าอยู่ที่ไหน
Tim Williscroft

9
@Tim Williscroft - SWT นั้นเร็ว แต่แอพ Swing ส่วนใหญ่ค่อนข้างจะช้ามาก เห็นได้ชัดว่าฉันไม่สามารถจินตนาการถึงความต้องการที่จะพิสูจน์มัน
Jeremy

1
@ Jeremy ฉันน้อมรับความรู้ที่เหนือกว่าของคุณ ฉันอายมากฉันทำผิดไปหลายปี แต่ตอนนี้ฉันรู้แล้ว
ทิม Williscroft

2
Native win32 นั้นใช้ได้ ไม่ดีสำหรับการพัฒนาอย่างรวดเร็ว แต่ก็ไม่ยากอย่างยิ่ง
พอลนาธาน

5

HTML5 และ JavaScript

ฉันหวังว่าฉันล้อเล่นแต่ฉันไม่

น่ากลัวที่จะคิดว่าไม่มีคำตอบนี้ครึ่งปีที่ผ่านมา

เศร้า ...


ประมาณหนึ่งปีที่ผ่านมาฉันแสดงความคิดเห็นต่อโปรแกรมเมอร์ว่า Microsoft ขว้าง VB6 ออกไปด้วยการอาบน้ำและพวกเขาก็สามารถทำได้เช่นเดียวกันกับ. NET ใครบางคนตอบฉันและเขียนว่า MS จะไม่ทิ้ง. NET ดีประหลาดใจประหลาดใจ! นั่นคือเหตุผลที่ฉันค่อนข้างติดกับซอฟต์แวร์อิสระและชุมชนโอเพนซอร์ส ถ้า. NET เป็นโอเพ่นซอร์สพฤติกรรมของ MS จะไม่ได้มีความสำคัญมากนักเพราะชุมชนอาจนำกรอบงานไปข้างหน้า
systemovich

1
โมโนจมลงอย่างมาก ปัญหาคือความอัปยศและการเมืองรอบตัวทำให้ บริษัท อื่นไม่สามารถปรับตัวได้อย่างสบาย ๆ เรื่องเดียวกันนี้นำไปใช้กับ Java ซึ่งเป็นโอเพนซอร์สโดยที่ซันพยายามฟ้องกูเกิ้ล ความแตกต่างคือ Google ไม่ได้คาดหวังว่าซอนจะฟ้องพวกเขา ทุกคนคาดหวังว่า Microsoft จะฟ้องร้องพวกเขาและแม้ว่าพวกเขาจะสาบานกับตัวเองก็ตามผู้คนก็หลีกเลี่ยง. NET / Mono / ECMA C # จริงๆแล้วมันไม่เกี่ยวกับโอเพ่นซอร์สกับอะไร มันเกี่ยวกับ MS ที่สูญเสียสมองไปอย่างสิ้นเชิง ซอฟต์แวร์เกือบทั้งหมดมีความเสี่ยงจากผู้สนับสนุนหลักที่จะบ้าคลั่งหรือเบื่อเปิดหรือไม่
Rei Miyasaka

+1 เนื่องจากเป็นการดีที่สามารถพอร์ต HTML5 และ JS ได้โดยตรงจากเบราว์เซอร์ไปยังแอปพลิเคชันเดสก์ท็อปดั้งเดิม ตอนนี้เรามีเว็บมือถือ (ใช้PhoneGap ) และ windows 8 ทั้งหมดภายใต้แพลตฟอร์มโอเพ่นซอร์สเดียว!
Raynos

1
ในตอนท้ายของบทความที่คุณเชื่อมโยงไปถึงแนะนำว่า MS จะไม่ละทิ้งฐานนักพัฒนาขนาดใหญ่ของพวกเขาและ / หรือทำให้พวกเขารหัสทั้งหมดใน HTML5 + JS และนั่นเป็นเรื่องเกี่ยวกับการประชาสัมพันธ์มากกว่าสิ่งอื่นใด
Scott Whitlock

@ScottWhitlock เป็นเพียงไมโครซอฟท์ที่ขยายเครื่องมือที่คุณสามารถใช้ได้โดยไม่ต้องลดค่าใช้จ่ายหรือลดการสนับสนุนเครื่องมือที่มีอยู่ มันเป็นวิธีที่ยอดเยี่ยมในการดึงดูดนักพัฒนาเข้าสู่ระบบ microsoft eco
Raynos

4

โปรดจำไว้ว่าคนที่ไม่ใช่ไมโครซอฟท์ฮาร์ดคอร์นั้นขับเคลื่อนด้วยบรรทัดคำสั่งและการออกแบบ GUI นั้นไม่มีประโยชน์เลย พวกเขาจะประนีประนอมและสร้าง GUIs ใน HTML เพื่อใช้งานโดยเบราว์เซอร์ แต่สำหรับลูกค้าของพวกเขาไม่ใช่เพื่อตัวเอง

ถ้าคุณอยู่ในโลก GUI ฉันคิดว่าคุณอาจต้องการดู Apple หรืออยู่กับ. NET บน Windows

มีเหตุผล?

HTH


4
นี่ไม่เป็นความจริงอย่างเคร่งครัด ในโลก * ระวังเรามีและใช้ GUIs อย่างกว้างขวาง
greyfade

@ คริสโตเฟอร์: ฉันรู้และตระหนักถึงมันอย่างแน่นอน ยกตัวอย่างเช่น Oracle พวกเขาออกมาพร้อมกับ HTML GUI ซึ่งช้ามาก ฉันไม่ได้มองเชิงลบเพียงอย่างเดียวอาจจะสามารถจัดการ Oracle ผ่านบรรทัดคำสั่งได้เป็นอย่างดี
RPK

@RPK: IIRC, Oracle 9i มีเครื่องมือการบริหารที่ยอดเยี่ยมซึ่งเป็นแอพ GUI สำหรับเดสก์ท็อป ฉันชอบมากสำหรับการจัดการบรรทัดคำสั่ง Oracle 10g ใช้งานเป็นหน้าเว็บซึ่งแทบไม่ดีเท่านี้
David Thornley

1
GTK เป็นที่นิยมในเดสก์ท็อป Linux และมีชุดเครื่องมือ GUI อื่น ๆ ฉันไม่คิดว่าเป็นเรื่องธรรมดาเลยที่จะเรียกใช้เดสก์ท็อปโดยไม่มี GUI แม้ว่าคุณจะใช้งานเทอร์มินัลสำหรับงานจำนวนมากก็ตาม แม้ว่าเซิร์ฟเวอร์ * ระวังคุณมักจะทำทุกอย่างผ่านบรรทัดคำสั่ง
Jeremy

2
+1 เพราะฉันคล้ายกับคำพูดนั้น โดยทั่วไปแล้วการเขียนโปรแกรม GUI ที่ฉันทำนั้นเกี่ยวข้องกับเว็บแอป ฉันใช้ความพยายามอย่างมีสติในการวางระดับการออกแบบเพื่อให้ใช้งานง่ายเรียบง่ายและชัดเจน แต่ประสบการณ์การใช้คอมพิวเตอร์ของตัวเองคืออะไรเช่น 80% Emacs เบราว์เซอร์ 15% และอีก 6% (มีข้อผิดพลาด 1%) .
Inaimathi

3

ฉันจะแนะนำ Java ในสถานการณ์ของคุณ

เหตุผล:

  • ถ้าคุณรู้ว่า. NET คุณจะค่อนข้างสบายใจกับ Java (C # ได้รับแรงบันดาลใจจาก Java และอนุสัญญาและแม้แต่ชื่อไลบรารี่ก็คล้ายกันมาก)
  • Java มีความสามารถ GUI ที่น่าประทับใจ (แม้ว่าจะไม่ได้รับการยอมรับอย่างกว้างขวาง) ชุดเครื่องมือ GUI ข้ามแพลตฟอร์มที่ดีที่สุดอยู่ในความคิดของฉัน Swing (ซึ่งข้ามแพลตฟอร์มทั้งหมดโดยมีรูปลักษณ์และความรู้สึกที่สอดคล้องกัน) และ SWT (ซึ่งยังใช้ควบคุมส่วนประกอบดั้งเดิมเช่นที่ใช้โดย Eclipse) JavaFX 2.0 นั้นดูมีแนวโน้มในอนาคต
  • มีเครื่องมือประเภท "ตัวสร้าง GUI" มากมายสำหรับทั้งคู่ (โดยทั่วไปจะเป็นปลั๊กอิน IDE สำหรับ Netbeans หรือ Eclipse)
  • อาจเป็นเรื่องของความชอบส่วนบุคคล แต่ฉันขอยืนยันว่า Netbeans หรือ Eclipse นั้นมี IDE โดยรวมที่ดีกว่า Visual Studio และมีความสามารถมากกว่าที่คุณเห็นสำหรับภาษาหรือแพลตฟอร์มอื่น ๆ
  • แพลตฟอร์ม / ระบบนิเวศของ Java เป็นสถานที่ที่ยอดเยี่ยมสำหรับการใช้งานทั่วไป - ห้องสมุดและเครื่องมือที่หลากหลายโดยเฉพาะถ้าคุณชอบโอเพ่นซอร์ส

หรือคุณอาจลองใช้ภาษา JVM นวัตกรรมใหม่อย่าง Scala หรือ Clojure หากคุณรู้สึกอยากผจญภัย .....


3
นอกจากนี้นักพัฒนา Java มีแนวโน้มที่จะขึ้นอยู่กับความเร็วในวิธีการที่เหมาะสมกับซอฟต์แวร์เขียนในขณะที่อีกหลาย ๆ คน .NET เพียงสะพายรหัสโดยไม่ใช้รูปแบบการออกแบบ, ของแข็ง, ฯลฯ
เวย์น Molina

-1

Python ทำงานได้ดีสำหรับ GUI คุณสามารถดู PyQt, PyGTK, WxPython และอื่น ๆ ที่ใช้สำหรับการพัฒนา GUI (ใน Linux) และกล่าวว่าเป็นข้ามแพลตฟอร์ม


-4

ค้นหาภาษาการเขียนโปรแกรมอื่น ๆ ที่ทำงานกับ. Net runtime เช่น IronRuby และ IronPython ถัดไปให้ตรวจสอบโครงการโมโน

ขั้นตอนเหล่านี้จะช่วยให้คุณออกจาก. net comfort zone และพัฒนาบน Linux จากจุดนี้มันเป็นการก้าวกระโดดเล็ก ๆ ไปสู่การพัฒนาแบบ UNIX อย่างเต็มรูปแบบ


5
-1 เพราะเขาระบุในคำถาม "ฉันไม่ต้องการไปกับ IronPython และ IronRuby"
Inaimathi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.