Šiuolaikiniai kūrėjai vis dažniau kreipiasi į retas programavimo kalbas, kad patenkintų konkrečius projektų poreikius. Panagrinėkime, kada ir kaip juos naudoti.

Kodėl svarbios retos programavimo kalbos

Šiandien populiariausios programavimo kalbos yra JavaScript (naudoja 25,2 mln. kūrėjų), Python (18,2 mln.) ir Java (17,7 mln.). Tačiau kartais projektui reikalingas unikalus kodas, kurio negalima parašyti naudojant populiariausias technologijas. Žemiau pateikiamos retos programavimo kalbos, apie kurias daugelis kūrėjų niekada negirdėjo, tačiau kurios gali žymiai paskatinti plėtrą.

COBOL

COBOL (Common Business Oriented Language) 1959 m. sukūrė Grace Hopper, dar žinoma kaip „COBOL močiutė“. Iš pradžių jis buvo imperatyvus ir procedūrinis, tačiau nuo 2002 m. jis tapo objektiniu. Jis buvo plačiai naudojamas JAV gynybos departamento dėka, o vėliau išpopuliarėjo finansų kompiuterijos srityje.

„COBOL naudojimas suluošina protą, todėl jo mokymas turėtų būti laikomas nusikaltimu“. – Edsgeris Dijkstra

Dijkstra buvo šiek tiek teisingas – COBOL iš tikrųjų turi sudėtingą ir žodingą sintaksę, palyginti su mažiau „žodinėmis“ kalbomis. Tačiau jis puikiai tinka užduotims, kurių kitos technologijos negali atlikti. COBOL atlieka dešimtainius skaičiavimus naudodamas fiksuoto kablelio aritmetiką, o ne slankiojo kablelio, vengdamas sudėtingų apvalinimo taisyklių, kaip „Java“, ir pagreitindamas operacijas. Be to, kodas nuosekliai veikia tiek 8 bitų, tiek 64 bitų architektūrose, nes COBOL gali saugoti įvairių tipų kintamuosius, nepaisant kompiliatoriaus ir sistemos architektūros.

Štai kodėl COBOL yra nepakeičiamas finansinėse operacijose. JAV bankai ir sveikatos priežiūros sistema jį naudoja terminalų sandoriams, akcijų prekybai ir gydytojų atlyginimams.

Štai paprasto COBOL kodo pavyzdys:

IDENTIFICATION DIVISION.
PROGRAM-ID. IDSAMPLE.
ENVIRONMENT DIVISION.
PROCEDURE DIVISION.
    DISPLAY 'HELLO WORLD'.
    STOP RUN.

Lua

„Lua“ yra scenarijų kalba, kurios šaltinio kodas yra C. Ji yra arčiausiai „JavaScript“ su panašiu prototipu pagrįstu objektiniu modeliu, tačiau yra galingesnė ir lankstesnė. Masyvai, struktūros, rinkiniai ir kiti sudėtiniai vartotojo apibrėžti duomenų tipai įgyvendinami naudojant lenteles, o OOP mechanizmai – per meta lenteles.

Iš pradžių sukurta naftos bendrovei „Petrobras“, „Lua“ dabar naudojama kuriant masinės rinkos programinę įrangą, pvz., „Adobe Lightroom“ grafinę sąsają ir žaidimus. Naudodami Lua galite lengvai užkoduoti NPC (nežaidžiamų simbolių) elgesį neperrašydami variklio. Tokie žaidimai kaip Garry’s Mod, Roblox, Stalker ir net World of Warcraft naudoja Lua.

Štai „Stalker“ kodo pavyzdys:

local members = {}
local moved = {}
zone = nil
-------------------------------------------------------------------------
function add_member (npc)
    -- check if it's our guy
    local ini = npc:spawn_ini ()
    if ini == nil or ini:section_exist ("escape_raid") == false then 
       return 
    end
    -- if already exists, go away
    for a = 1, table.getn (members), 1 do
        if members(a) == npc.id then 
           return 
        end
    end    
    -- add intruder to blacklist
    table.insert (members, npc.id)
    printf ("Stalker %s is added to list", npc:name ())
    -- remove from the living world
    this.switch_offline (npc.id)    
end

F#

F Sharp yra kelių paradigmų kalba, palaikanti procedūrinį, objektinį ir funkcinį programavimą. Sukurta Microsoft Research, ji buvo integruota į Visual Studio 2010 ir vėlesnes versijas.

F Sharp turi glaustą kodą su tipo išvada. Jame pagrindinis dėmesys skiriamas duomenims, lygiagrečiam I/O ir lygiagrečiam skaičiavimui, dažnai naudojamiems moksliniams tyrimams, duomenų analizei, mašininiam mokymuisi ir žiniatinklio kūrimui. Jis gerai integruojamas su .NET platformomis.

Nors ir reta ir nepopuliari, F# gali būti itin naudinga atliekant specifines užduotis, susijusias su dideliais duomenimis ir ML.

Štai kodo pavyzdys:

module Integers =
   let sampleInteger = 176
   /// Do some arithmetic starting with the first integer
   let sampleInteger2 = (sampleInteger/4 + 5 - 7) * 4
   /// A list of the numbers from 0 to 99
   let sampleNumbers = ( 0 .. 99 )
   /// A list of all tuples containing all the numbers from 0 to 99 and their squares
   let sampleTableOfSquares = ( for i in 0 .. 99 -> (i, i*i) )
   // The next line prints a list that includes tuples, using %A for generic printing
   printfn "The table of squares from 0 to 99 is:\n%A" sampleTableOfSquares

