Tuesday, March 4, 2008

لغة ج للبرمجة باللغة العربية

عنوان قد يكون مضحك لكم يا رفاق العمل .... أليس كذلك ؟

ربما للوهلة الأولى نعم أتفق معكم ..... قد يكون صعبا على من تفتحت عيناه على البرمجة فلم ير إلا لغات إنجليزية وعلى حد علمى كلها كذلك حتى الآن

ولكنها فكرة جيدة بلا شك من وجهة نظرى محاولة تعريب لغة البرمجة

قرأت عن لغة ج منذ فترة ليست بالقصيرة لكنى فشلت فى استخدامها ثلاث مرات على ما أذكر بسبب مشاكل فى اللغة فى ويندوز إكس بى

واليوم هى أول مرة أنفذ على جهازى المتواضع برنامج مكتوب بلغة برمجة عربية !!!! ولم أتصور أنى سأفعل يوما ما

دعنا نرى الأمر من زاوية اخرى غير الضحك والتهكم

دعنا ننظر إليها كمحاولة مبدأية قد يكتب لها النجاح أو الفشل وقد تحتاج إلى سنوات وسنوات من العمل والتعديل والابتكار والإبداع و.... إلخ

ولكن من طلب منا أن نفنى أعمارنا فيها .... دعنا نلقى عليها نظرة ... ومن يكمنه المشاركة فليشارك ... ومن يقتنع بالفكرة فليمض

من قال أن العالم أعجمى أبد الدهر .... ربما يجتاج بناء نظم حاسب مماثلة أو قريبة من تلك فى العالم المتقدم إلى 1000 أو 2000 سنة

فإذا بدأنا الآن وكل وضع القليل سنصل بعد 2000 سنة وإذا لم نيدأ لن نصل أبداً

على أى الاحوال أنا غير مسموح لى التحدث فى شئ ليس له علاقة بالحاسب ومجالاته المختلفة هنا لأنى أنوى نشره على مدونة القسم إن شاء الله

وأرجوا المعذرة فى أخطأ اللغة العربية فأنا للأسف لست من الأقوياء فيها

دى روابط اللغة
الصفحة الرئيسية
http://www.jeemlang.com/index.php
كتاب التعريف
http://www.jeemlang.com/documentation/webframe.html

ده البرنامج اللى أنا شغلته النهاردة

! برنامج لحساب مضروب عدد صحيح

المتحول ن : صحيح

المتحول ص ، ع : صحيح

أجعل ع = 1

أكتب "أدخل عدداً صحيحاً لتعرف قيمة مضروبه :" ، سطر

أقرأ ن

أجعل ص = ن

أكرر طالما ص > 1

{

أجعل ع = ع × ص

أجعل ص = ص - 1

}

أكتب ن ، "! =" ، ع

2 comments:

Amr El-Helw said...

Very interesting post!
Now, before I start to comment, I would like to point out that personally I love and respect the Arabic language more than any other language. However, I don't see the point in inventing an "Arabized" programming language. Here are my reasons:

1. The website of the language claims that: "كما هو معروف، تعتمد غالبية لغات البرمجة رفيعة المستوى High Level Languages على اللغة الإنكليزية، وتستخدم الأحرف اللاتينية قلباً وقالباً، مما يجعلها بعيدة المنال عن الطلاب العرب"
I agree that most programming languages use the Latin alphabet, but they are not English. Otherwise, we could say that French, German, Italian, and Spanish are also English, because they use the same letters. Besides, I don't think that latin characters make it hard for arab students to learn programming. Look at Chinese or Indian students for example. They also learn the same "Latin-based" programming languages and they never say it's hard for them. Why? Are they smarter than us?

2. Looking at the sample program that you wrote, I can see that the syntax and the structure of the language is very hard to understand, and non-intuitive. I'm not speaking from the perspective of someone who is more used to Latin-based languages, but from the perspective of an Arabic-speaking person. For example, the word "المتحول" seems like a translation of "transformer", not "variable".

3. Look at the following statement:
بدل دع بـ "أجعل"
In Arabic, the letter "بـ" can never be found alone like this. Thus, again, the langaue uses non-intuitive constructs. Arabic is unique in the way prepositions are attached to words, wich doesn't work when trying to convert them into separate words.

4. The language is obviously a direct translation from "C" (even its name.. more on that later). So, there is no creativity involved, but trying to re-invent the wheel.

5. A bit unrelated note. The correct order of Arabic letters is: ا ب ت ث ج ح خ د ذ ر ز ...
and not: ا ب ج د ه و ز ...

The latter ordering is actually based on Hebrew. Therefore, if we want to make something corresponding to the "C" language, it should be called "ت".

Personally, I don't see a point in wasting so much time and effort to re-invent the wheel. Other countries (e.g. China, Japan, India..) who are very advanced, also use the Latin-based programming language. They start from where others have ended, and use these technologies to go further. I think we should do the same instead of starting from zero.

Amr Magdy said...

I think most of your points are right Eng Amr and I agree with you about it

Anyway, it is an approach that someone may accept and others may reject.

I don't say that this idea is for sure right or even it will make us advanced or something like that, never. I only see the idea good as I believe it will open a new trend for non-technical people (not Engineering or FCI graduates) to be involved in IT field which MAY increase IT incomes industry one day if those learn to understand not to memorize and apply given patterns!!!

Also it is a trial with our native language, if we accept or reject I think we should know about it.

For sure Japanese and Chinese learn Latin-based programming languages but they also deal in trade with their native language. I don't think we (as people) have goods rather than science to show our culture.

May be the languauge is bad defined but it is only a primary trial.

Sure I am against re-inventing the wheel. Now it may be not creative at all, tomorrow one may add a creative feature which may be the first programming new feature invented in Arabic. At this point, our language may be a source of knowledge again and one global citizen may need to learn Arabic to translate our innovations.

I hope I added with this post even if I added to someone to not think about this trend :)