ক্লাসিকাল অ্যাপ্লিকেশন বিকাশের (সংকলিত সফ্টওয়্যার) জাভাস্ক্রিপ্ট কেন ব্যবহার করা হচ্ছে না? [বন্ধ]


14

জাভাস্ক্রিপ্টের সাথে আমার ওয়েব বিকাশের বছরগুলিতে, আমি এই সিদ্ধান্তে পৌঁছেছি যে এটি একটি অবিশ্বাস্য শক্তিশালী ভাষা এবং আপনি এটি দিয়ে আশ্চর্যজনক কাজ করতে পারেন।

এটি বৈশিষ্ট্যগুলির সমৃদ্ধ সেট সরবরাহ করে, যেমন:

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

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

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

যদিও আমি জানি, এটি কেবল ওয়েব বিকাশে বা বিদ্যমান সফ্টওয়্যারগুলিতে কেবল স্ক্রিপ্টিং ভাষা হিসাবে ব্যবহৃত হয়।

সম্প্রতি, সম্ভবত ভি 8 ইঞ্জিনকে ধন্যবাদ, এটি অন্যান্য ধরণের কাজের জন্য আরও বেশি ব্যবহৃত হয়েছে (উদাহরণস্বরূপ নোড.জেএস দেখুন)।

এখন অবধি কেন এটি কেবল ওয়েব বিকাশের জন্যই প্রকাশিত হবে? এটিকে সফটওয়্যার বিকাশ থেকে দূরে রাখছে কী?


8
ওয়েব বিকাশ যদি সফ্টওয়্যার বিকাশ না করে (একটি বিশেষ ক্ষেত্রে) হয় তবে তা ঠিক কী? ...
পিটার টারিক

@ পিটার তারেক: আমি মনে করি আপনি এই বিষয়টি পেয়ে গেছেন। আমার অর্থ হ'ল এখন পর্যন্ত বৈশিষ্ট্যগুলি বাড়ানোর জন্য এটি কেবল সফটওয়্যার দ্বারা স্ক্রিপ্টিং ভাষা হিসাবে ব্যবহৃত হয়েছিল। এটি কখনই কোনও ওএসের জন্য কোনও সফ্টওয়্যার অ্যাপ্লিকেশন প্রোগ্রাম করতে ব্যবহৃত হয় নি।
জোসে ফাতি

4
আমি গতিশীল টাইপিংকে একটি বিশাল অপূর্ণতা হিসাবে দেখছি এবং আমি নাল মানগুলি থেকে মুক্তি পেতে চাই।
জোনাস

2
আপনার অর্থ "ক্লাসিকাল অ্যাপ্লিকেশন বিকাশ", "সফটওয়্যার ডেভলপমেন্ট" নয়, তাই না? সেই অনুযায়ী আপনার শিরোনামটি আরও ভাল পরিবর্তন করুন।
ডক ব্রাউন

2
রেকর্ড উইন্ডোজ 8 এর জন্য জোসেফেইটি আপনাকে এইচটিএমএল 5 এবং
জেএসে

উত্তর:


14

সম্প্রতি নোড.জেএস সার্ভার-সাইড ডেভলপমেন্টকে সামনে এনেছে। সুতরাং, উন্নয়নের জন্য এখন জাভাস্ক্রিপ্ট লেখা সম্ভব।

সেটা সত্য. ইতিহাসে এটি উন্নয়নের ভাষা হিসাবে ব্যবহৃত হয়নি। তবে, আরে, এমনকি ক্লায়েন্ট এনভায়রনমেন্টে স্ক্রিপ্টিং (ইউজার এজেন্টস) এক ধরণের বিকাশ। তাই না?

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


অবশ্যই
এটির

15

থেকে এখানে :

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

