7 Alternatif PHP Terbaik – Bahasa Pengaturcaraan Mana Yang Perlu Anda Pelajari

alternatif php terbaik


PHP dikembangkan oleh Rasmus Lerdorf pada tahun 1995 dan sekarang ini adalah salah satu bahasa skrip sisi pelayan yang paling banyak digunakan untuk pembangunan web. Ia juga digunakan secara meluas untuk tugas-tugas yang berkaitan dengan pengaturcaraan umum, kerana penggunaannya yang mudah, struktur berorientasi objek, ekosistem besar dan komuniti pengaturcara dan peminat PHP yang sangat besar.

Walau bagaimanapun, terdapat banyak sebab untuk tidak menggunakan PHP untuk projek anda. Kerana penggunaan PHP yang mudah, terdapat banyak pengaturcara PHP yang tidak mahir di Internet yang tidak dapat menulis kod yang baik. Mungkin ada masalah dengan keselamatan kod tertulis dan juga pengendalian pemboleh ubah yang tidak baik dapat menyebabkan masalah penggunaan memori. Dalam banyak kes, yang disebut pengaturcara PHP senior jauh lebih lemah daripada pengaturcara junior bahasa lain yang lebih sukar.

Juga, profesional IT sering berfikir bahawa PHP adalah bahasa yang lebih lemah ketika kita bercakap mengenai keselamatan dan kebolehpercayaan. Ini adalah masalah yang serius, kerana syarikat yang menggunakan skrip PHP dapat ditandai sebagai perniagaan amatur atau tidak selamat oleh peserta pasar lain. Di sisi lain masalah ini, tidak layak menjadi pro sebenar bagi pengaturcara di PHP, kerana syarikat besar jarang menggunakan bahasa ini. Lebih baik belajar bahasa pengaturcaraan lain dan berusaha dengan menggunakannya.

Tetapi yang mana alternatif PHP terbaik di pasaran? Terdapat banyak bahasa pengaturcaraan yang luar biasa yang boleh menjadi pengganti PHP yang ideal, bergantung pada tugasnya. Dalam artikel ini kita akan membahas 7 bahasa dan melihat kebaikan dan keburukannya untuk memberi anda tinjauan penuh mengenai alternatif PHP terbaik.

C #

c # bahasa pengaturcaraanC # adalah bahasa pengaturcaraan pelbagai paradigma yang dikembangkan oleh Microsoft. Ini adalah bahasa yang mudah dan berorientasikan objek, yang dibangun oleh disiplin pengaturcaraan moden. Sintaks C # serupa dengan C, jadi pengaturcara C # dapat mempelajari bahasa keluarga dengan mudah, seperti Java, C dan C++.

Kelebihan

  • C # berkait rapat dengan Microsoft .NET Framework yang menyediakan banyak perpustakaan yang berguna. Potongan kod kecil ini banyak digunakan di industri dan dapat dengan mudah digunakan untuk pengekodan tugas yang paling biasa.
  • C # adalah logik dan berkembang dengan baik dan mengikuti paradigma pengaturcaraan standard industri, semua elemen bahasa dapat digunakan dengan mudah.
  • Bahasa ini mempunyai pelbagai jenis aset berorientasikan objek, seperti kelas, kaedah dan elemen lain sehingga sangat sesuai untuk mempelajari paradigma OOP. Malah pengaturcara junior dapat menulis kod C # setelah mempelajari perkara penting dan ketekalan bahasa dapat membantu menjadi pengaturcara yang baik.
  • Kerana perpustakaan .NET, C # adalah penyelesaian terbaik ketika menulis program dan aplikasi berasaskan Windows. Tidak diperlukan perpustakaan luaran untuk membuat aplikasi Win asas dan dengan menggunakan potongan kod terbina dalam perisian anda akan bagus dan serupa dengan aplikasi Windows yang lain.
  • C # dapat digunakan untuk pengaturcaraan bukan Windows, termasuk program desktop untuk platform Linux dan OS X, serta untuk aplikasi telefon pintar untuk iOS, Windows Phone atau Android.
  • Pengurusan memori dikendalikan oleh C # jadi kebanyakan pengaturcara tidak perlu menangani tugas penting ini. Namun, dalam kes-kes khas, pengurusan memori manual mungkin diperlukan dan bahasanya mendukung pengaturcaraan tahap rendah dan pengurusan memori langsung juga.

