2009-02-27 34 views
6

Tôi đang dự tính chuyển sang Linux để phát triển C++, đến từ môi trường Windows. Đây có phải là một ý tưởng tồi không? Nơi làm việc của tôi sử dụng Windows và Visual Studio cho các dự án của chúng tôi (một số C# và java nữa, nhưng bây giờ tôi chỉ phát triển trong C++). Nếu họ quyết định đưa tôi vào một dự án C#, liệu sự phát triển vẫn có thể (mono?)? Những khó khăn trong loại chuyển tiếp này là gì?Chuyển sang Linux để phát triển Windows, ý tưởng tồi?

Tôi có gặp sự cố khi làm việc trên các dự án của họ và ngược lại không? Tôi đọc ở đâu đó rằng sẽ có vấn đề với các tiêu đề được biên dịch sẵn và chúng tôi sử dụng chúng, và mã hóa (tab/dấu cách, kết thúc dòng, v.v.) ..

Nếu việc chuyển đổi này không quá khó, tôi có bắt đầu không IDE? vim + làm?

Cảm ơn.

Bằng cách này, chúng ta thực hiện chủ yếu là Windows phần mềm ..


EDIT: Thanks guys, tôi đoán có ý nghĩa ..

Trả lời

25

Đó là một ý tưởng tồi. Tôi có thể thấy ít nhất hai lý do:

  • Phát triển trên cùng một hệ điều hành bạn viết phần mềm cho
  • Visual Studio đá
+0

Trong khi tôi chắc chắn sẽ bỏ lỡ toolchain GNU và sức mạnh tuyệt vời phi thường của * nix biên tập viên, nó không có ý nghĩa gì không sử dụng VS trong Windows. –

+0

Đồng ý. Hoàn toàn. – Klaim

+0

Đúng cho VS, khi phát triển trên cùng một hệ điều hành ... Vâng, và phát triển nội dung cho S60 hoặc WM trên điện thoại di động? – vartec

8

Stick với Windows nếu bạn đang phát triển cho C++ và C#. Trình gỡ rối Visual Studio hoàn toàn xuất sắc và dường như hầu hết các IDE Linux không thể so sánh được (ngoại trừ Eclipse cho các công cụ Java). Ngoài ra, cơ hội là bạn sẽ sử dụng trình biên dịch khác nếu bạn đang sử dụng Linux và điều đó có thể gây ra các lỗi lạ thực sự là.

+0

Cám ơn những lời khuyên .. – krebstar

+0

Tôi chỉ muốn chỉ ra rằng gỡ lỗi trên VS - hoặc bất cứ điều gì khác cho rằng vấn đề - không có gì trên DDD. Chỉ đơn giản là không có so sánh để gỡ lỗi. Phải thừa nhận rằng, nó sử dụng bộ công cụ lỗi thời (Motif) và không có cổng Win "thực" (sử dụng Cygwin và máy chủ X). – supercheetah

2

Không phải là một ý tưởng rất tốt vì hỗ trợ cho Windows Forms trong đơn chưa hoàn tất. Các nhà phát triển Linux C# thường sử dụng GtkSharp cho GUI, điều này sẽ thêm một sự phụ thuộc vào ứng dụng của bạn và hoàn toàn khác với Windows Forms. Nhưng GtkSharp cũng không tệ. Tôi đặc biệt thích các tính năng đóng gói hộp của GTK bởi vì nó làm cho điều khiển của tôi (err, widget) dễ dàng hơn nhiều để thay đổi kích cỡ đúng cách và tự động loại bỏ tất cả các vấn đề DPI màn hình.

Nhưng cũng có khả năng mã hiện tại của bạn có thể có các phụ thuộc khác không có trong Linux, đặc biệt là mã không được quản lý được gọi với P/Invoke. Nếu đó là trường hợp, làm phát triển trên Linux có thể là không thể.

+0

Mkay .. Cảm ơn .. Tôi không thực sự là một nhà phát triển C#, chỉ nghĩ về phía trước trong trường hợp họ ném một cái gì đó ở tôi .. :) – krebstar

1

tôi đã chuyển sang thực hiện phát triển web trên Linux, đây là những gì tôi đã đích thân tìm thấy

Để làm được những điều đúng mà không gây ra vấn đề cuối cùng (sử dụng phần mềm cụ thể) Tôi cần phải có một máy ảo. Rượu là không đủ xa cùng được ổn định cho phần mềm tôi cần

Ngoài ra cho các nhu cầu cụ thể của tôi, chỉ toàn bộ "hệ thống Font" bị khác nhau đã gây ra rất nhiều vấn đề kịch bản b/w cửa sổ và unix/linux

Tôi sẽ chuyển trở lại để giành chiến thắng. Tôi yêu LINUX, nhưng trong một lĩnh vực chuyên ngành mà phần lớn các khách hàng của tôi sử dụng các cửa sổ và IE .... Tôi cần phải chạy với những gì họ có ... Tôi nghĩ rằng đây là thông minh cho năng suất

(ý kiến ​​cá nhân, không uỷ quyền từ Thiên Chúa)

tim

+0

Cảm ơn .. Chúng tôi làm cho các ứng dụng bản địa .. – krebstar

1

Tôi đề nghị gắn bó với cửa sổ. Windows rất tuyệt cho việc phát triển các cửa sổ. Linux là nơi bạn có thể viết công cụ đa nền tảng/công cụ cụ thể của Linux (nếu bạn muốn). Tôi đã thử Mono để học C#, nó làm việc cho các ví dụ đồ chơi, nhưng không phải cho một số phần của .NET. Tôi quay lại cửa sổ. Tôi không thể tưởng tượng nó là một ý tưởng tốt để chuyển sang Linux. Tôi không có ý định phạm tội, đây chỉ là ý kiến ​​của tôi.

+0

Không vi phạm tội được thực hiện :) Chỉ muốn một số lời khuyên từ những người đã thử nó trước :) Cảm ơn – krebstar