ক) যাদু 'এই'। এটি যখন এটি তখন ব্যতীত। জাভাস্ক্রিপ্ট আপনাকে সমস্ত জায়গায় বেনাম ফাংশন ব্যবহার করার জন্য চাপ দেয়, যদি না তারা সর্বদা 'এই' ভেরিয়েবলের জন্য যথাযথ প্রসঙ্গটি হারিয়ে ফেলে, তবে আপনার জায়গায় "var _this = this" এর মতো বোকা কোড থাকবে এবং তারপরে এটি ব্যবহার করে আপনার কলব্যাক বা অন্যান্য ফাংশনের ভিতরে কিছু দিন আমি শপথ করে বলছি যে আমি লিখতে পরিচালিত যে ফাংশনগুলির নাম পরিবর্তন করে 'এই' নামটি ব্যবহার করে না সেগুলি আসলে সংখ্যার চেয়ে কম হয়।

খ) 1 + "1" - 1 = 10 এছাড়াও, "1" + 0 = "10"। হ্যাঁ, এটি আসলে আমাদের অ্যাপ্লিকেশনগুলির জন্য বাগ তৈরি করেছে, যেখানে অন্য কোনও অ্যাপ্লিকেশনের ত্রুটির কারণে কোনও স্ট্রিং হিসাবে JSON ফাইল থেকে একটি সংখ্যা হওয়ার আশঙ্কা করা ডেটা লোড করা হয়েছিল এবং ফলাফলটি ভাল হয়নি। পুরো জায়গা জুড়ে এক টন ধরণের রূপান্তর যুক্ত করতে আমাদের সমস্ত লোডিং কোড আপডেট করতে হয়েছিল। যখন আমার কোনও সংখ্যা হওয়ার জন্য কিছু দরকার তখন আমি সত্যই একেবারে শঙ্কিত করতে চাই যে এটি কোনও সংখ্যা হোক, স্ট্রিং বা কোনও বস্তু বা নাল বা অন্য কিছু নয়। লুভা, যা বেশিরভাগ ক্ষেত্রেই জাভাস্ক্রিপ্টের সাথে খুব সমান, এই সমস্যাটি কেবলমাত্র সংযোজন এবং স্ট্রিং কনটেন্টেশনের জন্য একই অপারেটরটি ব্যবহার করার জন্য যথেষ্ট প্রতিবন্ধক না হয়ে এই সমস্যার সমাধান করেছে।

গ) গ্লোবাল বাই ডিফল্ট ভেরিয়েবল। এমনকি আপনি যদি যুক্তিটি গ্রহণ করেন যে গতিশীল টাইপিং কেবল "সহজ" কারণ আপনাকে পরিবর্তনশীল ঘোষণার বিষয়ে ভাবার দরকার নেই, জাভাস্ক্রিপ্ট সেই আর্গুমেন্টটিকে উইন্ডোটির বাইরে ফেলে দিয়ে নতুন জায়গায় সনাক্তকারীদের সামনে 'ভার' রাখে place । আপনি যদি ভুলে যান তবে তা নিঃশব্দে আপনাকে স্ক্রু করে দেয় ws

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

