২১

Re: প্রোগ্রামারদের আড্ডা!

কোন কোন প্রশ্নের উত্তর দিবো বুঝতেছিনা  neutral

ভ্যারিয়েবলের নামে student_name অর্থাৎ আন্ডারস্কোর এবং ছোট হাতের অক্ষর দেওয়ার পক্ষপাতি আমি।
যদিও student_name , student_roll, student_class etc........ ব্যবহার না করে একাধিক স্টুডেন্ট থাকলে ক্লাস বা associative array ব্যবহার করা ভালো।


অয়ন খান লিখেছেন:

এখানে একটি কাজ করা যেতে পারে। উপরে যাদের নাম উল্লেখ করেছি তারা যদি কে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজে কাজ করেন এবং কোন কোন ল্যাঙ্গুয়েজ পারেন তা আমাদের জানান তাহলে বেশ সুবিধা হয়। hug

php,java,python,basic,c++,c#,fortran ইত্যাদি। প্রথম দুইটা মোটামোটি পারি,পরের গুলা ঠিকমত পারিনা  tongue_smile

অয়ন খান লিখেছেন:

ডেস্কটপ সফটওয়্যার ডেভেলপমেন্ট নাকি ওয়েব সফটওয়্যার ডেভেলপমেন্ট? মানে ক্যারিয়ার গড়ার জন্য বর্তমানে কোন দিকে ঝোঁকা উচিত।

বর্তমানে ফ্রিল্যাংন্সিং জগতে php এর চাহিদাই সবচেয়ে বেশি।

অয়ন খান লিখেছেন:

সফটওয়্যার ডেভেলপমেন্ট নাকি ওয়েব ডেভেলপমেন্ট? এবং কেন?

ওয়েব , কারন বর্তমান যুগ ক্লাউডের যুগ, সবকিছুই ওয়েবঅ্যাপ হয়ে যাচ্ছে এবং যাবে আস্তে আস্তে, এই প্রেক্ষাপটে ডেক্সটপে পরে থাকার কোন মানে হয় না। তবে বর্তমানে আধুনিক প্লাটফর্ম, webkit / যেমন টাইটেনিয়াম ইত্যাদি প্লাটফর্ম ওয়েব এবং ডেক্সটপের দুরত্ব কমিয়ে দিচ্ছে।

অয়ন খান লিখেছেন:

মোবাইল সফটওয়্যার ডেভেলপমেন্ট সম্পর্কে কার কী মতামত।

বর্তমানে অ্যানড্রয়েডের খুবই হুজুগ চলতেছে দেখতেছি। স্মার্টফোনের জনপ্রিয়তা ব্যাপক হারে বৃদ্ধি পাচ্ছে, তাই আমার মনে পুরাতন সিম্ব্রিয়ান বা জে২মি প্লাটফর্ম নিয়ে মাথা না ঘামিয়ে অ্যানড্রয়েড/iPhone ইত্যাদি স্মার্টফোনের প্লাটফর্মের দিকে ঝুকা উচিত।

অয়ন খান লিখেছেন:

তা যাই হোক, এই মুহুর্তে আমার কোন পথে হাঁটা উচিত?

সি/সি‌+‌+ এ বেসিক তৈরী করা ভালো হবে আমার মতে, পরবর্তিতে java এবং php শিখার সময় কাজে দিবে।

পাইথন একটা আকর্ষনিয় ল্যাংগুয়েজ, যদিও c/c++/java/php এর {} এবং ; এর মায়া থেকে বেরিয়ে আসাটাই বরং চ্যালেন্জ/ঝামেলা মনে হয় আমার কাছে। পাইথনে বিভিন্ন আকর্ষনিয় র্যাপার আছে, যেগুলার মাধ্যমে পাইথনের সহজ এনভাইরোমেন্ট থেকেই অনেককিছু কথা সম্ভব।

