লাইভকোড (প্রোগ্রামিং ভাষা)

**লাইভকোড** (LiveCode; পূর্বে যা রেভোলিউশন এবং মেটাকার্ড নামে পরিচিত ছিল) হলো একটি ক্রস-প্ল্যাটফর্ম র‍্যাপিড অ্যাপ্লিকেশন ডেভেলপমেন্ট রানটাইম সিস্টেম, যা মূলত হাইপারকার্ড দ্বারা অনুপ্রাণিত। এতে 'লাইভকোড স্ক্রিপ্ট' (পূর্বে মেটাস্ক নামে পরিচিত ছিল) নামক একটি প্রোগ্রামিং ভাষা ব্যবহার করা হয়। এটি হাইপারকার্ডের হাইপারটক-এর মতো xTalk স্ক্রিপ্টিং ভাষা পরিবারের অন্তর্ভুক্ত।

এই প্ল্যাটফর্মটি ২০০১ সালে প্রথম পরিচিতি লাভ করে। রেভোলিউশন ডেভেলপমেন্ট সিস্টেমটি মূলত মেটাকার্ড ইঞ্জিন প্রযুক্তির ওপর ভিত্তি করে তৈরি হয়েছিল, যা পরবর্তীতে ২০০৩ সালে রানটাইম রেভোলিউশন মেটাকার্ড কর্পোরেশনের কাছ থেকে কিনে নেয়। ২০০৪ সালে এটি ম্যাকওয়ার্ল্ডের পক্ষ থেকে "সেরা ডেভেলপমেন্ট সফটওয়্যার" হিসেবে পুরস্কার লাভ করে। ২০১০ সালের শরতে "রেভোলিউশন" এর নাম পরিবর্তন করে "লাইভকোড" রাখা হয়। লাইভকোড লিমিটেড (পূর্বে রানটাইম রেভোলিউশন লিমিটেড) নামক স্কটল্যান্ডের একটি কোম্পানি এটি তৈরি ও বাজারজাত করে। ২০১৩ সালে একটি সফল ক্রাউডফান্ডিং ক্যাম্পেইনের পর এর একটি উন্মুক্ত বা ওপেন সোর্স সংস্করণ (কমিউনিটি এডিশন ৬.০) প্রকাশিত হয়।

লাইভকোড বর্তমানে আইওএস, অ্যান্ড্রয়েড, ম্যাকওএস, উইন্ডোজ, রাসবেরি পাই এবং লিনাক্সসহ বিভিন্ন ইউনিক্স সংস্করণে চলে। এটি মোবাইল, ডেস্কটপ এবং সার্ভার অ্যাপ্লিকেশন তৈরিতে ব্যবহার করা যায়। ২০১০ সালের ডিসেম্বরে এর আইওএস সংস্করণ মুক্তি পায় এবং ২০০৯ সালে ওয়েব মোতায়েনের প্রথম সংস্করণ প্রকাশিত হয়। এটি বর্তমানে হাইপারকার্ড বা হাইপারটক ক্লোনগুলোর মধ্যে সবচেয়ে বেশি ব্যবহৃত মাধ্যম এবং একমাত্র প্ল্যাটফর্ম যা সব প্রধান অপারেটিং সিস্টেমে কাজ করে।

২০১৫ সালে লাইভকোড ৮.০ সংস্করণে "লাইভকোড বিল্ডার" নামক একটি নতুন প্রোগ্রামিং ভাষা যুক্ত করা হয়, যা নতুন অবজেক্ট ক্লাস বা "উইজেট" তৈরি করতে সক্ষম। আগে নতুন অবজেক্ট ক্লাসের জন্য সি (প্রোগ্রামিং ভাষা)-এর মতো প্রথাগত ভাষার প্রয়োজন হতো। নতুন এই ভাষাটি সাধারণ xTalk প্যারাডাইম থেকে কিছুটা ভিন্ন এবং এতে ভেরিয়েবল টাইপিংয়ের সুবিধা রয়েছে।

২০১৪ সালে একটি ক্রাউডফান্ডিং ক্যাম্পেইনের মাধ্যমে এইচটিএমএল৫ সমর্থনের জন্য প্রায় ৪ লক্ষ মার্কিন ডলার সংগ্রহ করা হয়। ২০১৫ সালে প্রকাশিত ৮.০ সংস্করণে প্রথমবারের মতো এইচটিএমএল৫-এ অ্যাপ্লিকেশন মোতায়েনের সুবিধা দেওয়া হয়। 

২০২১ সালের ৩১ আগস্ট লাইভকোড ৯.৬.৪ সংস্করণ থেকে এর ওপেন সোর্স সংস্করণ (কমিউনিটি এডিশন) বন্ধ করে দেওয়া হয়। বর্তমানে এটি একটি প্রোপরাইটারি বা মালিকানাধীন সফটওয়্যার হিসেবে কাজ করছে।

## বর্ণনা
লাইভকোড সফটওয়্যারটি এমন সব অ্যাপ্লিকেশন তৈরি করে যা কোনো প্রকার কম্পাইল করার ঝামেলা ছাড়াই বিভিন্ন পরিবেশে চলতে সক্ষম। অর্থাৎ, লাইভকোডের একই কোড একাধিক ডিভাইস এবং প্ল্যাটফর্মে ব্যবহার করা যায়। এতে 'ট্রান্সক্রিপ্ট' নামক একটি উচ্চ-স্তরের এবং ইংরেজির মতো সহজ প্রোগ্রামিং ভাষা ব্যবহার করা হয়, যা মূলত ডায়নামিকালি টাইপড। ট্রান্সক্রিপ্ট এবং কম্পাইল-মুক্ত কার্যপদ্ধতির কারণে এর কোডগুলো নিজেই নিজের বর্ণনা দেয়, ফলে সাধারণ প্রোগ্রামারদের জন্যও এটি বোঝা খুব সহজ। উদাহরণস্বরূপ, যদি সিস্টেম ঘড়িতে সকাল ৯:০০:০০ বাজার সময় নিচের স্ক্রিপ্টটি চালানো হয়:


