На чем пишут оконные приложения
Перейти к содержимому

На чем пишут оконные приложения

  • автор:

Где разрабатывать оконные приложения на c#

Мне нужно быстро сделать оконное приложение на с#. Удобнее всего использовать для этого Visual Studio, так как по ней много гайдов и есть встроенная программа для того, чтобы в визуальном режиме размещать на окне кнопки, text area и т.д. Но на ubuntu я не могу установить Visual Studio. Чем можно заменить её или какие ещё есть способы сделать быстро не очень сложную форму? Wine отказался устанавливать по причине отсутствия dotnet в системе.

До этого писал приложения которые не требовали оконного интерфейса с помощью такой штуки: ссылка на сайт и VsCode

Прошу не давать советы по типу: «установи windows»или «накати на флешку, второй диск, виртуальную машину и т.д». Хочу обойтись без windows

mayar
14.09.21 16:07:50 MSK
1 2 →

Где хотите, в том же вскоде, виме или райдере.

fernandos ★★★
( 14.09.21 16:13:23 MSK )

не покатит нативно винформ, потребуется фрэймворк

AvaloniaUI — говорят стал хорош, но сам я палочкой не тыкал

Morin ★★★★
( 14.09.21 16:16:19 MSK )

есть способы сделать быстро не очень сложную форму?

Выучить программирование, и набросать в конструкторе класса формы элементов в Controls.

Визуальный дизайнер не нужен…

fsb4000 ★★★★★
( 14.09.21 16:18:53 MSK )

Месье знает толк… Ну серьезно, ты хочешь взять язык, разработка на котором заточена в основном под винду и лабать для линукс.

rumgot ★★★★★
( 14.09.21 16:21:57 MSK )
Ответ на: комментарий от fernandos 14.09.21 16:13:23 MSK

Я даже не могу создать приложение с winforms

