Возникла такая потребность — нужно написать простое приложение для приёма объявлений в газету. Так-то приложение уже есть, но сделано криво, тормозит и не имеет некоторых нужных функций.
Раньше я писал лишь веб-приложения на RoR. Весь мой опыт разработки десктопных приложений сводится к Делфи, потому что им пользовался мой знакомый и заодно научил меня.
Так вот, как будет лучше написать приложение? Мультиплатформенность желательна, но в принципе пойдет и только виндовая версия.
Мои варианты:
— Ruby + какой-нибудь GUI фреймворк, но думаю что будет неудобно строить интерфейс и прога будет подтормаживать
— С++ используя Visual Studio (или взять Borland Builder? всё-таки с делфи я знаком уже). Недостаток только один — я плохо знаю С++
— Python — всегда хотел его изучить, стоит ли писать гуёвую прогу на нем?
— Старый добрый Делфи, потому что уже писал на нем что-то.
Базу данных в принципе я уже выбрал — sqlite, ибо удобно, быстро и в одном файлике.
@EvilsInterrupt На машине (в интранете) ставится вебсервер + какой-нибудь сервер приложений (php, например), ну а дальше чистый веб, клиент работает с localhost. Более "красивый", closed sources и дружелюбный для пользователя вариант - приложение скажем на C++, которое "сидит в трее"/запускается как демон и выполняет функции веб-сервера (например через mongoose ( https://code.google.com/p/mongoose/ )) и приложения.
Ну, а GUI написан на Javascript, понятно.
@savostin Т.е. рабочий комплект приложения это GoogleChrome + WebServer + C++ приложение, так? А какой портабельный web-server по советуете и хочется чтобы не слишком большой по размеру? А то не понял про Ваши mongoose
Рабочий комплект - C++ приложение + дефолтовый браузер пользователя, это самый лучший вариант. Есть еще вариант все сделать на Node.js + Chrominium, где-то на Хабре была недавно статья.
Mongoose это библиотека для внедрения легкого веб-сервера в приложение на c++. Если приложение писать на php, то нужен для него веб-сервер (хотя как вариант в последних версиях php есть встроенный).
Не слушайте тех, кто Delphi рекомендуют.
1.Оно не развивается (юникод в 2010(или 2009) году только добавили!).
2.Оно таки мало того, что проприетарное, так еще и платное!
Насчет С++, то ни в коем случае не пробуйте юзать Visual Studio и всякие извращения типа MFC, только мозг вынесете себе и возненавидите плюсы, от которых там по правде говоря только название.
Что остается?
Nokia Qt, причем можно как на C++ кодить, так и на любимых ruby,python.
C# WPF, тут уж за меня все расскажут.
PS
В принципе можно и Java попробовать, но она слишком на корпоративный рынок завязана.
Можно еще попробовать новую Qt Quick и ваять гуй на яваскрипте, но тогда придется C++ достаточно скоро учить ;)
Юникод был и до Delphi 2009. Гуглить TntUnicode, WideString и прочее. Да, оно проприетарное. Но исходники vcl доступны.
Оно развивается, только хрен знает в какую сторону. То их в сторону дотнета бросало, то в сторону кроссплатформенности. Разумеется, ничего из этого не вышло. А вот x64 только в планах. Уже 4 года.
Зато язык понятный, без извращений. Визуальные вещи делать легко. В отличии от всяких с++.
WinForms ну очень похож на delphi vcl. Имеет все преимущества и недостатки дотнета.
Если нет жестких требований по проиводительности, то я бы советовал WPF (или Silverlight если готовы пожертвовать частью возможностей ради макоси и работы из браузера).
C# гораздо проще и развивается куда динамичнее чем C++. Хотя почитать Рихтера со временем все равно стоит, так как простые и лаконичные куски кода на C# иногда оказываются чудовищно неэффективными.
Да, я читал его описание. Но как-то не особо понравилось — например, нет табов, предлагается их самому сделать. Может быть он и простой, но какой-то ограниченный
Зато Шуз предельно близок к веб-подходу представления данных в приложении.
Вам будет от этого проще в освоении.
Зато в шуз можно, скажем, легко смешивать данные из локальных источников и из сети.
Лично мне сложно представить себе что-то удобнее и проще C# WinForms. Если задача стоит действительно «здесь и сейчас», то, imho, надо выбирать этот вариант. Если учиться на перспективу с целью научиться чему-то новому и интересному, я бы выбрал WPF. Со стратегической точки зрения наверно правильнее всего освоить какой-нибудь хороший Javascript UI toolkit и делать всё на web-интерфейсах.
C# удобнее чем Дельфи? Мдяяяя. С точки зрения программирования — один фиг. С точки зрения распространения: или один exe файл, которому для работы требуется только windows (в случае delphi) или вся морока с установкой dotNet.
Холиварчик детектед :-) Ребята, каждому своё. Кто в детстве как я учил C/C++ и кодил в C++ Builder — тот в C# на базовом уровне практически сразу будет «как рыба в воде», кто учил Pascal — тому, вестимо, естественнее Delphi.
Если у вас стоит задача написать простую программку, и при это вам хотелось бы изучить что-то новое и вы знаете Ruby, то я бы посоветовал попробовать IronRuby — это возможность писать приложение на знакомом уже вам языке, но при этом познакомиться с мощью платформы .Net.
Если у вас стоит задача написать простую программку, и при это вам хотелось бы изучить что-то новое и вы знаете Ruby, то я бы посоветовал попробовать JRuby — это возможность писать приложение на знакомом уже вам языке, но при этом познакомиться с мощью платформы Java.
Если надо быстро и хорошо надо использоваться готовый framework. Тормозить может все, если его накормить «фантой». В вашем случае qt, думаю, будет лучшим выбором.
Просто интересно, почему вы не рассматриваете тот же Delphi как кандидата? По крайней мере в тексте вопроса я не нашел прямых противопоказаний. Единственное ограничение, мультиплатформенность. Но под тем же Linux несложноя дельфевая программа под Wine пойдет без проблем.
Ну тогда, если вам нужно приложение побыстрее, то тут по моему только один вариант — дельфи, так как вы с ним уже знакомы. Если же вас интересует что-то новое, то я бы уж точно не рекомендовал C++ (по крайней мере в исполнении VS) ибо для начала будет сложно и вы скорее зароетесь в Сях, нежели получите что-то нужное. С++ можно попробовать с реализацией в CodeGear (Borland Builder), по крайней мере там вы не будете путаться с оболочкой. Ну либо уж пойти отдельным путем, например в сторону C#, как посоветовали ниже. Про руби и питон сам сказать ничего не могу, ибо с ними не знаком.
Самая удобная реализация возможностей С++ в Qt. Для новичков это самое оно. Есть даже вполне себе полуавтоматическое управление памятью и нормальный RAII
Зависит от задачи: если Вам нужно просто быстро написать приложение — нужно взять знакомый инструмент, который Вы уже знаете, т.е. Дельфи. Если изучить что-то новое, то Питон, думаю, будет вполне хорошим вариантом, т.к. на нем можно и десктопные приложения писать и как серверный вариант использовтаь, т.е. приобретенный опыт будет весьма полезным.
Всё зависит от целей разработки: Если нужно дёшево и сердито, то
Писать стоит на том, что лучше всего знаешь для целевой платформы, или что быстрее всего можно выучить. Для винды с установленным офисом — MS Access — всё в одном файле, при желании можно и к SQL серверу клиент подключить или к файл-серверу, можно распространять как один файл в виде приложения для Access Runtime — без установки самого Аксеса.
Если нужно писать ради изучения чего-то нового, то посмотреть, разработчикам на какой платформе больше платят или какие разработчики чаще требуются на сайтах фрилансеров и поиска работы.