2009-03-18 31 views

Trả lời

8

Tính rõ ràng là một tính năng ngôn ngữ bị định nghĩa và có thể không đồng đều. Các ngôn ngữ khác nhau có thể ít nhiều ngắn gọn tùy thuộc vào vấn đề.

Erlang là ngôn ngữ chức năng có thể rất ngắn gọn, ngoài Ruby hoặc Python. Kết hợp mẫu cụ thể thường thay thế nếu câu lệnh và đệ quy và danh sách hiểu có thể thay thế vòng lặp.

Ví dụ Java sẽ có một cái gì đó như thế này:

String foobar(int number){ 
    if (number == 0) { 
    return "foo"; 
    } else if (number == 1) { 
    return "bar"; 
    } 
    throw new Exception(); 
} 

khi Erlang mã sẽ trông giống như:

foobar(0) -> "foo"; 
foobar(1) -> "bar". 

Với ngoại lệ là vốn vì không có điều khoản cho đầu vào khác 0 hoặc 1. Đây là nguyên nhân gây ra một vấn đề mà chính nó cũng phát triển theo phong cách Erlang.

Nói chung, bất cứ điều gì bạn có thể định nghĩa là một phép chuyển đổi sẽ khớp với một ngôn ngữ chức năng đặc biệt tốt và có thể được viết rất ngắn gọn. Nguyên nhân gây ra nhiều zealots ngôn ngữ chức năng nói rằng bất kỳ vấn đề nào trong lập trình một phép biến đổi.

2

Erlang cho phép bạn nhận ra chức năng trong rất ít dòng mã, so với trải nghiệm của tôi trong Java và Python. Chỉ có Smalltalk hoặc Scheme đến gần với tôi trong quá khứ. Bạn chỉ nhận được rất ít chi phí, nhưng bạn thường có xu hướng nói các mã định danh cho các mô-đun, hàm, biến và nguyên tử. Chúng làm cho mã dễ đọc hơn. Và bạn có rất nhiều niềng răng bình thường, xoăn và vuông. Vì vậy, nó phụ thuộc vào cách bố trí bàn phím của bạn như thế nào thoải mái nó sẽ được. Bạn nên cung cấp cho nó một thử.

mue

1

Erlang đáng ngạc nhiên ngắn gọn đặc biệt là khi bạn muốn đạt được hiệu suất và độ tin cậy.

Erlang là súc tích thậm chí khi so sánh với Haskell:

http://thinkerlang.com/2006/01/01/haskell-vs-erlang-reloaded.html

Và bất ngờ nhanh chóng (và đáng tin cậy) ngay cả khi so sánh với C++:

http://www.erlang.se/euc/06/proceedings/1600Nystrom.ppt

(SLX ít hơn 18x không ngạc nhiên).

Dù sao nó luôn phụ thuộc vào sở thích và mục tiêu của bạn những gì bạn muốn đạt được.

1

Bạn phải dành chút thời gian, viết mã, để hiểu điểm ngọt của erlang, so với tất cả các công cụ mới nổi khác, DHT, cửa hàng doc, khung bản đồ, hadoop, GPU, scala, ... Nếu bạn cố gắng làm , nói các ứng dụng loại SIMD bên ngoài vị trí ngọt ngào, có thể bạn sẽ kết thúc chiến đấu với mô hình và viết mã tiết, trong khi nếu bạn gặp phải các vấn đề cần quy mô máy chủ và phần mềm trung gian liên tục lên xuống, nó sẽ tự động chảy.(Và sự gia tăng của scala ở vị trí ngọt ngào của nó là không thể tránh khỏi, tôi nghĩ)

Một điều tốt để tra cứu sẽ là thử nghiệm Tim Bray Wide Finder (chưng cất các tệp nhật ký apache lớn) từ một vài năm trước, và làm thế nào ông đã thất vọng với erlang.

Tôi thường không khuyên bạn nên đặt nhiều cửa hàng trong loạt đá luân lưu Alioth, cho bạn chắc chắn sẽ so sánh mã thực sự tốt và xấu, nhưng nếu bạn cần đặt số LOC, erlang so với C, ruby, bất cứ điều gì

http://shootout.alioth.debian.org/u32q/erlang.php

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