Các yêu cầu bạn đã đặt thực sự đặt Fortran lên đầu danh sách, cho các vấn đề như thế này:
a) crunching
b) paralellable
c) nó đã và vẫn là ngôn ngữ thực tế được dạy bên ngoài các nghiên cứu cs (cho các kỹ sư không phải là lập trình viên chuyên nghiệp).
d) có sự hậu thuẫn đáng kinh ngạc (!), các nhà biên dịch cấp độ ngành công nghiệp, không có nhà cung cấp nào có dấu hiệu từ bỏ chi nhánh đó ít nhất. Một trong những đại diện của Intel cách đây không lâu đã tiết lộ rằng doanh số bán các sản phẩm Fortran của họ cao hơn bất kỳ công cụ phát triển nào khác.
Nó cũng là một ngôn ngữ rất dễ để chọn. Tôi không đồng ý rằng cần có thời gian để giúp các trợ lý nghiên cứu tăng tốc. Sách giáo khoa đầu tiên của tôi về nó không có nhiều hơn, ồ tôi không biết, 30 trang (?) Của văn bản in thưa thớt. Đó là một ngôn ngữ mà sau khi học 10 từ khóa, người ta có thể viết các chương trình cỡ trung bình. Tôi dám nói rằng 30 trang được viết bằng văn bản Word mặc định sẽ tạo ra một "hướng dẫn Fortran" toàn diện hơn cho hầu hết người dùng.
Nếu bạn quan tâm đến CUDA, bạn có thể muốn kiểm tra trình biên dịch của Tập đoàn Portland , nơi hỗ trợ nó . Tôi không quen thuộc với các chi tiết tốt hơn, nhưng mọi người thường nói về nó với lời khen ngợi.
Ngoài ra, đối với các chương trình song song, bạn có sẵn OpenMP, MPI và giờ là các mảng đồng sắp tới (và được chờ đợi từ lâu), trình biên dịch của Intel gần đây đã triển khai. Để không lãng phí từ ngữ, Fortran có một "thư viện" rất tốt để song song hóa các chương trình.
Các thư viện số tiêu chuẩn công nghiệp được phát triển cho nó, các ngôn ngữ khác theo sau ít nhiều trong danh mục chức năng / thói quen.
Tuy nhiên, tất cả những gì đang được nói, tôi sẽ (tùy thuộc vào thời điểm nó được viết ban đầu) đề nghị nếu nó nói, mã F77 trở lên, viết lại một phần qua thời gian cho các phương ngữ mới hơn - ít nhất là F90, nếu có thể với các tính năng F2003. Một bài báo / luận án về chủ đề đó đã được xuất bản gần đây (tệp PDF kích thước trung bình phía trước). Không chỉ có thể, nếu được thực hiện đúng cách, đảm bảo tính di động trên nhiều nền tảng, mà còn giúp việc bảo trì trong tương lai dễ dàng hơn.
ps Theo như "bảo trì trong tương lai", chỉ là một anegdote mà đôi khi tôi muốn đề cập đến. Trong khi viết luận án, tôi đã sử dụng lại một số mã từ người cố vấn của mình, được viết cách đây 35 năm kể từ thời điểm viết. Nó được biên dịch chỉ với một lỗi; một tuyên bố bị thiếu ở cuối, do lỗi sao chép dán :)
@DaveMateer (trả lời bình luận) - Tôi sẽ đưa ra nhận xét sau đây có thể hơi bất lịch sự, nhưng xin đừng hiểu sai, vì đó là ý định công bằng.
Dường như với tôi bạn đang giải quyết "vấn đề" này một cách sai lầm. Ý tôi là ở một vài điểm ngắn (vì ở đây rất muộn và khả năng tôi có thể tạo ra những câu có thể đọc được (huống chi là dễ hiểu) để lại cho tôi sau 10p.m.)
a) bạn đã đề cập đến việc bạn đang cố gắng giảm thiểu thời gian mã hóa thêm, nhưng bạn đang xem xét viết lại từ một ngôn ngữ chuyên về điện toán số sang một từ một lựa chọn ngôn ngữ đầy màu sắc , nếu bạn tha thứ cho biểu hiện của tôi
- một số trong đó không có hỗ trợ cho các mảng đa chiều, trong số những thứ khác
- hầu hết trong số chúng không phù hợp với công việc số nặng (khả năng xử lý song song của Haskell và Hadoop tôi thừa nhận, tôi không biết gì về ... nhưng chưa bao giờ nghe thấy chúng kể cả trong các vòng tròn đó)
- nó có thể đã được thử, nhưng tôi chưa bao giờ nghe về việc viết lại từ Fortran, một ngôn ngữ cho các vấn đề rời rạc, sang một ngôn ngữ chức năng
- gần đây đã có một cuộc thảo luận về comp.lang.fortran (thử tìm kiếm thông qua các nhóm google) về các khía cạnh của điện toán khoa học "trong đám mây"
(không muốn thôi thúc bạn, nhưng công bằng mà nói, không ai thực sự chắc chắn thuật ngữ đó thậm chí đại diện cho điều gì, một mình ít có một ví dụ về một ứng dụng thành công. Hầu hết mọi người đều đồng ý rằng tiềm năng tồn tại nhưng cho đến nay họ vẫn hạnh phúc với cách mọi thứ hoạt động.). Rất nhiều vấn đề không phù hợp với kiểu song song đó.
b) chi phí của việc viết lại như vậy là gì? người / giờ.
c) -Các phiên bản chính xác của các thư viện để biên dịch ...- là một vấn đề trong bất kỳ ngôn ngữ nào, không thể tránh được, tuy nhiên bạn nhìn vào nó.
d) Tôi đã nghe nói về Python (một ngôn ngữ rất hay) được sử dụng trong các ứng dụng song song trong một số trường hợp, nhưng sự thâm nhập của thị trường đó dường như vẫn không tăng, và bản chất luôn thay đổi của nó khiến nó trở thành một lựa chọn rất kém cho một dự án dài hạn (nghĩ tương thích ngược). Một số người thích nó rất giống như một ngôn ngữ "keo".
Ugh, nếu tôi nghĩ về bất cứ điều gì khác, sẽ thêm nó vào ngày mai. Phải ngủ một chút ...