Keburukan

  • Bahasa terlalu rumit, mungkin memerlukan sedikit masa untuk memahami dan mempelajari semua aset yang ada.
  • IDE yang paling biasa untuk C # ialah Microsoft Visual Studio. Kerana sangat maju, banyak pengaturcara C # hanya belajar bagaimana membuat kod di Visual Studio dan tidak tahu bagaimana membuat kod secara bebas. Menggunakan IDE yang terlalu maju boleh menyebabkan menjadi pengaturcara yang lebih lemah.
  • Terdapat banyak alat pengembangan C # percuma tetapi kebanyakan pembangun menggunakan produk Microsoft berbayar untuk bekerja. Lebih teruk lagi apabila kita bercakap mengenai tahap syarikat yang lebih besar, alat pengaturcaraan yang lebih maju memerlukan lebih banyak wang. Sokongan dan komuniti kuat untuk alat berbayar canggih tetapi sangat lemah untuk produk percuma.

Ruby

bahasa pengaturcaraan rubyRuby dikembangkan oleh Yukihiro Matsumoto pada tahun 1995. Bahasa berorientasikan objek secara automatik menguruskan penggunaan memori dan mempunyai sistem jenis dinamik.

Kelebihan

  • Ruby mempunyai sintaks yang jelas apa yang lebih mudah difahami daripada sintaks bahasa berorientasikan objek lain. Oleh itu, sangat sesuai untuk mempelajari paradigma OOP untuk pengaturcara junior.
  • Terdapat komuniti yang baik di sebalik bahasa dan hampir terdapat perpustakaan untuk semua tujuan. Banyak pengaturcara membuat perpustakaan secara berkala dan memeliharanya secara percuma, hanya kerana menjadi sebahagian daripada keluarga Ruby.
  • Ruby adalah salah satu bahasa pengaturcaraan yang paling banyak digunakan untuk laman web. Mudah untuk mencari bahan pembelajaran, kod sumber dan forum komuniti untuk Ruby, juga peluang pekerjaan lebih luas daripada kebanyakan bahasa lain.

Keburukan

  • Bagaimanapun Ruby sangat sesuai untuk aplikasi web, agak lambat untuk penggunaan lain. Sekiranya anda mahukan lebih daripada membaca potongan data dari pangkalan data, prestasi bahasa dengan cepat menurun.
  • Ruby mempunyai sintaks dan bahasa pengekodan sendiri, jadi pengaturcara bahasa pengaturcaraan lain juga harus mempelajari pengekodan Ruby. Ini mungkin merupakan kerugian besar membandingkannya dengan bahasa lain, yang mempunyai sintaks yang serupa antara satu sama lain.
  • Versi dan kemas kini baru bahasa tiba dengan perlahan, apabila kami memeriksa pesaing utama. Versi Ruby stabil semasa ialah 2.5.0 dan dilancarkan pada 25 Disember 2017, sementara itu PHP pada versi 7.2.3, dikeluarkan pada 1 Mac 2018.
  • Ruby on Rails, kerangka sisi terpenting Ruby digunakan secara meluas oleh pengaturcara, namun ia dibangunkan di bawah lesen MIT. Ia sering mengelirukan pengguna bahawa tidak semua versi Ruby on Rails serasi dengan versi Ruby. Masalahnya berlaku setelah hampir semua kemas kini versi Ruby.

Python

bahasa pengaturcaraan pythonPython dirancang oleh Guido van Rossum pada tahun 1991 dan dikendalikan oleh Python Software Foundation. Matlamat utama bahasa adalah untuk menjadikan bahasa pengaturcaraan yang mudah dibaca dan mudah digunakan, walaupun dengan mengorbankan prestasi dan kepantasan.

