জাভাস্ক্রিপ্ট বিকল্প


144

এই মুহুর্তে, ব্রাউজারে কেবলমাত্র সম্পূর্ণরূপে সমর্থিত ভাষা এবং ডিওএম ট্রি ম্যানিপুলেশনের ডি-ফ্যাক্টো স্ট্যান্ডার্ডটি জাভাস্ক্রিপ্ট। দেখে মনে হচ্ছে এটির গভীর ডিজাইনের সমস্যা রয়েছে যা এটিকে বাচ্চাদের জন্য খনি ক্ষেত্র এবং নবজাতকের জন্য সুরক্ষা গর্ত করে তোলে।

আপনি কি পরের প্রজন্মের ব্রাউজারগুলিতে ডিওএম ট্রি ম্যানিপুলেশন এবং এইচটিটিপি অনুরোধের জন্য কোনও প্রকারের (নতুন নকশাকৃত) কোনও ভাষা (কেবল নতুন জাভাস্ক্রিপ্ট নয়) প্রবর্তনের জন্য বিদ্যমান বা পরিকল্পিত উদ্যোগের কথা জানেন? যদি হ্যাঁ, ফায়ারফক্সের সাথে একীকরণের জন্য রোডম্যাপটি কী, এবং যদি না হয় তবে কোন কারণে ব্রাউজার প্ল্যাটফর্মে জাভাস্ক্রিপ্ট একমাত্র সমর্থিত ভাষা হওয়া উচিত?

আমি ইতিমধ্যে jQuery ব্যবহার করেছি এবং আমি "জাভাস্ক্রিপ্ট: ভাল অংশগুলি" পড়েছি। প্রকৃতপক্ষে পরামর্শগুলি ভাল, তবে যা আমি বুঝতে সক্ষম হচ্ছি তা নয়: কেবল জাভাস্ক্রিপ্ট কেন? সার্ভার-সাইডে (আপনার পছন্দের-ওএস প্ল্যাটফর্ম), আমরা প্রতিটি ভাষা এমনকি ফোরআরান দিয়ে একটি ডিওএম ট্রি ম্যানিপুলেট করতে পারি। ক্লায়েন্ট পক্ষ (ব্রাউজার প্ল্যাটফর্ম) কেন কেবল জাভাস্ক্রিপ্ট সমর্থন করে?


4
গুগল ডার্ট, স্ক্রিপ্ট #, কফিস্ক্রিপ্ট, জেএসএক্স (জেএসের উভয় পৃথক বাস্তবায়ন), জাভাস্ক্রিপ্ট সম্প্রীতি ইত্যাদি আরও github.com/jashkenas/coffee-script/wiki/…
নওফাল

25
ভাল প্রশ্ন. 10 দিনের মধ্যে বিকশিত ভাষা 2013 সালে এখনও আমাদের সাথে রয়েছে w wtfjs.com
ডেন

2
"কেবল জাভাস্ক্রিপ্ট কেন? সার্ভার-সাইডে (আপনার পছন্দের-ওএস প্ল্যাটফর্ম), আমরা প্রতিটি ভাষা, এমনকি ফোর্টরান দিয়ে একটি ডিওএম ট্রি ম্যানিপুলেট করতে পারি the ক্লায়েন্ট সাইড (ব্রাউজার প্ল্যাটফর্ম) কেন কেবল জাভাস্ক্রিপ্ট সমর্থন করে?" সার্ভার সাইডে আপনি যা চান তা ইনস্টল করতে পারেন তবে আমি আপনার ক্লায়েন্টদের অতিরিক্ত প্লাগিন / অ্যাডন ইনস্টল করতে বাধ্য করতে পারি না, জাভাস্ক্রিপ্টের সাথে আমাদের যদি এই অনেকগুলি বাগ এবং সুরক্ষা সমস্যা থাকে তবে অনুমান করতে পারি যে আমাদের কতগুলি বাগ এবং সুরক্ষা সমস্যা রয়েছে যদি আমরা আরও কিছু যোগ করব?
পিটার

6
@ পিটার আমি আপনার যুক্তি গুরুতর বা রসিকতা তা বলতে পারি না। লোকেদের চাইলে প্ল্যাটফর্ম ইনস্টল করা তুচ্ছভাবে সহজ। যদি জাভাস্ক্রিপ্টের বিকল্প উপলব্ধ থাকে এবং ভালভাবে কাজ করে, তবে বাণিজ্যিক সরবরাহকারীদের কেবল এটি চালানোর জন্য যা কিছু প্রয়োজন তা ডাউনলোড করতে ব্যবহারকারীদের প্রয়োজন হবে - ঠিক যেমনটি তারা সবসময় ফ্ল্যাশ দিয়েছিলেন, এবং যেমন তারা সিলভারলাইট দিয়ে কিছু সময়ের জন্য করেছিলেন। ক্লায়েন্ট পক্ষের বিকল্পগুলি কেন না আসতে পারে তার সমস্ত কারণগুলির মধ্যে আপনার ব্যবহারকারীদের আপনার প্ল্যাটফর্মটি নিশ্চিত করার অসুবিধা সেগুলির মধ্যে একটি উল্লেখযোগ্য নয়।
এলী

1
@ এলি: এবং এটা ভাল পরিণত? ফ্ল্যাশ? জাভা অ্যাপলেট? সিলভারলাইট? আমার কাছে কখনও সিলভারলাইট ইনস্টল করা হয়নি।
সেবাস্তিয়ান মাচ

উত্তর:


41

জাভাস্ক্রিপ্টের সমস্যাটি ভাষা নিজেই নয় - এটি পুরোপুরি ভাল প্রোটোটাইপযুক্ত এবং গতিশীল ভাষা। যদি আপনি ওও পটভূমি থেকে আসেন তবে কিছুটা শেখার বক্ররেখা রয়েছে তবে এটি ভাষার দোষ নয়।

