Haruskah saya repot belajar tentang bahasa kecil atau niche? [Tutup]

22

Jika Anda menelusuri pertanyaan kode golf di StackExchange , Anda melihat satu ton bahasa dunia non-standar tetapi dunia nyata (Misalnya bukan otak-f * ck) seperti F # , Scala , R , J dan Clojure . Mengunjungi situs web mereka, beberapa bahasa terlihat menarik untuk memecahkan masalah dalam bahasa apa pun yang sudah Anda gunakan.

Namun ada coding di waktu luang, dan coding untuk uang. Hal yang paling dekat dengan kebenaran tentang siapa yang menggunakan bahasa adalah Indeks TIOBE , yang tidak mencantumkan bahasa di atas dalam 10-15 besar. Yang membuat saya bertanya-tanya apakah saya akan pernah menggunakannya.

Haruskah saya repot-repot mempelajari beberapa bahasa niche kecil? Sepertinya saya tidak akan menghasilkan uang, dan beberapa mungkin akan gagal juga.

TheLQ
sumber
4
Jika yang Anda pedulikan hanyalah menghasilkan uang, mengapa Anda mengajukan pertanyaan ini?
ChaosPandion
4
F # adalah bahasa kelas pertama pada VS2010. Saya tidak akan mengatakan itu non-standar, dan saya pikir itu akan mendapatkan adopsi luas segera.
Brian R. Bondy
8
Jika yang Anda inginkan hanyalah menghasilkan uang, Anda sebaiknya tidak memprogram. Bagaimana kalau menjadi seorang aktris populer?
P Shved
2
@TheLQ: Anda ingin menjadi arus utama? Anda takut mengambil langkah apa pun yang Anda tidak tahu berapa banyak uang yang akan dibawa sebelum Anda melakukannya? Maka tolong, puas juga dengan pembayaran utama. Ini semua yang akan Anda dapatkan dengan mentalitas Anda, jika sama sekali.
Ingo
1
Beberapa bahasa khusus bisa membuat Anda lebih produktif, sehingga memungkinkan Anda mendapatkan lebih banyak uang, daripada bahasa umum.
Giorgio

Jawaban:

25

Hipotesis Sapir-Whorf . Ini menyatakan, kurang lebih, bahwa apa yang dapat Anda pikirkan dibatasi oleh apa yang Anda miliki untuk menggambarkan bahasa. Konsekuensi dari ini adalah bahwa orang multi-bahasa dapat berpikir dengan cara yang tidak bisa dilakukan oleh penutur satu bahasa.

Banyak orang (termasuk saya) berpikir ini juga berlaku untuk pemrograman. Belajar Lisp, misalnya, mengajarkan Anda cara berpikir yang sama sekali baru tentang masalah yang dapat Anda terapkan ke C # atau Java atau Python. Semakin banyak paradigma bahasa yang Anda pelajari, semakin banyak alat yang ada di kotak alat mental Anda, terlepas dari bahasa apa yang sebenarnya Anda gunakan.

Fishtoaster
sumber
1
Persis. Sebagai contoh, saya menemukan bahwa dalam beberapa situasi, bahasa murni fungsional tidak cukup. Namun saya selalu menemukan diri saya menarik konsep fungsional dalam bahasa yang mendukung pemrograman fungsional (mis. Javascript, c ++ 0x, dll).
Kamera
4
Saya senang bahwa orang terus menggunakan hipotesis Sapir-Whorf (sebagian besar, meskipun tidak sepenuhnya didiskreditkan dalam Linguistik) sebagai analogi. Saya pasti setuju dengan sentimen sehubungan dengan pemrograman, tetapi saya pikir analogi yang berbeda sebaiknya ditemukan jika kita ingin orang menganggap kita serius.
Jonathan Sterling
1
Saya tidak percaya hipotesis, kalau tidak kita tidak akan pernah bergerak melampaui geraman. Demikian pula untuk pemrograman, jangan berpikir orang dibatasi oleh bahasa.
John Smith
24

Saya akan belajar bahasa apa pun yang memperkenalkan saya pada konsep dan paradigma yang belum pernah saya lihat sebelumnya. Itu sebabnya saya belajar haskell dan skema - mereka memperkenalkan saya ke pemrograman fungsi dan pemrograman sebagian besar fungsional masing-masing. Saya tidak akan terlalu peduli apakah skema dan haskell digunakan secara luas, selain dari bagaimana itu akan mempengaruhi dokumentasi dan sumber daya yang tersedia.

Jadi pada dasarnya, jika bahasa niche kecil memperkenalkan Anda pada konsep dan paradigma baru (terutama yang dapat Anda terapkan ke bahasa lain), maka pelajarilah!

Alasan lain Anda mungkin ingin mempelajari bahasa 'kecil / niche':

  • Bahasa ini memungkinkan Anda untuk memecahkan masalah (jenis) tertentu yang 'lebih baik' (lebih cepat, dengan solusi yang lebih baik, lebih mudah dibawa, dll) daripada bahasa lainnya

  • Bahasa ini memungkinkan Anda untuk memecahkan masalah seperti halnya bahasa populer, tetapi memiliki beberapa fitur keren yang Anda sukai (mis. Clojure)

  • Anda ingin membantu mengembangkan bahasa
Cam
sumber
7

