Tampaknya ada dua cara utama untuk membuat backend server web. Anda dapat menggunakan tumpukan LAMP, dengan kode sisi server dalam sesuatu seperti PHP atau Python (atau Ruby atau JavaScript, yang tidak dimulai dengan P.) Bahasa skrip ini cenderung diketik secara dinamis, dengan semua kelemahan di kinerja, kebenaran, dan pemeliharaan yang dibawa bahasa yang diketik secara dinamis, tetapi mudah untuk memperbarui server karena semua logika pembuatan halaman disimpan dalam skrip eksternal.
Gaya arsitektur utama lainnya yang digunakan secara luas adalah ASP.NET, di mana logika pembuatan halaman ditulis dalam kode yang dikompilasi. Ini cenderung menggunakan bahasa yang diketik secara statis, sehingga Anda mendapatkan kode yang memiliki manfaat dari kompiler, tetapi semua logika pembuatan halaman dikompilasi ke dalam server, yang berarti jika Anda perlu mengubah sesuatu, Anda harus menurunkan server dan ganti dengan bangunan baru.
Jadi itu membuat saya bertanya-tanya. Apakah ada bahasa skrip sisi server yang menggunakan pengetikan statis, untuk yang terbaik dari kedua dunia?
sumber
Jawaban:
PEMBARUAN: Solusi terkini lainnya mencakup AtScript
Anda harus mencoba Google Dart .
Ini memiliki pengetikan opsional, yang berarti bahwa Anda dapat menambahkan anotasi jenis yang akan diperiksa di 'diperiksa' alias mode pengembang saat runtime, tetapi mereka tidak diperlukan dan bahasa menyediakan banyak keuntungan dari bahasa dinamis lain seperti python. Namun, editor akan melakukan inferensi ketik untuk mencoba membantu Anda menemukan kesalahan sebelumnya. VM panah cepat dan dapat menghasilkan foto, yang dapat mempercepat waktu startup hingga 10x. Ini juga mengkompilasi ke javascript dan cepat .
Kelemahan utama di sini adalah bahwa itu adalah teknologi yang agak baru, jadi tidak ada banyak perpustakaan untuk itu, dan jujur, interoperabilitas dengan javascript tidak sesederhana seharusnya. Juga, bahasanya masih dalam pengembangan, sehingga ada perubahan yang pecah dari waktu ke waktu.
sumber
Pertanyaan Anda didasarkan pada beberapa asumsi yang salah.
Python, Ruby dikompilasi ke bytecode sebelum dieksekusi. Prosesnya otomatis, tetapi perubahan aplikasi memerlukan restart penuh. Node.JS berperilaku dengan cara yang sama tetapi mengkompilasi ke kode mesin.
Kode ASP.NET dapat dikompilasi dan disalin ke server atau dikompilasi secara dinamis berdasarkan permintaan dari kode sumber di server. IIS menangani kedua bentuk pembaruan tanpa waktu henti nol (permintaan pertama setelah pembaruan akan lambat.) Pembaruan tanpa waktu nol dimungkinkan dengan Python dan Ruby, tetapi dengan begitu banyak opsi penempatan, bukan sesuatu yang harus diterima begitu saja.
Berdasarkan itu, saya akan berpikir bahwa Anda akan senang dengan bahasa .NET.
sumber
Tidak ada alasan bahwa bahasa yang dikompilasi harus sangat diketik atau sulit diperbarui.
Anda mungkin ingin melihat beberapa pengaturan web erlang seperti Koboi, Webmachine, dan nitrogen. Dengan Dialyzer Anda bisa mendapatkan beberapa tipe yang sangat bagus untuk memeriksa kebenaran dan Anda dapat memuat kembali modul dengan cepat saat run time karena erlang dirancang untuk dapat meningkatkan perangkat lunak di tempat tanpa mengganggu pengguna yang ada.
Selain itu webmachine (yang paling sering saya gunakan) bisa sangat cepat. Saya telah melihat webmachine memiliki respons rata-rata pada titik akhir API kurang dari 10 ms pada simpul kecil amazon EC2!
Jika Anda ingin mengetik statis, coba kerangka Yesod yang untuk bahasa Haskell. Haskell sangat diketik dengan sistem tipe yang sangat kaya.
Saya belum menggunakannya secara pribadi, tetapi orang-orang yang saya kenal yang menggunakannya menyukainya.
sumber
IMHO, bahasa Web scripting terbaik statis-mengetik adalah D .
Seperti bahasa scripting yang ditafsirkan, ia dapat mengkompilasi skrip dengan cepat dan dengan kecepatan kilat.
Bahasa itu sendiri terasa seperti JavaScript berdaya super kuat, jauh lebih kuat daripada Go misalnya.
Semua hal konkurensi disembunyikan, seperti di PHP, dan templat dikompilasi dalam kode asli.
Sulit ditemukan lebih baik dari itu ...
sumber