2008-09-25 38 views
13

Có ai ở đây cung cấp số điện thoại Fantom programming language không? (chơi chữ).Ấn tượng đầu tiên của ngôn ngữ lập trình Fantom?

ấn tượng đầu tiên của tôi:

  • Tôi thích khả năng có chạy mã trên hoặc .NET hoặc Java VM.
  • Cú pháp là đẹp và sạch sẽ và không thử bất cứ điều gì ưa thích.
  • Tôi có một niềm tin rằng "thư viện là ngôn ngữ" và các nhà phát triển của Fan believe that their USP is their APIs:

Nhưng nhận được một ngôn ngữ để chạy trên cả Java và .NET là phần dễ dàng - trong thực tế có có nhiều giải pháp cho vấn đề này. Phần khó khăn là nhận được các API di động. Fan cung cấp một tập hợp các API trừu tượng hóa các API Java và .NET. Chúng tôi thực sự coi đây là một trong những lợi ích chính của Fan, bởi vì nó cho chúng ta cơ hội phát triển một bộ API hệ thống thanh lịch và dễ sử dụng so với các bộ phận truy cập Java và .NET.

Bất kỳ suy nghĩ, ấn tượng đầu tiên, ưu và nhược điểm nào khác?

+1

Bóng của bạn thổi: P – mdec

+0

Tôi thực sự muốn biết tại sao câu hỏi bị bỏ phiếu. –

+5

Vì mọi người đều giật mình. –

Trả lời

1

Nó trông rất lấy cảm hứng từ Ruby. Nó nói rằng đó là RESTful nhưng tôi không thấy chính xác như thế nào. So sánh với boo, nó trưởng thành hơn nhưng tương tự theo nhiều cách (tuy nhiên cú pháp của nó là Python được truyền cảm hứng).

Các quyết định thiết kế để giữ cho generics và không gian tên rất hạn chế là có vấn đề.

+0

Boo thực sự có thể swtich giữa Java và. Net như Fan ?? –

+0

Không, nhưng nó có thể chuyển đổi giữa Mono và .NET:) Chuyển đổi giữa Java và .NET không phải là một lý do đủ tốt. IKVMM là một JVM được triển khai trong .NET! –

0

Điều này rất thú vị.

Java (hoặc C#) được tạo để loại bỏ phụ thuộc nền tảng bằng cách tạo một JVM (hoặc CLR) sẽ biên dịch mã thành một mã máy cụ thể vào thời gian chạy.

Hiện tại, có một languege là Máy ảo độc lập? umm .... cái quái gì thế?!?!

Một lần nữa, đây là một chủ đề rất thú vị, đó có thể là tương lai ... :) sẽ một languege đơn phổ

+0

Yo dawg, tôi nghe nói bạn thích máy độc lập! – Ken

2

Tôi nghĩ rằng lời giải thích của họ tiền nó lên:

"Các chính lý do chúng tôi tạo Fan là để viết phần mềm có thể liền mạch chạy trên cả máy ảo Java và .NET CLR. Thực tế là nhiều tổ chức phần mềm cam kết một hoặc các nền tảng khác. "

Nó trông không tốt hơn tất cả các ngôn ngữ không phải JVM/.NET khác. Trong trường hợp không có bất kỳ thông tin nào về họ (blog của họ chỉ là một trang lỗi), tôi thấy không có lý do nào tại sao họ nhất thiết phải làm điều này righter hơn những người khác. Mỗi ngôn ngữ bắt đầu khá thanh lịch cho bộ đồ vật được thiết kế cho (mặc dù tôi thấy một chút lúng túng trong mã Fan nhỏ mà tôi vừa xem) - câu hỏi thực sự là nó cân đối đến những thứ hoàn toàn mới và chúng ta chỉ đơn giản là không biết điều đó.

Nhưng nếu tổ chức của bạn có quy tắc "mọi thứ phải chạy trên máy ảo của chúng tôi" thì đó có thể là sự thỏa hiệp chấp nhận được cho bạn.

Bạn đang từ bỏ một số khủng khiếp chỉ dành cho độc lập VM. Ví dụ: bạn là câu hỏi Fan đầu tiên ở đây trên SO - một số đơn đặt hàng là có độ lớn ít hơn Lisp.

Đối với vấn đề nào, Fan là giải pháp tốt nhất? Python và Ruby đã có thể chạy trên cả hai máy ảo (hoặc không), có các cộng đồng lớn và các thư viện lớn, và dường như có cùng mức độ trừu tượng, nhưng trưởng thành hơn rất nhiều.

+0

+1 - cách thông minh để quan sát rằng đây là một ngôn ngữ khá mơ hồ ("các đơn đặt hàng có độ lớn ít hơn Lisp"). Tôi đồng ý với các quan sát của bạn RE: về Python và Ruby: chúng đủ mới và đã có nhiều tùy chọn hỗ trợ VM. –

0

Tôi nghĩ rằng nó trông giống như một ngôn ngữ tuyệt vời tính năng khôn ngoan, nhưng tôi không chắc chắn nó hữu ích như thế nào. Tôi không nghĩ rằng đó là tất cả những gì hữu ích để nhắm mục tiêu .NET và JVM. Java đã là nền tảng chéo, và .NET cũng vậy, với Mono. Bằng cách nhắm mục tiêu hai máy ảo, bạn phải chỉ sử dụng các API có sẵn trên cả hai. Bạn không thể sử dụng bất kỳ API gốc tuyệt vời nào có sẵn cho Java và .NET. Tôi không thể tưởng tượng rằng API của họ là bất cứ nơi nào gần như là hoàn chỉnh như của Java của NET.

1

Tôi chưa bao giờ nghe nói về Fan cho đến một vài tuần trước. Từ trang web, nó là khoảng một tuổi nên vẫn còn khá trẻ và chưa được chứng minh. Tuy nhiên, có một vài điểm thú vị: Thứ nhất, ngôn ngữ đang giải quyết vấn đề đồng thời bằng cách cung cấp một mô hình diễn viên (tương tự như erlang) và bằng cách hỗ trợ các đối tượng bất biến. Thứ hai, đối tượng theo ví dụ của Scala với suy luận kiểu. Kiểu suy luận cho phép lập trình viên loại bỏ các khai báo kiểu nhưng nó được trình biên dịch tính toán, cung cấp lợi thế của mã ngắn và sạch hơn như trong một ngôn ngữ kiểu động trong khi vẫn giữ được hiệu quả của một ngôn ngữ kiểu tĩnh. Và cuối cùng, nó có vẻ giống như một ngôn ngữ rất nhanh, gần như nhanh như Java và thực sự gần hoặc đánh bại ngôn ngữ nhanh thứ hai trên JM: scala. Điểm chuẩn cho thấy hiệu suất có thể được tìm thấy tại http://www.slideshare.net/michael.galpin/performance-comparisons-of-dynamic-languages-on-the-java-virtual-machine?type=powerpoint.

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