Berapa banyak bahasa pemrograman yang bekerja dengan Anda setiap hari dan bagaimana Anda secara efektif mengelola tugas-tugas khusus bahasa [tertutup]

22

Edit:

Bagaimana Anda mengelola tugas individu ketika bekerja pada beberapa bahasa

Dalam penanganan tugas sehari-hari, berapa banyak bahasa pemrograman yang berbeda yang Anda gunakan?

  • Apakah Anda membuat perubahan mental saat mengerjakan setiap bahasa?
  • Apakah Anda Memprioritaskan mereka dan menjaga setiap tugas per bahasa secara terpisah.
  • Apakah Anda membuat kode secara bertahap berdasarkan kemajuan setiap tugas yang beralih secara mulus antara bahasa / IDE / Lingkungan
  • Apakah Anda menerapkan gaya pengkodean / konvensi yang sama pada semua bahasa (bukan sintaksis)?

Terkait:

Apakah normal bagi programmer untuk bekerja pada banyak proyek secara bersamaan

Aditya P
sumber
1
Membuat perubahan mental cukup mudah. Kesalahan mental utama yang biasanya saya miliki adalah ketika saya mencoba membandingkan Strings dengan .equalsjavascript. Setidaknya saya selalu melakukan kesalahan seperti itu daripada menggunakan ==di java.
WuHoUnited
Saya menulis 3/4 bahasa pada hari tertentu untuk proyek yang sama. Bagaimana cara saya mengatur? Ketahui bahasanya. Simpan referensi berguna. Ikuti konvensi bahasa.
Rig
Membayar biaya beralih antara JavaScript dan beberapa bahasa pemrograman sisi server tidak sepadan saat ini, ketika Node.js memiliki ekosistem perpustakaan terbesar di dunia , dan ketika Anda dapat menulis kode sinkron menggunakan async / menunggu . Paradigma "Satu bahasa di mana-mana" juga digunakan oleh Meteor (lebih dari 35.000 bintang GitHub).
Dan Dascalescu

Jawaban:

25

Hari ini saya telah menulis Java, Python, C ++, dan SQL (jika itu penting). Dan saya sudah bekerja kurang dari 2 jam.

Jika Anda melakukan ini secara teratur, maka perubahan mental menjadi diabaikan. Ini tidak ada hubungannya dengan multitasking. Itu seperti berjalan sebentar, lalu mengendarai mobil, mengendarai sepeda, lalu berenang. Tidak masalah, karena semuanya berurutan.

Apapun, intinya adalah menyelesaikan satu tugas sebelum pindah ke yang berikutnya. Saya cenderung mendefinisikan tugas dalam hal fungsi konkret, memperbaiki, atau semacamnya. Seringkali tugas itu diselesaikan dengan hanya satu bahasa, tetapi mungkin memerlukan beberapa dari mereka. Misalnya, saat bekerja dengan JNI , Anda biasanya akan membuat perubahan pada sisi Java dan asli secara paralel.

Beberapa jawaban:

Apakah Anda mengkode secara bertahap berdasarkan kemajuan pada setiap tugas yang berpindah secara mulus antara bahasa / IDE / Lingkungan

Sangat penting untuk dapat beralih dengan mulus antara IDE, editor, lingkungan. Biasanya saya selalu membuka semuanya.

Apakah Anda menerapkan gaya pengkodean / konvensi yang sama pada semua bahasa (Bukan sintaksis)?

Jika ini adalah antarmuka tempat dua bahasa berbicara, maka ya - nama variabel dan yang serupa harus sama. Kalau tidak, saya mencoba menerapkan gaya pengkodean khas bahasa itu.

Joonas Pulakka
sumber
8
Kedengarannya seperti balapan yang luar biasa
setzamora
Saya biasanya mencoba menyelesaikan satu tugas sebelum pindah ke yang berikutnya, tetapi satu tugas mungkin perlu menggunakan lebih dari satu bahasa. Menggunakan IDE polyglot seperti NetBeans, dan / atau menjaga agar semua editor dan lingkungan yang dibutuhkan tetap terbuka sepanjang waktu adalah suatu keharusan. Maka Anda tidak perlu terlalu peduli dengan bahasa (yang hanya merupakan "detail implementasi"), dan Anda dapat berkonsentrasi pada tugas (yang merupakan bagian dari apa yang seharusnya Anda capai - program kerja).
Joonas Pulakka
Akan lebih baik jika Anda dapat menambahkan jawaban di atas untuk Anda dan menambahkan sedikit tentang bagaimana Anda berurusan dengan gaya pemrograman coding / konvensi.
Aditya P
@AdityaGameProgrammer: Menambahkan beberapa poin.
Joonas Pulakka
18