R

R buvo sukurtas specialiai statistinei duomenų analizei. Jis buvo sukurtas Oklando universitete kaip nemokama alternatyva komercinei kalbai S.

R populiarumas auga, jį naudoja daugelis didelių kompanijų, tokių kaip „Amazon“, „Deloitte“, „Accenture“ ir „Google“. Tačiau jo sintaksė skiriasi nuo kitų kalbų, todėl pradedantiesiems yra sudėtinga. R yra visų pirma statistinė technologija, turinti duomenų lentelių sujungimo, interaktyvaus grafiko kūrimo ir statistinio testavimo funkcijas. Jis taip pat gali būti naudojamas rašant žiniatinklio programas naudojant Shiny biblioteką.

Štai kodo pavyzdys, kuris dvejetainį kodą konvertuoja į dešimtainį:

# Program to convert decimal
# number into binary number
# using recursive function

convert_to_binary <- function(n) {
    if(n > 1) {
        convert_to_binary(as.integer(n/2))
    }
    cat(n %% 2)
}

Clojure

„Clojure“ yra šiuolaikiškas, dinamiškas ir funkcionalus „Lisp“ kalbos dialektas „Java“ platformoje, sukurtas Rich Hickey 2007 m. Jis sukurtas kaip bendrosios paskirties kalba, apjungianti scenarijų kūrimo lengvumą ir tvirtą daugiagiečio programavimo infrastruktūrą. Clojure yra žinomas dėl savo interaktyvios REPL aplinkos ir stiprios lygiagretaus programavimo palaikymo.

Viena iš pagrindinių Clojure savybių yra nekintamumas ir funkcinio programavimo akcentavimas. Ji taip pat suteikia prieigą prie „Java“ sistemų ir gali kompiliuoti į „Java“ baitinį kodą ir „JavaScript“, todėl tai naudinga tiek serverio, tiek kliento pusės kūrimui.

„Clojure“ naudoja didieji bankai, tokie kaip „Raiffeisen“, ir tokios įmonės kaip „Netflix“, „Amazon“ ir „Apple“. Pavyzdžiui, „Apple“ naudoja „Clojure“ duomenims rinkti ir statistikai.

Štai „Hello World“ pavyzdys Clojure:

(ns hello
  (:gen-class
   :methods ((sayHi () String))))

(defn -sayHi (this)
  (println "hello world"))

Haskell

Haskell yra dar viena grynai funkcinė programavimo kalba. Pavadintas Haskell Curry, logiko ir tipo teoretiko vardu, jis pasižymi stipriu spausdinimu ir palaiko tingų vertinimą.

Haskell yra žinomas dėl savo paprastos ir elegantiškos sintaksės, taip pat greičio ir našumo. Jis naudojamas investicinėje bankininkystėje ir kuriant sistemos produktus bei programinę įrangą. Didžiosios įmonės, tokios kaip Meta, IBM, Twitter ir Bank of America, naudoja Haskell. Pavyzdžiui, „Facebook“* naudoja Haskell kovai su šiukšlėmis.

Štai „Hello World“ pavyzdys Haskell:

main = putStrLn "Hello World!"

Eliksyras

Elixir yra bendrosios paskirties programavimo kalba, kuri naudoja dinaminį duomenų tipavimą ir funkcines programavimo paradigmas. Jis veikia Erlang virtualioje mašinoje, žinomoje dėl savo gebėjimo paleisti paskirstytas ir gedimams atsparias sistemas su maža delsa.

Elixir palaiko metaprogramavimą, leidžiantį kūrėjams rašyti kodą, kuris generuoja kitą kodą, ir lygiagretųjį programavimą. Jame yra galingi integruoti įrankiai, skirti programinei įrangai išbandyti ir derinti.

Erlang/OTP platformos dėka Elixir plačiai naudojamas kuriant žiniatinklius, ypač su Phoenix Framework, ir kuriant paskirstytas ir gedimams atsparias sistemas. Tai gali būti sudėtinga kūrėjams, nepažįstantiems funkcinių programavimo paradigmų, tačiau privalumai yra efektyvumas, mastelio keitimas ir patikimumas.

Štai kodo pavyzdys, kuris kelis kartus dubliuoja eilutes:

"AAA" = String.duplicate("A", 3)
"HELLO HELLO " = String.duplicate("HELLO ", 2)

Yra daug nišinių ir retų programavimo kalbų. Net patyrę kūrėjai galėjo apie juos negirdėti. Tačiau tokios kalbos padeda išspręsti konkrečias užduotis, kai populiarūs sprendimai yra bejėgiai. Komentaruose pasidalykite, kokias retas kalbas vartojote ir kaip jos padėjo plėtojant projektą.

Jei tekste radote klaidą, siųskite pranešimą autoriui pažymėdami klaidą ir paspausdami Ctrl-Enter.



Source link

By admin

Draugai: - Marketingo paslaugos - Teisinės konsultacijos - Skaidrių skenavimas - Fotofilmų kūrimas - Karščiausios naujienos - Ultragarsinis tyrimas - Saulius Narbutas - Įvaizdžio kūrimas - Veidoskaita - Nuotekų valymo įrenginiai -  Padelio treniruotės - Pranešimai spaudai -