পাইথন ওয়েবের ক্ষেত্রে, MVC ফ্রেমওয়ার্ক সম্পর্কে ধারনা না থাকলে আগামাথা কিছুই বুঝা যায় না। CI একটু আকটু শিখার পড়ে এখন পাইথনের ওয়েব ফ্রেমওয়ার্কগুলা একটু আকটু মাথায় ঢুকে। django খুব বিখ্যাত হলেও আমার কেন জানি tornado খুব আকর্ষনিয় মনে হয়।



এলোমেলো কিছু কথাবার্তা লিখলাম,আমার আবার এ বিষয়ে প্রাতিস্ঠানিক শিক্ষা নাই, স্বশিক্ষা'র মধ্যে অনেকভুলটুল থাকতে পারে।

সারিম'এর ওয়েবসাইট

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

২২

Re: প্রোগ্রামারদের আড্ডা!

ভেরিয়েবল ডিক্লারেশনের আসলে তেমন কোন স্ট্যান্ডার্ড নাই। মানে ডি য্যুর (de jure) রুলস নাই। তবে কিছু ডি ফ্যাক্টো রুলস আছে। তা বিভিন্ন ল্যাঙ্গুয়েজ ভেদে।

C/C++
১। সব নাম ছোট অক্ষরের। কোন ক্যাপিটাল অক্ষর থাকে না।
২। শব্দের মাঝে পার্থক্য করতে চাইলে আন্ডারস্কোর (_) ইউজ হয়
যেমন: a, a_variable.

Java
১। ক্যামেল কেস (twoWords, howAreYou)
২। প্রথম অক্ষর ছোট হাতের।
৩। আন্ডারস্কোর (_) ইউজ হয় না।
যেমন: itsALongVariable, variable, niceGuy.
C#
১। সম্পুর্ণ জাভার মত।
২। প্রথম অক্ষর বড় হাতের হয়
যেমন: ItsALongVariable, Variable, NiceGuy.

PHP
১। নিয়ম সম্পুর্ণ C/C++ এর মত
২। PHP5 থেকে অনেকে আবার Java/C# এর মত নিয়ম পালন করছে।

এটা ছাড়াও কিছু নিয়ম আছে।
১। কোন ক্লাসের নামের প্রথম অক্ষর বড় হাতের হবে।
২। কোন ক্লাসের অবজেক্টের নামের প্রথম অক্ষর ছোট হাতের হবে।
৩। নেমস্পেস থাকলে সেই অনুসারে ক্লাসের নাম হবে। এক্ষেত্রে সবচেয়ে উপরের নেমস্পেসটা প্রথম শব্দ হিসেবে আসবে। তারপর একে একে বাকিটা।
যেমন: Zend_Data_Google_Mail
৪। ডিরাইভ করা ক্লাসের ক্ষেত্রে বিশেষন আগে বসে।
যেমন: Number, IntegerNumber, BigIntegerNumber, ArbitraryBigIntegerNumber
এখানে বেস ক্লাস থেকে ডিরাইভড ক্লাসগুলো হল,

└───Number
    └───IntegerNumber
        └───BigIntegerNumber
            └───ArbitraryBigIntegerNumber
Feed থেকে ফোরাম সিগনেচার, imgsign.com
ব্লগ: shiplu.mokadd.im
মুখে তুলে কেউ খাইয়ে দেবে না। নিজের হাতেই সেটা করতে হবে।

শিপলু'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

২৩

Re: প্রোগ্রামারদের আড্ডা!

দারুণ একটা টপিক। অয়ন ভাইকে ধন্যবাদ।

অনেকে বলেন পাইথন শেখা তুলনামূলকভাবে সহজ। আসলেই কি তাই? এ ব্যাপারে কেউ কিছু বলবেন?

আমার সকল টপিক

কোনো কিছু বলার নেই আজ আর...

২৪

Re: প্রোগ্রামারদের আড্ডা!

সারিম লিখেছেন:

পাইথনে বিভিন্ন আকর্ষনিয় র্যাপার আছে, যেগুলার মাধ্যমে পাইথনের সহজ এনভাইরোমেন্ট থেকেই অনেককিছু কথা সম্ভব।

