Hướng dẫn best languages to pair with python - ngôn ngữ tốt nhất để ghép nối với python

TL; DR: Nếu Python là ngôn ngữ chính của bạn, ngôn ngữ nào bạn sẽ đề xuất sử dụng làm ngôn ngữ thứ cấp, trong trường hợp Python không cắt nó? If Python is your main language, what language would you propose to use as secondary language, in case Python does not cut it?

EDIT: Tôi dường như đã tạo ấn tượng rằng đây là về hiệu suất. Nó cũng là nhiều hơn về việc mở rộng chân trời của tôi. Nhìn vào các vấn đề từ một quan điểm khác nhau. Nhưng đồng thời, có được kinh nghiệm trong một ngôn ngữ khác có thể có ích trong tương lai. Tôi cảm thấy đã khá thành thạo trong nhiều ngôn ngữ. Tôi đang tìm kiếm một điểm tập trung để xây dựng kinh nghiệm bằng cách thực hiện các dự án cá nhân trên đường đi làm hàng ngày của tôi! I seem to have given the impression that this is about performance. It is also more about broadening my horizon. Looking at problems from a different point of view. But at the same time, get experience in another language which might come in handy in the future. I feel already quite proficient in many languages. I am looking for a focus point to build up experience by doing personal projects on my daily commute!

Lịch sử nhanh chóng của tôi để đưa ra một chút bối cảnh bối cảnh: Tôi bắt đầu hành trình vào vùng đất phát triển ở tuổi trung niên bằng cách sử dụng "GFA-Basic", chuyển sang Delphi sau đó. Buổi biểu diễn "bán chuyên nghiệp" đầu tiên của tôi là một dự án PHP vào năm 1998. Thông qua chương trình giảng dạy đại học của tôi, tôi đã phát hiện ra một tình yêu dành cho Java. Đạt được công việc đầu tiên của tôi trong một chính quyền nơi tôi đã quản lý các ứng dụng cũ được viết bằng ngôn ngữ mơ hồ/phức tạp có tên là "blaise" và bảo trì PHP/Java/perl/c trên và tắt.

Tất cả trong khi học Python trong thời gian rảnh rỗi của tôi để xây dựng kinh nghiệm.

Tôi bỏ công việc đó cho một vai trò phát triển khách hàng tiềm năng trong một công ty lớn hơn. Họ chưa có bất kỳ nhà phát triển chuyên dụng nào, nhưng đang tìm cách xây dựng một đội ngũ phát triển trong nhà.

Kinh nghiệm của tôi với Python là rất tích cực, và mang lại kiến ​​thức và kinh nghiệm tồn tại trong nhóm mới, đó là sự phù hợp hoàn hảo. Kể từ khi tôi tham gia, nhóm đã phát triển và vẫn đang phát triển, và tất cả chúng ta đang ngày càng thành thạo hơn với Python.

Bây giờ, bạn có thể làm khá nhiều thứ bạn thích với Python. Điều duy nhất tôi có thể nghĩ đến ngay bây giờ, nơi Python có thể không phải là một lựa chọn tốt là ứng dụng mà bạn cần thực hiện đa luồng liên kết CPU. Hoặc nếu bạn cần một cái gì đó nhanh chóng. Có lẽ có những khu vực khác mà Python có thể không phù hợp.

Vì lý do đó, tôi nghĩ rằng thật tốt khi có ngôn ngữ thứ cấp trong vành đai công cụ của bạn nếu có nhu cầu.

Vấn đề của tôi là tôi đã không xây dựng bất kỳ lượng kinh nghiệm đáng kể nào trong một ngôn ngữ khác. Tôi có hầu hết kinh nghiệm của mình trong PHP với Java là một giây gần gũi và chỉ có một lượng kinh nghiệm tối thiểu với C. is that I have not built any considerable amount of experience in another language. I have most of my experience in PHP with Java being a close second, and only a minimal amount of experience with C.

Ngay bây giờ tôi không có ngay lập tức, nhưng tôi muốn xây dựng kinh nghiệm! Và tôi không biết chọn ngôn ngữ nào.I want to build experience! And I don't know what language to choose.

Gut của tôi bảo tôi đi cùng C. Nhưng có một vài ngôn ngữ khác đã khơi gợi sự quan tâm của tôi. Chủ yếu là đi và Haskell.

