আপনার পছন্দের ভাষা সম্পর্কে আপনি কী ঘৃণা করেন? [বন্ধ]


403

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

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

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

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


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

ঘৃণা লোকেরা কতটা জানে তা নির্ধারণের একমাত্র মাত্রা নয়, তবে আমি এটি দেখতে পেয়েছি যে এটি বেশ ভাল। তারা যে জিনিসগুলিকে ঘৃণা করে তা এগুলি সম্পর্কে কতটা ভালভাবে চিন্তা করছে তাও আমার একটি ক্লু দেয়।


11
পুরানো "আপনার পছন্দের ভাষা" প্রশ্নের এটি একটি দুর্দান্ত স্পিন। ভাল ন্যায়সঙ্গততা।
টম লেস

14
আমার কাছে এটি আকর্ষণীয় মনে হয়েছে যে এসইওর একটি বিশাল .NET শ্রোতা থাকা সত্ত্বেও, এই লেখার সময় 24 টি উত্তর রয়েছে, যার মধ্যে একটি মাত্র (আমার)। নেট বা একটি নেট ভাষা। এসও বা নেট সম্পর্কে এটি কী বলেছে তা আমার কোনও ধারণা নেই তবে এটি আকর্ষণীয় ...
জন স্কিটি

22
সি / সি ++ সহ প্রোগ্রামিংয়ের প্রথম 15 বছর, আমি ঘৃণা করেছি (বর্ণানুক্রমিক ক্রমে): 1. পয়েন্টার 2. পয়েন্টার 3. পয়েন্টার 4. পয়েন্টার 5. পয়েন্টার
ইলিয়ন

4
আমি আশ্চর্য হয়েছি যে লোকেরা তাদের পছন্দের ভাষা ঘৃণা করার বিষয়ে কতগুলি মন্তব্য করেছিল কারণ তারা কীভাবে তাদের পছন্দের ভাষায় প্রোগ্রাম করতে পারে তা বুঝতে
পারেনি

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

উত্তর:


182

জাভা সম্পর্কে আমি পাঁচটি জিনিস ঘৃণা করি:

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

আমি জানি, আমার স্কেলা পরীক্ষা করা উচিত।


7
@ বোথ: এনপিই স্ট্যাক ট্র্যান্সের প্রথম লাইনে দেখানো হয়েছে। এটিতে (বেশিরভাগ সময়) শ্রেণি, জাভা ফাইলের নাম এবং লাইনের নম্বর রয়েছে: "at your.faulty.code.Instance (Intance.java split234)" তারপরে আপনি কেবল ফাইলটি খোলেন, সেই লাইনে যান এবং সেখানে এটি এটি একটি ভেরিয়েবল যা এর জন্য কিছু বরাদ্দ করা হয়নি।
অস্কাররেজ

35
@ অস্কার রেইস - এর, আমরা এটি জানি। তবে সেই লাইনে একাধিক ভেরিয়েবল থাকতে পারে এবং ব্যতিক্রম বার্তাটি আমাকে জানায় না কোনটি নাল।
জারকোনন

10
স্কালার এর ওয়ারসও রয়েছে। তবে এটি জাভার চেয়ে চমত্কারভাবে ভাল।
Wheaties

10
ফ্রেমওয়ার্ক ইত্যাদির
প্রসারণের

6
@ ভ্যালেনটিন, নুলপয়েন্টার এক্সসেপশনটি একটি রাতভর চালানো থেকে একটি বিশাল লগফাইলে থাকার মজাটি কল্পনা করুন এবং কী ঘটেছে তা আপনার খুঁজে বের করতে হবে ... ডিবাগিং কোনও বিকল্প নয়।
থোরবজর্ন রাভন অ্যান্ডারসন

216

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

  • বাস্তবায়ন জুড়ে অসামঞ্জস্যপূর্ণ সিনট্যাক্স
  • সূক্ষ্ম কোড পার্থক্য আপাতদৃষ্টিতে অস্পষ্ট কারণগুলির জন্য ব্যাপক কর্মক্ষমতা ছড়িয়ে দিতে পারে
  • পাঠ্য কারসাজির জন্য দরিদ্র সমর্থন
  • প্রবেশের সহজ ব্যয় কিন্তু ভাষায় দক্ষতার দিকে খাড়া শেখার বক্ররেখা
  • সেরা অনুশীলনের জন্য সম্প্রদায়ের সর্বনিম্ন মানককরণের মধ্যে এটির সিনট্যাক্স শৈলী অন্তর্ভুক্ত।

... এবং অতিরিক্ত বোনাস ছাড়াই এটি ঘৃণা করার কয়েকটি বোনাস কারণ

  • পুরো ধারাটি সর্বশেষে চলে যায়, পুরো টেবিলটি ধ্বংস করে অকালপূর্বে একটি আপডেট বা ডিলিট কার্যকর করা সহজ করে তোলে। পরিবর্তে, যেখানে সামনে কোথাও যেতে হবে।
  • রিলেশনাল ডিভিশন বাস্তবায়ন করা কঠিন।
  • আমি NULL এ একটি মান সেট করতে পারি, তবে আমি NULL এর সাথে সমতার জন্য এটি পরীক্ষা করতে পারি না। আমি IS নাল চেক করতে পারি, কিন্তু এটি কেবল কোডটিকে জটিল করে তোলে - অযথা হ'ল, আমার মতে।
  • কলামে একটি উপনাম স্থাপন না করে এবং তারপরে (বা কলাম সূচীটি SORT এর সাথে) গ্রুপ করার পরিবর্তে আমাদের কেন একটি GROUPed কলামের সূত্রটি সম্পূর্ণভাবে সম্মানিত করা দরকার?

7
তারা এটিকে ভাষা হিসাবে ভাবনা বন্ধ না করা পর্যন্ত কেউ এটিকে ভালবাসতে শিখতে পারে না। :)
অ্যালান মুর

4
সবকিছুর জন্য +1। এবং তবুও লোকেরা
ভাবছে

2
@ অ্যালান এম ... এল কি দাঁড়ায় না? :)
কেভ

29
INSERT- এর সিনট্যাক্স কেন আপডেটের থেকে আলাদা তা বুঝতে পারি না। এবং মার্জ বোধগম্য।
LaJmOn

3
সত্য নালার প্রয়োজনীয়তা স্পষ্ট হওয়া উচিত, আপনি যদি বিবেচনা করেন যে সত্য এবং মিথ্যা ঠিক পরে এনএইউএল তৃতীয় সম্ভাব্য ফলাফল। যেহেতু এর অর্থ "অজানা" তাই আপনি জানাতে পারবেন না যা অজানা তা অন্য কোনও জিনিসের সাথে মিলে যা অজানাও। অন্য একটি উদাহরণ: যদি NULL NUL এর সমান হয় তবে এর অর্থ হ'ল JOINs করার সম্পূর্ণ ধারণাটি অসম্ভব, যেহেতু কোনও NULL মান অন্য NULL মানের সাথে মিলিত হতে পারে। আপনি যদি এই বিষয়টি বুঝতে পারেন (যাকে একে তিন্নারি যুক্তিও বলা হয়) আপনি এনএইচএল এর বিরুদ্ধে পরীক্ষার জন্য "আইএস" অপারেটর প্রবর্তনের কারণটি বুঝতে পারেন।
অ্যালেক্স

159

জাভাস্ক্রিপ্ট :

  1. সমস্ত দুর্দান্ত জিনিসগুলি অত্যন্ত জটিল, তবে তারপরে, সমস্ত শীতলতাও এত অল্প পরিমাণে কোডে জড়িয়ে পড়েছে যে আপনি এটি অনুসরণ করার জন্য সংগ্রাম করার জন্য বোকা বোধ করেন you

  2. '+' হ'ল দুর্বল-টাইপযুক্ত ভাষায় সংক্ষেপণের জন্য অপারেটরের একটি অযৌক্তিক পছন্দ। তারা কি নুবুকে ভয় দেখানোর চেষ্টা করছিল ?

  3. এটি একটি ক্রস-ব্রাউজারের সামঞ্জস্যতা খনি ক্ষেত্র (এটি এমনকি চালু করা আছে কি না তা মনে করবেন না)

  4. এটি সাধারণত অবিশ্বস্ত থাকে - জালিয়াতির সাথে সম্পর্কিত যেমন পিছনের বোতামটি ব্লক করা, পপ-আপগুলি যা কখনও মারা যায় না ইত্যাদি etc.

  5. ডিবাগ করা প্রায় অসম্ভব কারণ এখানে কয়েকটি কয়েকটি পৃথক ত্রুটি বার্তা এবং কয়েকটি ভিন্ন ধরণের (সংখ্যা, স্ট্রিং, অবজেক্ট ইত্যাদি) রয়েছে

যদি এটি jQuery না হয় তবে আমি সম্ভবত এখনও এটি যতটা ঘৃণা করতাম :)


15
আমি মাশচের সাথে একমত ECMAscript নিজেই এবং একটি সুন্দর এবং শক্তিশালী ভাষা। এটি বিরক্তিকর ব্রাউজারগুলি (: কাশি: আইই) যা এর নামটি ঘোলাটে করে।
টিজে এল

32
@ মাউশ: জাভাস্ক্রিপ্ট কোথায় বিস্তৃত ক্ষেত্রে বাস করে? আপনি "গাড়িগুলি গ্লোবাল ওয়ার্মিংয়ে অবদান রাখে না, এটি গাড়ি চালায় যে এটি করে" এর সমতুল্য বলছেন - সত্য, অবশ্যই, তবে বিন্দুটি মিস করছেন - আপনি গাড়ি নিয়ে আর কী করবেন?
jTresidder

20
@ ক্রিস: হ্যাঁ, "+" একটি দৃ strongly়ভাবে টাইপ করা ভাষায় (পাইথনের মতো) ভাষায় কনকেন্টেশন করার জন্য একটি ভাল অপারেটর। দুর্বলভাবে টাইপ করা ভাষায় (জাভাস্ক্রিপ্ট বা সি এর মতো) এটি ভয়ানক; এটি স্থির করে (নিঃশব্দে!) যে 'যোগফল:' + 2 + 3 'যোগফল: 5' নয়, তবে 'যোগ: 23'। আরও জাভাস্ক্রিপ্ট অভিজ্ঞতা সম্পন্ন কেউ আরও ভাল উদাহরণ দিতে পারেন।
শ্রীভাত্সারআর

5
হ্যাঁ, সি দুর্বলভাবে টাইপ করা হয়েছে, এর সাথে তুলনা করে বলুন, পাইথন (যেমন আপনি charশূন্য * পয়েন্টার ইত্যাদির মাধ্যমে যে কোনও কিছুতে কাস্ট্রার নির্ধারণ করতে পারেন ) এটি গতিশীল টাইপের পরিবর্তে স্থিরভাবে টাইপ করা হয় এবং এর পরিবর্তে স্পষ্টত টাইপিংয়েরও প্রয়োজন হয় অনুমান টাইপ করুন, তবে সেগুলি শক্তিশালী ভি / গুলি দুর্বল টাইপিংয়ের সাথে সম্পর্কিত নয়। [এলোমেলো উদাহরণ: পাইথনের গা imp় গতিশীল শক্তিশালী টাইপিং রয়েছে, হাস্কেলের কাছে (বৈকল্পিকভাবে স্পষ্ট) স্ট্যাটিক শক্তিশালী টাইপিং রয়েছে, জাভা স্পষ্টত (বেশিরভাগ স্থির) শক্তিশালী টাইপিং রয়েছে, সিতে স্পষ্টত স্ট্যাটিক (তুলনামূলকভাবে দুর্বল) টাইপ রয়েছে।] "শক্তভাবে টাইপ করা হয়েছে" এবং "দুর্বলভাবে টাইপ করা হয়েছে" "আসলে ভাল সংজ্ঞায়িত হয় না।
শ্রীভাতসার আর