ঙ) পাস-বাই-মান ধরণের তৈরি করতে অক্ষমতা। এটি প্রকৃতপক্ষে সি ++ / ডি বাদ দিয়ে প্রায় প্রতিটি ভাষায় ঘন সমস্যা। যাঁরা জাভাস্ক্রিপ্টটি ওয়েবজিএল অ্যাপ্লিকেশন লিখতে ব্যবহার করছেন তাদের জন্য জাভাস্ক্রিপ্টের জন্য সমস্ত লিনিয়ার বীজগণিত গ্রন্থাগারগুলি একবার দেখুন। 3 ডি অ্যাপ্লিকেশনগুলিতে, আপনি প্রায়শই স্কেলারের তুলনায় প্রায়শই ভেক্টর ব্যবহার করেন। আপনার অ্যাপ্লিকেশনের প্রতিটি পূর্ণসংখ্যা যদি রেফারেন্সের মাধ্যমে পাস করা হয়েছে তা কল্পনা করুন, যাতে "a = 1; b = a; b ++" এ এবং বি উভয়কে 2 এর সমান করে তোলে প্রতিটি ছোট তিনটি উপাদান ভেক্টর একটি সম্পূর্ণ পূর্ণ বস্তু। এগুলি রেফারেন্স দ্বারা পাস করা হয়েছে (আমাদের ওয়েবজিএল গেমটিতে এখনও পর্যন্ত প্রায় অর্ধেক বাগের উত্স, আসলে)। এগুলি প্রচুর পরিমাণে বিদ্যমান, গাদা-বরাদ্দ, এবং আবর্জনা-সংগ্রহ করা হয়, যা জিসির উপর তীব্র পরিমাণ চাপ সৃষ্টি করে যা জিসি এমনকি সাধারণ ওয়েবজিএল গেমগুলিতে বিরতি দিতে পারে এবং করতে পারে, যদি না বিকাশকারীরা হাস্যকর জটিল হুপের মধ্যে দিয়ে না যায় তবে সমস্ত জায়গায় নতুন ভেক্টর তৈরি করা এড়াতে যেখানে এটি নতুন ভেক্টর তৈরি করা যুক্তিসঙ্গত। আপনার অপারেটর ওভারলোডিং থাকতে পারে না, তাই বেসিক ক্রিয়াকলাপগুলি করার জন্য আপনার কাছে খুব বড় এবং কদর্য প্রকাশ রয়েছে। স্বতন্ত্র উপাদান অ্যাক্সেস ধীর। অবজেক্টগুলি স্থানীয়ভাবে প্যাক করা হয়নি এবং তাই আপনি যদি কোনও ফ্লোট 32আরারি উদাহরণ হিসাবে এগুলি প্রয়োগ না করেন তবে এটি বর্তমানে ভি 8 এবং স্পাইডারমোনকি উভয়ের অপ্টিমাইজারের বাইরে ছাঁটাইটিকে বিভ্রান্ত করে তোলে। আমি উল্লেখ করেছি তারা রেফারেন্স দ্বারা পাস হয়েছে? স্বতন্ত্র উপাদান অ্যাক্সেস ধীর। অবজেক্টগুলি স্থানীয়ভাবে প্যাক করা হয়নি এবং তাই আপনি যদি কোনও ফ্লোট 32আরারি উদাহরণ হিসাবে এগুলি প্রয়োগ না করেন তবে এটি বর্তমানে ভি 8 এবং স্পাইডারমোনকি উভয়ের অপ্টিমাইজারের বাইরে ছাঁটাইটিকে বিভ্রান্ত করে তোলে। আমি উল্লেখ করেছি তারা রেফারেন্স দ্বারা পাস হয়েছে? স্বতন্ত্র উপাদান অ্যাক্সেস ধীর। অবজেক্টগুলি স্থানীয়ভাবে প্যাক করা হয়নি এবং তাই আপনি যদি কোনও ফ্লোট 32আরারি উদাহরণ হিসাবে এগুলি প্রয়োগ না করেন তবে এটি বর্তমানে ভি 8 এবং স্পাইডারমোনকি উভয়ের অপ্টিমাইজারের বাইরে ছাঁটাইটিকে বিভ্রান্ত করে তোলে। আমি উল্লেখ করেছি তারা রেফারেন্স দ্বারা পাস হয়েছে?

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

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

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

i) কোনও ইন্টেলিজেন্স এমনকি সম্ভব নয়। আপনার পাঠ্য সম্পাদকের foo.js এর লাইন 187 এ আপনি সেখানে পেয়েছেন সেই পরিবর্তনশীলটিতে কী কী পদ্ধতি রয়েছে তা দেখতে চান? খুব খারাপ. কোডটি কোথায় শুরু করা হয়েছিল তা সনাক্ত না করা পর্যন্ত কোডটি সন্ধান করুন, তারপরে কোডটির মাধ্যমে তার প্রোটোটাইপ কী আছে তা সন্ধান করুন। এবং তারপরে আশা করুন আপনার পিছনের পেছনের প্রোটোটাইপটি পরিবর্তনশীলভাবে পরিবর্তন করার মতো কোনও কোড নেই। প্রকৃতপক্ষে, কেবল এটি একটি ব্রাউজারে চালান এবং ব্রেকপয়েন্টগুলি সেট করুন, কারণ জাভাস্ক্রিপ্টের আপোলোজিস্টরা জাভাস্ক্রিপ্টের স্বাচ্ছন্দ্য এবং সরলতার প্রশংসা করতে যে খেলোয়াড় উইকিপিডিয়া প্রত্নতাত্ত্বিকগুলি ব্যবহার করেন, তার চেয়ে বড় কোনও কোডবাসের জন্য অন্য কোনও উপায়ে মূল্য সম্পর্কে কার্যকর কিছু সন্ধান করা অসম্ভব। কিছু কোড সম্পাদক আরও ভাল করার জন্য খুব চেষ্টা করে , এবং প্রায় কৃপণতা সত্যিই সাধারণ ক্ষেত্রে কখনও কখনও সফল হয়, সফল হয়।