র্যাপার প্রসঙ্গ উঠেছে। এই বিষয়েও জানা প্রয়োজন। পাইথনে কোন প্রোগ্রাম লেখার পর সেটির গ্রাফিক্যাল ইন্টারফেস তৈরী করতে সম্ভবত র্যাপার ব্যবহার করতে হয়, নাকি? confused

শিপলু ভাইকে অংশগ্রহণ করতে দেখে বেশ ভাল লাগল। smile আর চমৎকার উত্তর দিয়েছেন। বিষয়টি আগের চেয়ে বেশ পরিস্কার বুঝতে পারছি।

গৌতম লিখেছেন:

দারুণ একটা টপিক। অয়ন ভাইকে ধন্যবাদ।

আপনাকেও ধন্যবাদ এখানে অংশগ্রহণ করার জন্য।

গৌতম লিখেছেন:

অনেকে বলেন পাইথন শেখা তুলনামূলকভাবে সহজ। আসলেই কি তাই? এ ব্যাপারে কেউ কিছু বলবেন?

আমাদের নাসিম ভাই হচ্ছেন পাইথন গুরু। মাসনুন ভাই থাকলেও বেশ ভাল হত। উনিও পাইথন অসাধারণ পারেন।

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

২৫

Re: প্রোগ্রামারদের আড্ডা!

অনেকে বলেন পাইথন শেখা তুলনামূলকভাবে সহজ। আসলেই কি তাই? এ ব্যাপারে কেউ কিছু বলবেন?

অয়ন ভাইয়ের প্রশ্নের উওর আর কারো প্রশ্নের উওর দাওয়া হচ্ছে না whats_the_matter

২৬

Re: প্রোগ্রামারদের আড্ডা!

@গৌতম @প্রিন্স১১ সি, সি++, সি#, জাভা এগুলোর সাথে তুলনা করলে পাইথন শেখা একটু সহজ বটে!

তবে পাইথন প্রসঙ্গে একটি বিষয় জানা উচিত। সেটি হচ্ছে, অনেকেই আইডিএলই বা অন্য কোন আইডিই – এর পরিবর্তে টেক্সট এডিটর ব্যবহার করার পরামর্শ দিয়ে থাকেন। কেন তা জানা নেই। sad আবার উইন্ডোজ প্লাটফর্মে পাইথনে লেখা সফটওয়্যার নাকি ভাল কাজ করে না! confused

MIT OpenCourseWare – এর বদৌলতে Introduction to Computer Science and Programming – এর উপর প্রথম লেকচারটি দেখেছিলাম। সেখানে প্রথম লেকচারেই সরাসরি পাইথনে চলে যায়। পাইথন শেখানো না, বরং প্রোগ্রামিং কিভাবে করতে হয় সেই সম্পর্কে ধারণা দেওয়াই ছিল মূল লক্ষ্য।

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

২৭

Re: প্রোগ্রামারদের আড্ডা!

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

আমার সকল টপিক

কোনো কিছু বলার নেই আজ আর...

২৮ সর্বশেষ সম্পাদনা করেছেন invarbrass (২৭-০৮-২০১১ ০০:৪৭)

Re: প্রোগ্রামারদের আড্ডা!

অয়ন খান লিখেছেন:

@গৌতম @প্রিন্স১১ সি, সি++, সি#, জাভা এগুলোর সাথে তুলনা করলে পাইথন শেখা একটু সহজ বটে!

শুধু যে শেখা সহজ তাই না, পাইথন স্ক্রিপ্টিং করতে মজাও অনেক। কোনো কাজ পাইথনে ২ লাইনে করে যে satisfaction পাওয়া যায়, অন্য ল্যাংগুয়েজে একই কাজ ১০ লাইনে করে মজা নেই - এটি অবশ্য আমার ব্যক্তিগত অভিমত।

অয়ন খান লিখেছেন:

তবে পাইথন প্রসঙ্গে একটি বিষয় জানা উচিত। সেটি হচ্ছে, অনেকেই আইডিএলই বা অন্য কোন আইডিই – এর পরিবর্তে টেক্সট এডিটর ব্যবহার করার পরামর্শ দিয়ে থাকেন। কেন তা জানা নেই। sad আবার উইন্ডোজ প্লাটফর্মে পাইথনে লেখা সফটওয়্যার নাকি ভাল কাজ করে না! confused