Ada pola yang terbentuk di sini:

  • Ujung depan: apa pun yang berjalan di browser (javascript, html, dan css)
  • Logika Bisnis: salah satu dari sebagian besar bahasa tujuan umum
  • Backend: SQL
  • Build Script: Beberapa bahasa scripting

Jadi bagi saya ini: javascript, HTML, dan CSS, C #, Transact-SQL, dan Windows Powershell.


Apakah Anda menerapkan gaya pengkodean / konvensi yang sama pada semua bahasa (Bukan sintaksis)?

Tidak, saya membuat titik pemrograman sesuai dengan konvensi bahasa. Contoh sederhana:

   // C#
   int MyFunction() 
   {
       return 0;
   }

   // Javascript
   function myFunction() {
      return 0;
   }

Menggunakan konvensi pengkodean yang berbeda secara visual membantu saya membuat perubahan mental antar bahasa. Sebaliknya, jika kode saya terlihat sama di setiap bahasa, saya akan membuat kesalahan sintaksis dengan melupakan bahasa tempat saya mengode.

Andrew Shepherd
sumber
1
+1 Jawaban yang bagus. Sangat bagus Anda bisa mempertahankan konvensi dan gaya pengkodean khusus bahasa.
Aditya P
Yah .. dalam beberapa kasus Javascript memaksa Anda untuk bekerja dengan cara ini karena titik koma implisit yang jahat. Tapi kalau tidak, saya tidak akan melihat alasan untuk melakukan itu ...
Billy ONeal
Selain gaya pengkodean, cara lain untuk memudahkan perpindahan mental antar bahasa adalah dengan mengatur skema warna yang berbeda untuk setiap bahasa di editor / IDE Anda.
Spoike
5

Seperti ditunjukkan oleh SK-logika, pergeseran mental seharusnya tidak menjadi masalah jika Anda menggunakan bahasa khusus domain yang dipilih dengan baik. Tetapi seringkali Anda tidak dapat memilih bahasa, sehingga terkadang dibutuhkan waktu untuk beralih. Dalam pengalaman saya kesulitannya lebih banyak dalam beralih sintaks daripada beralih gaya pemrograman. Satu-satunya perubahan yang menyebalkan yang selalu saya alami adalah perubahan gaya komentar : Jika saya hanya membuka file untuk dengan cepat mengubah satu baris kode, sering terjadi:

#  what
// the
;  f***
%  is
-- the one-line comment character or sequence?
Jakob
sumber
4

Dalam pekerjaan terakhir saya: Java, C ++, C #, JavaScript dan VBScript.

Tapi untungnya, semua hal di atas berada dalam konteks yang sangat berbeda (dan di beberapa produk) - jadi setelah Anda tahu setiap basis kode dengan cukup baik, peralihan mental ke konteks yang berbeda sebenarnya cukup mudah dan logis.

Sebenarnya, yang lebih mengganggu saya adalah gangguan oleh masalah dukungan klien. Beralih secara internal ke tugas dalam bahasa lain tidak pernah menjadi masalah.

Tabel Bobby
sumber
2

Saya bekerja dengan 2 bahasa: c # dan python.

Saya menggunakan keduanya dalam proyek yang sama, tetapi jelas untuk tugas yang berbeda.

Ketika saya mengerjakan suatu tugas, saya mengerjakan tugas itu sampai itu dalam keadaan lengkap, atau sampai saya tidak bisa berkonsentrasi lagi pada itu. Ini berarti, jika saya harus beralih antar bahasa, ada sedikit atau tidak ada disonansi kognitif karena saya sudah keluar dari pemikiran dalam kedua bahasa ketika saya selesai dengan tugas terakhir.

Memang saya akan mengambil istirahat pendek ketika saya keluar dari tugas, yang mungkin banyak membantu.

Matt Ellen
sumber
2

