--}}
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем

лучший язык создания для windows-приложений?

Флуд программистов
7298
49
С друзьями на NN.RU
В социальных сетях
Поделиться
dipsy
09.01.2010
какой язык программирования, на ваш взгяд, является лучшим для создания windows-приложений?

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

В-общем, я представляю, что такое pascal, C++, java, немного про flex, но самих языков не знаю. Примерно представляю что и как запускается или компилируется.

я знаю только php, Python. Компиляция python - та ещё песня.
С++ - на мой взгляд, слишком тяжёлый, надо о каждой мелочи запариваться.
flex (action script) - инструментов нет.
pascal - синтаксис добивает.
java - как его запускать будут на удалённом компе? по инструкции только...
google go - про него пока вообще ничего не слышно
сегодня ещё мельком взглянул на haskell - у него вроде с гуями не решено.

по большому счёту после Python вообще ни на что смотреть не хочется.
(случайно набрёл сегодня на статью на хабре, где чел на то же самое жаловался... не один я такой)
по-этому, интересно, на чём люди пишут, если для своего удовольствия?
allll
09.01.2010
пишут на том, что знают...
dipsy
09.01.2010
не аргумент.
вы имели в виду, что зарабатывают на том, чём умеют? это да.
а для удовольствия ковыряться можно в разном, особенно, что не знаешь.
Для быстрой разработки ключевое - "среда", а не "язык".
RAD в википедии - выбирайте по вкусу.
dipsy
09.01.2010
не согласен. язык имеет очень большое значение.
по идее - решение моего начального вопроса очевидно - Freepascal+Lazarus.
Но меня просто коробит от ":="

в-принципе, обозначение строки через ";" - тоже плохая идея.
большинство программных строк имеют длину равную одной строке файла. и обозначать надо там, где программную строку нужно переносить (т.е. ставить знак "\"). это много юзабельнее.

по википедии информации много. ещё больше информации в поисковиках. ещё раз - мой вопрос о предпочтениях местных программистов. кому что больше нравится, от разработки на каком языке вы получаете удовольствие?
не согласен. язык имеет очень большое значение.

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

Нравятся все, по-своему.
dipsy
09.01.2010
Колючий писал(а)
Если разработка ведется с учетом предпочтений конкретного человека - участвуйте сами в таких проектах, я не хочу.

я и не набираю команду, даже наоборот. интересны те среды, в которых можно что-то сделать в-одиночку.

т.е. Python - в этом плане был бы кандидатом номер один, но он, к огромному сожалению, не компилируемый. Все PyPY и прочие CPython ограничены в возможностях и компиляция нетривиальна.

на С++ с такой же скоростью, как в Python, писать приложения нельзя, либо надо быть довольно крутым профи. а это уже работа не для удовольствия, а для результата. да и потом, - следить за правильным уничтожением объектов из памяти - не слишком большое удовольствие.

возможно, что Java будет лучше в этом плане, чем C++. в ней по крайней мере есть стандартные библиотеки для работы с графикой. Не знаю, может ли MinGW скомпилировать в машинный код программы, расчитанные на GUI. (на сколько я в курсе, консольные приложения он компилирует нормально). тогда в качестве RAD должен подойти какой-нибудь NetBeans...
dipsy
09.01.2010
хотя если выделять только слово "быстрой" разработки, то тогда да, "среда" имеет бОльшее значение, но опять же, язык всё равно имеет большое значение.
Вопрос-холивор из серии "что нужнее для производства станков - молоток, гаечный ключ или пассатижи?"
Какова задача?
Значение для чего?
Обобщения в таких вопросах - признак недостаточного опыта.
dipsy
09.01.2010
вопрос да, слегка холиворный, только я не собираюсь оспаривать чьих-то предпочтений. так же не буду спорить, о том, что я "вообще ничего не понимаю в программировании" и т.д.
просьба - обсуждаем языки/технологии/среды и т.д., а не меня (или других людей). каждый пусть останется при своём мнении о компетенции других.

и попробую переформулировать вопрос:

каким образом вы предпочитаете разрабатывать windows приложения с GUI?
под GUI подразумеваются формы и 2D графика. под windows приложением - приложения, скомпилированные в машинный код, которые без дополнительных усилий запустятся на другом компе под управлением windows (желательно xp).
zanuda
10.01.2010
Что вы так заморочены на машинном коде? ДотНет составная часть виндовс. Такие гиганты, как Оракл и САП выпускают множество продуктов на яве, которые при установке проверяют наличие jre и устанавливают его при необходимости. Да и отсутствующая в системе библиотека или драйвер базы данных сделают запуск "машинного кода" невозможным. Тогда какие у последнего преимущества?

Мой выбор был бы скорее всего C#, WPF, VisualStudio для новых версий виндовс. Или java, а далее по обстоятельствам Swing, SWT или даже GWT, что в свою очередь определяет среду разработки, для более широкого списка платформ.
dipsy
10.01.2010
на это есть шаблонный ответ:
гиганты могут себе позволить неповоротливость. чем ты меньше, тем шустрее должен бегать. решать меньшую задачу, но более удобным для пользователя способом.
jushi
09.01.2010
Посмотри на D. Новый язык, синтаксис похож на C, C++, по организации на C#, но компилится в нормальный машинный код, а не в псевдо .NET.
dipsy
09.01.2010
кое-что попадалось про D, но не попадался RAD для него, хотя не сильно искал.
смотреть разное, конечно, можно, только времени на всё не хватит. т.е. я НЕ хотел спросить "что бы такое мне ещё посмотреть?" - в ответ на такой вопрос у меня есть целых два поисковика.

основной мой вопрос о личных предпочтениях, - на чём люди пишут для своего удовольствия (в смысле наши люди, из НН или окрестностей).
dipsy писал(а)
какой язык программирования, на ваш взгяд, является лучшим для создания windows-приложений?

C#
dipsy
09.01.2010
а в качестве RAD - MS Visual studio?
точно. есть, что характерно, даже бесплатные версии. :) и дотнетную библиотеку в придачу. для виндовоза ничего лучшего не придумано пока.
dipsy
10.01.2010
пробовал поставить monodevelop, в ней C#. Для создания форм требует gtk-sharp (берётся с sourforge).
производит хорошее впечатление, за исключением мелочи, что gtk-sharp должен быть установлен на целевом компьютере. dotNet не проверял, установлен ли он вообще, но какой-то скорее всего должен быть.
+1
henry
09.01.2010
html+javascript? вполне сойдет для калькулятора...
сугубо индивидуально -привычнее и как ни странно быстрее всего накатать под MFC...
dipsy
09.01.2010
javascript слишком мало умеет. хочется иногда инфу в файл закинуть, хуже того - в БД записать. js сразу же не хватает - надо php или что-нибудь ещё, а о том, чтобы скинуть кому-нибудь (не программисту) работающую программу и речи не может быть.
если в js захочется что-нибудь графическое сделать (тот же 2D), - то я только генерирование svg на лету могу предположить и да подгрузку картинок через ajax.
компилирование ещё чем желательно, что код будет скрытый.

