Carson a tha Go dona dha luchd-prògramaidh neo-ghlic

Chaidh an artaigil a sgrìobhadh mar fhreagairt do artaigil a chaidh fhoillseachadh roimhe artaigil antipodean.

Carson a tha Go dona dha luchd-prògramaidh neo-ghlic

Thairis air an dà bhliadhna a bharrachd a dh’ fhalbh tha mi air a bhith a’ cleachdadh Go gus frithealaiche RADIUS sònraichte a chuir an gnìomh le siostam bileachaidh leasaichte. Air an t-slighe, tha mi ag ionnsachadh iom-fhillteachd a’ chànain fhèin. Tha na prògraman fhèin gu math sìmplidh agus chan e adhbhar an artaigil seo, ach tha an eòlas air cleachdadh Go fhèin airidh air beagan fhaclan mar dhìon. Tha Go a’ fàs mar chànan a tha a’ sìor fhàs àbhaisteach airson còd trom, scalable. Chaidh an cànan a chruthachadh le Google, far a bheilear ga chleachdadh gu gnìomhach. Gu h-ìosal, tha mi gu h-onarach a’ smaoineachadh gu bheil dealbhadh a’ chànain Go dona dha prògramadairean UNintelligent.

Dealbhaichte airson luchd-prògramaidh lag?

Bidh an lag a’ bruidhinn air duilgheadasan. An còmhradh làidir mu bheachdan agus aislingean ...

Tha Go gu math furasta ionnsachadh, cho furasta is gun urrainn dhut an còd a leughadh gun trèanadh sam bith idir. Tha am feart seo den chànan air a chleachdadh ann am mòran chompanaidhean cruinne nuair a thèid an còd a leughadh còmhla ri eòlaichean neo-bunaiteach (manaidsearan, luchd-ceannach, msaa). Tha seo gu math goireasach airson dòighean-obrach leithid Leasachadh air a stiùireadh le Dealbhadh.
Bidh eadhon luchd-prògramaidh ùr a 'tòiseachadh a' toirt a-mach còd gu math reusanta an dèidh seachdain no dhà. ’S e an leabhar às an do dh’ ionnsaich mi “Go Programming” (le Mark Summerfield). Tha an leabhar fìor mhath, tha e a’ suathadh air iomadh nuances a’ chànain. Às deidh cànanan neo-riatanach iom-fhillte leithid Java, PHP, tha an dìth draoidheachd ag ùrachadh. Ach nas luaithe no nas fhaide air adhart, tha mòran de luchd-prògramaidh cuibhrichte am beachd seann dhòighean a chleachdadh ann an raon ùr. A bheil seo dha-rìribh riatanach?

Chruthaich Rob Pike (prìomh ideòlaiche a’ chànain) an cànan Go mar chànan tionnsgalach a tha furasta a thuigsinn agus èifeachdach a chleachdadh. Tha an cànan air a dhealbhadh airson cinneasachd as motha ann an sgiobaidhean mòra agus chan eil teagamh sam bith mu dheidhinn. Bidh mòran de luchd-prògramaidh ùr a 'gearan gu bheil mòran fheartan ann a tha iad a dhìth. Bha am miann seo airson sìmplidheachd na cho-dhùnadh mothachail le luchd-dealbhaidh a’ chànain, agus gus làn thuigse fhaighinn air carson a bha feum air, feumaidh sinn tuigse fhaighinn air brosnachadh an luchd-leasachaidh agus na bha iad a’ feuchainn ri choileanadh ann an Go.

Mar sin carson a chaidh a dhèanamh cho sìmplidh? Seo cuòt no dhà bho Rob Pike:

Is e am prìomh phuing an seo nach e luchd-rannsachaidh a th’ anns na prògraman againn. Tha iad, mar riaghailt, gu math òg, a’ tighinn thugainn às deidh dhaibh ionnsachadh, is dòcha gun do rinn iad sgrùdadh air Java, no C / C ++, no Python. Chan urrainn dhaibh cànan math a thuigsinn, ach aig an aon àm tha sinn airson gun cruthaich iad bathar-bog math. Sin as coireach gum bu chòir an cànan a bhith furasta a thuigsinn agus ionnsachadh.

Bu chòir dha a bhith eòlach, gu ìre mhòr coltach ri C. Bidh prògramadairean a tha ag obair aig Google a’ tòiseachadh air an dreuchdan tràth agus mar as trice bidh iad eòlach air cànanan modhan-obrach, gu sònraichte an teaghlach C. Tha an riatanas airson cinneasachd luath ann an cànan prògramadh ùr a’ ciallachadh nach bu chòir don chànan a bhith ro radaigeach.