Sesedikit mungkin. Biasanya melibatkan 1. Python, ditambah 2. HTML templating, 3. HTML + CSS dan kadang-kadang 4. Javascript. Beralih dari Python ke JS pasti membutuhkan perubahan mental, juga karena saya perlu menggunakan alat yang berbeda.

Saya menambahkan HTML + CSS sebagai terpisah dari templating HTML meskipun mungkin bukan bahasa per se (atau mereka mungkin, tergantung pada agama Anda), karena itu juga membutuhkan perubahan mental dan penggunaan alat-alat lain, meskipun tidak begitu buruk seperti beralih ke Javascript. Mengotak-atik HTML + CSS dari perspektif desain, untuk membuat halaman terlihat seperti mockup yang dibutuhkan, adalah pola pikir yang berbeda dari membuat templat HTML. Tapi itu lebih ortogonal ke Python daripada Javascript, yang berarti saya harus mengganti pola pikir pemrograman saya untuk yang lain. :)

Lennart Regebro
sumber
2

Setiap hari saya menggunakan:

  1. HTML / CSS
  2. Javascript / JQuery
  3. VBScript / JScript
  4. PHP
  5. SQL
  6. C # / Asp.Net

Saya juga menggunakan Python, Java dan XML (tidak termasuk?) Pekerjaan saya melibatkan pengeditan berbagai situs web, yang dapat dibangun dalam bahasa web apa pun (bahkan pernah menggunakan Perl) dan menggunakan paradigma / templat yang sangat berbeda (prosedural, MVC, OOP dll).

Untuk menjawab pertanyaan - Saya kebanyakan menggunakan Notepad ++ sebagai IDE saya untuk 5 pertama yang terdaftar, kemudian Visual Studio untuk Asp.Net.

Bisa jadi rasa sakit beralih dengan cepat antara setiap bahasa - mengingat apakah Anda memerlukan titik koma di akhir baris, atau apakah loop memiliki kawat gigi atau tidak. Beralih dari VBScript ke JScript adalah yang terburuk untuk ini - file keduanya berakhir dengan .asp dan terlihat cukup mirip pada pandangan pertama, jadi butuh beberapa saat untuk mengetahui mengapa saya mendapatkan kesalahan.

siapa yang tahu
sumber
Hei, kamu juga harus kerja di sini! (j / k) Kami menulis ulang ASP dan .NET codebase di PHP, memaparkan kami pada pilihan bahasa yang sama.
greyfade
2

Saat ini saya sedang menulis Ruby, PHP, Java, C dan JavaScript dan akan menulis minimal 1 jam setiap hari. Masalah utama sebenarnya adalah masalah menemukan waktu karena semuanya untuk proyek yang tidak terkait.

Pergeseran Mental

Gaya kerja saya sedemikian rupa sehingga saya suka bekerja untuk waktu yang lama. Sayangnya, ini berarti jika saya hanya memiliki satu hal, ketika saya menemukan blok mental dengan sepotong kode, itu akan memakan waktu lama bagi saya untuk menyelesaikannya. Saya tidak menemukan istirahat juga membantu. Dengan memiliki proyek lain, dan khususnya bahasa lain, untuk beralih ke setiap kali saya macet berarti pada saat saya kembali ke bahasa asli, saya langsung punya solusi.

Karena itu, ya ada perubahan mental dan saya pikir itu membuat saya jauh lebih produktif.

Memprioritaskan Tugas

Saya menggunakan task manager (gTasks untuk Android) dan memiliki daftar todo terpisah untuk setiap proyek. Jika suatu proyek membutuhkan banyak bahasa maka saya tidak memisahkannya. Ini biasanya karena mereka akan sangat terkait dalam beberapa hal. Misalnya, JavaScript dan Ruby untuk melakukan beberapa hal AJAX. Jika bahasa secara teknis untuk proyek yang sama tetapi proyek itu sangat besar sehingga mereka pada dasarnya tidak berhubungan maka saya mungkin akan menghitungnya sebagai proyek yang terpisah.

Secara umum, prioritas saya adalah "daftar mana saja yang memiliki tugas terbanyak" tetapi saya akan selalu beralih jika saya mengalami masalah.

Konvensi Pengkodean