я недавно создал другой топик на этом форуме, там про PHP RAD писал. вроде интересная вещь (хотя и не серьёзная). Не радует то, что если писать какие-нибудь классы и подключать их в программу через include, то они не компилируются. а как хорошо было бы.

про MFC не понял, как с js связано.
nn-ru
09.01.2010
Можешь на java написать. Все что понадобится юзеру - иметь установленный jre соответствующей версии. В качестве среды разработки - eclipse или netbeans. Первый достаточно удобен. Второй вроде как лучше RAD поддерживает, но это на любителя.

Советую java, потому как сам пишу сейчас приложение на нем.
dipsy
09.01.2010
java - это хорошо, а jre - уже не очень.
внутри minGW есть компилятор gcj, я видел, что он умеет компилировать простые консольные приложения.
не пробовал компилировать gui-приложения? я сейчас под netbeans поставил java-плагины, но чувсвуется смотреть буду долго :)

javaFX не смотрел?
nn-ru
09.01.2010
не пробовал. java для кросплатформенности создана, зачем ее компилировать? Бери тогда уж c++, visual studio, там GUI-шка в 5 минут рисуется и компилируется.

FX сам не пробовал. Так она тоже будет при помощи jre запускаться.
henry
09.01.2010
MFC - как раз для системных вещей.
Rom@nN
09.01.2010
Когда-то начинал с Turbo Pascal под DOS. Позднее перешёл на TAsm/MAsm. Ещё позднее на Borland C++. Но всё это для создания GUI под Windows не годилось.
В студенческие годы долгое время просто тащился от Borland C++Builder. Потом попробовал и Delphi - вроде всё почти то же самое, но как-то душа больше уже не лежала к Pascal, да и, зная предпочтения работодателей, ещё в студенчестве решил "завязать" с Паскалем и на старших курсах старался всё делать на "плюсах".
Позднее на работе столкнулся с Visual С++ в MS Visual Studio - всё отлично, кроме разработки GUI, потому как для разработки интерфейса в Visual C++ приходится совершать много лишних действий, сделать что-то нестандартное сложнее, а для новичка вообще многое неинтуитивно. В плане usability при создании GUI Visual C++ явно уступает C++Builder'у.
Зато для разработки GUI в Visual C# в той же Visual Studio всё реализовано очень удобно. Поэтому сейчас для себя интерфейс стараюсь делать на C# - и быстро, и удобно, и с удовольствием. Вообще C#.NET затягивает благодарая своей относительной простоте, гибкости и мощи - после него иногда даже не хочется писать на C++. Раньше удивлялся друзьям и коллегам, которые полюбили C# и не хотят возвращаться к C++, а теперь что-то подобное начало происходить и со мной. :) Многие "подключаются" к .NET, как к майкрософтовской "матрице" - она затягивает в себя миллионы. И современенные предпочтения работодателей (особенно в Москве) только этому способствуют.
dipsy
09.01.2010
полезный комментарий, спасибо.
henry
09.01.2010
"И современенные предпочтения работодателей (особенно в Москве) только этому способствуют" - кстати да - экономическая сторона тоже не на последнем месте.
iekmuf
20.01.2010
А ты, Ром, как я посмотрю, "парсишь" сайты работодателей !? ;)
Rom@nN
21.01.2010
Нет, Вань - некогда, да и не нужно. Знаю об этом из некоторых статей, а также из разговоров с нашим HR'ом.
P.S. Что за провокации? :)))
ShIgor
10.01.2010
я наоборот, начинал с С, сначала без всяких RAD, в MSC потом в Turbo C. Pascal на дух не переносил, но Modula понравилась почему-то.. Потом Access, VB, Borland C/C++, но ни на чем долго не останавливался, все под конкретные задачи и заказчиков. А потом вдруг появился Delphi, решил попробовать да так и остался на нем до сих пор..Пытался слезть на С# несколько раз, чтоб попасть, так сказать, "в струю", но так и не смог: то задач подходящих нет, то не хватает опыта работы с библиотеками и средой. Вероятно, все в это и упирается, а не в язык и RAD. Что мне нравится в Delphi? быстрый старт с нуля в разработке приложений с БД (исключительно всегда использую MS SQL или Access для мелких задач), VCL: легок в изучении и применении, расширяемость: недостающий функционал элементарно дописывается самостоятельно и быстро, доступность всех виндовых API и технологий и т.п.
а с ":=" ужился нормально, ведь никого не коробит "==" в C/C++.
В последнее время приходилось писать на PHP - тоже понравилось, правда без RAD и без всяких извра-украшений... забавненько в общем, но уж больно все фривольно.
dipsy
10.01.2010
на работе пишу на Python, дома на php/js. Синтаксис уже довольно сильно отличается. Иногда в php забываю писать фигурные скобки для блоков или круглые для условий (после if), - неудобно.
Если я ещё на Pascal буду писать с его ":=", то кажется, что мой бедный моск начнёт плавиться. видимо, неспособный я к языкам.
решил смотреть в сторону C#.

