Какой язык программирования выбрать для создания десктопных приложений?
Приветствую.
Какой язык программирования будет предпочтительнее для создания десктопных приложений?
Сейчас учу С++, но в итоге много начитался всякого и положил глаз на такой ЯП как Python. Вообще, о нём положительно отзываются, говорят, что самое то для новичка, кем я и являюсь. И еще, я самоучка, в дальнейшем, набравшись каких-то знаний и опыта, хотел бы попробовать устроиться на работу программистом, исходя из этого, я скорректирую первоначальный вопрос: какой язык программирования выбрать, желательно, чтобы он был востребован на рынке, ну если нет, то хотя бы чтобы давал неплохую базу, вообще средства для разработки.
Живу в СПб. В основном, как я посмотрел, нужны знания таких ЯП"ов как: 1с, С#, С++. Ну и ряд других для веба, как я понимаю, что-то типа PHP, Java Script etc.
Я понимаю, что ЯП - это всего лишь инструмент, но нужно освоить ведь какой-то плотно для начала, нужна практика.
Вообще, для начала, я вижу путь таким: учить какой-нибудь ЯП; окунуться в базы данных типа SQL/MySQL, ну и конечно же English. А что скажете Вы на этот счёт? Я как-то расплывчато всё написал, даже частично съехал с темы, но за любые советы будут премного благодарен.
Под виндой - C# - лучший инструмент для большинства задач.
Под линуксом - Python - это примерно то же, что и C# под виндой. Python именно рассчитан на линуксоидов - любителей скриптов и консоли (потому средств для GUI там толком нет, а в C# их полно).
C++ позволяет изучить основы. Под виндой это прежде всего WinAPI (на нем основан .NET), с которым на C++ придется столкнуться гораздо раньше, чем на C#, и когда он таки понадобится на C# (.NET покрывает далеко не весь его функционал), будет гораздо легче.
VZVZ: насчёт нет средств для GUI для Python — это Вы зря. Есть tkinter, PyQT, PyGTK, PyWIN, wxWidget и ещё штук пять библиотек. Другое дело, что под Windows писать в чем-то, кроме Visual Studio, — боль и страдание.
Валерий Рябошапко: > Другое дело, что под Windows писать в чем-то, кроме Visual Studio, — боль и страдание
Да не только в IDE дело. А и в библиотеках тоже.
Вы перечислили много библиотек, но даже все они вместе взятые не дотягивают до Winforms.
VZVZ: есть такая библиотека. А про «недотягивают» — это пустословие в духе «не читал, но осуждаю». И да, дело не только в IDE, а в жёсткой привязке к графическому интерфейсу и кастрированной командной строке. GUI — это, безусловно, нужно, полезно, красиво и часто удобно, но многие задачи, особенно связанные с разработкой, удобнее делать в консоли.
Валерий Рябошапко: Валерий Рябошапко:
> А про «недотягивают» — это пустословие в духе «не читал, но осуждаю»
И это мне пишет человек, который даже название одной из своих "любимых" библиотек - wxWidget*s* - не способен написать правильно?
Ха! Ха! Ха!
Конечно, *все* эти библиотеки я видел и работал с ними. Я же Development Tools Developer, помимо прочего. Т.е. я свои фреймворки и IDE пишу, и на данный момент, как раз для С++ (как и большинство упомянутых библиотек - хотя есть и сыроватые, малоизвестные привязки к питону). Я просто обязан был каждую из библиотек глянуть хотя бы краем глаза. Если вижу, что вещь стоящая - изучаю глубже. Но обычно и "взгляда краем глаза" вполне достаточно, чтобы увидеть, что данному инструменту очень далеко до Winforms.
> дело не только в IDE, а в жёсткой привязке к графическому интерфейсу и кастрированной командной строке.
Это вы о чем?
> GUI — это, безусловно, нужно, полезно, красиво и часто удобно, но многие задачи, особенно связанные с разработкой, удобнее делать в консоли.
А здесь я уже включаю Architect'а, и говорю, что консольность ядра приложения еще никак не исключает отсутствие GUI-оболочки.
Но линуксоиды с этим не согласны и в большинстве своем не любят GUI, а любят консоль и скрипты. Именно поэтому линуксоидовские Development Tools отстают по GUI. И с этим *не* нужно что-то делать.
А вот на винде, GUI во все поля, и с этим также ничего не поделать, а значит, на винде надо юзать C#, а не линуксоидовские Development Tools.
В общем, мы пришли к тому же, от чего пытались уйти.
И то и другое. Они настолько разные, что не путаются в голове и не мешают друг другу.
Python - для быстрой разрабтки и прототипирования, C/C++ - для тщательной разработки.
P.S. При одном ограничении, что C/C++ вы будете осваивать в Linux, Python - в чём угодно.
да какая разница в чём окошки рисовать , в фотошопе интерфейс вообще написан на LUA, надо будет скорости вычислениям сделаете библиотеку на С с интрисиками , мухи отдельно, котлеты отдельно
> в фотошопе интерфейс вообще написан на LUA
Прям уж и написан? И да, что такое LUA? Lua - слышал, а LUA - нет.
Если вы все-таки про Lua, то верхний слой абстракции может и на Lua написан, но ядро-то (отрисовка контролов и т.д.) вряд ли на нем.
> да какая разница в чём окошки рисовать
А такая, что в чём-то их удобно рисовать, в чём-то - нет, а в чём-то - вообще толком нельзя.
Вот в Python толком нельзя, впрочем, он и предназначен для тех ОС, где гуй особо и не нужен. А если кто использует его не под той ОС - сам виноват.
Василий: причем здесь WinAPI? Как я понимаю, Lua в Python - это примерно как VBA в MS Office. Никто же в здравом уме не говорит, что MS Office написан на VBA.
Василий: причем здесь WinAPI? Как я понимаю, Lua в Photoshop - это примерно как VBA в MS Office. Никто же в здравом уме не говорит, что MS Office написан на VBA.
По-моему тут уже много таких вопросов. Поиск по сайту пробовали?
Если пишете что-то кроссплатформенное (win, mac, linux имеется ввиду) и именно десткоп, то тут выбор очевиден - Qt (C++). Для линукса тоже, хотя тут есть альтернативы конечно, но на мой взгляд достаточно убогие. Под винду C#. Под мак swift, objective-c. Т.ч. по языкам: C++/C#/swift.
Что вам выбрать... Я не знаю. Зайдите на hh.ru посмотрите вакансии в вашем городе, почитайте требования и пр. Посмотрите стажировки в крупных компаниях -- это очень хорошо для новичков.
Dmitry Fateev:
это к тому, что перечислить все языки программирования, которые хоть когда-то боком услышал - это сильный ход ... только советовать всё это на изучение - не сильно корректный ход