Một ngôn ngữ đơn giản như Clojure có thể thay thế Html + JavaScript + CSS + Flash + Java Applets không? [đóng cửa]


8

Xin đừng bỏ qua ý tưởng ngay lập tức. Tôi biết rằng thật khó để cạnh tranh với một cách tiếp cận chủ đạo đã có hiệu quả (chủ yếu), vì vậy câu hỏi của tôi là một phần "hàn lâm".

Tôi cũng nhận thức được rằng ClojureScript tồn tại và rất tuyệt, nhưng nó là một bản vá cho một thứ xấu xí hiện có, một sự trừu tượng hữu ích.

Tuyên bố miễn trừ trách nhiệm: Tôi là một lập trình viên nhưng không phải là nhà phát triển web và đây là lý do tại sao tôi mời chào phản hồi của người khác. Là một nhà phát triển và sử dụng web mỗi ngày và đọc các chủ đề khác nhau và thỉnh thoảng xem nguồn html của một trang, tôi nghĩ rằng tôi có một số ý tưởng về phát triển web.

Nhưng dù sao, những vấn đề như tôi thấy chúng:

  • Web bắt đầu nhanh chóng, bẩn thỉu và thân thiện với mọi người, nhưng bây giờ cần rất nhiều kỹ năng để tạo ra một trang web tương tác hiện đại tốt, và bạn chỉ cần giỏi về nó để có thể cạnh tranh ngày hôm nay. Điều này thường có nghĩa là "học web trong 21 ngày" nhanh chóng và bẩn thỉu hoàn toàn không cắt giảm.
  • Html khởi đầu nhanh chóng và bẩn thỉu, như một giao thức thân thiện với mọi người. Nó hiện đang là một mớ hỗn độn.
  • Ngôn ngữ JavaScript không phải là không có sai sót của nó, nhưng ok.
  • CSS dường như là một nỗ lực tốt để dọn dẹp mọi thứ. Điều đáng để lưu giữ, ít nhất là ý tưởng của nó - rằng bạn có thể tạo kiểu cho sự xuất hiện trong một tệp riêng biệt.
  • Đặt tất cả lại với nhau - JavaScript + Html + CSS trở nên khá bẩn. Đã có những ý tưởng / công cụ tốt giúp giảm thiểu vấn đề như: Thư viện AJAX trừu tượng hóa các hương vị cụ thể của JavaScript. Các thư viện mạnh mẽ như JQuery, Node.js, v.v. cho phép thực hiện những điều hay ho trong JavaScript không hoàn hảo như hiện tại. Google Web Kit thực hiện rất tốt công việc dịch thiết kế GUI sang trang web. Các khung công tác Web MVC như ASP.Net, RoR, Django những thứ trừu tượng và làm rất nhiều công việc chân cho bạn, TUY NHIÊN , đây đều là những thứ trừu tượng trên cơ sở tào lao.
  • Nhu cầu về những gì web có thể làm ngày nay ngày càng tăng; ChromeBook của Google là một biểu hiện của điều đó. Bạn chạy trình duyệt toàn màn hình và mọi thứ bạn có thể muốn làm - tương tác bàn phím / chuột, âm thanh, video, trò chơi, văn bản, hình ảnh, thuyết trình power point - mọi thứ đều diễn ra bên trong nó. Cảm ơn các trình duyệt nhanh và máy tính nhanh và "đám mây", nhưng nó có thể tốt hơn rất nhiều!

Từ quan điểm đồ họa, trình duyệt chỉ là một khung hình chữ nhật mà bạn có thể vẽ bất cứ thứ gì trên đó. Hiện tại trình duyệt thực thi có trọng lượng nhiều megabyte vì nó phải biết cách phân tích Html, JavaScript, CSS và hiển thị tất cả.

Nếu bạn bắt đầu từ đầu và nhận ra rằng nó chỉ là một bức tranh được vẽ, thì tôi nghĩ trình duyệt có thể nhỏ hơn và đơn giản hơn nhiều. Cái giá phải trả là phải viết một chương trình hợp lệ cho mọi thứ theo một cú pháp vui nhộn như Lisp hoặc Clojure, ngay cả đối với những thứ đơn giản nhất như hiển thị nhãn. Đó từng là phần thú vị của html - nếu bạn chỉ muốn gõ đoạn văn, bạn sẽ gõ nguyên văn. Điều này hiếm khi xảy ra nữa. Nếu tất cả những gì bạn muốn là chỉ cần gõ đoạn văn bản, bạn vẫn phải suy nghĩ về kiểu dáng nội tuyến hoặc CSS, vị trí. Đoạn HTML sau (được tìm thấy trên trang đầu của trang web này)

<a href="/software/tagged/programming-languages" class="post-tag" title="show questions tagged 'programming-languages'" rel="tag">programming-languages</a> <a href="/software/tagged/learning" class="post-tag" title="show questions tagged 'learning'" rel="tag">learning</a>

