Có ngôn ngữ cấp cao nào ngoài đó không? [đóng cửa]


20

Trong lịch sử, HLL là một cái gì đó giống như C, Fortran hoặc Pascal và VHLL là một cái gì đó giống như Ruby hoặc Python. Tôi quen thuộc với các thuật ngữ 4GL, 5GL, DSL và LOP và những người không nên đọc Wikipedia cho các định nghĩa. Tôi đang tìm kiếm UHLL.

Câu hỏi của tôi là: có bất kỳ ngôn ngữ máy tính nào ngoài kia là một thứ tự cường độ cao hơn, và có ai đang làm việc với chúng không?

Năng suất cao hơn có nghĩa là mã ít tác giả hơn và ít thời gian lập trình viên hơn để đạt được kết quả, ít lỗi hơn và ít gỡ lỗi hơn, liên kết khái niệm chặt chẽ hơn giữa mã và yêu cầu, ít nỗ lực sửa đổi và duy trì.

Tên miền chính mà tôi quan tâm là các ứng dụng dành cho doanh nghiệp và người tiêu dùng có mục đích chung, với giao diện người dùng GUI hoặc trình duyệt, tính bền vững của dữ liệu và kết nối với các hệ thống khác như in và email. Những người khác cũng có thể tập trung ở nơi khác.

Tôi nhận ra rằng một số ngôn ngữ đó có thể là miền cụ thể và chúng có thể ít hơn khả năng cấu hình của một ứng dụng lớn và có khả năng. Bảng tính Excel rơi vào danh mục này.

Tôi nhận ra rằng một số ngôn ngữ có thể xuất hiện chung, nhưng vẫn có thể bị thu hẹp về phạm vi và không phù hợp với nhiều vấn đề. Ví dụ, Matlab có thể không phải là một lựa chọn tốt cho một chương trình chủ yếu liên quan đến tương tác người dùng và dữ liệu văn bản.

Tôi biết một số tính năng có thể có trong UHLL, bằng cách tương tự với VHLL. Tôi hy vọng sẽ tìm thấy một hoặc nhiều thứ sau đây (và thoải mái thêm vào danh sách):

  • Bản vẽ biểu mẫu GUI là chương trình dành cho biểu mẫu GUI
  • Bảng chứa hàng, cột và tiêu đề LÀ chương trình cho bảng trong cơ sở dữ liệu
  • Logic khai báo cho biết những gì nên được thực hiện và khi nào, không có câu lệnh IF
  • Hoạt động trên các bộ dữ liệu, không có vòng lặp FOR
  • Thực hiện không tuần tự, ví dụ như điều khiển dữ liệu, khớp mẫu, đi bộ trên cây

Động lực cho câu hỏi là tôi ngày càng chán ngấy với công việc khó khăn trong việc dịch các yêu cầu kinh doanh tương đối đơn giản thành số lượng lớn mã để phục vụ cho những gì máy tính muốn hoặc cần. Câu hỏi thực sự là tìm kiếm những người khác ngoài kia, những người chia sẻ nỗi đau của tôi và đang nỗ lực nâng cao trình độ ngôn ngữ và khiến máy tính làm được nhiều công việc khó khăn hơn. Đây là một trọng tâm trong những năm 1970-1980, nhưng nó vẫn còn xảy ra?

Đây là một số câu trả lời được đề xuất cho câu hỏi của tôi, được cung cấp ở đây để tóm tắt hoặc liệt kê các ngôn ngữ tôi biết và theo quan điểm của tôi thì thiếu.

Có nhiều ngôn ngữ là HLL hoặc VHLL và chứa các tính năng riêng thuộc về cấp độ cao hơn. Tôi đã sử dụng hầu hết trong số họ (thường rất tệ). Chúng bao gồm

  • Lisp, với các macro và khả năng tự sửa đổi
  • Haskell, với sự phụ thuộc dữ liệu và khớp mẫu
  • SQL, giao dịch trong các hàng và bảng
  • Rebol, có vẻ thông minh nhưng tôi không thực sự hiểu
  • APL (và J), với các mảng đa chiều và toán tử siêu nhỏ gọn
  • C # với LINQ
  • AWK / Perl / Python / Ruby với các bộ sưu tập và biểu thức tuyệt vời được tích hợp sẵn

