Серия «Программирование»

0

Союз Qt и JavaScript - QML

QML - это язык декларативного описания пользовательского интерфейса, основанный на JavaScript и Qt. Особенность QML заключается в том, что он позволяет создавать динамические, анимированные и интерактивные элементы интерфейса с минимальным кодом.

Союз Qt и JavaScript - QML Разработка, Программирование, Программист, IT, Web-программирование, Linux, Windows, Qt

QML также поддерживает интеграцию с C++ и другими языками, что дает возможность использовать готовые библиотеки и фреймворки.

Некоторые преимущества QML:

  • Быстрая разработка и отладка. QML-код можно изменять во время выполнения, не перезапуская приложение. QML также имеет встроенные средства для отображения ошибок и предупреждений.

  • Кросс-платформенность. QML-приложения могут работать на разных платформах, таких как Windows, Linux, Mac OS, Android, iOS и других, без изменения кода.

  • Гибкость и расширяемость. QML позволяет создавать пользовательские элементы интерфейса, комбинируя стандартные элементы и добавляя свою логику. QML также поддерживает использование ресурсов, таких как изображения, звуки, шрифты и т.д..

  • Высокая производительность. QML использует аппаратное ускорение для отрисовки графики, а также оптимизирует выполнение JavaScript-кода.

Интересные факты и фичи языков программирования у нас в канале, заходи :)

Показать полностью
19

Вышла новая версия Qt Creator 12

Qt Creator 12 - это новая версия интегрированной среды разработки для Qt и C++, которая содержит исправления ошибок и новые функции.

Вышла новая версия Qt Creator 12 Разработка, Программирование, Программист, IT, Qt

Среди самых важных нововведений можно отметить:

  • Интегрированный Compiler Explorer. Введите код, чтобы исследовать, как он выглядит для разных компиляторов.

  • Отладка CMake и протокол Debug Adapter. Установите точки останова в файлах CMake и выберите Отладка > Начать отладку > Начать отладку CMake, чтобы запустить отладчик CMake.

  • Запись экрана. Легко создавайте записи (части) вашего экрана для отчетов об ошибках, обмена, блогов и т.д.

Qt Creator 12 также улучшил производительность запуска, обновил инструменты Clangd и Clang analyzer до LLVM 17.0.1, добавил настройки для имени и комментариев файлов C++, расширил возможности редактора файлов CMake и многое другое.

Интересные факты и фичи языков программирования у нас в канале, заходи :)

Показать полностью
0

Что же такое исключения в C++

Исключения в C++ - это механизм, который позволяет обнаруживать и обрабатывать ошибки во время выполнения программы. Исключения могут быть сгенерированы оператором throw или автоматически при возникновении некоторых ошибок, таких как деление на ноль, выход за границы массива или нехватка памяти. Исключения могут быть перехвачены и обработаны с помощью конструкции try…catch, которая определяет блок кода, в котором может произойти исключение, и блок кода, в котором исключение обрабатывается.

Исключения могут иметь различные типы, которые определяют характер ошибки и передают дополнительную информацию об исключении. Некоторые типы исключений являются стандартными и определены в библиотеке <stdexcept>. Основные из них:

  • logic_error: общий тип исключений, которые возникают из-за ошибок логики или программирования.

  • invalid_argument: исключение, которое возникает, когда аргумент функции недопустим или некорректен.

  • domain_error: исключение, которое возникает, когда аргумент функции выходит за пределы допустимого домена.

  • length_error: исключение, которое возникает, когда попытка создать объект превышает его максимально допустимый размер.

  • out_of_range: исключение, которое возникает, когда попытка доступа к элементу контейнера, который находится за его границами.

  • runtime_error: общий тип исключений, которые возникают во время выполнения из-за ошибок среды или системы.

  • range_error: исключение, которое возникает, когда результат операции выходит за пределы допустимого диапазона.

  • overflow_error: исключение, которое возникает, когда результат арифметической операции превышает максимально допустимое значение.

  • underflow_error: исключение, которое возникает, когда результат арифметической операции меньше минимально допустимого значения.

Кроме стандартных типов исключений, можно определять свои собственные типы исключений, наследуясь от класса exception или его потомков. Например:

#include <iostream>

#include <exception>

using namespace std;

// Определение собственного типа исключения

class MyException : public exception {

public:

// Переопределение метода what(), который возвращает сообщение об исключении

const char* what() const noexcept override {

return "My exception occurred";

}

};

// Функция, которая генерирует исключение типа MyException

void func() {

throw MyException();

}

int main() {

try {

func(); // Вызов функции, которая генерирует исключение

}

catch (MyException& e) { // Перехват исключения типа MyException

cout << e.what() << endl; // Вывод сообщения об исключении

}

return 0;

}

В этом примере определяется класс MyException, который наследуется от класса exception и переопределяет метод what(), который возвращает сообщение об исключении. Затем в функции func() генерируется исключение типа MyException с помощью оператора throw. В функции main() используется конструкция try…catch для перехвата и обработки исключения типа MyException. В блоке catch выводится сообщение об исключении с помощью метода what().

Исключения в C++ позволяют эффективно и безопасно обрабатывать ошибки в программе, а также разделять код, который может вызвать ошибку, от кода, который может ее обработать.

Интересные факты и фичи языков программирования у нас в канале, заходи :)

Показать полностью

Про мютексы в golang

Мьютекс в golang - это способ синхронизации доступа к общим ресурсам, которые могут быть одновременно использованы несколькими горутинами.

Мьютекс имеет два состояния:

  • Заблокирован

  • Разблокирован

Когда мьютекс заблокирован, любая горутина, которая пытается его заблокировать, будет ждать, пока мьютекс не будет разблокирован.

Для работы с мьютексами в golang используется пакет sync, который предоставляет тип sync.Mutex. У мьютекса есть методы Lock() и Unlock(), которые позволяют блокировать и разблокировать доступ к общему ресурсу. Например, если у нас есть переменная counter, которая может быть изменена несколькими горутинами, то мы можем использовать мьютекс для защиты ее значения от гонки данных. Вот пример кода, который демонстрирует это:

package main

import (

"fmt"

"sync"

)

var counter int = 0 // общий ресурс

var mutex sync.Mutex // мьютекс

func main() {

ch := make(chan bool) // канал

for i := 1; i < 5; i++ {

go work(i, ch) // запускаем горутину

}

for i := 1; i < 5; i++ {

<-ch // ожидаем завершения горутины

}

fmt.Println("The End")

}

func work(number int, ch chan bool) {

mutex.Lock() // блокируем мьютекс

counter = 0 // сбрасываем значение счетчика

for k := 1; k <= 5; k++ {

counter++ // увеличиваем счетчик

fmt.Println("Goroutine", number, "-", counter) // выводим результат

}

mutex.Unlock() // разблокируем мьютекс

ch <- true // отправляем сигнал в канал

}

Этот код гарантирует, что только одна горутина имеет доступ к переменной counter в один момент времени, и выводит корректный результат.

Интересные факты и фичи языков программирования у нас в канале, заходи :)

Показать полностью

Реализация собственного контейнера с помощью initializer_list

Initializer_list - это специальный класс шаблона, который представляет собой список инициализации, то есть набор значений, заключенных в фигурные скобки. Например, {1, 2, 3} - это список инициализации, который содержит три целых числа. Initializer_list позволяет передавать такие списки в качестве аргументов функций или конструкторов, а также использовать их для инициализации объектов различных типов, включая собственные контейнеры1.

Для того, чтобы реализовать собственный контейнер с помощью initializer_list, нужно выполнить следующие шаги:

  • Определить класс контейнера, который хранит элементы в некоторой структуре данных, например, в массиве, векторе или списке. Класс контейнера должен иметь методы для доступа, добавления и удаления элементов, а также другие операции, которые необходимы для работы с контейнером.

  • Определить конструктор контейнера, который принимает в качестве параметра объект типа initializer_list. В теле конструктора нужно скопировать элементы из initializer_list в структуру данных контейнера, используя методы begin() и end() для получения итераторов на начало и конец списка инициализации.

  • Определить оператор присваивания контейнера, который также принимает в качестве параметра объект типа initializer_list. В теле оператора нужно очистить старые данные контейнера и скопировать элементы из initializer_list в структуру данных контейнера, аналогично конструктору.

Вот пример реализации собственного контейнера, который хранит элементы в векторе:

#include <iostream>

#include <vector>

#include <initializer_list>

// Класс контейнера

template <typename T>

class MyContainer {

private:

std::vector<T> data; // Структура данных для хранения элементов

public:

// Конструктор по умолчанию

MyContainer() {}

// Конструктор, принимающий список инициализации

MyContainer(std::initializer_list<T> il) {

// Копирование элементов из списка инициализации в вектор

for (auto it = il.begin(); it != il.end(); ++it) {

data.push_back(*it);

}

}

// Оператор присваивания, принимающий список инициализации

MyContainer& operator=(std::initializer_list<T> il) {

// Очистка старых данных

data.clear();

// Копирование элементов из списка инициализации в вектор

for (auto it = il.begin(); it != il.end(); ++it) {

data.push_back(*it);

}

return *this;

}

// Метод для вывода элементов контейнера на экран

void print() const {

for (const auto& elem : data) {

std::cout << elem << " ";

}

std::cout << std::endl;

}

};

int main() {

// Создание объекта контейнера с помощью списка инициализации

MyContainer<int> c1 = {1, 2, 3, 4, 5};

c1.print(); // 1 2 3 4 5

// Присваивание контейнеру нового списка инициализации

c1 = {6, 7, 8, 9, 10};

c1.print(); // 6 7 8 9 10

return 0;

}

Интересные факты и фичи языков программирования у нас в канале, заходи :)

Показать полностью

Почему синтаксис языка C именно такой

Синтаксис языка C был разработан Деннисом Ритчи в 1970-х годах как упрощенная и универсальная версия языка B, который в свою очередь был основан на языке BCPL.

Почему синтаксис языка C именно такой Разработка, Программирование, Программист, IT, Инновации, Linux

Язык C был спроектирован так, чтобы быть близким к машинному коду и эффективно работать с памятью и процессором. Он также был вдохновлен некоторыми идеями из других языков, таких как ALGOL 68 и PL/I.

Синтаксис языка C характеризуется следующими особенностями:

  • Чувствительность к регистру. В языке есть встроенная поддержка числовых, символьных и строковых литералов, которые обрамляются кавычками.

  • Использование фигурных скобок для обозначения блоков кода и точки с запятой для разделения операторов.

  • Использование префиксной нотации для объявления переменных и функций, а также для указания их типов и модификаторов.

  • Использование инфиксной нотации для арифметических, логических и битовых операций, а также для сравнения и присваивания значений.

  • Использование постфиксной нотации для обращения к элементам массивов и структур, а также для вызова функций и инкремента или декремента переменных.

  • Использование указателей для работы с адресами памяти и динамическим выделением памяти.

  • Использование препроцессора для включения других файлов, определения макросов и условной компиляции.

Синтаксис языка C оказал влияние на многие другие языки программирования, такие как C++, C#, Java и Objective-C, которые расширили или модифицировали его для своих целей. Некоторые языки, такие как Perl и Python, также заимствовали некоторые элементы синтаксиса C, такие как операторы и скобки, но сильно отличаются в других аспектах.

Интересные факты и фичи языков программирования у нас в канале, заходи :)

Показать полностью 1

Немного подкопотника компиляторов

Под капотом компиляторов находятся различные этапы обработки исходного кода, такие как лексический, синтаксический и семантический анализ, оптимизация, генерация и компоновка кода. Каждый этап выполняет определенную задачу, например, разбиение кода на токены, построение дерева разбора, проверка типов и областей видимости, устранение лишнего или неэффективного кода, преобразование кода в машинные инструкции или байт-код, связывание модулей и библиотек в исполняемый файл и т.д.

Компиляторы могут быть разными по своему устройству, функциональности и целям. Например, есть компиляторы, которые транслируют код с одного языка на другой, например, Babel или TypeScript. Есть компиляторы, которые оптимизируют код для конкретной архитектуры или платформы, например, GCC или LLVM. Есть компиляторы, которые используют динамическую компиляцию, то есть компилируют код во время его исполнения, например, JIT-компиляторы в Java или .NET. Есть компиляторы, которые реализуют специальные возможности или фичи языков, например, векторизация, макросы, рефлексия и т.д.

Интересные факты и фичи языков программирования у нас в канале, заходи :)

Попробовать мобильный офис

Перейти

Мобильный офис до 100 тысяч рублей

Ноутбуки используют не только для работы: на них смотрят сериалы, редактируют фото, запускают игры и монтируют ролики. Поэтому теперь требования к устройству такие: быть легким для дороги, надежным для горящих дедлайнов и стильным, чтобы не прятать в переговорке. А еще — легко работать в связке с другими гаджетами.

Протестировали TECNO MEGABOOK K15S вместе со смартфоном TECNO CAMON 40 и наушниками TECNO в рабочих и бытовых сценариях от Zoom-звонков до перелета, а теперь рассказываем, как себя показала техника.

Первое впечатление от дизайна ноутбука

Первое, что заметно — это вес. При диагонали 15,6 дюйма и полностью металлическом корпусе K15S весит всего 1,7 кг. Это примерно на 15% меньше, чем аналоги. Устройство не обременяет ни в офисе, ни в такси. Ноутбук поместился в стандартный городской рюкзак, было удобно достать его в кафе за завтраком и по дороге в такси, чтобы быстро отработать клиентские правки.

Дизайн сдержанный, без ярких акцентов, с матовой поверхностью. Правда, на ней остаются следы от рук. Так что если приходится постоянно открывать ноутбук в присутствии клиентов или партнеров, лучше купить прозрачный кейс. Визуально и тактильно устройство ощущается надежно: не выскальзывает и не двигается по столу, благодаря специальным резиновым накладкам на задней части.

Шарнир работает мягко: чтобы открыть крышку даже одной рукой, не нужно придерживать корпус. Чтобы показать коллеге или клиенту презентацию, достаточно раскрыть экран на 180°. Это удобно и для работы лежа, и для подставок, которые требуют определенного угла обзора.

Также отметим 9 портов: USB-A, USB-C, HDMI, слот для карты памяти — можно забыть о переходниках.

В TECNO MEGABOOK K15S предустановлен Windows 11. Ноутбук готов к работе сразу после включения. Никаких лишних установок и обновлений. Все настроено и оптимизировано для вашей многозадачности.

Экран: яркая картинка и комфорт ночью

Экран — 15,6 дюйма, IPS-матрица с разрешением Full HD. Углы обзора отличные: изображение остается четким, даже если смотреть сбоку, цвета не искажаются. Есть антибликовое покрытие. Тестировали ноутбук при разном освещении: можно спокойно работать у окна. Когда солнце бьет прямо в экран, текст по-прежнему остается читаемым, картинки не искажаются. Это редкость в бюджетных моделях.

Неважно, работаете вы ночью или играете, выручит клавиатура с регулируемой четырехуровневой подсветкой. При среднем уровне в темноте все видно, глаза не устают. Из плюсов для тревожных людей: включали ноутбук в самолете и электричке, никто вокруг не жаловался на яркость. Все регулируется кнопками, не нужно лишний раз заходить в настройки.

Стеклокерамический крупный тачпад — 15 см. Он не залипает, не промахивается, срабатывает с первого касания. Не возникает дискомфорта, даже если несколько часов редактировать документы без мышки. После перехода с других устройств немного непривычно, что тачпад работает в двух направлениях: нижняя часть отзывается нажатием, верхняя — касанием.

В кнопку питания встроен сканер отпечатка пальцев. К нему можно быстро привыкнуть, особенно если сидишь в опенспейсе или работаешь в дороге. Один легкий тап пускает в систему даже с мокрыми руками. Безопасно, удобно и не нужно постоянно вводить пароли.

Производительность: рендерим видео, открываем вкладки

Ноутбук работает на AMD Ryzen 7 5825U (опционально можно выбрать версию техники Intel Core i5-13420H). Восьмиядерный AMD с поддержкой 16 потоков подходит для ресурсоемких операций вроде рендеринга или работы с большими массивами данных. Встроенная графика Radeon справляется с редактированием видео в Full HD или играми.

Во время монтажа 30-минутного ролика в DaVinci Resolve и параллельной работе в Photoshop с несколькими большими PSD-файлами система сохраняла стабильность. Не было ни зависаний, ни заметного падения производительности. Ноутбук уверенно держит в фоне 10 приложений одновременно. Если запущены браузер с 20 вкладками, видеозвонок в Telegram, Excel с объемной таблицей и софт для монтажа, система не тормозит и не перегревается. Переход между окнами остается плавным, ничего не «проседает», даже при одновременном скачивании файлов и редактировании видео.

Базовая комплектация включает 16 ГБ оперативной памяти в двух слотах. При необходимости можно легко увеличить этот показатель до 32 ГБ, заменив стандартные модули на более емкие. Помимо установленного SSD на 1 ТБ предусмотрен дополнительный слот, поддерживающий диски объемом до 2 ТБ.

Чтобы во время нагрузки системы охлаждения не выходили из строя, в ноутбук встроен эффективный вентилятор, способный рассеивать до 35 Вт тепла. Устройство не греется, его спокойно можно держать на коленях. Это решение дополнено тремя режимами работы, которые переключаются простой комбинацией клавиш Ctrl+Alt+T. Тихий режим идеален для работы ночью или в общественных местах, сбалансированный подходит для повседневных задач. Производительный, на котором запускали рендеринг видео и игры, практически не шумит.

Автономность: 15 часов без подзарядки

Протестили автономность MEGABOOK K15S в условиях, знакомых каждому деловому путешественнику. Утром перед вылетом зарядили ноутбук до 100% и взяли его в рейс Москва — Калининград. В зале ожидания провели созвон, потом три часа смотрели сериал и в дороге до отеля редактировали документы. К моменту приезда оставалось 40% заряда: хватило бы еще на пару часов продуктивной работы.

MEGABOOK K15S может автономно работать до 15 часов и позволяет не оглядываться на индикатор заряда. Заявленное время достигается при типичном офисном использовании: одновременная работа с документами в Word и Excel, ведение переписки, видеоконференции, веб-серфинг.

Если все же понадобится, за  час восполняется до 70% батареи. Компактный адаптер мощностью 65 Вт на базе нитрида галлия поместился даже в карман пиджака. Один блок питания заряжает и ноутбук, и смартфон, и наушники. Экономия места: не нужно никаких дополнительных проводов.

Звук, который реально слышно

В TECNO MEGABOOK K15S установлены два мощных динамика по 2.5 Вт. Звук с глубокими низами, без пластикового дребезжания, объемный. Благодаря DTS можно смотреть видео даже в шумном помещении. В тестах специально включали сцены с шагами и выстрелами: локализация настолько точная, что в наушниках нет необходимости.

Та же стабильность и в микрофоне. Благодаря AI-шумоподавлению голос передается чисто. Во время тестовых звонков из оживленного кафе собеседник не услышал ни разговоры за соседним столом, ни городской шум. И все это — на расстоянии до пяти метров.

Кстати, о созвонах. В ноутбуке встроена обновленная камера. Она отслеживает положение лица, а еще есть физическая шторка приватности. Например, можно закрыть шторку для комфортных видеоконференций.

Для тех, кто предпочитает гарнитуру, идеально подойдут беспроводные наушники TECNO FreeHear 1 из экосистемы бренда. Когда не хотелось делиться разговорами с окружающими, подключали их. Чистый звук с акцентом на средние частоты, 11-мм драйверы, которые выдают неожиданную детализацию. Музыку слушать приятно: и фоновый плейлист на телефоне, и вечерний сериал на ноутбуке. Автономно работают наушники 6 часов, с кейсом — до 30 часов. 

Bluetooth 5.4 обеспечивает стабильное соединение на расстоянии до 10 метров. Удобная C-образная форма разработана специально для длительного ношения — после восьмичасового рабочего дня в ушах не возникает дискомфорта. Наушники поддерживают одновременное подключение к ноутбуку и смартфону. Переключение между устройствами происходит быстро и без заминок.

Через фирменное приложение Welife можно выбрать один из четырех эквалайзеров и отследить местоположение гарнитуры в случае утери. А еще кастомизировать виджет для управления наушниками. Функция настройки персонализированного дизайна доступна для устройств на Android и позволяет гибко изменить внешний вид окна подключения: вплоть до установки фоновой картинки или собственного фото.

Первые пару использований может потребоваться время, чтобы привыкнуть к нестандартной форме вкладышей, но уже с третьего раза они надеваются вслепую за секунду. Что особенно приятно:  собеседники отмечают, что звук от микрофона более приятный и четкий, чем у дорогих известных моделей.

Бесшовная синхронизация со смартфоном

Благодаря функции OneLeap ноутбук синхронизируется со смартфоном TECNO. Подключение происходит за пару секунд: достаточно один раз подтвердить сопряжение. После этого открывается доступ к бесшовному переключению между устройствами — объединенному буферу обмена, дублированию экранов и передаче файлов без кабелей и пересылок в мессенджерах.

Функция выручила, когда нужно было открыть приложение, у которого нет веб-версии. Удобно работает и буфер обмена: скопировал текст на одном устройстве — вставил на другом. Например, код, полученный в сообщении на телефоне, вводится в браузере на ноутбуке. Экономит минуты, а иногда и нервы. А когда в дороге пропал Wi-Fi, ноутбук сам подключился к мобильному интернету через смартфон.

TECNO CAMON 40 и сам по себе — мощный рабочий инструмент.  Смартфон выделяется камерой высокого качества 50 Мп, ярким AMOLED-экраном 120 Гц и множеством функций, которые упрощают процесс мобильной съёмки и использование искусственного интеллекта TECNO AI.

Телефон работает на HIOS 15.0.1 на базе Android 15.В фирменную оболочку встроен искусственный интеллект:

  • Голосовой помощник Ella. Отвечает на вопросы, помогает с задачами и управлением устройством.

  • Решение задач. Наводите камеру на задачу, ИИ решает ее.

  • AI Редактор фотографий. Интеллектуальная обработка в одно касание.

  • Быстрый поиск. Находит адрес на экране и запускает навигацию, распознает объекты и события, автоматически добавляет их в календарь.

Технические характеристики

  • Процессор и память. 8 ядер, 16 потоков, Кэш L3 16 МБ, частота до 4.5 ГГц Графический процессор AMD Radeon™ graphics SSD 512 ГБ или 1 ТБ, М.2, 2280, PCle 3.0 Nvme DDR4 16 ГБ, 3200 МГц.

  • Дисплей. 15.6", TFT, Full HD (1920×1080), 16:9, 280нит, 45% NTSC, 16.7 млн цветов, 60 Гц, 141 ррі.

  • Веб-камера. 1 Мп, шторка приватности.

  • Порты. 9 портов: 1*TF Card (microSD), 1*HDMI 1.4, 1*USB-A 3.1,

    1*USB-A 3.2, 1*3.5mm аудиовход, *Ethernet RJ45 до 1 Гбит, 2*Туре-С (Full Function), 1*слот для замка Kensington.

  • Другое. Сканер отпечатка пальца в кнопке питания. Клавиатура с подсветкой (4 уровня яркости). Тачпад с поддержкой одновременно 4 касаний.

  • Батарея. 70 Вт∙ч (6150 мА∙ч), Li-Pol, 11.55 B 65 Вт Type-C GaN, 20 В, 3.25 А, кабель 1.8 м (Туре-С-Type-C).

  • Габариты. 17.3 мм (высота), 359.5 мм (ширина), 236 мм (глубина).

  • Вес. 1,7 кг.


Если хотите создать собственную экосистему, в которой технологии подстроятся под ритм дня, попробуйте технику TECNO. Мощный ноутбук, быстрый смартфон и наушники соединяются в единое пространство. Быстрое переключение между устройствами, синхронизация файлов и стабильное соединение без лишних настроек.

КУПИТЬ НОУТБУК TECNO

Реклама TECNO Mobile Limited, Юридический адрес: Flat N, 16/F., Block B, Универсальный промышленный центр, 19-25 Shan MeiStreet, Fotan, New Territories, Гонконг

Показать полностью 17

Небольшая история golang

Язык программирования Go, или Golang, был разработан в компании Google в 2007-2009 годах. Его создатели - Роберт Гризмер, Роб Пайки Кен Томпсон - хотели сделать современный, быстрый и производительный язык для распределенных систем и многоядерных процессоров. Они вдохновлялись такими языками, как Си, Паскаль, Оберон, Python и другими. Официально язык был представлен 10 ноября 2009 года.

Небольшая история golang Программирование, Программист, IT, Инновации, Google, Разработка

Go - компилируемый, многопоточный, статически типизированный язык с простым синтаксисом и мощными возможностями для параллельного программирования. Он поддерживает такие концепции, как интерфейсы, структуры, отложенный вызов, рефлексия, анонимные функции и замыкания. Он также имеет встроенную поддержку тестирования, документирования и форматирования кода.

Go широко используется во многих компаниях и проектах, таких как Google, Dropbox, Netflix, Uber, Яндекс, ВКонтакте и других. Он подходит для разработки веб-сервисов, клиент-серверных приложений, микросервисов, системного программирования и других областей. Go также имеет большое и активное сообщество разработчиков, которые постоянно улучшают язык и создают полезные библиотеки и инструменты.

Последняя версия языка Go - это 1.21.4, выпущенная 7 ноября 2023 года. Эта версия включает в себя несколько исправлений ошибок и улучшений безопасности, а также новые функции, такие как:

  • Поддержка модулей - нового способа управления зависимостями и версиями пакетов.

  • Поддержка генериков - параметризованных типов и функций, которые позволяют писать более обобщенный и переиспользуемый код.

  • Поддержка встроенных типов - типов данных, которые определяются внутри пакета, а не в отдельном файле.

  • Поддержка контекстов - механизма для передачи метаданных и сигналов отмены между горутинами.

  • Поддержка встраиваемых интерфейсов - интерфейсов, которые могут быть встроены в другие типы, чтобы наследовать их методы.

Интересные факты и фичи языков программирования у нас в канале, заходи :)

Показать полностью 1
Отличная работа, все прочитано!