Ini sedikit campuran:

  • Jika proyek ini dikembangkan dengan orang lain maka jelas saya akan mematuhi konvensi apa pun yang telah diputuskan untuk proyek itu.
  • Jika proyek ini bersifat pribadi maka saya suka kode saya terlihat konsisten dengan gaya dominan di komunitas / perpustakaan standar untuk bahasa tertentu. Saya merasa sulit untuk membaca kode Java jika semua fungsi pengguna di snake_case, misalnya. Sama halnya, metode camelCase di Ruby terlihat aneh dan tidak pada tempatnya.
  • Untuk konvensi yang tidak dibuat jelas hanya dengan menggunakan bahasa, seperti indentasi, saya akan cenderung mengadopsi standar saya sendiri dan menggunakannya dalam semua bahasa yang saya gunakan. Dalam kasus indentasi, saya selalu menggunakan 2 spasi. Untuk gaya penjepit, saya selalu menggunakan apa yang saat ini diputuskan oleh Wikipedia untuk memanggil Gaya Keterbacaan Kontrol Ringkas .

Selain itu: Tantangan terbesar bagi saya adalah beralih antar bahasa gaya. Sangat sulit untuk berlomba ketika mengkode SASS bersama Ruby dan kemudian harus beralih kembali ke CSS untuk yang lainnya. Pada tingkat lebih rendah, saya memiliki masalah yang sama dengan HAML / HTML dan JSON / XML.

Rupert Madden-Abbott
sumber
2

Saya menulis aplikasi untuk sisi ISP, ada juga budaya "melakukan apa yang Anda sukai", sering ditulis oleh banyak insinyur jaringan yang mencoba-coba pemrograman. Saya harus berurusan dengan setiap minggu, program yang ditulis dengan sangat baik, untuk yang benar-benar mengerikan. Apa yang akan sering saya temui, dan kerjakan ...

  • Perl , Seringkali quickie one-off scripts, atau sering digunakan oleh orang yang hanya tahu (atau suka) Perl. Lebih banyak barang warisan ditulis dalam Perl yang saya temukan. Beberapa hal terburuk ditulis dalam Perl, bukan karena bahasanya buruk, tetapi karena mudah disalahgunakan oleh pemrogram pemula. Saya masih menggunakan ini sendiri untuk beberapa jenis program satu kali. Saya jarang menggunakannya untuk hal yang lebih besar.
  • PHP , Banyak di sekitar ini, sering menjadi bahasa pembuka untuk para dabbler. Beberapa program yang ditulis dengan sangat baik, beberapa schlock. Untuk beberapa jenis aplikasi web, saya akan memilih PHP karena saya dapat membuatnya lebih cepat.
  • Shell Scripting , Sebagian besar menggunakannya untuk menjalankan program atau tugas lain seperti membaca log.
  • Harapkan , masih menjumpai ini (dan fanatik yang bersikeras itu adalah nirwana untuk menjalankan perintah pada perangkat jaringan). Saya mengerjakannya ketika saya harus, tetapi bayi kucing terbunuh di suatu tempat di dunia ketika saya menemukan salah satu dari ribuan program yang panjang tanpa satu fungsi yang terlihat, hanya satu peternakan pasta yang berulang.
  • C , Jarang digunakan karena masalah portabilitas, tapi saya akan menggunakannya untuk melakukan tugas tertentu.
  • Java , saya sering menggunakan ini karena dukungan perpustakaan yang luas, dan penyebaran yang mudah. Kami memiliki jaringan yang sangat heterogen, dan staf TI yang memiliki agenda berbeda dari saya. Dengan Java saya dapat memasukkan perpustakaan dan tidak khawatir bahwa TI harus "memutakhirkan" sesuatu pada sistem yang saya perlukan untuk menyebarkan program. Paling sering ini adalah bahasa pemrograman pilihan saya.

Ada juga bahasa lain (.net, VB, Phyton, Rails, dll) di luar sana di perusahaan, tapi saya belum harus mengerjakannya ... belum.

Edit, untuk edit ...