про PHP не в первый раз слышу, что слишком фривольный язык. Раньше так не думал, а после Python теперь тоже так считаю.
RAD для PHP - вешь излишняя, если писать серверную часть web-а. Ну, а если делать gui на php... а вообще, не особо их и сделаешь на php. Видел, что есть проект php-gtk, но не возникло желание его копать. И, кажется, проект не быстро развивается.
diamant
10.01.2010
имхо, английский
NickU
11.01.2010
dipsy писал(а)
какой язык программирования, на ваш взгяд, является лучшим для создания windows-приложений?

Таких языков нет. Вообще язык - это только средство, и для решения конкретной задачи выбирается средство, которое подходит для этой задачи наилучшим образом. Факторов, влияющих на выбор - масса, начиная от опыта команды, кончая конкретными техническими требованиями, предъявляемыми к продукту.
Т.е. я хотел сказать, что Ваш вопрос смормулирован абсолютно не корректно. :))
Mr.Amid
12.01.2010
если речь идет именно о GUI приложениях (эта мысль проскальзывала в ветке), то здесь С++ и С# внеконкуренции. таких возможностей больше никто не дает (точнее будет, мне неизвестно). на Java, с которой больше работаю, не видел ни одного более-менее крупного приложения с адекватной ГУИ (это лишь мой личный опыт, может бывает..) хотя там есть несколько вполне достойных библиотек, например, JIDE, но в основном коммерческие. наверно поэтому и не видел.
nn-ru
13.01.2010
Посмотрите open source CRMs, ERPs. Хотя бы Compiere. На java много GUI пишется.
Для каждой задачи лучше свой язык. но человек привык к своему и пишет постоянно на нём все задачи. У меня тоже есть любимчики.
В последнее время тащюсь от F#, многие вещи так лаконично и красиво получаюцца. Хочу убедить начяльство допустить его применение на рабочем месте.
SoftDrom
19.01.2010
Идите от реальности, а не технологии.
Если вы собираетесь программировать под OS Windows, то во все времена, и наше время не исключение, самая лучшая поддержка ВСЕХ возможностей Windows предоставляется только через продукты и среды одной компании (или их БЛИЗКИХ партнеров) - Microsoft.
Забудьте про MFC - это 20-й век. А мы живем уже в 21-м.
Так что лучшая среда для Windows - .NET. Там есть ВСЕ инструменты для того, чтобы выжать из Винды все ее возможности. И даже больше если найдете руководство по недокументированным возможностям и их использованию в программах.
А какой язык из поддерживаемых .NET - зависит от задачи.
С# - максимум для UI (user interface т.е. пользовательский интерфейс). Да и то, если вдруг придется хоть что-то из сети таскать - уже замедления. И не дай бог еще и SOAP начать использовать...
С++ - было бы идеально.
dipsy
20.01.2010
выше было правильное замечание, что надо исходить из реальности, согласен. в тему уже много дней не заглядывал, поэтому есть что сказать.

