سؤال

اللغات الديناميكية آخذة في الارتفاع وهناك الكثير منها:على سبيل المثالRuby وGroovy وJython وScala (ثابتة، ولكن لها شكل ومظهر لغة ديناميكية) وما إلى ذلك.خلفيتي في برمجة Java SE وEE وأريد توسيع معرفتي إلى إحدى هذه اللغات الديناميكية لأكون مستعدًا بشكل أفضل للمستقبل.

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

هل كانت مفيدة؟

المحلول

والتعلم روبي أو بايثون (وسكالا إلى حد أقل) يعني سيكون لديك مهارات للتحويل جدا - هل يمكن استخدام نسخة جافا، والنسخة الأصلية أو نسخة صافي (آيرن روبي / و IronPython). رائع هو لطيف ولكن JVM محددة.

ويجري "أفضل استعدادا للمستقبل" هو صعب ما لم تتصور سيناريوهات محددة. ما هو نوع من الشيء الذي تريد العمل على؟ هل لديك مشروع التي يمكن أن تنفذ من المفيد في اللغة الديناميكية؟ هو صغيرة بما يكفي لمحاولة على اثنين منهم، للحصول على الشعور كيف تختلف؟

نصائح أخرى

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

ومنذ كنت بالفعل مبرمج جافا ذوي الخبرة، فإنه سيكون مناسبا لطيف إلى مهاراتك الخاصة بك. الآن، إذا كنت تريد أن يذهب كل في طريقه الديناميكي كلا روبي أو بايثون لغات رهيبة. هناك طلب سواء بالنسبة للغات.

وشخصيا أنصح كلوجر. كلوجر هي لغة جديدة رهيبة ما يجري في شعبيته بشكل أسرع من أي شيء رأيته. كلوجر هو اللثغة قوية وبسيطة، وسريعة تنفيذها على JVM. لديه حق الوصول إلى كافة مكتبات جافا بطبيعة الحال، تماما مثل سكالا. كان لديه كتاب عن ذلك بالفعل، وانها نضجت إلى الإصدار 1.0، ولها ثلاثة الإضافات IDE في التنمية، مع كل ثلاثة صالحة للاستعمال للغاية.

أود أن ألقي نظرة على سكالا.لماذا ؟

  1. إنها لغة JVM، لذا يمكنك الاستفادة من مهاراتك الحالية في Java
  2. أصبح لديه الآن الكثير من دعم الأدوات/IDE (على سبيل المثال.سوف Intellij التعامل مع مشاريع سكالا)
  3. لديها وظيفي الجانب إليها.يبدو أن اللغات الوظيفية تحظى باهتمام كبير في الوقت الحالي، وأعتقد أنها نموذج يستحق التعلم للمستقبل

وجهة نظري (الذاتية تمامًا) هي أن Scala يبدو أنه يحظى بالكثير من الاهتمام الذي حظي به Groovy قبل عام أو عامين.أنا لا أحاول أن أكون مثيرًا للجدل هنا، أو أقترح أن يجعلها لغة أفضل، ولكن يبدو أنها لغة JVM الجديدة دي جور.

جانبا، لغة لديها بعض السمات الديناميكية هو مايكروسوفت F#.أنا أنظر حاليًا إلى هذا (وأتجاهل نصيحتي الخاصة فيما يتعلق بـ.النقطتان 1 و 2 أعلاه!).إنها لغة وظيفية تحتوي على كائنات، مبنية على .Net، وتحظى باهتمام كبير في الوقت الحالي.

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

ولقد وجدت رائع أن تكون قفزة السهل نسبيا من خلفية واسعة جافا - انها نوع من نسخة أكثر ملاءمة جاوة. أنه يدمج حقا لطيف مع رمز جافا القائمة أيضا، إذا ما عليك القيام به شيء من هذا القبيل.

وأود أن أوصى بيثون. لديها مجتمع ضخم ويحتوي على تنفيذ ناضجة (جنبا إلى جنب مع العديد اعدة ليست بهذه ناضجة-فقط-حتى الآن منها). بيرل هو أقصى ما رأيت فقدان الكثير من الجر مقارنة مع أحدث اللغات، ويفترض بسبب "عدم البداهة" (لا، لا يحصل لي بدأت على ذلك).

عند قمت به مشروع أو اثنين في بيثون، انتقل إلى شيء آخر للحصول على بعض منظور أوسع. إذا كنت قد فعلت بعض الأشياء غير تافهة في لغتين الحيوية المختلفة، وسوف لا يكون لديك أي مشاكل استيعاب أي لغة أخرى.

وJScript الموجود مفيدة جدا، وبالتأكيد لغتها الديناميكية ...

إذا كنت ترغب في اللغة مع عدد لا بأس به من وحدات (عن أي شيء تقريبا!)، والذهاب ل بيرل . مع CPAN ، وسوف تجد دائما ما تريد دون إعادة اختراع العجلة.

وحفظ حسنا في الاعتبار الخلفية الخاصة بك، وأود أن أوصي لغة حيث دلالات مماثلة لما كنت على علم. ومن هنا لغة مثل سكالا، مروحة، رائع سيكون بداية جيدة point.Once تحصل على تعليق من دلالات الأساسية استخدام لغة وظيفية (وكذلك بداية تحبه)، يمكنك الانتقال إلى لغة مثل روبي. يحصل تخفيض الوقت اللازم لأنك بهذه الطريقة، فضلا عن حقيقة أن تتمكن من المضي قدما نحو كونه مبرمج متعدد اللغات.

وأود أن التصويت +1 للرائع (والكؤوس المقدسة). يمكنك كتابة مع أسلوب جافا أو رائع لا يزال (يمكنك أيضا مزج كلا وليس لها أي قلق حول ذلك). كما يمكنك استخدام يبس جافا.

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

وجود معلومات نوع يجعل رمز أكثر من ذلك بكثير للقراءة، والقراءة يجب أن تكون لديك # 1 معايير في الترميز. أنها مكلفة للإنسان أن يقرأ الرمز، أي شيء يحول دون واضحة، فهم دقيق من قبل القارئ هو شيء سيء. في لغات OO هو أسوأ من ذلك، لأنك دائما جعل أنواع جديدة. القارئ مجرد الحصول على دراية ستبوء بالفشل لأنها لا تعرف الأنواع التي تم يتم تمريرها حول وتعديلها. في رائع، على سبيل المثال، وفيما يلي القانونية القراءة def accountHistoryReport(in, out) ذلك، ليس لدي أي فكرة عما in وout هي. عندما كنت تبحث في 20 الأساليب تقرير المختلفة التي تبدو تماما مثل ذلك، يمكنك الانتقال بسرعة قتلية.

إذا كنت تعتقد حقا أن يكون لديك الكتابة غير ثابت، ثم لغة مثل كلوجر هو حلا وسطا جيدا. يتم بناؤها لغات اللثغة تشبه على مجموعة صغيرة من تجريدات الرئيسية وكمية هائلة من القدرة على كل من التجريد. حتى في كلوجر، سوف أقوم بإنشاء خريطة (التجزئة) الذي يحتوي على سمات الكائن بلدي. وهو reductionalist قليلا، ولكن أنا لن يكون لننظر من خلال رمز قاعدة كاملة لتنفيذ بعض الطبقة اسمه الامم المتحدة.

وبلدي وبحكم التجربة هو أن أكتب النصوص في اللغات الديناميكية، والنظم، واللغات جمعت كتبته بشكل ثابت.

scroll top