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

9

Интересные изменения в Golang 1.21

Golang 1.21 это новая версия языка программирования Go, которая была выпущена 15 октября 2023 года. В этой версии были внесены некоторые изменения в язык, инструменты и библиотеки.

Интересные изменения в Golang 1.21 Программирование, Программист, IT, Разработка, Golang
  • В язык были добавлены три новых встроенных функции: min, max и clear. Функции min и max вычисляют наименьшее (или наибольшее, для max) значение из фиксированного числа аргументов. Функция clear удаляет все элементы из карты или обнуляет все элементы среза. Подробнее см. спецификацию языка.

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

  • Было сделано несколько улучшений, которые повышают мощность и точность вывода типов. Теперь (возможно частично инстанцированная обобщенная) функция может быть вызвана с аргументами, которые сами являются (возможно частично инстанцированными) обобщенными функциями. Компилятор будет пытаться вывести отсутствующие типовые аргументы вызываемой функции (как и раньше) и, для каждого аргумента, который является обобщенной функцией, которая не полностью инстанцирована, ее отсутствующие типовые аргументы (новое). Типичные случаи использования - это вызовы обобщенных функций, работающих с контейнерами (например, slices.IndexFunc), где функциональный аргумент также может быть обобщенным, и где типовой аргумент вызываемой функции и ее аргументов выводится из типа контейнера.

  • В инструментах были сделаны различные улучшения производительности и исправления ошибок. Например: go build теперь поддерживает флаг -trimpath для удаления всей информации о файловой системе из скомпилированных исполняемых файлов; go vet теперь проверяет корректность использования R15 при динамической компоновке на amd64; go mod tidy теперь удаляет неиспользуемые замены из go.mod.

  • В библиотеках были добавлены новые пакеты и улучшены существующие. Например: был добавлен новый пакет log/slog для структурированного логирования; был добавлен новый пакет testing/slogtest для поддержки тестирования кода, использующего log/slog; был добавлен новый пакет slices для работы со срезами любого типа; был добавлен новый пакет maps для работы с картами любого типа; был добавлен новый пакет cmp для сравнения значений разных типов.

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

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

Небольшое сравнение C# и Go для backend

Выбор между C# и Go (Golang) для backend веб-разработки зависит от различных факторов, таких как требования проекта, опыт команды разработчиков и предпочтения.

Небольшое сравнение C# и Go для backend IT, Программист, Golang, Разработка, Backend, Программирование

C# является объектно-ориентированным языком программирования, разработанным Microsoft. Он широко используется для создания веб-приложений на платформе .NET. C# имеет мощную экосистему инструментов и библиотек, которые обеспечивают высокую производительность и эффективность разработки. Он также поддерживает многопоточность, асинхронное программирование и взаимодействие с базами данных. Если у вас есть опыт работы с .NET или если ваша команда уже знакома с C#, то он может быть хорошим выбором для backend веб-разработки.

Go (Golang) - это язык программирования, разработанный Google, который изначально был создан для решения проблем больших распределенных систем. Go обладает простым и понятным синтаксисом, который способствует быстрой разработке. Он также имеет встроенную поддержку параллельного и конкурентного программирования, что делает его хорошим выбором для создания высокопроизводительных и масштабируемых веб-приложений. Если вы и ваша команда предпочитаете простоту и эффективность разработки, Go может быть хорошим выбором.

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

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

Linux не один, есть и другие ядра

Кроме Linux, существуют и другие ядра операционных систем.

Linux не один, есть и другие ядра IT, Программирование, Программист, Linux, Windows, Информационная безопасность, Операционная система, Разработка, Админ, Системное администрирование

Некоторые из них включают:

  • Windows NT Kernel: Ядро операционной системы Windows, которое обеспечивает управление ресурсами, планирование процессов, ввод-вывод и другие основные функции.

  • macOS Kernel (ранее известный как XNU): Ядро операционной системы macOS, разработанное на основе ядра Mach и FreeBSD. Оно обеспечивает управление памятью, планирование процессов, ввод-вывод и другие функции.

  • FreeBSD Kernel: Ядро операционной системы FreeBSD, которое является открытым исходным кодом и базируется на UNIX. Оно обеспечивает управление памятью, планирование процессов, ввод-вывод и другие функции.

  • Solaris Kernel: Ядро операционной системы Oracle Solaris, которое предоставляет управление ресурсами, планирование процессов, ввод-вывод и другие функции. Оно также поддерживает многопоточность и виртуализацию.

  • AIX Kernel: Ядро операционной системы IBM AIX (Advanced Interactive eXecutive), которое обеспечивает управление ресурсами, планирование процессов, ввод-вывод и другие функции. Оно также поддерживает многопоточность и виртуализацию.

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

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

Что же такое замыкание в Javascript

Замыкание (closure) в JavaScript - это функция, которая имеет доступ к своему собственному лексическому окружению, а также к окружениям внешних функций, в которых она была определена.

Что же такое замыкание в Javascript Программирование, IT, Программист, Javascript, Разработка, Web-программирование

Это позволяет функции сохранять значения переменных и параметров из внешнего контекста, даже после того, как внешняя функция завершила свое выполнение.

Замыкание создается, когда внутренняя функция ссылается на переменные из внешней функции. Например:

function outerFunction() {

var outerVariable = 10;

function innerFunction() {

console.log(outerVariable);

}

return innerFunction;

}

var closure = outerFunction();

closure(); // Выведет 10

В данном примере функция innerFunction является замыканием, так как она ссылается на переменную outerVariable из внешней функции outerFunction. Даже после того, как outerFunction завершила свое выполнение и переменная outerVariable вышла из области видимости, замыкание все еще имеет доступ к этой переменной.

Замыкания часто используются в JavaScript для создания приватных переменных и методов. Они позволяют скрыть внутренние детали реализации и предоставить только необходимый интерфейс для работы с объектом.

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

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

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

Механизмы синхронизаци потоков в C++

Синхронизация потоков в C++ позволяет управлять доступом к общим ресурсам из разных потоков исполнения. Это важно, чтобы избежать гонок данных и других проблем, связанных с одновременным доступом к общим данным.

Механизмы синхронизаци потоков в C++ IT, Программирование, Программист, C++, Разработка

Для синхронизации потоков в C++ можно использовать различные механизмы, такие как мьютексы, условные переменные и атомарные операции.

Мьютексы (mutex) позволяют блокировать доступ к общему ресурсу, чтобы только один поток мог его использовать в определенный момент времени. При использовании мьютекса один поток блокирует его, а другие потоки ждут его разблокировки.

Условные переменные (condition variable) используются для ожидания событий и уведомления других потоков о том, что событие произошло. Потоки могут ожидать на условной переменной до тех пор, пока не будет выполнено определенное условие, а затем они будут разблокированы.

Атомарные операции (atomic operations) позволяют выполнять операции над общими данными без гонок данных. Атомарные операции гарантируют, что операция будет выполнена целиком и никакой другой поток не сможет вмешаться в ее выполнение.

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

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

Дружба между C# и JavaScript

C# и JavaScript - это два разных языка программирования, которые используются для разных целей. C# - это язык, который работает на платформе .NET и позволяет создавать приложения для Windows, веб, мобильных устройств и других платформ. JavaScript - это язык, который работает в браузере и позволяет добавлять интерактивность и динамику на веб-страницы.

Дружба между C# и JavaScript Программирование, Программист, IT, Javascript

Чтобы подружить C# и JavaScript, есть несколько способов:

  • Использовать ASP.NET Core - это фреймворк для создания веб-приложений на C#, который поддерживает работу с JavaScript и другими фронтенд-технологиями. С помощью ASP.NET Core можно создавать RESTful API на C#, которые можно вызывать из JavaScript с помощью AJAX или Fetch. Также можно использовать Blazor - это технология, которая позволяет писать фронтенд-код на C# и компилировать его в WebAssembly, который работает в браузере.

  • Использовать Node.js - это среда выполнения для JavaScript, которая позволяет запускать JS-код на сервере. С помощью Node.js можно создавать веб-приложения на JavaScript, которые могут общаться с C#-приложениями через HTTP, WebSocket или другие протоколы. Также можно использовать Edge.js - это библиотека, которая позволяет вызывать C#-код из JavaScript и наоборот.

  • Использовать Electron - это фреймворк для создания кросс-платформенных настольных приложений на JavaScript, HTML и CSS. С помощью Electron можно создавать приложения, которые используют Node.js на бэкенде и Chromium на фронтенде. Также можно интегрировать C#-код в Electron-приложения с помощью Edge.js или других способов.

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

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

Куда копать для того чтобы начать разрабатывать игры на JavaScript

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

Куда копать для того чтобы начать разрабатывать игры на JavaScript Программирование, Unreal Engine, IT, Unity, Программист, Разработка, Игры, Gamedev

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

Например:

  • PixiJS - это 2D-рендерер WebGL, который позволяет эффективно отрисовывать 2D-сцены и объекты1.

  • ExcaliburJS - это полноценный игровой фреймворк, написанный на TypeScript, который предоставляет систему сцен и камер, спрайты и анимации, звуки, физику и т.д.1.

  • Unity - это самый популярный игровой движок в мире, который поддерживает C# и JavaScript для создания 2D и 3D игр для разных платформ23.

  • Phaser - это быстрый и удобный фреймворк для создания HTML5 игр с использованием Canvas и WebGL.

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

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

Что же такое пайплайн в разработке

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

Что же такое пайплайн в разработке IT, Программирование, Технологии, Программист, Администрация, DevOps

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

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

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