Kelebihan

  • Python sangat popular di kalangan pengaturcara junior dan terdapat banyak soalan yang dijawab di internet. Ini bermaksud bahawa anda dapat mencari jawapan untuk hampir semua soalan anda, hanya kerana seseorang mempunyai masalah yang sama sebelumnya.
  • Bahasa itu dikembangkan untuk membantu pengaturcaraan yang mudah sehingga pemula dapat mempelajari Python dengan mudah. Sintaksnya dapat dibaca tanpa masalah dan jika boleh, bahasa tersebut menggunakan kata-kata bahasa Inggeris dan bukannya simbol (contohnya menggunakan “DAN” dan bukannya “&&”Atau” ATAU “bukan” || “).
  • Banyak PRO Python menghabiskan ribuan jam untuk menulis dokumentasi yang jernih untuk bahasa dan fungsinya. Dokumen ditulis dengan baik seperti anda membaca cerita, bukannya beberapa dokumentasi bahasa yang lebih maju yang hanya diisi dengan istilah teknologi. Selain itu, fungsi Python yang paling banyak digunakan sudah mengandungi maklumat bantuan, jadi anda tidak perlu menggunakan Google untuk mereka.
  • Seperti yang mungkin anda fahami pada titik sebelumnya, pengguna Python membuat kumpulan hebat di mana mereka membincangkan topik yang berkaitan dan menghabiskan berjam-jam dengan membuat rakan dalam talian. Anda boleh menjadi ahli kumpulan sedemikian dengan cepat di mana anda boleh mendapatkan bantuan berharga secara percuma. Sebagai contoh, subreddit Python terbesar, r / Python mempunyai lebih daripada 227,000 peserta.
  • Sebaliknya populariti Python ialah banyak syarikat besar menggunakannya. Sekiranya anda menjadi pengaturcara Python, anda boleh mendapatkan pekerjaan dengan mudah di syarikat seperti, seperti Dropbox, Evernote, General Electric, Google, Citi, Lego dan Toyota, hanya untuk sebilangan sahaja.

Keburukan

  • Salah satu kelemahan terbesar bahasa adalah bahawa ia tidak sesuai untuk pengembangan aplikasi mudah alih. Sudah tentu, terdapat banyak kerangka kerja Python untuk pembangunan mudah alih, tetapi jika anda meminta PRO, dia tidak akan pernah mencadangkan anda Python untuk tugas ini.
  • Berbanding dengan bahasa lain, aplikasi Python jauh lebih perlahan. Oleh itu, apabila kepantasan menjadi masalah penting, bahasa lain seperti Java boleh menjadi pilihan yang lebih baik.
  • Bahasa menggunakan jenis data dinamik, jadi pemula yang pertama kali bertemu dengan pengaturcaraan dengan Python, tidak akan mempunyai pengetahuan penting mengenai jenis data. Ini boleh membingungkan ketika mereka bekerja dengan bahasa pengaturcaraan yang menggunakan penaipan statik.
  • Struktur Python tidak ketat dan berdasarkan konvensi. Ini bermaksud bahawa anda boleh melanggar konvensyen apabila anda boleh dan menetapkan struktur anda sendiri. Tingkah laku sedemikian menjadikannya sukar untuk membaca kod pengaturcara lain yang berbeza dengan kod bahasa yang menggunakan struktur yang ketat.

Pergi

pergi bahasa pengaturcaraanPergi dibuat oleh pekerja Google (Robert Griesemer, Rob Pike, Ken Thompson) pada tahun 2009, dan bahasa sumber terbuka bebas digunakan untuk semua orang. Ia menggunakan penaipan statik dan pengumpulan sampah.

Kelebihan

  • Kerana Go dikembangkan sebagai bahasa kecil dan sederhana, ia menyusun kod sumber dengan sangat cepat. Sebagai perbandingan dengan bahasa utama lain, penyusun Go jauh lebih pantas.
  • Ia menggabungkan kelebihan bahasa seperti C dan Python. Seperti yang sering dikutip, Go secepat bahasa C dan sederhana seperti Python.
  • Google menyokong pengembangan Go selanjutnya, jadi pasukan di sebalik bahasa ini dibina oleh pengaturcara dan jurutera teratas industri.
  • Versi Go yang lebih baru tidak menjadikan bahasa lebih sukar. Tujuan utama penemu adalah untuk menjadikan bahasa pengaturcaraan begitu mudah sehingga dokumentasinya dapat diadakan di kepala mana-mana pengaturcara. Sebenarnya, prinsip utama ini masih berlaku, pengaturcara Go jarang perlu memeriksa dokumentasi web. Kelebihan lain ialah dokumentasi Go rasmi tersusun dengan baik dan anda boleh mendapatkan apa sahaja di dalamnya.
  • Go menyokong potongan kod dalam lebih daripada satu fail. Anda hanya perlu menggunakan nama pakej yang sama di mana sahaja dan penyusun akan mengetahui bahawa fail bebas termasuk dalam proses penyusunan yang sama. Ini boleh menjadi pertolongan besar ketika anda menulis kod yang sangat panjang.
  • Pengumpulan sampah automatik adalah aset yang sempurna untuk mempunyai pengurusan memori yang baik. Anda tidak perlu bimbang tentang pemboleh ubah yang tidak digunakan dalam memori, Go secara automatik menjaganya.