বেশিরভাগ লোকেরা ধরেই নিয়েছেন যে জাভাস্ক্রিপ্ট জাভার মতো, কারণ এটির অনুরূপ বাক্য গঠন এবং একই রকম নাম রয়েছে তবে বাস্তবে এটি লিস্পের মতো অনেক বেশি। এটি ডিওএম ম্যানিপুলেশনের পক্ষে আসলে বেশ উপযুক্ত।

আসল সমস্যাটি হ'ল এটি ব্রাউজার দ্বারা সংকলিত হয়েছে এবং এর অর্থ এটি ক্লায়েন্টের উপর নির্ভর করে এটি একটি খুব আলাদা উপায়ে কাজ করে।

ব্রাউজারের উপর নির্ভর করে কেবল আসল ডোমই আলাদা নয়, তবে কার্য সম্পাদন এবং বিন্যাসেও রয়েছে বিশাল পার্থক্য।


প্রশ্নে নিম্নলিখিত ব্যাখ্যাটি সম্পাদনা করুন

মনে করুন একাধিক ব্যাখৃত ভাষা সমর্থন করা হয়েছিল - আপনার এখনও একই সমস্যা রয়েছে। বিভিন্ন ব্রাউজারগুলি এখনও বগিযুক্ত এবং বিভিন্ন ডিওএম থাকবে।

এছাড়াও আপনাকে প্রতিটি ভাষার জন্য ব্রাউজারে একটি দোভাষী তৈরি করতে হবে বা কোনওভাবে প্লাগ ইন হিসাবে ইনস্টল করতে হবে (যা আপনি পৃষ্ঠাটি পরিবেশন করার আগে পরীক্ষা করতে পারেন)। জাভাস্ক্রিপ্ট ধারাবাহিকভাবে পেতে বেশ কয়েক বছর সময় লেগেছিল।

আপনি একইভাবে সংকলিত ভাষা ব্যবহার করতে পারবেন না - তারপরে আপনি এমন একটি এক্সিকিউটিভ প্রবর্তন করছেন যা এটি যা করে তার জন্য সহজেই তদন্ত করা যায় না। প্রচুর ব্যবহারকারী এটি চালাতে না দেওয়া বেছে নেবেন।

ঠিক আছে, তাই সংকলিত কোডের জন্য স্যান্ডবক্স কিছু ধরণের সম্পর্কে কি? আমার কাছে জাভা অ্যাপলেটগুলির মতো শোনাচ্ছে। অথবা ফ্ল্যাশ এ অ্যাকশনস্ক্রিপ্ট। বা সিলভারলাইটে সি #।

আইএল স্ট্যান্ডার্ড কিছু ধরণের কি? এর আরও সম্ভাবনা রয়েছে। আপনি যে কোনও ভাষা চান তা বিকাশ করুন এবং তারপরে এটি আইএল সংকলন করুন, যা ব্রাউজারটি তখন জেআইটি করে।

জাভাস্ক্রিপ্ট ইতিমধ্যে আইএল ধরনের - কেবল জিডব্লিউটি তাকান । এটি আপনাকে জাভাতে প্রোগ্রাম লিখতে দেয় তবে এগুলি এইচটিএমএল এবং জেএস হিসাবে বিতরণ করে।


প্রশ্নে আরও স্পষ্টতা অনুসরণ সম্পাদনা করুন

ব্রাউজারগুলির দ্বারা সমর্থিত একমাত্র ভাষা জাভাস্ক্রিপ্ট নয়, বরং ছিল না: ইন্টারনেট এক্সপ্লোরার অন্ধকার যুগে আপনি আইভিতে চালানোর জন্য জাভাস্ক্রিপ্ট বা ভিবিএস স্ক্রিপ্টের মধ্যে বেছে নিতে পারেন। টেকনিক্যালি IE এমনকি জাভাস্ক্রিপ্ট চালায় নি - এটি জেএসক্রিপ্ট চালিয়েছিল (মূলত জাভা শব্দের জন্য সানকে প্রদান করা এড়াতে , ওরাকল এখনও জাভাস্ক্রিপ্ট নামটির মালিক )।

সমস্যাটি হ'ল ভিবিএস স্ক্রিপ্ট মাইক্রোসফ্টের মালিকানাধীন ছিল তবে এটি খুব ভাল ছিল না। জাভাস্ক্রিপ্ট কার্যকারিতা যুক্ত করার সাথে সাথে এবং অন্যান্য ব্রাউজারগুলিতে শীর্ষ ফর্ম ডিবাগিং সরঞ্জামগুলি পাওয়ার সাথে সাথে (ফায়ারবগের মতো) ভিবিএস স্ক্রিপ্টটি কেবলমাত্র আইই-এবং বেশ কিছুটা ডি-ডিবাজেবল (আইই 4/5/6-তে থাকা ডিভাইসগুলি বিদ্যমান ছিল না)। ইতিমধ্যে ভিবিএস স্ক্রিপ্ট ওএসে একটি দুর্দান্ত শক্তিশালী স্ক্রিপ্টিংয়ের সরঞ্জাম হিসাবেও প্রসারিত হয়েছিল, তবে ব্রাউজারে সেগুলির কোনও বৈশিষ্ট্যই পাওয়া যায় নি (এবং যখন তারা ছিল তখন তারা বিশাল সুরক্ষা গর্ত হয়ে গিয়েছিল)।

এখনও সেখানে কিছু কর্পোরেট অভ্যন্তরীণ অ্যাপ্লিকেশন রয়েছে যা ভিবিএস স্ক্রিপ্ট ব্যবহার করে (এবং কিছু সেই সুরক্ষা গর্তের উপর নির্ভর করে), এবং তারা এখনও আই 7 চালিয়ে চলেছে (তারা কেবল আই 6 কে থামিয়ে দিয়েছে কারণ এমএস শেষ পর্যন্ত এটি বন্ধ করে দিয়েছে)।