Cả hai dường như làm rất tốt [nghĩa là làm cho nó dễ dàng hơn, dễ bị lỗi hơn C] với đa luồng [điểm yếu của Python]. Nhưng tôi không có kinh nghiệm với một trong hai người. Tôi đã bắt đầu học Haskell, chỉ vì tôi nghĩ rằng đó là mô hình sẽ huấn luyện bộ não của tôi để xem xét các vấn đề từ một góc độ khác. Không nhất thiết phải đi "pro" với nó ... nhưng ai biết được. Tôi quyết định chọn Haskell qua Erlang và các ngôn ngữ chức năng khác vì hệ sinh thái và cộng đồng của nó.

Có rất nhiều ngôn ngữ khác hiện đang có xu hướng, như Rust, JavaScript & co.

Trong lịch sử tôi luôn thấy JS chỉ là ngôn ngữ tiện ích, bởi vì đó là điều duy nhất bạn có [và vẫn có] trong trình duyệt. Bây giờ ngày càng có nhiều sự phát triển xảy ra trong trình duyệt và Node.js đã tạo ra JS trên phía máy chủ mà bạn thực sự có thể sống cùng. Nhưng tôi nghĩ rằng một khi bạn thực hiện các nhà phát triển phía sau/phía máy chủ, có những lựa chọn tốt hơn JS.

Vì vậy, ... bạn sẽ đề xuất gì để chọn là ngôn ngữ thứ cấp?

Lưu ý: Mặc dù JavaScript không cần thiết cho trang web này, nhưng sự tương tác của bạn với nội dung sẽ bị hạn chế. Vui lòng bật JavaScript để có kinh nghiệm đầy đủ. While JavaScript is not essential for this website, your interaction with the content will be limited. Please turn JavaScript on for the full experience.

Dán tất cả cùng với python

Guido Van Rossum CNRI 1895 Preston White Drive Reston, VA 20191 Email:,
CNRI
1895 Preston White Drive
Reston, VA 20191
Email: ,

Giấy định vị cho Hội thảo OMG-DARPA-MCC về kiến ​​trúc phần mềm sáng tác ở Monterey, California, ngày 6 đến 8 tháng 1 năm 1998.Workshop on Compositional Software Architecture in Monterey, California, January 6-8, 1998.

Giới thiệu

Python là một ngôn ngữ kịch bản nâng cao đang được sử dụng thành công để dán các thành phần phần mềm lớn với nhau. Nó mở rộng nhiều nền tảng, sản phẩm phần mềm trung gian và miền ứng dụng. Python là một ngôn ngữ hướng đối tượng với các cấu trúc dữ liệu cấp cao, gõ động và ràng buộc động. Python đã có từ năm 1991 và có một cộng đồng người dùng rất tích cực. Để biết thêm thông tin, hãy xem trang web Python //www.python.org.

Giống như TCL, Python dễ dàng mở rộng với mã C/C ++/Java và dễ dàng nhúng trong các ứng dụng. Python thậm chí còn sử dụng TK, bộ công cụ GUI TCL, cho bộ công cụ GUI di động tiêu chuẩn thực tế. Tuy nhiên, không giống như TCL, Python hỗ trợ lập trình hướng đối tượng. Các lập trình viên Python có thể tạo các lớp, sử dụng nhiều phương thức kế thừa, xác định các phương thức, toán tử quá tải, v.v.

Điểm mạnh của Python

Về mặt cú pháp, mã Python trông giống như mã giả có thể thực thi. Phát triển chương trình sử dụng Python nhanh hơn 5-10 lần so với sử dụng C/C ++ và nhanh hơn 3-5 lần so với sử dụng Java. Trong nhiều trường hợp, một nguyên mẫu của một ứng dụng có thể được viết bằng Python mà không cần viết bất kỳ mã C/C ++/Java nào. Thông thường, nguyên mẫu đủ chức năng và hoạt động đủ tốt để được phân phối dưới dạng sản phẩm cuối cùng, tiết kiệm thời gian phát triển đáng kể. Những lần khác, nguyên mẫu có thể được dịch một phần hoặc toàn bộ thành C ++ hoặc Java-bản chất hướng đối tượng của Python làm cho bản dịch trở thành một quá trình đơn giản.

Cách tiếp cận tốt nhất thường là chỉ viết các phần quan trọng hiệu suất của ứng dụng trong C ++ hoặc Java và sử dụng Python cho tất cả các điều khiển và tùy chỉnh cấp cao hơn. Có một số giai thoại về các ứng dụng bắt đầu dưới dạng mã C ++ thuần túy mà Python được thêm vào làm ngôn ngữ mở rộng, trong mỗi phiên bản mới, tỷ lệ phần trăm của ứng dụng được viết bằng Python tăng lên, đồng thời tăng hiệu suất, chức năng và độ tin cậy tổng thể của đăng kí. .