dionysus@silenus:~/Documents/univ/dotnet/tasks$ dotnet new --list Template Name Short Name Language Tags --------------------------- -------------- ---------- ---------------------- Console Application console [C#],F#,VB Common/Console Class library classlib [C#],F#,VB Common/Library Worker Service worker [C#],F# Common/Worker/Web MSTest Test Project mstest [C#],F#,VB Test/MSTest NUnit 3 Test Item nunit-test [C#],F#,VB Test/NUnit NUnit 3 Test Project nunit [C#],F#,VB Test/NUnit xUnit Test Project xunit [C#],F#,VB Test/xUnit Razor Component razorcomponent [C#] Web/ASP.NET Razor Page page [C#] Web/ASP.NET MVC ViewImports viewimports [C#] Web/ASP.NET MVC ViewStart viewstart [C#] Web/ASP.NET Blazor Server App blazorserver [C#] Web/Blazor Blazor WebAssembly App blazorwasm [C#] Web/Blazor/WebAssembly ASP.NET Core Empty web [C#],F# Web/Empty ASP.NET Core Web App (Mo. mvc [C#],F# Web/MVC ASP.NET Core Web App webapp [C#] Web/MVC/Razor Pages ASP.NET Core with Angular angular [C#] Web/MVC/SPA ASP.NET Core with React.js react [C#] Web/MVC/SPA ASP.NET Core with React. reactredux [C#] Web/MVC/SPA Razor Class Library razorclasslib [C#] Web/Razor/Library ASP.NET Core Web API webapi [C#],F# Web/WebAPI ASP.NET Core gRPC Service grpc [C#] Web/gRPC dotnet gitignore file gitignore Config global.json file globaljson Config NuGet Config nugetconfig Config Dotnet local tool manife. tool-manifest Config Web Config webconfig Config Solution File sln Solution Protocol Buffer File proto Web/gRPC dionysus@silenus:~/Documents/univ/dotnet/tasks$ 

А если делать с нуля боюсь что потрачу кучу времени, в таком случае тогда реально лучше поставить виртуалку с виндой

На чём написать оконное приложение?

Есть большая потребность написать приложение под Винду, которое должно получать данные по UART (COM port), отображать их и отправлять обратно команды. Суть диагностическая утилита. Красиво не надо, надо функционально. Вопрос в следующем: какой язык для этого лучше подходит (знаю С, С++, Python) и какая среда разработки? Приложение не должно быть привязано к среде, как VisualBasic, должно открываться на всякой реликтовой технике и осях начиная с ХР

Отслеживать
задан 27 дек 2019 в 16:59
56 5 5 бронзовых знаков
Странно слышать такой вопрос, от человека знающего С, С++, Python
27 дек 2019 в 17:26

Однозначно не ответишь. На чём умеете, на том и пишите. Однако Python-то в виндах привязан к своей «среде»

27 дек 2019 в 17:26
@MBo А C++ не привязан к архитектуре?
27 дек 2019 в 17:28

@Дмитрий Гвоздь C++ создаст исполняемый файл, который будет работать везде (если в свежей MSVS, например, предусмотреть совместимость с XP), а что со скриптом Py делать, если интерпретатор не установлен?

На чем лучше всего писать Windows приложение?

Есть задача, написать приложение для гос. нужд по Windows.
И думаю, на чем писать.

.NET всем хорош, но framework нужно будет заставлять устанавливать (не везде он стоит еще по дефолту, поверьте мне).

А вы бы на чем предложили написать небольшое отдельное приложение для мат. расчетов?

  • Вопрос задан более трёх лет назад
  • 36731 просмотр

Комментировать
Решения вопроса 0
Ответы на вопрос 14
deactivatedtheelephant @deactivatedtheelephant

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

YYY: Причем из этих двух молотков, один был бы самодельной киянкой!

XXX: Точно. А еще кто-нибудь заявил бы, что все ламеры, а вместо гвоздя нужно использовать шуруп.

YYY: И предложил бы свой вариант самореза с правой резьбой под шестигранную отвертку с логотипом Sun…

XXX: А потом кто-нибудь прийдет и скажет, что посадил все на суперклей и вроде стоит.

YYY: А кто то будет причитать про то, что раньше вообще без гвоздей строили и стояло века…

Ответ написан более трёх лет назад
Нравится 7 1 комментарий
deactivatedtheelephant @deactivatedtheelephant
&copy Бояны с баша

Боюсь напороться на лютоминусующих антидельфистов, но…
Если ситуация такова, что не везде даже .NET установлен (что значит максимум XP с ранними SP или вообще без них), то железо должно быть не особо мощное. Почему бы не попробовать Delphi? Как по мне — фреймворка лучше для разработки Win32-приложений, не требующих .NET, не найти. На выходе будет native виндовое приложение, которое (при нужных навыках) быстро разрабатывается и легко расширяется. Кроме того, последние Delphi IDE (версии 2007+) относительно пригодны для комфортного девелопинга.

Ответ написан более трёх лет назад
Нравится 5 5 комментариев
относительно пригодны для комфортного девелопинга
Или C++ Builder в такоем разе тоже подойдет ))

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

noway @noway Автор вопроса

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

Вам шашечки или ехать? Если нужен «продвинутый» язык, то поинтересуйтесь, что сейчас в моде и пишите на каком-нибудь Ruby (ничего личного к пишущим на этом языке).
Delphi же вам может обеспечить скорость разработки и скорость вычислений без дополнительных примочек, устанавливаемых в систему.

Не знаю, что вы подразумеваете под кривостью библиотек… У BDE, которое не всем нравилось, давно есть альтернативы. Критических багов не наблюдается еще версии наверно с 7-й. Юникод уже причесали по всему VCL. С разными мелочами, которые кочуют из версии в версию для обратной совместимости, можно мириться. Ну и так далее.

Вот тут я задавал подобный вопрос — habrahabr.ru/qa/1894/

Остановился на C# + winforms, хоть и не имел опыта кодинга (только веб), разобрался довольно быстро. В инете куча документации, проблемы решаются быстро, и больше половины задуманных фич можно реализовать интуитивно.

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

Ответ написан более трёх лет назад
Нравится 3 8 комментариев

volanddd