জাভাস্ক্রিপ্টের বর্তমান অবস্থায় এটি পাওয়া দুঃস্বপ্ন এবং 20 বছর সময় নিয়েছে। ভাষা বৈশিষ্ট্য (1999 সালে নির্দিষ্ট) এর সাথে এখনও কিছু ব্রাউজার এবং প্রচুর শিমের প্রয়োজনীয়তা অনুধাবন করার সাথে এটির ধারাবাহিক সমর্থন নেই।

ব্রাউজারগুলিতে ব্যাখ্যার জন্য একটি বিকল্প ভাষা যুক্ত করা দুটি বড় সমস্যার মুখোমুখি:

  • সমস্ত ব্রাউজার বিক্রেতাকে নতুন ভাষার মান প্রয়োগ করতে - এমন কিছু যা তারা এখনও 20 বছরে জাভাস্ক্রিপ্টের জন্য ম্যানেজ করে নি।

  • একটি দ্বিতীয় ভাষা আপনার ইতিমধ্যে থাকা সমর্থনকে সম্ভাব্যভাবে কমিয়ে দেয় (উদাহরণস্বরূপ) আইই দ্বিতীয় স্তরের জাভাস্ক্রিপ্ট সমর্থন পেতে পারে তবে দুর্দান্ত ভিবিএস স্ক্রিপ্ট (আবার)। আমি সত্যিই বিভিন্ন ব্রাউজারের জন্য বিভিন্ন ভাষায় কোড লিখতে চাই না।

এটি লক্ষ করা উচিত যে জাভাস্ক্রিপ্টটি 'সমাপ্ত' নয় - এটি এখনও নতুন ব্রাউজারগুলিতে আরও উন্নত হওয়ার জন্য বিকশিত হচ্ছে। সর্বশেষ সংস্করণ বছর ব্রাউজার 'বাস্তবায়নের এর এগিয়ে এবং তারা পরের এক কাজ করছি।


5
আমি বলব এটি ব্রাউজার দ্বারা "সংকলিত" নয়, এটি "ব্যাখ্যা করা"।
ফ্ল্যাভিয়াস স্টেফ

19
নতুন ব্রাউজারগুলি জাভাস্ক্রিপ্টে JIT সংকলন করে।
নসরেডনা

4
আমিও jit দাবি googled, এবং, যেমন এটি সক্রিয় আউট, ফায়ারফক্স 3.1 সমর্থন সালে নির্মিত হবে। পরীক্ষা করে দেখুন andreasgal.com/2008/08/22/tracing-the-web বা people.mozilla.com/~schrep/ tm-image-
editment.swf

2
ভি 8 জাভাস্ক্রিপ্ট ইঞ্জিন (ক্রোম) সরাসরি সংকলন করে।
ডেভ ডাব্লু স্মিথ

3
আপনার প্রথম উত্তরটির সাথে আমি দৃ strongly়ভাবে একমত নই "জাভাস্ক্রিপ্টের সমস্যাটি ভাষা নিজেই নয়"। আমি মনে করি এটি সিন্টেক্সিকভাবে খুব কুরুচিপূর্ণ ভাষা এবং অন্যান্য বেশিরভাগ ভাষা থেকে প্রাপ্ত বৈশিষ্ট্যের অভাব রয়েছে। কমপক্ষে আমি এখনও বড় অ্যাপ্লিকেশনগুলির (লোডিং নির্ভরতা, পঠনযোগ্য ওও নীতিগুলি) প্রয়োজন এমন বৈশিষ্ট্যগুলি। যদি আমাদের এখনই এটি (ইন্টারনেট) করতে হয় তবে আমি মনে করি না জাভাস্ক্রিপ্ট কোনও ভাষার জন্য 'সেরা' বিকল্প হতে পারে।
স্যারলেনজ0্র্লট

28

জাভাস্ক্রিপ্ট সংকলন

আপাতত, জাভাস্ক্রিপ্টের সাথে সংকলিত একটি ভাষা ব্যবহার করা স্মার্ট কোড লেখার সময় সমস্ত প্ল্যাটফর্মগুলিতে পৌঁছানোর একমাত্র বাস্তবসম্মত উপায় বলে মনে হচ্ছে এবং সম্ভবত এটি দীর্ঘকাল অবধি রয়ে যাবে। যে কোনও নতুন অফার সহ, সর্বদা কিছু কারণ থাকবে যে কেন এক বা একাধিক বিক্রেতারা এটি পাঠাতে ছুটে না যায়।

(তবে আমি সত্যিই এটি একটি সমস্যা বলে মনে করি না now এখনই জাভাস্ক্রিপ্টটি সুন্দরভাবে অনুকূলিত হয়েছে hand হাতে লেখা থাকলে মেশিন কোডটিও নিরাপদ নয়, তবে এটি একটি সংকলন লক্ষ্য এবং কার্যকর করার ভাষা হিসাবে ভাল কাজ করে))

অনেক অপশন

জাভা স্ক্রিপ্টের সংকলন করে এমন একটি ভাষার ক্রমবর্ধমান পুল রয়েছে। মোটামুটি বিস্তৃত তালিকা এখানে পাওয়া যাবে:

লক্ষণীয়