Các ngôn ngữ này có quá nhiều tính năng cấp thấp là UHLL. Lập trình viên vẫn phải viết nhiều cấu trúc cấp thấp cho bất kỳ chương trình hữu ích nào.

Có các gói RAD / 4GL. Tôi đã sử dụng một số:

  • dBase / Foxpro
  • Dataflex / Powerflex (sản phẩm của tôi)
  • Truy cập
  • Xây dựng quyền lực

Và nhiều hơn nữa tôi đã không sử dụng. Chủ yếu là ngôn ngữ là HLL tốt nhất nhưng gói chứa khung và các kết nối đặc quyền giữa ngôn ngữ và gói để các ứng dụng có thể được xây dựng nhanh. Tôi không chắc tại sao cách tiếp cận này hết hơi, nhưng trong mọi trường hợp UHLL thì không.

Có khung / thư viện thô. Tôi đã sử dụng một vài:

  • Đường ray
  • Java và đu
  • .NET Windows Forms, WPF và ASP.NET.

Đây hiện đang là nhà nước của nghệ thuật. Họ để lập trình viên bị mắc kẹt trong vũng bùn của ngôn ngữ thực hiện, xử lý sự phức tạp ở mỗi lượt. Đây không phải là UHLL, nhưng một UHLL có thể hình dung được xây dựng trên một trong số này.

Có các công cụ thiết kế, như bộ công cụ của UML và Rational, mà tôi không biết rõ. Theo như tôi có thể thấy họ giúp đưa ra các yêu cầu kinh doanh nhưng không bao giờ có thể thay thế bước lập trình. Tôi không muốn loại bỏ các lập trình viên, chỉ cần hoàn thành nhiều hơn trên mỗi đơn vị thời gian và nỗ lực.

Vì vậy, đã loại bỏ tất cả các ứng cử viên tôi có thể nghĩ, tôi hy vọng người khác có thể cung cấp một ứng cử viên tốt hơn.

Chỉnh sửa muộn: Tôi nghĩ rằng tôi có một câu trả lời: Ngôn ngữ Wolfram. http://www.wolfram.com/wolfram-lingu/


2
@Phoshi - ba điểm cuối cùng cũng được bao phủ bởi SQL. Không phải theo cách DWIM (làm theo ý tôi).
kdgregory

10
Bản vẽ của biểu mẫu GUI là chương trình cho biểu mẫu GUI Chắc chắn, nhưng mã xử lý các lần nhấp nút, làm mới giao diện người dùng, v.v ... ở đâu? Bạn đã bao giờ làm việc với các nhà thiết kế mẫu của Visual Studio chưa? Họ vẫn viết mã dưới vỏ bọc, nhưng thường thì nhà phát triển không bao giờ cần nhìn vào nó. Họ chỉ phát triển hình thức "trực quan". Ngoại trừ mã tùy chỉnh như phần thân của trình xử lý sự kiện ... Một bảng chứa các hàng, cột và tiêu đề LÀ chương trình cho một bảng trong cơ sở dữ liệu Còn về tất cả các kích hoạt, chỉ mục và các ràng buộc trên bảng cơ sở dữ liệu thì sao?
Thất vọngWithFormsDesigner

3
@FrustratedWithFormsDesigner: Nhưng bạn vẫn ... nản lòng.
Robert Harvey

4
@RobertHarvey: Vâng. Nhưng không nản lòng như thể tôi phải tự viết tất cả mã. ;)
Thất vọngWithFormsDesigner

7
Điều gì có thể là ngôn ngữ cấp cao hơn (như trong "trừu tượng nhất") so với DSL được điều chỉnh cho một miền có vấn đề cụ thể? Và, tất nhiên, có một số ngôn ngữ được thiết kế đặc biệt để xây dựng DSL như vậy một cách hiệu quả.
SK-logic

Câu trả lời:


33

Hầu như tất cả các tiêu chí bạn liệt kê là những thứ đã được thử trong các công cụ 4GL / RAD như MS Access, Sybase Power Builder, Oracle Forms, Ruby-on-Rails (như một mẫu vật hiện đại hơn cho Ứng dụng web) và nhiều hơn nữa (xem Wikipedia để biết danh sách rất dài của các nhà cung cấp). Và thực tế, việc dịch các yêu cầu kinh doanh tương đối đơn giản sang một số loại chương trình có thể đạt được rất nhanh với các công cụ này. Đó là lý do tại sao hầu hết các nhà cung cấp công cụ RAD quảng cáo sản phẩm của họ theo cách mà mọi người nên nghĩ rằng họ đã phát minh ra một UHLL theo nghĩa của bạn.

Điều hấp dẫn là, ngay khi bạn rời khỏi yêu cầu là " tương đối đơn giản ", và ngay khi bạn phải duy trì và phát triển các chương trình được viết bằng các môi trường này, bạn sẽ nhận thấy rằng bạn dễ dàng đạt đến giới hạn và nhận thấy những hạn chế của chúng hoặc để thực hiện các yêu cầu với chúng không đơn giản hơn bất kỳ "VHLL" nào khác mà bạn có trong đầu. IMHO có một cơ hội tốt để những thứ này giết chết mọi cải thiện hiệu quả mà bạn có trong phiên bản 1.0 khi tiếp tục đến phiên bản 1.1, 1.2 và 1.3 của chương trình.

Nếu bạn muốn xây dựng phần mềm cho các yêu cầu phức tạp, bạn sẽ cần một môi trường lập trình phức tạp. Vẫn không có viên đạn bạc , chúng tôi chỉ cải thiện dần dần trong nhiều năm và không "thứ tự độ lớn" về năng suất với bất kỳ ngôn ngữ lập trình hiện tại nào so với các phiên bản trước (ít nhất là trong 30 năm qua, tương đương với thời gian quá khứ khi bài báo của Brook được xuất bản).


9
+1 cho relatively simple. Logic kinh doanh thực tế có xu hướng biến spaghetti rất nhanh.
Bobson

1
+1 ngay khi bạn rời khỏi mặt đất. Đối với tôi họ thường rất giống như "xây dựng một blog trong 5 phút (không cần viết mã)!" loại quảng cáo. Thật tuyệt vời, cho đến khi bạn phải thực hiện một cái gì đó giống như một chương trình thực sự, và rồi đột nhiên những gì bạn nghĩ là một điều đơn giản thì không. Có thể họ rất tuyệt và tôi không hiểu họ - nhưng tiếp thị làm cho thật khó tin rằng đó không chỉ là một mớ hỗn độn lớn hơn khi bạn đi xa hơn.
BrianH

Vâng tôi biết. Tôi đã viết mã trong hầu hết các 4GL đó và một số khác. Những cái tôi đã sử dụng làm tỷ lệ, nhưng chúng làm như vậy bởi vì chúng chứa một HLL không được nhúng rất tốt, chẳng hạn như VBA. Và tất cả đều có giới hạn và, là những sản phẩm đóng, bạn không thể thay đổi những giới hạn đó. Phải, Fred Brooks đã đúng, vì vậy một UHLL sẽ cần cả một kho đạn.
david.pfx

Tôi gọi đây là "hiệu ứng Dreamweaver". Các UHLL chỉ là những thứ trừu tượng siêu rò rỉ
Charles Salvia

14

Ngôn ngữ lập trình cấp cao nhất mà tôi biết là APL . Nó đòi hỏi một bàn phím đặc biệt để đại diện cho tất cả các biểu tượng cần thiết. Hãy xem video này , trong đó tác giả viết một bản triển khai hoàn chỉnh Trò chơi cuộc sống của Conway trong khoảng bảy phút.

Câu hỏi thực sự, tất nhiên, là "điều này có thực tế không?" Tôi có thể tìm đủ lập trình viên APL trên thế giới để duy trì hoạt động kinh doanh theo cách này không? APL sẽ chạy trên điện thoại và máy tính bảng? Tôi có thực sự cần phải mua tất cả các nhà phát triển phần mềm mới của mình không?