আইডল পাইথন এডিটর নয়, মূলত: ছোট কোড কুইক টেস্ট করার জন্য খুবই কাজে লাগে। এছাড়া নতুনদের পাইথন শেখার জন্যও এর জুড়ি নেই। আইডল আসলে পাইথন ইন্টারপ্রেটার (/usr/bin/python) এর উপর একটি গ্রাফিকাল শেল। যে কাজ আইডলে করছেন তা কমান্ড লাইনে /usr/bin/python দিয়েও করতে পারবেন। ১০-২০ লাইনের ছোটখাটো স্ক্রিপ্টের জন্য আইডল ঠিক আছে, তবে বড় প্রোগ্রাম লেখার জন্য আলাদা আইডিই বা এডিটর ব্যবহার করা উচিৎ।
পাইথনের জন্য অনেকেই ভিম, ইম্যাক্স, একলিপ্স/পাইডেভ ব্যবহার করেন। তবে আমার ব্যক্তিগত পছন্দ Wing IDE - পাইথনের জন্য চমৎকার লাইটওয়েট আইডিই। এছাড়া Komodo Edit-ও ভালোই - তবে একটু হেভীওয়েট। লিনাক্সে geany ও gedit-এও চমৎকার পাইথন সাপোর্ট আছে। তবে আমার মতে "সেরা" পাইথন আইডিই হলো JetBrains-এর PyCharm। JetBrains-এর প্রতিটি প্রোডাক্টই হুলুস্থুল রকমের - PyCharm হচ্ছে তাদের চমৎকার IntelliJ IDEA জাভা আইডিই-র লাইটওয়েট ভার্সন - পাইথন ডেভেলপারদের জন্য। ফীচারসেটের দিক দিয়ে অন্যান্য জাভা-বেজড পাইথন আইডিই যেমন পাইডেভ, নেটবীনস ইত্যাদি পাইচার্মের ধারে কাছেও আসবে না PyCharm-এর। দু:খজনকভাবে এটার ফ্রী-ভার্সন নেই   sad তবে যারা ইউনিভার্সিটি ছাত্র তারা তাদের শিক্ষকদের ধরে ফ্রী ক্লাসরুম লাইসেন্স জোগাড় করতে পারেন।
উইন্ডোজে পাইথন খুব ভালো ভাবেই কাজ করে। আমি উইন্ডোজে ActivePython ব্যবহার করি - (এটাতে কিছু উইন্ডোজ স্পেসিফিক সামান্য কিছু এক্সট্রা এক্সটেনশন থাকে, তবে অফিশিয়াল পাইথনের সাথে এর তেমন কোনো পার্থক্য নেই)।
এছাড়া আয়রনপাইথন নামে একটি ডটনেট-বেজড পাইথন ইম্প্লিমেন্টেশনও আছে।

সারিম লিখেছেন:

পাইথন ওয়েবের ক্ষেত্রে, MVC ফ্রেমওয়ার্ক সম্পর্কে ধারনা না থাকলে আগামাথা কিছুই বুঝা যায় না। CI একটু আকটু শিখার পড়ে এখন পাইথনের ওয়েব ফ্রেমওয়ার্কগুলা একটু আকটু মাথায় ঢুকে। django খুব বিখ্যাত হলেও আমার কেন জানি tornado খুব আকর্ষনিয় মনে হয়।

রেইলস ছাড়াও রুবীতে যেমন প্রচুর চমৎকার (মাইক্রো) ওয়েব-ফ্রেমওয়ার্ক আছে (রুবী বা RoR কোনোটাই জানি না, তবে সিনাট্রা আমার কাছে হেভী লাগে love ), তেমনি পাইথন ওয়েব ডেভেলপমেন্ট মানেই শুধু য্যাংগো/পাইলন্স/পিরামিড না। বরং রুবীর তুলনায় পাইথনে ফ্রেমওয়ার্ক চয়েস ওনেক বেশি।

