10

CoffeeScript و TypeScript ، هل اصبحت الجافا سكريبت Assembly الويب ؟ مارأيكم ؟

في السنوات الاخيرة ظهرت لغات برمجة مثل CoffeeScript و TypeScript وغيره من اللغات التي يتم ترجمتها إلي Javascript لتعمل مع كافة المتصفحات .

والبساطه في هذه اللغات الجديدة هي التي تجعلها الاختيار الامثل لكتابة سكربتات تعمل علي ال Client-Side.

فمثل هذا الكود المكتوب باللغة TypeScript :-

module Sayings {
    export class Greeter {
        greeting: string;
        constructor(message: string) {
            this.greeting = message;
        }
        greet() {
            return "Hello, " + this.greeting;
        }
    }
}
var greeter = new Sayings.Greeter("world");

var button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function() {
    alert(greeter.greet());
};

document.body.appendChild(button);

يتم ترجمته الي كود جافاسكريبت ليصبح هكذا :-

var Sayings;
(function (Sayings) {
    var Greeter = (function () {
        function Greeter(message) {
            this.greeting = message;
        }
        Greeter.prototype.greet = function () {
            return "Hello, " + this.greeting;
        };
        return Greeter;
    })();
    Sayings.Greeter = Greeter;
})(Sayings || (Sayings = {}));
var greeter = new Sayings.Greeter("world");

var button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function () {
    alert(greeter.greet());
};

document.body.appendChild(button);

فما هو رأيكم في مثل هذه اللغات الجديدة ؟ هل ستكون وسيلة جيده لكتابة تطبيقات تعمل علي ال Client-Side ام ان ال Javascript هي الخيار الامثل ؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

14

الجافا سكربت اصبحت من اللغات المهمة في عالم الويب وفي تطوير الالعاب والكثير من الامور الاخرى لذالك سنرى الكثير من المترجمات وايضا لتكون الـ Syntex مشابه للغات معينه لكي تسهل على المبرمج ان يختار الانسب له لكن اعتقد انها ايضا سوف تستغرق وقت ان كان الكود طويل وسوف تفقد السرعة في التنفيذ

لكن هي خيار جيد لكي تساعدك على البرمجة بلغة جافا سكربت بشكل اسهل

فعلا موضوع الوقت عامل نسيت ان اسئل عنه . ترجمة الكود تعتتمد 100% على سرعة جهازك واداء المتصفح عندك وهذا مانشاهد قصورة احيانا حتى في الاجهزة الجيدة ، حيث تشعر ان المتصفح جمد قليلا ، وهو يفكر :).

واحيانا كثيرا يعلق المتصفح وتضطر اسفا الى اغلاق الصفحة !

انا ارى ان محرك الجافا سكريبت بحاجة الى تطوير اكثر ، لكي يتناسب اكثر مع مكونات الجهاز لا المتصفح. ويجب ان يكون للجفافا سكريبت وصول مباشر الى المعالج لكي يتم معالجتها بشكل اسرع .

ربما تظهر لدينا عوامل خرق الامان الذي اشتهرت به الجافا سكريبت. ولكن لكل شيء ثمن.

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

لذالك في حالة استخدام هذه المترجمات لترجمة كود طويل الى جافا سكربت سوف ياخذ وقت وسرعة وهذا ايضا لايساعدك لبناء تطبيق يعتمد في عمله على السرعة وقصر الوقت

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

لا ياعزيزي . هي لغة برمجة مثل باقي لغات البرمجة ولكن الفارق هو انها يتم ترجمتها الي كود javascript واللغة بها دعم بشكل مباشر للبرمجة الكائنية التوجه (Object-Oriented Programming) فتجد كود ال TypeScript اقصر من كود ال Javascript بالاخص عندما تكتب كود OOP . :)

هناك عدة آراء بين مطوري الوب حول الموضوع، بين من يميل إلى بناء طبقة تجريد فوق جافاسكربت (وهذا ما يحدث حاليا)، وبين من يفضل أن يتم تطوير جافاسكربت نفسها. والأمر فيه الكثير من النقاشات والتفاصيل فيمكنك أن تبحث فقط عن Javascript vs CoffeeScript على سبيل المثال لتتبين وجهات النظر تلك.

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

بالفعل هو لايعمل علي المتصفح ، بل يتم ترجمته علي جهاز المبرمج .

اي مثل اللغات الاخري تماما ولكن الفارق هو ان TypeScript يتم ترجمتها الي JS وهذا ما ذكرته سابقاً :) .

انا افضل استخدام الجافاسكريبت مباشرة

تستطيع تحقيق ماتريد باستخدام ال design pattern المناسب

وحاليا انا افضل الباترن التي تقدمه الجي كيوري

فعندما اريد بناء شئ يعاد استخدامه اكتبه ك جي كيوري بلجن كلما امكن ذلك

فالجي كيوري باترن يعطيك اقل عدد من الاسطر عند اعادة استخدام البلجن الي الان

الفكرة من وجود مثل هذة اللغات هو لحل العديد من نقاط القصور في جافا سكربت نفسها (مثلا استخدام المعامل == ...الخ). وهي ليست فقط لتحسين كتابة الجافا سكربت او ما شابه والحقيقة ان TypeScript وهي من انشاء مايكروسوفت لم تحل اي شئ تقريبا من نقاط الضعف هذه..على عكس CoffeeScript.

Saad Laggoune أضف ردا

تصحيح, هذه ليست لغات بلـ JavaScript Preprocessor, لذا لا يمكننها ان تكون بديل للـ JS ابدا ففي النهاية الكود سيكون JS هي فقط لتسهيل عملية الكتابة على المطور للواجهات الأمامية