আমি উল্লেখযোগ্য বলে মনে করি এমন কয়েকটি উল্লেখ করব (যদিও আমি জানি না এমন কিছু রত্নকে অবহেলা করছি):

  • স্পাইডার 2016 সালে উপস্থিত হয়েছিল। এটি গো, সুইফট, পাইথন, সি # এবং কফিস্ক্রিপ্টের সেরা ধারণা নেওয়ার দাবি করে। এটি টাইপসেফ নয়, তবে এতে কিছু ছোট ছোট সুরক্ষা বৈশিষ্ট্য রয়েছে

  • এলম : হাস্কেল তাদের সবার মধ্যে স্মার্ট ভাষা হতে পারে , এবং জাভাস্ক্রিপ্টের জন্য এলম হাস্কেলের একটি বৈকল্পিক। এটি অত্যন্ত টাইপ-সচেতন এবং সংক্ষিপ্ত, এবং প্রতিক্রিয়াশীল টেম্পলেট বা এমভিসি স্প্যাগেটির একটি ঝরঝরে বিকল্প হিসাবে ফাংশনাল রিঅ্যাকটিভ প্রোগ্রামিং সরবরাহ করেপদ্ধতিগত প্রোগ্রামারদের জন্য তবে এটি বেশ ধাক্কা হতে পারে ।

  • গুগলের গো সংক্ষিপ্ততা, সরলতা এবং সুরক্ষার লক্ষ্য। গো কোডটি জাভাস্ক্রিপ্টে গোফেরজেএস দ্বারা সংকলন করা যায়

  • ডার্ট জাভাস্ক্রিপ্ট প্রতিস্থাপনের জন্য গুগলের পরবর্তী প্রচেষ্টা ছিল। এটি /চ্ছিক টাইপিংয়ের সাথে সি / জাভা-জাতীয় সিনট্যাক্সের মাধ্যমে ইন্টারফেস এবং বিমূর্ত শ্রেণীর ক্লাস সরবরাহ করে।

  • হ্যাক্স ফ্ল্যাশের অ্যাকশনস্ক্রিপ্টের মতো, তবে এটি একাধিক ভাষাকে লক্ষ্যবস্তু করতে পারে যাতে আপনার কোডটি জাভা, সি, ফ্ল্যাশ, পিএইচপি এবং জাভাস্ক্রিপ্ট প্রোগ্রামগুলিতে পুনরায় ব্যবহার করা যায়। এটি টাইপ-সেফ এবং ডায়নামিক অবজেক্ট দেয়।

  • ওপালং সরাসরি ডাটাবেস অ্যাক্সেস , স্মার্ট ধারাবাহিকতা, টাইপ-চেকিং এবং ক্লায়েন্ট / সার্ভার বিভাজনে সহায়তা করার জন্য জাভাস্ক্রিপ্টে সিনট্যাকটিক চিনি যুক্ত করে । (নোডজেএস এবং মঙ্গোডিবি-তে বাঁধা)

  • গরিলাস্ক্রিপ্ট , "কিছু সাধারণ ত্রুটি প্রতিরোধের চেষ্টা করার সময় ব্যবহারকারীকে ক্ষমতায়নের জন্য তৈরি করা একটি কম্পাইল-টু জাভাস্ক্রিপ্ট ভাষা" " কফিস্ক্রিপ্টের অনুরূপ তবে আরও বিস্তৃত, সুরক্ষা বাড়াতে এবং পুনরাবৃত্তিক বয়লারপ্লেট নিদর্শনগুলি হ্রাস করতে অতিরিক্ত বৈশিষ্ট্যগুলির একগুচ্ছ সরবরাহ করে।

  • লাইটস্ক্রিপ্ট কোফিস্ক্রিপ্ট এবং গরিলাস্ক্রিপ্টের অভ্যন্তরে কোথাও পড়ে। এটি "ইনলাইন" কলব্যাকগুলি এবং ভেরিয়েবল টাইপগুলির জন্য পরীক্ষার জন্য অ্যাসিঙ্ক / ফলন বাক্য গঠন সরবরাহ করে।

  • মাইক্রোসফ্টের টাইপসক্রিপ্ট জাভাস্ক্রিপ্টের একটি ছোট সুপারসেট যা আপনাকে ফাংশন আর্গুমেন্টগুলিতে টাইপ-সীমাবদ্ধতা স্থাপন করতে দেয়, যা কয়েকগুলি বাগ পেতে পারে। একইভাবে বেটারজেএস আপনাকে বিধিনিষেধ প্রয়োগ করার অনুমতি দেয়, তবে খাঁটি জাভাস্ক্রিপ্টে অতিরিক্ত কল যোগ করে বা জেএসডোক মন্তব্যে প্রকার নির্দিষ্ট করে। এবং এখন ফেসবুক ফ্লো অফার করেছে যা অতিরিক্ত ধরণের ইনফারেন্স দেয়।

  • LiveScript একটি স্পিন অফ Coffeescript থেকে যে তার সংক্ষিপ্ততা জন্য জনপ্রিয় ছিল কিন্তু আমার জন্য খুবই পাঠযোগ্য চেহারা না। সম্ভবত দলের পক্ষে সেরা নয়।

কীভাবে নির্বাচন করবেন?

বিকল্প ভাষা বাছাই করার সময় , কয়েকটি বিষয় বিবেচনা করতে হবে :

  • ভবিষ্যতে অন্য বিকাশকারীরা যদি আপনার প্রকল্পে যোগদান করেন তবে এই ভাষাটি গতি পেতে এবং শিখতে তাদের কতক্ষণ সময় লাগবে, বা তারা ইতিমধ্যে এটি জানার সম্ভাবনাগুলি কী?

  • ভাষার কি খুব কম বৈশিষ্ট্য রয়েছে (কোডটি এখনও বয়লারপ্লেটে পূর্ণ থাকবে) বা অনেকগুলি বৈশিষ্ট্য রয়েছে (এটি আয়ত্ত করতে দীর্ঘ সময় নিতে হবে, এবং তারপরে কিছু বৈধ কোড অবর্ণনীয়)

  • এটিতে আপনার প্রকল্পের জন্য প্রয়োজনীয় বৈশিষ্ট্যগুলি রয়েছে কি? (আপনার প্রকল্পের কি টাইপ-চেকিং এবং ইন্টারফেসের দরকার আছে? নেস্টেড কলব্যাক জাহান্নাম এড়ানোর জন্য কি স্মার্ট ধারাবাহিকতা দরকার? প্রচুর প্রতিক্রিয়াশীলতা রয়েছে? ভবিষ্যতে অন্যান্য পরিবেশকে টার্গেট করার দরকার কি হতে পারে?)

ভবিষ্যৎ...

