Ur / Web baru murni bahasa fungsional untuk pemrograman web? [Tutup]

17

Saya menemukan proyek Ur / Web selama pencarian saya untuk kerangka kerja web untuk bahasa-bahasa seperti Haskell. Sepertinya proyek yang sangat menarik dilakukan oleh satu orang.

Pada dasarnya, ini adalah bahasa fungsional murni khusus domain untuk pemrograman web, mengambil yang terbaik dari ML dan Haskell. Sintaksnya adalah ML, tetapi ada kelas tipe dan monad dari Haskell, dan ini dievaluasi secara ketat. Sisi server dikompilasi ke kode asli, klien ke Javascript. Lihat halaman slide dan FAQ untuk keuntungan lain yang diiklankan.

Melihat demo dan kode sumbernya , saya pikir proyek ini sangat menjanjikan. Versi terbaru adalah sesuatu 20110123, sehingga tampaknya sedang dalam pengembangan aktif saat ini.

Adakah yang punya pengalaman lebih lanjut di sini? Apakah ada masalah / gangguan dibandingkan dengan Haskell, terlepas dari sintaksis ML yang sedikit lebih verbose?

Phil
sumber
Nitpick: Ur / Web bukan bahasa pemrograman untuk pemrograman web. Ur adalah bahasa pemrograman tujuan umum, Ur / Web adalah kerangka kerja web yang ditulis dalam Ur, yang memanfaatkan sistem jenis Ur untuk memberikan jaminan statis tentang keamanan dan fungsi aplikasi web. (Namun, agar adil: Ur dirancang khusus untuk mendukung Ur / Web.)
Jörg W Mittag

Jawaban:

24

Saya penulis Ur / Web. Saya baru saja membuat akun ini dan karenanya tidak memiliki cukup mojo untuk menanggapi tanggapan lain di masa lalu.

Ur / Web memungkinkan plugin untuk mengimplementasikan protokol web yang berbeda, jadi, jika Anda ingin melihat beberapa protokol lain selain CGI, FastCGI, atau HTTP, Anda mungkin dapat mengimplementasikannya, atau meminta saya untuk mengimplementasikannya. :) Saya benar-benar tidak menyadari sampai titik ini dari apa pun yang dicari orang alternatif.

Apa artinya bagi pemrograman SQL untuk merasa "berkumpul"?

Re: keluhan tentang tampilan "Web 1.0", saya pikir itu sebagai fitur yang dirancang untuk menghemat waktu bagi orang-orang yang tidak benar-benar ingin menggunakan bahasa ini. ;) Tidak ada fitur yang hilang yang saya sadari yang mencegah penulisan aplikasi yang sesuka Anda, dan saya yakin ini tampak jelas setelah Anda menguasai pengaturan dasar bahasa dan pustaka.

Akhirnya, ScantRoger, saya ingin mendengar tentang pengalaman Anda menerapkan Ur / Web dengan klien! Saya tidak tahu apakah ini bentuk yang buruk untuk memberikan informasi kontak saya di sini, tetapi ada tautan ke situs web pribadi saya di bagian bawah halaman depan Ur.

Adam Chlipala
sumber
11

Kami telah menggunakannya untuk klien yang sadar akan keamanan dan mencatat yang berikut:

  • Sebagai bahasa, itu menyenangkan untuk bekerja dengan. Kami tidak merasa sintaks berbasis ML sangat verbose dibandingkan dengan Haskell.
  • Ada beberapa cara berharga di luar demo dan dokumentasi yang disediakan di http://www.impredicative.com/ur/ .
  • Kami telah dimanja bahwa banyak bahasa lain sekarang memiliki antarmuka yang lebih cepat ke server web. Menggunakan FastCGI terasa seperti langkah mundur.
  • Pemrograman SQL terasa agak padat.
  • Memoles matematika Anda untuk sepenuhnya memahami apa yang dilakukan bahasa / kerangka kerja untuk Anda.

Setiap negatif dapat dikaitkan dengan fakta itu baru. Berikan cinta. Itu layak untuk itu. Mungkin Anda bisa menjadi advokat vokal dan membuat menemukan sumber daya Ur / Web kurang dari tugas.

Hanya sedikit Roger
sumber
Mungkin Anda bisa mengomentari jawaban Adam dan menjelaskan apa artinya "berkumpul"? Terima kasih sebelumnya.
Janus Troelsen
Juga, apa yang akan menjadi "antarmuka lebih cepat ke server web"? Sejauh yang saya tahu, FastCGI adalah salah satu protokol tercepat (lebih dioptimalkan) untuk bertukar data permintaan / respons HTTP. Dukungan Nginx untuk FastCGI lebih rendah daripada tidak ada, dan pada kenyataannya sebagian besar pengaturan PHP modern (misalnya) adalah Nginx + PHP-FPM lebih dari FastCGI. (Atau mungkin jawaban ini memiliki makna di tahun '11 ...)
Tobia
3

Satu hal yang saya khawatirkan adalah masih cukup baru. Haskell dan Erlang sama-sama sudah ada sejak lama. Ini berarti bahwa banyak bug mudah dalam kedua bahasa telah lama dikerjakan. Saya akan sangat skeptis bahwa kode mereka secepat dan aman yang dapat Anda lakukan di haskell karena alasan itu.

Demo juga terlihat sangat web 1.0.

Zachary K
sumber
Ya saya setuju demo terlihat agak primitif. Tetapi jika memiliki tingkat kekuatan yang sama dengan Haskell, saya percaya akan ada lebih banyak fitur segera. Saya juga skeptis pada bagian "lebih efisien daripada tipikal C". Tetapi pekerjaan ini cukup mengesankan jika semuanya benar-benar dilakukan oleh hanya 1 orang: D
Phil
Saya akan melihat lebih jauh pada suatu saat, saya harap mereka melakukannya dengan baik! Lebih banyak kerangka kerja dan orang-orang yang mencoba hal-hal baru selalu baik
Zachary K