Kinh nghiệm của bạn với haxe và các ngôn ngữ khác biên dịch sang PHP? [đóng cửa]


23

Tôi muốn nghe ý kiến ​​từ những người đã sử dụng một ngôn ngữ biên dịch thành php. Một ngôn ngữ như vậy tôi biết là Haxe . Những cái khác tôi đã đọc là KiraPharen .

Làm thế nào tốt những ngôn ngữ này tích hợp với PHP? Có tương đối dễ dàng để viết một trình cắm thêm cho một CMS CMS trong chúng không?

Làm thế nào trưởng thành là thực hiện và các công cụ của họ?

Bạn có muốn giới thiệu chúng cho ai đó phải sử dụng php cms nhưng ghét php không?


1
HaXe là tốt. Atleast cho nó đi. Tôi mới cài đặt nó, tải lên và thử nghiệm trang PHP đầu tiên của tôi sau 9 phút (bao gồm cả thời gian để tải haxe), thật dễ dàng và có một cộng đồng tuyệt vời đằng sau nó với rất nhiều tài liệu
JTS

Tôi đã tạo pratphall.org , một ngôn ngữ được gõ để biên dịch sang PHP.
Chad Retz

Câu trả lời:


9

Tôi là người tạo ra Pharen, người biên dịch phương ngữ Lisp thành PHP. Để trả lời câu hỏi của bạn, nó tích hợp khá tốt với PHP. Thật dễ dàng để bao gồm các chức năng gọi thư viện hiện có / sử dụng các đối tượng của họ.

Về phần trưởng thành, chưa có bất kỳ việc sử dụng mã Pharen nào được sản xuất. Mặc dù về mặt ngôn ngữ, mọi thứ bạn muốn đều có và đang hoạt động, những thứ như triển khai vẫn cần thêm một chút nỗ lực.

Điều đó nói rằng, nếu bạn chọn Pharen, tôi rất sẵn lòng giúp đỡ nhưng tôi có thể. Xin vui lòng cho tôi biết nếu bạn có bất kỳ câu hỏi nào khác!


"Thật dễ dàng để bao gồm các chức năng gọi thư viện hiện có / sử dụng các đối tượng của họ." Cần đủ để làm việc với hầu hết các thư viện bên ngoài, bao gồm API của plugin cho CMS. Bài viết gốc không quá cụ thể về ý nghĩa của sự tích hợp. Tôi cũng giải thích trạng thái trưởng thành (thiếu) của nó.
Scriptor

Cảm ơn bạn đã trả lời và đề nghị của bạn để giúp tôi. Là pharen comptabile với bất kỳ lisp khác? Nó có các toán tử riêng của nó hay nó chỉ sử dụng các toán tử trong php? Ví dụ: == trong pharen có hoạt động giống như trong php không?
Kim

Đó là phương ngữ riêng của nó ngay bây giờ, với một số cảm hứng từ Clojure. Lý do chính cho điều đó là các tiêu chuẩn khác có rất nhiều hành lý, như thư viện tiêu chuẩn của riêng họ, sẽ không cần thiết. Nó sử dụng các toán tử tương tự như PHP, vì vậy bạn có thể sử dụng (== "foo" "foo")
Scriptor

3

Josh K đúng về một số tính toán, tốt hơn là nên biết php để nhắm mục tiêu tốt hơn thời gian chạy php. Tuy nhiên, lý do chính cho điều này không phải là haxe là một trình biên dịch tồi, mà php là một ngôn ngữ "bình dị".

Php có một số lượng đáng kinh ngạc các chức năng trong không gian tên cơ sở của nó. Vì vậy, có rất nhiều từ khóa dành riêng và các chức năng đặc biệt mà bạn phải biết để tránh xung đột khi đặt tên. Một số người ổn với điều này, tôi nghĩ đó là thiết kế ngôn ngữ khủng khiếp. HaXe khắc phục vấn đề này bằng cách tạo không gian tên riêng trong php.

Php tự động biến một số nguyên thành float khi tràn. Điều này tất nhiên phá vỡ việc gõ nghiêm ngặt mà các ngôn ngữ như HaXe dựa vào để đảm bảo an toàn kiểu (và để kích hoạt những thứ đơn giản như thuật toán băm nhanh). Tôi nghĩ rằng đây là một tính năng ngôn ngữ khủng khiếp. Ngoài ra, haXe không thể giúp đỡ ở đây, vì hành vi php này không thể thay đổi.

Vì vậy, có bạn đi. Tôi nghĩ haXe làm cho php tốt hơn vì nó dọn sạch một vài lỗ hổng ngôn ngữ (nhận thức) cho php. Tuy nhiên, có rất nhiều điều kỳ lạ về php, mà cuối cùng bạn cần phải học nó tốt để sửa một số đặc điểm riêng của nó.