Nếu bạn thực sự muốn tăng năng suất, đặt cược tốt nhất của bạn có lẽ là một số biến thể Lisp. Clojure chạy trên JVM và có cổng .NET. Tôi nói điều này bởi vì mọi người đã làm nó; công cụ tìm kiếm Orbitz chạy trên Lisp và Paul Graham điều hành toàn bộ doanh nghiệp bằng Lisp, tuyên bố rằng nó mang lại cho anh ta một lợi thế đáng kể so với các đối thủ cạnh tranh (tất cả đều sử dụng Java).

Xin lưu ý rằng, ngôn ngữ lập trình của bạn càng cao thì nó càng bị loại bỏ khỏi phần cứng thực tế và càng có nhiều khả năng bạn sẽ gặp vấn đề về hiệu suất. Trừ khi bạn có các trình biên dịch thực sự tinh vi, thỉnh thoảng bạn vẫn có thể tự mình mã hóa các phần quan trọng về hiệu năng của ứng dụng bằng các ngôn ngữ cấp thấp hơn, hiệu quả hơn.

Và vẫn còn vấn đề có một khối lượng lớn các nhà phát triển thành thạo ngôn ngữ này. Bất chấp tất cả các mụn cóc của nó, bạn sẽ không bao giờ gặp vấn đề khi tìm một lập trình viên Java.


Lưu ý rằng các ngôn ngữ chính vẫn đang phát triển. Linq được tạo ra cho mục đích cụ thể làm cho lập trình dựa trên dữ liệu trở nên khai báo hơn . Một số tính năng mới đã được thêm vào ngôn ngữ C # để Linq hoạt động; tất cả chúng phải làm với việc cải thiện năng suất của nhà phát triển.

Đọc thêm
Đánh bại mức trung bình


Linq là một ví dụ tuyệt vời về loại mã tôi muốn nói. Tôi thích viết ifs và vòng lặp như whens và chọn, tất cả trong một dòng duy nhất. Có ví dụ nào khác không?
david.pfx

1
@ david.pfx: C # khá muộn với bên đó và tôi thấy đó là cú pháp ngược (nó sử dụng từ khóa SQL, nhưng thứ tự khác nhau khi mọi người khác sử dụng thứ tự SQL và từ khóa / ký hiệu đơn giản hơn). Cách họ có thể biên dịch nó thành SQL tuy nhiên tốt hơn những gì hầu hết các ngôn ngữ có thể làm.
Jan Hudec

4
@ david.pfx: Khá nhiều ngôn ngữ chức năng có khả năng hiểu danh sách có thể làm những gì Linq làm.
Robert Harvey

7

Tôi nghĩ rằng bạn đã gợi ý một chút về một điểm giao thoa hạn chế sự tồn tại của các ngôn ngữ Cấp độ cực cao - tại một số điểm chúng tôi không xác định chúng là ngôn ngữ lập trình nữa.

Ví dụ tốt nhất về hiện tượng cụ thể này mà tôi biết và có lẽ là mối quan tâm tiềm năng lớn ở đây, là Ngôn ngữ mô hình thống nhất . Thật vậy, có các ngăn xếp ứng dụng phần mềm cụ thể đã được phát triển để thực hiện cụ thể những gì bạn đang yêu cầu. Nó đáp ứng nhiều yêu cầu của bạn, nhưng không nhất thiết theo cách bạn đang nghĩ. Tuy nhiên, nó rất giáo dục cho tình huống này, vì tôi đã cảm thấy tương tự và kinh nghiệm của tôi (tiếp theo) đã thay đổi cách tôi nghĩ về vấn đề này.

Cá nhân tôi ở đây sẽ nói về Kiến trúc sư phần mềm Rational của IBM , đây là một nỗ lực thực sự cho phép phát triển Cấp độ cực cao. Mục tiêu là bạn có thể tạo ra khái niệm kinh doanh triết học như một đối tượng, chẳng hạn như Actor hoặc Class, đưa ra các thuộc tính thực thể, xác định các kết nối, xác định cách thông tin có thể truyền qua hệ thống khi nó đang được làm việc và thực hiện điều này Tất cả đều có GUI.