5
@ শ্রীভত্সআর সংঘাতের উদাহরণ: '3'+'2'='32', '3'-'2'=1
থমাস আহলে 18

148

পিএইচপি:

1) আমাকে অপ্রয়োজনীয় পরিবর্তনশীল করতে বাধ্য করুন:

$parts = explode('|', $string);
$first = $parts[0];

2) লম্বা লম্বা লম্বা একটি বাস্তবায়ন এটি ব্যবহারের প্রায় সমতুল্য eval()এবং এত ঘৃণ্য ভুল যে আমি এটি কখনও ব্যবহার করি নি (দেখুন http://www.php.net/create_function )।

3) একটি চেষ্টা / ক্যাচ সিস্টেম যা প্রায় 80% ত্রুটি হতে পারে তা ধরতে পারে।

৪) রেজেেক্স সমর্থন ল্যাম্বডা সাপোর্টের মতোই খোঁড়া সমর্থন করে কারণ এটি নিয়মিত স্ট্রিংয়ের ভিতরে লিখতে হয়, যা সবচেয়ে শক্ত শেখার প্রোগ্রামিং সরঞ্জামগুলির মধ্যে প্রায় তিনগুণ কঠিন করে তোলে। এবং পিএইচপি একটি "সহজ" ভাষা হিসাবে বিবেচিত??!?!?!?

৫) স্টাফটিকে দু'বার না লিখে বা নিজের ফাংশনটি তৈরি না করে, বা '@' অপারেটর ব্যবহার না করে safely _POST এর বাইরে নিরাপদে টেনে আনার কোনও উপায় নেই:

$x = isset($_POST['foo']['bar']) ? $_POST['foo']['bar'] : null;

)) বোনাসের উত্তর: '@'। আপনি যদি আপনার কোডটি সঠিকভাবে লিখতে বিরক্ত না হন তবে কেবল '@' যুক্ত করুন এবং আপনার কোডটি পরে ডিবাগ করতে হবে এমন ব্যক্তির পক্ষে খুব খারাপ।


44
কি সম্পর্কে তালিকা ($ প্রথম) = বিস্ফোরণ ('|', $ স্ট্রিং); ?
ম্লারসেন

44
আদর্শভাবে, আমি some_function (বিস্ফোরিত ('|', $ স্ট্রিং) [0]) ব্যবহার করতে চাই;
খুব বেশি পিএইচপি

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

24
আপনি প্যারামিটার ক্রম এলোমেলোভাবে পরিবর্তনের সাথে ফাংশনগুলি সম্পর্কে ভুলে গেছেন
ডুসফট

39
আপনি verbNoun, verb_noun, noun_verb, nounverb, verbnoun, nounVerb ইত্যাদি সম্পর্কে ভুলে গেছেন
ওয়ার্টি

135

সি ++

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

13
আমি STL সাথে একমত, কিন্তু আমি বলব কি হয় প্রশংসনীয় ভাল নেই।
বার্নার্ড

22
ইউনিকোড। আমি এসকিয়ের সরলতার প্রতি শ্রদ্ধা জানাই, তবে ভালোর জন্য আমরা এখন একবিংশ শতাব্দীর মধ্যে এসেছি into
উইলহেমটেল

29
অন্যান্য ভাষায় প্রোগ্রামিং করার সময় @ কিভেলি কনস্টের সঠিকতা হ'ল আমি সবচেয়ে বেশি অনুভব করি। বিশেষত গতিশীল টাইপযুক্ত। রাই একটি বড় বৈশিষ্ট্য যা আমি প্রায়শই মিস করি।
উইলহেমটেল

6
বেশিরভাগ সি ++ টি সমস্যা আইএসও স্ট্যান্ডার্ড হওয়া এবং 10 বছরের জন্য লক হওয়া থেকে আসে।
গ্রাহাম.রিডস 4'10

7
+1 "টেমপ্লেট ত্রুটি বার্তা" "
জোও পোর্তেলা

129

সি # /। নেট:

  • ক্লাসগুলি ডিফল্টরূপে সিল করা উচিত
  • কোনও lockবিবৃতি থাকা উচিত নয় - পরিবর্তে, আপনার নির্দিষ্ট লকিং অবজেক্ট থাকা উচিত এবং এমন পদ্ধতি থাকা উচিত Acquireযা ডিসপোজেবল লক টোকেনগুলি ফেরত দেয়। অনুচ্ছেদে: প্রতিটি বস্তুর জন্য কোনও মনিটর থাকা উচিত নয়।
  • GetHashCode()এবং Equals()থাকা উচিত নয় System.Object- হ্যাশিংয়ের জন্য সবকিছু উপযুক্ত নয়। পরিবর্তে, একটি আছে IdentityComparerযা একই জিনিস আছে, এবং রাখা IComparer<T>, IComparable<T>, IEqualityComparer<T>এবং IEquatable<T>কাস্টম তুলনা জন্য ইন্টারফেসগুলি।
  • অপরিবর্তনীয়তার জন্য দরিদ্র সমর্থন
  • এক্সটেনশন পদ্ধতিগুলি আবিষ্কারের দারুণ উপায় - আমি যে কোনও নামস্থান ব্যবহার করছি তার চেয়ে এটি অনেক বেশি সচেতন সিদ্ধান্ত হওয়া উচিত।

যারা আমার মাথার উপরের অংশে ছিল - আগামীকাল আমাকে জিজ্ঞাসা করুন এবং আমি অন্য 5 টি নিয়ে আসব :)


22
ডিফল্ট হিসাবে সিলযুক্ত: উত্তরাধিকার হয় হয় একটি শ্রেণিতে নকশা করা উচিত (যা সময় নেয় এবং ভবিষ্যতের বিকল্পগুলি সীমাবদ্ধ করে) বা নিষিদ্ধ। হ্যাশকোড / সমান: এটি জাভাতেও সফল হয়। একদিন আমি এটি সম্পর্কে একটি দীর্ঘ ব্লগ পোস্ট লিখব। উত্তরাধিকার শৃঙ্খলে কেন সমান সমান হয় তার বিশদগুলির জন্য কার্যকর জাভা পড়ুন।
জন স্কিটি

88
ডিফল্টরূপে সিল করার অর্থ আপনি যে কোনও সম্ভাব্য কারণের কথা ভেবে দেখেছেন যে কেউ আপনার শ্রেণি থেকে উত্তরাধিকারী হতে পারে এবং আপনি সেগুলির কোনও অর্থ বোঝেন না। দুঃখিত, তবে আমরা কেউই স্মার্ট নই।
এড এস

69
সেক্ষেত্রে আপনার আমার কোড থেকে উত্পন্ন করার জন্য আমি যথেষ্ট স্মার্ট নই: কারণ ভবিষ্যতে আমি কী পরিবর্তন করতে পারি যা আপনার কোডটি ভেঙে দিতে পারে তা আমি অনুমান করতে পারি না। এটি একটি খুব উল্লেখযোগ্য সমস্যা, আইএমও। কোডটি সিল করা আরও সীমাবদ্ধ তবে আরও বাস্তবায়নের স্বাধীনতা এবং দৃ freedom়তার দিকে পরিচালিত করে।
জন স্কিটি

11
আমি বিশ্বাস করতে পারি না যে কেউ "গোটো কেস" সিনট্যাক্সের উল্লেখ করেছে, আমি সেটিকে ঘৃণা করি!
আইস্টিনা

20
জন স্কিটি সি # ডিজাইন করেনি এটি একটি ভাল জিনিস, বা আমার তালিকাটি "১ টি ক্লাস ডিফল্ট হিসাবে সিল করা হয়েছে; ২ লক করা খুব জটিল; ৩. বেশিরভাগ বস্তু হ্যাশেবল নয়"!
গ্যাবে

113

সি

  • স্ট্রিং ম্যানিপুলেশন।

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


50
একমত। স্ট্রিং ম্যানিপুলেশন সি
بول্টবাইট

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

5
সি স্ট্রিং ম্যানিপুলেশন স্তন্যপান করে তবে ভাষার সমস্যা যতদূর যায়, এটি সবচেয়ে খারাপ নয়।
ক্রিস লুৎজ

3
স্ট্র্যাঙ্কেটটি কনটেনেট করার জন্য, তবে অপেক্ষা করুন ... গন্তব্যটিতে কি পর্যাপ্ত জায়গা আছে ... ঠিক আছে, যদি চেক করতে বিবৃতি সন্নিবেশ করা আবশ্যক ... তবে অপেক্ষা করুন, আমার স্ট্রিংয়ের গাদা থাকলে কি হবে? ঠিক আছে, আকারের
সন্ধানের

4
আমরা পাঁচটি জিনিস জন্য একটি থ্রেড প্রয়োজন আমরা না সি সম্পর্কে ঘৃণা ...
L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳

94

"কিছু ভাষা সম্পর্কে আমি ঘৃণা করি" তালিকা সম্পর্কে আমি কীভাবে ঘৃণা করি? : ডি

5- কমলা লাল রঙ করা এটিকে আপেল বানায় না।

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

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

4- আপনি কাঠের পায়ে দাঁড়িয়ে আছেন?

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

3- আসলেই দোষ কার?

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

int a[10];
for (int idx = 0; idx < 15; idx++) a[idx] = 10;

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

2- আমাদের কি তা রিসাইকেল বাক্সে রাখা উচিত নয়?

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

1. - সবকিছু একটি বস্তু।