Python có một sự hiện diện mạnh mẽ trên web. Nó phù hợp cho lập trình CGI [trên tất cả các nền tảng: Unix, Windows và Mac]; Có giao diện cho tất cả các cơ sở dữ liệu thương mại chính. Python có một thư viện giao diện với các giao thức internet và web chính và có bộ công cụ tạo và phân tích cú pháp HTML. Python là một ngôn ngữ thực hiện chính cho Infoseek khi chúng nhỏ hơn. Ít nhất một công ty [Sáng tạo kỹ thuật số] đang bán một bộ công cụ phụ của máy chủ bằng Python. Và cuối cùng, Python đã được sử dụng để triển khai trình duyệt web [Grail].

Python cũng được thể hiện tốt trong thế giới hệ thống phân tán. Đây là một trong những ngôn ngữ chính được hỗ trợ bởi ILU của Xerox PARC [thống nhất liên ngôn ngữ; hệ thống đối tượng phân tán tương thích CORBA] và nhiều ứng dụng phân tán đã được xây dựng trong Python bằng ILU. Python cũng được sử dụng bởi Dự án Hector tại Đại học Queensland, Úc.

Cuối cùng, Python được tích hợp tốt với các nền tảng Windows. Các chương trình Python có thể tương tác với các dịch vụ COM và DCOM và thậm chí có thể triển khai các dịch vụ COM và DCOM mới [không thể sử dụng Visual Basic!]. Python cũng có thể được sử dụng như một công cụ kịch bản trong kiến ​​trúc kịch bản đang hoạt động của Microsoft.

Sử dụng Python làm ngôn ngữ tích hợp

Liên quan đến chủ đề của hội thảo này, Python được sử dụng ở nhiều nơi như một ngôn ngữ tích hợp, được sử dụng để dán lại với nhau ["Steer"] các thành phần hiện có. Chiến lược ở đây là tạo các mô -đun mở rộng Python [được viết bằng C/C ++] tạo ra chức năng của các thành phần lớn được viết bằng C/C ++ có sẵn cho lập trình viên Python. Các mô -đun mở rộng ["keo"] được yêu cầu vì Python không thể gọi các hàm C/C ++ trực tiếp; Các tiện ích mở rộng keo chuyển đổi xử lý giữa các loại dữ liệu Python và các loại dữ liệu C/C ++ và kiểm tra lỗi, lỗi dịch trả về các giá trị thành ngoại lệ Python.

Tạo các tiện ích mở rộng keo được đơn giản hóa bởi sự tồn tại của Swig, trong đó đọc các tệp tiêu đề chứa các nguyên mẫu chức năng và phương thức và tự động tạo mã chuyển đổi loại và kiểm tra lỗi cần thiết. Trong các tình huống trong đó mã cơ bản [thường là mã C] không sử dụng mô hình hướng đối tượng, phần mở rộng keo có thể lần lượt được bọc trong mô-đun Python xác định hệ thống phân cấp lớp thích hợp, đồng thời ủy thác các hoạt động quan trọng hiệu suất cho mã C. .

Sử dụng Python, các ứng dụng tốt hơn có thể được phát triển vì các loại lập trình viên khác nhau có thể làm việc cùng nhau trong một dự án. Ví dụ, khi xây dựng một ứng dụng khoa học, các lập trình viên C/C ++ có thể thực hiện các thuật toán số hiệu quả, trong khi các nhà khoa học trên cùng một dự án có thể viết các chương trình Python kiểm tra và sử dụng các thuật toán đó. Nhà khoa học không cần phải học một ngôn ngữ lập trình cấp thấp và lập trình viên C/C ++ không cần phải hiểu về khoa học liên quan.

Không có Python, một lượng lớn mã C/C ++ thường phải được viết chỉ để cung cấp một cơ chế đầu vào đủ linh hoạt để các nhà khoa học có thể cung cấp cho chương trình dữ liệu của mình, trong tất cả các biến thể cần thiết vì lý do thiết lập thử nghiệm [ví dụ]. Với Python, Python có thể được sử dụng để viết một cơ chế đầu vào linh hoạt hơn nhiều trong thời gian ngắn hơn nhiều, hoặc bản thân Python có thể là cơ chế đầu vào linh hoạt cuối cùng. Một ví dụ cực đoan, các phòng thí nghiệm quốc gia Lawrence Livermore đang sử dụng Python để cuối cùng thay thế một ngôn ngữ kịch bản [cơ sở] được phát triển tại nhà cho cùng một mục đích; Cơ sở bắt đầu như một cơ chế đầu vào đơn giản cho các chương trình Fortran và dần dần có được nhiều tính năng của ngôn ngữ kịch bản [biến, điều kiện, vòng lặp, quy trình, v.v.] với sự khó xử ngày càng tăng.