4

Tôi là một người dùng Mac (cựu chàng FreeBSD), vì vậy tôi hiểu cảm giác ruột của bạn. Tóm lại: bạn sẽ muốn sử dụng Visual Studio. Đó là công cụ tốt nhất dành cho các dự án C# của bạn. Nó cũng là công cụ tốt nhất cho lập trình C++ của Windows. Ngay cả khi nó không được, thử nghiệm của bạn sẽ bị ảnh hưởng nếu bạn không chạy hệ điều hành nó sẽ chạy trên.

Trên mặt tươi sáng, luôn luôn làm phát triển của bạn trong một máy ảo. Đặc biệt là trên Windows. Sử dụng điều khiển nguồn và chụp nhanh các ảnh chụp nhanh của máy ảo của bạn. Khi bạn đang làm điều này, nó không quan trọng nếu bạn chạy Linux hoặc OS X trên máy chủ của bạn.

Cheers

Nik

+1

Xin chào, bạn có thể làm rõ? Tôi nên sử dụng loại máy ảo nào?Tôi sử dụng kiểm soát nguồn cho bản thân mình, bởi vì nhóm không. – krebstar

+0

Khi bạn đang phát triển, tôi không nghĩ rằng nó quan trọng. Tôi sử dụng Paralells ở nhà, VMWare tại nơi làm việc, nhưng bạn cũng có thể sử dụng VirtualBox của Sun. Tôi đã không thử những người khác, nhưng để phát triển tôi chắc chắn bất cứ điều gì là tốt. Bạn sẽ không yêu cầu khả năng chơi game 3D :-) –

2

Tôi hiện phát triển trên cả Windows và Linux. Tôi tìm thấy nó khá hữu ích để biên dịch cùng một mã theo hai (hoặc có thể nhiều hơn) nền tảng, như bạn có thể tìm thấy một số lỗi mã hóa nhờ vc + + và một số khác nhờ gcc. Tất nhiên, nền tảng quan trọng nhất là nền tảng bạn đang phát triển. Nếu ứng dụng của bạn sẽ chạy trên các cửa sổ, hãy phát triển nó trên cùng một nền tảng và chỉ khi bạn có thể phân bổ nhiều tài nguyên hơn, hãy cố gắng chuyển nó lên Linux hoặc khác. Dù sao, đó là một thói quen tốt để suy nghĩ về tính di động trong phát triển, nó ngụ ý sử dụng dung dịch chuẩn càng nhiều càng tốt

1

Nếu bạn đang bỏ lỡ rất nhiều Linux - và bạn cần phải ở lại trên một hộp Windows để tương tác với nhóm của bạn VÀ ứng dụng công việc của bạn - cài đặt CygwinGNU Win32 tools.

+0

Tôi đã có một số công cụ GNUwin32, tôi thấy Cygwin là .. quirky, nhưng tôi đã không sử dụng nó nhiều anyway, vì vậy ý ​​kiến ​​của tôi không tính :) Tôi làm như Linux mặc dù, tôi cố gắng sử dụng nó nhiều như tôi có thể trên EEE của tôi .. :) – krebstar

0

Nếu bạn bán hoàn toàn trên Linux, VMWare rất tốt để chạy máy ảo và nếu bạn biên dịch chương trình Linux/đa nền tảng bằng chuỗi công cụ mingw, thêm một phụ thuộc duy nhất, có thể tĩnh, bạn không nên t nhận được bất kỳ lỗi cửa sổ nào.

Các vấn đề liên quan