Faclan glic, nach eil?

Artifacts of Simplicity

Tha sìmplidheachd na staid riatanach airson bòidhchead. Lev Tolstoy.

Is e a bhith ga chumail sìmplidh aon de na h-amasan as cudromaiche ann an dealbhadh sam bith. Mar a tha fios agad, chan e pròiseact foirfe a th’ ann am pròiseact far nach eil dad ri chur ris, ach fear às nach eil dad ri thoirt air falbh. Tha mòran den bheachd gu bheil feum air inneal iom-fhillte gus fuasgladh fhaighinn air (no eadhon a chuir an cèill) duilgheadasan iom-fhillte. Ge-tà, chan eil. Gabhamaid an cànan PERL mar eisimpleir. Bha ideòlaichean cànain den bheachd gum bu chòir co-dhiù trì dòighean eadar-dhealaichte a bhith aig prògramadair gus aon duilgheadas fhuasgladh. Ghabh na h-ideòlaichean cànain Go slighe eile; cho-dhùin iad gu robh aon dòigh, ach dòigh fìor mhath, gu leòr airson an amas a choileanadh. Tha bunait làidir aig an dòigh-obrach seo: tha an aon dòigh nas fhasa ionnsachadh agus nas duilghe a dhìochuimhneachadh.

Bidh mòran de luchd-imrich a’ gearain nach eil tarraingean eireachdail sa chànan. Tha, tha seo fìor, ach 's e seo aon de na prìomh bhuannachdan a tha aig a' chànan. Tha an ìre as lugha de dhraoidheachd sa chànan - mar sin chan eil feum air eòlas domhainn gus am prògram a leughadh. A thaobh briathrachas a’ chòd, chan eil seo na dhuilgheadas idir. Bidh prògram Golang air a dheagh sgrìobhadh a’ leughadh gu dìreach, le glè bheag de structar no gun structar. A bharrachd air an sin, tha astar leughaidh prògram co-dhiù òrdugh meudachd nas motha na astar sgrìobhaidh. Ma tha thu den bheachd gu bheil cruth èideadh aig a’ chòd gu lèir (air a dhèanamh a’ cleachdadh an àithne gofmt a chaidh a thogail a-steach), an uairsin chan eil leughadh beagan loidhnichean a bharrachd na dhuilgheadas idir.

Chan eil e gu math brosnachail

Chan eil ealain a 'gabhail ris nuair a tha a saorsa air a chuingealachadh. Chan e cruinneas a tha an urra ris.

Air sgàth a’ mhiann airson sìmplidheachd, chan eil togalaichean aig Go a tha ann an cànanan eile air am faicinn mar rudeigin nàdarra le daoine cleachdte riutha. An toiseach faodaidh e a bhith beagan mì-ghoireasach, ach an uairsin bidh thu a 'mothachadh gu bheil am prògram tòrr nas fhasa agus nas neo-chinnteach a leughadh.

Mar eisimpleir, bhiodh goireas tòcan a leughas stdin no faidhle bho argamaidean loidhne-àithne a’ coimhead mar seo:

package main

import (
    "bufio"
    "flag"
    "fmt"
    "log"
    "os"
)

func main() {

    flag.Parse()

    scanner := newScanner(flag.Args())

    var text string
    for scanner.Scan() {
        text += scanner.Text()
    }

    if err := scanner.Err(); err != nil {
        log.Fatal(err)
    }

    fmt.Println(text)
}

func newScanner(flags []string) *bufio.Scanner {
    if len(flags) == 0 {
        return bufio.NewScanner(os.Stdin)
    }

    file, err := os.Open(flags[0])

    if err != nil {
        log.Fatal(err)
    }

    return bufio.NewScanner(file)
}

Chan eil am fuasgladh air an aon dhuilgheadas ann an D, ged a tha e a’ coimhead beagan nas giorra, nas fhasa a leughadh

import std.stdio, std.array, std.conv;

void main(string[] args)
{
    try
    {
        auto source = args.length > 1 ? File(args[1], "r") : stdin;
        auto text   = source.byLine.join.to!(string);

        writeln(text);
    }
    catch (Exception ex)
    {
        writeln(ex.msg);
    }
}

Ifrinn de chopaigeadh

Bidh an duine a 'giùlan ifrinn taobh a-staigh e fhèin. Màrtainn Luther.