Keburukan

  • Terdapat lebih sedikit pakej yang tersedia untuk Go daripada bahasa lain yang lebih besar. Sebab utama kelemahan ini adalah bahawa inti Go cukup kompleks sehingga pakej pihak ketiga jarang diperlukan. Apabila perpustakaan tambahan diperlukan, ia lebih sukar dicari.
  • Go mempunyai pengendalian ralat khas dengan jenis ralat terbina dalam, dan dengan menggunakan nilai ralat, anda dapat mengetahui apa yang salah dengan kod anda. Tidak seperti bahasa lain, seperti Java yang membuang pengecualian dan anda dapat menangkapnya, anda harus memeriksa kesalahan yang berlaku di Go secara eksplisit. Dengan melakukan ini, ukuran kod dapat lebih besar dari yang anda harapkan.
  • Kemudahan dalam bahasa adalah kelemahan apabila pengaturcara tidak dapat menggunakan potongan kod yang lebih sukar. Dalam beberapa kes, anda perlu menulis perkara yang sama seperti sebelumnya.
  • Pergi boleh menjadi sukar bagi pemula, kerana ia menggunakan tetapan pemboleh ubah persekitaran dan struktur direktori. Sekiranya anda seorang pemula Go, anda perlu mempelajari perkara-perkara penting ini terlebih dahulu.

JavaScript

bahasa pemprograman javascriptJavaScript dirancang oleh Brendan Eich pada tahun 1995, sejak itu menjadi salah satu dari tiga teknologi penting untuk membina laman web (bersama dengan HTML dan CSS). Matlamat utama bahasa adalah membuat laman web interaktif dan semua penyemak imbas web utama menyokong kod JavaScript.

Kelebihan

  • Sokongan JavaScript adalah bahagian wajib dari semua penyemak imbas web moden, jadi anda tidak perlu memasang alat tambahan untuk menjalankan potongan kod JS. Sebilangan besar penyemak imbas juga mempunyai editor JavaScript lanjutan dan terdapat banyak perkhidmatan percuma di Internet, di mana anda boleh memasukkan dan menjalankan kod anda sendiri untuk ujian.
  • Kod JavaScript dijalankan di penyemak imbas pelawat sehingga sering disebut bahasa sisi klien. Namun, dengan menggunakan Node.js, anda dapat menggunakan JavaScript untuk menulis aplikasi berdasarkan pelayan, tanpa perlu menggunakan bahasa pengaturcaraan sisi pelayan yang sebenarnya.
  • Anda boleh membuat aplikasi berasaskan web dengan pantas dan interaktif, dengan menulis kod dalam HTML, menambahkan gaya dengan CSS dan menjadikannya interaktif dengan JavaScript. Penyelesaian ini jauh lebih pantas dan lebih mudah daripada menggunakan alat bawaan bahasa lain untuk menggayakan aplikasi.
  • JavaScript mempunyai salah satu komuniti terbesar dan hampir tidak ada tugas yang belum ditulis dalam bahasa ini. Terdapat jutaan kod JS di Internet yang anda boleh dapatkan secara percuma dan menggunakannya di laman web anda dengan hanya beberapa klik dan langkah penyesuaian.
  • Bahasa ini mempunyai sintaks yang serupa dengan C, jadi pengaturcara yang dapat bekerja dalam JavaScript dapat beralih ke pengaturcaraan C, C ++, C # atau Java dengan cepat.
  • JavaScript adalah bahasa pengaturcaraan yang mudah dipelajari, banyak kursus pengaturcaraan menggunakannya untuk menunjukkan contoh untuk disiplin pengaturcaraan penting. Gabungkan fakta ini dengan kehadiran kotak pasir dalam talian JS dan bahasa sesuai untuk memulakan karier pengaturcara.