это критично если потребуется перенести приложение под Linux например, да и когда я работаю из под WinXp, то выбираю приложения, неиспользующие .NET Framework.
Уж если есть желание использовать фреймворк, то почему бы не мультиплатформенный -Java например, если приложение не системное

.net портируется под линух, есть же mono

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

на интерпретируемом языке

Очень большую глупость сморозили

Не говоряуж о том, что компилятор в Qt используется очень серьезный и мощный

У Qt есть свой компилятор? O_o Можно пруф?
proDOOMman @proDOOMman
У Qt есть метакомпилятор moc
Уф, а я уж думал, что что-то упустил и как дурак компилирую gcc 🙂

Наверное asm0dey имел в виду mingw32, который идёт (или шёл) в некоторых вариантах Qt SDK для MS Windows.

Антон @kosmonaFFFt
Senior Java Developer.
Или просто С++ c Qt — ИМХО довольно удобная штука для разработки…
Ответ написан более трёх лет назад
Нравится 3 5 комментариев

Для вычислений лучше использовать компилируемый язык. .NET, как и Java, собирается не в команды процессора, а в промежуточный байт-код, что приводит к потере производительности.

промежуточный байт-код

В дотнете и жабе так вообще Ahead-of-time компиляция. Изучите тему перед тем как делать небоснованные заявления.

Сравнение по скорости родного кода на C с Java и .net, правда, под Linux. Там байткоды были медленнее на 70% и более. Когда кто-нибудь представит мне обратные примеры, я изменю своё мнение. Но не ранее. Минусы в карму вместо аргументов не прокатят.

«Сравнение по скорости… на хабре недавно было.» Отвлекли посреди фразы.

если .net хотя бы 2.0 не стоит, то его немедленно стоит ставить. По под windows + 2010 без dotNet не имеет смысла и не актуальности.

Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать

Чем плох Python + PyQt/wx, запакованный в один .exe? На нём же можно и математику написать, взяв тот же PyPy и какую-нибудь либу для математики (numpy тот же).

Ответ написан более трёх лет назад
Нравится 2 4 комментария

Python язык интерпретируемый, как следствие небыстрый. Если вычисления достаточно сложны, это будет очень заметно (в тяжёлых случаях проигрыш на порядок).

Я же говорю, посмотрите на PyPy. Это JIT для питона.

Ну и numpy и scipy в узких местах на C переписаны, так что работают быстро. Они активно используются математиками, биолагами, инженерами и т.д. как более гибкая, бесплатная/открытая и, возможно, удобная замена матлабу. «Голые» расчеты можно на Cython делать, это совсем не сложно. Но вот насчет pypy — не уверен, что он работает нормально под windows, и не уверен, что он PyQT сможет запустить. Насчет написания GUI на PyQT — думаю, на том же дельфи или вижуал студии это делать проще.

habreffect.ru/files/8a5/65504c40f/JIT_power.png — запускается более чем быстро и даёт гигантский прирост скорости вычислений.
С чего на дельфи или вижуал студии будет проще? Вообще-то есть QtDesigner, PyQt умеет подхватывать его файлы описания GUI при запуске.

В последнее время стало модно писать для Windows на Silverlight. Поставить плагин к браузеру всё-таки проще, чем целый фрэймворк, и исчезает проблема автоматического обновления приложения.
Начиная с 4- версии Silverlight позиционируется не только как веб-клиент, но и как Windows-приложение (про это много говорил товарищ Черномордиков).
Однако нужно учесть, что Silverlight-приложения по задумке должны общаться с внешним миром в основном через веб-сервисы (хотя есть возможность работать с файлами в личной папке и взаимодействовать с MS-Офисом и пр.).

Если приложение сложное, требуется прямой доступ к БД, требовательно к аппаратным ресурсам или должно получать доступ к системным файлам — тогда WPF.

Сам сейчас разрабатываю большую корпоративную систему документооборота, весь интерфейс на Silverlight. В 99% случаев для бизнес-задач этого достаточно.

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
> А вы бы на чем предложили написать небольшое отдельное приложение для мат. расчетов?
Ответ написан более трёх лет назад
Нравится 1 1 комментарий

