Lịch sử văn hóa ngôn ngữ của người Viking có vai trò gì với một nền tảng?


15

Gần đây tôi đã vấp phải điều nàybài viết từ một vài năm trước. Nó lập luận rằng sự khác biệt đáng kể trong văn hóa xung quanh VB và C #, chứ không phải sự khác biệt thực sự trong ngôn ngữ, góp phần làm cho các lập trình viên C # nói chung tài năng hơn các lập trình viên VB. Rõ ràng, điều đó đã gây ra rất nhiều cuộc chiến nảy lửa và câu hỏi liệu C # ers hay VBers là người ngu ngốc sẽ không bao giờ được trả lời. Điều đó đang được nói, các nhà văn tuyên bố rằng văn hóa xung quanh một nền tảng cụ thể đóng góp cho chất lượng của đội vẫn có thể hợp lý. Ví dụ, mặc dù Java hiệu quả hơn để phát triển ứng dụng vào lúc này, một nhóm các nhà phát triển Google Go dường như có tầm cỡ trung bình cao hơn một nhóm các nhà phát triển Java, vì để học Go, một nhà phát triển có thể có trở thành một người chấp nhận siêu sớm và một kẻ chuyên phá án biên giới. Vì vậy, một cách ngắn gọn,Làm thế nào để văn hóa vượt qua nền tảng này hay nền tảng khác ảnh hưởng đến chất lượng của nhà phát triển trung bình trên nền tảng đó, nếu có?


Đây có phải là một ngày của C # so với VB.NET không?

@ DeveloperArt- Đó không phải là ý định của tôi. Trong thực tế, câu hỏi tôi đã có là thú vị do thực tế là bài báo có vẻ rất ngày nay, nhưng khái niệm này có thể được cứu vãn. Bài báo làm cho có vẻ như các nhà phát triển C # đều là những thiên tài. Tôi là một, vì vậy tôi biết rằng tất cả chúng ta đều có thể cẩu thả khi tâm trạng ập đến.
Morgan Herlocker

1
@ Nghệ thuật phát triển: Tôi đã đọc bài báo đó vào ngày hôm qua, và tôi khá chắc chắn rằng đó là một liên kết được đăng trong một câu trả lời ở đây đã đưa tôi đến đó. Có lẽ đó là cách mà Giáo sư Plum cũng đánh nó - một câu hỏi C # so với VB.NET dẫn đến một câu hỏi khác. :-)
Carson63000

Câu trả lời:


8

Câu hỏi thực sự thú vị. Ý kiến ​​cá nhân của tôi là nó được hỏi quá thường xuyên và thực sự không có nước.

Script kiddies (và các công ty thuê họ) để ngôn ngữ của sự lựa chọn quyết định vị thế của họ trong số các tiếng vang của "lập trình viên". Các kỹ sư giỏi không thể quan tâm ít đến ngôn ngữ lựa chọn, mà tập trung giải quyết các vấn đề nhất định theo cách tối ưu nhất (rõ ràng tối ưu là một tuyên bố chung và có thể được áp dụng cho nhiều yếu tố khác nhau). Cho dù đây là C #, VB, C ++, Python hay lắp ráp bằng tay, điều đó không quan trọng vì có lợi ích rõ ràng khi sử dụng công nghệ đó để giải quyết vấn đề.

Vì vậy, trong ngắn hạn, tôi nghĩ rằng sẽ có giá trị hơn khi xem xét sự phức tạp của các vấn đề mà người ta giải quyết một cách thường xuyên, trái ngược với ngôn ngữ họ sử dụng để giải quyết chúng.

Chỉ hai xu của tôi về chủ đề này :)


2
+1: Hơn nữa, ý tưởng rằng có một nền văn hóa VB bằng cách nào đó vượt qua ranh giới công ty là lố bịch. Làm thế nào văn hóa này sẽ bảo tồn chính nó? Cuộc họp bí mật giữa các lập trình viên VB ngoài công việc? Một "liên minh" hay "bang hội" của các lập trình viên VB để thực thi "văn hóa" này? Trải qua 30 năm nóng nảy trong số 100 cửa hàng CNTT tôi có thể nói rằng văn hóa duy nhất tôi từng thấy là hoàn toàn cục bộ. Lựa chọn ngôn ngữ không tạo ra văn hóa "khác" này được tham chiếu trong câu hỏi.
S.Lott