Keburukan

  • JavaScript mempunyai beberapa paksaan jenis yang sebenarnya tidak masuk akal. Contohnya, ‘9’ – 1 sama dengan 8, sementara ‘9’ + 1 sama dengan ‘91’. Dalam kes pertama hasilnya adalah nombor sementara hasil kedua adalah rentetan.
  • Bahasa ini juga menggunakan penaipan bahasa yang dinamik sehingga pemula dapat dengan mudah memahami mengapa menaip adalah ciri pengaturcaraan yang penting.
  • Apabila membandingkan dengan bahasa lain, seperti Python, pustaka standard JavaScript lebih lemah. Walau bagaimanapun, anda boleh mencari perpustakaan tambahan dengan mudah di Internet.
  • Evolusi JavaScript tidak pernah berhenti dan perkembangannya begitu pesat, sehingga terdapat banyak sumber maklumat di Internet yang benar-benar ketinggalan zaman. Ini boleh membingungkan bagi pemula yang mungkin mengalami kesukaran ketika mencari sumber pembelajaran yang paling dipercayai.

F #

f # bahasa pengaturcaraanF # adalah bahasa pengaturcaraan .NET, oleh itu dikembangkan oleh seorang pekerja Microsoft, Don Syme pada tahun 2005. Ia sangat ditaip dan mempunyai penyusun bebas sumber terbuka dan platform juga.

Kelebihan

  • Dengan menggunakan Common Language Runtime, F # dapat mengakses aset .NET Framework dengan mudah dan dapat menggunakan potongan kod bahasa lain yang berkaitan .NET.
  • Mirip dengan C #, F # juga disokong secara asli oleh Microsoft melalui Visual Studionya. Perkhidmatan berbayar syarikat mempunyai senarai perkhidmatan yang sangat luas, menyokong pengekodan, penyahpepijatan dan sub tugas lain dalam kedua-dua bahasa.
  • F # adalah bahasa pengaturcaraan yang ringkas, ia tidak menggunakan tanda kurung atau titik koma sehingga anda dapat menumpukan perhatian pada penulisan kod. Sebagai perbandingan dengan pesaing dalaman C #, F # sering memerlukan lebih sedikit kod untuk menyelesaikan masalah yang sama.
  • Sistem jenis bahasa yang hebat membantu mengelakkan banyak kesalahan biasa, termasuk pengecualian rujukan kosong dan banyak lagi. Dengan menetapkan nilai yang tidak dapat diubah secara lalai, anda akan mengalami lebih sedikit kesalahan.
  • Oleh kerana F # dan C # saling berkaitan antara satu sama lain, kod C # dapat diterjemahkan secara langsung ke F #. Ini adalah kelebihan besar terutama di kawasan korporat, di mana banyak syarikat besar menggunakan C #. Dengan menterjemahkan kod C # syarikat dapat menggunakan semula karya sebelumnya dan menjalankannya di bawah F #, apa yang lebih efisien dalam kes khas.

Keburukan

  • Salah satu kelemahan terbesar F # adalah kurangnya sokongan yang baik untuk Android dan iOS. Jelas bahawa Microsoft tidak menjadikannya keutamaan pertama mereka untuk menyokong perkhidmatan pesaing.
  • Terdapat pengembang F # yang jauh lebih sedikit berbanding dengan bahasa pengaturcaraan utama. Sebagai contoh, terdapat hampir seratus kali lebih banyak C # di Dunia daripada pengaturcara F #.
  • F # tidak mempunyai sokongan nyata untuk alat pereka GUI.
  • Di antara kaedah imperatif dan berorientasikan objek, bahasa juga menggunakan kaedah fungsional. Ini boleh membingungkan dengan pengaturcara yang menggunakan bahasa OOP yang jelas sebelumnya, seperti JAVA.
  • Jurutera Microsoft menghabiskan lebih banyak usaha untuk membuat alat canggih untuk C # daripada memberikan alat yang sama untuk pengaturcara F #. Dengan membandingkan dua bahasa yang berkaitan dengan MS, pengaturcaraan dalam C # lebih mudah daripada bekerja dengan F #. Juga, yang terakhir ini tidak mempunyai alat pemurnian semula.

Jawa

