সি এর চেয়ে দ্রুত, "আরও ভাল" ভাষা কেন প্রকাশিত হল না? [বন্ধ]


147

আজকের সমস্ত নতুন "আধুনিক" ভাষাগুলির বাইরে, কীভাবে সি এখনও দ্রুত এবং "মেশিনের নিকটতম" হিসাবে প্রকাশিত হয়? জিনিসগুলি করার একমাত্র সঠিক উপায় হিসাবে আমি সত্যিই বিশ্বাস করি না, এবং সি সত্যই দীর্ঘকাল ধরে চলেছে (ষাটের দশক থেকে!)! আমরা কি প্রায় 50 বছর আগে রচিত কোনও কিছুর চেয়ে ভাল কিছু নিয়ে আসিনি?

আমি সচেতন যে আধুনিক ভাষা উচ্চতর স্তরের এবং আবর্জনা সংগ্রহ এবং মেমরির বরাদ্দের মতো নির্দিষ্ট কাজের যত্ন নেয় এবং গ্রন্থাগার এবং এগুলি ব্যবহার করে। আমি কেবল জিজ্ঞাসা করছি কেন সি এর সাথে সত্যিকারের দ্বিতীয় বিকল্পটি কেন হয়নি why

এটি কি সি এত নিখুঁত যে কোনও কম্পিউটারের অপারেটিংয়ের অন্য কোনও উপায় সম্ভব হয়নি (বিকাশকারী-গ্রহণকে একপাশে রেখে)?

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


44
লেখার জন্য সি ++ ঠিক তত দ্রুত এবং আরও উত্পাদনশীল <<3
GManNGG

6
ওম, আপনি সি ++ এর কথা ভুলে যাচ্ছেন না?

23
আমি যুক্তি দেব যে মেশিনটির সবচেয়ে দ্রুত এবং "নিকটতম"।

27
কেন সব গতি বন্ধ? আমি সত্যিই কৌতূহলী ... আমি শিখা যুদ্ধ বা অন্য কিছু শুরু করার চেষ্টা করছি না
জেসন

15
আবার বন্ধ? জেফ আতউড নিজে খোলার পরে? কেন আপনি সম্ভবত এটি বন্ধ করতে চান?
জেসন

উত্তর:


164

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

সত্যিই সহজ এবং দ্রুত ভাষায় পরাজিত করা শক্ত। এর মতো ভাষার উন্নতি করার একমাত্র বিষয় হ'ল ব্যবহারযোগ্যতা: অনুরূপ, জেনেরিক কোড তৈরি করতে সময় কমায় এবং বিমূর্ততা সহ মডেল তৈরি করা সহজ করে তুলুন।

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

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

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


31
"সিম্পল" বলতে আপনার অর্থ "একটি কম্পাইলার পিওভি থেকে সহজ, প্রোগ্রামার পিওও নয়"। সিটি সহজ কারণ এটি মূলত বিবৃতি এবং মতামত সহ সমাবেশ। পাইথনটি যেভাবে সহজ সরল এটি সহজ নয়।
মারিয়াস

15
তবে স্পষ্ট করে বলা, সংকলকটির জন্য সহজ অর্থ গ্রহণ করা সহজ does সম্ভবত জটিল ধারনা বাস্তবায়ন সহজ নয়।
GManNickG

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

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

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

64

সি ভাষার চেয়েও দ্রুত রয়েছে।

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

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

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

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

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

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

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


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

1
ধন্যবাদ আমি একাধিক ফলাফলের মানগুলি ফিরিয়ে দেওয়ার অসম্ভবতা উল্লেখ করতে ভুলে গিয়েছি। আর একটি নিম্ন স্তরের দিক যা আমি উচ্চ স্তরের এসেম্ব্লার হিসাবে এটি ব্যবহার করার সময় হার্ড অনুপস্থিত।

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

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

13
সি-তে পয়েন্টার আলিয়াসিংয়ের সাথে restrictC99 (10 বছর আগে!) এর মাধ্যমে মোকাবেলা করা হয়েছিল।

35

ভাল প্রশ্ন. আমি মনে করি ভাষা কুলুঙ্গি খুঁজে সাফল্য। এটি লক্ষ করা গুরুত্বপূর্ণ যে এখানে প্রচুর নতুন ভাষা রয়েছে যা তাদের কুলুঙ্গিতে সি এর চেয়ে ভাল।

  • সি একবার অ্যাপ্লিকেশন ভাষা হিসাবে ব্যাপকভাবে ব্যবহৃত হত এবং সেই ডোমেনে এটি অবিচ্ছিন্নভাবে সি ++, জাভা এবং সম্প্রতি সমস্ত ধরণের অন্যান্য ভাষার (বিশেষত গতিশীল ভাষাগুলি) হারিয়েছে।

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

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

