প্রায় সব আধুনিক প্রোগ্রামিং ভাষায় কেন (গো, মরিচা, কোটলিন, সুইফ্ট, স্কালা, নিম, এমনকি পাইথন শেষ সংস্করণ) প্রকারগুলি সর্বদা পরিবর্তনশীল ঘোষণার পরে আসে, এবং এর আগে নয়?
আপনার ভিত্তি দুটি ফ্রন্টে ত্রুটিযুক্ত:
- এখানে নতুন-ইশ প্রোগ্রামিং ভাষা রয়েছে যা সনাক্তকারীটির আগে টাইপ করে before সি, ডি, বা সিলোন উদাহরণস্বরূপ।
- শনাক্তকারীর পরে প্রকারটি থাকা কোনও নতুন ঘটনা নয়, এটি কমপক্ষে পাস্কালে ফিরে আসে (১৯–৮-১৯69৯ নকশাকৃত, ১৯ 1970০ সালে প্রকাশিত), তবে আসলে গাণিতিক টাইপ থিওরিতে ব্যবহৃত হয়েছিল, যা শুরু হয় ১৯০২ ডলার। এটি এমএল (1973), সিএলইউ (1974), হোপ (1970), মডিউলা -2 (1977–1985), অ্যাদা (1980), মিরান্ডা (1985), ক্যামেল (1985), আইফেল (1985), ওবেরনেও ব্যবহৃত হয়েছিল (1986), মডুলা -3 (1986–1988), এবং হাস্কেল (1989)।
পাস্কাল, এমএল, সিএলইউ, মডিউলা -২, এবং মিরান্ডা সবগুলিই খুব প্রভাবশালী ভাষা ছিল, সুতরাং এই ধরণের ঘোষণার স্টাইলটি জনপ্রিয় থাকায় অবাক হওয়ার কিছু নেই।
কেন x: int = 42
এবং না int x = 42
? দ্বিতীয়টি কি পূর্বের চেয়ে বেশি পাঠযোগ্য নয়?
পঠনযোগ্যতা একটি পরিচিতির বিষয়। ব্যক্তিগতভাবে, আমি চীনাকে অপঠনযোগ্য বলে মনে করি, তবে দৃশ্যত, চীনা লোকেরা তা করে না। স্কুলে পাস্কল শিখলে, আইফেল, ফা, হাস্কেল এবং স্কালার সাথে ছড়িয়ে পড়ে এবং টাইপস্ক্রিপ্ট, ফোর্ট্রেস, গো, মরিচা, কোটলিন, ইদ্রিস, ফ্রেইজ, আগদা, এমএল, ওকামল ...… দেখে আমার কাছে একেবারে স্বাভাবিক মনে হয় ।
এটি কি কেবল একটি প্রবণতা বা এরকম কোনও সমাধানের পিছনে আসলেই কোনও অর্থবহ কারণ রয়েছে?
যদি এটি একটি প্রবণতা হয় তবে এটি বেশ জেদী: আমি যেমনটি বলেছি, গণিতে এটি একশো বছর পিছিয়ে যায়।
শনাক্তকারীর পরে টাইপটি রাখার অন্যতম প্রধান সুবিধা হ'ল আপনি যদি অনুমান করতে চান তবে টাইপটি ছেড়ে দেওয়া সহজ। যদি আপনার ঘোষণাগুলি এ জাতীয় দেখায়:
val i: Int = 10
তারপরে টাইপটি ছেড়ে দেওয়া এবং এটির মতো অনুমান করা তুচ্ছ ial
val i = 10
প্রকারটি যদি শনাক্তকারীটির আগে আসে তবে:
Int i = 10
তারপরে পার্সারকে কোনও ঘোষণার থেকে একটি অভিব্যক্তি আলাদা করার পক্ষে শক্ত হয়ে উঠতে শুরু করে:
i = 10
ভাষা ডিজাইনাররা সাধারণত যে সমাধানটি নিয়ে আসে তা হ'ল "আমি কোনও টাইপ লিখতে চাই না" মূলশব্দটি প্রবর্তন করে যা টাইপের পরিবর্তে লিখতে হয়:
var i = 10; // C♯
auto i = 10; // C++
তবে এটি আসলে খুব একটা বোঝায় না: আপনাকে মূলত স্পষ্টভাবে একটি টাইপ লিখতে হবে যা বলে যে আপনি কোনও প্রকার লেখেন না। তাই না? এটিকে ছেড়ে দেওয়া আরও সহজ এবং বোধগম্য হবে তবে ব্যাকরণটি আরও জটিল করে তুলেছে।
(এবং আসুন এমনকি সি মধ্যে ফাংশন পয়েন্টার ধরণের সম্পর্কে কথা বলা যাক )
উপরে উল্লিখিত বেশ কয়েকটি ভাষার ডিজাইনাররা এই বিষয়টিতে ওজন দিয়েছেন:
দ্রষ্টব্য: সিলোন ডিজাইনাররা প্রিফিক্স টাইপের বাক্য গঠন কেন ব্যবহার করেছেন তাও নথিভুক্ত করেছেন :
পোস্টফিক্স ধরণের টীকাগুলির পরিবর্তে উপসর্গ
আপনি ঘোষণার নামের পরে প্যাস্কল এবং এমএল পরিবর্তে প্রথমে টীকা টান দেওয়ার ক্ষেত্রে সি এবং জাভা অনুসরণ করেন কেন?
কারণ আমরা এটি মনে করি:
shared Float e = ....
shared Float log(Float b, Float x) { ... }
এর চেয়ে পড়ার পক্ষে সহজ কি:
shared value e: Float = ....
shared function log(b: Float, x: Float): Float { ... }
এবং আমরা সহজেই বুঝতে পারি না যে কেউ কীভাবে অন্যথায় ভাবতে পারে!
ব্যক্তিগতভাবে, আমি তাদের "যুক্তি" অন্যদের তুলনায় অনেক কম বিশ্বাস করি find