bahasa pengaturcaraan javaJawa dirancang oleh James Gosling, seorang pekerja Sun Microsystems pada tahun 1995 dan sejak itu, ia menjadi salah satu bahasa pengaturcaraan yang paling popular. Ia menggunakan paradigma berorientasikan objek dan sering digunakan untuk mengajar prinsip OOP untuk pengaturcara pemula.

Kelebihan

  • Java menggunakan penaipan statik sehingga IDEnya dapat menunjukkan kesalahan semasa mengetik kod. Ini jauh lebih mudah daripada menjalankan program dan memeriksa kesilapan yang akan datang selepas itu. Fungsi lanjutan IDE Java seperti penyelesaian kod secara automatik, menunjukkan aset atau dokumentasi yang berkaitan dapat membantu pengaturcara junior untuk mempelajari bahasa pengaturcaraan dengan lebih cepat.
  • Java telah menggunakan piawaian pengaturcaraan yang banyak digunakan untuk menulis kepingan kod standard dan membantu meneruskan kerja pengaturcara lain. Penyelesaian yang serupa dalam pengaturcaraan sangat berguna ketika bekerja dalam kumpulan yang lebih besar pada projek yang sama.
  • Bahasa mempunyai struktur yang jelas dan sudut pandangannya yang berorientasikan objek sangat mudah difahami. Malah pemula dapat memahami apa itu enkapsulasi, pewarisan, dan objek dengan melihat bagaimana ia berfungsi.
  • Java adalah salah satu bahasa pengaturcaraan yang paling banyak digunakan, sama pentingnya dengan C atau JavaScript. Dengan mempelajari bahasa ini, anda akan selalu mendapat pekerjaan dan syarikat yang menggunakannya dalam projek mereka, dan anda akan mudah mencari orang untuk meneruskan pekerjaan.
  • Java mempunyai sintaks yang serupa dengan bahasa seperti C, jadi pengaturcara Java dapat dengan mudah beralih ke pengaturcaraan C, C ++, C # atau JavaScript.
  • Oleh kerana bahasa ini lebih tua dari 13 tahun dan boleh dianggap sebagai bahasa standard industri, terdapat sumber perpustakaan luar dan sumber berguna lain yang luar biasa. Atas sebab yang sama, ada komuniti yang kuat di belakang Java, yang anggotanya sering menjadi peminat bahasa ini.
  • Mesin Maya Java (JVM) dapat dipasang di banyak platform, oleh itu kod Java tidak bergantung pada platform. Di mana sahaja anda mempunyai JVM, anda boleh menjalankan potongan kod Java yang sama. Kebebasan ini sangat menyokong peranan pemimpin industri Java.

Keburukan

  • Primitif Java bertentangan dengan peraturan OOP utama, yang menentukan bahawa semuanya harus menjadi objek. Primitif semacam itu, seperti bilangan bulat atau watak bukan objek di Jawa. Ini memerlukan jenis penggunaan yang berbeza daripada objek yang ada.
  • Bahasa itu tidak maju seperti bahasa pesaing seperti C #, dan kehilangan beberapa alat penting untuk pengaturcaraan peringkat perusahaan. Walaupun Java terus mendapat aset pengaturcaraan baru dengan versi baru, evolusinya agak perlahan.
  • Automatik pengumpulan sampah adalah pertolongan besar bagi pengaturcara tetapi juga kelemahan pemula. Oleh kerana Java mengendalikan pengurusan memori dan mengurus pemboleh ubah yang tidak digunakan, pengaturcara junior mungkin tidak mempelajari tugas-tugas penting pengaturcaraan ini.
  • IDE lanjutan juga menjadi masalah, kerana pengguna pertama kali juga memerlukan sedikit masa untuk mempelajari penggunaan alat dan berbagai kemungkinan dapat membingungkan mereka.

Mengakhiri

Walaupun terdapat banyak bahasa pengaturcaraan yang merupakan alternatif yang baik untuk PHP, anda tetap tidak boleh menghindari penggunaan PHP kerana kebanyakan laman web berdasarkan bahasa pengaturcaraan ini. Saya juga sangat berminat dengan pendapat anda mengenai bahasa pengaturcaraan yang anda gunakan dan cadangkan. Tolong beritahu kami dalam komen di bawah.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map