что я решил и с чем смирился с того времени, как открыл флудо-тему хотя не особо флуд вышел. ожидал, что комментариев будет больше ;)

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

RAD не особо важен, если можно как-то удобно описывать GUI. пользовать дизайнер форм для какого-нибудь HTML всерьёз никто не станет. HTML пишется руками и это удобно. и это вторая вещь с которой я смирился. итак, RAD - не нужен. Описываем UI руками.

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

четвёртое. переносимая программа без установки. мне казалось, что это круто. Программу можно таскать с собой на флэшке. Вау!
а потом подумал, - много ли программ, которые я хочу таскать с собой на флэшке? ни одной. Пусть программа ставится на комп и будет привязана к этому компу. Когда я качаю очередной дистрибутив с инета, то предпочитаю скачивать msi инсталлер, а не zip. Чтобы программа сама установилась куда следует, так удобнее.

Пятое. инсталлер тоже надо ещё суметь сделать.

Шестое. кроссплатформный софт остаётся пределом мечтаний многих.

Седьмое. Хочется пользоваться имеющимися знаниями. А знания в-основном касаются web. Уже не хочется изучать очередной язык программирования "для галочки".

Восьмое. Хочется так же иметь возможность встраивать свои программы в браузер. Точнее: хочется в браузере делать программы. И лучше, если это будет тот же язык, что я использую для разработки приложений.

Итак. Та-да!!

Объявляю победителя конкурса языков программирования в номинации:
"понравился мне больше остальных"

победителем становится платформа Adobe AIR c языком Flex. IDE - flashdevelop.

P.s. неожиданный выбор?
P.p.s. Девятое. На работе люди тоже пишут на flex - будет с кем посоветоваться :)
Круто. А я-то полагал, что выбор языка зависит от того, какую задачу нужно решить...
dipsy
21.01.2010
это такой стереотип, когда-то бывший решающим аргументом.
на мой взгляд, есть большой класс задач, который всё равно на чём писать.
решающие моменты для этих задач - это не скорость работы программы и точность вычислений, а легкость разработки (для конкретного разработчика) и приемлемость результата (для конечного пользователя).

разные языки реализуют схожие вещи. как-то на одном семинаре, дядечка, которому лет за пятьдесят, рассказывал о программном продукте и сказал, что пишется он на фортране. говорил он примерно следующее: "конечно, это язык достаточно древний, зато мы его хорошо знаем. и зачем нам учить новый язык, который как-будто больше соответствует нашим целям, если мы можем использовать фортран? фортран тоже развивается, на нём можно делать всё то же самое и мы уже знаем как."
Правда, в-основном, писали этот продукт не дядечки, а студенты старших курсов, аспиранты. Дядечки руководили процессом. Но я не слышал от этих аспирантов и студентов жалоб, что их вынудили пользоваться устаревшим языком. В-общем, я за преемственность традиций :)

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