ঠিক আছে .. এটি সত্যিই # 2 এর উপসেট। তবে এটি এখন পর্যন্ত সবচেয়ে বিরক্তিকর অভিযোগ যা আমি ঘৃণার তালিকায় দেখি। সবকিছুই একটি বস্তু নয়। এমন অনেকগুলি ধারণা রয়েছে যা সম্পর্কিত নয় বা তাদের বস্তু হওয়ার দরকার নেই। যেখানে তাদের অন্তর্ভুক্ত নয় এমন জিনিসগুলি রাখা কেবল কুশ্রী এবং কোনও প্রোগ্রামের দক্ষতা হ্রাস করতে পারে। অবশ্যই। সম্ভবত ভাষার উপর নির্ভর করে না। এটি # 5 এর সাথেও সম্পর্কিত। এর অর্থ ... হ্যাঁ গ্লোবাল ঠিক আছে। স্থির পদ্ধতি হিসাবে প্রয়োগগুলি ঠিক আছে। গ্লোবাল ফাংশনগুলির সাথে ওও প্রোগ্রামিংয়ের সংমিশ্রণ ঠিক আছে। এখন .. এর অর্থ এই নয় যে আমাদের সবাইকে বেরিয়ে আসা উচিত এবং এটির আইটেম মডেলগুলি থেকে আমাদের কোড "ফ্রি" করা উচিত। কোডের একটি বিভাগ বা একটি সম্পূর্ণ প্রকল্প ডিজাইন করার সময়, পর্দার আড়ালে কী ঘটে হওয়া উচিতএকসাথে রাখার সময় বিবেচনা করা উচিত। যে ধারণাটি বাস করে না শুধুমাত্র এবং অন্যান্য অনেকগুলি কারণেই। ক্লাসের মধ্যে বিশ্বব্যাপী ফাংশন মোড়ানো বা স্থান ধারণার নামকরণ যদি এটি কোনও উদ্দেশ্য করে না? স্থির সদস্যের ভেরিয়েবল নিন Take এটি আমাকে বিস্মিত করে কারণ .. ভাল.. ভাষা এবং অবশ্যই প্রয়োগের উপর নির্ভর করে, তবে সাধারণভাবে বলতে গেলে, আপনি কেবল একটি বিশ্ব ঘোষণা করেছেন। হ্যাঁ, ওও মোড়কে এই অ-ওও ধারণাটি মোড়ানো করার কিছু কারণ রয়েছে। স্ব স্ব ডকুমেন্টিং কোড অবশ্যই একটি। এটা বুঝতে পারি। সুতরাং .. যেমন আমি বলি। বাইরে যান এবং আপনার কোড "ফ্রি" করবেন না। তবে যে কোনও ভাল আধুনিক ভাষার ওও মডেলিংয়ের বাইরে একটি বৈশ্বিক ধারণা থাকবে। হ্যাঁ আমি নির্দিষ্ট করে বলতে চাইছি যে বিশ্বব্যাপী ধারণা ব্যতীত কোনও ওও প্রোগ্রামিং ভাষার খুব সম্ভবত ডিজাইনের গুরুতর ত্রুটি রয়েছে। আবার যদিও .. ভাষার উদ্দেশ্য এবং নকশার উপর নির্ভর করে তাই আমি কোনও নির্দিষ্ট ভাষা বেছে নেওয়ার চেষ্টা করছি না এবং এখানে বিশ্লেষণ করার মতো অনেক বেশি আছে। যাইহোক, কোডটি কোথায় থাকবেন তা বিবেচনা করুন এবং সবচেয়ে কার্যকর হওয়া উচিত be কার্যকারিতা বা সমর্থন যোগ করে না এমন কোনও কিছুতে গুচ্ছ গুচ্ছ যোগ করা দ্রুত কীবোর্ডটি দ্রুত পরিধান করে। এটি কারও মঙ্গল করে না। ভাল .. যদি না আপনি যদি সেই ব্যক্তির কাছ থেকে ব্রাউন পয়েন্ট পছন্দ না করেন, যিনি সম্ভবত আপনাকে ভুলভাবে শিখিয়েছিলেন যে সবকিছুই একটি বস্তু।

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


19
ভাষাগুলি নিখুঁত নয় এবং আপনি যদি কোনও ভাষা সম্পর্কে ঘৃণিত জিনিসগুলির একটি তালিকা তৈরি করেন তবে আপনি কিছু আকর্ষণীয় মন্তব্য এবং ধারণা পেতে পারেন। প্রথমত, এটি অন্যদের এমন সমাধান দেওয়ার অনুমতি দেয় যা আপনি জানেন না যা বিদ্যমান ছিল (পোস্টগুলি দেখুন, আপনি কয়েকটি জিনিস শিখেছিলেন দেখুন)। দ্বিতীয়ত, এটি ভাষা বিকাশকারীদের জন্য ব্যবহারকারীর প্রতিক্রিয়া গঠন করে (আপনার ব্যবহারকারীরা আপনার সফ্টওয়্যার সম্পর্কে সবচেয়ে বেশি ঘৃণিত 5 টি জিনিসের একটি তালিকা নিয়ে আসে তবে কি আপনি আগ্রহী হবেন না?) এবং তৃতীয়ত, এটি ত্রুটিগুলি বিবেচনা করতে আগ্রহী আপনার সরঞ্জাম।
সিলভারড্রাগ

4
আপনি যদি সেই স্তরে এটি দেখেন তবে কেবল বিরতি এবং চালিয়ে যাওয়া নয়, তবে লুপগুলি গোটোস (শর্তটি পূরণ করা হলে লুপের সূচনাটি লাফ করুন), যদি গোটো হয় (শর্তটি যদি ব্লকের উপরের দিকে না যায় তবে ফাংশন কল) গোটো (ফাংশন
হিলিয়াম

17
সোর্স কোড থেকে এক্সিকিউটেবল ফাইল তৈরির "কোনও লাভ নেই"? কি?
স্পষ্টত

4
পার্ল 80 এর দশকের শেষের পরে থেকে পার্ল ফাইল থেকে এক্সিকিউটেবল তৈরি করতে পারে। বিতরণ করার জন্য একটি জিনিস দরকারী। ক) পার্ল ইনস্টল করার দরকার নেই, খ) প্রোগ্রামের উপাদানগুলি ইনস্টল করুন, গ) সম্ভবত কোনও পথ নির্ধারণ এবং এটি সম্পাদন করার জন্য কোনও স্ক্রিপ্ট লিখুন ... হ্যাঁ, সত্যিই অকেজো।
এক্সক্র্যাম্পগুলি

1
তবে, যদি আপনি উত্স থেকে .exe ফাইল তৈরি করতে না পারেন তবে উইন্ডোজ ব্যবহারকারীরা এটি চালাতে সক্ষম হবেন না। ;)
ইভান প্লেইস

88

জাভা সম্পর্কে আমি পাঁচটি জিনিস ঘৃণা করি (যা বর্তমানে আমার প্রিয় ভাষা) কোনও নির্দিষ্ট ক্রমে নয়।

  1. আমি যতটা জাভা জেনেরিক্সের একজন ভক্ত, সেখানে এটির নকশা তৈরির দিক থেকে প্রচুর অদ্ভুততা দেখা দেয়। যেমন জেনেরিকগুলির সাথে বিরক্তিকর সীমাবদ্ধতার অগণিত ঘটনা রয়েছে (যার মধ্যে কিছু টাইপ-ইরেজরের ফলাফল)।
  2. যেভাবে অবজেক্ট.ক্লোন () এবং ক্লোনযোগ্য ইন্টারফেসগুলি কাজ করে তা সম্পূর্ণরূপে ভাঙা।
  3. হাই-রোডটি নেওয়ার এবং সবকিছুকে একটি বস্তু (উদাহরণস্বরূপ, ছোট্ট টাল্ক) বানানোর পরিবর্তে, সান নিমজ্জনিত করে দুটি পৃথক পৃথক বিভাগের ডেটা-ধরণের: অবজেক্টস এবং আদিম। ফলস্বরূপ এখন বক্সিং / আনবক্সিংয়ের মতো মৌলিক ডেটা ধরণের এবং জঘন্য কৌতূহলের জন্য দুটি উপস্থাপনা রয়েছে এবং কোনও সংগ্রহের মধ্যে আদিমকে রাখতে সক্ষম হয় না।
  4. দোল খুব জটিল is আমাকে ভুল করবেন না: সুইংয়ের সাহায্যে প্রচুর দুর্দান্ত জিনিস থাকতে পারে তবে এটি ওভার ইঞ্জিনিয়ারিংয়ের দুর্দান্ত উদাহরণ।
  5. এই চূড়ান্ত অভিযোগটি সান এবং যাঁরা জাভার জন্য এক্সএমএল লাইব্রেরি লিখেছেন তাদের সমান দোষ। জাভা এক্সএমএল লাইব্রেরিগুলি বেশ জটিল। কোনও এক্সএমএল ফাইলটি সহজেই পড়তে গেলে, আমাকে প্রায়শই চিন্তিত হতে হয় আমি কী পার্সার ব্যবহার করছি: ডম বা স্যাক্স? প্রত্যেকের এপিআই সমান বিভ্রান্তিকর। সহজেই ভাষার জন্য স্থানীয় সমর্থনএক্সএমএলকে পার্সিং / লেখার খুব সুন্দর হবে।
  6. java.util.Date চুষে দেয়। এটি কেবল অযথা জটিল নয়, সমস্ত দরকারী পদ্ধতি হ্রাস করা হয়েছে (এবং অন্যদের সাথে প্রতিস্থাপন করা হয়েছে যা জটিলতা বাড়ায়)।

32
আপনি java.util.Date সম্পর্কে ভুলে গেছেন!
টিএম

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

2
যতক্ষণ না আমরা ক্লোনিকে বাশ করছি, ততক্ষণে তথাকথিত সিরিয়ালাইজেবল "ইন্টারফেস" অন্তর্ভুক্ত থাকতে পারে। যখনই এটি ব্যবহার করি আমি সর্বদা নিজেকে ছুরিকাঘাত করতে চাই।
wds

12
একটি ফাইল খুলুন এবং এটি থেকে পড়ার মতো সাধারণ কাজগুলি করা শক্ত।
এরিক জনসন

3
@ রায়ান ক্লোন () অগত্যা "অবজেক্ট" ফিরিয়ে দেওয়ার প্রয়োজন হয় না। জে 2 এসই 5.0 এর সাথে জাভা কোভেরিয়েন্ট রিটার্ন প্রকারের প্রবর্তন করেছিল, যার অর্থ আপনি কোনও বেস শ্রেণীর কোনও উপ-প্রকার ফিরে আসতে পারেন। সুতরাং পাবলিক মাইটাইপ ক্লোন () সম্ভব!
হেল্পারমোথড

73

রুবির গতির সাথে সম্পর্কিত অনেক ত্রুটি রয়েছে, তবে আমি সেগুলি ঘৃণা করি না। সম্প্রদায় সুসমাচার প্রচারের ওভারবোর্ডে যাওয়ার সাথে এর ত্রুটিও রয়েছে তবে এটি সত্যিই আমাকে বিরক্ত করে না। এগুলি আমি ঘৃণা করি:

  • ক্লোজারগুলিতে (ব্লক) 4 টি পৃথক সৃষ্টি বাক্য গঠন রয়েছে এবং এগুলির কোনওটিই অনুকূল নয়। মার্জিত সিনট্যাক্সটি হ্যাশগুলির সাথে অসম্পূর্ণ এবং অস্পষ্ট এবং সম্পূর্ণ বাক্য গঠনটি কুরুচিপূর্ণ।
  • সম্প্রদায়টি 'কোডটি পড়ুন' পক্ষে দেওয়ার পক্ষে প্রকৃত দলিলগুলির বিরুদ্ধে রয়েছে। আমি এই শিশুসুলভ এবং অলস খুঁজে।
  • বিশেষত গ্রন্থাগারগুলিতে রূপক অপব্যবহারগুলি বাগগুলি ট্র্যাক করার জন্য একটি দুঃস্বপ্ন করে তোলে।
  • সম্পর্কিত নোটে, বিস্তৃত রূপক বিপ্লব একটি বিস্তৃত আইডিই করা কঠিন, যদি অসম্ভব না হয় তবে তা তৈরি করা কঠিন।
  • ফাংশনগুলিতে ব্লক পাস করার পদ্ধতিটি মূর্খ। প্যারামিটার তালিকার বাইরে ব্লকগুলি অতিক্রম করার কোনও কারণ নেই বা অ্যাক্সেসের জন্য (ফলন) এর বিশিষ্ট বিশেষ সিনট্যাক্স থাকতে হবে। আমি এই মতামত নিয়েছি যে ব্লকগুলিকে একটি কম দ্বিপাক্ষিক বাক্য গঠন দেওয়া উচিত ছিল (বা হ্যাশগুলি বিভিন্ন বিসীমাবিদ ব্যবহার করতে পারে; সম্ভবত <> {rather এর চেয়ে বেশি), এবং পদ্ধতিগুলিতে পরামিতি হিসাবে পাস করা উচিত অন্যান্য পরামিতিগুলির মতো হওয়া উচিত।

    object.method(1, {|a| a.bar}, "blah")
    

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


2
উপ-অনুকূল এম 17 এন এবং ইউনিকোড সমর্থন যদিও এটি আরও ভাল হচ্ছে। 1.9 জটিল থেকে যায় ...
কেলটিয়া

37
আমি ভেবেছিলাম যে রূপক অপব্যবহারকে "আইডিয়োমেটিক রুবি" বলা হয় :) :)
স্লার্টিবার্টফেস