Anda harus bergeser secara mental saat Anda bekerja di antara bahasa. Paling sering apa yang saya akan kehilangan jejak adalah sintaks. Saya siapkan koleksi buku referensi. Saya akan merasa perlu sekitar setengah jam untuk kembali ke pola pikir bahasa lain yang lain. Semakin banyak tumpul sintaks untuk bahasa, semakin lama pergeseran. Saya menemukan bahwa beralih dari melakukan Java ke melakukan Perl mungkin memakan waktu paling lama jika saya belum menyentuh Perl untuk sementara waktu. Semakin banyak Anda melakukan ini, semakin mudah didapat.

Bill
sumber
1

Saya sering menggunakan enam bahasa atau lebih dalam satu proyek. Kebanyakan dari mereka biasanya khusus untuk proyek itu saja.

Pergeseran mental hanya diperlukan jika Anda menggunakan bahasa yang tidak sesuai untuk suatu tugas. Kalau tidak, wajar untuk menggunakan yang paling cocok. Kumpulan bahasa yang berbeda digunakan untuk tahapan proyek yang berbeda.

Logika SK
sumber
Apakah Anda manajer proyek atau Anda kode di dalamnya?
Aditya P
@AdityaGameProgrammer, saya kode di dalamnya.
SK-logic
Pikiran menjelaskan downvote?
SK-logic
1

Saya menggunakan C (tertanam), C ++ (desktop), Python, Matlab dan VHDL (semacam bahasa pemrograman perangkat keras) secara rutin, sering kali semuanya di hari yang sama. Di lingkungan saya, ketangkasan bahasa semacam ini sangat penting dalam pandangan saya.

Saya sering tidak bisa mendapatkan semua yang saya butuhkan untuk proyek tertentu yang dilakukan dalam satu bahasa secara efisien. Sebagai contoh, baik embedded C dan VHDL adalah level yang cukup rendah, jadi saya sering menggunakan Python untuk mem-parsing hasil mereka (atau bahkan menghasilkan kode).

Beralih di antara mereka dengan cepat bukanlah masalah setelah beberapa saat, itu seperti beralih dari palu ke obeng - alat yang tepat untuk pekerjaan itu.

Martin Thompson
sumber
1

Ini benar-benar tergantung pada bagaimana cara kerja didefinisikan ... Saya menggunakan C # untuk mengembangkan aplikasi Microsoft Surface setiap hari. Java, saya juga gunakan setiap hari untuk aplikasi Android saya. Tetapi saya mencoba untuk mendidik diri saya sendiri dan mulai menggunakan R, Ruby dan Objective-C. Terkadang saya juga membutuhkan beberapa SQL dan jika Anda memasukkan bahasa skrip dan bahasa lain ke dalam pertanyaan Anda, maka JavaScipt, SPARQL dan BeanShell.

Apakah Anda menerapkan gaya pengkodean / konvensi yang sama pada semua bahasa (Bukan sintaksis)?

Saya mencoba mengikuti konvensi pengkodean setiap bahasa tetapi terutama antara Java dan C # Saya mengalami beberapa kesulitan karena kurung kurawal dan penamaan metode huruf besar dalam C #:

public void test() {
   ...
}

vs.

public void Test()
{
   ...
}
RoflcoptrException
sumber
Baik gaya kurung kurawal dapat diterima dalam C #. Jangan menghabiskan terlalu banyak waktu membebani otak Anda tentang hal ini. :-)
Cody Gray
0

Saya membangun aplikasi web. Jadi saat ini:

  • XHTML
  • JavaScript
  • C # sebagai bagian dari
  • ASP.Net Framework ( semacam ini ini juga bahasa)
  • T-SQL untuk komunikasi basis data
  • Bahasa Inggris untuk berkomunikasi dengan manusia.

Editor: Sublime Text (out of choice), Visual Studio 2010 (tidak ada pilihan lain yang layak ketika datang ke ASP.Net)

5arx
sumber
0

Di pekerjaan saya, saya menggunakan Java, C, Python, Django, dan bit kecil PHP. Saya juga mengerjakan proyek yang sangat kecil di Microsoft C ++.

Saya tidak menggunakan semuanya setiap hari, tetapi beberapa hari saya menggunakannya semuanya tanpa masalah. Pada hari-hari biasa saya hanya menggunakan satu atau dua. Pemrograman yang saya lakukan di rumah biasanya melibatkan bekerja dengan teknologi yang berbeda dari yang saya gunakan di tempat kerja seperti Qt atau Ruby on Rails.

jonescb
sumber