ইলাস্টিক ট্যাবস্টপগুলির ত্রুটিগুলি কী কী? [বন্ধ]


83

এখানে দেখুন: ট্যাব বনাম স্পেসে একটি আদর্শ পবিত্র যুদ্ধ

এখন এখানে দেখুন: ইলাস্টিক ট্যাবস্টপ । সমস্ত সমস্যার সমাধান, এবং খুব দরকারী নতুন আচরণের একগুচ্ছ যুক্ত।

ইলাস্টিক ট্যাবস্টপ

ইলাস্টিক ট্যাবস্টপগুলি এমনকি ট্যাবগুলিতে স্পেস স্পেস আলোচনায় উল্লেখ করা আছে? কেন না? ইলাস্টিক ট্যাবস্টপ ধারণার কি ত্রুটিগুলি এতটা গুরুতর যে কেউ কোনও জনপ্রিয় সম্পাদকের মাধ্যমে এগুলি প্রয়োগ করে নি?

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

(ইতিমধ্যে স্থিতিস্থাপক ট্যাবস্টপগুলির ভিজ্যুয়াল স্টুডিও বাস্তবায়নের জন্য মাইক্রোসফ্ট কানেক্টে ইতিমধ্যে একটি অনুরোধ এবং একটিলপিসেও একটি অনুরোধ রয়েছে Plus এছাড়াও ইলাস্টিক ট্যাবস্টপ বাস্তবায়নকারী অন্যান্য সম্পাদকদের সম্পর্কেও একটি প্রশ্ন রয়েছে )


4
এটি ux.stackex
بدل.

11
এগুলি কখনই "স্পেস বনাম ট্যাবগুলি" আলোচনায় উল্লেখ করা হয় না কারণ কোনও কার্যকারী প্রোগ্রামারকে এই জিনিসগুলি ব্যবহার করার প্রায় কোনও উপায় নেই। হতে পারে আপনার যদি একটি Elpipse, VS, gvim এবং emacs বাস্তবায়ন থাকে, তবে এটি পরিবর্তিত হতে পারে।
পল টমলিন

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

3
@ ক্রিসবার্ট-ব্রাউন এটি সর্বদা ঝুঁকিপূর্ণ, হ্যাঁ। ইন্টেলিসেন্সের সমস্যাগুলিও রয়েছে যেমন পাঠ্যটি সাবস্ক্রাইব করার মতো নয়। সামগ্রিকভাবে, তবে, সি # তে ইন্টেলিজেন্স বড় ফ্যাট জয় win
রোমান স্টারকভ

4
আমি এটি নোটপ্যাডে ++ তে চাই ... আমি এখনই এটি চাই
বেন ব্রোকা

উত্তর:


32

হলি ওয়ার্সগুলি সাবজেক্টিভ

নিক এর ইলাস্টিক tabstops একটি হয় আশ্চর্যজনক ধারণা যে অনেক সাহায্য করতে পারে জনগণ, একটি কার্যকর সমাধান একমত যদিও আমি অত্যন্ত সন্দেহ এটা সম্পূর্ণরূপে এই পবিত্র যুদ্ধের শেষ হবে: এটি একটি হল, সব পরে, এছাড়াও স্বাদ ব্যাপার এবং অনেক প্রোগ্রামাররা একটি নাড়াতে চায় না এই বিষয়ে তাদের অবস্থান থেকে ইঞ্চি এমনকি সমঝোতার বিনিময়েও। সুতরাং এটি প্রথম কারণ হবে।

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

বাস্তবায়ন সমস্যাসমুহ

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

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

আমরা কি যথেষ্ট যত্ন নিই?

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

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

সুতরাং, যদি আপনি এটি চান, নিক একটি হাত দিন।


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

3
@ ক্রমিনস: অনেক কিছুর জন্য, এটি একটি শান্ত অভ্যন্তর বা গেটগুলির দিকে চিৎকার করে এক হাজার স্বর গ্রহণ করে।
হাইলেম

35

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


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

10
@ টিমউই: প্রশ্নটি ছিল ত্রুটিগুলি তালিকা করার জন্য। আমি করেছিলাম.
mhoran_psprep

14
এটি জিআইএফ থেকে সুস্পষ্ট নাও হতে পারে তবে কেবলমাত্র জড়িত তা হ'ল আপনি যখন "ট্যাব" টিপবেন তখন এর পরে যা আসবে তা সঠিকভাবে উল্লম্বভাবে সারিবদ্ধ হবে। এটি ওয়ার্ড প্রসেসরের মতো কিছু নয়। আমি পোস্ট করা লিঙ্কটিতে কেবল প্রকৃত ইন্টারেক্টিভ ডেমো চেষ্টা করে দেখুন এবং এটি দেখতে কত প্রাকৃতিক।
রোমান স্টারকভ

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

27

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

আমি যখন আপনার বুদ্ধিমান ইলাস্টিক ট্যাবস্টপগুলি ভিমে খুলি এবং সম্পাদনা করি তখন কী হয়? ট্যাবটি কী স্বয়ংক্রিয়ভাবে পরিষ্কার হয়ে যায় বা আপনি কোনও গোলযোগ নিয়েই চলে গেছেন?

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


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

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

14
@ টিমউই: আপনি ধরে নিয়েছেন যে প্রত্যেকে স্থিতিস্থাপক ট্যাবস্টপগুলিকে যতটা ভয়ঙ্কর বলে মনে করেন ততই দুর্দান্ত লাগে। এই সত্য নাও হতে পারে।
সারদাথ্রিয়ন

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

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

13

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

এর পরে, আপনি অবশ্যই তাদের ফাংশন আর্গুমেন্টগুলি (এবং পরামিতি) এবং অ্যাসাইনমেন্টের দীর্ঘ তালিকা সারিবদ্ধ করতে ব্যবহার করতে পারেন।

তবে প্রাক্তনদের জন্য আমি কেবলমাত্র একটি অতিরিক্ত স্তর দ্বারা সমস্ত যুক্তি যুক্ত করতে চাই এবং এটি আমার সাথে সম্পূর্ণ সূক্ষ্মভাবে কাজ করে:

void foo(
    int x,
    int y,
    string z
)

এবং আমি এটি পরিবর্তন করার কোন প্রয়োজন দেখতে পাচ্ছি না ।

এবং কাজ সারিবদ্ধ করার জন্য, আমি এটি না। আমি অ্যাসাইনমেন্টের চারপাশে একক স্পেস রেখেছি, এটাই। আমি খুব বেশি অ্যাসাইনমেন্ট একসাথে ক্লাস্টার না করার ঝোঁকও থাকি যাতে খুব কমই কোনও পাঠযোগ্যতার সমস্যা থাকে।

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

কোনও সম্পাদক যদি এগুলি বাস্তবায়ন করে তবে আমি সেগুলি ব্যবহার করব না।


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

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

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

13

একটি অসুবিধা হ'ল এটি যদি আপনি লাইনের একটি গ্রুপে প্রান্তিককরণ চান এবং তারপরে পরবর্তীতে ইন্ডেন্টেশন চান তবে এটি কাজ করে না, কারণ এটি ট্যাব সংলগ্ন লাইনের স্টপগুলিকে গ্রুপ করে।

def foo( bar,
         xyzzy ):
         wibble() # Too much indentation

আমি যা চেয়েছিলাম:

def foo( bar,
         xyzzy ):
    wibble()

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


একমত। পাইকের বাস্তবায়ন পাইথনের মতো ভাষার পক্ষে মোটেও কার্যকর হয় না।
রোমান স্টারকভ

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

1
@ KonradRudolph No, তারা পারেননি। ইলাস্টিক ট্যাবস্টপগুলির অঙ্কন হ'ল স্বয়ংক্রিয়ভাবে পাঠ্যের গোষ্ঠীগুলিকে ইন্ডেন্ট / আনইন্ডেন্ট করার ক্ষমতা। একটি সহজ উদাহরণ হ'ল "যদি" বিবৃতিটির সমাপ্তি: আপনি চেষ্টা করেন এবং আন-ইনডেন্ট না থাকায় আপনি বিবৃতিটি থেকে বেরিয়ে আসছেন তবে "স্মার্ট" ইলাস্টিক ট্যাবস্টপগুলি সিদ্ধান্ত নেয় যে আপনি উপরের লাইনটি দুটি বা আন-ইনডেন্ট করতে চেয়েছিলেন, সুতরাং এবং এরপরে ... এবং যদি আপনাকে স্পষ্টভাবে একসাথে পাঠ্যকে একসাথে করতে হয়, তবে - মূল বক্তব্য কী? নিজে
ইনডেন্টগুলি

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

1
ওহ, ভাল পয়েন্ট। হুম ... সম্ভবত আপনি যুক্তিগুলি ডাবল-ইনডেন্ট করতে পারেন? তাহলে wibble()কেবলমাত্র একটি একক ইনডেন্টেশন হবে এবং তাই ফাংশন আর্গুমেন্টগুলির সাথে একত্রিত হবে না?
আজেদী 32

12

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

এর অর্থ হ'ল স্থিতিস্থাপক ট্যাবস্টপগুলির ব্যবহার আর বহিরাগত কনভেনশন নয় (উদাঃ "এই ফাইলটি ইলাস্টিক ট্যাবস্টপগুলির সাথে ফর্ম্যাট হয়েছিল, দয়া করে এটিকে চালু করুন") তবে আপনি কেস ভিত্তিতে কেস বেছে নেবেন এমন কিছু something

বিদ্যমান পাঠ্য সম্পাদকরা সাধারণত উল্লম্ব ট্যাবটির পরিবর্তে একটি গ্লিফ বা একটি একক স্থান প্রদর্শন করেন। এটি আদর্শ নয়, তবে মূল্য দিতে একটি ছোট দাম, আইএমও।


10

তারা উল্লেখ করা হয়নি কারণ তারা বেশিরভাগ আইডিই পাঠ্য সম্পাদকদের প্রয়োগ করা হয়নি; তারা কোনও প্রকল্পে সামান্য বাস্তব ব্যবহারের অভিনবত্ব।

পাঞ্চ কার্ডের দিন থেকেই প্রোগ্রামিং ছড়িয়ে দেওয়ার জন্য স্পেস ব্যবহার করা হয়। ট্যাবগুলি উপস্থিত হয়েছিল এবং কেউ স্পষ্টতই মনে করেছিলেন যে তারা একটি ভাল ধারণা (তাদের ভুল হয়েছে: পি)।

যে দিনগুলিতে বেশিরভাগ আধুনিক সম্পাদকরা ট্যাবগুলিকে স্বয়ংক্রিয়ভাবে স্পেসে রূপান্তর করতে পারেন ... তারা মোটামুটি অর্থহীন।

ট্যাব বনাম ফাঁকা জায়গাগুলির মতো তুচ্ছ কিছু মোকাবেলায় আর একটি সরঞ্জাম ইনস্টল করা অবশ্যই আমার কাছে আবেদন করে না, এবং আমার বেশিরভাগ সহকর্মীর কাছে এটি মনে হয় না।


তারা মন্তব্যগুলিকে অপমানের দিকে নামার সাথে সাথে সাফ করে দিয়েছি।
ক্রিসএফ

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

"আরও একটি সরঞ্জাম ইনস্টল করা ..." যথেষ্ট পরিমাণে তর্ক নয় ... মনে হচ্ছে ইতিমধ্যে যথেষ্ট সরঞ্জাম ব্যবহার হচ্ছে না।
মিলিন্ড আর

@ মিলিন্দআর আপনি একে যথেষ্ট উপযুক্ত যুক্তি হিসাবে বিবেচনা করুন বা না করুন, এ কারণেই (তিন বছর আগে এই সময়ে) আমার এতে কোনও আগ্রহ নেই। প্রচুর সরঞ্জাম ব্যবহৃত হচ্ছে যা দরকারী কিছু করে এমন একটি যুক্ত করার কারণ নয় যা সত্যই আপনার পরিবেশে কিছু যুক্ত করে না।
TZHX

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

4

আমি মনে করি আইডিইরা তাদের (মাইক্রোসফ্ট!) সমর্থন করলে তারা অনেক বেশি ব্যবহার খুঁজে পাবে। লোকেরা একবার দেখতে পেল যে তারা পাশের দিকে তাদের ফুলবক্সগুলি চড় মারতে পারে এবং তাদের সুন্দরভাবে পড়তে পারা যায়, তারা তা করবে। হঠাৎ আপনার উত্স কোডে আরও মন্তব্য যুক্ত করা হতে পারে (যা কেবলমাত্র ভাল জিনিস হতে পারে)।

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

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

আমি মনে করি যদিও আমি এই ধারণাটি পছন্দ করি, যদিও একটি লাইনের শেষে 'ট্যাব ট্যাব' মন্তব্য ব্লককে আরও কার্যকর করে এবং পরবর্তী লাইনে সমস্ত মন্তব্যগুলি লাইন করে (যাতে ডাবল-ট্যাব ব্যবধান থাকে)।


3

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

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

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

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


সি বনাম সি ++ যুক্তিটি কিছুটা বিভ্রান্ত হয়েছে। যদিও এটি সত্য হতে পারে এটি "কিছু লোকের" ক্ষেত্রে (যেমন আপনি ঠিক বলেছেন), পরিস্থিতি অনুসারে সিটিতে লেগে থাকা বা সি ++ এর পক্ষপাতী হওয়ার সুস্পষ্ট কারণ রয়েছে। ডিফল্ট সেটিংসে সি ++ রানটাইমের আকার তাদের মধ্যে অন্যতম।
হাইলেম

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

@ হাইলেম: মতামতের জন্য ধন্যবাদ আমি সি / সি ++ এর রেফারেন্সটি সরিয়েছি।
টিমউই

@ জোনপুর্দি: প্রতিক্রিয়াটির জন্য ধন্যবাদ। আমি সি / সি ++ এর রেফারেন্সটি সরিয়েছি।
টিমউই

2

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

সামগ্রিকভাবে আমি মনে করি এটি একটি দুর্দান্ত ধারণা তবে ব্যক্তিগতভাবে আমি এটি পছন্দ করব না।


1

আমি কেবল ইডিটিকের ইলাস্টিক ট্যাবস্টপগুলি প্রয়োগের চেষ্টা করেছি, যা আমি পরিচিত প্রোগ্রামিং ভাষাগুলির সাথে আশ্চর্যরূপে ভালভাবে কাজ করে (মূলত এইচটিএমএল / এক্সএমএল এবং সি-জাতীয় ভাষাগুলি)। পাইথন কোড সহ তবে এটি এখানে কীভাবে রেন্ডার করা হয়েছে (কীভাবে জিনিসগুলি প্রান্তিক করে তোলে তা বোঝানোর জন্য ট্যাবগুলির স্থানে ব্যবহৃত স্পেস):

def foo(x):
             '''<1 tab before the docstring.
No tab       <tab
No tab       <tab
             <tab  <another tab
             <tab  <another tab
             <tab'''
             if 1 or 2:    #<Tab before this comment
                           yield True

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

বলা হচ্ছে, এটি x86 এএসএম, সি, সি ++, গো, এক্সএমএল, এইচটিএমএল এবং অন্যান্যদের জন্য দুর্দান্ত যেগুলি এতটা সাদা জায়গার উপর নির্ভর করে না:

import (
    "fmt"    // We love formatting functions.
    "io"     // Because I/O is useful.
    "os"     // Can't open a file without os.Open!
)

type Foo struct {
    Field1              int          // This is properly aligned
    ReallyLongField2    string       // with this.
    privateField        io.Reader    // Elastic tabstops are great for Go.
}

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

(let loop ((n 1))
  (if  (> n 10)
        '()
        (cons  n
               (loop (+ n 1)))))

বনাম আরও পাঠযোগ্য:

(let loop ((n 1))
  (if (> n 10)
      '()
      (cons n
            (loop (+ n 1)))))

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


0

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

আপনি খুব ঝামেলা ছাড়াই মন্তব্যটি প্রান্তিককরণের জন্য ইমাসকে পেতে পারেন, কিন্তু এএফএইকে কেউ না কিন্তু আপনি কখনও তা চেয়েছিলেন।


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

যাইহোক, ইম্যাকসগুলি wilmaসম্পাদনাগুলি করার সাথে সাথে ফাংশন নামের দৈর্ঘ্য পরিবর্তন করার মতো কি পুনরায় যুক্ত করা যায় ? যদি এটি হয়ে থাকে তবে এটি স্থিতিস্থাপক ট্যাবস্টপগুলি যা করে তার কাছাকাছি।
রোমান স্টারকভ

@ ক্রমকিইনস: আমি ট্রোলিংয়ের অর্থ বোঝাতে চাইনি, আমি কেবল এটাই বোঝাতে চাইছি যে আমি ইএমএসিএসে মন্তব্য স্ট্যান্ডিংয়ের স্টাইলটি কখনই দেখিনি। সাধারণত ইএমএসিএস আপনি টাইপ করার সাথে সাথে একাধিক লাইন পুনরায় ইনডেন্ট করে না তবে এটিও পরিবর্তন করা যেতে পারে।
কেভিন cline
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.