Saya seorang pengembang PHP dan saya baru-baru ini mulai bekerja dengan CodeIgniter. Tampaknya setiap kali saya mencari sesuatu yang terkait dengan CodeIgniter, posting blog dan apa yang tidak biasanya dari '09 atau '10, jadi itu membuat saya berpikir, apakah CodeIgniter masih relevan dan apakah akan di masa depan? Apakah ada kerangka kerja lain yang sedang berlangsung?
Hal yang sama juga berlaku untuk bahasa dan kerangka kerja lain. Pada titik apa Anda meninggalkan pembelajaran bahasa atau kerangka kerja tertentu? Apakah ada cara mudah untuk menemukan yang muncul dan layak untuk diambil?
Jawaban:
Ini bukan ilmu pasti, jadi jangan berharap untuk dapat memprediksi tren masa depan dalam lanskap teknologi lebih dari 5 tahun dengan pasti.
Tetapi saya akan mencari semua hal berikut:
sumber
Tidak ada cara untuk mengetahui apakah sesuatu akan menjadi bukti di masa depan saya lebih suka fokus pada apakah teknologi membantu saya memecahkan masalah yang saya miliki saat ini. Anda akan berhenti mempelajari bahasa atau kerangka kerja tertentu ketika tidak lagi berfungsi untuk menyelesaikan masalah Anda.
Terlibat dalam komunitas yang mewakili apa yang Anda lakukan dan Anda bisa mendapatkan pemahaman yang baik tentang apa yang datang dan pergi tetapi bahkan kemudian saya lebih suka menghabiskan waktu saya dengan alat terbaik untuk pekerjaan, bukan apa yang panas atau apa yang saya pikir akan menjadi panas. satu atau dua tahun dari sekarang.
sumber
Tidak ada cara untuk menentukan secara pasti apakah sesuatu itu bukti masa depan. Yang paling dekat yang bisa Anda datangi adalah untuk menentukan tingkat aktivitas di sekitar bahasa atau kerangka kerja tertentu - jika ada banyak aktivitas pengembang, itu biasanya pertanda baik bahwa bahasa / kerangka kerja ini sedang populer dan akan bertahan untuk sementara waktu . Kebalikannya menunjukkan bahwa ada sedikit kegembiraan dan bahwa dukungan (melalui forum pengembang) mungkin lebih sulit didapat.
Selama bahasa / kerangka pilihan Anda memecahkan masalah yang Anda coba selesaikan, Anda tidak perlu khawatir tentang pemeriksaan masa depan, kecuali jika Anda jelas bekerja dengan teknologi yang sedang sekarat. Teknologi terus berubah - satu hal yang dapat Anda lakukan adalah melacak tren industri. Mempelajari bahasa / kerangka kerja pemrograman baru, sebagaimana disebutkan di utas ini , dapat membantu Anda mengikuti tren dan memberi Anda kesempatan untuk terus mengevaluasi alat-alat baru.
sumber
"Futureproof-iness" adalah tentang kemauan dan keras kepala seperti halnya tentang masalah yang lebih pragmatis.
Contoh ekstrem adalah ini . Filter Sparkle MASIH MENJALANKAN komputer IBM 402 dari akhir 40-an sebagai sistem akuntansi mereka. Ini adalah mesin yang diprogram menggunakan plug-board listrik daripada "file".
Saya pribadi memiliki pengalaman dengan perusahaan yang masih memelihara mesin berbasis MS-DOS di dalam instrumen khusus yang dirancang untuk beroperasi selama beberapa dekade. Saya bahkan membatalkan PDP operasional hingga 1997.
Saya akan mengatakan bahwa jika perusahaan Anda mendapat kunjungan dari museum sejarah komputer, seperti Filter Sparkle lakukan, itu akan menjadi tanda bahwa Anda (atau leluhur Anda) telah berhasil "membuktikan masa depan" sistem!
sumber
Saya dapat menjawab apakah teknologi tertentu adalah bukti masa depan - jawabannya hampir pasti tidak, karena Anda tidak menggunakan skala waktu untuk hal ini.
Untuk membuat pertanyaan ini dapat dijawab, Anda perlu menambahkan beberapa detail lagi ke persyaratan. Sebagai contoh:
Pilihan bahasa / kerangka / teknologi benar-benar merupakan bagian dari manajemen risiko dalam proyek. Seperti halnya semua risiko, Anda perlu mempertimbangkan sejumlah faktor (Saya mencoba untuk membuat ini singkat) dan kemudian mengambil langkah-langkah untuk menguranginya ke tingkat yang sesuai dengan situasi yang ada.
Seperti kebanyakan hal dalam hidup, aktivitas yang melibatkan risiko paling rendah mungkin sebenarnya bukan pilihan terbaik.
Singkatnya, seberapa banyak ketidakpastian yang Anda siapkan untuk hidup dibandingkan dengan manfaat yang akan Anda peroleh dari penggunaan selama waktu hidup proyek yang diharapkan.
Semakin lama Anda ingin melihat ke masa depan, semakin sedikit kepastian yang akan terjadi. Jika Anda senang dengan hanya mengkhawatirkan 2 tahun ke depan misalnya, pilihan Anda akan jauh lebih mudah dibuat (dan membiarkan lebih banyak pilihan terbuka bagi Anda) daripada memilih sesuatu yang perlu ada selama 10 tahun ke depan.
sumber
Ada begitu banyak faktor yang menurut saya tidak mungkin. Di antara hal-hal yang bisa salah adalah: -
Pada akhirnya itu tidak masalah. CodeIgniter bekerja untuk Anda dan memberikan apa yang Anda inginkan. Tidak ada yang Anda lakukan akan berhenti berfungsi karena posting blog sudah tua atau tingkat rilisnya melambat. Jadi saran saya adalah menggunakan apa yang berhasil sekarang, dan, berurusan dengan masa depan ketika itu datang.
sumber
Kerangka kerja PHP, Symfony, menjelaskan ini dengan sempurna di situs mereka .
sumber
Kuncinya adalah kesabaran. Kesabaran, kesabaran, kesabaran. Tidak ada cara pasti untuk memprediksi masa depan. (apakah saya bahkan harus menulis itu?) Tetapi jika Anda memberikan teknologi baru beberapa tahun dan menonton bagaimana adopsi Anda akan memiliki ide yang baik apakah itu akan berakar atau tidak dan cocok untuk proyek jangka panjang / investasi waktu .
Jadi ketika NextNewThing (tm) muncul, jangan ragu untuk ikut-ikutan ... hanya saja tidak untuk hal-hal penting dalam beberapa tahun pertama.
sumber
Jawabannya cukup bagus. Saya akan menambahkan bahwa pemeriksaan di masa depan adalah semacam keamanan atau manajemen risiko. Seringkali Anda diharuskan untuk melepaskan kenyamanan tertentu dan manfaat biaya / produktivitas sekarang untuk menghindari masalah di kemudian hari. Saya telah membuat teknologi yang hampir pasti kedepannya cukup lama sekarang. Ada pola tertentu yang bisa membantu. Ini beberapa.
Data harus disimpan dalam format terbuka yang mudah diekstrak atau diubah kemudian. Format file ganjil adalah area teknik & perangkap besar pada umumnya. Juga, lebih suka pendekatan yang lebih sederhana seperti CSV, ASN.1, atau JSON daripada omong kosong yang rumit seperti XML atau, katakanlah, format Word 97;). Idenya adalah bahwa itu cukup sederhana untuk membuat parser bersama-sama sendiri dan parser format tingkat rendah dapat digunakan kembali di seluruh aplikasi Anda.
Aplikasi idealnya harus memiliki antarmuka vendor dan teknologi netral yang dibangun di dalamnya, ditambah deskripsi yang tepat tentang apa yang mereka lakukan. Anda harus merancang hal-hal di mana Anda dapat mengubah atau membuang implementasi tanpa merusak apa pun. Juga, pindah ke platform baru itu mudah jika metode prosedur panggilan Anda atau pemrosesan data berfungsi lintas platform. Jadi, antarmuka adalah hal yang paling penting untuk diperbaiki. Semakin sederhana, semakin cepat, dan semakin terbuka metode implementasi antarmuka, semakin baik.
Tumpukan harus sepenuhnya open source dan bebas untuk dimodifikasi. Lisensi GPL, LGPL, BSD, MIT, dll. Berlaku di sudut ini. Idenya adalah bahwa, jika komunitas mulai sekarat, maka tumpukan mungkin perlu dipindahkan ke [perangkat keras / OS / protokol / etc] baru. Dan Anda perlu kode untuk melakukan itu.
Desain tumpukan harus sangat modular dengan masing-masing bagian dapat dimengerti oleh satu orang. Ini memudahkan grup baru untuk mengambil dan memeliharanya. Bahkan dengan tingkat runtime terendah, pustaka dan kompiler yang difaktorkan dengan baik dapat memiliki hasil yang sangat besar jika perlu diangkut. Seringkali, hanya satu bagian saja yang dapat porting dan semua kode lama Anda akan berfungsi.
Aplikasi Anda harus dibuat dengan cara modular yang memperhitungkan detail platform untuk meminimalkan pengerjaan ulang di area itu. Ini membantu untuk menyusun fungsi menjadi blok input / pemrosesan / output jika memungkinkan juga. Ini dapat membantu analisis tentang apa yang akan dipengaruhi oleh pelabuhan (dan analisis kebenaran pada umumnya a la 'Cleanroom metodologi). Platform pendekatan risiko terendah adalah dengan menggunakan fitur common denominator terendah yang didukung secara universal dengan satu antarmuka yang memungkinkan Anda menggunakannya, semakin mengurangi porting. (Aku bilang kamu akan kehilangan sesuatu ...)
Pengetikan dinamis, inferensi tipe atau bantuan pengetikan fleksibel lainnya membantu. Port ke platform baru dapat mengubah definisi tipe dasar. Bahasa yang melakukan pengetikan kuat secara internal berarti Anda tidak terlalu khawatir dengan hal ini.
Buat model konkurensi tetap sederhana. Didorong oleh peristiwa, pesan yang melewati antarmuka yang jelas adalah portabel untuk ... pada dasarnya segalanya. Ada juga coroutine. Anda hanya ingin menghindari rute yang rentan terhadap kesalahan dan masalah portabilitas.
Lihatlah runtime portabel Mozilla dan Apache. Mereka memfaktorkan banyak masalah platform spesifik dengan antarmuka tertentu dan pilihan implementasi. Mereka dapat memberi tahu Anda apa yang perlu dikhawatirkan, bersama dengan memberikan solusi yang baik untuk banyak masalah.
Contoh sempurna: Tcl. Saya tahu, banyak orang membencinya dan saya jarang menggunakannya sendiri. Namun, Tcl adalah bahasa yang sangat mudah dimengerti, diimplementasikan (12 aturan utama), dan kode masuk. Ini kecil, cukup cepat, terintegrasi dengan server Web, menanamkan dalam aplikasi asli, telah diangkut ke banyak hal, memiliki fitur keamanan tertentu , dan telah diperbarui secara teratur sejak 80-an saat dibuat. Anda atau saya dapat mengimplementasikan runtime seluruh TCL dalam waktu singkat untuk bahasa inti. Jika kami harus mem-port perpustakaan standar, itu akan lebih mudah daripada porting. NET atau Java. Dan ada sedikit kode berguna yang ditulis untuk itu. Dan ini telah digunakan dalam teknologi web sejauh "agen mobile" menggila yang juga ditujukan oleh applet Java. Sebagai contoh, kerangka kerja OpenACS kembali ke 1998 dengan server yang lebih tua dari itu.
Contoh lain: BASIC, COBOL dan LISP (Skema atau CL). Bahasa-bahasa ini semua kembali ke 50-an atau 60-an. Mereka cukup sederhana untuk memudahkan pemahaman, implementasi dan terjemahan mekanis. Namun, Anda dapat membangun hal-hal yang berguna dengannya. COBOL masih mendukung sebagian besar pemrosesan transaksi dunia, telah diperbarui beberapa kali, & bahkan berjalan di .NET. Aplikasi QBasic / QuickBASIC lama masih berjalan hari ini dengan alat terbuka / gratis pada platform modern, bersama dengan porting kemungkinan ke alat yang lebih baik seperti GAMBAS atau RealBASIC. LISP coders secara alami membuat sistem mereka modular dan fungsional, memudahkan porting. Sudah ada aliran implementasi yang stabil selama beberapa dekade, terbuka dan komersial.
Jadi, antarmuka, keterbukaan, kesederhanaan, modularitas, dan arsitektur / desain / pengkodean platform-netral. INI akan memberi Anda pemeriksaan masa depan yang Anda butuhkan. Bagaimanapun, sebagian besar waktu.
sumber