Tôi sẽ ném câu trả lời của mình vào vòng (mặc dù tôi tin rằng tất cả những điều này cũng tốt).
Câu trả lời cơ bản nhất bạn có thể nhận được là tất cả về triết học.
Trong thế giới của Microsoft, đó là một chút tôn giáo - Bạn có các vị thần trên Mt. Redmond, người phải được thỉnh cầu nếu bạn muốn thực hiện bất cứ điều gì. Đôi khi họ sẽ lắng nghe, những lần khác, sự hy sinh và lời cầu xin của bạn sẽ rơi vào tai người điếc. Có lẽ họ đã ra ngoài săn bắn. Microsoft kiểm soát toàn bộ hệ sinh thái - họ sở hữu HĐH, họ sở hữu IDE và họ kết hợp chúng theo những cách có thể không phù hợp để nói về mạng SE. Ngay cả trong các phần IDE được liên kết chặt chẽ - nó có thể được gọi là tích hợpnhưng tôi nghĩ rằng kết hợp là chính xác hơn. Nếu bạn muốn thay đổi mọi thứ một chút, Gates cấm rằng bạn muốn thay đổi một cái gì đó theo cách mà các nhà thiết kế của Windows hoặc Visual Studio không cho phép rõ ràng. Và sau đó sử dụng các công nghệ như IE và IIS, máy chủ Microsoft và MS SQL Server và Office ... và mọi thứ đều là một gia đình hạnh phúc lớn. Nhưng nếu bạn muốn để lại một phần của gia đình phía sau? rùng mình !
Mặt khác, bạn có Linux, kế thừa từ triết lý Unix rằng mỗi phần phải chịu trách nhiệm cho phạm vi trách nhiệm nhỏ của riêng mình. Nó nên làm một việc, và làm tốt. Và tốt nhất, giao tiếp nên xảy ra bằng cách của chuỗi văn bản. Như những người khác đã chỉ ra, sed
, awk
, grep
vv là những ví dụ hoàn hảo về điều này. Họ làm một việc mà họ được thiết kế để làm, và họ làm điều đó rất tốt. Nếu bạn cần làm hai việc, thì bạn kết hợp hai công cụ. Đó là rất dễ dàng để làm.
Bởi vì sed
mong đợi không có gì ngoài đầu vào đến sẽ là văn bản, điều đó có nghĩa là bất cứ điều gì có thể tạo ra văn bản không phải phát minh lại bánh xe. Họ chỉ có thể sử dụng sed
. Và bởi vì sed
sản xuất văn bản, bất cứ điều gì có thể đọc văn bản có thể sử dụng đầu ra từ sed
. Văn bản rất phổ biến (có một số trường hợp ngoại lệ cho điều này) và rất dễ dàng để kết hợp các loại điều này với nhau.
Việc kết hợp chúng không chỉ dễ dàng mà còn rất dễ dàng để phân tách chúng - nếu tôi quyết định rằng tôi không còn cần phải chỉnh sửa luồng, nhưng tôi muốn lọc kết quả, thay vì chuyển văn bản của mình sang sed
, tôi có thể chuyển nó để grep
thay thế.
Bây giờ, đây là triết lý cơ bản đằng sau sự phát triển trong môi trường Linux - vì vậy ngay cả khi bạn đi lên từ đó, nhiều công cụ cung cấp các loại giao diện tương tự. Chúng cho phép bạn phân tách chúng thành các phần hoặc giao diện với chúng thông qua dòng lệnh hoặc cổng hoặc HTTP.
Và ngay cả khi đó không phải là trường hợp, bạn cũng có phần mềm nguồn mở. Hầu hết (nếu không phải tất cả) phần mềm trên nền tảng Linux là nguồn mở. Vì vậy, nếu bạn không thích cách viết, bạn hoàn toàn có thể tự thay đổi phần mềm. Điều này là vô cùng trao quyền. Không thể phá vỡ IDE đó theo cách bạn muốn? Hoặc thực hiện các thay đổi và gửi chúng ngược dòng, hoặc rẽ nhánh dự án. Không chắc chắn tại sao một cái gì đó hành xử theo cách nó làm? Sử dụng nguồn, Luke! Cần để có thể tự động hóa một cái gì đó thông qua dòng lệnh? Hack vào dự án và theo dõi các thay đổi của bạn. Gặp lỗi hay vấn đề bảo mật? Hãy đoán xem - bạn có thể tự khắc phục điều đó, bạn không cần phải đợi SP3.432vb89234.startdate1eQ xuất hiện.
Bạn có thể kết hợp các công cụ mà bạn muốn và bạn cần. Và nếu có điều gì đó cản trở bạn, bạn có thể thay đổi 100%. Ngay cả khi bạn không có khả năng, bạn chắc chắn có thể trả tiền cho ai đó để phát triển sự thay đổi đó - hoặc thậm chí đề xuất nó cho người khác có bí quyết.
Lý do điều này tốt hơn cho lập trình là vì khi bạn gặp phải ma sát , bạn có thể loại bỏ nó khỏi quy trình làm việc của mình. Bởi vì phát triển là khó khăn, có rất nhiều điều bạn phải nghĩ để trở thành một lập trình viên thành công, và bạn càng phải suy nghĩ về những điều khó khăn hơn khi nghĩ về những điều khác .
Loại bỏ ma sát là chìa khóa.
Vì vậy, nếu tôn giáo hệ sinh thái của Microsoft là nơi bạn cảm thấy như ở nhà và bạn thích các công cụ đến mức nó không cung cấp cho bạn nhiều / bất kỳ ma sát nào ... tốt, có lẽ nó vẫn ổn.
Nhưng nếu bạn không phù hợp với Microsoft Mold (tm), đang chờ cấp bằng sáng chế, thì bạn sẽ gặp phải ma sát. Phát triển sẽ là một nỗi đau. Mỗi lần bạn ước mình có thể làm gì đó, nhưng không thể, điều đó sẽ rút cạn tài nguyên nhận thức quý giá. Và nếu đó là trường hợp, thì môi trường phát triển Linux có lẽ là dành cho bạn.
vim
thích theo ý thích của họ. Đây là một lĩnh vực rất chủ quan! Nhiều người sử dụng IDE trên Linux, vì vậy bạn đang kết hợp nhiều thứ ở đây.