Tất cả những gì đang được nói, ngôn ngữ haXe là khá tuyệt vời. Nó cho phép bạn tổ chức mã php của mình thành các không gian tên tốt hơn, có hệ thống loại khá tinh vi, có một số tùy chọn biên dịch có điều kiện để xử lý các vấn đề cụ thể của php và có một vài thao tác tài liệu hay. Vì những lý do đó, không phải là một lựa chọn tồi để thiết kế một thư viện tinh vi ... ngay cả đối với một cái gì đó như php.

Các liên kết có liên quan:

Phép thuật php: http://haxe.org/doc/advified/magic

(cũng tìm "quirks nền tảng" trong phần cộng đồng của trang web haxe.org chính)


Cảm ơn câu trả lời của bạn. Bạn có bất kỳ vấn đề nào khi gọi php từ haxe hoặc ngược lại không?
Kim

Vậy PHP (ngôn ngữ động) có vấn đề với haXe (phụ thuộc vào kiểu gõ tĩnh)? Kinh ngạc! PHP là một ngôn ngữ hơi lạ, nhưng với nguồn gốc từ Perl thì có thể hiểu được. Những gì bạn tin là "tính năng ngôn ngữ khủng khiếp" và "tính năng động tiêu chuẩn" dường như khá giống nhau.
Josh K

1
Bạn có thể có các tính năng ngôn ngữ tĩnh bên cạnh các tính năng thời gian chạy động. Chúng không loại trừ lẫn nhau. HaXe sử dụng chỉ báo Loại "Động" cho mục đích này. Không gian tên và các hoạt động toán học thực sự không liên quan gì đến tính năng động của ngôn ngữ. Đây chỉ là những điều kỳ quặc của php.
jdonaldson

2

Rác khủng khiếp

Tôi đã sử dụng haXe theo đề nghị của ai đó và sẽ không bao giờ giới thiệu điều đó cho bất kỳ aibất kỳ lý do gì .

Biên dịch chéo giữa các ngôn ngữ dẫn đến nhầm lẫn, sai lầm và lỗi. Nó cũng làm cho gỡ lỗi một nhiệm vụ hoành tráng.

Bạn có muốn giới thiệu chúng cho ai đó phải sử dụng php cms nhưng ghét php không?

Không! Tôi khuyên bạn nên học PHP đúng cách hoặc sử dụng một CMS khác. Vì có vẻ như bạn không có lựa chọn nào trong phần CMS, nên lựa chọn khác là học ngôn ngữ và đối phó với nó.

Làm thế nào trưởng thành là thực hiện và các công cụ của họ?

Trẻ ở mức tốt nhất, không ổn định ở mức tồi tệ nhất. Bạn sẽ không tìm thấy nhiều sự hỗ trợ cho họ.


Có vẻ như bạn có công việc viết một cái gì đó cho một ứng dụng PHP. Bên cạnh các vấn đề rõ ràng là mã của bạn sẽ phải nhập các hàm / đối tượng PHP hiện có để hoạt động và các rác được đề cập ở trên, bất kỳ ai khác đang làm việc này giờ đây sẽ phải học ngôn ngữ của bạn để biên dịch ngôn ngữ. Nếu không, họ sẽ gặp rắc rối với mã "PHP" mỏng manh đó là kết quả. Điều này cũng có nghĩa là nếu họ làm việc với nó, bạn sẽ phải thực hiện lại những thay đổi đó trong mã của mình hoặc có nguy cơ mất những thay đổi mà bất kỳ ai khác thực hiện.

Nếu bạn ghét làm việc với PHP, hãy đợi cho đến khi bạn phải làm việc với một số mã mà các ngôn ngữ đầu ra.


"" Biên dịch chéo giữa các ngôn ngữ "

Nó dẫn đến sự nhầm lẫn, sai lầm và lỗi. Khi bạn viết mã đang được dịch sang ngôn ngữ khác, bạn sẽ tự xóa mình khỏi nguồn ban đầu. Những gì bạn viết và những gì được tạo ra hoàn toàn phụ thuộc vào trình biên dịch. Viết mã để tạo mã sẽ gây nhầm lẫn, bạn sẽ mắc lỗi và bạn sẽ tìm thấy những lỗi bạn không mong đợi. Tôi không khuyên bạn nên sử dụng chúng.