2
akway: অন্যান্য দুই syntaxes হয় ল্যামডা এবং Proc.new
মায়ার্ডিন এমরিস

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

13
আমি আকর্ষণীয় বলে মনে করি যে এর মধ্যে 3 টি মানুষের সাথে করা, ভাষা নয়। আমি যে ভাষাটিকে ঘৃণা করি তা রুবি রয়ে গেছে।
টবি হেড

72

পার্ল

  • সিগিলের মিশ্র ব্যবহার

    my @array = ( 1, 2, 3 );
    my $array = [ 4, 5, 6 ];
    
    my $one  = $array[0]; # not @array[0], you would get the length instead
    my $four = $array->[0]; # definitely not $array[0]
    
    my( $two,  $three ) = @array[1,2];
    my( $five, $six   ) = @$array[1,2]; # coerce to array first
    
    my $length_a = @array;
    my $length_s = @$array;
    
    my $ref_a = \@array;
    my $ref_s = $array;
    
    • উদাহরণস্বরূপ এগুলির কোনওটিই এক নয় :

      $array[0]   # First element of @array
      @array[0]   # Slice of only the First element of @array
      %array[0]   # Syntax error
      $array->[0] # First element of an array referenced by $array
      @array->[0] # Deprecated first element of @array
      %array->[0] # Invalid reference
      $array{0}   # Element of %array referenced by string '0'
      @array{0}   # Slice of only one element of %array referenced by string '0'
      %array{0}   # Syntax error
      $array->{0} # Element of a hash referenced by $array
      @array->{0} # Invalid reference
      %array->{0} # Deprecated Element of %array referenced by string '0'
      

    ইন Perl6এটা করা হয় লিখিত :

    my @array = ( 1, 2, 3 );
    my $array = [ 4, 5, 6 ];
    
    my $one  = @array[0];
    my $four = $array[0]; # $array.[0]
    
    my( $two,  $three ) = @array[1,2];
    my( $five, $six   ) = $array[1,2];
    
    my $length_a = @array.length;
    my $length_s = $array.length;
    
    my $ref_a = @array;
    my $ref_s = $array;
    
  • সত্য ওওর অভাব

    package my_object;
    # fake constructor
    sub new{ bless {}, $_[0] }
    # fake properties/attributes
    sub var_a{
      my $self = shift @_;
      $self->{'var_a'} = $_[0] if @_;
      $self->{'var_a'}
    }
    

    ইন Perl6এটা করা হয় লিখিত :

    class Dog is Mammal {
        has $.name = "fido";
        has $.tail is rw;
        has @.legs;
        has $!brain;
        method doit ($a, $b, $c) { ... }
        ...
    }
    
  • দুর্বলভাবে ডিজাইন করা রেজেক্স বৈশিষ্ট্য

    /(?=regexp)/;           # look ahead
    /(?<=fixed-regexp)/;    # look behind
    /(?!regexp)/;           # negative look ahead
    /(?<!fixed-regexp)/;    # negative look behind
    /(?>regexp)/;           # independent sub expression
    /(capture)/;            # simple capture
    /(?:don't capture)/;    # non-capturing group
    /(?<name>regexp)/;      # named capture
    /[A-Z]/;                # character class
    /[^A-Z]/;               # inverted character class
    # '-' would have to be the first or last element in
    # the character class to include it in the match
    # without escaping it
    /(?(condition)yes-regexp)/;
    /(?(condition)yes-regexp|no-regexp)/;
    /\b\s*\b/;              # almost matches Perl6's <ws>
    /(?{ print "hi\n" })/;  # run perl code
    

    ইন Perl6এটা করা হয় লিখিত :

    / <?before pattern>  /;   # lookahead
    / <?after pattern>   /;   # lookbehind
    / regexp :: pattern  /;   # backtracking control
    / ( capture )        /;   # simple capture
    / $<name>=[ regexp ] /;   # named capture
    / [ don't capture ]  /;   # non-capturing group
    / <[A..Z]>           /;   # character class
    / <-[A..Z]>          /;   # inverted character class
    # you don't generally use '.' in a character class anyway
    / <ws>               /;   # Smart whitespace match
    / { say 'hi' }       /;   # run perl code
    
  • একাধিক প্রেরণের অভাব

    sub f(   int $i ){ ... }  # err
    sub f( float $i ){ ... }  # err
    sub f($){ ... } # occasionally useful
    

    ইন Perl6এটা করা হয় লিখিত :

    multi sub f( int $i ){ ... }
    multi sub f( num $i ){ ... }
    multi sub f( $i where $i == 0 ){ ... }
    multi sub f(     $i ){ ... } # everything else
    
  • দরিদ্র অপারেটর ওভারলোডিং

    package my_object;
    use overload
      '+' => \&add,
      ...
    ;
    

    ইন Perl6এটা করা হয় লিখিত :

    multi sub infix:<+> (Us $us, Them $them) |
                        (Them $them, Us $us) { ... }
    

5
আপনি যতটা খারাপ করেছেন ঠিক তেমন ওওয়ের অভাব আমি দেখতে পাচ্ছি না। কখনও কখনও, এটি ত্রাণকর্তা, বিশেষত যখন আপনি যে সিপিএএন মডিউলটি ব্যবহার করছেন তা আপনার প্রয়োজনীয়তা প্রকাশ করার কথা চিন্তা করে না। এবং একাধিক প্রেরণের অভাব আরও খারাপ হতে পারে: পার্ল
দৃ strongly়ভাবে

3
আমি পছন্দ করি যে পার্লটি দৃ strongly়ভাবে টাইপ করা হয়নি, তবে এটি কোনও ধরণের তথ্য যুক্ত করতে দরকারী।
ব্র্যাড গিলবার্ট

13
এটি দেখে মনে হচ্ছে আপনি একটি ভাষা যা আপনার প্রিয় (আপনি সমালোচনা করা উচিত ছিল perl6) না সমালোচনা বেছে নেওয়া হয়েছে
Frew শ্মিট

5
পার্ল 6 এর সাথে তুলনা করার বিষয়টি কী? আপনি কি পরামর্শ দিচ্ছেন যে পার্ল 6 আপনার সমস্যাগুলির সমাধান করে, বা সেগুলি চালিয়ে যায়?
রবার্ট পি

2
আমি সন্দেহ করি যে এর চেয়ে বেশি আমার বলার দরকার আছে: ozonehouse.com/mark/periodic
আরাফাঙ্গিয়ন

57

আমি করবো পিএইচপি আমি যেমন সময়ে এটি পছন্দ করি এবং পাইথনটি খুব বেশি সম্পন্ন হবে।

  • নাম স্থান নেই; সমস্ত কিছু খুব বড় নেমস্পেসের মধ্যে রয়েছে যা বড় পরিবেশে নরক

  • ফাংশনগুলির ক্ষেত্রে মানগুলির অভাব: অ্যারে ফাংশনগুলি প্রথম যুক্তি হিসাবে একটি সুই নেয়, দ্বিতীয় হিসাবে খড়খড়ি ( অ্যারে_সার্ক দেখুন )। স্ট্রিং ফাংশনগুলি প্রায়শই খড়ের কাঁটা প্রথমে নেয়, সুই দ্বিতীয় ( স্ট্রপোস দেখুন )। অন্যান্য ফাংশনগুলিতে কেবল বিভিন্ন নামকরণের স্কিম ব্যবহার করা হয়: বিন 2 হেক্স , স্ট্র্টলওয়ার , ক্যাল_ ট_জেডি

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

    $var = preg_match_all('/regexp/', $str, $ret);
    echo $var; //outputs the number of matches 
    print_r($ret); //outputs the matches as an array
    
  • ভাষা (পিএইচপি 6 অবধি) কাছাকাছি-পিছনের পিছনের সামঞ্জস্যের প্রতি শ্রদ্ধা জানাতে সর্বোত্তমভাবে কাজ করে, এটি যখন প্রয়োজন হয় না তখন আশেপাশে খারাপ অভ্যাস এবং কার্য সম্পাদন করে ( mysql_escape_string বনাম mysql_real_escape_string দেখুন )।

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

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

যদিও আমি এখনও পিএইচপি পছন্দ করি। এটি ওয়েব বিকাশের চেইনসো: আপনি একটি ছোট থেকে মাঝারি সাইটটি সত্যই দ্রুত সম্পন্ন করতে চান এবং নিশ্চিত হন যে কেউ এটিকে হোস্ট করতে পারে (যদিও কনফিগারেশনগুলি পৃথক হতে পারে)? পিএইচপি ঠিক আছে, এবং এটি সর্বব্যাপী এটি একটি সম্পূর্ণ এলএএমপি বা ডাব্লুএএমপি স্ট্যাক ইনস্টল করতে মাত্র 5 মিনিট সময় নেয়। ঠিক আছে, আমি এখন পাইথনের সাথে কাজ করতে ফিরে যাচ্ছি ...


4
আমি মনে করি পয়েন্ট 1 5.3 এ বাস্তবায়িত হয়েছে: প্যারাম অর্ডার দেওয়া ভাল নামকরণ করা এখনও খারাপ নয়। আমি যদিও পিছিয়ে থাকা সামঞ্জস্যের সাথে একমত।
রস

4
ভালোবাসা # 4। এটি এমন একটি বিষয় যা আমাকে সর্বদা সবচেয়ে বেশি বিরক্ত করেছিল।
ফ্রাঞ্জ

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

17
no_really_now_mysql_escape_the_string_im_serious ()
Salaryman

2
নেমস্পেসেস স্কেমমেস্পেসস। পিএইচপি বিশ্বব্যাপী ওয়েবে রয়েছে তাই সমস্ত কিছু বিশ্বব্যাপী হওয়া উচিত
ইভান প্লেইস

50

জাভা সম্পর্কে আমি পছন্দ না করে এমন কিছু জিনিস এখানে দেওয়া হয়েছে (যা আমার প্রিয় ভাষা নয়):

  • জেনেরিক্স প্রকারের ক্ষয় (যেমন কোনও পুনরায় সংযুক্ত জেনেরিক নেই)
  • একক ক্যাচ ব্লকে একাধিক ব্যতিক্রম (বিভিন্ন ধরণের) ধরতে অক্ষমতা
  • ধ্বংসকারীদের অভাব (চূড়ান্তকরণ () একটি খুব দরিদ্র বিকল্প)
  • ক্লোজার বা ডেটা হিসাবে ফাংশনগুলি ব্যবহারের জন্য কোনও সমর্থন নেই (বেনামে অভ্যন্তরীণ শ্রেণিগুলি একটি খুব ভার্জোজ বিকল্প)
  • সাধারণভাবে বা আরও নির্দিষ্টভাবে ব্যতিক্রমগুলি চেক করা হয়নি, অপরিশোধনযোগ্য ব্যতিক্রমগুলি পরীক্ষা করা হয়েছে (উদাঃ SQLException)
  • আক্ষরিক সংগ্রহের জন্য কোনও ভাষা-স্তরের সমর্থন নেই
  • জেনেরিক ক্লাসের কনস্ট্রাক্টরদের ডাকা হলে টাইপ-ইনফারেন্স নয়, অর্থাৎ টাইপ প্যারামিটারগুলি অবশ্যই '=' এর দু'দিকেই পুনরাবৃত্তি করতে হবে

1
@ সুইশ - আমার মতে মূল বিষয়টি হ'ল আপনি কেবল তখনই এই নির্মাণটি ব্যবহার করবেন যখন আপনি কোন ধরণের ব্যতিক্রমের সাথে কীভাবে আচরণ করছেন সেদিকে খেয়াল রাখবেন না। অন্য কথায়, আপনি যখন তাদের
সমস্তকে

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

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

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

2
আননের অভ্যন্তরীণ ক্লাসগুলি ক্লোজার নয়: এতে "যোগফল = = কারেন্ট.এমাউন্ট ()" এর মতো কিছু দিয়ে একটি দর্শনার্থী কলব্যাক তৈরি করার চেষ্টা করুন, যেখানে "যোগফল" এনকোলেসিং স্কোপ থেকে একটি চূড়ান্ত নয়। বন্ধ, তবে সিগার নেই
রোবপ্রোগ

40

সি ++

  1. টেমপ্লেট সিনট্যাক্স
  2. ডায়মন্ড উত্তরাধিকার সংক্রান্ত সমস্যা
  3. আধুনিক ভাষাগুলির যে স্ট্যান্ডার্ড লাইব্রেরিগুলির আধিক্য / অভাব রয়েছে (যদিও উত্সাহটি নিকটে আসে)।
  4. IOStreams
  5. আইওএসটিস্ট্রিমের চারপাশে ব্যবহৃত সিনট্যাক্স

পাইথন

  1. স্পেসগুলি অর্থপূর্ণ (কখনও কখনও)
  2. আন্ডারকওয়ার্ড কীওয়ার্ড
  3. সীমিত থ্রেড সমর্থন (কমপক্ষে বর্তমানে)
  4. "এই" এর পরিবর্তে "স্ব"
  5. স্পেসগুলি অর্থপূর্ণ (কখনও কখনও)

80
আপনি "স্ব" কে "এটি" হিসাবে উল্লেখ করতে পারেন আপনি সত্যই চান (যদিও এটি অন্যদের অনুসরণ করা কঠিন হতে পারে)। "স্ব" কোনও কীওয়ার্ড নয় এবং আপনি নিজের পছন্দসই যে কোনও কিছুটির নাম দিতে পারেন।
মিপাদি

36
আপনি সেখানে যান, আমি পাইথনকে প্রকৃতপক্ষে হোয়াইটস্পেসের অর্থবোধকতা (বিশেষত উদ্বোধন) এর বৃহততম অনুভূতি হিসাবে চিহ্নিত করব ...;)
অলিভার গিজেন

22
"স্পেসগুলি অর্থবহ হয়" অজগরটির অন্যতম সেরা বৈশিষ্ট্য !! পিএস এটিকে " ভবিষ্যতের আমদানি ধনুর্বন্ধনী থেকে" অনুবাদক হিসাবে চালানোর চেষ্টা করুন
হাসান

4
আমি থ্রেড সমর্থন ব্যতীত আপনার পুরো অজগর তালিকার সাথে বেশীরভাগে একমত নই। হোয়াইটস্পেস অর্থবহ নয়, ইনডেন্টেশন অর্থপূর্ণ; একটি বড় পার্থক্য আছে।
ক্রিশ্চিয়ান ওডার্ড

3
কি দারুন. এটি এমন কোনও পাঠ্য সম্পাদক হিসাবে আবিষ্কার করা হয়নি যা বিশেষ চরিত্র হিসাবে হোয়াইটস্পেস / ট্যাবগুলি হাইলাইট / দেখায় (কী, আপনি নোটপ্যাডে কোডিং করছেন?)। এছাড়াও, আপনি যদি ফাঁকা জায়গায় ট্যাবগুলি প্রসারিত করেন তবে দয়া করে আগুনে মারা যান।
ভুয়া নাম

37

উদ্দেশ্য গ

1) কোনও নেমস্পেস নেই, কেবল ম্যানুয়াল নামকরণের কনভেনশন - শ্রেণীর বিভাজনের ক্ষেত্রে আমি এটিকে কিছু মনে করি না, তবে আমি একক লাইনে নেমস্পেসে সমস্ত শ্রেণীর সংজ্ঞা আমদানি করতে সক্ষম হতে মিস করি না (যেমন আমদানি com.me.somelibrary)। *)।

2) গ্রন্থাগারগুলিতে এখনও রেগেক্স সমর্থনের মতো গুরুত্বপূর্ণ ক্ষেত্রে কিছু ছিদ্র রয়েছে।

3) সম্পত্তি সিনট্যাক্সটি কিছুটা আনাড়ি, একটি সম্পত্তি ঘোষণা করার জন্য তিনটি লাইন (দুটি পৃথক ফাইলে) প্রয়োজন।

৪) আমি ধরে রাখতে / প্রকাশের মডেলটি পছন্দ করি তবে রেফারেন্স প্রকাশ করা এবং পরে দুর্ঘটনাক্রমে পরে এটি ব্যবহার করা সহজ হওয়া উচিত।

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


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

2
উদ্দেশ্য-সি বৈশিষ্ট্য। সিরিয়াসলি, তারা চমকপ্রদ, আমি হাইপ বুঝতে পারছি না বিশেষত সি # তাদের কতটা ভাল করে তা দেখে।
জাস্টিকাল

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

1
@ ক্রিস এস: আপনি কি বলিয়ানদের YES/NOপক্ষে খারাপ কথা বলে যাচ্ছেন ? এবং আরও গুরুত্বপূর্ণ, আপনি কি নামক প্যারামিটারগুলি একটি খারাপ জিনিস বলছেন ?? আমি বুল বুঝতে পারি, তবে নামকরা প্যারামগুলি সম্ভবত ওজেজির সেরা বৈশিষ্ট্যগুলির মধ্যে একটি (পঠনযোগ্যতার নিরিখে)।
jbrennan

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

36

সি ++

  • স্ট্রিংস।
    এগুলি প্ল্যাটফর্মের স্ট্রিংগুলির সাথে আন্তঃযোগযোগ্য নয়, সুতরাং আপনি স্টডি :: ভেক্টর অর্ধেক সময় ব্যবহার করে শেষ করুন। অনুলিপি নীতি (লিখিত বা গভীর অনুলিপি অনুলিপি) সংজ্ঞায়িত করা হয় না, তাই সরাসরি সিনট্যাক্স জন্য কর্মক্ষমতা গ্যারান্টি দেওয়া যাবে না। কখনও কখনও তারা এসটিএল অ্যালগরিদমগুলির উপর নির্ভর করে যা ব্যবহার করা খুব স্বজ্ঞাত নয়। অনেকগুলি লাইব্রেরি তাদের নিজস্ব রোল করে যা দুর্ভাগ্যবশত ব্যবহার করতে আরও আরামদায়ক। যদি না আপনি তাদের একত্রিত করতে হবে।

  • স্ট্রিং উপস্থাপনের বিভিন্নতা
    এখন, এটি প্ল্যাটফর্মের সমস্যাটি কিছুটা হলেও - তবে আমি এখনও আশা করি যে যদি কম বাধা স্ট্যান্ডার্ড ক্লাসটি আগে পাওয়া যেত তবে ভাল হত have নিম্নলিখিত স্ট্রিং উপস্থাপনাগুলি আমি প্রায়শই ব্যবহার করি:

    • জেনেরিক এলপিসিটিএসটিআর,
    • কোপাস্কেমেমোকের দ্বারা বরাদ্দকৃত এলপিসি (ডাব্লু) এসআরটি,
    • বিএসটিআর, _ব্রাস্টি_ট
    • (W) স্ট্রিং,
    • CString,
    • এসটিডি :: ভেক্টর
    • একটি রোল-আমার নিজস্ব ক্লাস ( দীর্ঘশ্বাস ) যা পরিসীমা চেকিং এবং বুনিয়াদি ক্রিয়াকলাপকে (ডাব্লু) চর * পরিচিত দৈর্ঘ্যের বাফারে যুক্ত করে
  • মডেল তৈরি করুন।
    আমি কারা অন্তর্ভুক্ত ছিল - কী কী, আগাম ঘোষণা, প্রাকম্পম্পাইল্ড শিরোনামগুলির অনুকূলকরণ এবং অন্তত বর্ধমান বিল্ড সময়কে সহনীয় রাখতে সক্ষম, ইত্যাদি ইত্যাদি নিয়ে বিড়বিড় করে কাটা সমস্ত সময়ের জন্য আমি অসুস্থ আছি, তবে এটি এখন আশির দশকে দুর্দান্ত ছিল, তবে এখন? কোডের এক টুকরো প্যাকিংয়ের অনেকগুলি বাধা রয়েছে যাতে এটি পুনরায় ব্যবহার করা যেতে পারে যে মাতৃ কুকুরও আমার কথা শুনে বিরক্ত হয়ে যায়।

  • পার্স করা
    কঠিন This এটি বাহ্যিক সরঞ্জামগুলি বিশেষত লিখতে শক্ত করে এবং সঠিক হয়ে যায় get এবং আজ, আমরা সি ++ ছেলেরা বেশিরভাগ সরঞ্জাম চেইনে অভাব বোধ করছি। আমি আমার সি # প্রতিবিম্ব এবং প্রতিনিধিদের পছন্দ করি তবে আমি এগুলি ছাড়া বাঁচতে পারি। দুর্দান্ত রিফ্যাক্টরিং ছাড়া আমি পারি না।

  • থ্রেডিং খুব কঠিন,
    ভাষা এটি (এখন অবধি) স্বীকৃতি দেয় না এবং সংকলকের স্বাধীনতা - দুর্দান্ত হলেও - বেদনাদায়ক।

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


মঞ্জুর, এর অনেকগুলি কঠোর ভাষার সুযোগের বাইরে, তবে আইএমও পুরো টুলচেনের বিচার করা প্রয়োজন এবং এটি বিকশিত হওয়া প্রয়োজন।


এসটিএলে ডকুমেন্টেশন সন্ধান করা স্ক্র্যাচ থেকে গ্রাফিক্স কার্ড কীভাবে তৈরি করবেন সে সম্পর্কে ম্যানুয়ালগুলি সন্ধান করার মতো।
aviraldg

সত্যি বলতে গেলে, এই পয়েন্টগুলির বেশিরভাগই আপনার মত শোনা যায় যে আপনি সি ++ সঠিকভাবে শেখার পক্ষে মোটেও বিরক্ত হন না ... এটি # 3 তে বরং স্পষ্ট হয়ে যায়, কারণ অন্তর্ভুক্তি রক্ষীরা এমন কিছু যা প্রতিটি সি ++ প্রোগ্রামারকে জানা উচিত। আমি নিশ্চিত নই যে পয়েন্ট # 1 কীভাবে বুঝতে হবে, আপনি কি সম্পর্কে বিভ্রান্ত std::string? হতে পারে একটি ভাল ডকুমেন্টেশন এবং / বা টিউটোরিয়াল পড়ার std::vector(এবং কেন আপনি যে std::stringজায়গাগুলির জন্য কখনই ডিজাইন করেননি এমন জায়গায় ব্যবহার করার কথা নয় ) আপনার পক্ষে তা পরিষ্কার হয়ে যেতে পারে।

@ নেবুকাদনেজার: আমি মায়ারদের এসটিএলে আলোকিত করতে দেখলাম, তবে এটি মৌলিক সমস্যাগুলি সমাধান করে না। সত্যি বলতে গেলে, আপনার মনে হয় যে আপনাকে কোনও বৃহত প্রকল্প বজায় রাখতে হবে না, আপনাকে কখনও কখনও কয়েক দশক গভীর অন্তর্ভুক্ত শ্রেণিবিন্যাসের বৃত্তাকার নির্ভরতা খুঁজে নিতে হবে না। আমি জানি প্রহরীদের অন্তর্ভুক্ত, তবে কেন আমাদের তাদের বিরক্ত করতে হবে? BTW। তারা প্রতিটি সমস্যা সমাধান না। std::stringআমি যদি অর্ধেক সময় ব্যবহার করতে না পারি তবে কীভাবে "স্ট্যান্ডার্ড" ? (সি ++ 0x কমপক্ষে এটি ঠিক করে তবে আমি এখনও কয়েক ডজন লাইব্রেরিতে আটকে আছি যা বিভিন্ন স্ট্রিং উপস্থাপনা ব্যবহার করে)।
পিটারচেন

but why do we have to bother with them (inclusion guards)- কারণ সি ++ এর মডিউল নেই। How "standard" is a std::string if I can't use it half of the time?- আমি মনে করি এটি আপনার ব্যবহারের পদ্ধতির উপর নির্ভর করে std::string। স্ট্রিং ক্লাস আপনাকে স্ট্রিং ডেটা এর const char*মাধ্যমে অ্যাক্সেস করতে দেয় std::string::c_str, যা ইতিমধ্যে std::stringপ্রতিটি ক্লাস / ফাংশনের সাথে পুরোপুরি সামঞ্জস্য করে যা const char*আর্গুমেন্টও গ্রহণ করে।

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

35

জাভাস্ক্রিপ্ট :

  • Objectপ্রোটোটাইপ পরিবর্তন করা যায়। আপনার প্রোগ্রামের প্রতিটি একক বস্তু নতুন বৈশিষ্ট্য পেয়েছে এবং কিছু কিছু সম্ভবত ভেঙে গেছে।

  • সমস্ত বস্তু হ্যাশ মানচিত্র, তবে নিরাপদে সেগুলি ব্যবহার করা শক্ত। বিশেষত, যদি আপনার কোনও কী হয়ে থাকে তবে আপনি __proto__সমস্যায় পড়েছেন।

  • ফাংশন রেফারেন্স সময়ে কোনও অবজেক্ট বন্ধ নয়। আসলে, কোনও বস্তু বন্ধ করার সময় নয় - পরিবর্তে, thisযখনই কোনও ফাংশন অবজেক্ট নোটেশন বা newঅপারেটরের সাথে ডাকা হয় সেট করা হয় না । অনেকগুলি বিভ্রান্তির ফলস্বরূপ, বিশেষত ইভেন্ট কলব্যাকগুলি তৈরি করার সময়, কারণ thisপ্রোগ্রামার প্রত্যাশাকে সেট করে না।

    • পরিণতি: অবজেক্ট স্বরলিপি ব্যতীত একটি ফাংশন কল করা বা newঅপারেটরটি thisবৈশ্বিক বস্তুর সমান হয়ে যায় যার ফলস্বরূপ অনেকগুলি ভাঙ্গন ঘটে।
  • দুটি অপারেশন মৌলিকভাবে পৃথক হওয়া সত্ত্বেও সংযোজন অপারেটর স্ট্রিং কনটেনটেশন করতে ওভারলোড হয়েছে। ব্যথা হয় ফলাফল যখন আপনি একটি সংখ্যার প্রত্যাশা মান আসলে একটি স্ট্রিং।

  • ==এবং !=অপারেটররা ধরণের জবরদস্তি সম্পাদন করে। বিভিন্ন ধরণের মধ্যে তুলনাগুলি এমন নিয়মের একটি তালিকা জড়িত যা কোনও নশ্বর পূর্ণরূপে মনে রাখতে পারে না। এটি অপারেটরদের অস্তিত্ব ===এবং দ্বারা প্রশমিত করা হয় !==

  • উভয় nullএবং undefinedঅস্তিত্ব রয়েছে, সম্পূর্ণ ভিন্ন, তবুও অনর্থক অর্থ সহ। কেন?

  • প্রোটোটাইপ চেইন স্থাপনের জন্য অদ্ভুত বাক্য গঠন।

  • parseInt(s)একটি সি-শৈলীর সংখ্যা আশা করে, তাই শীর্ষস্থানীয় শূন্যগুলির সাথে অষ্টাল ইত্যাদির মান হিসাবে আচরণ করে আপনি অন্ততপক্ষে করতে পারেন parseInt(s, 10)তবে ডিফল্ট আচরণটি বিভ্রান্তিকর।

  • কোনও ব্লকের সুযোগ নেই।

  • একই পরিবর্তনশীল একাধিকবার ঘোষণা করতে পারে।

  • কোনও ঘোষনা ছাড়াই কোনও ভেরিয়েবল ব্যবহার করতে পারে, এক্ষেত্রে এটি বিশ্বব্যাপী এবং সম্ভবত আপনার প্রোগ্রামটি ভেঙে দেয়।

  • with { }

  • সরঞ্জামগুলির মতো জাভডোক সহ নথিভুক্ত করা সত্যিই কঠিন।


3
জন্য nullএবং undefined: কখনও কখনও আপনি সত্যিই জানতে চান ভেরিয়েবল একটি মান নির্ধারিত হয়েছে কিনা। নাল যেহেতু একটি মান, তাই অপরিজ্ঞাতটিই বলার একমাত্র উপায়। মঞ্জুর, একমাত্র আমি এই দরকারীটি খুঁজে পেয়েছি ছিল গিটার / সেটার ফাংশন তৈরির জন্য।
জাচ

1
"যদি আপনার কীগুলির কোনওটি প্রোটো হতে পারে " - ভাল, এটি বিশেষ অর্থ সহ একটি সংরক্ষিত শব্দ। এটি অভিযোগ করার মতো যে আপনি forভেরিয়েবল নাম হিসাবে ব্যবহার করতে পারবেন না ।
নিকফ 5

5
@ নিকফ: হ্যাশের চাবিটি একটি স্ট্রিং। স্ট্রিংগুলির সংরক্ষিত শব্দ সহ কোনও মান থাকতে পারে। বিশেষত মান "for"হ্যাশ কী হিসাবে বৈধ। __proto__কোনও সংরক্ষিত শব্দ নয়। বিশেষ স্ট্রিং মানগুলি হ্যাশ কী হিসাবে ব্যবহৃত হওয়ার সময় প্রত্যাশার মতো কাজ করে না যে কোনও ভাষায় কীভাবে অ্যা্যাসোসিয়েটিভ অ্যারেগুলি কাজ করে সে সম্পর্কে যুক্তিসঙ্গত প্রত্যাশা লঙ্ঘন করে। তারা ইকমাস্ক্রিপ্টের অনুমানও লঙ্ঘন করে।
ড্যানিয়েল ক্যাসিডি

2
টমাস: নিউলাইন সবসময় কোনও বিবৃতি শেষ করে না। সুতরাং বোধগম্য কোডার কোডটি আরও স্পষ্ট করতে প্রতিটি বিবৃতি একটি সেমিকোলন দিয়ে শেষ করে।
ড্যানিয়েল ক্যাসিডি

2
newline may or may not end a statement depending on contextআমার শীর্ষ 5 তালিকার মধ্যে একটি
রিনিয়ারপোস্ট

34

পাইথন:

  • স্থির টাইপিংয়ের অভাব
  • ডিফল্ট আর্গুমেন্ট হ্যান্ডলিং (বিশেষত সত্য যে আপনি ডিফল্ট যুক্তি পরিবর্তন করতে পারেন ভবিষ্যতের কলারদের জন্য পারেন!)
  • অনেকগুলি প্রয়োজনীয় আন্ডারস্কোর (কনস্ট্রাক্টরদের অবশ্যই কল করা উচিত) __init__ )
  • যথাযথ ব্যক্তিগত সদস্য এবং কার্যাবলীর অভাব (কনভেনশনটি কেবলমাত্র বলে যে আন্ডারস্কোর দিয়ে শুরু হওয়া বেশিরভাগ জিনিসই ব্যক্তিগত, যেমন সমস্ত স্টাফ বাদে __getattr__ যেমন হয় না)
  • printকোনও ফাইলে প্রবেশের জন্য মজাদার বাক্য গঠন (তবে তারা পাইথন 3 এ এটি স্থির করছেন)

10
আমি যা চাই তা স্থির ধরণের ব্যবহারের একটি বিকল্প
গ্রেগ হিউগিল

4
বিটিডাব্লু: আরআইআইই প্রকৃতপক্ষে নির্মাতা নয়, আপনি সেখানে প্রবেশ করার পরে অবজেক্টটি ইতিমধ্যে তৈরি করা হয়েছিল (অনুমান করুন কী কী স্ব ...)। কনস্ট্রাক্টর একিউটলি নতুন যেখানে আপনি ক্লাসে তাত্ক্ষণিকভাবে অ্যাক্সেস পাবেন।
আন্ড্রে

90
আপনি যদি স্ট্যাটিক টাইপিং পছন্দ করেন তবে পাইথন আপনার প্রিয় ভাষা কেন?
ফিনউইউ

9
ফিনউউ: কিছু ধরণের প্রোগ্রামের জন্য স্ট্যাটিক টাইপিং দুর্দান্ত, এবং অন্য ধরণের জন্য সত্যই প্রয়োজন হয় না। আমি সাধারণত স্ট্যাটিক টাইপিং অভাব কিছু মনে না করেন, কিন্তু যখন আপনি এটি প্রয়োজন, এটা সত্যিই অন্তত বিকল্প আছে চমৎকার।
গ্রেগ হিউগিল

8
আমি বলব যে স্ট্যাটিক টাইপিংয়ের অভাব একটি বৈশিষ্ট্য, অনুপস্থিত কার্যকারিতা ...
আর্নোর্স

32

সি শার্প

  • আমি আশা করি যে আমি switch()যে কোনও ধরণের, এবং এটি যে caseকোনও অভিব্যক্তি হতে পারে।

  • 'পঠনযোগ্য' ক্ষেত্র / private setঅটোপোপগুলির সাথে অবজেক্ট ইনিশিয়ালাইজার সিনট্যাক্স ব্যবহার করতে পারে না । সাধারণত, আমি অপরিবর্তনীয় ধরণের তৈরিতে ভাষার সহায়তা চাই।

  • ব্যবহারের {}জন্য নামস্থান এবং বর্গ এবং পদ্ধতি এবং সম্পত্তি / indexer ব্লক এবং বহু-বিবৃতি ব্লক এবং অ্যারে initializers । যখন তারা খুব দূরে বা মিল নেই তখন আপনি কোথায় ছিলেন তা নির্ধারণ করা শক্ত করে তোলে।

  • আমি লেখাকে ঘৃণা করি (from x in y ... select).Z()। আমি পুনরায় পদ্ধতি কল সিনট্যাক্সে পড়তে চাই না কারণ কোয়েরি সিনট্যাক্সটিতে কিছু অনুপস্থিত।

  • আমি চাই একটি do কোয়েরি সিনট্যাক্সের ধারা , যা এর মতো foreach। তবে এটি আসলে কোনও জিজ্ঞাসা নয়।

আমি সত্যিই এখানে পৌঁছেছি। আমি মনে করি সি # চমত্কার, এবং এটি খুব বেশি ভাঙ্গা খুঁজে পাওয়া শক্ত।


14
যে কোনও প্রকারে স্যুইচ করার জন্য +1
o

স্যুইচ ইস্যুগুলির জন্য +1 এবং}} ইস্যুগুলি, যা আমি এখনও অবধি ভাবিনি
মাসলো

আমি ঘৃণা করি {}. তারা দেখতে অনেক বেশি ()। মেলানো আমার পক্ষে খুব বেশি সমস্যা হয়ে ওঠে না কারণ আমি মূলত ওয়ান-লাইনার না হলে আমি এগুলি সবসময় একই স্তরে রাখি।
লরেন পেচটেল

2
লিনক ক্যোয়ারির জন্য +1। বিশেষত যখন আপনি কেবল একটি জিনিস ফেরত চান। (X সিলেক্ট করে y থেকে সিলেক্ট করুন) এর পরিবর্তে প্রথম (), কেন একটি নয় (এক্স থেকে y সিলেক্ট টপ 1) বা সত্যিকারের এসএলএল সিনট্যাক্সের কাছাকাছি কিছু ফিট করতে পারে।
অ্যাডমস্টেক

আপনি যদি চান যে কোনও প্রকারে () স্যুইচ করতে পারেন, এবং সেই ক্ষেত্রে কোনও অভিব্যক্তি হতে পারে এফ # প্যাটার্নের মিল। c-sharpcorner.com/UploadFile/mgold/…
গ্রেডবোট

26

পিএইচপি

  1. আপনি যদি সার্ভারটি নিয়ন্ত্রণ না করেন তবে কোনও ডিবাগিং বৈশিষ্ট্য নেই এবং তারপরেও তারা স্তন্যপান করে
  2. চারদিকে ভাসমান চূড়ান্ত পরিমাণে খারাপ পিএইচপি কোড সমস্ত পিএইচপি প্রোগ্রামারদের একটি খারাপ নাম দেয়
  3. বেমানান ফাংশন নামকরণ
  4. আমি যদি একটি চাই তবে স্ট্যাটিক টাইপড ভেরিয়েবলের অক্ষমতা (আমি সময়ের 90% গতিশীল টাইপিংয়ের একটি বড় অনুরাগী)
  5. REGISTER_GLOBALS হ'ল শয়তান

25
REGISTER_GLOBALS একবার আমার কুকুরটি খেয়েছে :(
পিম জাগার

2
1: আমি xdebug এবং একটি GUI ক্লায়েন্ট যেমন MacGDBp এর প্রস্তাব দিই। এটি সত্যিই কিছুটা ব্যথা উপশম করে ... আমি অন্যান্য বিষয়গুলিতে একমত।
জোনাস ডিউ ভেসেরহেডেন

5
# 2: হে godশ্বর, আমাকে এটি শুরু করবেন না। আমাকে সর্বদা পিএইচপি বিকাশকারী হিসাবে নিজেকে প্রতিরক্ষা করতে হবে এমন লোকদের বিরুদ্ধে যারা কেবলমাত্র পিএইচপি দিয়ে গণ্ডগোল সৃষ্টি করে দেখেছে।
স্বাওয়ারেসৌপ

1
# 2 এর জন্য +1 আমি পিএইচপি বিকাশকারী হিসাবে নিজেকে রক্ষার জন্য অনেক বেশি সময় ব্যয় করেছি।
UnkwnTech

# 2 এর জন্য +1 - খারাপ
বেতনেও

25

সি (ঠিক আছে, এটি আমার প্রিয় নয়, তবে এটি এখনও করা হয়নি))

  • সকেট গ্রন্থাগার সিনট্যাক্স।
  • কোনও ফাংশন ওভারলোডিং নেই
  • সি স্টাইল স্ট্রিং।
  • বাফারকে ছাড়িয়ে যায়।
  • ক্রিপ্টিক সিনট্যাক্স। আমি জানি না আমি কতবার আটোয়ের মতো জিনিস দেখেছি, আমার কপাল চড় মেরেছি এবং চেঁচিয়েছি "অবশ্যই!"

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


22
কি সকেট সিনট্যাক্স? সি এর সকেটের কোনও ধারণা নেই।
ফেরুকসিও

3
ওহ, বুঝতে চেষ্টা কর! আপনি পাঁচটি সঙ্গে আসতে পারেন। পয়েন্টার গাণিতিক শুধু চুষে না? :)
ব্রায়ান ডি ফয়েজ

8
+1 আমি "সি-স্টাইলের স্ট্রিংগুলিতে" হেসেছিলাম। এবং @ ব্রেন_ডি_ফয়: পয়েন্টার গাণিতিক কেবল তখনই চুষে যায় যদি আপনি এটি বুঝতে না পারেন।
ক্রিস লুৎজ

1
@ ক্রিস লুটস: এমনকি যখন আমি সরল সি শিখছিলাম (আমি সি ++ বা অন্য কোনও ওও ভাষা জানার আগে) আমি কেবল জানতাম যে চরের অ্যারেগুলির মধ্যে কিছু ভুল ছিল। :)
বিল

2
পয়েন্টার পাটিগণিত একটি পাওয়ার সা - খুব দক্ষ, তবে আপনি আপনার পুরো পাটি নেওয়ার ঝুঁকি নিয়ে থাকেন
Thorbjørn Ravn Andersen

24

সাধারণ লিপ:

  1. কীওয়ার্ডগুলি প্রায়শই শব্দযুক্ত হয়।
  2. লাইব্রেরি সমর্থন করুণাময়।
  3. ওএসগুলিতে ভাল কাজ করে না যা মেমরিটিকে আরও কঠোরভাবে পরিচালনা করতে চায়।
  4. ওএসের সাথে ইন্টারঅ্যাক্ট করার জন্য ভাল সুবিধা নেই।
  5. "লুপ" সুবিধাটি সঠিকভাবে সংজ্ঞায়িত করা হয়নি, এবং নিশ্চিত যে লিস্পিটি দেখায় না।

2
'লুপ' লিপিযুক্ত নাও হতে পারে তবে এ সম্পর্কে কীভাবে সংজ্ঞায়িত করা হয়েছে?
ড্যানিয়েল ক্যাসিডি

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

3
আপনি কী-ওয়ার্ড-খুব-কথামূলক বলতে চাইছেন না?
GClaramunt

আমি সম্মত হই যে এটি "লিপি" নয়, তবে সিএলটিএলভি 2 এতে অনেক সময় ব্যয় করে। আমি কেবল মনে করি এটি অনেক বেশিভাবে করার জন্য ডিজাইন করা হয়েছিল। sunsite.univie.ac.at/textbooks/cltl/clm/...
হান্স ভ্যান Slooten

"লুপ" ছাড়াও, "ফর্ম্যাট" খুব লিসপ্লিকের মতোও নয়। লিস্প আমার প্রিয় ভাষা হলেও আমি "ফর্ম্যাট" এবং "লুপ" উভয়ই ঘৃণা করি।
পল রেইনার্স

24

BrainF * CK

  • আপনার হাইলাইটটি হ'ল আপনি টুরিং সম্পূর্ণ ?! আমি পার্ল নিয়মিত প্রকাশে আরও কিছু করতে পারি!

  • বস্তুর অভাব। চলো, মানুষ! এটি হ্যালো ...

  • কোনও নেটওয়ার্কিং লাইব্রেরি নেই। আমি যা চাই তা হ'ল GOSH একটি ওয়েব পৃষ্ঠা স্ক্র্যাপ করা।

  • প্রথম শ্রেণির কোন কার্য নেই। অভিনন্দন - আপনি আপনার জাভা বন্ধুদের সাথে শুরু করতে পারেন।

  • স্টোরেজ জন্য একটি অসীম টেপ এবং কিছুই। এটি এতটাই কৌতুকপূর্ণ যে আমরা পাশাপাশি লিপ্প লিখতে পারি।


6
কোনও নামস্থান বা গতিশীল মডিউল সমর্থন নেই। আমরা কীভাবে রাসায়নিক উদ্ভিদ নিয়ন্ত্রণ ব্যবস্থা যেমন বেসিকগুলি ছাড়া লিখতে পারি?
ডোনাল ফেলো

কোনও সিনট্যাকটিক চিনি যেমন> 10 (10 বার সরান), 0 (শূন্য inোকান), +5 (5 যুক্ত করুন)
স্কয়ল

23

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

  1. স্ট্রিং হিসাবে সংখ্যা - সংখ্যা স্ট্রিং হিসাবে ব্যাখ্যা করা হয় যখন গণিত হতাশ হতে পারে। 5 + 2 = 52? গরগর ...
  2. অনুমতি - সমস্ত সেরা জিনিস ব্যবহারকারীর কাছ থেকে অনুমতি প্রয়োজন!
  3. স্ক্রিন আপডেট - স্ক্রিনটি আপডেট করতে ব্রাউজারটি অবশ্যই স্থির অবস্থায় থাকতে হবে। কোনও স্ক্রিপ্টের মাঝে পর্দাটি আপডেট করতে বাধ্য করার কোনও উপায় বলে মনে হচ্ছে না।
  4. ধীর - যদিও গুগলের ক্রোম দুর্দান্ত ...
  5. ব্রাউজারের পার্থক্য ভাষাটিকে একটি [সেন্সরযুক্ত] ব্যবহার করে তোলে।

4
স্ট্রিং হিসাবে সংখ্যা সহজেই স্থির করা হয়। আপনি যদি কখনও স্ট্রিং পেয়ে থাকেন তবে আপনাকে এটি (x, 10) পার্স করা দরকার। দৈত্য ব্যর্থতা হ'ল আপনি যখন 10, এবং এটি '017' কে OCTAL হিসাবে ব্যাখ্যা করেন
অরিওন এডওয়ার্ডস

3
মিথ্যা == 0 == [] == "" তবে নাল এবং ন্যান নয়। NaN! = NaN নাল == নাল
জিমি

7
টাইপ করুন "একটি স্ট্রিং" == "স্ট্রিং"। টাইপ করুন নতুন স্ট্রিং ("অন্য স্ট্রিং") == "অবজেক্ট। নতুন স্ট্রিং ('এ')। কনস্ট্রাক্টর ==" এ "। কনস্ট্রাক্টর। নতুন অ্যারে () == 'অবজেক্ট'
জিমি

1
(অবজেক্টে এক্স) ফাংশনগুলি প্রদানের জন্য
জিমি

14
-1, এই তালিকাটি বেশিরভাগ ব্রাউজার ইস্যু সম্পর্কে, ভাষা নিজেই নয়।
মৌরিসিও শেফার

20

পিএইচপি:

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

তা সত্ত্বেও পিএইচপি হয় (স্ক্রিপ্টিং) ভাষা। ;-)


ঠিক আছে, আর একটি জিনিস যেতে হবে!
ব্রায়ান ডি বন্ধু

4
সম্পূর্ণ পয়েন্ট 5 এর সাথে একমত - খুব জাভাস্ক্রিপ্ট তালিকায় থাকবে।
স্টিভ ক্লারিজ

আমি "সমস্ত দরিদ্র প্রোগ্রামারদের সাথে একমত নই যা কীভাবে এটি সঠিকভাবে কাজ করতে হয় তা শিখেন না এবং এটি একটি খারাপ নাম দিন"। আমি এটিকে "রানটাইম ল্যাঙ্গুয়েজ কনফিগারেশন বিকল্পগুলিতে প্রচুর পরিমাণে ট্যাকড" দিয়ে প্রতিস্থাপন করব।
L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳

18