tornado একটি চমৎকার, স্কেলেবল ফ্রেমওয়ার্ক। তবে এটার একটা বড় সমস্যা হলো - এটা ওফিশিয়াল WSGI স্পেক্স কম্প্লায়েন্ট না - বেশ কিছু asynchronous এক্সটেনশন আছে টর্নেডো-তে। যার কারণে টর্নেডো-তে ওয়েব এ্যাপ তৈরি করলে আপনাকে টর্নেডোর নিজস্ব ওয়েবসার্ভার ব্যবহার করতেই হবে। পাইথনে টর্নেডোর চাইতেও আরো হাই-পার্ফর্ম্যান্স ওয়েব-সার্ভার আছে: fapws3 (এটা ই-বে ব্যবহার করে) , bjoern (অপেক্ষাকৃত নতুন), gevent, gunicorn, uwsgi ইত্যাদি - এগুলোতে টর্নেডো ওয়েব-এ্যাপ চালানো যাবে না।

আমার ব্যক্তিগত পছন্দ হলো বটল এবং ফ্লাস্ক মাইক্রোফ্রেমওয়ার্ক।

বটল এবং ফ্লাস্কে হ্যালো ওয়ার্ল্ড...
বটল:

from bottle import route, run

@route('/hello/:name')
def index(name='World'):
    return '<b>Hello %s!</b>' % name

run()

ফ্লাস্ক:

from flask import Flask
app = Flask(__name__)

@app.route('/<username>')
def hello(username='World'):
    return '<b>Hello %s!</b>' % username

app.run()

এগুলো অবশ্য য্যাংগো-র মত ফুল-স্ট্যাক ফ্রেমওয়ার্ক না - বেশিরভাগ কাজই নিজের হাতে করতে হয়। তবে বটল নিয়ে কাজ করার  মজাই আলাদা!  big_smile

Calm... like a bomb.

২৯

Re: প্রোগ্রামারদের আড্ডা!

অয়ন খান লিখেছেন:

পাইথন শেখানো না, বরং প্রোগ্রামিং কিভাবে করতে হয় সেই সম্পর্কে ধারণা দেওয়াই ছিল মূল লক্ষ্য।

গৌতম লিখেছেন:

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

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

অয়ন খান লিখেছেন:

সেটি হচ্ছে, অনেকেই আইডিএলই বা অন্য কোন আইডিই – এর পরিবর্তে টেক্সট এডিটর ব্যবহার করার পরামর্শ দিয়ে থাকেন।

এই পরামর্শ হয়ত ছোটখাট প্রোগ্রাম লেখার জন্যই দেয়া হয়।কারণ "hello world" মার্কা প্রোগ্রামের জন্য কি ভারী ভারী আইডিই নিয়ে টানা হেচড়া করা উচিত?

৩০

Re: প্রোগ্রামারদের আড্ডা!

গৌতম লিখেছেন:

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

তাহলে পাইথন বা পিএইচপি। যদিও আমি এই সব বিষয়ে কম বুঝি! big_smile

বিষয়টি বুঝতে পারলাম, ইনভারব্রাস ভাই। আচ্ছা, র্যাপারের বিষয়টি কী একটু বুঝিয়ে দিবেন? isee

বর্ষণ লিখেছেন:

এই পরামর্শ হয়ত ছোটখাট প্রোগ্রাম লেখার জন্যই দেয়া হয়।কারণ "hello world" মার্কা প্রোগ্রামের জন্য কি ভারী ভারী আইডিই নিয়ে টানা হেচড়া করা উচিত?

তাও ঠিক। lol

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

৩১

Re: প্রোগ্রামারদের আড্ডা!

নিজের অবস্থাটা বুঝানোর জন্য আরেকটু যোগ করি। সম্প্রতি w3schools থেকে এইচটিএমএল, সিএসএস, এক্সএমএল, মাইএসকিউএল এবং পিএইচপির টিউটোরিয়ালগুলো দেখলাম। খুব একটা কঠিন লাগে নি (যদিও কিছু কিছু ক্ষেত্রে ধরতে সময় লেগেছে - যেমন অ্যারে)। সেক্ষেত্রে এই জ্ঞান দিয়ে কি পাইথন শুরু করা যায়? কিংবা অন্য কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ?