Bởi vì Python có các giao diện hiện có với rất nhiều thành phần khác nhau trong các miền ứng dụng rất khác nhau, Python là lý tưởng cho các tác vụ tích hợp kỳ quặc. Nó có thể liên kết một cơ sở dữ liệu thương mại với mã crunching số; Nó có thể thêm giao diện người dùng đồ họa vào một công cụ quản lý mạng; Nó có thể gửi email từ một ứng dụng thực tế ảo.

Sự kết luận

Python có thể hoàn thành một vai trò tích hợp quan trọng trong việc thiết kế các ứng dụng lớn với tuổi thọ dài. Nó cho phép đáp ứng nhanh các thay đổi trong các yêu cầu của người dùng yêu cầu điều chỉnh logic ứng dụng cấp cao hơn mà không thay đổi các thành phần cơ bản cơ bản. Nó cũng cho phép điều chỉnh nhanh ứng dụng đối với các thay đổi trong các thành phần cơ bản.

Phần kết: Tích hợp Python và Java

Một triển khai Python mới được viết bằng Java thuần túy 100%, được đặt tên là JPython, hiện đang được phát triển; Bản phát hành Alpha có sẵn để đánh giá. Jpython cung cấp kịch bản liền mạch cho Java. Đây là một triển khai đầy đủ của ngôn ngữ Python và thư viện tiêu chuẩn, thêm quyền truy cập trực tiếp vào vũ trụ của các lớp Java. Mã Java cũng có thể sử dụng các lớp Python - ví dụ, điều này rất quan trọng đối với các cuộc gọi lại.

Lực đẩy chính cho JPython là nó làm cho Java những gì Python đã làm cho C và C ++: trình bày các lập trình viên có nhiều lựa chọn hơn trong sự đánh đổi giữa thời gian phát triển và thời gian thực hiện, bằng cách cung cấp một sự thay thế năng động hơn, biểu cảm hơn. Sự tích hợp của Jpython với Java vượt trội hơn so với tích hợp của Python với C/C ++: Do API phản xạ của Java, JPython có thể sử dụng các lớp Java tùy ý mà không cần trợ giúp của trình tạo trình bao bọc như Swig. .

Ngôn ngữ nào diễn ra tốt đẹp với Python?

Bạn có thể viết mã Python bằng ngôn ngữ C hoặc C ++.Trên thực tế, bạn có thể sử dụng SWIG để xây dựng giao diện Python tự nhiên cho mã C hoặc C ++ của bạn.Ngoài ra, bạn có thể dễ dàng tích hợp Python với hai ngôn ngữ này.Các mô-đun Python như TK trong Python, Wxpython, PyQT5 và PyQT4 cho phép bạn tạo các ứng dụng dựa trên GUI với Python.C or C++ language. In fact, you can use SWIG to build a natural Python interface for your C or C++ code. In addition, you can easily integrate Python with these two languages. Python modules such as Tk in Python, wxPython, PyQt5, and PyQt4 enable you to create GUI-based apps with Python.

Python và C ++ có phải là sự kết hợp tốt không?

Cố gắng học bất kỳ ngôn ngữ lập trình nào phải mất nhiều năm làm việc chăm chỉ và cống hiến.Cố gắng tăng gấp đôi khối lượng công việc đó có khả năng khiến bạn bị đốt cháy và nản lòng.Tuy nhiên, nếu bạn quyết định học hai ngôn ngữ cùng một lúc, C ++ và Python thực sự là một sự kết hợp tuyệt vời.if you do decide to learn two languages at the same time, C++ and Python are actually a great combination.

Java và Python có phải là một combo tốt không?

Vì những lý do này, Python phù hợp hơn nhiều như ngôn ngữ "keo", trong khi Java được đặc trưng tốt hơn là ngôn ngữ thực hiện cấp thấp.Trong thực tế, hai người cùng nhau tạo nên một sự kết hợp tuyệt vời.the two together make an excellent combination.

Bài Viết Liên Quan

Chủ Đề