তবে সি এর কুলুঙ্গি হল সিস্টেম কোড। অপারেটিং সিস্টেম কার্নেলগুলি। ড্রাইভার। রান-টাইম লাইব্রেরি। এটি সেই জায়গাতে এতটাই প্রতিষ্ঠিত যে এমনকি সি ++ এটিকে বরং ধীরে ধীরে স্থানান্তরিত করে।

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

দীর্ঘমেয়াদী, এই কুলুঙ্গি চলে যাচ্ছে না; এবং সি কিছু সমস্যা আছে। তবে এখনও কোনও নতুনদের প্রতিযোগিতা করা অত্যন্ত কঠিন hard


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

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

1
আমি কেন কৌতূহলবান যে আপনি সি বৈজ্ঞানিক কম্পিউটিংয়ের জন্য "দুর্দান্ত ফিট নন" consider পাইথন এটিতে কাজ করার জন্য স্বভাবতই আনন্দিত, তবে আমি দ্রুত সি কোডের প্রয়োজন হলে সিটিকে একটি শক্ত বিকল্প বলে মনে করেছি এবং সম্ভাব্য অনেকগুলি বিকল্প বিকল্প (সি ++) টেবিলে বিপুল পরিমাণে বেশি না আনছে, প্রোগ্রামিংয়ের অন্যান্য দিকগুলির তুলনায় unlike ।
Fomite

1
এর বাইরে, সিপিতে লেখা সাইপিপি / নম্পপি ইত্যাদির পরিমাণ ইতিমধ্যে এটি দরকারী করে তোলে।
Fomite

1
@ এপিগ্রাড হতে পারে সি আপনার জন্য একটি শক্ত বিকল্প। তবে সি এর একটি দুর্দান্ত খাড়া শেখার বক্ররেখা রয়েছে, বিশেষত যাদের কোডিংয়ের ব্যাকগ্রাউন্ড নেই for বিশেষত, কখনও কখনও এটি ক্র্যাশ হয়ে যায় এবং আপনি কোডার না হলে আপনার এটির সন্ধান করার খুব কম আশা রয়েছে। ম্যাথমেটিকা ​​বিপুল সংখ্যক জিনিসকে লিখতে সহজ করে তোলে এবং আপনি কয়েক শতাধিক ফ্যাক্টর দ্বারা কম কোড দিয়ে শেষ হন। এবং এটি ক্রাশ হয় না।
জেসন ওরেডরফ 21'11

25

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

আসল উত্তর:

কার্যকর করতে দ্রুত বা স্টাফ লিখতে দ্রুত?

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

সুতরাং আপনি এখানে আছেন: মেশিনের কাছাকাছি এবং সি এর চেয়ে দ্রুততর ভাষা; তারাই সি এর আগে এসেছিল : এসেমব্লার, ফোর্টরান। সম্ভবত কিছু ভুলে গেছে।


@ মাইকেল - তবে এখনও সুপার-লিন, সুপার-ফাস্ট প্রোগ্রামিংয়ের বাজার রয়েছে, বিশেষত এই সমস্ত মোবাইল ডিভাইসের আক্রমণে ... কেন সি এখনও এই ডিভাইসের কয়েকটির জন্য সর্বোত্তম বিকল্প, কেন, কেন অন্যটি নেই? নেট-বনাম-পাইথন-এস্কো-এর-মতো-স্তরের ভাষা?
জেসন

5
পাতার মর্মর। ঘুমোচ্ছে কিন্তু ভুলে যায় না! :)

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

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

1
-1 এর জন্য "এবং এর উপরে উন্নতি করার জন্য খুব কমই কোনও ঘর আছে" - পারফরম্যান্সকে প্রভাবিত না করে সি / সি ++ তে উন্নতি করার জন্য প্রচুর জায়গা রয়েছে।
ব্লুরাজা - ড্যানি প্লেফুঘুফুট

21

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

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


1
এবং সি ++ এখনও আপডেট করা হচ্ছে।
GManNGG

5
@GMan: তাই সি হল


3
আমি যদি ভুল হয় তবে আমাকে সংশোধন করুন, তবে কি C99 restrictপয়েন্টারটির মতো একই এলিয়াসিং শব্দার্থবিজ্ঞান ফোর্ত্রান নয়? আর এমন কি আছে যে কোনও পার্থক্য করে?

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

16

হ্যাক কি, আমি আমার 0.02 ডলার দিয়ে চিম করব।

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

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

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

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

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