আমার সকল টপিক

কোনো কিছু বলার নেই আজ আর...

৩২

Re: প্রোগ্রামারদের আড্ডা!

পাইথন শেখা নতুনদের জন্য অনেক সহজ। আমার সমস্যা হইছিলো { } আর ; এর কনসেপ্ট মাথায় হার্ডকোডেড হইয়া বসে গেছিলো, ওইটা ঠিক করলে পারলেই সব ওকে।

পাইথনে GUI সহ Networking ও নানাবিধ কাজের রেডিমেট সলুশন Qt. Pyqt ইউস করেই সবকিছু করা যায়, pygtk ও আছে অবশ্য, তবে কিউট শিখার সব gtk কে বিখাউজ মনে হয়, অতিরিক্ত ঝামেলা লাগে sad

গত কয়েকমাসে আমি আইডিই ব্যবহারের অভ্যাস ত্যাগ করার চেস্টায় আছি, অনেকাংশে সফলও।
hello world টাইপের প্রোগ্রাম লিখতে টেক্সট এডিটর ব্যবহার করাই ভালো। আগেই আইডিই নিয়া টানাটানি করার কিছু নাই। উন্নতমানে টেক্সট এডিটর বা ছোট আইডিই যেমন geany , gedit ব্যবহার করতে পারেন।

বর্তমানে আমি অবশ্য bbedit ব্যবহার করছি ম্যাকে, ৩০ দিনের ট্রায়াল, বেশ ভালোই লাগছে। textmate এর মত, কোড কম্পলিটেশন সাপোর্ট ভালো। দেখি ৩০ দিন শেষ হলে কিনতে পারি।

গৌতম লিখেছেন:

সেক্ষেত্রে এই জ্ঞান দিয়ে কি পাইথন শুরু করা যায়?

অবশ্যই যায় smile

সারিম'এর ওয়েবসাইট

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

৩৩

Re: প্রোগ্রামারদের আড্ডা!

সারিম ভাই, র্যাপারের বিষয়টি নিয়ে এখনও কোন আলোচনা হল না। whats_the_matter

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

৩৪ সর্বশেষ সম্পাদনা করেছেন invarbrass (২৭-০৮-২০১১ ০২:২২)

Re: প্রোগ্রামারদের আড্ডা!

গৌতম লিখেছেন:

নিজের অবস্থাটা বুঝানোর জন্য আরেকটু যোগ করি। সম্প্রতি w3schools থেকে এইচটিএমএল, সিএসএস, এক্সএমএল, মাইএসকিউএল এবং পিএইচপির টিউটোরিয়ালগুলো দেখলাম। খুব একটা কঠিন লাগে নি (যদিও কিছু কিছু ক্ষেত্রে ধরতে সময় লেগেছে - যেমন অ্যারে)। সেক্ষেত্রে এই জ্ঞান দিয়ে কি পাইথন শুরু করা যায়? কিংবা অন্য কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ?

অণেকেই হয়তো পছন্দ করবেন না - পিএইচপি একটি যাচ্ছে-তাই ভাবে ডিজাইন করা ভাষা।
আপনি এ্যারে-র ব্যাপারটি উল্লেখ করলেন। পাইথনেও চমৎকার এ্যারে ম্যানিপুলেশন সাপোর্ট আছে - তবে পিএইচপির মত মিলিয়ন array_*() ফাংশন নিয়ে মাথার চুল ছেড়াঁর দরকার নাই, অল্প কিছু কীওয়ার্ড এবং ২/৪টা ফাংশন দিয়েই সমস্ত কাজ করা যায় - পাইথনের এলিগেন্স এখানেই।