```applescript
repeat ten times
    put "Hello world at" && the long time & return after field 1
    wait 1 second
  end repeat
```


তখন প্রথম টেক্সট ফিল্ডে (যাকে "field 1" হিসেবে চিহ্নিত করা হয়েছে) ১০টি লাইন এভাবে যুক্ত হবে:

 Hello world at 9:00:00 AM
 Hello world at 9:00:01 AM
 Hello world at 9:00:02 AM
 ...

**বিশেষ দ্রষ্টব্য:**
*  (এবং এর সাথে যুক্ত ) একটি কন্ট্রোল স্ট্রাকচার।
*  একটি কমান্ড।
*  একটি ফাংশন যা সিস্টেমের সময় প্রদর্শন করে।
*  একটি কনস্ট্যান্ট যা মূলত লাইনব্রেক (ASCII character 10) হিসেবে কাজ করে।
*  একটি কিওয়ার্ড যা "চাঙ্কিং" সিস্টেমের সাথে জড়িত; এটি xTalk ভাষাগুলোর একটি বিশেষ বৈশিষ্ট্য।
*  একটি অবজেক্ট রেফারেন্স।

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

### উদাহরণ

* কোনো ওয়েব পেজের সোর্স কোড একটি ভেরিয়েবলে লোড করতে মাত্র এক লাইন কোড লাগে:

```applescript
put url "http://www.wikipedia.org" into MyVariable
```


* এফটিপি সার্ভারে ফাইল আপলোড করার সিনট্যাক্সও প্রায় একই রকম:

```applescript
put url "binfile:picture.jpg" into url "ftp://john:passwd@ftp.example.net:2121/picture.jpg"
```


### গভীরতা
লাইভকোডে প্রায় ২,৯৫০টি বিল্ট-ইন শব্দ এবং কিওয়ার্ড রয়েছে। তবে সি বা অন্যান্য লো-লেভেল ভাষায় লেখা এক্সটার্নাল লাইব্রেরির মাধ্যমে এর পরিধি আরও বাড়ানো সম্ভব।

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

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

## সামঞ্জস্যতা

কিছু সংস্করণে আইওএস এবং অ্যান্ড্রয়েড টার্গেট করার সুবিধাও পাওয়া যায়।

**বিশেষ দ্রষ্টব্য: ৪.৫.এক্স থেকে ৬.এক্স সংস্করণের জন্য লিনাক্সের প্রয়োজনীয় শর্তসমূহ:**
* ৩২-বিট ইনস্টলেশন অথবা ৩২-বিট সামঞ্জস্যপূর্ণ লেয়ারসহ ৬৪-বিট লিনাক্স ডিস্ট্রিবিউশন
* ২.৪.এক্স বা তার পরবর্তী কার্নেল
* স্থানীয়ভাবে ২৪-বিট ডিসপ্লেতে চলমান X11R5 সক্ষম Xserver
* glibc 2.3.2 বা তার পরবর্তী সংস্করণ
* gtk/gdk/glib (ঐচ্ছিক – নেটিভ থিম সাপোর্টের জন্য প্রয়োজনীয়)
* pango/xft (ঐচ্ছিক – পিডিএফ প্রিন্টিং, অ্যান্টি-অ্যালিয়াসড টেক্সট এবং ইউনিকোড ফন্ট সাপোর্টের জন্য প্রয়োজনীয়)
* lcms (ঐচ্ছিক – জেপিইজি এবং পিএনজি ফাইলে কালার প্রোফাইল সাপোর্টের জন্য প্রয়োজনীয়)
* gksu (ঐচ্ছিক – এলিভেট প্রসেস সাপোর্টের জন্য প্রয়োজনীয়)

## তথ্যসূত্র

## গ্রন্থপঞ্জি

* লাভিয়েরি, এডওয়ার্ড। লাইভকোড মোবাইল ডেভেলপমেন্ট হটশট (LiveCode Mobile Development HOTSHOT)
* হোলগেট, কলিন। লাইভকোড মোবাইল ডেভেলপমেন্ট বিগিনার্স গাইড
* শোনউইল, মার্ক। প্রোগ্রামিং লাইভকোড ফর দ্য রিয়েল স্টার্টার
* শেফার, ড্যান। *রেভোলিউশন: সফটওয়্যার অ্যাট দ্য স্পিড অফ থট, ভলিউম ১* (রানটাইম রেভোলিউশন লিমিটেড, ২০০৩)
* ওয়াং, ওয়ালেস। বিগিনিং প্রোগ্রামিং ফর ডামিস, ৪র্থ সংস্করণ

## বহিঃসংযোগ
* দাপ্তরিক ওয়েবসাইট

বিষয়শ্রেণী:ক্রস-প্ল্যাটফর্ম সফটওয়্যার
বিষয়শ্রেণী:সাবেক উন্মুক্ত উৎস বা মুক্ত সফটওয়্যার
বিষয়শ্রেণী:ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট
বিষয়শ্রেণী:কম্পিউটিং প্ল্যাটফর্ম
বিষয়শ্রেণী:প্রোগ্রামিং ভাষা
বিষয়শ্রেণী:২০০১-এ তৈরি প্রোগ্রামিং ভাষা
বিষয়শ্রেণী:২০০১-এর সফটওয়্যার
বিষয়শ্রেণী:স্ক্রিপ্টিং ভাষা