محركات بحث المصادر البرمجية

يحتاج الكثير من المطورين والمبرمجين إلى برامج مصدرية كمثال. أو أن يعلمو كيف يفكر ويبرمج ويكتب المطورون الآخرون الذين سبقوهم بكتابة برامج تقوم بوظيفة شبيهة. وهنا تأتي أهمية محركات بحث المصادر البرمجية حيث تمكن المطور من الحصول على الكود بوسائل أكثر دقةً من وسائل البحث العادية. الفرق الأساسي بين محركات البحث العادية ومحركات المصادر: أن محرك بحث الكود يفهم اللغة المكتوب بها الكود كما يفهم الفرق بين التعليق والكود والكثير من الميزات التي تجعله أفضل عند البحث عن أكواد. سأحاول هنا أن أعرض لأشهر أربعة محركات بحث أكواد مصدرية مفتوحة وأقارن بينها وأعرض ميزات كلٍ منها.

Github

موقع Github الذي استحوذت عليه شركة Microsoft، وقد صار في عدة سنوات الموقع الأهم لتطوير البرمجيات بلا منازع، وذلك لاعتماده على أدوات git لإدارة المشروعات.

الموقع يحتوي الملايين من المشروعات، وقد صار غنياً عن التعريف.

نذكر أن بعض المستخدمين قد فضّل ترك الموقع عند انتقاله لملكية شركة Microsoft، إلى مواقع أخرى مثل Bitbucket أو استخدام خوادم شخصية مثل GitLab.

searchcode

يعتمد محرك بحث codesearch على مواقع بناء البرمجيات مثل Github أو Bitbucket وغيرها.

ولكنه يقدّم مع ذلك إمكانية كتابة عبارات متطوّرة للبحث تستخدم التعبيرت النمطية وخيارات متقدمة.

Koders

تحديث: استحوذت شركة Black Duck، على محرك البحث Koders، وغيرت اسمه إلى Open Hub. ثم توقف المشروع عن العمل نهائياً

Black Duck هي الشركة المصممة لشبكة المطورين الاجتماعية Ohloh والتي غُير اسمها أيضاً إلى Open Hub

محرك بحث koders يعد من أفضل محركات البحث عن الأكواد المصدرية المفتوحة:

يمكنك من خلاله البحث عن عدة لغات: C, C++, C#, JAVA, Python, Ruby, Perl الخ… كذلك في ترخيصات متعددة مثل GPL, LGPL, BSD الخ…

يبحث المحرك حتى الآن في حوالي بليونين (مليارين) ونصف من الأسطر البرمجية المفتوحة (حتى كتابة هذه الأسطر الرقم في الصفحة الرئيسية 2,449,889,519)

عندما تتعامل معه ستعرف مدا سهولته وجودة تنسيق صفحته مع سرد لملفات المشروع الذي وجد فيه ما تطلب والربط بينها بشكل جيد والتنقل بينها بسهولة.

ويمكن بالإضافة لما سبق اختيار اسم ملف البحث أو الـclasses والعديد من الخيارات التي تسهل البحث

من المزايا الجميلة أنك أثناء تصفح الكود يمكنك البحث عن أي مرجع في اللغة مثلاً في جملة " System.out.println(var) " في لغة جافا يمكنك الضغط على System أو out أو println أو var ليبحث المحرك عنها

والجميل فيه أنه يمكنك تحميل إضافة plugin لـEclipse أو لـVisual Studio من أجل البحث أثناء الكتابة وهي ميزة جيدة (انظر هنا).

وبالطبع يمكنك إضافة محرك البحث إلى قائمة محركات البحث في Firefox.

تم إيجاد العديد من النتائج باللغة العربية على هذا المحرك وبشكل جيد.

Google Code

تحديث: خدمة بحث المصادر من Google أنهي عملها ودخلت قائمة الخدمات التي أوقفها عملاق البرمجيات

خدمة Code Search المقدمة من Google هي خدمة البحث عن الأكواد المصدرية المفتوحة

ويمكنك كذلك كما في koders البحث عن كود في لغة معينة أو ترخيص معين كذلك ويتم ذلك عن طريق google dorks

مثلاً lang:c printf أو license:GPL وهكذا

يمكنك محرك البحث كذلك من رؤية مسار الملف داخل ملفات المشروع مجتمة

المميز في هذا المحرك أنه محجوب في سورية من قبل Google "We’re sorry, but Code Search is not available in your country." شأنه في ذلك شأن أكثر مشاريع Google المبرمجة من قبلها أو التي ترعاها.

تم كما في سابقه إيجاد نتائج باللغة العربية وبشكلٍ جيد.

Krugle

محرك بحث krugle أيضاً هو محرك بحث عن أكواد مصدرية مفتوحة قوي.

كما في المحركين السابقين يتمكن krugle من البحث عن لغة محددة في مكان محدد من الكود وفي مشروع محدد إن أردت.

عندما جربت krugle قام بالعديد من الأخطاء ولم يبحث بشكل جيد (يبدو أن بعض أجزائه مبرمجة بالـPerl كما اتضح من بعض رسائل الأخطاء) كما أنه يعاني من مشكلة البطئ في التنفيذ ولا أنصح به مستخدمي الإنترنت بالسرعة المنخفضة.

حاولت البحث عن نتائج باللغة العربية لكنني لم أفلح.