Go (програмски језик) — разлика између измена

Садржај обрисан Садржај додат
Нема описа измене
ознаке: мобилна измена мобилно веб-уређивање
→‎Дизајн језика: + дизајн језика
ознаке: мобилна измена мобилно веб-уређивање
Ред 47:
 
* Синтакса и окружење које прихвата идеје које се чешће срећу у [[динамички програмски језик|динамичким језицима]].
** Опционална скраћена декларација и иницијализација променљивих кроз закључивање типова података (<code>i := 0</code> уместо <code>int i = 0;</code>).
** Брза компилација програма у извршну датотеку.
** Једноставно управљање пакетима (<code>go get</code>), као и једноставна и читљива документација пакета на интернету.
* Јединствени приступи проблемима:
** Уграђене функционалности за конкурентно програмирање: лаки процеси (корутине - -{goroutines}-), канали за ток података између процеса, и <code>select</code> кључна реч за управљање каналима.
** Систем интерфејса и уграђивања типова уместо уместо виртуалног и невиртуалног наслеђивања.
** Скуп алата који производи статички линковане извршне датотеке које не зависе од спољашњих библиотека.
* Жеља да језик остане једноставан - спецификација је довољно кратка да програмери могу целу да је запамте. Ово је могуће захваљујући избацивању функционалности које се често срећу у другим језицима.
 
Гоу је често мета следећих критика:
 
* Недостатак [[генеричко програмирање|генеричких типова]] доводи до дупликације кода. Може се симулирати уз помоћ метапрограмирања и рефлексије, али се тада губи на перформансама и провери тачности типова. Стандардна библиотека из тог разлога не нуди генеричке алгоритме.
* Нема могућности проширивања језика (на пример, кроз додавање оператора за корисничке типове), па одређени задаци захтевају више кода.
* Једноставан систем типова који није базиран на Хиндли-Милнер систему смањује безбедност и једноставност програма.
* Аутоматско управљање меморијом узрокује паузе у раду програма, па то умањује могућност примене у системским програмима, у поређењу са језицима у којима се ручно управља меморијом.
 
Дизајнери језика тврде да су ови недостаци важни за успех језика, и детаљно објашњавају зашто су одређене одлуке донешене. Упркос томе, отворени су за додавање могућности за генеричко програмирање у будућности, као и по питању побољшања у областима генерације кода и смањења трајања паузе приликом аутоматског чишћења меморије.
 
== Примери ==