Полиглот програмчлал

polyglot ['pɔliglɔt]
speaking or using many languages, multilingual
—New Oxford American Dictionary

Полиглот програмчлал гэдэг нь олон хэлийг нэг дор хэрэглэх юм. Та өөрийн хийсэн нэг төслийг жишээ болгоод хэдэн хэл ашигласнаа хэл дээ. Нэг л хэл ашиглсан байна уу? Би таая л даа, Жава л биз дээ. Биш үү, тэгвэл .NET байх? Бас л биш үү? За яахав PHP юм болов уу? Таагаагүй бол бууж өглөө, коммэнт дээр ямар ямар хэл байсныг бичээрэй. Ганцхан хэл ашиглаад програм бичдэг цаг аль эрт улиран өнгөрсөн гэдэгтэй санал нэг байгаа байх. Дор хаяж л SQL хэл ашиглаж өгөгдлийн сантайгаа харьцаж байгаа биз. Вэб апликэшн хийдэг бол HTML, Javascript, CSS-ийг ашиглаж л таараа. Ингэхээр програм бичигчид өдөр тутамдаа полиглот програмчлал хийдэг байхнээ. Олон янзын юм хэрэглээд тэр бүгдийг сурах, хооронд нь холбох гэж яршиг түвэг гэх хүн байх нь мэдээж. Тэр ч үнэн л дээ, гэхдээ буруу ашиглавал.

Скрипт хэлнүүдийг том төсөл хийхэд тохиромжгүй, удаан ажилладаг гэх шүүмжлэл байдаг. Тухайлбал Python, Ruby гэх мэт. Гэтэл эдгээр динамик хэлнүүдийн уян хатан чанар үнэд орох тохиолдол бишгүй. Ийм ч учраас JRuby, Jython, Haskell.net гэх мэтийг хэрэглэх болсон байдаг. Erlang, Haskell зэрэг functional хэлнүүд дээр concurrency буюу олон үйлдлийг зэрэг хийх, бие биеээс хамааралгүй логик голдрилуудыг загварчлах нь маш амарханаас гадна, сүүлийн үеийн технологи болох multicore -уудын бүрэн үр ашгийг үзэж чаддаг. Гол нь ямар зорилгод аль хэлийг ашиглахаа зөв сонгох нь чухал. Ruby хэл бол уян хатан, хэрэглэхэд амархан байдаг динамик хэл. Erlang бол мэссэж дээр тулгуурласан олон үйлдэл зэрэг хийхэд тохиромжтой хэл гэх мэтээр хэлнүүдийн давуу болон сул талыг тооцох хэрэгтэй. Энд олон өөр хэл хэрэглэхийн хажуугаар өөр өөр хандлагууд(Обект хандлагат, Функционал, Динамик г.м) хэрэглэгдэж байгаа нь ойлгомжтой.

Тухайн тохиолдол болгож асар өндөр хурдтай мэссэж(гүйлгээ ч юмуу, юу ч байж болно) солилцдог вэб апликэшн хийх болжээ гэе. Вэб апликэшнийг хурдан хугацаанд босгохын тулд Rails(Ruby on Rails) фрэймворкыг ашиглаж нүүрэн талаа хийгээд, Erlang дээр ар тал буюу мэссэж боловсруулах болон дамжуулах хөдөлгүүрийг хийж болно.

Дараа Erlang -ийн тухай бичих болно. Одоогоор "Programming Erlang: Software for a Concurrent World" номыг уншиж байна.