Yah saya menggunakan Clojure (salah satu "bahasa khusus" yang Anda sebutkan) dan menemukan bahwa itu adalah pengalaman yang sangat berharga.

  • Itu membuat saya jauh lebih produktif (vs. Java dan C # yang saya gunakan sebelumnya). Ketika saya menjalankan bisnis saya sendiri, produktivitas sama dengan uang :-) jadi dalam pengertian itu Clojure telah berhasil, setidaknya dari sudut pandang saya.
  • Saya telah mempelajari teknik-teknik baru yang telah menjadikan saya pengembang yang lebih baik (khususnya seputar konkurensi, pemrograman fungsional, abstraksi, metaprogramming, dll.). Bahkan jika saya kembali menulis Java, saya masih bisa memanfaatkan pengetahuan ini
  • Benar-benar menyenangkan mempelajari bahasa baru yang sangat berbeda dari apa yang telah saya lakukan sebelumnya. Jika Anda benar-benar menikmati apa yang Anda lakukan, itu bermanfaat dalam dirinya sendiri.
  • Karena ini adalah bahasa JVM, tidak masalah jika set pustaka relatif kecil karena Anda masih mendapatkan akses ke seluruh set pustaka di ekosistem Java / JVM. Ini adalah keuntungan besar untuk bahasa yang berjalan di JVM (hal yang sama berlaku untuk Scala)

Saya pribadi memberi perhatian terbatas pada hal-hal seperti TIOBE - mereka tidak benar-benar memberi tahu Anda banyak hal di luar apa yang telah populer di masa lalu. Berguna mungkin jika Anda ingin pekerjaan mempertahankan sistem lama, kurang jika Anda ingin belajar dan memperluas wawasan Anda.

mikera
sumber
4

Alasan untuk mempelajari bahasa khusus jarang harapan bahwa Anda akan menggunakannya secara langsung (untuk uang atau sebaliknya). Biasanya untuk mempelajari beberapa aspek atau gaya pemrograman baru. Melakukannya cenderung membuat Anda menjadi programmer yang lebih baik (dan ya, mungkin lebih berharga), bahkan jika Anda tidak pernah menggunakan bahasa itu untuk menghasilkan kode "produksi".

Jerry Coffin
sumber
4

Berbicara sebagai pengembang profesional dalam bahasa khusus , dimungkinkan untuk mencari nafkah. Ada kelebihan dan kekurangan, meskipun.

Hal-hal yang lebih sulit:

  • Mencari pekerjaan membutuhkan waktu lebih lama
  • Pekerjaan cenderung mengharuskan Anda untuk pindah
  • Anda akan mendapatkan sedikit rasa hormat dari programmer utama (dan karenanya, lebih banyak perlawanan).

Hal-hal yang lebih mudah:

  • Kolam kecil programmer membuat bersaing untuk pekerjaan lebih mudah
  • Anda dapat mengetahui setiap programmer yang penting di bidang Anda
  • Mengembangkan reputasi lebih mudah daripada di arus utama

Hal-hal yang adil adalah :

  • Bayaran cenderung lebih bervariasi, karena ada beberapa standar
  • Banyak waktu dihabiskan untuk mendidik orang lain tentang kekuatan dan kelemahan niche Anda

Secara keseluruhan, jika karier adalah urusan Anda, Anda tidak boleh menjadi kuda poni satu trik, arus utama, atau niche.

Joe Z
sumber
2

Saya saat ini belajar Ruby dengan menggunakannya untuk memecahkan masalah Project Euler , hanya karena saya menghabiskan sebagian besar hari saya pemrograman dalam C atau PHP (dan kadang-kadang C #) dan saya ingin memperluas wawasan saya. Sejauh ini benar-benar membuka mata saya untuk apa yang bisa dilakukan. Bahkan jika saya tidak pernah menggunakannya untuk pekerjaan "nyata", saya percaya waktu yang dihabiskan untuk mempelajarinya akan bermanfaat.

tcrosley
sumber
+1 untuk euler proyek. Saya melakukan hal yang sama ketika saya sedang belajar python
1

Setuju dengan semua poin yang disebutkan. Motivasi lain untuk mempelajari bahasa khusus adalah kemungkinan bahwa suatu hari bahasa tersebut akan menjadi sangat populer. Dalam situasi ini, investasi awal Anda dalam bahasa tersebut dapat memberi Anda petunjuk tentang kerangka kerja yang berpengaruh, dan elemen-elemen bahasa yang mungkin banyak diminati di masa depan.

Jika bahasa tersebut menjadi populer, Anda sudah akan terampil di dalamnya, dan karena itu Anda akan banyak diminati.

Peluang rendah, berpotensi imbalan tinggi.

MM01
sumber
2
Secara pribadi saya akan selalu mencoba untuk belajar konsep daripada bahasa ... ruang otak terbatas jika Anda tahu apa yang saya maksud.
ChaosPandion
1

Seperti yang hampir dikatakan orang lain, mempelajari bahasa khusus hanya karena itu bahasa khusus tidak masuk akal. Namun, sering kali, bahasa khusus mengeksplorasi konsep lebih jauh / lebih dalam daripada yang bisa dilakukan atau diinginkan oleh bahasa umum.

Dan terkadang bahasa khusus sudah ada jauh, jauh lebih lama daripada bahasa umum mana pun - Smalltalk, Prolog, dan bahasa Lisp melompat ke pikiran. Mereka mungkin tidak populer, tetapi mereka juga tidak menghilang.

Frank Shearar
sumber