জেফ ওয়াকার লিখেছেন একটি চিন্তার উদ্দীপক সিরিজ সম্পর্কে "জাভাস্ক্রিপ্ট সমস্যা", কেন তিনি তন্ন তন্ন মনে সহ ব্লগ পোস্ট টাইপ করা বিষয় , কিংবা ডার্ট না Coffeescript পর্যাপ্ত সমাধান প্রদান। তিনি উপসংহারে উন্নত ভাষার জন্য কিছু আকাঙ্ক্ষিত বৈশিষ্ট্যগুলির পরামর্শ দেন ।


ইএস 6 জাভাস্ক্রিপ্টকে এমন আরও কিছু বৈশিষ্ট্য সহ প্রসারিত করেছে যা ক্লাসগুলি আরও স্পষ্টভাবে নির্দিষ্ট করার অনুমতি দেয় এবং জেনারেটরের মাধ্যমে "ইনলাইন অ্যাসিঙ্ক" করে। এখনও গতিশীলভাবে টাইপ করা যদিও!
জোয়েটউইডল

এলমের দৃষ্টিভঙ্গি নাইট্রোজেন বা এন 2 ও এর অনুরূপ (এরং ফ্রেমওয়ার্ক) এজন্যই আমি এটি পছন্দ করি।
ডেনিসকলোডিন

আজকাল আমাদের কাছে কফিস্ক্রিপ্টের সিনট্যাকটিক চিনির কিছুটা ES8 এবং টাইপস্ক্রিপ্টে রয়েছে, পাশাপাশি অ্যাসিঙ্ক-ওয়েট। টাইপস্ক্রিপ্ট আমার কর্মক্ষেত্রে প্রচুর বাগ প্রতিরোধ করেছে, যদিও এখনও অবাক হওয়ার কিছু সুযোগ রয়েছে!
জোয়েটউইডল

রয়েছে Wasm এখন বিভিন্ন অন্যান্য ভাষায় ব্রাউজারে চালাতে দেয়। তবে ডিওএমের সাথে যোগাযোগ এখনও জাভাস্ক্রিপ্টের মধ্য দিয়ে চলছে।
জোয়েটউইডেল

22

ব্রাউজার প্ল্যাটফর্মে জাভাস্ক্রিপ্ট একমাত্র সমর্থিত ভাষা হওয়া উচিত?

হ্যা এবং না. গুগল দ্বারা ডার্ট নামে একটি বিকল্প আছে যা জাভাস্ক্রিপ্টকে সংকলন করে এবং যেমন jQuery এর মতো এটি ডম ম্যানিপুলেশনকে কিছুটা সহজ করার চেষ্টা করে। এটি পরীক্ষা করা মজাদার হতে পারে, এটি পরীক্ষা করে দেখুন।

আরো দেখুন


15

এটি সত্য যে জাভাস্ক্রিপ্ট এক পর্যায়ে কুখ্যাত ছিল যার সাথে মোকাবিলা করা কঠিন ছিল তবে ওয়েব ডেভলপমেন্ট সম্প্রদায়টি দীর্ঘকাল ধরে এসেছিল। পরিবর্তে, আমি আপনাকে jQuery তাকান উত্সাহিত করব । এটি সহজ এবং বিমূর্ততা সমস্ত বিভিন্ন সমস্যা দূরে।

এবং বোর্ডের কাজ করে এমন কোনও বিকল্প নেই। ফ্ল্যাশটি মাথায় আসে তবে সেটিও ইসিএমএ স্ক্রিপ্ট এবং সম্ভবত বেশিরভাগ জিনিসের জন্য এটি হত্যা শেষ।


1
বা MooTools, প্রোটোটাইপ এবং ডোজো jqueryvsmootools.com মটুল এবং জ্যাকুরির মধ্যে একটি দুর্দান্ত তুলনা।
রায়ান ফ্লোরেন্স

জাভাস্ক্রিপ্টের সাথে অন্তর্নিহিত কোনও ভুল নেই / ছিল না। আপনি সম্ভবত IE এর JScript এবং সাধারণ রেন্ডারিংয়ের সমস্যা এবং বিভিন্ন ব্রাউজারগুলির সাথে অসঙ্গতিগুলি উল্লেখ করছেন problems
গ্যাভিন

7

স্বল্প মেয়াদী, আমি ব্রাউজারের অসঙ্গতিগুলি গোপন করতে jQuery এর মতো জিনিস ব্যবহার করব। দীর্ঘমেয়াদে, সিলভারলাইট বা অ্যাডোব আকাশের মতো প্রযুক্তিগুলি ভবিষ্যতে এটি একেবারেই আলাদা মাইনফিল্ড তৈরি করতে পারে (তবে এখনও মাইনফিল্ড)।


1
ব্রাউজারের অসঙ্গতিগুলি গোপন করতে jQuery ব্যবহার করার জন্য +1। আমি যখন এই বিভাগটিতে প্রোগ্রামারদের মাথাব্যথা বাঁচাচ্ছি যখন বলি যে those সমস্ত প্রক্রিয়াগুলি কীভাবে কাজ করে তা ব্যাখ্যা করে একটি বই পড়েছি এবং আমাকে বিশ্বাস করি।
ভিভিয়ান নদী

1
হ্যান্ডসাইটে টেক উত্তরগুলি দেখা সর্বদা একটি অদ্ভুত দৃশ্য। ওয়েবটি জিতেছে এখন আমরা জানি: সিলভারলাইট, ফ্ল্যাশ এবং এয়ার সবই মরে গেছে এবং বাকি বিজয়ীর সমস্ত অদ্ভুত এবং আশ্চর্যজনক উদ্দীপনাতে জাভাস্ক্রিপ্ট রয়েছে।
অলিগোফ্রেন 14

6

