Bagaimana Anda memilih untuk menggunakan bahasa pemrograman tertentu? [Tutup]

8

Saya sedang melakukan pembicaraan kecil antara rekan tim tentang bagaimana Anda memilih bahasa pemrograman untuk digunakan dalam proyek yang membuat saya berpikir bahwa ada banyak kriteria untuk memilih satu di awal proyek tetapi tidak ada standar nyata.

Apakah Anda memilih bahasa pemrograman untuk sintaks dan semantik? Atau apakah Anda memilih satu karena memiliki dukungan terbaik untuk melakukan hal-hal tertentu? Atau karena Anda memiliki perpustakaan yang lebih baik? Atau apakah Anda memilihnya untuk paradigma?

Kriteria apa yang Anda gunakan untuk memilih satu bahasa ketika Anda akan melakukan proyek?

Yesus
sumber
1
Aku benar-benar membuat diriku berpikir const Haskell :: [Constraint] -> ProgrammingLanguage.
dan_waterworth

Jawaban:

15

Kriteria saya, dalam urutan:

  1. Apakah ini alat yang tepat untuk pekerjaan itu? Misalnya, jika Anda sedang membangun klien desktop grafis, jaringan, Anda ingin menggunakan bahasa yang mendukung hal semacam itu di luar kotak seperti Java atau C #. OTOH, jika Anda bekerja pada sistem waktu nyata, Anda menginginkan sesuatu yang memberi Anda lebih mudah diprediksi dan kontrol tingkat rendah (seperti C).

  2. Apakah ini sesuai untuk lingkungan? Apakah kompiler / juru bahasa tersedia untuk platform target?

  3. Apakah itu sesuatu yang sudah saya kenal, atau apakah itu bahasa yang bisa saya ambil dengan cepat? Misalnya, karena sebagian besar pengalaman saya adalah dengan C dan C ++, saya dapat dengan cepat mengambil bahasa dengan sintaks yang sama (sekali lagi, Java atau C #) dengan mudah. Sesuatu yang ada di keluarga yang sama sekali berbeda (seperti Haskell) akan membuat saya lebih banyak waktu untuk merasa nyaman.

  4. Apakah itu sesuatu yang didukung dengan baik, dengan banyak referensi online dan di atas kertas?

John Bode
sumber
1
Untuk menambahkan ke # 1: Di mana benda ini digunakan? Apakah pembaruan otomatis penting? Jika tidak berbasis web Apakah harus lintas platform? Jika berbasis web, arsitektur server apa yang Anda gunakan? Saya mengubah jawaban Anda karena saya pikir implementasi adalah pertanyaan pertama yang diajukan. Ini seperti menanyakan 'apa' sebelum bertanya 'bagaimana', terutama dalam proyek yang dihadapi klien.
MetaGuru
5

Saya rasa banyak faktor yang muncul

  1. Apakah bahasa tersebut cocok untuk jenis aplikasi yang akan Anda kode?

  2. Seberapa mahir Anda dalam bahasa pemrograman? (Menjadi lebih penting karena tenggat waktu semakin kecil)

  3. Fitur perpustakaan dan bahasa untuk area tertentu dalam aplikasi Anda.

  4. Apakah ini bahasa baru? Apakah sudah diuji dan terbukti di domain saat ini?

  5. Berapa banyak orang yang benar-benar kode di dalamnya? Penting jika Anda membutuhkan bantuan dan ada komunitas yang aktif dan besar

JohnP
sumber
1

Kriteria penting bagi saya adalah:

  • pengalaman sebelumnya dengan bahasa tersebut.
  • dukungan alat / vendor untuk bahasa tersebut.
  • dukungan perpustakaan / ekosistem untuk tugas dan bahasa.

Saya akan mengatakan sintaks dan paradigma tidak penting.

Saya tidak akan memilih bahasa baru karena saya menyukai sintaks atau paradigma tetapi memiliki alat yang berfungsi buruk dan perpustakaan minimal yang tidak bisa melakukan sebagian besar dari apa yang saya butuhkan.

FrustratedWithFormsDesigner
sumber
1

Bahasa adalah alat. Seperti halnya alat apa pun, Anda harus mempertimbangkan beberapa hal:

1) Apakah Anda memiliki akses ke alat ini?
2) Apakah Anda tahu cara menggunakan alat ini?
3) Dari alat yang memenuhi kriteria 1 & 2, mana yang terbaik untuk pekerjaan Anda?

