Saya sedang membaca esai Paul Graham - Beating The Averages (2003) dan inilah yang dia katakan:
Semakin banyak rasa IT yang dimiliki deskripsi pekerjaan, semakin tidak berbahaya perusahaan itu. Jenis teraman adalah yang menginginkan pengalaman Oracle. Anda tidak perlu khawatir tentang itu. Anda juga aman jika mereka mengatakan mereka menginginkan pengembang C ++ atau Java. Jika mereka menginginkan programmer Perl atau Python, itu akan sedikit menakutkan - itu mulai terdengar seperti sebuah perusahaan di mana sisi teknis, setidaknya, dijalankan oleh peretas nyata
Sekarang, ini adalah esai yang bertanggal. Namun, saya gagal melihat bagaimana menggunakan bahasa yang tidak umum (C / C ++ / Java, C #) akan menjadi 'kurang berbahaya' . Jika programmer dari suatu organisasi sangat fasih dengan bahasa pengembangan mereka harus sama-sama mahir dalam mengeluarkan kode pada kecepatan yang layak. Bahkan jika Anda menggunakan bahasa yang tidak umum tidak akan masalah pemeliharaan / peningkatan menghantam wajah Anda karena tidak terlalu banyak programmer akan tersedia, dalam jangka panjang?
Untuk membuat sistem quick-n-dirty saya setuju, bahwa beberapa bahasa memungkinkan Anda lepas landas relatif lebih cepat daripada yang lain. Tetapi apakah esai / komentar Paul Graham masuk akal di tahun 2012 dan selanjutnya? Jika sebuah startup menggunakan bahasa IT tipikal untuk pengembangan, mengapa kompetisinya tidak terlalu khawatir?
Saya gagal melihat bagaimana bahasa itu sendiri membuat perbedaan. IMHO, itu adalah pengalaman pengembang dengan bahasa yang penting dan ketersediaan kerangka kerja sehingga Anda KERING (jangan ulangi diri Anda sendiri) tidak hanya coding dalam bahasa tertentu.
Apa yang saya lewatkan? Apakah ini menyiratkan bahwa para pemula lebih baik memilih bahasa yang tidak bercitarasa IT (bahkan jika para pengembang mungkin sangat mahir dalam hal itu)? Apa kekuatan (pemrograman) ekonomi / pasar di balik klaim ini?
PS: 'lingua obscura' tidak dimaksudkan untuk melukai perasaan siapa pun :)
Jawaban:
Toolchain adalah gejala.
Ketika sebuah perusahaan memilih Oracle, ini merupakan indikasi:
Ketika perusahaan mengambil Python, ini adalah tanda:
Ketika keduanya bertemu, strategi perusahaan besar adalah untuk menghindari risiko, menggunakan momentum mereka dan memasarkan pesaing. Strategi persaingan kecil adalah untuk pertama-tama mengalahkan persaingan ke pasar, dan kemudian tetap menjadi produk unggulan. Jika perusahaan kecil mengambil pertempuran yang tepat, mereka dapat dengan mudah mengalahkan perusahaan besar hanya dengan menjadi lebih cepat dan lebih reaktif, dan mengambil keuntungan dari kecenderungan perusahaan besar untuk menghindari risiko.
sumber
Pilihan bahasa yang tidak jelas akan menunjukkan kepercayaan diri teknis yang tidak biasa dalam sebuah startup. Perusahaan yang rela mengabaikan kebijaksanaan umum mungkin mengetahui sesuatu tentang pengembangan perangkat lunak yang tidak dimiliki oleh kebanyakan perusahaan. Kemudian lagi, mereka mungkin hanya wankers.
sumber
Saya melihat komentar PG lebih banyak tentang sikap daripada spesifik bahasa. Orang-orang dengan pola pikir TI internal bermain aman. Mereka menggunakan teknologi berisiko rendah, memiliki proses untuk meminimalkan risiko dan mengambil strategi berisiko rendah. Mereka terlalu sibuk mengkhawatirkan makan siang mereka sendiri untuk memakan milikmu.
Orang-orang di tepi pendarahan (python 2003) adalah orang-orang yang harus dikhawatirkan. Mereka lapar. Mereka mengambil risiko. Mereka secara intelektual ingin tahu. Tipe orang yang sama begadang belajar bahasa baru yang menarik adalah tipe yang mungkin menjengkelkan industri Anda sebelum Anda melakukannya.
sumber
Graham berarti tidak terlalu berbahaya baginya sebagai pesaing, tidak hanya kurang berbahaya. Maksudnya bukanlah bahwa Java (atau C ++ pada tahun 2003, atau COBOL pada tahun 1980) kurang berbahaya, melainkan bahwa itu normal , dan bahwa ada kemungkinan yang baik bahwa perusahaan yang mencari keterampilan semacam itu hanyalah pesaing biasa. Tetapi perusahaan yang mencari bakat kuat dalam bahasa yang tidak jelas (atau, lebih tepatnya, bertenaga tinggi dan kurang dikenal) adalah perusahaan yang harus ditonton.
Dan ya, itu masuk akal hari ini. Masuk akal jauh sebelum Graham menulisnya, kami hanya tidak membicarakan Jawa pada masa itu.
sumber
Mari kita lihat bahasa apa yang pertama kali digunakan oleh startup yang sukses. Daftar tidak ilmiah, dari atas kepala saya. Penelitian acak yang tepat akan lebih baik, jika ada yang punya energi.
Jadi, mungkin, kami menyimpulkan bahwa Facebook dan Stackexchange tidak mengancam pesaing mereka. Tidak terlalu meyakinkan.
Mari kita lihat apakah Paul Graham mempercayainya saat ini. Dia mendirikan YCominator yang mendanai startup. Halaman muka mencantumkan beberapa startup sukses mereka. Saya telah membahasnya secara berurutan, dengan sangat cepat mencoba meneliti bahasa yang mereka gunakan di masa-masa awal.
Nah, ada beberapa tanda preferensi untuk bahasa yang relatif tidak jelas dan kuat. Tetapi Flash, PHP, dan ASP klasik juga terdaftar.
Ini sebuah esai . Ini adalah dorongan hiperbolik untuk bahasa yang relatif tidak dikenal yang dia sukai, dengan saran yang mendasarinya bahwa startup harus mencintai teknologi mereka dan bergerak secepat yang mereka bisa. Cukup adil.
sumber
Rata-rata pengembang menggunakan alat rata-rata, karena ia tidak melihat nilai yang lebih kuat:
(Penekanan milikku.)
Semakin kuat bahasa, semakin sedikit pengembang yang akan menggunakannya, dan semakin tidak umum. Dengan demikian popularitas adalah metrik yang baik tentang seberapa jauh kekuatan suatu bahasa dari rata-rata. Semakin tidak jelas bahasanya, semakin baik peluang bahwa pengembang menggunakannya mengetahui apa yang dia lakukan, dan telah memilihnya untuk alasan yang baik dibandingkan dengan rekan-rekannya yang masih ada — dan pesaing yang cerdas adalah yang berbahaya.
sumber
Pilihan bahasa sulit untuk memulai. Banyak startup yang sangat baik memilih bahasa "umum" untuk kecepatan sampai ke pasar, keakraban pendiri dan kemudahan perekrutan di masa depan.
Memilih bahasa yang digunakan lebih sedikit tidak mengirimkan pertanda baik. Dikatakan Anda siap untuk melakukan pengembangan dengan serius dan berusaha keras untuk merekrut pemrogram khusus. Itu hanya sinyal, startup lebih dari sekadar memilih dalam bahasa.
Intinya adalah pilihan Anda dalam bahasa harus dievaluasi dengan benar dalam konteks Anda. Facebook misalnya tidak apa-apa menggunakan php yang umumnya tidak dianggap sebagai bahasa yang sangat skalabel
sumber
Tanyakan kepada programmer terbaik dan terburuk yang Anda kenal, dengan kriteria apa pun yang Anda suka, bahasa apa yang mereka tahu. Sekarang, tulis iklan pekerjaan untuk menarik yang pertama, dan Anda punya jawaban. Bahkan jika aplikasi Anda menggunakan C ++, Anda akan mendapatkan kelas programmer yang lebih baik jika Anda mempekerjakan orang yang mengerti bahasa yang tidak diajarkan di sekolah.
sumber
Ada dua hal berbeda yang harus Anda khawatirkan jika pesaing menggunakan bahasa yang tidak biasa:
Kedua keunggulan ini mungkin tidak berlaku dalam situasi apa pun. Misalnya, startup dapat dengan mudah mengadopsi bahasa "karena itu keren" tanpa benar-benar memikirkan apakah itu pilihan yang tepat. Mereka dapat dengan mudah melakukan kesalahan dalam merekrut. Mereka dapat dengan mudah menembak diri sendiri dengan menyalahgunakan bahasa "kuat".
Tetapi jika pesaing memilih bahasa yang tidak biasa dan menggunakannya dengan baik maka ya, Anda mungkin memiliki ancaman yang signifikan di tangan Anda.
Saya pikir prinsip ini cukup abadi dan sama benarnya dengan tahun 2003 - bahasa dan paradigma tertentu dapat datang dan pergi tetapi gagasan untuk memilih bahasa yang kuat dan ekspresif yang sesuai dengan domain masalah Anda menggunakan bahasa tujuan umum yang aman, umum mungkin akan selalu pantas mendapat pertimbangan serius.
sumber
Jika pelanggan Anda tidak dikunci, maka ya . Anda harus khawatir tentang pesaing yang menggunakan bahasa yang kuat.
Java, C #, C ++, secara verbose relatif, dan memiliki siklus edit / tes yang relatif lambat. Ini membatasi kecepatan yang bahkan pengembang tercepat dapat memberikan fitur. Bahasa yang lebih ekspresif, dengan built-in meta-pemrograman yang kuat, dan waktu kompilasi nol, memungkinkan pengembang ahli untuk membangun fitur secepat mungkin. Jika Anda bersaing untuk mendapatkan pangsa pasar, dengan hadiah besar kepada pemenang, masuk akal untuk merekrut pengembang terbaik yang dapat Anda temukan, dan menggunakan bahasa apa pun yang akan membuat mereka menjadi lebih cepat. Anda bisa khawatir tentang skalabilitas nanti.
sumber