Ví dụ, bạn có thể kéo một đối tượng DataStore, Actor, biểu mẫu, một vài Lớp có liên quan (như Khách hàng, v.v.), vẽ một số đường kết nối giữa các đối tượng bằng biểu đồ và như vậy, và khi bạn hoàn thành, bạn xuất bản một chương trình làm việc. (điều này rõ ràng là cực kỳ đơn giản)

Thật vậy, những gì đã được thực hiện là sự hình thành một GUI phức tạp, việc triển khai / giải thích UML rất kỹ lưỡng và sau đó nó biên dịch thành mã Java / C # / VB với các tài liệu XML đầy đủ chứa thông tin đồ thị UML và chúng cũng thực hiện / kích hoạt Kỹ thuật khứ hồi để bạn có thể qua lại giữa Mô hình và Mã để bạn có thể kiểm soát mọi thứ ở cả cấp độ triết học chảy máu mũi rất cao và mã cụ thể nền tảng cấp độ rất thấp.

Đó là tất cả mọi thứ bạn muốn, và hơn thế nữa, và bạn không từ bỏ bất cứ điều gì trong trao đổi! Đúng?

Tại sao mọi người không sử dụng nó?!?!

... tốt, xem nào, đó là điều. Những gì bạn thực sự kết thúc là một công việc nguyên khối, mọi thứ liên quan đến rất nhiều bộ phận chuyển động và ma thuật, mọi thứ là - hoặc đôi khi không - được thực hiện bởi một sự thay đổi ở bất kỳ nơi nào khác nhau (trong GUI, XML, cấp độ thấp hơn mã, các mô hình UML do chính chúng tạo / định nghĩa / duy trì ở nhiều cấp độ mô hình khác nhau).

Thật tuyệt khi chơi cùng, nhưng đó là ... làm thế nào để đặt nó ... nó có một đường cong học tập cực kỳ cao, được thiết kế với nhiều nguyên tắc trong tâm trí, và bạn thực sự phải coi nó như một điều hoàn toàn mới mà cho phép rất ít - rất ít - khả năng khái quát cho các kỹ năng khác mà bạn đã có.

Và điểm mấu chốt là - ngay cả khi đó, với hàng triệu triệu người đổ vào dự án từ hàng chục công ty và một số tên tuổi lớn đằng sau nó, bạn vẫn kết thúc với mã kiểu C ở lớp thực thi phải được chỉnh sửa trực tiếp , bởi vì một số thứ không làm cho việc dịch giữa Mô tả lớp hướng đối tượng và UML xuống cấp độ lập trình / máy và việc tự động hóa hoàn toàn không thể hoàn thành.

Kinh nghiệm của tôi là đó là một cách cực kỳ phức tạp để tạo ra giàn giáo. Đó có lẽ là điều tàn khốc nhất mà tôi từng nói về một công việc to lớn như vậy, nhưng đó là những gì tôi nhận được từ nó.

Từ những người trong ngành mà tôi đã nói chuyện, họ buồn bã nói điều tương tự. Cảm giác của họ là họ đã làm rất nhiều công việc tạo tài liệu, vô số sơ đồ, mô hình, cuộc họp, phân tích, qua nhiều tháng và sau đó họ đã ném nó ra và nhóm phát triển chỉ viết mã cho nó và thường chỉ coi nó là Một chất kết dính đặc điểm kỹ thuật khác (Không ai từng đọc Anymore). Vì vậy, bây giờ họ chỉ sử dụng Java và một số phần mềm lập biểu đồ / trực quan hóa đặc biệt và Agile, và đó là kết thúc của câu chuyện đó.

Có thể điều này là không công bằng, và nó hoạt động khi bạn làm đúng. Có thể, nhưng từ các chuyên gia tư vấn và giáo sư mà tôi đã nói chuyện với họ, họ tuyên bố đã dành nhiều giờ trong các hội thảo phát triển nhiều tuần đặc biệt để tìm hiểu hệ thống, và quay trở lại để đào tạo thêm, và hoàn toàn mất nhiều năm để học cách làm cho nó làm việc và đi đâu.