Упс, мышка дрогнула 🙂

Я бы ещё обратил внимание, на то, что это за рассчеты (есть ли нетривиальные, к которым есть готовые сторонние бибилиотеки), как нужно подавать результаты (отрисовка графиков, форматы сохранения результатов) и выбирал бы исходя из наличия таких библиотек (минимума своей работы).

В общем, делал что-то про рассчеты и математику, сначала думал о дельфи, но пришел к C# с ZedGraph (графики) + alglib (численные методы) + pdfsharp (сохранение в pdf)

Попробуйте wxWidgets. Получите native приложение для Windows + возможность относительно легко перенести приложение на другие платформы (на случай перехода упомянутого гос. учреждения на Linux).

В целом, wxWidgets — довольно приятный в работе фреймворк. Недостатком можно считать скромное (по сравнению с другими) количество документации, но могу сказать, что официальных доков, книги Джулиана Смарта, нескольких статей на русском и примеров с официального сайта вполне достаточно, чтобы решить большую часть вопросов, возникающих в процессе работы.

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
pietrovich @pietrovich

.net всем хорош, требование установить фреймворк за минус не считаю. однако для математики есть Fortran и иже с ним, вот их я в .net и не припомню. хотя нет, нашел кое что — www.lahey.com/
если их скрутить, в сети есть примеры, то должно быть удобно — формочки-фигормочки на C#, вычисления на Fortran 😉

Ответ написан более трёх лет назад
pietrovich @pietrovich
www.silverfrost.com/11/ftn95/overview.aspx вот еще более интересный fortran for .net

вообще-то не стоит отказываться от .NET при разработке «стационарного» приложения только из-за необходимости установки фреймворка. C# вполне хороший выбор для написание приложения чисто под Windows.

если нужно написать именно небольшую, портабельную программку, можно воспользоваться C или C++

также можно написать на Java. но придётся немало помучится тупо с настройкой среды, и JRE всё равно придётся ставить на клиентские машины. зато будет кроссплатформенно. если кросплатформенность не нужна, лучше C#.

Ответ написан более трёх лет назад
Если писать в eclipse, то есть возможность не ставить виртуальную машину

«на Java. но придётся немало помучится тупо с настройкой среды»
Вы хоть раз программировали для Java?
Ставим NetBeans и клепаем приложение как Visual Studio, т.е. мышкой создвать формы очень удобно, а JRE весит всего 15 мегабайт…