Jika Anda hanya memiliki satu alat, jawabannya sederhana. Jika Anda memiliki selusin alat, maka Anda perlu melihat hosting, biaya perawatan, dan masalah perangkat lainnya.

Satanicpuppy
sumber
1

Ini mungkin akan membuat saya downvoted, tetapi yang paling penting bagi saya adalah sintaksis. Dengan program menghabiskan lebih banyak waktu dan upaya dalam pemeliharaan daripada dalam penulisan asli hari ini, kemampuan untuk mengambil sepotong kode asing (milik orang lain, atau milik saya jika saya menulisnya lebih dari 6 bulan yang lalu) dan dengan cepat menentukan maksudnya secara statistik adalah salah satu keterampilan paling penting yang dapat dimiliki oleh seorang programmer modern. Bahasa yang bersih dan mudah dibaca sangat membantu dalam hal ini.

Setelah itu, tanpa urutan tertentu,

  • Perpustakaan standar yang bagus
  • IDE dan alat yang bagus
  • Komunitas yang kuat, terutama ekosistem sumber terbuka
  • Kemampuan untuk menghasilkan produk akhir yang cepat dan efisien
Mason Wheeler
sumber
2
Jadi, dengan argumen itu, bagi Anda, Ada adalah pilihan pertama Anda dan PERL adalah penemuan Iblis, apakah saya benar?
John R. Strohm
@ John: Bahasa pilihan saya sebenarnya adalah Delphi, yang merupakan sepupu jauh Ada. Sintaks yang diturunkan dari Pascal bagus, tetapi Ada tidak pernah benar-benar mengembangkan komunitas yang kuat. Sedangkan untuk Perl, saya akan membiarkan Alan Kay menjawabnya. "Perl adalah contoh lain dari mengisi kebutuhan kecil jangka pendek, dan kemudian menjadi masalah nyata dalam jangka panjang." Ketika Anda mempertimbangkan bagaimana perangkat lunak digunakan dalam setiap aspek kehidupan hari ini, tidak sulit untuk membuat kasus bahwa dunia akan menjadi tempat yang jauh lebih baik jika Perl dan C tidak pernah dianggap serius oleh industri komputasi. Tapi 20/20 belakang, seperti yang mereka katakan ...
Mason Wheeler
1

Saya hanya menggunakan bahasa yang saya tahu paling baik:

  • Java untuk hampir semuanya
  • SQL untuk basis data
  • Skrip shell kecil & skrip baris perintah
  • HTML, CSS, dan JavaScript untuk front-end Web

Saya tidak mencoba belajar bahasa baru ketika saya memulai proyek baru yang serius. Saya menggunakan apa yang saya tahu.


sumber
-1 i) Bagaimana cara menjawab pertanyaan OP? ii) Maaf, dengan begitu banyak DSL baru yang dibuat setiap hari, saya benar-benar tidak berpikir itu perilaku yang bisa dibanggakan. iii) Programmer Pragmatik memberikan saran yang sangat populer (dan membantu): belajar bahasa baru setiap tahun.
rsenna
1
@ rsenna: bermain Avocado Iblis, saya pikir kadang-kadang kita bisa sedikit macho tentang kemampuan kita untuk belajar bahasa baru. Ada sesuatu yang bisa dikatakan untuk memulai pekerjaan dalam bahasa yang Anda kenal dengan baik terlebih dahulu, mengidentifikasi di mana titik nyeri Anda, dan kemudian mencari bahasa yang benar-benar akan membantu Anda menyelesaikannya.
Paul D. Waite
1
+1 untuk membatalkan -1 itu, karena di hampir setiap situasi dunia nyata Anda akan melakukan pekerjaan yang lebih baik dengan bahasa yang Anda paling tahu, daripada Anda akan menggunakan bahasa yang berbeda yang lebih cocok untuk masalah tersebut, tetapi yang Anda inginkan kurang akrab atau tidak terbiasa dengan.
Carson63000
0

Biaya untuk membangun aplikasi hampir sebanding dengan ukuran kode, jadi untuk meminimalkan biaya saya memilih bahasa yang paling kuat yang telah digunakan untuk memecahkan masalah yang sama. Saya tidak khawatir tentang jumlah programmer yang tahu bahasa karena saya tidak akan membutuhkan banyak. Saya juga mencoba menghindari vendor lock-in, jadi saya lebih suka solusi terbuka.

kevin cline
sumber