Bidh luchd-tòiseachaidh an-còmhnaidh a’ gearan mu dheidhinn Go a thaobh dìth gnè. Gus fuasgladh fhaighinn air a 'chùis seo, bidh a' mhòr-chuid dhiubh a 'cleachdadh lethbhreac còd dìreach. Mar eisimpleir, gnìomh airson liosta de shlànaichean a chruinneachadh, tha an leithid de phroifeiseantaich a’ creidsinn nach urrainnear an gnìomh a chuir an gnìomh ann an dòigh sam bith eile seach le bhith a’ dèanamh lethbhreac sìmplidh airson gach seòrsa dàta.

package main

import "fmt"

func int64Sum(list []int64) (uint64) {
    var result int64 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

func int32Sum(list []int32) (uint64) {
    var result int32 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

func main() {

    list32 := []int32{1, 2, 3, 4, 5}
    list64 := []int64{1, 2, 3, 4, 5}

    fmt.Println(int32Sum(list32))
    fmt.Println(int64Sum(list64))
}

Tha dòighean gu leòr aig a’ chànan airson a leithid de thogail a chur an gnìomh. Mar eisimpleir, bhiodh prògramadh coitcheann math.

package main

import "fmt"

func Eval32(list []int32, fn func(a, b int32)int32) int32 {
    var res int32
    for _, val := range list {
        res = fn(res, val)
    }
    return res
}

func int32Add(a, b int32) int32 {
    return a + b
}

func int32Sub(a, b int32) int32 {
    return a + b
}

func Eval64(list []int64, fn func(a, b int64)int64) int64 {
    var res int64
    for _, val := range list {
        res = fn(res, val)
    }
    return res
}

func int64Add(a, b int64) int64 {
    return a + b
}

func int64Sub(a, b int64) int64 {
    return a - b
}

func main() {

    list32 := []int32{1, 2, 3, 4, 5}
    list64 := []int64{1, 2, 3, 4, 5}

    fmt.Println(Eval32(list32, int32Add))
    fmt.Println(Eval64(list64, int64Add))
    fmt.Println(Eval64(list64, int64Sub))
}

Agus, ged a thionndaidh an còd againn gu bhith beagan nas fhaide na a’ chùis roimhe, tha e air fàs coitcheann. Mar sin, cha bhith e duilich dhuinn a h-uile gnìomh àireamhachd a chuir an gnìomh.

Canaidh mòran gu bheil prògram ann an D a’ coimhead gu math nas giorra, agus bidh iad ceart.

import std.stdio;
import std.algorithm;

void main(string[] args)
{
    [1, 2, 3, 4, 5].reduce!((a, b) => a + b).writeln;
}

Ach, chan eil e ach nas giorra, ach chan eil e nas ceart, leis gu bheil buileachadh D gu tur a’ seachnadh duilgheadas làimhseachadh mhearachdan.

Ann am fìor bheatha, mar a tha iom-fhillteachd loidsig a ‘dol am meud, bidh am beàrn a’ caolachadh gu luath. Bidh a’ bheàrn a’ dùnadh eadhon nas luaithe nuair a dh’ fheumas tu gnìomh a dhèanamh nach gabh a choileanadh a’ cleachdadh oibrichean cànain àbhaisteach.

A thaobh seasmhachd, leudachaidh, agus so-leughaidh, nam bheachd-sa, tha cànan Go a’ buannachadh, ged a chailleas i ann an cainnt.

Tha prògramadh coitcheann ann an cuid de chùisean a’ toirt dhuinn buannachdan nach gabh àicheadh. Tha seo air a nochdadh gu soilleir leis a’ phacaid seòrsachaidh. Mar sin, airson liosta sam bith a sheòrsachadh, feumaidh sinn dìreach an eadar-aghaidh sort.Interface a chuir an gnìomh.

import "sort"

type Names []string

func (ns Names) Len() int {
    return len(ns)
}

func (ns Names) Less(i, j int) bool {
    return ns[i] < ns[j]
}

func (ns Names) Swap(i, j int) {
    ns[i], ns[j] = ns[j], ns[i]
}

func main() {
    names := Names{"London", "Berlin", "Rim"}
    sort.Sort(names)
}

Ma ghabhas tu ri pròiseact stòr fosgailte sam bith agus ma ruitheas tu an grep “interface{}” -R command, chì thu cho tric sa bhios eadar-aghaidh meallta air a chleachdadh. Canaidh companaich dlùth-inntinn sa bhad gu bheil seo uile mar thoradh air dìth gnè. Ach, chan eil seo daonnan a 'chùis. Gabhamaid DELPHI mar eisimpleir. A dh 'aindeoin gu bheil na h-aon seòrsaichean coitcheann ann, tha seòrsa sònraichte ann airson obraichean le seòrsachan dàta neo-riaghailteach. Bidh an cànan Go a’ dèanamh an aon rud.

Bho chanain gu gealagan

Agus feumaidh an t-seacaid a bhith a 'freagairt air meud a' chuthach. Stanislav Lec.

Faodaidh mòran de luchd-leantainn fìor a bhith ag ràdh gu bheil dòigh eile aig Go airson gnèitheachas a chruthachadh - meòrachadh. Agus bidh iad ceart ... ach dìreach ann an cùisean ainneamh.

Tha Rob Pike a’ toirt rabhadh dhuinn:

Is e inneal cumhachdach a tha seo a bu chòir a chleachdadh gu faiceallach. Bu chòir a sheachnadh mura h-eil e riatanach.

Tha Wikipedia ag innse na leanas dhuinn:

Tha cnuasachadh a’ toirt iomradh air a’ phròiseas anns am faod prògram sùil a chumail air agus atharrachadh a dhèanamh air a structar agus a ghiùlan fhèin aig àm cur gu bàs. Canar prògramadh meòrachail ris a’ phàtran prògramaidh a tha mar bhunait ri meòrachadh. 'S e seo seòrsa de metaprogramming.

Ach, mar a tha fios agad, feumaidh tu pàigheadh ​​​​airson a h-uile càil. Anns a 'chùis seo tha e:

  • duilgheadas ann a bhith a’ sgrìobhadh phrògraman
  • luaths coileanadh prògram

Mar sin, feumar meòrachadh a chleachdadh gu faiceallach, mar armachd àrd-inbhe. Bidh cleachdadh meòrachaidh gun smaoineachadh a’ leantainn gu prògraman nach gabh leughadh, mearachdan seasmhach agus astar ìosal. Is e dìreach an rud airson prògramadair snob a bhith comasach air a chòd a thaisbeanadh air beulaibh cho-obraichean eile, nas pragmatach agus nas modha.

Bagannan cultarail bho Xi? Chan e, bho ghrunn chànanan!

Còmhla ris an fhortan, tha fiachan air am fàgail aig na h-oighrean cuideachd.

A dh'aindeoin 's gu bheil mòran den bheachd gu bheil an cànan gu tur stèidhichte air dualchas C, chan eil seo fìor. Tha an cànan a’ toirt a-steach mòran thaobhan de na cànanan prògramaidh as fheàrr.

sheantansan

An toiseach, tha co-chòrdadh structaran gràmair stèidhichte air co-chòrdadh cànan C. Ach, bha buaidh mhòr aig cànan DELPHI cuideachd. Mar sin, tha sinn a 'faicinn gu bheil na brathan gun fheum, a tha gu mòr a' lùghdachadh leughadh a 'phrògraim, air an toirt air falbh gu tur. Anns a’ chànan cuideachd tha an gnìomhaiche “:=” a tha dualach don chànan DELPHI. Tha bun-bheachd pacaidean air iasad bho chànanan mar ADA. Tha an dearbhadh mu bhuidhnean nach deach a chleachdadh air iasad bhon chànan PROLOG.

Semantics

Bha na pacaidean stèidhichte air semantics cànan DELPHI. Bidh gach pasgan a’ toirt a-steach dàta agus còd agus tha buidhnean prìobhaideach is poblach ann. Leigidh seo leat an eadar-aghaidh pacaid a lughdachadh chun ìre as ìsle.

Chaidh an gnìomh buileachaidh le modh tiomnaidh a thoirt air iasad bhon chànan DELPHI.

Tiomnadh

Chan ann às aonais adhbhar a tha fealla-dhà ann: chaidh Go a leasachadh fhad ‘s a bha prògram C ga chur ri chèile. Is e aon de neartan a’ chànain an cruinneachadh ultra-luath aice. Chaidh am beachd fhaighinn air iasad bhon chànan DELPHI. Bidh gach pasgan Go a’ freagairt ri modal DELPHI. Chan eil na pacaidean sin air an ath-chruinneachadh ach nuair a tha feum air. Mar sin, às deidh an ath dheasachadh, chan fheum thu am prògram gu lèir a chuir ri chèile, ach dìreach na pacaidean agus na pacaidean atharraichte a tha an urra ris na pacaidean atharraichte sin ath-chruinneachadh (agus eadhon an uairsin, dìreach ma tha eadar-aghaidh a’ phacaid air atharrachadh).

Togalaichean àrd-ìre

Tha mòran de chruthan àrd-ìre eadar-dhealaichte anns a’ chànan nach eil ann an dòigh sam bith co-cheangailte ri cànanan aig ìre ìosal leithid C.

  • Sreathan
  • Clàran hash
  • sliseagan
  • Tha clò-sgrìobhadh lachan air iasad bho chànanan mar RUBY (a tha, gu mì-fhortanach, nach eil mòran a 'tuigsinn no a' cleachdadh gu làn chomas).

Stiùireadh cuimhne

Mar as trice tha riaghladh cuimhne airidh air artaigil air leth. Ma tha ann an cànanan mar C ++, tha smachd gu tur air fhàgail aig an leasaiche, an uairsin ann an cànanan nas fhaide air adhart mar DELPHI, chaidh modal cunntais iomraidh a chleachdadh. Leis an dòigh-obrach seo, cha deach iomraidhean cearcallach a cheadachadh, leis gun deach cruinneachaidhean dìlleachdan a chruthachadh, agus an uairsin tha Go air faighinn a-steach do na cruinneachaidhean sin (mar C #). A bharrachd air an sin, tha an neach-cruinneachaidh sgudail nas èifeachdaiche na a ’mhòr-chuid de bhuileachadh an-dràsta agus faodar a chleachdadh mar-thà airson iomadh gnìomh fìor-ùine. Tha an cànan fhèin ag aithneachadh suidheachaidhean nuair a ghabhas luach airson caochladair a stòradh a thoirt seachad air a’ chruaich. Bidh seo a’ lughdachadh an luchd air a’ mhanaidsear cuimhne agus ag àrdachadh astar a’ phrògraim.

Concurrency agus Concurrency

Chan eilear a’ moladh co-shìnteachd agus farpaiseachd a’ chànain. Chan urrainn do chànan aig ìre ìosal eadhon farpais air astar le Go. Gus a bhith cothromach, is fhiach a bhith mothachail nach deach am modail a chruthachadh le ùghdaran a 'chànain, ach chaidh a thoirt air iasad bho sheann chànan ADA math. Tha an cànan comasach air milleanan de cheanglaichean co-shìnte a ghiullachd a’ cleachdadh a h-uile CPU, fhad ‘s a tha òrdugh meudachd aige le duilgheadasan nach eil cho iom-fhillte le glasan-stad agus suidheachaidhean rèis a tha àbhaisteach airson còd ioma-snàithleach.

Buannachdan a bharrachd

Ma tha e prothaideach, fàsaidh a h-uile duine neo-eisimeileach.

Tha cànan cuideachd a’ toirt dhuinn grunn bhuannachdan gun teagamh:

  • Bidh aon fhaidhle so-ghnìomhaichte às deidh togail a’ phròiseict gu mòr a’ sìmpleachadh cleachdadh thagraidhean.
  • Faodaidh clò-sgrìobhadh statach agus co-dhùnadh seòrsa lùghdachadh mòr a thoirt air an àireamh de mhearachdan sa chòd agad, eadhon às aonais deuchainnean sgrìobhaidh. Tha fios agam air cuid de phrògraman a bhios a 'dèanamh gun a bhith a' sgrìobhadh dheuchainnean idir agus chan eil càileachd a 'chòd aca a' fulang gu mòr.
  • Tar-chruinneachadh gu math sìmplidh agus comas giùlain sàr-mhath den leabharlann àbhaisteach, a tha gu mòr a’ sìmpleachadh leasachadh thagraidhean tar-àrd-ùrlar.
  • Tha abairtean cunbhalach RE2 sàbhailte ann an snàithlean agus tha amannan cur gu bàs ro-innseach aca.
  • Leabharlann àbhaisteach cumhachdach a leigeas leis a’ mhòr-chuid de phròiseactan a dhèanamh às aonais frèaman treas-phàrtaidh.
  • Tha an cànan cumhachdach gu leòr airson fòcas a chuir air an duilgheadas seach mar a dh’ fhuasglas i i, ach aig ìre ìosal gu leòr gus an tèid an duilgheadas fhuasgladh gu h-èifeachdach.
  • Anns an t-siostam Go eco mu thràth tha innealan leasaichte a-mach às a’ bhogsa airson a h-uile turas: deuchainnean, sgrìobhainnean, riaghladh pacaid, loidhnichean cumhachdach, gineadh còd, lorgaire suidheachadh cinnidh, msaa.
  • Thug dreach Go 1.11 a-steach riaghladh eisimeileachd semantach a chaidh a thogail a-steach, air a thogail a bharrachd air aoigheachd VCS mòr-chòrdte. Bidh a h-uile inneal a tha a’ dèanamh suas an eag-shiostam Go a’ cleachdadh nan seirbheisean sin gus còd a luchdachadh sìos, a thogail agus a chuir a-steach bhuapa ann an aon thuit swoop. Agus tha sin sgoinneil. Nuair a thàinig dreach 1.11, chaidh an duilgheadas le tionndadh pacaid fhuasgladh gu tur cuideachd.
  • Leis gur e prìomh bheachd a’ chànain draoidheachd a lughdachadh, tha an cànan a’ brosnachadh luchd-leasachaidh gus làimhseachadh mhearachdan a dhèanamh gu follaiseach. Agus tha seo ceart, oir air dhòigh eile, bidh e dìreach a 'dìochuimhneachadh mu làimhseachadh mhearachdan gu tur. Is e rud eile gu bheil a’ mhòr-chuid de luchd-leasachaidh a’ seachnadh làimhseachadh mhearachdan a dh’aona ghnothach, agus b’ fheàrr leotha an àite a bhith gan giullachd dìreach am mearachd a chuir air adhart.
  • Chan eil an cànan a’ cur an gnìomh modh-obrach clasaigeach OOP, oir anns a chruth fhìor chan eil virtuality ann an Go. Ach, chan eil seo na dhuilgheadas nuair a bhios tu a 'cleachdadh eadar-aghaidh. Tha neo-làthaireachd OOP gu mòr a’ lùghdachadh a’ chnap-starra do luchd-tòiseachaidh.

Sìmplidh airson buannachd coimhearsnachd

Tha e furasta a dhèanamh iom-fhillte, duilich a dhèanamh nas sìmplidhe.

Chaidh Go a dhealbhadh airson a bhith sìmplidh agus bidh e a’ soirbheachadh aig an amas sin. Chaidh a sgrìobhadh airson luchd-prògramaidh snasail a thuigeas na buannachdan a tha an lùib obair-sgioba agus a tha sgìth de chaochlaideachd gun chrìoch chànanan aig ìre Iomairt. Le seata coimeasach beag de structaran syntactic san arsenal aige, cha mhòr nach eil e fo ùmhlachd atharrachaidhean thar ùine, agus mar sin tha tòrr ùine aig luchd-leasachaidh airson leasachadh, agus chan ann airson a bhith a’ sgrùdadh innleachdan cànain gun chrìoch.

Bidh companaidhean cuideachd a 'faighinn grunn bhuannachdan: tha cnap-starra inntrigidh ìosal a' toirt cothrom dhaibh eòlaiche a lorg gu luath, agus tha neo-chomasachd a 'chànain a' toirt cothrom dhaibh an aon chòd a chleachdadh eadhon an dèidh 10 bliadhna.

co-dhùnadh

Cha do rinn meud eanchainn mòr a-riamh ailbhean na bhuannaiche Duais Nobel.

Dha na prògramadairean sin aig a bheil ego pearsanta air thoiseach air spiorad sgioba, a bharrachd air teòirichean a tha dèidheil air dùbhlain acadaimigeach agus “fèin-leasachadh” gun chrìoch, tha an cànan gu math dona, leis gur e cànan artisanal adhbhar coitcheann a th’ ann nach leig leat faighinn tlachd esthetigeach bho thoradh na h-obrach agad agus seall thu fhèin proifeasanta air beulaibh cho-obraichean (fhad ‘s a bhios sinn a’ tomhas fiosrachadh a rèir nan slatan-tomhais sin, agus chan ann le IQ). Coltach ris a h-uile càil sa bheatha, tha e na chùis air prìomhachasan pearsanta. Coltach ris a h-uile ùr-ghnàthachadh luachmhor, tha an cànan mar-thà air a thighinn air slighe fhada bho bhith a’ dol às àicheadh ​​uile-choitcheann gu gabhail ris gu mòr. Tha an cànan innleachdach na sìmplidheachd, agus, mar a tha fios agad, tha a h-uile dad innleachdach sìmplidh!

Source: www.habr.com

Cuir beachd ann