Nhưng có lẽ tất cả các lập trình viên đều có lỗi, rằng họ chỉ từ chối chấp nhận hệ thống hoạt động rất tốt và không có gì giống như lập trình máy tính cả. Có lẽ các lập trình viên mã thuần túy chỉ chống lại việc thay thế công việc của họ, như những người làm nến và thợ dệt cũ, và vì vậy từ chối chỉ thực hiện nhiệm vụ hạn chế của họ là Thực hiện Đặc tả và điều này khiến mọi người khác thất vọng khi họ ném nó ra và nói những điều tồi tệ, và nó gần như là hoàn hảo.

Nhưng ... tôi nghĩ có thể có một số sự thật trong đó, nhưng tôi nghĩ chủ yếu là nó không thực sự hoạt động tốt như vậy. Tôi nghĩ rằng nó biến một thứ gì đó không thực sự khó đến thế (lập trình máy tính), và làm cho nó thậm chí còn khó hơn đến mức nếu nó hoạt động thì sẽ rất tuyệt, nhưng thật là tào lao mà bạn không có thời gian để làm hiển thị cho nó để đạt được điều đó!

Có lẽ nó chỉ hoạt động trong một doanh nghiệp có hàng nghìn đội nam và có lẽ chúng tôi chưa có mặt ở đó.

Tôi không biết.

Tuy nhiên, một nghiên cứu về điều gì đúng và sai, với cách tiếp cận này với Ngôn ngữ cấp độ cực cao - và tôi nghĩ rằng loại nhu cầu UML cần được đưa vào xem xét như vậy - thực sự phải xem xét những thứ như Rational Software Architect, để tránh kẻ ngốc tiềm năng việc vặt.

Hoặc có lẽ chúng ta chỉ cần cho nó thêm 20-50 năm làm việc chăm chỉ. Tôi không còn lạc quan rằng một ngôn ngữ lập trình là hạn chế nữa.

Và nếu các ngôn ngữ lập trình là những hạn chế trước đây, thì đó là lý do tại sao các cải tiến mang lại cho chúng ta một trật tự tiềm năng để cải thiện cường độ. Nếu họ không còn ràng buộc như vậy nữa, thì bất kỳ sự đổi mới nào cũng có nhiều khả năng không thể cung cấp một trật tự cải tiến như vậy. Nhưng tôi không thể nói trước tương lai! Vì vậy, tôi sẽ cho rằng phần còn lại không phải là "trong công việc", nhưng chắc chắn là "quá sớm để nói".


Bạn có thực sự nghĩ đến việc loại bỏ tiền mã hóa? Tôi thấy không có triển vọng về các yêu cầu kinh doanh được dịch trực tiếp thành mã cho đến khi máy tính thông minh như chúng ta.
david.pfx

1
Tôi đã có niềm vui khi được làm việc với Rhapsody (Tôi tự hỏi tại sao IBM lại mua một công cụ tương tự khác và có hai bộ ứng dụng tương tự dưới nhãn hiệu Rational của IBM) và kinh nghiệm của tôi là nó không mở rộng được. Nhiều người làm việc trên cùng một đoạn mã là một vấn đề được nghiên cứu và giải quyết tốt, nhưng nhiều người làm việc trên cùng một đoạn UML không hoạt động.
Jan Hudec

'Tại sao mọi người không sử dụng nó?!?! "- bởi vì nó tạo ra kết quả tồi tệ. Đây là một con ngựa bị thả trong vòng một inch của cuộc đời. UML là một thất bại.
duffymo

1

Nếu bạn nghĩ về nó trong một thời gian, lập trình cấp cao hơn về cơ bản có thể sáng tác các phần nhỏ hơn có sẵn và được chứng minh. Cho đến khi chương trình của bạn là mã keo rất đơn giản của các thư viện khác nhau. Có lẽ keo là một DSL rất biểu cảm. Bạn có thể làm điều này trong mọi ngôn ngữ lập trình.

