Genie программа для программирования
Geany (рус. Джини) – это кроссплатформенный текстовый редактор для программистов и веб-разработчиков. Программа распространяется бесплатно согласно лицензии GNU GPL для операционных систем Windows, macOS, Linux, BSD, Solaris.
Джини не просто текстовый редактор, а полноценная среда разработки программного обеспечения, написанная с использованием библиотеки GTK+.
Некоторые особенности и возможности Geany для Windows
- Подсветка исходного кода в зависимости от синтаксиса используемого языка программирования (определяется автоматически по расширению файла);
- Высокая производительность;
- Менеджер проектов;
- Поддержка плагинов, расширяющих базовые возможности;
- Автоподстановка закрывающих тегов HTML / XML;
- Поддержка большого числа языков программирования и разметки: C++, CSS, HTML, Java, PHP, PHP, Python, SQL и многих других;
- Простой и удобный пользовательский интерфейс;
- Управление с помощью «горячих клавиш»;
- Различные темы оформления;
- Требуется GTK+ Runtime Environment для Windows (идёт в комплекте с установщиком программы);
- Мультиязычная локализация – русский, английский и др. (всего свыше 30-ти).
Geany можно сравнить с текстовым редактором Notepad++ (Notepad plus plus) – интерфейс программ во многом схож. Однако, в отличии от Notepad++, Geany работает не только в среде Windows, но и на других платформах. Так, например, Geany можно с уверенностью рекомендовать пользователям, которые привыкли работать с Notepad++ в Windows и хотели бы найти альтернативный текстовый редактор для работы в Linux.
На этой странице для загрузки доступна последняя версия Geany для ОС Windows 32 и 64-бит.
Geany (рус. Джини) – это кроссплатформенный текстовый редактор для программистов и веб-разработчиков.
Операционная система: Windows 7, 8, 10
Дата релиза: 28 сентября 2019
Статус программы: Бесплатная
Разработчик: Geany AUTHORS
Рейтинг: (14 оценок, среднее: 5,00 из 5)
GENie - Project generator tool
GENie (pronounced as Jenny) is project generator tool. It automagically generates project from Lua script, making applying the same settings for multiple projects easy.
Supported project generators:
- GNU Makefile
- Ninja (experimental)
- Visual Studio 2010, 2012, 2013, 2015, 2017, 2019
- XCode
Introduction to GENie - CppCon 2016
Initial version of GENie is fork of Premake 4.4 beta 5, and there is no intention to keep it compatible with it.
Changelog (since fork)
- Added vs2013 support.
- Added hash UUID support. os.uuid() should produce consistent UUID.
- Added search for default script. Default script name is changed to genie.lua (solution.lua and premake4.lua are also allowed), and it can be located in scripts directory.
- Updated Lua from 5.1.4 to 5.3.0.
- Disabled SmallerTypeCheck VS option when ExtraWarnings is set (need to move it into separate option).
- New versioning scheme based on revision number from git.
- Added startproject "" to set default project in VS.
- Removed NoMinimalRebuild and added reversed logic to EnableMinimalRebuild .
- Added NoMultiProcessorCompilation flag to disable multiprocessor compilation in MSVC.
- Added ability to configure Visual Studio toolset from GENie script.
- Added UnsignedChar flag to force char to be unsigned.
- Removed vs2002, vs2003, vs2005, Solaris, and Haiku support.
- Allow source files in the same project to have the same name. Added SingleOutputDir flag to use single output directory (original behaviour).
- Added WinRT support (Windows Phone 8.1, Windows Store, Universal Apps).
- Added removeflags , removelinks .
- Added vs2015 support.
- Added targetsubdir .
- Added support for solution folders group .
- Added options section (and ForceCpp to enforce C++ compile even if extension is for C files)
- Added msgcompile , msgresource , msglinking and msgarchiving as overrides for make messages.
- Added messageskip list to disable some of compiler messages.
- Added buildoptions_c , buildoptions_cpp , buildoptions_objc , buildoptions_objcpp , buildoptions_asm , buildoptions_swift for configuring language specific build options.
- Split functionality of excludes in removefiles and excludes . With VS excludes will exclude files from build but files will be added to project file. removefiles removes files completely from project.
- Added support for generating PS4/Orbis projects.
- Fixed PCH race when using concurrent Makefile build.
- Added Green Hills Software compiler support.
- Added edit & continue support for 64-bit builds in vs2013 upwards.
- Added windowstargetplatformversion to specify VS Windows target version.
- Added NoWinRT flag to disable WinRT CX builds.
- Added NoBufferSecurityCheck flag to disable security checks in VS.
- Added nopch file list to exclude files from using PCH.
- Added EnableAVX and EnableAVX2 flags to enable enhanced instruction set.
- Added FASTBuild (.bff) project generator.
- Added Vala language support.
- Added MASM support for Visual Studio projects.
- Added userincludedirs for include header with angle brackets and quotes search path control.
- Detect when generated project files are not changing, and skip writing over existing project files.
- Added Ninja project generator.
- Added ability to specify MSVC "Old Style" debug info format with C7DebugInfo .
- Added some support for per-configuration files lists.
- Removed clean action.
- Added support for QtCreator via Qbs build tool.
- Added .natvis file type support for Visual Studio.
- Added Swift language support for make and ninja build generators.
- Removed CodeBlocks and CodeLite support.
- Added vs2017 support.
- Removed vs2008 support.
- Added removeplatforms that removes VS build target platforms.
- Added PedanticWarnings flag.
- Added ObjcARC flag to enable automatic reference counting for Objective-C(++).
- Added iostargetplatformversion , macostargetplatformversion , and tvostargetplatformversion to specify XCode OS target version.
- Removed the xcode3 , and xcode4 actions.
- Added the xcode8 , xcode9 , xcode10 , and xcode11 actions.
- Added systemincludedirs that are always searched after directories added using includedirs .
- Added NoRuntimeChecks flag to disable Basic Runtime Checks in non-optimized Visual Studio builds.
- Added support for Nintendo Switch projects.
- Added flags for selecting C++ standard: Cpp11 , Cpp14 , Cpp17 , and CppLatest .
- Added xcodeprojectopts and xcodetargetopts .
- Added vs2019 support.
- Added UnitySupport flag to enable Unity (Jumbo) builds in vs2019
- Added the jcdb action for generating a JSON compilation database.
- Added support for generating Switch/NX32 Switch/NX64 projects.
- Removed FASTBuild.
- Removed Qbs support.
- Added vs2022 support.
build - GENie build system scripts
build is a set of build system scripts and related tools, built around GENie project generator tool.
Debugging GENie scripts
It is possible to debug build scripts using ZeroBrane Studio. You must compile GENie in debug mode
This ensures the core lua scripts are loaded from disk rather than compiled into the GENie binary. Create a file named debug.lua as a sibling to your main genie.lua script with the following content:
NOTE: update zb_path to refer to the root of your ZeroBrane Studio install. For reference, you should find lualibs in you zb_path folder
To debug, make sure ZBS is listening for debug connections and add dofile("debug.lua") to genie.lua
Who is using it?
https://github.com/bkaradzic/bgfx bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Developer Crackshell used GENie for development of games Heroes of Hammerwatch, and Serious Sam's Bogus Detour.
Содержание:
1. Вступление;
2. Документация, распространенность и синтаксис (Вы читаете данный раздел).
По распространенности Genie намного уступает своему «старшему брату» Vala. Genie несколько лет являлся основным языком при разработке утилит для Puppy Linux, однако в прошлом году создатель этого дистрибутива полностью перешел на BaCon - реинкарнацию классического Basic. В итоге, Genie остался не у дел. Мне не удалось найти в сети ни одного серьезного проекта, целиком написанного на Genie. Есть лишь несколько небольших «игрушечных» программ, однако это не означает, что язык заброшен и никому не нужен. Поддержку синтаксиса Genie в компиляторе Vala никто не собирается прекращать, а младенческий возраст самого языка позволяет надеяться на благополучное будущее. Вместе с тем, отсутствие пропаганды языка и плохая документация явно не способствуют увеличению его популярности.
Я не буду формально описывать синтаксис Genie, который в своей основе практически идентичен синтаксису языка Python. Вместо этого напишем и разберем такую же простейшую программу с использованием GTK+, что рассматривалась в предыдущей статье о Vala:
В первую очередь обращает на себя внимание использование отступов для структурирования кода как в Python. Ширину отступов можно задавать произвольно директивой «indent» в начале файла. Например, [indent=4] задаст отступ в 4 символа.
Выполнение программы в Genie начинается с блока init, находящегося вне определений классов и функций. Это аналог функции main() в Vala или C++. В глобальную переменную args автоматически помещаются параметры командной строки приложения, поэтому никаких дополнительных параметров в блоке init указывать не нужно. Далее мы создаем свой класс TestWindow, унаследованный от стандартного класса окна Window. В кон-структоре класса (блок init) выполняются следующие действия: инициализируется окно, создаются виджеты, задается обработчик события нажатия на кнопку.
Синтаксис присоединения функций-обработчиков к событиям в Genie еще более прост, чем в Vala. Используется оператор «+=», который в этом контексте заменяет функцию «connect»:
Объявление лямбда-функции, которая является обработчиком события нажатия на кнопку, также выглядит по-другому -используется ключевое слово def(), но по сути все в точности, как в Vala:
В блоке init основной программы мы создаем экземпляр нового класса, показываем элементы окна функцией show_all() и входим в цикл обработки событий.
Явное объявление переменных в Genie выглядит не так, как в Vala, поскольку используется синтаксис Pascal/Delphi с указанием типа после переменной:
Можно объявлять переменные с автоматическим определением типа с помощью ключевого слова var. Его можно также использовать в форме блока:
Управляющие конструкции в Genie практически идентичны таковым в Python за исключение некоторых деталей, связанных с типизацией переменных. В Genie в качестве конструкции foreach выступает разновидность цикла for, оперирующая со списками:
Тип переменной s компилятор определяет автоматически. Кроме этого варианта есть и индексная форма цикла for, более привычная для программистов на С++ или Pascal:
Функции и методы объявляются в Genie в стиле Pascal с типом возвращаемого значения после заголовка функции:
Синтаксис классов в Genie имеет ряд особенностей. Можно объявлять перегруженные конструкторы, если они принимают разные аргументы. Также можно использовать синтаксис с суффиксом, например:
В объявлении класса конструкторы задаются ключевым словом construct:
В этом коде также показано использование свойств в классах и создание деструктора в блоке final. Основой иерархии объектов является класс Object, наследование которого наделяет дочерний класс всеми возможностями, предоставляемыми библиотекой glib, которая находится «под капотом».
Система с доменами и кодами ошибок выглядит излишне сложной, но такова организация библиотеки glib - с ней приходится мириться.
Строго говоря, Genie - это не более чем альтернативный синтаксис языка Vala, но в то же время, по личным ощущениям от его использования, он является вполне самостоятельным. Пока Genie остается гораздо менее популярным «младшим братом» Vala, однако это вызвано скорее его молодостью и недостатком рекламы, чем объективными причинами. В Genie упор сделан на лаконичность и простоту написания кода. Код на Genie вы-глядит более изящно и легче читается. Кроме того, в базовый язык включены обобщенные контейнеры, что делает его гораздо более похожим по стилю использования на скриптовые языки. Сильная схожесть синтаксиса с языком Python делает его реальной заменой последнего в тех случаях, когда необходима большая скорость и меньшее потребление памяти. Genie наследует все сильные и слабые стороны Vala во всех аспектах кроме синтаксиса, поэтому выводы предыдущей части статьи остаются в силе и в отношении Genie.
Герой этой статьи - язык Genie - не избалован вниманием: мало кто из программистов знает о его существовании. Вместе с тем, этот язык весьма интересен и совершенно незаслуженно находится в тени. Genie очень молод - он появился только в 2008 году, и именно молодость во многом объясняет его небольшую известность и распространенность. Если говорить строго, то Genie - это даже не самостоятельный язык, а аль-тернативный синтаксис языка Vala. Он использует тот же самый компилятор и те же самые утилиты, что и Vala, а все конструкции языка полностью дублируют Vala, но с использованием кардинально иного синтаксиса. Более того, программа может содержать часть исходных файлов на Vala, а часть на Genie - компилятор не различает эти языки кроме как на самом первом этапе компиляции во время синтаксического анализа. Инсталлировать Genie отдельно не нужно: установив Vala, вы автоматически получите и полностью функциональный компилятор Genie. Все, что было сказано о языке Vala в предыдущих частях статьи, относится и к Genie, поэтому я сосредоточу внимание только на предыстории появления этого языка и его синтаксисе.
В последние годы популярность языка Python неуклонно растет. Этот язык так часто используется для быстрого создания приложений, плагинов, виджетов и дополнений, что на современном десктопе одновременно могут быть запущены десятки копий его интерпретатора. И тут начинают в полную силу проявляться присущие Python недостатки. Чаще всего упоминается его медлительность. Это действительно так, но еще большую проблему представляет «раздутость» и прожорливость в потреблении памяти. Кроме «накладных расходов», вызванных самим дизайном динамического интерпретируемого языка, память и циклы процессора тратятся впустую в обертках многочисленных используемых библиотек. Обертки для Python по необходимости являются «толстыми» (thick wrappers), поскольку для передачи данных между библиотечными функциями и интерпретатором их, как правило, приходится копировать и преобразовывать. Тонкой оберткой, которая просто вызывала бы нужную функцию, передавая ей ссылки на готовые данные, чаще всего обойтись не удается. Толстые же печально известны тем, что занимают много дискового пространства и порождают весь спектр проблем с зависимостями и совместимостью версий, поскольку являются дополнительными общесистемными библиотеками. Переносимость программ, написанных на Python, также сильно страдает: в зависимости попадают не только сами внешние библиотеки, но и обертки для них. В то же время лаконизм синтаксиса Python и легкость его изучения остаются во многом непревзойденными.
Попытки сделать Python компилируемым языком полностью или хотя бы частично предпринимались давно и неоднократно. Можно упомянуть такие проекты, как Psyco, Cython, PyPy, Shedskin и Pyrex, но ни один из них не стал настолько зрелым и удобным, чтобы с его помощью были разработаны действительно популярные и востребованные приложения. Появление Genie стало переломным для тех программистов, которые искали язык, столь же удобный в плане синтаксиса как Python, но при этом компилируемый, строго типизированный и не требующий толстых слоев оберток вокруг внешних библиотек. Синтаксис Genie очень похож на Python, хотя содержит элементы, позаимствованные из D, Boo и Delphi. Будучи по сути диалектом Vala, Genie автоматически получил доступ к огромному количеству привязок для Vala. Он компилируется в быстрый машинный код, имеет скромные требования к памяти и не требует никаких оберток для библиотек, написанных на Си.
This special type of electronic component is what makes the GENIE system programmable. It is able to take programs written on the computer and through a process known as downloading, store them in its memory. Once there, the GENIE microcontroller can run the program to provide the intelligence to control your project.
We have worked hard to ensure that with GENIE, whatever your project, there is a board or kit that can help bring it to life! To learn more, click here.
Our latest, the GENIE 14 Audio Kit, is particularly exciting as it offers opportunities for you to add realistic sound effects and high-quality 16-channel MIDI music. Alarms, toys, robots and countless other projects can be enhanced with GENIE.
For those teachers or pupils with in-depth knowledge of electronics wishing to create their own programmable boards and kits, there is a brand new range of GENIE microcontrollers that can be built into custom circuit designs and layouts.
Knowing where to start
As with all forms of design, where you start will depend on the particular design problem that you are attempting to solve. Sometimes the behaviour of a control system may be known early on, and at other times it may evolve slowly through further investigation or feedback from end users.
At some point in the design process, though, you will be ready to start planning the type of embedded control that your project requires. You will need to consider:
Of course, with so many different input and output components from which to choose, and such a wide array of possible programming options, what you really need is an expert on hand to guide you.
The Circuit Wizard 3 Resource Centre is that expert; an extensive collection of resources fine-tuned through decades of experience supporting teachers and students with their design projects, it is our way of being there in the classroom with you.
Programming with flowcharts or BASIC
To begin the process of actually writing the computer program that will run on a GENIE microcontroller and bring your project to life, you will require some special software — either Circuit Wizard 3 or the free GENIE Programming Editor.
Which of these two software products is right for you will depend on your level of expertise. The free GENIE Programming Editor is best suited to those already confident with electronics and programming, whereas Circuit Wizard 3 by contrast is aimed at those looking for more assistance, through its in-built set of classroom resources and support for designing, modelling and making.
Both Circuit Wizard 3 and the free GENIE Programming Editor allow you to control the behaviour of a GENIE system in two distinct ways: a graphical flowcharting system and a more powerful text-based BASIC programming language.
GENIE Flowchart programming
If you are new to programming, or just prefer a more graphical approach, then GENIE flowchart programming is for you. With flowcharts, programs can be created by selecting commands and then linking them together with the mouse.
Because flowcharts are more visual there is less for you to remember and fewer opportunities to make mistakes. When selecting the options for a command, for example, the software will provide a list of all the valid choices that are open to you.
GENIE BASIC programming
For those with prior programming experience, we also allow GENIE to be controlled through our own special version of the BASIC language.
Unlike the graphical flowcharts, BASIC is a text-based language, which means that you enter commands by typing their names into the computer along with any parameters that may be required (such as the values to be used in a calculation).
Most computer programming languages work this way, and so GENIE BASIC programming provides a stepping stone towards the languages and concepts that will be covered in complementary computing and technology courses.
Читайте также: