الثلاثاء، مايو 17، 2005

إصدارة جديدة من GIMP 2.3

اليوم صدرت إصدارة جديدة من هذا البرنامج الرائع ، وإصدرت استعدادا ﻹطلاق اﻹصدارة المستقرة
2.4 و هي تحمل العديد من التحسينات التي تضفي سهولة في التعامل مع الصور

للمزيد هنا

الاثنين، مايو 16، 2005

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

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

موقعها على هذا الوصلة
من هنا

أول نظام مفتوح المصدر للناطق الآلي العربي

و بدأت بشائر الخير ،
قرأت هذا الخبر ،ففرحت أشد الفرح
أصدرت مدينة الملك عبد العزيز للعلوم والتقنية أول نظام مفتوح المصدر للناطق الآلي العربي
النظام مفتوح للباحثين والمهتمين لتطويره وتحسين أداءه
وهو متوفر على الرابط:

http://sourceforge.net/projects/kacst-atts

و هو بادرة خير نحو الاهتمام باللغة العربية، وكسرا لاحتكار كثير من الشركات

الأحد، مايو 01، 2005

مكتبة SWT مفتوحة المصدر...

مكتبة SWT مفتوحة المصدر...
لقد وعدتكم بأن أتكلم عن هذه المكتبة في المشاركة السابقة ...
في عام 2001 لما أرادت شركة IBM صنع بيئة تطوير خاصة بها Eclipse استخدمت مكتبة swing الخاصة بشركة Sun و لكن وجدت من غير المعقول البرمجة بهذه المكتبة ﻷسباب رأتها سأتكلم عنها لاحقا ،، فقررت برمجة مكتبة جديدة لصنع كائنات يكون مظهرها قريبا جدا من تطبيقات النظام و أسرع من مكتبات swing . فبرمجة مكتبة الكائنات القياسية
“Standard Widget Toolkit” و اختصارا SWT.
و لكن ما الفرق بينها و بين مكتبات awt و swing”؟
من المعروف أن تطبيقات الجافا قوية جدا في اﻷبليت Java Applet و في مجال السيرفرات
و لكن في مجالات التطبيقات المكتبية ليس كذلك ، و ذلك لسببين :
١- استهلاكها الكبير للذاكرة ،، مما يؤدي إلى بطء التطبيقات المعمولة بها.
٢- مظهر التطبيقات المعمولة بها يختلف عن بقية التطبيقات النظام ،،و ذلك بسبب أن مكتبات العرض مبنية بالكلية بالجافا، وذلك لتعمل على جميع اﻷنظمة من دون اختلاف.
وظهرت عدة حلول لتسريع تطبيقات الجافا منها مترجم GUN الخاص بالجافا المعروف باسم
GCJ الذي يقوم بترجمة ملفات الجافا إلى لغة الالة مباشرة ، و لكن هذا المترجم لا يدعم كل أدوات awt و swing لذلك قررت شركة IBM إنشاء مكتبة SWT التي هي جزء من بيئة التطوير Eclipse .
جاءت مكتبة SWT حلا وسطا بين مكتبة AWT و مكتبة SWING ، فمشكلة AWT أنها غير قياسية في جميع اﻷنظمة فمثلا الكائن Tree مدعوم في نظام الويندوز و لكنه غير مدعوم في نظام Motif ، و مشكلة swing أن مظهرها مختلف تمام عن تطبيقات النظام و كذلك بطأها المعروف مع صعوبتها في تعلمها و البرمجة بها .
مكتبة swt تتبع القول :” إذا كان الكائن متوفر في النظام فاستخدمه ، أما إذا لم يوجد فحاكه"
فمثلا الكائن tree مدعوم في أنظمة الويندوز فبالتالي لما يعمل التطبيق على نظام الويندوز يستخدم الكائن اﻷصلي للنظام و لكن هذا الكائن غير مدعوم في أنظمة Motifفالتطبيق لما يعمل عليها يحاكي الكائن tree .
هنا يأتي السؤال ما الفرق بين SWT و SWING و أيها أفضل ؟
لمحاولة اﻷجابة عن هذا السؤال ، سنعرض إيجابيات و سلبيات كلا المكتبتين.
مكتبة SWT:
اﻹيجابيات:
١- سرعة تعلمها و سرعة عمل التطبيقات بها.
٢- التطبيقات المعمول بها متوافقة في مظهرها مع تطبيقات النظام الذي تعمل بها.
٣- التطبيقات المعمول بها أسرع من التطبيقات المعمولة بمكتبة swing
٤- انها مفتوحة المصدر يمكن ﻷي شخص أن يعدل فيها.
السلبيات:
١- كثرة الأخطاء فيها التي تسبب لك المشاكل و تأخذ وقتا طويلا حتى تصحح.
٢- أنها لا توفر لك المرونة المطلوبة مثلما توفر لك مكتبة swing
٣- عدم توفر المراجع و الكتب بكثرة حولها .
٤- لا توجد بيئة تطوير لها مرئية غير واحدة Eclipse
٥- لا توجد مكتبات لتساعدك في تطوير تطبيقاتك بسهولة بكثرة.
٦- يجب عليك أن تحزم برنامجك أكثر من مرة ، بحيث كل نظام له حزمة خاصة به مع إرفاق مكتبات swt معه .
٧- يجب أن تدير تحرير الذاكرة من الكائنات بنفسك فهي لا تستخدم جامع النفايات الخاص بالجافا.
٨- قلة التطبيقات المعمول بها و الشهيرة ، من تطبيقاتها المعروفة RSSOwlو Azureus
مكتبة SWING
اﻹيجابيات:
١- أنها قياسية في جميع اﻷنظمة و لاتحتاج إلى إرفاق مكتبات و حزم إضافية
٢- وجود المكتبات و الكتب حولها مما تسهل طريقة تعملها وتذلل صعابها
٣- توجد بيئات تطوير لها كثيرة من عدة شركات معروفة منها Borlandو IBMو SUN
٤- قلة أخطاءها مما يوفر الوقت في التفكير في لب البرنامج.
٥- كثرة المكتبات من طرف ثالث مما يسهل عملية البرمجة
٦- توفر لك مرونة عالية في التحكم بكائنات العرض
٧- كثرة التطبيقات الشهيرة المعمولة بها ..
السلبيات :
١- عدم اعتمادها على النظام مما يفقدها الكثيرمن المميزات و منها منظر تطبيقاتها
٢- بطء البرامج المعمول بها عموما
٣- غير سريعة في بناء التطبيقات و تحتاج إلى وقت أطول.
٤- غير مفتوحة المصدر و بذلك فهي حكر للشركة المصنعةلها.
بعد هذا كلة ما هي الخلاصة ؟
الخلاصة إذا كنت تفكرفي برمجة تطبيق يعمل على منصة واحدة فأفضل خيار لك هو استخدام مكتبة SWT لأنه يوفر لك الكثير في هذا المجال، أما إذا كنت تفكر في بناء تطبيق يعمل على عدة منصات فمكتبة SWING لا غنى لك عنها .
المصادر:http://www-106.ibm.com/developerworks/java/library/j-nativegui/#resource
http://www.clientjava.com/blog/2005/04/26/1114526830612.html
http://forum.java.sun.com/thread.jspa?threadID=558497&messageID=2742270
http://www.hacknot.info/hacknot/action/showEntry?eid=74