পিএইচপির সবচাইতে বড় এ্যাডভান্টেজ - এর ইউনিভার্সালিটি - (এমন কোনো ওয়েবহোস্ট নাই যে পিএইচপি সাপোর্ট করে না। বরং বেশিরভাগ হোস্টই রুবি/পাইথন সাপোর্ট করে না)। এবং পপুলারিটি - পিএইচপির কমিউনিটি সাপোর্ট বিরাট।

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

তবে এর পেছনে মূল অবদান বোধহয় পাইথনের চাইতে রুবীরই বেশি  hehe - বহু দিন ধরে পিএইচপির কোনো প্রতিদ্বন্দী ছিলো না। হঠাৎ কয়েক বছর আগে ৩৭ সিগন্যালস এসে রুবী ওন রেইলস তৈরী করে বিপ্লব ঘটিয়ে ফেললো। মূলত: রেইলস প্রোযেক্টের কারণে ডেভেলপারদের দৃষ্টি আকৃষ্ট হলো অল্টারনেটিভ ওয়েব ডেভেলপমেন্ট ভাষাগুলোর দিকে। একই সময় পাইথনেরও য্যাংগো ফ্রেমওয়ার্ক জন্ম হয়েছিলো। সাইন্টিফিক রিসার্চ কমিউনিটি, ম্যাথমেটিক্স, ফাইন্যান্শিয়াল ম্যানেজমেন্ট, ৩ডি মডেলিং এসব খটোমটো বিষয়ে বহু বছর আগে থেকেই পাইথনের আধিপত্য ছিলো। তবে তা সাধারণ ডেভেলপারদের আওতার বাইরে... রেইলস আসার পরে লোকজন পিএইচপি থেকে ডিফেক্ট করতে লাগলো অন্যান্য দিকে। তবে রুবীর সমস্যা ছিলো - ওয়েব ডেভেলপমেন্ট বাদ দিলে অন্যান্য জেনারেল ডেভেলপমেন্টের ক্ষেত্রে এটি পার্ল/পাইথনের তুলনায় immature ভাষা। আর পার্লের সমস্যা হলো পার্ল নিজেই - আজ কি কোড লিখেছেন তা কাল সকালে ঘুম থেকে উঠে নিজেই বুঝতে পারবেন না। বাকি রইলো পাইথন।

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

Calm... like a bomb.

৩৫

Re: প্রোগ্রামারদের আড্ডা!

প্রোগ্রামার হতে ইচ্ছুকরা আলোর মুখ দেখতে পাচ্ছি ।

৩৬

Re: প্রোগ্রামারদের আড্ডা!

ধন্যবাদ ব্রাশু ভাই। বুকে বল আর অন্তরে সাহস পেলাম। smile

আমার সকল টপিক

কোনো কিছু বলার নেই আজ আর...

৩৭

Re: প্রোগ্রামারদের আড্ডা!

invarbrass লিখেছেন:

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

সিম্বিয়ান(অর্ধমৃত) ছাড়া অন্য মোবাইল প্লার্টফর্মের জন্য পাইথন পোর্ট হয়েছে? অ্যান্ড্রয়েডের জন্য পোর্ট হলে সবার জন্যই ভালো হয়।

আরেকটা আজাইরা প্রশ্ন, স্ক্রিপ্টিং আর প্রোগ্রামিং এর মধ্যে কোন পার্থক্য আছে? যদি না থাকে, তাহলে *নিক্সের শেল স্ক্রিপ্টও একটি প্রোগ্রামিং ল্যাংগুয়েজ?

লেখাটি GPL v3 এর অধীনে প্রকাশিত

৩৮ সর্বশেষ সম্পাদনা করেছেন invarbrass (২৭-০৮-২০১১ ০২:০৬)

Re: প্রোগ্রামারদের আড্ডা!

তৌফিক ইমাম লিখেছেন:
invarbrass লিখেছেন:

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

সিম্বিয়ান(অর্ধমৃত) ছাড়া অন্য মোবাইল প্লার্টফর্মের জন্য পাইথন পোর্ট হয়েছে? অ্যান্ড্রয়েডের জন্য পোর্ট হলে সবার জন্যই ভালো হয়।