да, я писал на NetBeans )
всё же сделать нативно выглядящий интерфейс сложнее чем на студии
habreffect.ru/files/368/3a4010d6b/console.png вот — такой ужос получается
студия заточена под винду и в ней всё нативнее
имхо :-[

> .NET всем хорош, но framework нужно будет заставлять устанавливать

Можно использовать Xenocode Virtual Application Studio или аналоги, которые завернут вашу прогу в один бинарник с .Net Framework (т.е. не зависят от установленного и не ставят его в систему). Основной недостаток — заметное время запуска.
Вроде бы есть бесплатный вариант приготовления этого же самого на основе mono mkbundle (в т.ч. для windows) но не пробовал.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Для GUI — QT, который и кроссплатформенный, и не требует за собой тащить фреймворк, все в либах. А уж что внутри — выбирайте сами.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Flexey

В Excel на VBA — для расчётов самое оно.

Microsoft Office стоит на всех компьютерах, поэтому такое приложение можно будет запустить везде и всегда.

Ответ написан более трёх лет назад

MaxMind

В Excel на VBA — для расчётов самое оно

Уступает во всём тому же Python для которого написано множество (математических) библиотек. Невозможно защитить приложение и данные. Невозможно гарантировать работу (запуск скрипта). Есть куча ограничений в самом Excel. Есть очень высокий риск столкнуться с ошибками автоматической конвертации (и потери) данных Excel, особенно с учётом того, что на разных машинах могут быть разные настройки языка/региона. Для запуска в фоне нужно будет очень сильно извратиться (не уверен, что вообще возможно запустить Excel без отображения интерфейса). Не уверен, что вообще возможно написать многопользовательское приложение на Excel. Ну и просто тормозное решение.

Microsoft Office стоит на всех компьютерах, поэтому такое приложение можно будет запустить везде и всегда.

Это не так. В лучшем случае — это очень сильное допущение (ограничение, в том числе — по версии установленного Office), притом, что это ограничение завязано на проприетарном и не бесплатном продукте.

Flexey

Марат Максумов,
люди спрашивают для гос. службы под виндоус.

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

А что бы писать под .NET, надо ставить Visual Studio на рабочий компьютер, что тоже могут запретить.

А если рабочий компьютер работает на виндоус, то MS Office там стоит точно. И в этом случае не надо никого просить чтобы тебе что-то поставили.

MaxMind

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

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

Excel годится для домашней автоматизации. Более ни для чего. Недостатки Excel привёл ранее.

MaxMind

Для быстрого знакомства с магией обработки данных на пайтоне («для расчётов самоё оно») могу рекомендовать ознакомиться с обзором функционала Python + Jupyter Notebook (да, да — не обязательно ставить на каждой локальной машине Python) + Pandas (для импорта данных из различных форматов по щелчку пальцами) и библиотек Python для работы с данными и визуализации (Numpy, Matplotlib, Seaborn) по этой ссылке:

Flexey

Вы видимо плохо себе представляете атмосферу в офисах корпораций. Работник не может устанавливать на свой рабочий компьютер программное обеспечение по своему желанию. На его компьютере стоит только то ПО, которое ему необходимо для выполнения его профессиональных обязанностей. И поставить какой-нибудь FreeCommander уже не получится. У людей вон даже .NET Framework не установлен (см. изначальный вопрос), потому что не предполагается, что они будут пользоваться программами сделанными в VisualStudio. Что уже говорить о чуждых виндоус Питоне и Qt. Вы все абсолютно правы что это всё очень круто, но кто Вам позволит использовать всю эту крутизну в офисной работе?

И всё таки мы тут помогаем решить проблему человеку, а не рекламируем какие-либо технологии.

MaxMind

Алексей Дубровинский, ну не посчитайте излишне сложным если не посмотреть видео по предыдущей ссылке (достаточно нескольких минут), то хоть пройти по ссылке https://colab.research.google.com/ для того, чтобы убедиться, что ничего ставить локально для запуска python не нужно, можно обойтись работой через браузер в Jupyter Notebook.

Flexey

В статье ниже пишется, что для Jupyter Notebook что-то всё таки надо устанавливать.

MaxMind

Алексей Дубровинский, но это вовсе не значит, что Jupyter Notebook нужно ставить локально.

Flexey

Посмотрел видео.
Не думаю, что это приживётся в офисной среде.
И VBA то для людей слишком сложно. Да и Excel стоит на всех машинах.

На любителя короче.

MaxMind

Алексей Дубровинский, а тут думать не нужно, компании голосуют рублём и потребность в Data Analyst и Data Scientist растёт на сотни процентов в год. От низкоквалифицированного персонала никто не требует навыков программирования (их удел ткнуть галочку/кнопку или набрать данные формы), а для специалиста проверить гипотезу в Jupyter Notebook, обернуть этот код python в условный Flask и выложить на веб-сервер дело нескольких минут (и на этом процесс разработки софта закончен, а софт уже работает, доступен и готов обслуживать пользователей). Ничего подобного Excel никогда не сможет предложить, у этого продукта низкий порог входа, но при этом — куча родовых травм в архитектуре, которые не позволяют всерьёз рассматривать этот продукт для хранения и обработки данных.

Flexey

Это уже не приложение для гос. служб под виндоус.

И думаю что у noway и у Вас разное понимание, что такое математические расчёты. Скорее всего, на гос. службе никто никакие гипотезы не проверяет.

На чем писать мультиплатформенное desktop-приложение? Взгляд менеджера

Сегодня авторы большинства приложений уже не могут позволить себе выпускаться под одну платформу. Early adopters сидят под маками, мейнстрим сидит под Win32, а гики и адепты open source предпочитают Linux. Каждая из этих аудиторий обладает уникальными свойствами, а поэтому важна для большинства проектов.

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

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

Обозначим рамки исследования. Мое приложение — небольшая утилита для пользователя-«чайника», которая качает файлы из интернета: минимум GUI, небольшой набор функциональности, использование внешних С++ библиотек.

Ну что, начнем. Какие есть варианты? Я рассмотрю Java, C#, C++, Python. Буду рад, если вы расскажите о других альтернативах.

Java

Данный язык/среда изначально задумывались как нечто мультиплатформенное. На Java написано большое количество приложений, крупные проекты вроде Eclipse используют именно этот фреймворк.

Большой минус Java с точки зрения пользователя — необходимость устанавливать фреймворк. Это безусловно сложнее установки Flash player’а и часто становится pain in the ass. И размер инсталлятора (я качал 80+ мб), и постоянная путаница в названиях (JRE, J2SE, JDK, JVM, . ) не играют на руку разработчикам приложений под Java.

Learning curve имеет критическое значение для любого проекта, который ставит на вирусное продвижение. Если 30% ваших пользователей не смогут поставить Java-машину (лень качать, неудобный сайт, отложили «на потом», . ) — у ваших конкурентов будет фора в 30%. Эта огромная доля пользователей, потерять которых мой проект себе позволить не может.

Все приложения, которыми мне доводилось пользоваться, не использовали «родной» интерфейс Win32. Не знаю, чем руководствовались разработчики, но с точки зрения конечного пользователя это выглядит очень не симпатично.

Примеры приложений: Eclipse, ZDE, клиент для Gnutella Limewire.
Плюсы: мультиплатформенность, большое количество кадров, развитость фреймворка.
Минусы: необходимость установки фреймворка, кривость GUI, низкая производительность.

C#

Язык C# и платформа .NET вышли из под крыла компании Microsoft, которая никогда не отличалась уважением к мультиплатформенности. Данный язык был тепло принят разработчиками и энтузиасты проекта Mono даже сделали аналог фреймворка под Linux/Unix/Mac Os X.

Аналогично с Java, приложения на C# имеют большой минус — необходимость устанавливать фреймворк. Я сам отказался от установки несколько приложений, которые требовали этого фреймворка. Менее продвинутые пользователи будут ещё более требовательными.

В остальном — сплошные плюсы, на мой взгляд.

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

C++

Старичок дотянул до наших дней и замечательно себя чувствует. Много приложений под платформы Linux и Windows до сих пор пишутся на этом языке.

Программы, написанные на C++, являются примером для других по размеру дистрибутива и экономному использованию системных ресурсов (процессор, память). Тем не менее у разработчиков есть масса претензий к С++. По моему мнению, язык является «устаревшим» и его популярность в дальнейшем будет снижаться, что подтверждается индексом TIOBE.

С точки зрения развития проекта, по сравнению с динамическими интерпретируемыми языками (вроде Ruby и Python), разработка на данном языке может иметь менее высокую скорость и более высокие издержки изменения проекта. Для стартапа, которому не столь важна производительность приложения, это может стать существенным минусом.

Примеры: Firefox.
Плюсы: отличная производительность, большое количество кадров, большое количество библиотек.
Минусы: невысокая скорость разработки.

Python

Взглянуть на Python в качестве платформы для desktop-приложений меня заставила программа MusicBrainz Picard. Несмотря на свою скриптовую сущность, Python легко собирается в один exe-файл, не требуя от пользователя установки дополнительных компонентов.

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

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

Пример: MusicBrainz Picard, оригинальный BitTorrent.
Плюсы: высокая скорость разработки и изменений, хорошая интеграция с библиотеками на С и С++.
Минусы: мало кадров, низкая производительность.

Выводы

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

Я пока выбираю между С++ и Python. Первый является «надежным» решением с известными недостатками. Второй является «рискованным», но интересным и перспективным. Надеюсь, ваши отзывы помогут мне сделать окончательный выбор. Какую платформу выбрали бы вы на моем месте?

PS. Я сейчас ищу программистов в этот стартап (с++/python/php), поэтому если кому интересно — присылайте свое резюме.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *