যদি কোনও ভাষা দ্রুত পরিবর্তন হয় তবে এটিকে কি ভাল জিনিস হিসাবে বিবেচনা করা হয়?


14

আমি এমন কিছু ভাষা দেখেছি যা দ্রুত পরিবর্তিত হয় (যার অর্থ তারা প্রতি বছর উদাহরণস্বরূপ উন্নত হয়) এবং কিছু অন্যান্য যা ধীরে ধীরে উন্নত হয়।

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


4
-1: একেবারেই অস্পষ্ট এবং অনুমানমূলক উত্তর দেওয়া উচিত। "দ্রুত" কি? "উন্নত" কি? পরিবর্তনগুলি যদি সমস্ত পশ্চাদপটে সামঞ্জস্যপূর্ণ হয় তবে তাতে কী আসে যায়? প্রশ্নটি আরও নির্দিষ্ট করে তুলতে দয়া করে উন্নতি করুন। একটি কংক্রিট ভাষা যা দ্রুত পরিবর্তিত হচ্ছে তা সাহায্য করতে পারে।
এস.লট

পুরানো প্রোগ্রামগুলি কি এখনও অপরিবর্তিত রয়েছে?

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

"পরিবর্তনগুলি" এবং "পিছনে সামঞ্জস্যতা বিরতি" সম্পূর্ণ আলাদা জিনিস। পরেরটি আসল ইস্যু।
ব্যবহারকারী16764

উত্তর:


16

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

ভাল

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

খারাপ

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

প্রোগ্রামাররা কি ভাষাতে নতুন জিনিস শিখতে পছন্দ করে বা তারা ইতিমধ্যে জেনে থাকা অনুযায়ী লেগে থাকতে পছন্দ করে?

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

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


সি ++ সি এর বিবর্তন নয়, এটি কোনও নতুন সি এর সাথে সামঞ্জস্যপূর্ণ একটি নতুন ভাষা
নিককো

বেশিরভাগ লোক সি ++ সঠিকভাবে ব্যবহার করে না, তারা এটি এটি সি হিসাবে ব্যবহার করে, ভাল, তারা পারে can এবং, সি ++ যথাযথভাবে ব্যবহার করার সময় অযৌক্তিকভাবে জটিল এবং কিছু সংকলকগুলির ইতিহাস রয়েছে যা সমস্ত ভাষার বৈশিষ্ট্য সমর্থন করে না।
sylvanaar

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

@ নিককো আমি সম্মত, তবে এটি মূলত পিছনের দিকে সি এর সাথে সামঞ্জস্যপূর্ণ, যা প্রচুর মজাদার সমস্যা সৃষ্টি করে :)
ডগ টি।

11

উন্নতিগুলি দুর্দান্ত ... যদি তারা পিছনের দিকে সামঞ্জস্য হয়

সি # এটি সুন্দরভাবে করে। এগুলি ল্যামড্বা এক্সপ্রেশনগুলি যুক্ত করে, মাল্টিথ্রিডিংয়ের জন্য আরও ভাল সমর্থন, লিনক, ... তবে আপনার পাঁচ বছরের পুরানো সি # 2.0 প্রোগ্রামটি কোনও পরিবর্তন ছাড়াই খুব সুন্দরভাবে কাজ করবে এবং কোনও পরিবর্তনের প্রয়োজন ছাড়াই সহজেই সি # 4.0 এ উন্নীত করা যাবে।

নতুন জিনিস শেখা দুর্দান্ত যদি এটি আপনাকে আপনার কাজগুলিকে সহজ, দ্রুততর উপায়ে করতে দেয় allowing যদি এক ঘন্টা শেখার অর্থ আপনার সময়কে বিকাশের সময় সাশ্রয় করা হয় তবে এটি ভাল।


5

আমি নিয়মিত উন্নতি চাই, তবে আমি চাই না যে এটি পূর্ববর্তী সংস্করণটির সাথে কোডটিকে ঠিক সেভাবে কাজ করার জন্য একটি 500 কিলোক কোডবেসটি ভেঙে এবং একটি বিশাল "আপগ্রেড প্রকল্প" ট্রিগার করবে।


4

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

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

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

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

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


2

আমি মনে করি না যে এর কোনও উত্তর নেই যা সঠিক।

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

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

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

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

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


2

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

অন্য একজন সি # পছন্দ করে এবং প্রতিটি কীওয়ার্ড জানে না বা .NET 4 লাইব্রেরি (async এবং সমস্ত) জানে না এবং হ'ল বিমূর্ত কীওয়ার্ড বা ব্যবহৃত বৈশিষ্ট্য ব্যবহার করে।

আমি কেবল বলছি বেশিরভাগ লোকের যত্ন নেই

আপগ্রেডের প্রভাবগুলির এখন ব্রেকিং (লিবিস বা সংকলিত কোডের জন্য) লোকেরা যত্ন নেবে।


সি ++ "বিবর্তন" হ'ল নতুন আদর্শ, সি ++ 11। "সি #" বা "ডি" সি ++ এর বিবর্তন নয় .. সি ++ যেমন সি এর বিবর্তন নয়
নিককো

1
@ নিককো: আহ হা। ভাল যুক্তি. আমি জানি অল্প কিছু মুষ্টিমেয় সি ++ প্রোগ্রামার বাদে সবাই সি ++ 0 এক্স বা সি ++ 11 এর কথাও শুনেছি। আমি নিশ্চিত যে তিনি যত্ন

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

0

আমি সি # এর জন্য উত্তর দেব (তবে এই বিশ্লেষণটি স্কালায়ও প্রয়োগ করা যেতে পারে):

আপনি যখন কোনও ভাষার "স্টাইল" এ যাচ্ছেন তখন এই বৈশিষ্ট্যটি পরিবর্তনের ফলে কিছু সমস্যা দেখা দেয়:

২০১১-এ, সি # বিভিন্ন জিনিস প্রচুর করতে পারে এবং এটি ভাল। দুর্ভাগ্যক্রমে এর দুটি পৃথক দৃষ্টান্ত রয়েছে (যদি না হয় তবে):

  • গলি
  • কার্যকরী (ল্যাম্বদা ফাংশন এবং লিনকিউ সম্পর্কে ভাবেন)

বিভিন্ন ধরণের পরীক্ষার শৈলী

  • গতিশীল টাইপিং
  • স্ট্যাটিক টাইপিং

আপনি যখন একে অপরকে ব্যবহার করতে চান তা সর্বদা পরিষ্কার হয় না।


0

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

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