ডগ ক্রকফোর্ড গুগলকে জাভাস্ক্রিপ্টের খারাপ এবং ভাল অংশ এবং তার ভবিষ্যতের বিশদ বর্ণনা করে একটি কথা বলেছেন । ১৯৯৯ সাল থেকে এটি আসলে খুব বেশি পরিবর্তন হয়নি - যা একটি ভাল জিনিস বলে বলা যেতে পারে (যতক্ষণ আপনি তাদের সীমাবদ্ধতা সম্পর্কে অবগত আছেন ততক্ষণ পর্যন্ত সমস্ত ব্রাউজার একই কোড চালাতে পারে) এবং ডগ দেখায় যেখানে ভাল অংশগুলি রয়েছে বেশিরভাগ ভুল বোঝাবুঝি ছিল যা খুব শক্তিশালী হয়ে ওঠে।

ডোম হেরফেরের জন্য, জিকুয়েরিকে ক্লায়েন্ট-সাইড লাইব্রেরি হিসাবে দেখুন যা বেশিরভাগ ভয়াবহ ডিওএম এপিআইয়ের পরিবর্তে অপারেশন করে যা সহজেই কোডের সুন্দর মার্জিত বিটগুলিতে লিখতে ব্যথা হয়।


5

আপনি যদি ভাবছেন যে জাভাস্ক্রিপ্টের গভীর সমস্যা রয়েছে তবে আমি ডগ ক্রকফোর্ডের বই জাভাস্ক্রিপ্ট: দ্য গুড পার্টস- এর প্রস্তাব দিই । (অথবা গুগল "ক্রকফোর্ড জাভাস্ক্রিপ্ট" এর জন্য বেশ কয়েকটি ভিডিও উপস্থাপনা খুঁজে পেয়েছেন যা তিনি করেছেন)) ক্রকফোর্ড একটি নিরাপদ উপসেট এবং অনুশীলনের সেট স্কেচ করে এবং বিশেষত এড়াতে ভাষার কিছু অংশ তালিকাভুক্ত করে।

আমি জাভাস্ক্রিপ্টটি ডিওএম কে হেরফের করার বাস্তব উপায় হিসাবে প্রতিস্থাপনের পরিকল্পনা সম্পর্কে অসচেতন । তাই এটি নিরাপদে এবং ভালভাবে ব্যবহার করতে শিখুন।


1
আবার পড়তে. এটা পরিষ্কার যে উত্তর পড়ার পরে তিনি তাঁর প্রশ্নটি সম্পাদনা করেছিলেন।
ডেভ ডাব্লু স্মিথ

4

ক্লায়েন্ট সাইডের শর্তে জাভাস্ক্রিপ্টই ডিওএম চালিত করার একমাত্র উপায়। সার্ভার সাইডের দিক থেকে অনেকগুলি উপায় রয়েছে।


4

ইন্টারনেট এক্সপ্লোরার প্লাগেবল স্ক্রিপ্টিং ভাষাগুলি সমর্থন করে, যদিও জেএসক্রিপ্টের পাশাপাশি IE সহ নির্ভরযোগ্যভাবে অন্তর্ভুক্ত একমাত্র ভিবিএস স্ক্রিপ্ট।

আমি যতদূর দেখেছি, ব্রাউজারে গতিশীল ভাষাগুলির প্রতি সাধারণ ধরণের পক্ষপাত বলে মনে হচ্ছে এবং জাভাস্ক্রিপ্ট এই প্রয়োজনীয়তা যথেষ্ট পরিমাণে পূরণ করবে বলে মনে হয় যে নেটওয়ার্কের প্রভাবগুলি অন্য কোনও ভাষাকে স্টার-স্টার্টার হিসাবে তৈরি করে। ভাষাটি আসলে বেশ শক্তিশালী, যদিও ব্রাউজারগুলিতে এর প্রয়োগ বাস্তবায়িত হওয়ার জন্য অনেক কিছু ফেলে দেয়।


1
আইই-তে ভিবিএস স্ক্রিপ্ট ব্যবহার করবেন না - এটি ভিবি-র কিছু ভয়াবহ রূপ যা বড় এমএস ভেবেছিল তা বন্ধ হয়ে যাবে তবে তা করেনি। এটি আসলে সাধারণ ভিবি বা ভিবিএস স্ক্রিপ্টের মতো কাজ করে না এবং এটি জাভাস্ক্রিপ্টের চেয়ে ধীর।
কিথ

1
ব্রাউজারবিহীন বাস্তবায়নে যে জাভাস্ক্রিপ্ট / ইসিএমএসক্রিপ্ট উপলব্ধ তা ওয়েবকিট বা গেকোর বাস্তবায়নগুলির মধ্যে কী অভাব রয়েছে? এই মন্তব্যটি আমার কাছে সম্পূর্ণ বিভ্রান্তিকর।
পলকহীনতা

4

আপনি যদি নিজের গ্রাহকদের / দর্শকদের নির্দিষ্ট ব্রাউজারগুলিতে সীমাবদ্ধ রাখতে ইচ্ছুক হন এবং সম্ভবত তাদের প্লাগ-ইন ইনস্টল করার প্রয়োজন হয় তবে আপনি এমএস সিলভারলাইটের দিকে নজর দিতে পারেন - একটি পঠনযোগ্য ওভারভিউ উইকিপিডিয়াতে রয়েছে । সিলভারলাইট ২ দিয়ে আপনি সি #, আয়রনপাইথন, আয়রনরবি, ভিবি.এনইটি, ইত্যাদিতে লিখেছেন ক্লায়েন্ট-সাইড, কোড চালাতে পারবেন; মনো প্রকল্প থেকে সিলভারলাইটের ফ্রি মুনলাইট ক্লোন লিনাক্সে একই কার্যকারিতা আনার প্রতিশ্রুতি দেয়।

অনুশীলনে, ওয়েব অ্যাপ্লিকেশন এবং সাইটগুলির বেশিরভাগ বিকাশকারী সিলভারলাইট (এবং শেষ পর্যন্ত মুনলাইট) সরবরাহ করতে পারে তার চেয়ে বেশি বিস্তৃত শ্রোতাদের কাছে পৌঁছনাকে পছন্দ করে - যার অর্থ জাভাস্ক্রিপ্ট, বা সম্ভবত ফ্ল্যাশ (যা একই জাতীয় প্রোগ্রামিং ভাষা, অ্যাকশনস্ক্রিপ্ট ব্যবহার করে) ব্যবহার করে থাকে with

সুতরাং, অন্য যে কোনও কিছুর জন্য যথেষ্ট মানসিকতার গ্রহণ, গ্রহণ এবং ট্রেশন অর্জন মাইক্রোসফ্ট এমনকি তার বৃহত গোষ্ঠী প্রকৌশলী এবং বিপণন বাজেট এবং একটি ফ্রি-সফ্টওয়্যার প্রকল্পের সাথে লড়াইয়ের পক্ষে প্রমাণিত হয় (সম্ভবত মালিকানা লক-ইন সম্পর্কে উদ্বেগকে সহজ করতে ) - যা মজিলা ফাউন্ডেশনের পক্ষ থেকে এমন লক্ষ্যের দিকে এগিয়ে যাওয়ার জন্য কেন খুব কম আগ্রহ রয়েছে তা ব্যাখ্যা করতে সহায়তা করতে পারে। "আন্তঃব্যবহার্যতা" ছাড়াও, আপনি বলেছেন: তবে স্পষ্টতই আন্তঃআকক্ষীয়তার বিষয়টি হ'ল বিগই এখানে দেওয়া হয়েছে, যা আমরা র‌্যালি সিলভারলাইটের অগ্রগতি পর্যবেক্ষণ করি ...


3

যেমনটি ইতিমধ্যে বলা হয়েছে, আপনার কাছে ফ্ল্যাশ রয়েছে (অ্যাকশনস্ক্রিপ্ট যা জাভাস্ক্রিপ্ট থেকে উদ্ভূত ভাষা) এবং সিলভারলাইট / মুনলাইট (আয়রন পাইথন, আয়রন রবি, জেএসক্রিপ্ট, ভিবিএস স্ক্রিপ্ট, সি #) যা ব্রাউজারে প্লাগিনগুলির মাধ্যমে চলতে পারে (প্রথমটি অনেক বেশি সর্বব্যাপী) ।

আপনি যদি রুবি পছন্দ করেন তবে অন্য বিকল্প রয়েছে: হটরুবি , এটি জাভাস্ক্রিপ্টে একটি রুবি বাস্তবায়ন যা ব্রাউজারে চলবে। এটি এখনও খুব পরিপক্ক নয়, তবে আপনি এটি দেখতে পারেন।


3

একটি জিনিস আমি উল্লেখ করে দেখিনি (ওহ, আমি লিখতে গিয়ে হটরুবি উল্লেখ করেছি আলসাইডস এবং নোসরেডা জিডাব্লুটিটি এবং স্ক্রিপ্ট # উল্লেখ করেছেন) এবং [sertোকান ভাষায়] এর অনেকগুলি প্রয়োগ রয়েছে বলে উল্লেখ করতে চাই - অন- জাভাস্ক্রিপ্ট (উদাহরণস্বরূপ অনুবাদক যা আপনাকে রুবি , পাইথন , সি # , জাভা , ওবজে-জে / ক্যাপুচিনো [ওবজে-সি / কোকো সদৃশ] বা প্রসেসিং [ক্যানভাসের জন্য] ক্লায়েন্টে বা স্থাপনার আগে [এবং কিছুতে জাভাস্ক্রিপ্টে রূপান্তর করতে পারে [এবং কিছু যার মধ্যে বিভিন্ন বিমূর্ত গ্রন্থাগারও রয়েছে])। অবশ্যই এটি একটি ক্লায়েন্টে অনুবাদ করা হচ্ছে যদি ওভারহেডের একটি পারফরম্যান্স থাকে তবে আপনি যদি অন্য কোনও ভাষাতে আরও স্বাচ্ছন্দ্য বোধ করেন তবে এটি আপনাকে কিছুটা নমনীয়তা দেয়।

ব্যক্তিগতভাবে, যদিও আমি জাভাস্ক্রিপ্ট পছন্দ করতে শেখার পরামর্শ দিই। আপনি এটি জানতে পারলে এটি একটি দুর্দান্ত, শক্তিশালী ভাষা এবং বেশ মার্জিত আমি বিপরীত দ্বিধাদ্বন্দ্বের মুখোমুখি হয়েছি, একটি সক্ষম সার্ভার-সাইড জাভাস্ক্রিপ্ট / ডোম সমাধান পেতে যা আমার সমস্ত চাহিদা পূরণ করে। / অবৈধ মতামত


আমি জিডব্লিউটি এবং স্ক্রিপ্ট # উল্লেখ করেছি। স্ক্রিপ্ট #-এ আগ্রহীদের জন্য, লিঙ্কটি প্রজেক্টগুলি.নিখিলক.এন. /
নসরডেনা

ওবজ-জে / ক্যাপুচিনোতে আমাকে নির্দেশ করার জন্য আপনাকে ধন্যবাদ। ওয়েব অ্যাপ্লিকেশনগুলি তৈরি করার জন্য এটি আশ্চর্যজনক এবং আমি কেবল এটি খুললাম কারণ আপনি এটি উল্লেখ করেছেন এবং নামটি (এবং কোকো সম্পর্কিততা) আমাকে আগ্রহী করেছিল।
টিমো

2

না। জাভাস্ক্রিপ্ট এটি, তবে এটি বিকশিত হবে। পরবর্তী সংস্করণটি হ'ল "জাভাস্ক্রিপ্ট হারমনি" এবং আপনি যদি গুগল করেন তবে আপনি আরও শিখতে পারবেন।

এখন এবং পরে কেউ জাভাস্ক্রিপ্টের পাশাপাশি ব্রাউজারগুলিতে একটি বাইট কোড ইন্টারপ্রেটার রাখার পরামর্শ দেয়। সম্ভবত ঘটবে না, অন্তত কিছুক্ষণের জন্য।

আমি জাভাস্ক্রিপ্ট ভালোবাসি। তবে জিডাব্লুটিটি সহ অন্যান্য সমাধান রয়েছে যা জাভাটিকে জাভাস্ক্রিপ্ট এবং স্ক্রিপ্ট # তে সংকলন করে, যা সি # কে জাভাস্ক্রিপ্টে সংকলন করে।


2

Jquery (এখনও জাভাস্ক্রিপ্ট তবে) এটি আপনাকে প্রায় সমস্ত ব্রাউজারের জন্য সমর্থন পেতে আপনাকে সত্যই সহায়তা করবে এবং এটি শেখা সত্যিই এত কঠিন নয় :)


2

জাভাস্ক্রিপ্ট ওয়েবের ইংরেজি ভাষা। ইংরেজি historতিহাসিকভাবে ছড়িয়ে পড়ে কারণ এর শক্তিশালী নৌবাহিনী বিভিন্ন দেশকে জয় করেছিল। এটি জাভাস্ক্রিপ্টের সাহায্যে ওয়েবকে জয়যুক্ত বড় সংস্থাগুলির সাথে তুলনীয়। এটি একাধিক ইউরোপীয় উত্স (গ্রীক, লাতিন, জার্মানিক ভাষা, ফ্রেঞ্চ এমনকি কিছু চীনা এবং ভারতীয় শব্দ) থেকে একসাথে আঁকানো একটি ভাষা। জাভাস্ক্রিপ্ট অন্যান্য ভাষা (কাঠামোগত, ওও, ক্রিয়ামূলক) থেকে বছর জুড়ে প্রচুর ধারণা ধার নিয়েছে। উপভাষা ও অ্যাকসেন্টের সামান্য প্রকরণের সাথে ইংরেজী বিভিন্ন জায়গায় কথা বলা হয়, যা বোঝা শক্ত করে। ঠিক যেমন জাভাস্ক্রিপ্টের বিভিন্ন ব্রাউজার রয়েছে এটির কিছুটা আলাদাভাবে ব্যাখ্যা করে।

যদিও প্রাথমিকভাবে ইংরেজি শিখতে সহজ, তবে এটির নিয়ম তুলনায় খুব বেমানান উচ্চারণ এবং আরও ব্যতিক্রম রয়েছে। জাভাস্ক্রিপ্টের মতো এটি একটি সারপ্রাইজ দেওয়ার জন্য সর্বদা থাকে there

বিভিন্ন উচ্চারণ সত্ত্বেও, জাভাস্ক্রিপ্ট হ'ল ওয়েবের লিঙ্গুয়া ফ্র্যাঙ্কা। আপনি যেমন ইংরেজী না হয়ে এখানে ইংরেজিতে লিখতে পারেন ঠিক তেমন প্রতিটি ওয়েব ব্রাউজারের একটি নির্দিষ্ট ডিগ্রি ইংরাজী বোঝার রয়েছে। আইআই এমন লোকের মতো যা তার জীবনবৃত্তান্তে বলে যে সে সাবলীল, তবে কেবলমাত্র বিদেশি ভাষা হিসাবে ইংরেজি বিষয়ে দু'সপ্তাহের কোর্সে গিয়েছিল।

ইংরেজিকে বিশ্বের প্রধান ভাষা হিসাবে উদ্বোধন করার চেষ্টা করা হয়েছে, যেমন এস্পেরান্তো। তবে এগুলির সবগুলিই ব্যর্থ হয়েছিল, কারণ পৃথিবীর বেশিরভাগ লোকেরা কিছু ইংরেজী বলে। একইভাবে জাভাস্ক্রিপ্টের আরও ভাল বিকল্পগুলি চালু করা কঠিন হবে be


1

আমি মনে করি খুব শীঘ্রই জাভাস্ক্রিপ্ট প্রতিস্থাপন করা হবে। সমৃদ্ধ ক্লায়েন্টদের কাছে সম্পূর্ণ আলাদা পদ্ধতির জন্য, আপনি ফ্লেক্সটি তদন্ত করতে চাইতে পারেন, এটি একটি ফ্ল্যাশ-ভিত্তিক প্রযুক্তি।


1

হ্যাক্সের মতো কিছু (haxe.org দেখুন) আপনাকে সহায়তা করতে পারে। এটি জাভাস্ক্রিপ্টের চেয়ে পরিচ্ছন্ন বলে মনে হচ্ছে এবং এটি জাভাস্ক্রিপ্টে সংকলন করা যেতে পারে, সুতরাং এটি ব্রাউজারের ভিতরে চালানো যেতে পারে।

আমি জানি যে এটি আপনার প্রশ্নের সরাসরি উত্তর নয়, তবে আমি ভেবেছিলাম এটি সম্ভবত আপনার জন্য আকর্ষণীয় হবে।


1

অনেক লোক বুঝতে পারে যে জাভাস্ক্রিপ্ট এখন পর্যন্ত সেরা এবং সর্বোত্তম ভাষা নয়। যাইহোক, এটি বর্তমানে ব্রাউজারগুলি দ্বারা সমর্থিত, এবং এইভাবে এটি একটি ভিন্ন ভাষা চালু করা অত্যন্ত কঠিন হবে hard আমাদের কেবল অন্য ব্রাউজার যুদ্ধের দরকার নেই।

এটি ব্যাখ্যা করে যে আমি কেন অন্য ক্লায়েন্ট-পাশের ভাষায় স্যুইচ করার কোনও পরিকল্পনা জানি না।

তবে আমি মনে করি জাভাস্ক্রিপ্ট এতটা খারাপ নয় যদি আপনি ডিওএম মডেল সম্পর্কে চিন্তা শুরু করেন এবং এটির সাথে কীভাবে কাজ করা যায়। জেএসের সাথে অগোছালো এমন অনেকগুলি বিষয় DOM মডেল যেভাবে কাজ করে তার ফল are

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.