Cá nhân, tôi ngày càng bắt đầu hiểu rằng giải pháp cho khả năng kết hợp là - trái với những gì bạn có thể cảm nhận theo bản năng - không tìm thấy trong lập trình hướng đối tượng. Mô hình này, cũng như lập trình bắt buộc, cung cấp quá nhiều tự do cho các lập trình viên, điều này làm cho quá khó để viết mã dễ sử dụng lại.

Thay vào đó, tôi nghĩ rằng lập trình chức năng cung cấp các nguyên hàm phù hợp hơn nhiều cho khả năng kết hợp. Các ngôn ngữ lập trình chức năng thuần túy cũng không cho phép bạn xác định các chức năng có tác dụng phụ, điều này không chỉ làm giảm lỗi hoặc tạo điều kiện phát hiện ra chúng mà còn giúp xây dựng chúng dễ dàng hơn (kết hợp chúng với một hệ thống lớn hơn).

Nếu lập trình chức năng làm bạn quan tâm, bạn có thể xem các ngôn ngữ chức năng hiện đại như Haskell . Tôi nghĩ rằng mô-đun Parsec cung cấp một DSL mức cao đẹp (nó được gọi là thư viện kết hợp trong thuật ngữ chức năng) để phân tích cú pháp. Ngoài ra còn có các khung lập trình phản ứng chức năng cho Haskell cho phép bạn xây dựng GUI mạnh mẽ với một vài dòng mã.


1
-1 để trả lời câu hỏi "có / không" mà không nói có hoặc không. (Và bỏ qua các từ vựng cụ thể trong câu hỏi của OP.)
DougM

Trên thực tế, tôi nghĩ rằng điều này là đúng. UHLL không dành cho việc triển khai các tính năng đã tồn tại, nhưng kết hợp chúng theo những cách quá khó để suy nghĩ ở cấp độ thấp hơn. Bạn có biết gì không? Haskell không phải là nó.
david.pfx

Cảm ơn bạn đã phản ứng tích cực của bạn. Tôi thực sự chỉ nghĩ về việc xóa câu trả lời, vì tôi đồng ý với DougM. Tôi không gợi ý rằng chính Haskell là nó, thay vào đó tôi nghĩ rằng sử dụng các thư viện kết hợp trong các ngôn ngữ lập trình chức năng (như Haskell) là cách để kết hợp các thành phần được tạo sẵn.
Matthias P.

0

Tôi hy vọng rằng Lua, như được sử dụng bởi trò chơi để kịch bản các nhiệm vụ và giao diện của họ sẽ đáp ứng tiêu chí này. Ngoài ra còn có các ngôn ngữ cụ thể miền tương tự (và các tiện ích của trình tạo bản đồ) được sử dụng để cho phép các nhà thiết kế cấp độ nhanh chóng và dễ dàng nói "khi người chơi nói chuyện với Bob, bắt đầu Bob's Epic Quest".

Tôi biết thêm một vài ngôn ngữ bí truyền tập trung vào việc chuyển mã để mô tả những gì đang diễn ra, chứ không phải cách nó được thực hiện. Một số tập trung vào một cách tiếp cận dựa trên logic, khai báo. Một số tập trung vào lập trình phản ứng để làm điều đó. Một số tập trung vào các diễn viên để làm điều đó (đặc biệt là đối với những thứ cần phải song song). Một số tập trung vào việc đơn giản làm cho cú pháp trở nên tự nhiên hơn - với khẳng định là cú pháp tự nhiên dẫn đến ít lỗi hơn do dịch giữa ngôn ngữ tự nhiên và mã.

Không có gì thực sự hứa hẹn khi tạo ra một đơn hàng năng suất cao hơn cho nhà phát triển thứ hạng và tập tin.


1
Sẽ không phù hợp hơn khi là ngôn ngữ để mã hóa các chi tiết cấp thấp, dưới tầm với của UHLL?
david.pfx

0

Tôi nghĩ rằng REBOL có thể phù hợp với tất cả các tiêu chí của bạn. Bạn có thể tạo các ứng dụng GUI tương đối tinh vi trong một số dòng mã - tuy nhiên "đặc sản" của nó là tạo DSL.

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.