Давеча слушал я Ruby NoName Podcast (кстати, весьма всем рекомендую), в котором услышал новость, что MacRuby 0.5 вышел из стадии бета-версии. Также господа ведущие сообщили, что в состав пакета MacRuby входит великолепный компилятор Ruby — MacRubyC, который теперь умеет компилировать в динамические библиотеки. Я, естественно, заинтересовался и решил поэкспериментировать.
В этой (2 часть в переводе) серии статей мы заглянем под капот движка QML и раскроем некоторые из особенностей его внутренней работы.Статьи основаны на Qt5 версия QtQuick, QtQuick 2.0.
Большинство людей знают, что каждый элемент в QML файле опирается на конкретный C++ класс. Когда QML файл загружен, движок QML как-то создает один C++ объект для всех элементов в файле. В этом посте мы рассмотрим, как движок QML переходит от чтения текстового файла, включающего полное дерево C++ объектов. В документации Qt присутствует раздел с обширным описанием взаимодействия QML и C++, прочтение которого стоит потраченного времени. В данной серии статей, я предполагаю что пользователь прочёл и понимает описанное в документации.
Увы, я не веду свой бложик, а результат недавнего «открытия» обнародовать в виде заметки считаю необходимым. Полагаю, найдутся люди, которым это весьма пригодится.
Go — язык, компилируемый в нативный код, а посему, очевидно, должен быть быстрым. Однако, к сожалению, на данный момент это далеко не всегда соответствует действительности.
В моём же случае, Go проиграл PHP (ну, на самом деле модулю PHP на C, однако результат всё равно удручающий). Если кратко, то при вычислении Whirlpool-хеша Go проигрывал в 3,5-7.5 раз!
Если вы Web-разработчик и ведете разработку для браузера, то вы точно знакомы с JS, который может исполняться внутри браузера. Существует мнение, что JS не сильно подходит для сложных вычислений и алгоритмов. И хотя в последние годы JS cделал большой рывок в производительности и широте использования, многие программисты продолжают мечтать запустить системный язык внутри браузера. В ближайшее время игра может поменяться благодаря WebAssembly.
Microsoft не стоит на месте и активно пытается портировать .NET в WebAssembly. Как один из результатов мы получили новый фреймворк для клиенской разработки — Blazor. Пока не совсем очевидно, сможет ли Blazor за счет WebAssembly быть быстрее современных JS — фреймворков типа React, Angular, Vue. Но он точно имеет большое преимущество — разработка на C#, а так же весь мир .NET Core может быть использован внутри приложения.
Всем привет! Сегодня мы рассмотрим разные фишки и изменения, которые появились в .NET Core платформе и сравним их с Framework. Я разбил статью на модули для более лучшего понимания. Эта статья будет интересна тем кто собирается переходить на .NET Core или уже использует его.
Stack technology
В данный момент у нас есть три платформы: .NET Framework, Mono и .NET Core. Каждая платформа включает в себя следующие технологии:
NET Framework — WPF, WinForms, ASP.NET (DNX реализация), WCF NET Core — UWP, ASP.NET Core, WA, Xamarin (.NET Standard), Avalonia and other Mono — Xamarin (PCL, Share project), Unity, ASP.NET, WinForms (cross platform) NET Core (3.0) — Всё тоже самое, что и у .NET Core выше + WPF и WinForms, ML.NET
NET Standard
Ещё есть .NET Standard. Это набор классов, методов и интерфейсов, которые позволяют писать и использовать общий код под все перечисленные выше платформы. Ещё на ней можно писать консольные приложения. Вкратце это тот же PCL, но работает на всех перечисленных выше платформах.
Ни для кого не секрет, что на данный момент Java — один из самых популярных языков программирования в мире. Дата официального выпуска Java — 23 мая 1995 года.
Эта статья посвящена основам основ: в ней изложены базовые особенности языка, которые придутся кстати начинающим “джавистам”, а опытные Java-разработчики смогут освежить свои знания.
* Статья подготовлена на основе доклада Евгения Фраймана — Java разработчика компании IntexSoft.
В статье присутствуют ссылки на внешние материалы.
Статья рассказывает о том, как можно ускорить код .NET путем построения части логики "на лету" с использованием LINQ expression. Рассматривается пример генерации функции с деревом "if" для двоичного поиска в заданной таблице. Применение кода сгенеренного при помощи LINQ позволило ускорить код в 1.5 раза по сравнению с использования Dictionary для поиска.
Here I am going to cover my own approach to compilation of mathematical functions into Linq.Expression. What we are going to have implemented at the end:
1. Arithmetical operations, trigonometry, and other numerical functions
2. Boolean algebra (logic), less/greater and other operators
3. Arbitrary types as the function's input, output, and those intermediate
Recently PVS-Studio has implemented a major feature—we supported intermodular analysis of C++ projects. This article covers our and other tools' implementations. You'll also find out how to try this feature and what we managed to detect using it.
В PVS-Studio появилось одно крупное изменение – это поддержка межмодульного анализа C++ проектов. В статье речь пойдёт про то, как это реализовано в других инструментах, как сделали мы, как попробовать и что удалось найти.
PHP is widely known as an interpreted programming language used mainly for website development. However, few people know that PHP also has a compiler to .NET – PeachPie. But how well is it made? Will the static analyzer be able to find actual bugs in this compiler? Let's find out!
PHP широко известен как интерпретируемый язык программирования, использующийся в основном для разработки сайтов. Однако немногие знают, что для PHP есть ещё и компилятор под .NET — PeachPie. Но вот насколько он качественно сделан? Сможет ли статический анализатор найти в этом компиляторе реальные ошибки? Давайте же узнаем!