1
Hấp dẫn. Nếu bạn +1, hãy tự hỏi ai đã bỏ phiếu và tại sao: P
Demian Brecht

1
@ S.Lott: Tôi đã sửa chữa rồi (phải yêu sản phẩm phụ của các giả định;)). Nhiều lần hơn là không, tôi đã nhận được các thông báo về các chủ đề như những chủ đề này mà không thực sự nhận được bất kỳ phản hồi nào, đôi khi có thể có giá trị và cung cấp cho tôi thông tin mà trước đây tôi đã quên :)
Demian Brecht

1
@prof: Tự động hóa có thực sự làm cho một người kém hơn, hoặc bạn sẽ nghĩ vượt trội hơn bởi vì họ hiểu những phím tắt nào họ có thể thực hiện để đạt được cùng một đầu ra, nhưng hiệu quả hơn? :) Tất nhiên, đây là quá khái quát và gần như không thể trả lời chính xác. Tôi thuộc loại hàng rào về việc các lập trình viên Go trở nên đam mê hơn. Bạn vẫn có thể tìm thấy những người đam mê Fortran. Nó sẽ , tuy nhiên, dẫn tôi để tin rằng các lập trình viên Go là đam mê thêm về mới công nghệ và thực hành, đó là một điều tốt IMHO :)
Demian Brecht

1
@Prof Plum: "lựa chọn nền tảng / ngôn ngữ không liên quan gì đến chất lượng trung bình của nhà phát triển". Chính xác. Làm thế nào mà có thể khác được? Hơn bất cứ điều gì, văn hóa của tổ chức quan trọng. Các lập trình viên Google Go - chính họ - chỉ là người. Các tổ chức giới hạn mọi người VB hoặc khuyến khích họ sử dụng Go. Mọi người là tất cả mọi người.
S.Lott

4

Chất lượng mã được phát triển trong mỗi ngôn ngữ này dựa trên những triết lý cơ bản này và ít hơn dựa trên các nhà phát triển riêng lẻ

Mỗi ngôn ngữ không có một nền văn hóa xung quanh nó, bởi vì mỗi ngôn ngữ được phát triển cho một lý do bởi một ai đó với một chương trình nghị sự và một triết lý cơ bản tại sao ngôn ngữ của họ sẽ là tốt hơn ở một cái gì đó hơn là những gì đã tồn tại vào thời điểm đó đã được tạo ra.

Giống như các tôn giáo, các ngôn ngữ lập trình có xu hướng thu hút những người đã có cùng khuynh hướng với các nguyên tắc và triết lý cốt lõi của người tạo ra ngôn ngữ.

Ví dụ về chất lượng cảm nhận của các giải pháp

Trong một trại của Microsoft, bạn có:

Triết lý của C # là nó hoàn toàn hướng đến đối tượng, thúc đẩy các thành ngữ hiện đại hơn và đòi hỏi nhiều kiến ​​thức hơn để làm điều đó một cách chính xác và do đó sẽ cung cấp các giải pháp chất lượng cao hơn. Đây là những gì thu hút mọi người đến với nó trên VB.

Trong trại khác của Microsoft:

Triết lý của VB là tôi có thể nhanh chóng và với ít kiến ​​thức hoặc nỗ lực xây dựng thứ gì đó sẽ cho phép ai đó nhấp vào nút và làm điều gì đó hữu ích và có giá trị kinh doanh, làm thế nào nó không quá quan trọng. Đây là những gì thu hút mọi người đến với nó trên C #.

Dưới đây là một số ngôn ngữ và má có ngôn ngữ và triết lý của họ:

Người Perl có xu hướng quan tâm đến điều ngược lại chính xác mà người Python quan tâm.

Người Java quan tâm đến việc kiếm tiền.

Các ngôn ngữ JVM (Groovy, Scala) quan tâm đến JMV chứ không phải về ngôn ngữ Java.

Tất cả các ngôn ngữ cụ thể của Microsoft (VB, C #, F #, C ++ được quản lý) có xu hướng quan tâm đến việc kiếm tiền trên Windows.

Người Erlang quan tâm đến những thứ mà mọi người khác không cần quan tâm và không đánh giá cao những gì họ không biết.

Người Lisp không quan tâm đến những gì người khác nghĩ rằng họ quan tâm.

Những gì các nhóm này quan tâm về hình dạng ngôn ngữ, sự phát triển và cộng đồng của nó.

Triết lý thay đổi theo kinh nghiệm và nhu cầu

Tôi đã áp dụng ASM và BASIC bởi vì vào năm 1983 , đó là tất cả những gì bạn có. Tôi muốn viết trò chơi và bản demo, đó là những công cụ để làm điều đó. Chủ yếu là ASM cho các bản demo.

Tôi đã chấp nhận C và sau đó là C ++ khi đó là cách duy nhất để viết những thứ như kết xuất 3D và hầu hết mọi thứ khác là không gian và thời gian quan trọng. Đó không phải là ASM nên tôi đã học được.

Tôi đã thông qua VB để kiếm tiền, đó là điều gần gũi nhất với môi trường phát triển Scala, Giám đốc và CanDo mà tôi đã quen thuộc trên Amiga. Tôi đồng ý với triết lý phát triển nhanh chóng

Tôi đã áp dụng Java từ sớm để kiếm tiền tốt hơn. Tôi đã kiếm tiền với VB cho đến năm 1999 và bỏ lại nó khi Java 1.2 ổn định và trưởng thành và lúc đó web đã hoàn toàn khởi động, tôi đã có 4 năm kinh nghiệm về Java khi mọi người thực sự bắt đầu nghiêm túc. Tôi đã đồng ý với việc viết một lần, chạybất cứ đâu trong đó mã của tôi càng chạy nhiều thì càng dễ bán nó. triết học.

Tôi đã chấp nhận Python muộn trong dòng thời gian của nó, năm 2005 vì nó đã gãi một vết ngứa mà Java không có. Tôi cần nhanh chóng viết mã để sử dụng một số thư viện chỉ có sẵn trong C và tôi cũng cần thực hiện việc tạo mẫu dịch vụ web nhanh chóng Python nhanh hơn và ít mã hơn để làm điều tương tự trong Java. Đôi khi đã đi vào sản xuất khi Java một số người ở lại Python, rất nhiều thứ không bao giờ được đưa vào tự nhiên. Tôi đồng ý với pin của nó bao gồm, các triết lý thành ngữ duy nhất cũng như những người khác.

Tôi đã chấp nhận Lua khi tôi cần đưa một công cụ viết kịch bản nhẹ vào các chương trình C ++ và Java của mình. Đây là cách trước khi hỗ trợ JSR233 trong Java. Tôi đồng ý với việc nhúng một ngôn ngữ kịch bản đầy đủ tính năng dễ sử dụng nên là triết lý Lua đơn giản.

Tôi đã áp dụng Erlang vào năm 2006 khi tôi bắt đầu cần khả năng mở rộng lớn và thực thi đa lõi tương đối không đau đối với các vấn đề song song cao và có thực thi đa nền tảng. ** Tôi đồng ý với trạng thái không chia sẻ, thông điệp truyền qua, triết lý trạng thái bất biến. * 8

Tôi đã áp dụng Objective-C khi tôi bắt đầu cần xây dựng các ứng dụng OSX và iOS. Tôi đồng ý với việc bổ sung quyền của Định hướng đối tượng vào C để làm cho triết lý tốt hơn . Ngoài ra để kiếm tiền tốt hơn.

Tôi đã chấp nhận JavaScript chính thức vào năm 2009 vì tôi đồng ý với triết lý CouchDB và nó sử dụng JavaScript. Vẫn không thích JavaScript khi tôi phải xử lý DOM.

Tôi vẫn chưa chính thức nhận nuôi Lisp, nhưng cuối cùng tôi cũng sẽ đến! Tôi đồng ý với những người không biết lisp bị kết án tái phát minh triết lý này.


0

Một câu hỏi thú vị thực sự. Đó là một trong những nơi bạn hiểu câu trả lời ở cấp độ tiềm thức nhưng cố gắng đưa nó vào lời nói.

Nó được xem tốt nhất như một vòng lặp nhân quả.

Văn hóa chịu trách nhiệm cho thành phần "dân tộc" của các nhà phát triển thu hút nền tảng. Thành phần đó đến lượt nó xác định phẩm chất của lập trình viên "trung bình". Chất lượng của các nhà phát triển hiện đang sử dụng nền tảng ảnh hưởng đến văn hóa hoặc nhận thức của nó bên ngoài, do đó có ảnh hưởng đến các nhà phát triển đến với nền tảng hoặc rời bỏ nó. Giá trị của "chất lượng" thay đổi như là kết quả.

Tôi đã cố gắng đưa ra các quy tắc cụ thể nhưng tôi cảm thấy khó khái quát hóa. Chúng ta cần điều tra riêng từng nền tảng. Một vài quan sát tôi đã thực hiện:

  • Tốc độ mà một nền tảng cụ thể được phát triển, mở rộng, cải thiện có mối tương quan trực tiếp với chất lượng của các nhà phát triển. Dòng chảy liên tục của các tính năng và công cụ sáng bóng mới thu hút các nhà phát triển nhiệt tình (trung bình có khả năng làm việc chất lượng cao hơn) và đẩy lùi tâm trí bảo thủ, những người bị kích thích bởi nỗ lực học hỏi không ngừng.

  • Càng ít giới hạn mà một nền tảng cung cấp thậm chí với chi phí rủi ro cao hơn để tự bắn vào chân mình cũng thu hút những tâm trí thử nghiệm nhiệt tình

  • Những điều phức tạp hơn là những gì người ta cần phải hiểu và nắm vững để sử dụng nền tảng thu hút đồng đều các cá nhân được giải quyết và tránh xa các nhà phát triển lười biếng


Làm thế nào để văn hóa này vượt qua ranh giới công ty?
S.Lott

1
@Lott Công nghệ hầu như luôn luôn vượt qua ranh giới văn hóa. Có sự phân chia văn hóa lớn giữa những người dùng hệ điều hành khác nhau. Rất nhiều nhà thiết kế đồ họa và kỹ sư âm thanh mà tôi biết sẽ nghĩ rằng đó là một công cụ thỏa thuận để đến một công ty sử dụng bất cứ thứ gì trừ Mac. Mac đã thúc đẩy một nền văn hóa xung quanh hai nhóm nói riêng hoàn toàn hữu hình. Ngôn ngữ lập trình là các công cụ giống như Photoshop và GIMP, vì vậy không có gì ngạc nhiên khi chúng có các nền văn hóa được xây dựng xung quanh chúng. Nếu họ không, thì chúng ta sẽ không có chiến tranh lửa.
Morgan Herlocker

@Prof Plum: Các ví dụ của bạn không ánh xạ tới "văn hóa" dựa trên các công cụ. Ví dụ của bạn là hoàn toàn ngược lại. Văn hóa thực tế (kỹ sư âm thanh) chọn các công cụ phổ biến. Không phải tất cả người dùng Logic Pro đều bị buộc phải trở thành kỹ sư âm thanh vì bằng cách nào đó Logic Pro tạo ra văn hóa. Tôi nghĩ rằng các ví dụ trong nhận xét của bạn (cùng một công việc -> các công cụ tương tự) là bằng chứng tuyệt vời cho thấy không có "lịch sử văn hóa ngôn ngữ". Thay vào đó, có văn hóa trường hợp sử dụng chung hoặc văn hóa công việc của người dùng cuối chung.
S.Lott
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.