ভিবি 6

  1. উইন্ডোজ শুধুমাত্র।
  2. আর সমর্থিত নয়।
  3. অ্যারেগুলি যে কোনও সংখ্যায় শুরু হতে পারে, তারপরে সমস্ত 0 তে স্বাভাবিক করা হচ্ছে।
  4. সংকলিত অ্যাপ্লিকেশনগুলি সঠিকভাবে চালানোর জন্য অনেকগুলি dll এর উপর নির্ভর করে।
  5. ব্রাউজার নিয়ন্ত্রণ বা জটিল টুকরো কোডের মতো অনেক জটিল নিয়ন্ত্রণ আপনি কোডটি চালিত না করা অবস্থায় আইডিই ভেঙে ফেলেন, তবে সংকলিত হয়ে ঠিকঠাক কাজ করুন।

13
ভিবি কারও পছন্দের ভাষা? O_o। কেন "সিন্টাজ যা সম্পূর্ণরূপে পৃথক এবং অন্যান্য ভাষার সাথে সামঞ্জস্যপূর্ণ নয়" এবং "অন্যান্য ভাষার সাথে খারাপ অভ্যাস দেয়" কেন এখানে নয়?
জোন্টা

3
আমি আসলে # 3 একটি খুব শক্তিশালী বৈশিষ্ট্য পেয়েছি, কোনও বাগ নেই - আমি সত্যিই VB.NET এটি পছন্দ করতাম। এডব্লু কে এটি এক অর্থে আছে তবে তারপরে এডাব্লুকে অ্যারেগুলিতে সত্যই ছদ্মবেশে হ্যাশগুলি রয়েছে :(
জো পিনেদা

3
1 এবং 4 এ, এবং। নেট সি # এর জন্য একটি সম্পূর্ণ ফ্রেম ওয়ার্ক এবং অপারেটিং সিস্টেমের প্রয়োজন নেই ??? (আরে, আমি শুনেছি যে আপনি মনো ধর্মাবলম্বী ... এটি এখনও আপনার জন্য একটি "সম্পূর্ণ কাঠামো", এবং আমি সন্দেহ করি যে এটি কোনও ডেবিয়ান ডিস্ট কখনও খায়)) 5 সম্পর্কিত, কোনও ডান-মাইন্ডেড ভিবি 6 প্রোগ্রামার (দিন ফিরে) ডিফল্ট "ডিমান্ড
সংকলন

2
এখনও মাঝে মাঝে vb6 সমর্থন করতে হবে। পোষ্য পাইভ: ঘোষণার সময় কোনও পরিবর্তনশীল সূচনা করতে পারে না, প্যারামাইট্রাইজড কনস্ট্রাকচার, ফাইল প্রতি এক শ্রেণি ইত্যাদি না ... তারা যদি এই সমস্যাগুলি ঠিক করে দেয় তবে ভাষা আরও 10 বছর সহজ হতে পারে।
রাগান্বিত হ্যাকার

14
"অনুরুপ পুনরায় শুরু করুন পরবর্তী" সম্পর্কে কী বলা যায় ... "এই কোডটি F ** কেইডি হ'ল বলার মতো, তবে যাইহোক এটি চালিয়ে দেওয়া যাক =)
স্টিংজি জ্যাক

18

রুবি আমার প্রিয় ভাষা, আমি যা পছন্দ করি না তা এখানে:

  • সবুজ থ্রেড + সি লাইব্রেরিগুলি ব্লক করা = দৈত্য ব্যর্থ
  • খুব দোষী সাব্যস্ত
  • স্ট্যান্ডার্ড লাইব্রেরি নিজেই এর ব্যাং ব্যবহারের সাথে বেমানান! পদ্ধতি
  • মডিউল অন্তর্ভুক্ত + প্রসারিত অগোছালো।
  • "ওপেন ক্লাসিস" বাদ দেওয়া যায় না - আমি একটি স্ট্রিং # ডুস্টফ যোগ করতে চাই, তবে আমি চাই না যে এটি সমস্ত তৃতীয় পক্ষের লাইব্রেরিতে ফাঁস হোক
  • কোনও বাইনারি স্থাপনার প্যাকেজিং সমাধান নেই।

3
আপনি রুবি 1.9.1 চেষ্টা করেছেন? এটি রুবি ১.৮..6 এর তুলনায় একটি বিস্তৃত গতিবেগ সরবরাহ করে
ক্রিশ্চিয়ান স্টেড-

জুরুবাইক চেষ্টা করুন। জেভিএম জেআইটি এফটিডব্লিউ!
কিটসুনওয়াইএমজি

শীর্ষস্থানীয় রুবি উত্তর থেকে 'ঘৃণা' করার বিপরীতে যুক্তিসঙ্গত সমস্যা সহ +1 করুন।
ফ্রেগজ

17

ডেল্ফী:

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

5
এই সমস্তগুলিই ডেল্ফি ভাষার পরিবর্তে আইডিই সম্পর্কে অভিযোগ বলে মনে হয় (একে একে অবজেক্ট পাস্কাল)
ডেনাল

11
সম্ভবত এটি কারণ কারণ অবজেক্ট পাসকেলটি নিখুঁত ;-)
মার্ক বেসি

3
আমি পার্টিতে কিছুটা দেরি করে চলেছি তবে যাইহোক এখানে চলে যায়: - পদ্ধতি স্বাক্ষর দুটি লিখে (ইন্টারফেস + প্রয়োগ) - ইউনিটের নাম ফাইলের নামের সাথে সমান হতে প্রয়োজনীয়। ডব্লিউটিএফ?!?
মার্টিজন

1
আমি সূচনাটি খুঁজে পেয়েছি ... উচ্চতর হতে পারে - সেগুলি {than এর চেয়ে অনেক বেশি পরিষ্কার} আপনি কোডটি লেখার চেয়ে অনেক বেশি সময় ব্যয় করেন। একটি গ্রিপের জন্য, যদিও - আপনি ক্ষেত্রে কোনও ক্ষেত্রে পরিসীমা ঘোষণা করলেও এটি সম্পূর্ণরূপে আইনী যদিও আপনি একটি ক্ষেত্রে গণিত প্রকারের সংজ্ঞায়িত সাবরিঞ্জগুলি ব্যবহার করতে পারবেন না। এছাড়াও, ইউনিটগুলিতে কোনও ফরোয়ার্ড রেফারেন্স নেই।
লরেন পেচটেল

1
@ আলেকজান্ডারএন: না, এটি আর কখনও জীবন্ত, জনপ্রিয় বা দুর্দান্ত কখনও হয়নি।
আন্দ্রে রেজব্র্যান্ড

16

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

  • প্রতিটি স্ক্রিপ্ট একক বিশ্বব্যাপী 'নেমস্পেসে' চালিত হয় ... এমন কিছু যা বিভিন্ন উত্স থেকে স্ক্রিপ্ট নিয়ে কাজ করার জন্য আপনাকে সন্ধান করতে হবে

  • যদি কোনও ভেরিয়েবল ব্যবহার করা হয় তবে হাতের আগে সংজ্ঞায়িত না করা হয়, তবে এটি বৈশ্বিক চলক হিসাবে বিবেচিত হবে

  • ব্রাউজার বিক্রেতারা যেমন খুশি তেমন মানদণ্ড তৈরি করে, আমাদের বিকাশকারীদের জন্য এত সুন্দর ভাষা ব্যবহারের কোডিং তৈরি করা উচিত তার চেয়ে শক্ততর

  • কেস-সংবেদনশীলতা - কম্পাইল-টাইম চেকিং সহ জেএস বিকাশের জন্য কোনও শালীন আইডিই নেই তা বিবেচনা করে

  • hasOwnPropertyকিছু সম্পাদন করার জন্য কাজের পদ্ধতি (যেমন পদ্ধতির ব্যবহার ), অন্যথায় সাধারণ ক্রিয়াকলাপ।


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

15

Haskell,:

  1. অলস মূল্যায়ন থেকে স্থান ফাঁস।
  2. গাণিতিক বিমূর্ততা সংক্রান্ত সংখ্যার হায়ারার্কি নির্মিত হয়নি।
  3. কঠোর মোনাডিক আইও ডিবাগ করা আরও কঠিন করে তুলতে পারে।
  4. বড় বাস্তবায়নগুলি I / O কে এমনভাবে পরিচালনা করে যা মানের সাথে বেশ সামঞ্জস্যপূর্ণ বলে মনে হয় না। (বিশেষত, আউটপুট অক্ষরগুলি কেবলমাত্র কম 8 বিটকে আউটপুট দেয় - এবং তারপরে কোডটি তৈরি হয় যা বাইনারি আই / ও করার জন্য এই ধারণাটি ব্যবহার করে) Ick।)
  5. ($)কিছু এক্সপ্রেশনকে সুন্দর করে তুলতে অপারেটরের সহযোগিতা পরিবর্তন করা যেতে পারে।

এগুলির বেশিরভাগই ঘৃণার স্তরে পৌঁছায় না এবং এমন লোকেরা রয়েছে যার মধ্যে প্রতিটি এর জন্য দৃ solid় workaround ঠিক করতে বা তৈরি করার চেষ্টা করছেন।

সম্পাদনা করুন: পঞ্চম about সম্পর্কে কিছুটা বিভ্রান্তি রয়েছে particular বিশেষত কিছু লোক মনে করে আমি যুক্তির ক্রম বলতে চাইছি, যা আমি করি না। আমার অর্থ কী তা বোঝানোর পরিবর্তে, আমি কেবল নিম্নলিখিত লিঙ্কগুলিতে লোকদের নির্দেশ করব, http://hackage.haskell.org/trac/haskell-prime/wiki/ChangeDollarAssociativity , যা এটি ভালভাবে প্রকাশ করে।


3
আপনি কেন ($) এর সাহচর্য পরিবর্তন করতে চান? 'fghx' বন্ধনী হিসাবে '((fg) h) x' এবং 'f $ g $ h $ x' বন্ধনী 'f (g (hx))' ... ...
এরিক হেসেলিংক

1
আমি <3 হাস্কেল স্ট্যান্ডার্ড লাইব্রেরিতে ভেক্টর স্পেসস এবং অন্যান্য সহ গাণিতিক বিমূর্ততার পাহাড় অন্তর্ভুক্ত করা দরকার। উপস্থাপনায় এমন একটি অপারেটরও প্রয়োজন যা চেইনগুলি ($) এর মতো তবে বাম থেকে ডানে {উত্স |> ফানক 1 |> ফিল্টার ফানক 2 |> মানচিত্র (ফানক 3 10)}}
yfeldblum

10
আপনি সত্যই খারাপটি মিস করেছেন: হাস্কেল প্রোগ্রামারদের একটি বর্ণের পরিবর্তনশীল নাম ব্যবহার করার প্রবণতা।
বেনিয়ামিন কনফিনো

1
একটি বাম-সহযোগী ($) অপারেটর কেবল ফাংশন অ্যাপ্লিকেশন, যা হাস্কেলের মধ্যে স্থান অক্ষর দ্বারা প্রতিনিধিত্ব করা হয়। @ ন্যায়বিচার: ফ্লিপ ফাংশন চেষ্টা করুন। (|>) = ফ্লিপ ($)
অ্যাপোক্যালিস্প

1
# 5 এর পয়েন্টটি কেউ ব্যাখ্যা করতে পারেন? আমি ভেবেছিলাম সঠিক সাহিত্যতা (() এর সম্পূর্ণ বিন্দু।
টিম ম্যাথিউজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.