Как создать программу Windows в блокноте
Давайте создадим программу, не прибегая к установке дополнительного программного обеспечения. Только Windows, Блокнот и немножко времени.
Вы не ослышались. Написать программу в блокноте — это реально. Для этого не нужно устанавливать никаких дополнительных програм, компилятор, который нам понадобится — уже есть в каждой современной Windows системе.
Пишем код программы в Блокноте
Итак, создадим мы простое консольное приложение, редактором нам послужит стандартное приложение Windows — Блокнот, язык программирования C#.
Откройте проводник Windows, в любом удобном месте создайте текстовый документ, дайте ему любое имя, но при переименовании лучше изменить не только имя, а и его расширение, пусть имя будет program.cs
Для того, чтоб успешно скомпилировать код программы, достаточно одного класса, имеющего один статический метод Main:
class Program < static void Main(string[] args) < // Здесь вы можете вставить свой код >>
Но в таком виде программа ничего не делает, давайте сделаем программу «Минимум»:
using System; class Program < static void Main(string[] args) < Console.WriteLine("Хенде хох!"); Console.WriteLine("Нихт ферштейн!"); Console.ReadKey(); >>
Компиляция программы
Открываем командную строку Windows, в ней, делаем директорию, где мы хотим, чтоб компилятор создал файл программы, текущей. В моем случае это будет та-же директория, где располагается файл program.cs:
cd c:\tmp
Для компиляции нам понадобится компилятор csc.exe, который можно найти в папке C:\Windows\Microsoft.NET\Framework64\версия_NetFramework
В моем случае, полный путь к компилятору:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe
Если запустить компилятор с параметром /?, он выведет в консоль справочную информацию, которая поможет вам разобраться с работой компилятора
Но для сборки нашей программы ничего особого не нужно, достаточно в качестве параметра указать имя файла, в котором находится исходный текст программы. И помним, путь к компилятору нужно ввести полностью:
Вот и все, на выходе мы получили исполняемый файл
Давайте попробуем его запустить:
\
Вот так, используя Блокнот и не прибегая к установке никаких дополнительных программ мы написали программу Windows.
Notepad++
Notepad++, он же Notepad Plus Plus — это текстовый редактор, который можно использовать и для работы с текстами, и для написания и редактирования кода. Он похож на обычный «Блокнот», но функциональнее.
Освойте профессию «Веб-разработчик»
Не стоит путать Notepad++ с обычным Notepad: так называют «Блокнот», программу, которая по умолчанию есть в операционной системе Windows. «Блокнот» очень простой, по сравнению с ним Notepad++ куда мощнее и удобнее.
Иногда Notepad++ используют в качестве редактора кода. Так он стал известен среди разработчиков. Сейчас, несмотря на обилие IDE и специализированных редакторов, Notepad++ все еще используют для специфических языков программирования и сред.
Название придумали по аналогии с языком C++: тот был похож на C, но расширял его возможности. То же самое можно сказать про «Блокнот» и Notepad++ — его расширенный вариант. По-русски название читается как «ноутпад-плас-плас», реже его читают как «нотепад-плюс-плюс».
Python-разработчик
Освойте Python, самый популярный язык программирования
Для чего нужен Notepad++
Функциональность Notepad++ — нечто среднее между редактором текста и кода. Его можно использовать для множества задач, он довольно универсален. Вот несколько примеров, для чего может пригодиться редактор.
Для заметок. Notepad++ поддерживает языки разметки, на которых пишут технические заметки и документацию, например Markdown или LaTeX. Он знает их синтаксис и выделяет все по правилам. Поэтому техническому специалисту, привыкшему описывать все с помощью специальных языков, будет удобно писать заметки с помощью этого инструмента.
Для текстового контента. Также Notepad++ — текстовый редактор, а это значит, что в нем можно писать разнообразные тексты. В отличие от обычного «Блокнота», он поддерживает вкладки: пользователь может одновременно открыть несколько текстов в разных вкладках. Выше и возможности для форматирования. В Notepad++ по умолчанию включена поддержка Markdown — разметки, с помощью которой можно изменять текст. Можно создавать заголовки и списки, делать участки текста полужирными или наклонными — все базовые возможности есть.
Для записи кода. Причина, по которой редактором пользуются айтишники, — в нем можно писать код. Он поддерживает и узнаёт множество языков программирования, от популярных до очень редких. К тому же Notepad++ гибко настраивается и в нем есть множество возможностей, удобных разработчикам. Он фактически повторяет часть функциональности профессиональных IDE или редакторов кода, но при этом куда меньше весит и требует мало оперативной памяти.
Кто пользуется Notepad++
Среди пользователей редактора — IT-специалисты, инженеры и другие профессионалы, но не только. Им могут пользоваться и представители других профессий, связанных с текстами, расчетами или контентом. Notepad++ универсален. Он подходит для рабочих записей, художественных и технических текстов, HTML-разметки и многого другого. Более того, он расширяемый. Поэтому и вариантов его применения масса.
Для полноценной разработки редактор используют редко. Но он отлично подходит для быстрого редактирования кода или контента, добавления заметок и других похожих задач. Часто им пользуются веб-разработчики, пишущие на JavaScript или PHP, а также верстальщики для создания разметки на HTML и CSS.
Возможности Notepad++
Notepad++ имеет те же возможности, что обычный текстовый редактор. В нем можно писать и редактировать тексты, сохранять их в разных форматах, проводить поиск и замену — это отличает его от «Блокнота», где нет такой функциональности. Но кроме того, у Notepad++ есть ряд особенностей, которые делают его удобным для программистов и веб-специалистов.
Обилие форматов и кодировок. Notepad++ поддерживает огромное количество форматов, в которых можно сохранить файл. Это не только текстовые форматы, но и те, в которых сохраняется код на разных языках. Кроме непосредственно программ, он позволяет сохранять верстку, разметку для текстов и другие данные. В нем по умолчанию поддерживается несколько десятков форматов для разных технологий.
Кроме того, в редакторе по умолчанию есть поддержка наиболее популярных кодировок. В разных системах символы кодируются по-разному. Если скопировать текст в одной кодировке в редактор или браузер, который поддерживает другую, получится нечитаемый набор символов. Notepad++ можно переключать между кодировками, чтобы работать с разным контентом. Для некоторых кодировок доступен перевод из одной в другую. Это может быть важно для веба.
Подсветка синтаксиса. Эта возможность делает Notepad++ ближе к редактору кода, чем к текстовому. Редакторы кода умеют подсвечивать определенные конструкции в коде: так он легче читается, в нем проще найти нужные моменты. Это называется подсветкой синтаксиса.
В Notepad++ есть поддержка и подсветка синтаксиса внушительного количества языков. При написании кода можно выбрать в меню синтаксис, которым вы пользуетесь: там есть десятки вариантов, в том числе для редких языков.
Notepad++ автоматически начнет подсвечивать и показывать конструкции, характерные для выбранного языка.
Например, удобная функция — подсветка открывающих и закрывающих конструкций. Она поможет не ошибиться с тем, где заканчивается тот или иной блок кода.
Станьте Frontend-разработчиком
и создавайте интерфейсы сервисов, которыми пользуются все
Автодополнение. Автоматическое дополнение — возможность многих редакторов кода. Когда человек набирает какое-то слово из фразы, редактор подсказывает, как можно ее завершить. В качестве вариантов для завершения он выбирает слова, которые уже использовались в этом файле.
Для работы с текстами эта возможность почти бессмысленна: словарный запас у людей большой, причем одно и то же слово может быть в разных формах. Но в коде синтаксические конструкции используются строго в едином формате и часто повторяются. Поэтому для написания кода возможность автодополнения удобна. Представьте: достаточно написать первые две буквы переменной, которая уже описывалась выше, — и редактор сам предложит закончить ее название. Достаточно будет нажать Enter.
Такая функция есть в большинстве редакторов кода, не только в Notepad++. То же самое можно сказать про подсветку синтаксиса.
Поддержка регулярных выражений. Регулярные выражения (regexp) — это символьные выражения, с помощью которых можно искать и редактировать подстроки в тексте. Например, * означает «любое количество любых символов», а ? — «ноль символов или один любой символ».
Регулярные выражения активно используются в программировании при работе с текстовыми данными и кодом. Встроенный поиск Notepad++ поддерживает не только обычный ввод символов, но и регулярные выражения. С помощью этого инструмента можно быстро редактировать большие объемы текста — например, заменить все большие буквы на маленькие или вставить в функцию новый аргумент.
Запуск кода. В отличие от IDE, Notepad++ «из коробки» не умеет запускать код и выводить результаты его работы в консоль. Такие возможности можно добавить с помощью расширений, но и они будут довольно ограниченны. Тем не менее возможность запуска кода в редакторе есть, просто не собственными силами.
Во вкладке «Запуск» есть возможность открыть написанный код с помощью компилятора или интерпретатора, установленного на компьютер. Понадобится выбрать путь к компилятору — Notepad++ «передаст» ему код, а остальное тот сделает сам.
JavaScript можно запустить через браузер — он автоматически откроет и запустит написанный код. Этот язык работает в браузере, поэтому его можно запускать и без установки интерпретатора.
Обилие плагинов для разных целей. Важное преимущество Notepad++ — в его расширяемости. Наличие плагинов и дополнительных модулей — не редкость для редакторов кода, но в текстовых редакторах встречается редко. Благодаря плагинам функциональность Notepad++ можно изменять почти как угодно: их много, они создаются под разные цели и находятся в свободном доступе.
Вот несколько примеров плагинов для редактора:
- FTP-клиент, позволяющий соединяться через Notepad++ с файловым сервером;
- спеллчекер для проверки орфографии с возможностью загружать разные словари;
- анализатор, позволяющий искать в коде определенные шаблоны;
- плагин для голосового управления редактором;
- плагин для вывода сообщений компилятора при сборке и запуске кода.
В реальности их десятки — от узкоспециализированных инструментов до общих расширений, облегчающих работу с Notepad++.
Что не может делать Notepad++
Тем не менее редактор довольно ограничен по сравнению с профессиональными инструментами для написания кода. Его стоит рассматривать как улучшенный «Блокнот», а не как полноценную IDE. Многого из того, что есть в средах программирования, там нет. Более того, возможности текстовых редакторов вроде Word или Google Docs он тоже не повторяет.
Вот несколько примеров вещей, которые не может Notepad++.
Работать с проприетарными форматами. Проприетарными называются форматы, строго зарезервированные для какого-то коммерческого продукта. Например, для Photoshop это формат PSD, для Word — DOC и DOCX, и так далее. Они считаются «родными» для конкретной программы, а вот остальное ПО их обычно поддерживает ограниченно.
Notepad++ — свободная программа с открытым исходным кодом. Она распространяется по лицензии GPL. Такой формат подразумевает, что ПО полностью бесплатное и не пользуется «платными» инструментами.
Большинство форматов, в которых сохраняют код, свободные. Их в Notepad++ использовать можно, более того, они есть в нем по умолчанию. А вот среди текстовых форматов довольно много проприетарных, например RTF или DOCX. В таких форматах текст из этого редактора сохранить не получится.
Форматировать текст через визуальный редактор. При работе с обычными текстовыми редакторами пользователь видит меню, в котором можно отформатировать текст. Например, нажать на кнопку в верхней панели, чтобы текст стал полужирным, создать таким образом заголовок или вставить картинку.
Программа с таким интерфейсом называется визуальным редактором или WYSIWYG-редактором (аббревиатура от What You See Is What You Get — что видишь, то и получишь). Это удобно, если вы работаете с текстами, но в редакторах кода такие возможности встречаются редко. В Notepad++ их тоже нет.
Тем не менее форматировать текст в нем можно: через Markdown, LaTeX и другие языки разметки. Но чтобы он выглядел как надо, понадобится открыть его через специальные программы, обрабатывающие разметку на выбранном языке. Возможности сразу увидеть отформатированный текст в Notepad++ нет.
Открывать слишком большие файлы. Редактор создавался для промежуточной работы с кодом и для внесения правок. Он легкий и небольшой. Открывать в нем большие файлы проблематично: можно столкнуться со встроенным ограничением на их размер. В версии x32 максимальный объем файла — 4 Гб, но 2 Гб из этого объема система резервирует на процессы. Остается 2 Гб, но фактический возможный размер еще меньше, потому что для каждого байта текста передается дополнительная информация.
В версии x64 можно работать с более крупными файлами, но Notepad++ может тормозить при их открытии и редактировании. Поэтому для больших объемов данных этот инструмент не подходит.
Работать с Git. Git — популярная система контроля версий, которая позволяет создавать «сохранения» для каждой версии кода. Их можно разветвлять, откатывать и сливать в одно. Системой активно пользуются программисты, чтобы создавать обновления кода, работать в команде, а при необходимости возвращаться к старым версиям. Это помогает избежать критичных ошибок и иметь под рукой предыдущие версии программ.
Notepad++ не поддерживает Git и не может с ним интегрироваться. Это отличает его от современных IDE и редакторов кода: они зачастую умеют контролировать версии непосредственно через собственный интерфейс. А вместо команд в консоли в редакторах можно нажать несколько кнопок. Notepad++ так не может. Для использования Git понадобится открывать консоль и работать с системой контроля версий через нее.
Запускаться под macOS или Linux. Notepad++ написан на языке C++ с помощью стандартной библиотеки шаблонов STL и Win32 API. Из-за последнего он существует только для Windows. В остальных операционных системах придется использовать другие редакторы. Это не очень удобно, потому что разработчики часто пользуются Linux или macOS. В теории можно воспользоваться эмуляторами или специальными программами, позволяющими запускать Windows-программы в других системах. Но это неудобно и сводит на нет важные плюсы Notepad++ — легкость, компактность и мобильность.
Можно ли использовать Notepad++ вместо IDE
В теории это возможно, если вы пишете несложные программы. Notepad++ довольно примитивен по сравнению с продвинутыми средами разработки и мощными редакторами кода. Но для простых задач его должно хватить.
Профессиональные разработчики в основном используют для программирования специализированные среды, а Notepad++ им нужен как вспомогательный инструмент. Как основной его могут применять верстальщики — но и они предпочитают писать разметку в редакторах кода.
Тем не менее это легковесный, удобный и бесплатный редактор, который отлично подойдет для просмотра и редактирования кода — или текстовых файлов.
Хотите узнать больше про инструменты, которые есть в IT? Записывайтесь на курсы: мы поможем разобраться и выбрать новую профессию.
IT-специалист с нуля
Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.
Статьи по теме:
Простой разбор для тех, кто еще не пробовал программировать или попробовал и испугался
Рассказываем про интегрированные среды разработки и редакторы кода, помогаем выбрать подходящий инструмент
Вычислительные Wolfram блокноты
Идеальная среда для технических рабочих процессов, включая науку о данных, моделирование, исследование и образование, сочетающая грамотное программирование и интерактивную публикацию на рабочем столе, в Интернете и на мобильных устройствах в единой системе на основе языка Wolfram Language.
Что такое вычислительные блокноты?
Вычислительные блокноты, впервые разработанные компанией Wolfram, являются основным средством современной технической коммуникации и инноваций, объединяя текст, графику и живой код для удобного и точного выражения идей.
Что делает Wolfram блокноты уникальными?
Wolfram блокноты воплощают полную интеграцию среды документов, приложений и разработки для преобразующего технического рабочего процесса. Кроме того, это единственный в мире тип документа, построенный на том же, удобном для восприятия человеком языке, который реализует его алгоритмы и лежит в основе его собственного формата и содержания. Документ выполняет программу, или программа выполняет документ, всегда взаимозаменяемо, полностью гибко и интуитивно понятно. Рабочие процессы, основанные на разных языках, разных компонентах и библиотеках алгоритмов со смешанным исходным кодом, ослабляют эффективность и ясность. Wolfram блокноты вместе с языком Wolfram Language обеспечивает функционирование уникальной универсальной интерактивной платформы, которая поддерживает высокоавтоматизированные кросс-платформенные корпоративные вычисления и коммуникацию в любой области без каких-либо компромиссов.
Больше чем Jupyter: интерактивные блокноты для работы с данными
Обычно основную работу с данными выполняют дата-аналитики и программисты, но растет число других специалистов, которым тоже приходится разбираться с этими же данными — это дизайнеры, градостроители, журналисты и так далее. Для всех специалистов необходим общий язык, а также пространство, где команда может работать вместе.
Интерактивный блокнот — это среда с удобным интерфейсом для выполнения кода, визуализации данных и оценки результатов. Блокноты позволяют объединить данные и контекст в единую историю, которую легко отправить коллегам на доработку или открыть на других устройствах. По словам Мишель Юффорд, руководителя отдела данных в Netflix, использование интерактивных блокнотов определит работу с данными в будущем.
Интерфейс интерактивного блокнота Jupyter. Источник: morphocode
Интерактивные блокноты состоят из ячеек, каждая из которых содержит код, текст, изображения, карты или графики. Легко запустить отдельную ячейку кода, изучить результат, скорректировать код и повторно оценить результат, повторяя итерации, пока все не заработает. Блокноты удобны для уточнения и анализа наборов данных, объединения данных из различных источников, создания прототипов визуализации данных и изучения новых идей. А еще блокноты удобны, если вы только начинаете программировать: в большинстве вариантов не нужно ничего устанавливать на компьютер — интерактивный документ можно открыть и выполнить в браузере.
Jupyter Notebook
Начнем с самого популярного интерактивного блокнота. Jupyter Notebook — проект с открытым исходным кодом, который используют многие организации, включая Google, Netflix и Microsoft. Удобная среда JupyterHub позволяет обмениваться блокнотами, и каждый член команды получает свой экземпляр блокнота.
Блокнот Jupyter состоит из двух ключевых модулей: пользовательского интерфейса и ядра. Пользовательский интерфейс — это веб-приложение в браузере, а также место, где вы редактируете блокнот, добавляя код и комментируя процесс.
Пример блокнота Jupyter. Источник: J. R. Johansson в nbviewer, платформе для отображения блокнотов Jupyter
Ядро — это место, где выполняется код. При исполнении ячейки кода ядро вычисляет результат отдельным процессом вне браузера и отправляет его обратно в браузер, где вы продолжаете работу с ним. Пользователь не ограничен одним языком программирования — есть ядра для Python, R, JavaScript и т.д.
nTeract
nTeract — это настольное приложение для создания интерактивных блокнотов с открытым исходным кодом. Установив его в своей системе, вы можете дважды щелкнуть по файлу блокнота и начать редактировать. Минималистичный пользовательский интерфейс на React дает такие возможности, как перетаскиваемые ячейки, поддержку GeoJSON и встроенные графики через Vega and Altair.
Карта проверок ресторанов в nTeract. Источник: morphocode
Вы можете скачать nTeract на сайте и посмотреть другие примеры на GitHub.
GeoNotebook
GeoNotebook — еще один интересный проект на основе Jupyter. В пользовательском интерфейсе классический редактор сочетается с большой интерактивной картой. Здесь можно отображать геоданные, выбирать пользовательские регионы и выполнять геопространственный анализ.
Пример работы в GeoNotebook. Источник: OpenGeoscience
GeoNotebook отлично подходит для работы с растровыми геоданными. Больше примеров – на странице GitHub.
Блокноты Observable
В 2017 году был анонсирован проект d3.express, который позже превратился в Observable — блокноты с акцентом на интерактивности и визуализации. Они запускаются в браузере и предоставляют нативный доступ к графическим возможностям, включая SVG, Canvas и WebGL.
Блокноты Observable построены с JavaScript и позволяют импортировать любую библиотеку, опубликованную на npm, включая популярные библиотеки визуализации данных: d3.js, plotly, mapbox-gl, three.js и другие.
Пример — horizon charts в Observable. Источник: morphocode
Интерактивные блокноты Observable тоже состоят из ячеек, содержащих код, изображения и текст. Отличительной особенностью ячеек является их «реактивность» — когда вы изменяете одну ячейку, все связанные с ней ячейки обновляются, как в электронной таблице.
Чтобы начать работу, посмотрите на коллекцию блокнотов, а потом можете использовать Observable для обмена своими открытиями, визуализации данных или интерактивных историй.
R Notebooks
R Notebooks — это часть среды разработки с открытым исходным кодом RStudio. Эти блокноты тесно связаны с экосистемой R, предоставляя доступ к мощным библиотекам из tidyverse, таким как ggplot2 и dplyr.
Карта в R Notebooks
R Notebooks — это документы, состоящие из фрагментов, которые можно выполнять в интерактивном режиме. В отличие от блокнотов Jupyter, они хранятся в виде файлов в формате markdown, а их вывод — в виде отдельного HTML-файла. Ознакомьтесь с введением и пробуйте!
Google Colab
Совместная работа является неотъемлемой частью модели интерактивных блокнотов. Работая в команде, вы можете использовать один блокнот как точку доступа к данным, коду и исследовательским проектам. На совместной работе делает акцент Colab от Google— еще одна бесплатная среда для интерактивных блокнотов, работающая в облаке. Она позволяет сохранять данные на Google Drive, делиться блокнотами с другими пользователями и работать с машинным обучением прямо в блокноте.
Блокнот с PrettyMaps в Google Colab
Какой интерактивный блокнот выбрать? Это зависит от цели проекта и размера набора данных. Блокноты Jupyter эффективны при работе с большими наборами данных, поскольку вычисления производятся на стороне сервера ядром Python и предоставляют доступ к мощным библиотекам анализа данных, таким как geopandas и numpy. С другой стороны, Observable предлагает отличную интерактивную площадку для визуализации, JavaScript и эффективные инструменты: plot.ly, leaflet, mapbox-gl. Можно комбинировать подходы, используя Jupyter для тяжелой работы, а Observable для визуализации данных и взаимодействия в команде.
Источники:
- Interactive notebooks for data analysis and visualization – Morphocode.
- JupyterHub, или как управлять сотнями пользователей Python. Лекция Яндекса.