j) কোনও সুবিধা নেই। অন্যান্য গতিশীল টাইপ করা ভাষার তুলনায় জাভাস্ক্রিপ্ট এমনকি বিশেষ নয়। এটি লুয়া, পাইথন, রুবি ইত্যাদি দ্বারা করা যায় না এমন মজাদার কিছু করার পক্ষে সক্ষম নয় the জেএস বাস্তবায়নগুলির কোনওটিই লুয়াজিট বা পাইপাই বা অন্যান্য গতিশীলের বিভিন্ন উন্নত জেআইটি-ইন বাস্তবায়নের চেয়ে দ্রুত নয় are ভাষা। অন্যান্য সাধারণভাবে উপলভ্য ভাষার তুলনায় জেএসের কোনও প্লাস দিক নেই। ওহ, এটি প্লাগইন ছাড়াই কোনও ওয়েব ব্রাউজারে স্থানীয়ভাবে চলে runs এটি কেন এত জনপ্রিয় তা বিশ্বের একমাত্র কারণ। আসলে, এটি ঘটনার একমাত্র কারণ উপস্থিত। যদি 10 বছর আগে কেউ কেবল এই কথাটি ভেবেছিল, "হ্যাক, আসুন আমরা একটি বিদ্যমান সু-নকশাকৃত এবং সুপ্রতিষ্ঠিত ভাষাটি আমাদের ব্রাউজারে ফেলে দিই এবং সবাইকে এই বোকা ছোট্ট হ্যাকজব ব্যবহারের পরিবর্তে নেটস্কেপ নিয়ে এসেছিল অন্য ছেলেদেরও একই কাজ করতে দিন that , "ওয়েবটি আজ অনেক আলাদা (আরও ভাল) দেখবে। ক্রোম যদি পাইথনকে একটি সমর্থিত ভাষা হিসাবে ক্রোমে ফেলে দেয় তবে ভবিষ্যতের কথা ভাবুন। বা প্রকৃতপক্ষে, এটি কল্পনা করুন: গুগল সি / সি ++ কে একটি সমর্থিত ভাষা হিসাবে ক্রোমে ফেলে দেয় (http://code.google.com/p/nativeclient/)।


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

এটি দেখতে আকর্ষণীয় যে 2016 সালে, উত্তরটি এখন পুরোপুরি অচল হয়ে পড়েছে ভাষার বিবর্তন দ্বারা।
স্টিফান বিজজিটার

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

12

কেন?

সর্বাধিক ভুল বোঝানো ভাষা জাভাস্ক্রিপ্ট

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

একমাত্র সাম্প্রতিক অগ্রিমটি হ'ল নোড.জেএসগুলি গুঞ্জনযুক্ত হয়ে উঠেছে এবং লোকেরা এটি গ্রহণ করতে শুরু করেছে যে জাভাস্ক্রিপ্টের অন্যান্য ব্যবহার রয়েছে ..

আমি উইন্ডোজ 8 এর জন্য জেএস এবং এইচটিএমএল 5 বিকাশের দিকে নজর রেখেছি এবং নেট নেটওয়ার্কের প্রতিক্রিয়াটি "প্রিয় godশ্বর কেন?"।

এটি কেবল সত্য যে বেশিরভাগ নন-ওয়েব বিকাশকারীরা আপনার ব্রাউজারগুলিতে মেনুগুলির উপরে স্ক্রোলটি তৈরি করতে আপনি খেলনা ভাষা হিসাবে জাভাস্ক্রিপ্টটি এখনও দেখেন use

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

জাভা এবং। নেট বিকাশকারীদের বিশ্বে তারা তাদের জিইউআই এবং আইডিইতে বিবাহিত এবং ভিমে প্রোগ্রাম করতে সক্ষম হবে না।


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

1
@ জোসেফেইটি দুঃখিত, ভিজ্যুয়াল স্টুডিও জাভাস্ক্রিপ্ট আইডিই নয়। আমি ভিএম-তে দ্রুত তখন ভিএস 2010-এ। এর অর্থ ভিএস 2010 একটি ফাঁস জেএস আইডিই।
রায়নোস

2
@ রায়নোস, "আমি ভিএম ২০১০ এর পরে ভিমেতে আরও দ্রুত This এটির অর্থ ভিএস2010 একটি ফাঁস জেএস আইডিই" " - অথবা সম্ভবত এর সহজ অর্থ হ'ল আপনি ভিএস পাশাপাশি ভিএমও জানেন না।
প্যাটার তারেক

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

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

10

আপনার তালিকায় সিস্টেমে ফাইল লেখার কিছুই নেই, যা সফ্টওয়্যার বিকাশের একটি বিশাল অংশ।

লোকেরা কোনও অ্যাপ্লিকেশন তৈরি করতে জেএস ব্যবহার করার কথা ভাববে না কারণ এটি ওয়েবের জন্য ডি-ফ্যাক্টর স্ক্রিপ্টিং ভাষা এবং আপনি সর্বদা কাজের জন্য সঠিক সরঞ্জামটি ব্যবহার করবেন।

জাভা /। নেট / সি / সি ++ তে তুচ্ছ অপারেশন হলে কোনও ফাইল লেখার জন্য একর জেএস লিখুন কেন?

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


1
স্টিডিও লাইব্রেরি কীভাবে গুরুত্বপূর্ণ তা কীভাবে +1 সম্পূর্ণরূপে ভুলে গিয়েছিল।
রায়নস

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

1
সার্ভার সাইডে। নোডজেএস ফাইল এপিআই হ'ল সি ইত্যাদি হিসাবে একটি তুচ্ছ ... <- আপনি যদি সিতে সঠিকভাবে IO করছেন (নন ব্লকিং)। এছাড়াও যে কোনও বুদ্ধিমান মোড়কের সাথে একটি এজাক্স কলটি 2-3 লাইন হতে পারে। মাইলিব.আজাক্স.পোস্ট ('/ দৃistence়তা / কিছু', {তথ্য: বেলাওবজ})
sa93

@ sa93 দয়া করে জাভাস্ক্রিপ্ট দিয়ে ব্রাউজার হোস্ট পরিবেশকে বিভ্রান্ত করবেন না। লোকালস্টোরেশন ব্রাউজারগুলির একটি হোস্ট এপিআই। এটি ES5 নির্দিষ্টকরণে সংজ্ঞায়িত হয়নি।
রায়নোস

1
@ রিইনিয়ারপোস্ট Writing files to the file system has been replaced with HTTP POST.নয় আপনি পোস্টগুলি পরিচালনা করছেন এমন এপিআই লিখছেন না।
স্টুপারউজার

5

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

আমি জাভাস্ক্রিপ্ট বিলোপ করতে এটি বলছি না। ওয়েব বিকাশের সময় আমি জেএসের সাথে কাজ করা বেশ উপভোগ করি। তবে এটিকে বস্তুনিষ্ঠভাবে দেখলে, অন্য ভাষার তুলনায় জেএসের বেশ কয়েকটি ত্রুটি রয়েছে:

  • অসংখ্য অপ্রয়োজনীয় ত্রুটি। প্রাথমিকভাবে জেএস বিকাশ করার সময় অনেকগুলি ভুল হয়েছিল। তাদের এখানে গণনার দরকার নেই, তারা ভালভাবে নথিভুক্ত রয়েছে। সমস্ত ভাষার প্রাথমিক নকশায় ভুল রয়েছে যা পরে স্থির করা হয়েছে। জেএসের সাথে পার্থক্য হ'ল ভাষাটি খুব দ্রুত তৈরি করা এবং ছেড়ে দেওয়া হয়েছিল এবং ব্রাউজারগুলিতে পিছনের দিকের সামঞ্জস্যতার প্রয়োজনীয়তার কারণে এই ভুলগুলি কখনই ঠিক করা যায় না।
  • উন্নতি এবং নতুন বৈশিষ্ট্য প্রবর্তনের জন্য অত্যন্ত ধীর প্রক্রিয়া। যেহেতু সমস্ত ব্রাউজার বিক্রেতাদের একমত হতে হয় এবং বিভিন্ন রাজনৈতিক কারণে এমনকি ভাষার বিকাশকে কমিয়ে দিতে চায়। সি # দেখুন যা আসলে জেএস এর চেয়ে নতুন ভাষা। সি # যখন চালু হয়েছিল তখন এর উদাহরণ নেই। জেএসের মতো ক্লোজার বা উচ্চতর অর্ডার ফাংশন, তবে একাধিক পুনরাবৃত্তির পরে এটিতে এখন লিনক এবং অ্যাসিঙ্ক সিনট্যাক্সের মতো সমস্ত বৈশিষ্ট্য রয়েছে যা জাভাস্ক্রিপ্ট বিকাশকারীরা কেবল vyর্ষা করতে পারে।
  • দরিদ্র স্ট্যান্ডার্ড লাইব্রেরি। পাইথন, রুবি বা জাভা বা। নেট উপর ভিত্তি করে যে কোনও আধুনিক ভাষাতে আপনার প্রয়োজন হতে পারে এমন প্রায় সমস্ত কিছুর জন্য বিস্তৃত মানক গ্রন্থাগার রয়েছে। জেএসে আপনি তৃতীয় পক্ষের লাইব্রেরি ছাড়া কোনও ফাইলও পড়তে পারবেন না। আপনি রেজেক্সের কথা উল্লেখ করেছেন তবে সমস্ত আধুনিক ভাষায় সেগুলি এবং আরও এক হাজার জিনিস রয়েছে।
  • অন্যান্য ভাষা জাভাস্ক্রিপ্টের কয়েকটি সুবিধা নিয়েছে with ক্লোজার এবং প্রথম শ্রেণির ফাংশনগুলির মতো বৈশিষ্ট্য দশ বছর আগে জাওয়ার মতো ক্লঙ্কি স্ট্যাটিক ভাষার তুলনায় শক্তিশালী ছিল, তবে গতিশীল এবং কার্যকরী ভাষাগুলি দীর্ঘকাল এই বৈশিষ্ট্যগুলি রেখেছিল, এমনকি জাভা, একটি সুন্দর রক্ষণশীল ভাষাও জাভা 8 এ এটিকে যুক্ত করেছে।

অন্যান্য আধুনিক ভাষাগুলি বাদ দিয়ে সত্যিই জাভাস্ক্রিপ্ট সেট করা একমাত্র বৈশিষ্ট্য হ'ল প্রোটোটাইপ-ভিত্তিক উত্তরাধিকার (শ্রেণিভিত্তিকের বিপরীতে), এবং এই মডেলটির সুবিধা সন্দেহজনক কারণ যেহেতু প্রত্যেকে কেবল শ্রেণিভিত্তিক উত্তরাধিকার অনুকরণ করতে এটি ব্যবহার করে।

জাভা স্ক্রিপ্টটি বেছে নেওয়ার কোনও কারণ নেই যদি আপনার কাছে অন্য একটি আধুনিক ভাষা বেছে নেওয়ার বিকল্প থাকে। এটির কারণ যদি কেবলমাত্র আপনার জানা ভাষা হয়।

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