|
প্রাগৈতিহাসিক যুগের পাথর ঠুকে আগুন জ্বালানো মানুষ আজ কি সাবলীল ভাবেইনা লাইটার দিয়ে সিগারেট ধরায়। যোগাযোগের জন্য সংবাদ বাহক পাখি ব্যবহার কারী মানুষ এখন কত পদের যোগাযোগ ব্যবস্থাইনা ব্যবহার করে। চিঠিপত্র, টেলিফোন, মোবাইল, ই-মেইল, ইন্টারনেট ইত্যাদি নানবিধ যোগাযোগ ব্যবস্থা মানুষের জীবনকে করে দিয়েছে সহজ, আর সেই সাথে সুযোগ ঘটিয়ে দিয়েছে একজন মানুষের বিশাল পরিব্যপ্তিতে কাজ করার। ধণ্য মানব জন্ম। ইন্টারনেট আবিষ্কার করার পর কেউ চিন্তা করেননি যে এটি এতটাই পরিব্যাপ্ত এবং বিবিধমূখী হবে যে খবরাখবর আদান প্রদান থেকে ব্যবসা বানিজ্য, শিক্ষা দীক্ষা সব এর মাধ্যমে শুরু হবে। ব্যবহার যাই হোক ওয়েব বা ইন্টারনেট কে ঘিরে গড়ে উঠেছে কর্মব্যস্ত মানুষের বিশাল এক সমাবেশ। আর তাই ওয়েব কে সচল রাখতে ওয়েব ডেভলপমেন্ট, ওয়েব প্রোগ্রামিং এসব হয়ে উঠেছে অপরিহার্য।
একটি বানিজ্যিক ওয়েব সাইট কতটা মনোহর সেটা যেমন জরুরী বিষয় তেমনি জরুরী বিষয় সেটা কতটা কাজের তা লক্ষ্য রাখা। এ যেন দোকান সাজিয়ে রাখা এবং ভাল সাহায্য প্রদান করা এই দুয়ের সংমিশ্রন। সৌন্দর্যের ব্যাপারটি ফুটিয়ে তুলতে একজন ডেভলপারের প্রয়োজন নান্দনিক দৃষ্টি, সেইসঙ্গে যে ধরনের ওয়েবসাইট সেই বিষয়ের সাথে সমপৃক্ততা। আর ওয়েরসাইটের কার্যকারীতা যোগ করতে একজন ওয়েব ডেভলপারের থাকা চাই ভাল যুক্তি জ্ঞান, ইন্টারনেট আর্কিটেকচার সম্বন্ধে স্বচ্ছ ধারনা, ব্যবহারকারীর সুবিধা প্রদান সম্বন্ধে পরিষ্কার ধারনা, সেই সংঙ্গে ইন্টারনেট ভিত্তিক প্রোগ্রামিং ভাষা সম্বন্ধে দক্ষতা। এই লেখাটিতে ওয়েব প্রোগ্রামিং এর অংশটাকে ফোকাসে নিয়ে আসা হয়েছে।
ওয়েবসাইট তৈরী এবং তার সৌন্দর্য বর্ধন এসব কাজে বেশ কিছু ভাল ভাল টুলস পাওয়া যায়। এদের মধ্যে সবগুলোর উইন্ডোজের ভার্সন সহজলভ্য। গ্রাফিক্সের কাজে ব্যবহৃত হয় এডোবি ফটোশপ, কোরেল ড্র, এডোবি ইলাস্টেটর ইত্যাদি। এনিমেশনের কাজে ব্যবহৃত হয় জিআইএফ এনিমেটর, ম্যাক্রোমিডিয়া ফ্ল্যাশ ইত্যাদি। আরও রয়েছে বিভিন্ন সাহায্যকারী ছোট বড় অসংখ্য প্রোগ্রাম।
ওয়েব প্রোগ্রামিং:
ওয়েব প্রোগ্রামিং বা নেটওয়ার্ক ভিত্তিক প্রোগ্রামিংকে আবার দুটি ভাগে ভাগ করা যায়। এদের এক ধরন হচ্ছে ব্রাউজার ভিত্তিক - যা ইন্টারনেট ব্রাউজার যেমন ইন্টারনেট এক্সপ্লোরার, নেটস্কেপ কমিউনিকেটর ইত্যাদির মাধম্যে সাধারন ওয়েব পেইজের আকারে কাজ করে। প্রায় সবগুলো বানিজ্যিক কার্যক্রম সাধারনত এই ধরনের শক্তিশালী ওয়েব পেইজের মাধ্যমে হয়ে থাকে। আবার কিছু প্রোগ্রাম আছে যেগুলো নিজেরা নেটওয়ার্কের মধ্যবর্তী যোগাযোগ সাধন করে এবং বিভিন্ন কাজ সম্পাদন করে। ব্রাউজার, ই-মেইল ক্লায়েন্ট (আউটলুক এক্সপ্রেস, ইউডোরা ইত্যাদি), এমএসএন ম্যাসেঞ্জার ইত্যাদি প্রোগ্রামগুলো এধরনের।
সহজ ভাষায় বলতে গেলে ওয়েব হচ্ছে এক বিশাল সংখ্যক ক্লায়েন্ট/সার্ভারের সমন্বয়। আমরা যারা সাধারন কম্পিউটার ব্যবহারকারী তারা হচ্ছি ক্লায়েন্ট আর অপরপক্ষে কোন একটি অফিসে বা কোন এক জায়গায় বসানো তুলনামূলক ভাবে একটু দ্রুতগতি সম্পন্ন কোন একটি কম্পিউটার হচ্ছে সার্ভার। সার্ভারের কাজ হচ্ছে চব্বিশ ঘন্টা কোন না কোন ইউজারের অনুরোধ মতো কাজ করা। ধরুন কোন একজন ইউজার বা ব্যবহারকারী কোন ভাবে - ফোন লাইন বা টুইস্টেড পেয়ার ক্যাবলের মাধ্যমে, কোন একটি সার্ভারের সাথে সংযুক্ত। এখন ইউজারটি ব্রাউজার নামক একটি সফটওয়্যারের মাধ্যমে একটি অনুরোধ পাঠালো - ‘‘প্রিয় সার্ভার আমাকে index.html ফাইলটি দাও''। সার্ভার নামক যে কম্পিউটারটি ছিল তাতে এধরনের অনুরোধ শোনার এবং সে অনুযায়ী কাজ করার জন্য একটি সফটওয়্যার রান করছিল। প্রোগ্রামটি এই অনুরোধ মতো সেই ফাইলটি সেই ব্রাউজারের কাছে পাঠিয়ে দিল। ব্রাউজার তাকে সঠিক ভাবে প্রদর্শনের ব্যবস্থা করল এবং ব্রাউজারের সামনে বসে থাকা মানুষটি তখন সেই ফাইলটির ভিতরকার জিনিসটি দেখতে পেল। এর মধ্যে বেশ কয়েকটি জটিল ধাপ এবং পদ্ধতি রয়ে গেছে। এই ধরনটি ছাড়াও আরো অনেক ধরনের সার্ভার বনাম ক্লায়েন্ট যোগাযোগ পদ্ধতি রয়েছে। এই পদ্ধতিকে বলা হয় এইটিটিপি বা হাইপারটেকস্ট ট্রান্সফার প্রটোকল। এই প্রোটোকল
ব্যবহার করেই ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ স্থাপিত হয় এবং আদান প্রদান চলে।
এইচ.টি.এম.এল:
এক্স.এম.এল:
এইচ.টি.এম.এল এর মতই আরো একটি মার্কআপ ল্যাঙ্গুয়েজ হলো এক্স.এম.এল - এক্সটেনসিবল্ মার্কআপ ল্যাঙ্গুয়েজ। এটি কাজও করে প্রায় একই পদ্ধতিতে, তবে এটি এইচ.টি.এম.এল এর চেয়ে আরো অনেক বেশী শক্তিশালী - সেই সাথে জটিলও। এইচ.টি.এম.এল এ যেমন আগে থেকে ঠিক করা কিছু ট্যাগ বা চিহ্ন রয়েছে এক্স.এম.এল এ তেমনটি নেই। বরং আপনাকে নিজের মতো করে নিজস্ব ট্যাগ বা চিহ্ন তৈরী করে নিতে হবে এবং তার কাজও ঠিক করে দিতে হবে। আর তাই এটি নিজেই আরো বহু ধরনের মার্কআপ ল্যাঙ্গুয়েজের উদ্ভব ঘটাতে পারে। এই বিশেষ ক্ষমতাটির জন্য একে মেটা-মার্কআপ ল্যাঙ্গুয়েজও বলা হয়। যদিও এর ক্ষমতা বহুবিদ এর জটিলতার জন্য একে বেশীরভাগ ক্ষেত্রে এড়িয়ে যাওয়া হয়।
জাভাস্ক্রিপ্ট:
মার্কআপ ল্যাঙ্গুয়েজ ছাড়াও আরও এক ধরনের ল্যাঙ্গুয়েজ হচ্ছে স্ক্রিপটিং ল্যাঙ্গুয়েজ। জাভাস্ক্রিপ্ট হচ্ছে এদের অন্যতম। এটি প্রথম নেটস্কেপ ডেভেলপ করে। এটি ক্রস প্লাটফরম - যার মানে হচ্ছে ইউনিক্স. লিনাক্স, ম্যাক বা উইন্ডোজ যাই হোক না কেন জাভাস্ক্রিপ্ট সার্পোটেড ব্রাউজার একে প্রর্দশন করতে পারবে। আর অন্য যেকোন আধুনিক ল্যাঙ্গুয়েজের মতো এতে রয়েছে অবজেক্ট ওরিয়েন্টেশনের ক্ষমতা। অনেকে অবশ্য জাভা এবং জাভা স্ক্রিপ্টকে একই বলে প্রায়ই ভুল করে থাকেন। আসলে জাভাস্ক্রিপ্ট হচ্ছে জাভার মতো করে তৈরী করা একটি সহজ ভার্সন, যেটাকে কম্পাইল করার প্রয়োজন নেই, সরাসরি ইন্টারপ্রেট করা হয়, অনেক সহজ এবং উপরন্তু বেশ দ্রুত কাজ করতে পারে। আর এর দুটো ধরন রয়েছে - একটি ক্লায়েন্ট সাইডেড অপরটি সার্ভার সাইডেড। এই দুটো ধরন ব্যবহার করে অনেক শক্তিশালী ওয়েব পেজ তৈরী করা সম্ভব। নেটস্কেপ যখন জাভাস্ক্রিপ্ট আবিষ্কার করল এবং তাদের ব্রাউজারে এটি ব্যবহারের ক্ষমতা সংযুক্ত করল তখন ইন্টারনেট জগতে বেশ একটা সাড়া পড়ে গিয়েছিল। এর পরবর্তীতে মাইক্রোসফট্ তড়িঘড়ি করে বের করে ইন্টারনেট এক্সপ্লোরার যেটিতে জেস্কিপ্ট (জাভাস্ক্রিপ্ট নয়) এর সাপোর্ট সংযুক্ত করা হয় - যেটি জাভাস্ক্রিপ্ট এর অনেক ব্যাপার সম্পন্ন করতে পারতো না। সে যাইহোক জাভাস্ক্রিপ্ট এখনও বেশ জনপ্রিয় এবং ওয়েব পেইজে বিভিন্ন কর্মক্ষমতা যুক্ত করার কাজে খুব ব্যবহৃত হয়।
ভিবিস্ক্রিপ্ট:
নেটস্কেপ যেমনি জাভার ক্ষমতা এবং চমৎকারীত্ত্ব ব্যবহার করে জাভাস্ক্রিপ্ট বের করে তেমনি মাইক্রোসফট্ ভিজুয়াল বেসিকের জনপ্রিয়তা এবং সহজবোধ্যতাকে পুঁজি করে ব্রাউজারে ব্যবহার করার জন্য বের করে ভিবিস্ক্রিপ্ট। এতে ভিজুয়্যাল বেসিকের প্রোগ্রামিং স্টাইল এবং অন্যান্য ফিচার রয়েছে যাতে করে একজন ভিজুয়্যাল বেসিক প্রোগ্রামার খুব সহজে গড়ে নিতে পারেন ভিবিস্ক্রিপ্ট দিয়ে তৈরী করা কার্যকরী ওয়েবসাইট। তবে নেটস্কেপ সহ অন্যান্য ব্রাউজার কিন্তু এটি সাপোর্ট করে না। ফলে একজন ডেভলপার অনেক ক্ষেত্রে ব্যাপারটি মাথায় রেখে ভিবিস্ক্রিপ্ট ব্যবহার না করার সিদ্ধান্ত নিয়ে। একারনে ভিবিস্ক্রিপ্ট ওয়েব মার্কেটে অতটা ভাগ বসাতে পারেনি।
পি.এইচ.পি.:
পিএইচপি - অফিসিয়্যালি ‘‘পিএইচপি: হাইপারটেক্সট প্রিপ্রসেসর'', হচ্ছে এইচটিএমএল এর মাধ্যমে ব্যবহৃত, সার্ভারের প্রান্তে চালিত একটি স্ক্রিপ্টিং ল্যাঙ্গুয়েজ। সাধারন এইচটিএমএল এর মধ্যে বিশেষ ট্যাগ বা চিহ্ন ব্যবহার করে নিদিষ্ট শব্দের বাঁধনে পি.এইচ.পি প্রোগ্রাম করতে হয়। যখন ব্রাউজারের মাধ্যমে একটি পিএইচপি পেইজ অনুরোধ করা হয় তখন সার্ভারে রক্ষিত একটি প্রোগ্রাম পিএইচপিতে প্রোগ্রাম করা অংশটি থেকে সঠিক আউটপুট নিয়ে তাকে এইচটিএমএলে পরিনত করে এবং এই অংশটিকে ব্রাউজারের কাছে পাঠায়। যেহেতু ব্রাউজার একে শেষতঃ এইচটিএমএলের মত দেখতে পারে তাই তাকে প্রদর্শন করতে কোন সমস্যাই হয়না। একারনে যে ব্রাউজারই হোক না কেন সবটাতেই পিএইচপি পেইজ চলতে পারে। তদুপরি এটি যথেষ্ট গতি সম্পন্ন। এই ধরনের সার্ভারের মধ্যে থেকে কাজ করে এমন স্ক্রিপ্টিং ল্যাঙ্গুয়েজের মধ্যে এটিই সবচেয়ে গতিশীল এবং বেশী ব্যবহৃত। উপরন্তু মোটামুটি সব ধরনের প্লাটফরমে এটি পাওয়া যায় বলে উইন্ডোজ এনটি বা লিনাক্স সব ধরনের সার্ভারেই এটি চলতে পারে। এর জনপ্রিয়তার আর একটি কারন হল এর ল্যাঙ্গুয়েজের গঠন অনেকটাই সি এর মত। তাই বেশীরভাগ সি ইউজাররা এর দিকে ঝুঁকে পড়েন।
এ.এস.পি:
এটিও মাইক্রোসফটের আরেকটি সৃষ্টি। অনেকটা পিএইচপির মতো এটিও সার্ভারে রান হয় এবং তার আউটপুট ব্রাউজারে পাঠানো হয়। জেস্ক্রিপ্ট বা ভিবিস্ক্রিপ্ট যাই হোক না কেন সেটি সার্ভারে বসিয়ে রাখা একটি প্রসেসরের মাধ্যমে চালিত হবার পর ব্রাউজারের প্রদর্শনের উপযুক্ত অবস্থায় ব্রাউজারে প্রেরন করা হয় এবং প্রদর্শিত হয়। যেহেতু এটি মাইক্রোসফটের তৈরী তাই এটি মাইক্রোসফটের সবধরনের কনট্রোল ব্যবহার করতে সক্ষম। তদুপরি একটিভ এক্স সহ আরো অন্যান্যআরো টেকনোলজি এতে সহজে ব্যবহার করা যায়। আর সার্ভারে রান করে বলে ক্লায়েন্ট কি প্লাটফরম ব্যবহার করছে সেটি গুরুত্বপূর্ণ নয়। তাই সব ধরনের প্লাটফরমে এটি চলে। কিন্তু সার্ভারটিকে অবশ্যই উইন্ডোজ এনটিতে রান করতে হবে। যাই হোক এএসপি এখন যথেষ্ট ব্যবহৃত হচ্ছে।
সি.জি.আই.:
সিজিআই হচ্ছে কমনগেইটওয়ে ইন্টারফেস - বাংলায় বললে এমন একটি পদ্ধতি যাতে করে সার্ভারে রক্ষিত কোন একটি প্রোগ্রাম যা কিনা ব্রাউজার কর্তৃক কোন একটি অনুরোধের পরিপ্রেক্ষিতে রান হয় এবং কোন একটি নির্দিষ্ট ইনপুটের জন্য একটি আউটপুট ব্রাউজারে ফেরত পাঠায়। মনে করুন একটি ওয়েব ওয়েব পেইজ কোন ইউজারের পূরন করা ওয়েব ফরম থেকে
তথ্যাদি সার্ভারে রক্ষিত কোন ডাটাবেইজে সংরক্ষণ করে রাখে এবং প্রয়োজন মতো সেখান থেকে তথ্যাদি নিয়ে প্রদর্শন করে বা অন্য কোন কাজ করে। এক্ষেত্রে অন্যান্য স্ক্রিপ্টিং ল্যাংঙ্গুয়েজ যদিও কাজটি করতে পারে - সিজিআই এর মাধ্যমে সার্ভারে রক্ষিত যেকোন ল্যাঙ্গুয়েজে তৈরীকৃত প্রোগ্রাম কাজটি সম্পন্ন করে তার আউটপুট ব্রাউজারে পাঠাতে পারে। অনেক সময় স্ক্রিপ্টিং ল্যাঙ্গুয়েজের অনেক সীমাবদ্ধতা থাকে, যেমন অনেক কাজ সিকিউরিটির জন্য করতে দেয়া হয়না। এধরনের ক্ষেত্রে সার্ভারে রক্ষিত প্রোগ্রামটির কোন বাধ্যবাধকতা নেই - তাই যে কোন কাজের ক্ষেত্রে সেটি স্বাধীনভাবে সম্পন্ন করতে পারে। এই টেকনোলজি ব্যবহার করে তাই ওয়েব সাইট ডেভলপ করা তাই এখন বেশ সাধারন। এক্ষেত্রে সবচেয়ে বেশী যে ল্যাঙ্গুয়েজটি ব্যবহৃত হয় তা হচ্ছে পার্ল। তবে অন্যান্য ল্যাঙ্গুয়েজ যেমন সি, সি++ ইত্যাদিও ব্যবহৃত হতে পারে।
জাভা আ্যপলেট:
জন্ম লগ্ন থেকে জাভা কম্পিউটার প্রোগ্রামার, ইন্টারনেট কমিউনিটি এবং ওয়েব ডেভলপারের বিস্ময় দৃষ্টি কেড়েছে। জাভা প্রোগ্রামের পাশাপাশি এমন কয়েকটি টেকনোলজি বের করেছে যাতে করে ওয়েব ডেভলপমেন্টে এসেছে নতুন ছোঁয়া। এরকমই একটি টেকনোলজি হচ্ছে জাভা
আ্যপলেট। জাভা আ্যপলেট আসবার আগে এবং এ পর্যন্ত কোন টেকনোলাজি বাউজারের মধ্যেই এ ধরনের কর্মক্ষমতা যোগ করতে পারেনি। জাভা আ্যপলেট হচ্ছে সম্পূর্ণ ভাবে একটি পুরোপুরি সক্ষম জাভা প্রোগ্রাম যেটি ওয়েব ব্রাউজারের মধ্যেই চলতে পারে। ব্যবহারকারীর নেয়া সিদ্ধান্তের উপর ভিত্তি করে এটি বিষেশ কোন কাজেও সিদ্ধহস্ত। তবে সিকিউরিটির কারনে এতে ফাইল ব্যবহার করা সহ বেশকিছু ফিচার বন্ধ রাখা হয়েছে। ইদানীং কালে অবশ্য জাভার এই ক্ষমতা ব্যবহার করে খুব চমৎকার কিছু আ্যপলেট যেগুলো দৃষ্টিনন্দন এবং আকর্ষনীয় তাদের ওয়েব সাইটের আকষর্নীয় বিষয় হিসেবে ব্যবহার হচ্ছে। তৈরী করা হচ্ছে ছোট ছোট গেম যেগুলো ওয়েব পেইজেই খেলতে পারা যায়। খারাপ দিকগুলোর মধ্যে এর বিশাল আকৃতি যা ধীর গতির ইন্টারনেটে অভিশাপের মত এবং অতিরিক্ত মেমোরীর প্রয়োজন উল্লেখযোগ্য। তবে জাভা আ্যপলেট রান করতে জাভা প্লাগইন সমৃদ্ধ ব্রাউজার প্রয়োজন হয়। নেটস্কেপ নেভিগেটরের সর্বশেষ ভার্সন এবং ইন্টারনেট এক্সপ্লোরারের ভার্সন ৫ পর্যন্ত জাভার সার্পোট রয়েছে। কিন্তু মাইক্রোসফট সমপ্রতি তাদের সর্বশেষ ব্রাউজারের জাভার সাপোর্ট রাখেনি - এতে ধারনা করা হচ্ছে কম্পিউটার জগতে বড় পরিবর্তন আসতে পারে।
জাভা সার্ভলেট এবং জেএসপি:
জাভা আর.এম.আই.:
জাভা আর একটি টেকনোলজি যেটি ডিস্ট্রিবিউটেড কম্পিউটিং এর ক্ষেত্রে একটি মাইল ফলক। আরএমআই শব্দটির বিস্তারন হচ্ছে রিমোট মেথড ইনভোকেশন। এটির ব্যবহারের ফলে এন্টারপ্রাইজ ভিত্তিতে জাভা ভিত্তিক আ্যপলিকেশন তৈরী সহজতর হয়।
ফ্ল্যাশ:
বর্তমান সময়ে অত্যধিক জনপ্রিয় ওয়েব আ্যনিমেশনের এই টুলটি ম্যাক্রোমিডিয়া কোম্পানীর একটি উদ্ভাবন। এটির মাধ্যমে খুব সহজে বেশ আকর্ষনীয় আ্যনিমেশন তৈরী করা যায়। কিছু প্রোগ্রামিং পদ্ধতি ব্যবহার করা হয় বলে ফ্ল্যাশ আ্যনিমেশন ইউজার এর সিলেকশন এর ভিত্তিতে বিশেষ কিছু কাজ করতে পারে। বিভিন্ন প্লাটফরমে এর প্লাগইন পাওয়া যায় বলে এটি খুব দ্রুত সর্বজন স্বীকৃত হয়ে উঠছে। তবে এর ফাইল সাইজ সাধারনত বেশ বড় হয়ে থাকে বলে ধীরগতির ইন্টারনেটের জন্য বোঝা হয়ে দাঁড়ায়।
সিদ্ধান্ত :
আপনি নিশ্চয়ই বেশ অনিশ্চয়তায় পড়ে গেছেন ঠিক কোনটি আপনি আয়ত্ব করতে পারেন ওয়েব ডেভলপার হিসেবে নিজেকে প্রতিষ্টা করতে। আসলে বেশীরভাগ ক্ষেত্রে স্ক্রিপ্টিং ল্যাঙ্গুয়েজের যেকোনটিই আপনার চাহিদা মেটাতে পারে। এইচটিএমএল খুব সহজ এবং একেবারে গোঁড়ার বিষয় - তাই এর উপর সামান্য কিছু জ্ঞান থাকা অব্যশই দরকার। আর কার্যকরী বানিজ্যিক ওয়েব সাইট দাঁড় করাতে চাইলে পিএইচপি, এএসপি ইত্যাদির কোন একটি বেছে নিতে পারেন। আর আকর্ষনীয় কিছু করতে ফ্ল্যাশ বা জাভা আ্যপলেটের যেকোন একটি। যদি আপনার এমন কোন প্রয়োজন এসে দাঁড়ায় যেখানে সাধারন স্ক্রিপ্ট ল্যাঙ্গুয়েজ আপনাকে তেমন সাহায্য করতে পারছে না বরং সার্ভারে অবস্থিত কোন একটি প্রোগ্রাম কাজটি করে দিতে পারছে তখন সাহায্য নিন সিজিআই এর। বিশাল কোন এন্টারপ্রাইজ ভিত্তিক কাজ না করলে জাভার টেকনিক্যাল জটিলতায় না যাওয়াই শ্রেয়। তবে তেমন বড় কোন কাজ হলে জাভার কোন বিকল্প নেই।
শেষের কথা:
(লেখাটি বছর কয়েক আগে সি-নিউজ নামের একটি পত্রিকায় প্রকাশিত হয়েছিল।)
0 comments:
Post a Comment