Во, потихоху приходите к правильной постановке вопроса.
Я бы уточнил, что в этом случае речь идет о ленивом разработчике, который освоил MS Excel VBA, и продолжает применять его для обработки больших таблиц, не интересуясь тем, что есть СУБД.

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

Т.е. если "чисто для себя" рассуждать, то да,

есть большой класс задач, который всё равно на чём писать.


Так мы в школе писали МишаКоммандер, для прикола.

А в реальной жизни все несколько не так.
Я вот GUI делать не умею нормальные, поэтому являюсь фанатом web-морд :)
Саму логику приложения - пофиг на чём делать imho (FSM - они и в африке FSM).

Естественно использовать подход model-view-controller - это наше всё ;)

.NET для создания приложений а-ля "щас быстро сбацаем очередной notepad/calc" - самое то imho под винды.
Ну и для линуха чтоб не скучно есть аналог (причём практически полный) - Mono (функционал тот же, что и у .NET, но идёт ессно с отставанием).

P.S. Жаль, что кому-то ещё ставят задачи "быстро сбацать какую-нибудь аппликуху и пофиг как - главное сдать в срок".
Я пишу код медленно и всегда стараюсь использовать следующие простые вещи:
0) Код структурирую и комментирую. всегда.
1) Принципы и философию UNIX (работает вообще везде - даже просто пожизни, не в программировании): ru.wikipedia.org/wiki/%D0%A4...D0%B8%D1%8F_UNI
Интерес ТС к какой-либо среде разработки, платформе (хоть он и утверждает, что к языку) напоминает мне, как я в студенчестве загорелся C builder - ух ты, пишем программы мышкой! Потом выяснилось, что не только и не столько мышкой, что программа, ничего не делающая, имеет размер 600 К (это если уже разобрался с runtime dll), и еще много чего выяснилось.

Кто-то до сих пор на асме контроллеры всякие программирует, и тоже, наверное, тащится.
Разговор о жизненной философии, "мне вот это интересно и нравится, а это неинтересно и не нравится", в итоге ни о чем.
Колючий писал(а)
Разговор о жизненной философии, "мне вот это интересно и нравится, а это неинтересно и не нравится", в итоге ни о чем.

я тут про другое: к счастью нет такой среды разработки, которая бы заменила мозги + методологию программирования, выверенную годами (я про философию UNIX, а не про сами клоны этой ОС ;)

Есть люди, которые хорошо пишут и на .NET и на C++ и на чистом асме, т.к. их научили хорошей _методологии_ разработки ПО.
А есть те, которые даже не понимают что такое .NET - просто считают, что "это такой новый C++ с новыми ключевыми словами" и даже не догадываются что такое ООП и для чего оно применяется ("я пишу в программе ключевое слово class" != "я полностью понимаю и умею применять технологии ООП" ;)

P.S. К топикстартеру то, что я сейчас написал, отношения НЕ имеет.
alxumuk
22.01.2010
Писать код медленно и правильно выбирать технологию - это хорошо.
Однако, вынужден заявить, что задача "быстро сбацать какую-нибудь аппликуху" актуальна даже при таком подходе.

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

Правда для языка прототипа не требуются таких требований, как обязательная компилируемость и прочее. Точнее не всегда требуются - если прототип надо показать заказчику хочется, конечно, чтобы он мог его запустить без получасовых плясок с бубном. Но это уже мелочи...
+1 если речь о прототипировании модуля.
-1 если "бацается по-быстрому" целый продукт.

Хм... много народу хвалят Python...
Я пока заметил только один неоспоримый его плюс: код нельзя написать неструктурированный (эх... приняли бы его стандартом в школах... *мечтает*)

Для быстрого прототипирования использую обычно PHP/Perl/C++ (в такой последовательности по убыванию скорости и увеличению "приближённости к конечному результату").
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем
Последние темы форумов
Форум Тема (Автор) Последний ответ Ответов
Программист 1С НПП ПРО-М
от 110 000 руб.
Высшее образование, стаж работы 3-5 лет, полная занятость
Разработчик .net Profit Search
70000 -
100000 руб.
Неполное среднее образование, стаж работы 3-5 лет, полная занятость
Программист-разработчик Full-Stack ГК "Kolobox"
70000 -
100000 руб.
Высшее образование, стаж работы более 5 лет, полная занятость
Frontend-разработчик Profit Search
40000 -
50000 руб.
Стаж работы 3-5 лет, частичная занятость