সিস্টেমগুলির জটিলতা বৃদ্ধি নিরলস, নিপীড়ক এবং শেষ পর্যন্ত পঙ্গু। একজন প্রবীণ প্রজন্মের প্রোগ্রামার হিসাবে আমার পক্ষে এটিও তীব্র হতাশাব্যঞ্জক।
আমি 40 বছরেরও বেশি সময় ধরে প্রোগ্রামিং করছি, 50-100 বিভিন্ন ভাষা বা উপভাষায় লিখিত কোড পেয়েছি এবং 5-10-এ বিশেষজ্ঞ হয়ে উঠছি। আমি এতগুলি দাবি করার কারণটি হ'ল বেশিরভাগ তারা কেবল একই ভাষা, টুইটগুলি সহ। টুইটগুলি জটিলতা যুক্ত করে, প্রতিটি ভাষাকে কিছুটা আলাদা করে তোলে।
আমি একই অ্যালগরিদমগুলি অসংখ্যবার প্রয়োগ করেছি: সংগ্রহ, রূপান্তর, সাজান এবং অনুসন্ধান, এনকোড / ডিকোড, ফর্ম্যাট / পার্স, বাফার এবং স্ট্রিং, পাটিগণিত, মেমরি, আই / ও। প্রতিটি নতুন বাস্তবায়ন জটিলতা যুক্ত করে, কারণ প্রত্যেকেই কিছুটা আলাদা।
ওয়েব ফ্রেমওয়ার্ক এবং মোবাইল অ্যাপ্লিকেশনগুলির উচ্চ উড়ন্ত ট্র্যাপিজ শিল্পীদের দ্বারা তৈরি করা যাদুটি দেখে আমি অবাক হই, তারা কীভাবে এত অল্প সময়ের মধ্যে এত সুন্দর কিছু তৈরি করতে পারে। তারপরে আমি বুঝতে পারি যে তারা কতটা জানে না, তাদের ডেটা বা যোগাযোগ, পরীক্ষা বা থ্রেড বা তাদের যা করা উচিত তার আগে যা কিছু করার আগে তাদের কতটুকু শিখতে হবে।
আমি চতুর্থ প্রজন্মের ভাষাগুলির যুগে আমার নৈপুণ্য শিখেছি, যেখানে আমরা সত্যই বিশ্বাস করি যে আমরা লেখার সফ্টওয়্যারটির পুনরাবৃত্তিমূলক অংশগুলিকে ক্রমান্বয়ে ক্যাপচার করতে উচ্চ এবং উচ্চ স্তরের ভাষার একটি উত্তরাধিকার তৈরি করব। সুতরাং কিভাবে যে ঠিক পরিণত, না?
মাইক্রোসফ্ট এবং আইবিএম সি-তে উইন্ডোজ এবং ওএস / 2 এর জন্য অ্যাপ্লিকেশন লেখার জন্য ফিরে এসে এই ধারণাটিকে মেরে ফেলেছিল, যখন ডিবেস / ফক্সপ্রো এবং এমনকি ডেলফি স্তব্ধ হয়ে পড়েছিল। তারপরে ওয়েবে এটি আবার অ্যাসেম্বলি ভাষার চূড়ান্ত ত্রয়ী: HTML, সিএসএস এবং জাভাস্ক্রিপ্ট / ডিওএম দিয়ে করেছে। সেখান থেকে সবই উতরাই হয়ে গেছে। সর্বদা আরও ভাষা এবং আরও গ্রন্থাগার এবং আরও ফ্রেমওয়ার্ক এবং আরও জটিলতা।
আমরা জানি আমাদের এটি অন্যভাবে করা উচিত। আমরা কফিস্ক্রিপ্ট এবং ডার্ট, কম এবং সাস সম্পর্কে, এইচটিএমএল লিখতে না এড়াতে টেম্পলেট সম্পর্কে জানি know আমরা জানি এবং আমরা যাইহোক এটি করি। আমাদের কাঠামো আছে, ফুটো বিমূর্ততায় পূর্ণ, এবং আমরা দেখছি যারা নির্বাচিত কয়েকজন তীরন্দরী বাড়া শিখেন তাদের দ্বারা আশ্চর্য কী করা যেতে পারে, তবে আমরা এবং আমাদের প্রোগ্রামগুলি অতীতের সিদ্ধান্তগুলি দ্বারা আটকা পড়েছি। এটি পরিবর্তন বা শুরু করা খুব জটিল।
ফলাফলটি হ'ল যে জিনিসগুলি সহজ হওয়া উচিত তা সহজ নয় এবং জটিলতার কারণে যে জিনিসগুলি সম্ভব হওয়া উচিত তা প্রায় অসম্ভব। আমি একটি প্রতিষ্ঠিত কোড বেসে একটি নতুন বৈশিষ্ট্য বাস্তবায়নের জন্য পরিবর্তনগুলি করার ব্যয়টি অনুমান করতে পারি এবং আত্মবিশ্বাসী হতে পারি যে আমি সঠিক হতে পারব। আমি অনুমান করতে পারি, তবে আমি এটিকে ন্যায্যতা বলতে বা ব্যাখ্যা করতে পারি না। এটা খুব জটিল।
আপনার চূড়ান্ত প্রশ্নের উত্তরে, আমি কনিষ্ঠ প্রোগ্রামারদের দৃ cake়ভাবে পরামর্শ দেব যে তারা যতটা সম্ভব স্তরের কেকের উপরে উঠতে শুরু করুন এবং প্রয়োজন এবং আকাঙ্ক্ষা জাগ্রত করার জন্য কেবল নীচের স্তরগুলিতে ডুব দিন। আমার পছন্দটি এমন ভাষাগুলির জন্য যা কোনও লুপ, সামান্য বা কোনও শাখা ছাড়াই এবং স্পষ্ট অবস্থা নয়। লিসপ এবং হাস্কেল মাথায় আসে। অনুশীলনে আমি সর্বদা সি # / জাভা, রুবি, জাভাস্ক্রিপ্ট, পাইথন এবং এসকিউএল সমাপ্ত করি কারণ সেখানে সম্প্রদায়গুলি রয়েছে।
চূড়ান্ত শব্দ: জটিলতা চূড়ান্ত শত্রু! যে মার এবং জীবন সহজ হয়।