আরেকটা আজাইরা প্রশ্ন, স্ক্রিপ্টিং আর প্রোগ্রামিং এর মধ্যে কোন পার্থক্য আছে? যদি না থাকে, তাহলে *নিক্সের শেল স্ক্রিপ্টও একটি প্রোগ্রামিং ল্যাংগুয়েজ?

http://code.google.com/p/android-scripting/
http://www.saurik.com/id/5 - তবে এটা বোধহয় শুধুমাত্র জেইলব্রোকেন ডিভাইসে কাজ করবে। iOS-এর জন্য ণেটিভ এ্যাপ তৈরী করার ভালো পদ্ধতি সম্ভবত: পাইথনে নেই - তবে XHTML/JS/AJAX ওয়েব এ্যাপ বানানো যায়।
উইন্ডোজ ফোনে সিলভারলাইট ৪ আছে - এটাতে আয়রনপাইথন চলে।

টেকনিকালি শেল স্ক্রিপ্টও এক ধরণের প্রোগ্রাম। তবে শেল স্ক্রিপ্টিং-এর ক্ষমতা খুবই সীমিত। যেমন, আপনাকে আজকের ডিএসই স্টক লিস্টিং একটি CSV বা XML ফাইলে দিয়ে বলা হলো এখান থেকে GP-র লেটেস্ট শেয়ার প্রাইস বের করতে।  ব্যাশ-এ আপনাকে হয়তো এ কাজের জন্য grep, sed বা awk-এর মত এক্সটারনাল প্রোগ্রাম ব্যবহার করতে হবে (বা আরো এক্সপার্ট হলে ব্যাশ রেগুলার এক্সপ্রেশনও ব্যবহার করতে পারেন)। পক্ষান্তরে পাইথন, পার্ল এমনকি পিএইচপিতেও CSV, XML ইত্যাদি ফাইল হ্যান্ডল করার জন্য নিজস্ব লাইব্রেরী আছে - পুরো কাজ আপনার পাইথন/পিএইচপি প্রোগ্রামেই করে ফেলতে পারবেন। আবার ধরুন কেউ বললো কোম্পানীর ইন্টার্নাল কাজের জন্য একটি ইমেল সার্ভার তৈরী করে দিতে - ব্যাশ দিয়ে তা করতে পারবেন না। কিংবা উবুনটু/ফেডোরার গ্রাফিকাল এ্যাপ যেমন সাইনাপ্টিক, সফটওয়্যার সেনটার ইত্যাদিও শেল স্ক্রিপ্ট দিয়ে তৈরী করা সম্ভব না।

একটি মিলের কারণে পার্ল/পাইথন/পিএইচপি/রুবী-কে স্ক্রিপ্টিং ল্যাংগুয়েজ বলা হয় - ব্যাশ টেক্সট স্ক্রিপ্ট চালাতে যেমন /bin/bash লাগে, তেমনি এসব ভাষায় লিখিত সোর্সকোড ফাইল চালাতেও /bin/perl, /bin/python ইত্যাদি লাগে। তবে পার্ল/পাইথন/পিএইচপি/রুবী আদতে প্রোগ্রামিং ভাষা।

Calm... like a bomb.

৩৯

Re: প্রোগ্রামারদের আড্ডা!

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

প্রোগ্রামার আর সফটওয়্যার ডেভেলপার দুটো ভিন্ন জিনিস। প্রোগ্রামাররা ভিত্তি তৈরী করে আর ডেভেলপাররা সেই ভিত্তির উপর এন্ড-ইউজার সফটওয়্যার বানায়।

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

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

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

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

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

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

যাইহোক, পেশার জন্য শেখা আর নেশার জন্য শেখা - দুটোতে প্রচুর পার্থক্য। এটাই হল মোদ্দাকথা।

৪০

Re: প্রোগ্রামারদের আড্ডা!

আইডিই আর টেক্সট এডিটরের প্রধান পার্থক্য কী? কোন ক্ষেত্রে আইডিই ব্যবহার করব? আর কোন ক্ষেত্রে টেক্সট এডিটর ব্যবহার করব? বিস্তারিত আলোচনা করলে সুবিধা হয়।