5
Hãy cố gắng đừng quá xúc động về điều này và cố gắng đừng đưa ra quá nhiều giả định. Điều gì khiến bạn nghĩ rằng tôi đã không học php "đúng cách"? Làm thế nào khác tôi sẽ đến ghét nó? Mã được tạo không phải là vấn đề đối với tôi, vì tôi không muốn chạm vào nó. Gỡ lỗi không phải là một vấn đề, vì tôi rất hiếm khi sử dụng trình gỡ lỗi. Các nhà phát triển khác cũng không phải là một vấn đề, vì hầu hết các plugin CMS không phải là dự án lớn. Bạn tuyên bố rất rộng về haxe. Bạn có thể vui lòng sao lưu chúng với các ví dụ? Nó sẽ được nhiều đánh giá cao. Ngoài ra, bạn đã sử dụng nó bao lâu rồi?
Kim

5
Vì vậy, bạn đang nói rằng trình biên dịch tạo mã php lỗi? Đó là một trong những tuyên bố rộng rãi mà tôi muốn bạn sao lưu bằng một ví dụ. Một yêu cầu rộng rãi khác là "Biên dịch chéo giữa các ngôn ngữ dẫn đến nhầm lẫn, sai lầm và lỗi." Hãy cho ví dụ cho điều đó. Nếu bạn muốn thảo luận liệu PHP có phải là ngôn ngữ đáng sử dụng hay không, tôi chắc chắn bạn sẽ tìm thấy hàng ngàn người trên internet, những người sẽ làm điều đó với bạn. Tôi không phải là một trong số họ.
Kim

10
"Biên dịch chéo giữa các ngôn ngữ - Nó dẫn đến sự nhầm lẫn, sai lầm và lỗi". Thật kỳ lạ, và ở đây, tôi đã nghĩ rằng bất kỳ trình biên dịch nào cũng làm điều đó - dịch một ngôn ngữ sang ngôn ngữ khác (như thành phần lắp ráp, mã C, JVM ...).
foo

1
Trên thực tế, là một lập trình viên chuyên nghiệp và có nhiều ngôn ngữ / khung / API trong vành đai của tôi (java, c ++, python, php, ruby, javascript, v.v.), HaXe là ngọn hải đăng đối với tôi. Lần đầu tiên tôi bắt gặp một ngôn ngữ mà tôi thấy đã làm mọi thứ đúng, và đó là "ok" ở mọi phía. Tôi không thể hiểu làm thế nào ai đó có thể không thích nó. Đối với PHP, nó bị hạn chế.
dagnelies

1
Hoàn toàn đồng ý với hầu hết các điều khoản (đặc biệt về haxe). Nhưng làm việc với php bằng cú pháp lisp thực sự rất thú vị! Vì vậy, tôi muốn ở trong một phần kỳ lạ của mã chỉ để cho vui.
cnd

1

Tôi đã sử dụng nhiều trình dịch ngôn ngữ và cuối cùng bạn luôn phải lo lắng về vấn đề mà bạn đang cố tránh ... Vì vậy, nếu bạn ghét PHP, hãy đợi cho đến khi bạn gặp vấn đề thực sự khó hiểu đòi hỏi bạn để có được cổ sâu vào ruột của nó. Mặc dù, tôi phải là một kẻ háu ăn, bởi vì tôi nghĩ việc nhắm mục tiêu neko bằng haXe sẽ khá tuyệt.


Tất cả các trình biên dịch là "dịch ngôn ngữ". Bạn đang nói rằng chúng ta không nên sử dụng trình biên dịch? ;) Việc bạn có phải "cắm cổ sâu vào ruột" hay không hoàn toàn phụ thuộc vào việc trình biên dịch có làm tốt công việc của mình hay không, đó chính xác là những gì tôi đang cố gắng tìm hiểu. Đánh giá từ các câu trả lời ở đây, tôi đoán tôi sẽ phải tự điều tra.
Kim

Tôi muốn nhắm mục tiêu Neko với haXe, nhưng tôi không muốn phụ thuộc vào httpd của Apache. Tôi thích có thể có một sự lựa chọn trên các máy chủ web.
stesch

1

Nếu đó là để tạo một plugin cho PHP CMS, hãy ở lại với PHP.

Mặc dù tôi sử dụng HaXe và thấy nó thực sự tuyệt vời, tôi không khuyên dùng nó trong trường hợp này. Nó chỉ đơn giản là quá nhiều chỉ dẫn và chi phí sẽ cao hơn mức tăng cho chỉ một plugin nhỏ.


-1

Tôi đã thử Haxe và tôi không thể khuyên bạn nên phát triển web.

Tuy nhiên, tôi thích cách tiếp cận, đó là lý do tại sao tôi đã triển khai ngôn ngữ tối giản của riêng mình , nó cũng biên dịch thành PHP, nhưng theo cách trực tiếp hơn Haxe, do đó vẫn dễ dàng gỡ lỗi mã được tạo và tương tác với mã PHP hiện có .


Bạn có thể giải thích lý do tại sao bạn không đề xuất Haxe?
Jay Elston
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.