không dễ chế tạo hơn một số cú pháp Lispy thay thế (và tôi không nghĩ nhiều về nó):

(create-link :target "/questions/tagged/programming-languages" :class "post-tag" :title "show questions tagged 'programming-languages'" :rel "tag" :content (text "programming-languages"))

Đây có thể không phải là một cú pháp Clojure hợp lệ; Tôi sắp xếp nó lên. Nó không phải cố gắng bắt chước html - thực tế đó là điểm bắt đầu từ đầu. Lợi thế rất lớn ở đây sẽ là điều đó (text ...)(create-link ...)không phải là một phần của ngôn ngữ cốt lõi mà trình duyệt sẽ phải hiểu. Trình duyệt chỉ cần hiểu Clojure "an toàn" (không thể xóa sạch ổ cứng của bạn) và có thể vẽ và phát nhạc cũng như nghe bàn phím và chuột và những thứ tương tự, và mọi thứ khác - vẽ văn bản, phát video , hiển thị một hộp tổ hợp và tương tác với nó sẽ được thực hiện trong một thư viện được thiết kế cẩn thận.

Tại sao tôi chọn Clojure? Đó là một ngôn ngữ nhỏ có thể thực hiện được rất nhiều, cộng với triết lý xây dựng các chương trình phức tạp từ các khối xây dựng đơn giản là rất hấp dẫn.

Tôi nghĩ rằng việc có thể hỗ trợ một ngôn ngữ mạnh mẽ như Clojure sẽ đủ để hoàn thành mọi thứ mà Html và Html5 và CSS và JavaScripts và Silverlight và Flash có thể thực hiện.

Phần nào đó của một cuộc thảo luận tiếp tuyến - Tôi nghĩ điều tương tự cũng đúng với LaTeX - nó có thể được làm lại với Clojure như một ngôn ngữ cơ bản, và một tệp nguồn sẽ là một chương trình đầy đủ phát ra một tệp PDF hoặc ps khi nó thực thi.

Tôi hiểu rằng bắt đầu từ đầu là RẤT CỨNG vì một trình duyệt hiện đại có rất nhiều tính năng hữu ích. Bắt đầu với một cơ sở sạch có thể trả hết mặc dù.

Suy nghĩ của bạn về ý tưởng điên rồ này là gì? Tôi nhận ra rằng các câu trả lời có thể sẽ chủ quan do bản chất của câu hỏi này, nhưng tôi vẫn tò mò bạn nghĩ gì về điều này.


2
Về lý thuyết, bạn có thể thay thế HTML bằng rất nhiều thứ, nhưng tôi không thấy làm thế nào người ta có thể hy vọng ép buộc (và đây là từ chính xác) mọi người khác quan tâm đến tiêu chuẩn của chính mình.
K.Steff

2
Compojure thực hiện một số điều bạn đang mô tả. Tất nhiên, nó nói "trình duyệt", giống như tất cả các khung web khác làm.
Robert Harvey


1
@Martin, Microsoft đã bắt đầu WPF từ đầu. Nó đã không cất cánh nhiều như một số người từng hy vọng vì nó quá phức tạp, nhưng một cái gì đó như WPF có thể đã thay thế HTML. Nó đã không làm. Ngoài ra, Apple đã đưa ra tiêu chuẩn Thunderbolt mà họ đã bắt đầu từ đầu và nó sẽ ra mắt. Nếu ý tưởng là tuyệt vời, cần thiết và có một sự thúc đẩy tốt đằng sau nó, thì nó có thể thành công. Đây có lẽ không phải là trường hợp với đề xuất của tôi, nhưng tôi nghĩ rằng sẽ ngày càng có nhiều nhu cầu cho các trình duyệt rất nhanh.
Công việc

1
Không chắc chắn làm thế nào tôi kết thúc bài viết này nhưng: xkcd.com/927
MonkeyZeus

Câu trả lời:


9

Trình duyệt có một điều dành cho họ là khá nhiều áp đảo tất cả các cân nhắc khác.

Thị phần.

Nói tóm lại, bạn không cần phải cài đặt chúng. Họ đã có trên máy của người dùng. Đừng đánh giá thấp lợi ích số ít này.

Mọi thứ đã trở nên tốt hơn nhiều với HTML5; bạn có thể viết một khách hàng phong phú trong đó, nếu bạn muốn và có nhiều khung công tác giúp quá trình này dễ dàng hơn.

Nếu bạn không thích ngôn ngữ bản địa của trình duyệt, bạn có thể sử dụng những thứ như CoffeeScript và Less để dọn sạch chúng. Javascript là ngôn ngữ máy mới. Đó là những gì làm cho những thứ như ClojureScript hoạt động.

Có một số công cụ như Websharper cho phép phát triển web bằng một ngôn ngữ duy nhất.

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.