Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Python vs .NET 
V
    Опции темы
nerezus
  Дата 19.5.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Python vs .NET

Иногдаприходится делать выбор, так как не хватает времени на два предмета и надо выбрать один. Вы уже догадались, какие.
Пишу для себя, чтобы сравнить. Но многим тоже понадобится. И выбор этот касается только меня.
Некоторые пункты - тоже субъективно.

1) Возможности
С одной стороны питон может все то, что может дотнет. С другой стороны в дотнете нету многово, что есть в питоне:
Нет нормальной кроссплатформенности(mono не предлагать, ).
Нет нормальных средств функционального программирования.

2) Простота использования.
Для питона нет качественной IDE уровня VS.
Есть конечно PyDev для eclipse, но из-за особенностей питона вроде duck-типизации нет нормального автодополнения.

3) Применение в разработке графических программ.
Сложнее в питоне делать графические приложения. Но мне использовать PyQt не очень удобно. А в дотнете с этим все прекрасно.
В питоне нет мейнстрима - считаю, что это очень плохо. Есть куча библиотек типа Tkinter, wx, PyGTK, PyQt - и у всх ВСЕ по разному.

4) Применение в разработке скриптов и сетевых приложений.
Питон лидер. Просто лидер и никакой дотнет рядом не валялся. Написать многопоточный сканер? Пожалуйста, десять строк.
Написать вебсервер? Пять строк.
Кстати этот пункт я ценю выше всего.

5) Применение при разработке вебприложений.
Тут не могу сравнить. Обе вещи ОЧЕНЬ сильны.
Сравнивать придется Django с одной стороны(кто хочет - берет Turbogears) и ASP.NET с другой.
Мне гораздо приятнее идея и стиль разработки Django, но это лишь мое личное мнение и я не буду его аргументировать - выбираю для себя.

6) Требования контор
Есть конечно работа и туда и туда. Но вакансий больше именно для дотнета. Если мелкий город и junior-разработчик - это существенно.
Тут лидирует конечно .NET.

7)Стиль программирования.
Мне нравится питон. Точнее даже не так: я люблю питон. Код ОЧЕНЬ краток и красив.
Мое мнение тут однозначно за питоном.

8) Другие возможности.
Это фишки дотнета типа IronPython или Silverlight.
Мое мнение касательно первого: слишком "по студенчески". Проект еще не дошел до готовой кондиции.
Касательно второго - то пусть уж с апплетами жабы борется, а до Flash текущими темпами ему лет 40 еще. Ну не кроссплатформенный он, а Moonlight будет повторять путь mono, в котором даже стандартных методов для стандартных дотнетовских классов нет: not implemented, как говорится.

9) Документация.
У питона ОТЛИЧНАЯ документация. Я бы сказал, что одна из лучших.
У дотнета же - MSDN, о которой у меня не лучшее мнение: ставишь критерий поиска win32 native - а оно всякие джаваскрипты в результатах выводит.
Тут мне гораздо больше нравится документация питона.
Однако одно "но": сторонние питона. Для нормальной работы в питоне их ПРИХОДИТСЯ использовать.
Нужен массив? Подключай стороннюю библиотеку. Нужен гуй - снова подключай. Веб - опять подключать придется. Вот у них то как раз документация бывает вовсе не на нужном уровне.
По тому же PyQt с ней имею большие проблемы: приходится смотреть доки для С++ для Qt.

10) "Разворачивание" приложений.
проблемы и там, и там.
В дотнете - с установкой новой версии фреймворка(требует прав админа).
В питоне - же - либо установка питона и модулей(админа не требуют в большинстве случаев), либо программа весит под 10мб.

11) Мобильные платформы.
Дотнет на WM, Python на Symbian.
Хоть у меня и Symbian, но нравится больше именно WM(следующий девайс(как и предыдущий) будет на нем). Да и версии CF от обычного фреймворка отличаются ограздо меньше, чем обычный питон от мобильного.
Тут мое мнение все же за .NET.

11) "Кто за ним стоит"
За дотнетом стоит только MS. Мне это нравится - сильная контора.будет развиваитть и дополнять пока не появится более мощная технология(что будет не скоро еще), но при этом не поломает обратной совместимости.
В питоне же - куча мелких foundations. Сам питон - одно. numpy - другое, Qt - третье, PyQt - четвертое, Django - пятое. Это немного напрягает. Тем более что стандарты у контор разные.

Вот стою перед выбором. В чем я ошибся? Мой мосг требует информации.

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


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
archimed7592
Дата 19.5.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Нет нормальных средств функционального программирования.

F# не предлагать, да? smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Ch0bits
Дата 19.5.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 1
Всего: 62



Питон - тормоз, у него плохо с масштабируемостью и многопоточностью.  smile 
PM WWW   Вверх
nerezus
Дата 19.5.2008, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Ch0bits, этот "тормоз" самый быстрый скриптовый язык из распространенных. ) Ну если не считать lua, из-за его области применения.
Что касается многопоточности - то global lock не мешает, т.к. он не распространяется на модули, а практически все задержки в них, а не на логике.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
AntonSaburov
Дата 19.5.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 2
Всего: 118



Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Вот стою перед выбором. В чем я ошибся? Мой мосг требует информации.

Есть еще JAVA.
PM MAIL WWW ICQ   Вверх
nerezus
Дата 19.5.2008, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Ну в данном случае считать, что Java=.NET ))

Просто для меня существенны следующие разоличия:
1) Java требует JRE для запуска, когда как .NET встроен в винду по дефолту(кроме старых версий, конечно)
2) Но джава кроссплатформенна.
3) Дотнетовский гуй родной для винды, джава выглядит же очень чужеродно.
4) Кроссплатформ для мобильников.

Остальные доводы считать идентичными для джавы и дотнета)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
kemiisto
Дата 19.5.2008, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



nerezus, собственно, вопрос поставлен некорректно! Сравнивать язык программирования с платформой!!! 
Вот если бы Python vs C#, то можно будет сравнивать.

Цитата(nerezus @  19.5.2008,  18:40 Найти цитируемый пост)
Нет нормальной кроссплатформенности(mono не предлагать, ).Нет нормальных средств функционального программирования.

Почему mono не предлагать? Про F# уже archimed7592 отписался. smile

А вообще, я смотрю Вам по нраву синтаксические особенности Питона и модель программирования .NET. Может IronPython попробуете? Авось устроит....  


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Lazin
Дата 19.5.2008, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Цитата(Ch0bits @  19.5.2008,  17:53 Найти цитируемый пост)
Питон - тормоз, у него плохо с масштабируемостью и многопоточностью.

в питоне многопоточность обычно реализуется не на уровне потоков(из за GIL это все будет выполняться последовательно) а на уровне процессов, так же есть фреймверк Twisted, который в этом помогает smile 
PM MAIL Skype GTalk   Вверх
archimed7592
Дата 19.5.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(kemiisto @  19.5.2008,  18:32 Найти цитируемый пост)
Сравнивать язык программирования с платформой!!! 

Почему Вы считаете, что питон - это не платформа?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 19.5.2008, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Применяю для написание скриптов и гуевых приложений

тогда какой к черту .NET?
Python + QT4 wrapper


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
nerezus
Дата 19.5.2008, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Почему mono не предлагать?
 Потому что: user posted image
У стандартных слассов нет стандартных методов в нем.

Цитата

Сравнивать язык программирования с платформой!!! 
 В данном случае имеется ввиду платформа Python и платформа .NET.
Из 12 пунктов про сам язык всего лишь 1 пункт(ибо язык является частью), остальное про платформы.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
nerezus
Дата 19.5.2008, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

тогда какой к черту .NET?
Python + QT4 wrapper
 Его сейчас и использую.
Но вот документация в стиле "убейте меня". Примеров ОЧЕНЬ мало, а те, которые есть - на C++, а не на питоне.
Тем более что в сборке под винду нет половины контроллов(типа QWebView и т.д.) и возможностей(хз почему так собрали).


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
archimed7592
Дата 19.5.2008, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(MAKCim @  19.5.2008,  18:56 Найти цитируемый пост)
тогда какой к черту .NET?
Python + QT4 wrapper 

Почему не .NET + SWF? smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 19.5.2008, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(archimed7592 @  19.5.2008,  19:17 Найти цитируемый пост)
Почему не .NET + SWF?

потому что платформ, где можно запустить Python + QT4 несоизмеримо больше
какие дотнетовские языки являются скриптовыми?

Это сообщение отредактировал(а) MAKCim - 19.5.2008, 19:27


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
kemiisto
Дата 19.5.2008, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(archimed7592 @  19.5.2008,  19:41 Найти цитируемый пост)
Почему Вы считаете, что питон - это не платформа?

Нужно определиться, что есть платформа. Если, например, использовать определение:
Цитата(http://en.wikipedia.org/wiki/Computing_platform)

In computing, a platform describes some sort of hardware architecture or software framework (including application frameworks), that allows software to run. Typical platforms include a computer's architecture, operating system, programming languages and related runtime libraries or graphical user interface.

то я действительно был не прав. 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
archimed7592
Дата 19.5.2008, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(MAKCim @  19.5.2008,  19:27 Найти цитируемый пост)
какие дотнетовские языки являются скриптовыми?

Согласен, скриптовых - нет... по крайней мере я таких не знаю...

Цитата(kemiisto @  19.5.2008,  20:03 Найти цитируемый пост)
Нужно определиться, что есть платформа. Если, например, использовать определение:

Ну давайте закроем глаза на терминологию с формулировками и пойдём несколько иным путём.

Что такое .NET?
1. JIT
2. GC
3. libraries

Что такое Python?
1. JIT или нет я точно не знаю, но как таковой механизм воплощения исходного кода в инструкции процессора имеется(пусть это даже интерпретатор будет).
2. GC
3. libraries

И почему .NET плафторма, а Питон - нет? Может быть я чего-то из виду упустил?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
kemiisto
Дата 19.5.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



archimed7592, JIT-компилятор и сборшик мусора как составные части платформы (.NET) это не тоже самое, что интерпретатор языка программирования и сборшик мусора на уровне языка (Python). 

Остаётся только набор библиотек, который уместнее было бы именовать какркасом (framework), нежели платформой.

Кроме того, исполняемым файлом платформы .NET является файл, содержащий инструкции MSIL, а не просто исходный код на одном из языков .NET. Если по-вашему, то любой интерпретируемый язык, поддерживающий сборку мусора, сопровождает и одноимённая платформа. Платформа Ruby, платформа Lisp, платформа Smalltalk... Не многовато будет?

IMHO


--------------------
PM MAIL WWW GTalk Jabber   Вверх
nerezus
Дата 19.5.2008, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



kemiisto, ты так говоришь, т.к. не видел питон.
В нем аналогичная ситуация: промежуточный байт-код. Файлы pyc/pyo.
В платформе питона можно компилить не только код на языке питоне, но и на других. Просто надо создать такой pyc-файл.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
kemiisto
Дата 19.5.2008, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



nerezus, дико извиняюсь. smile Ну тогда, согласен: Python - платформа. 
Цитата(nerezus @  19.5.2008,  22:19 Найти цитируемый пост)
В платформе питона можно компилить не только код на языке питоне, но и на других.

А на каких именно, можно поинтересоваться?


--------------------
PM MAIL WWW GTalk Jabber   Вверх
nerezus
Дата 20.5.2008, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



kemiisto
Цитата

А на каких именно, можно поинтересоваться?
 Из доступных только питон ))
Хотя никто не мешает написать компилер в pyc для другого языка - нет технических ограничений.

С джавой подобное(но "альтернативы" есть вроде мидлет паскаля), хотя у нас на 4ом курсе пишут компилер своего языка в байткод джавы.

Это сообщение отредактировал(а) nerezus - 20.5.2008, 06:31


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
mr.DUDA
Дата 20.5.2008, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Тут упоминали Python в связке QT4 для гуи. Дайте пример приложения, где так делают. Чисто из спортивного интереса глянуть.  smile 

И ещё, вот по поводу крутости разработки сетевых приложений,
Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Написать вебсервер? Пять строк.

пример, если можно. 


--------------------
user posted image
PM MAIL WWW   Вверх
Shaggie
Дата 20.5.2008, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: нет
Всего: 72



mr.DUDA, приложения не дам, а почитать можно тут же на форуме: ссылка.


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
nerezus
Дата 20.5.2008, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



mr.DUDA, я ошибся, в 4 строки, а не в 5 ):
Код

import SimpleHTTPServer, SocketServer

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", 8000), Handler) # port 8000
httpd.serve_forever()

Если заменить handler на свой - то можно генерировать прямо на лету.

Касательно Qt: ссылку выше дали )


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
mr.DUDA
Дата 20.5.2008, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



nerezus, в примере - встроенный функционал одной из стандартных библиотек? Если нет, то не засчитывается.  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
Lazin
Дата 20.5.2008, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



интересно, есть ли для .NET-a что то похоже на easy_install smile 
PM MAIL Skype GTalk   Вверх
mr.DUDA
Дата 20.5.2008, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Shaggie, почитал обе статьи, включая ту которая про Qt4 на С++. Что сказать, если нужна кроссплатформенность то и правда "какой тут к чёрту .NET". smile 

Но вот если не нужна (и лишних 6 килобаксов на Qt нет), то сами понимаете...  smile



--------------------
user posted image
PM MAIL WWW   Вверх
nerezus
Дата 20.5.2008, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



mr.DUDA, стандартные библиотеи. Есть и поддержка CGI в таком сервере. Тоже стандартно.

Цитата

Но вот если не нужна (и лишних 6 килобаксов на Qt нет), то сами понимаете...  
 PyQt стоит ровно $0, а не $6k.
И лицензия у него вовсе не такая, как у Qt. Точнее такая же, но на модификацию самой PyQt, а вот код питона, который ее юзает, может иметь любую лицензию ;)
Вот такое преимущество у скриптовых языков ;)

Это сообщение отредактировал(а) nerezus - 20.5.2008, 09:33


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
MAKCim
Дата 20.5.2008, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(mr.DUDA @  20.5.2008,  08:36 Найти цитируемый пост)
в примере - встроенный функционал одной из стандартных библиотек? Если нет, то не засчитывается.

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

Это сообщение отредактировал(а) MAKCim - 20.5.2008, 09:49


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
mr.DUDA
Дата 20.5.2008, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(MAKCim @  20.5.2008,  09:46 Найти цитируемый пост)
пожалуйста, можешь использовать любой компонент .NET, только вряд ли у тебя получится написать все в 5 строчек   вот тут уже дело в языке

MAKCim, дело совсем не в языке. Точно так же я могу взять и написать свой класс под любым названием и запихнуть туда прослушивание сокета, назвав это SimpleServer-ом. Код для использования такого сервера влезет в 3-4 строчки кода, практически один-в-один с приведённым примером (а Handler будет делегат на метод того же класса сервера, обрабатывающим HTTP запрос). На кодпрожекте таких примеров вагон.

Пока ничего сверхъестественного в питоне не вижу кроме кроссплатформенности. Просил убийственных примеров - не привели.  smile

Добавлено @ 10:04
Цитата(MAKCim @  20.5.2008,  09:46 Найти цитируемый пост)
гы
это и называется платформа

Гм... мысль не понял.  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
nerezus
Дата 20.5.2008, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



mr.DUDA
Цитата

очно так же я могу взять и написать свой класс под любым названием и запихнуть туда прослушивание сокета, назвав это SimpleServer-ом.
 Прямо в redistributable пакет от M$? ) Похекаешь их сайт? ) Тут именно СТАНДАРТНЫЕ модули. А о твоем модуле другой человек ничего не будет знать и его придется писать ему снова. Либо качать неоттестированные сторонние модули от неизвестных личностей.

Дело в том, что код питона очень краток. Это был пример. Так же в нем есть вещи типа:
Например открыть файл в виде массива строк с вырезанием пробелов по краям, пропуская пустые строки:
Код

[l.strip() for l in file('C:\\install.log').readlines() if l.strip()]


Или объявление функций в процессе выполнения программы:
Код

def adder(a):
    return lambda x: a + x
a5 = adder(5)
a5(8) # выдаст 13


Это сообщение отредактировал(а) nerezus - 20.5.2008, 10:16


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
MAKCim
Дата 20.5.2008, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(mr.DUDA @  20.5.2008,  10:02 Найти цитируемый пост)
Просил убийственных примеров - не привели

лови  smile 

сериализовать список из N отображений номера динамически созданных классов с именами class1, class2, ..., classN, в каждом из которых есть метод c именем get, принимающий параметр целого типа K и возвращающий число K + i, где i - порядковый номер созданного класса, на объект этого класса

Код

import pickle
pickle.Pickler(open("serialize", "w")).save_list([{i: type("class" + str(i), (), {"get": lambda self, K: K + i})()} for i in xrange(1, N + 1)])


Это сообщение отредактировал(а) MAKCim - 20.5.2008, 10:54


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
AntonSaburov
Дата 20.5.2008, 13:10 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 2
Всего: 118



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

Цитата(MAKCim @  20.5.2008,  10:50 Найти цитируемый пост)
сериализовать список из N отображений номера динамически созданных классов с именами class1, class2, ..., classN, в каждом из которых есть метод c именем get, принимающий параметр целого типа K и возвращающий число K + i, где i - порядковый номер созданного класса, на объект этого класса

Ну наверно на .NET это не так элегантно выглядит. Только что-то за последние лет 20 я таких задач в своей практике не встречал.

А вот писание сайта с жуткой логикой с обращениями к распределенным базам данных с сотнями таблиц, со сложным GUI, Web GUI - сколько угодно. Исходите из того, какие задачи встречаются в реальной жизни. А восхищение элегантностью - Perl тоже выглядел офигительным языком. Ну и где он сейчас ?

PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 20.5.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



MAKCim, пример сразил наповал.  smile 

nerezus, таких наворотов в шарпе конечно нету. В С++ вроде есть похожее что-то (число тоже можно было передать как параметр тимплейта функции), не помню.


--------------------
user posted image
PM MAIL WWW   Вверх
MAKCim
Дата 20.5.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(AntonSaburov @  20.5.2008,  13:10 Найти цитируемый пост)
Ну наверно на .NET это не так элегантно выглядит. Только что-то за последние лет 20 я таких задач в своей практике не встречал.

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

Цитата(AntonSaburov @  20.5.2008,  13:10 Найти цитируемый пост)
А восхищение элегантностью - Perl тоже выглядел офигительным языком. Ну и где он сейчас ?

Perl никогда не был элегантным

Цитата(mr.DUDA @  20.5.2008,  13:33 Найти цитируемый пост)
В С++ вроде есть похожее что-то (число тоже можно было передать как параметр тимплейта функции), не помню.

в С++ по определению такого не сделать

Цитата(AntonSaburov @  20.5.2008,  13:10 Найти цитируемый пост)
А вот писание сайта с жуткой логикой с обращениями к распределенным базам данных с сотнями таблиц, со сложным GUI, Web GUI - сколько угодно. Исходите из того, какие задачи встречаются в реальной жизни.

я не вижу сложности это реализовать на питоне
в итоге мы получим более простой и понятный код меньшего размера (благодаря выразительности языка)
для Web-приложений есть фреймворк Django
сам не использовал, но слышал много хороших отзывов
в конце концов есть Java + Struts + Hibernate + Spring  smile 
порвет .NET + ASP как тузик грелку  smile 
или тот же RoR
вообщем, для любых задач можно найти инструмент лучше, чем .NET



Это сообщение отредактировал(а) MAKCim - 20.5.2008, 14:00


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
mr.DUDA
Дата 20.5.2008, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(MAKCim @  20.5.2008,  13:52 Найти цитируемый пост)
вообщем, для любых задач можно найти инструмент лучше, чем .NET

Максимализм просто восхищает. Так держать !  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
AntonSaburov
Дата 20.5.2008, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 2
Всего: 118



Цитата(MAKCim @  20.5.2008,  13:52 Найти цитируемый пост)
Perl никогда не был элегантным

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

Цитата(MAKCim @  20.5.2008,  13:52 Найти цитируемый пост)
ее цель - показать выразительность языка и его способность быстро и качественно решать сложные задачи

Prolog тоже элегантно решает очень сложные задачи. Только толку ? Да, есть какая-то область (не очень большая), где это реально удобно и красиво. Но таких областей мало. Следовательно и работы мало. 

Изначальный вопрос был - выбрать между .NET и Python. Тут надо исходить из цели. 

Если цель писать элегантные решения, которые показывают превосходство Питона, то надо заниматься Питоном.
Если цель иметь хлебушка и сверху колбаски, то надо изучать то, за что готовы платить деньги, т.е. NET.

Так что сначала надо определить именно цели, которые дадут критерии выбора. А потом уже выбирать.

Без этого обсуждение превращается в спор без критериев - искусство ради искусства. Что вообщем-то даже в искусстве ничем не заканчивается.
PM MAIL WWW ICQ   Вверх
archimed7592
Дата 20.5.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(nerezus @  20.5.2008,  06:30 Найти цитируемый пост)
С джавой подобное(но "альтернативы" есть вроде мидлет паскаля), хотя у нас на 4ом курсе пишут компилер своего языка в байткод джавы.

Альтернатив этих немало.
Для затравки:
Jython
JRuby


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
JackYF
Дата 20.5.2008, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(AntonSaburov @  20.5.2008,  12:10 Найти цитируемый пост)
Perl тоже выглядел офигительным языком. Ну и где он сейчас ?

lib.ru от Мошкова на Perl'e написан.

Далее:
Цитата

$ dpkg -l | grep "^ii" | grep perl | wc -l
66

Не мало, не находишь ли у меня в системе на перле написано? smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
MAKCim
Дата 20.5.2008, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(mr.DUDA @  20.5.2008,  14:34 Найти цитируемый пост)
Максимализм просто восхищает. Так держать !

я не прав?  smile 

Цитата(AntonSaburov @  20.5.2008,  15:07 Найти цитируемый пост)
Изначальный вопрос был - выбрать между .NET и Python. Тут надо исходить из цели. 

цель была озвучена: скрипты + GUI
выбор очевиден

Добавлено через 3 минуты и 36 секунд
Цитата(AntonSaburov @  20.5.2008,  15:07 Найти цитируемый пост)
Без этого обсуждение превращается в спор без критериев - искусство ради искусства. Что вообщем-то даже в искусстве ничем не заканчивается. 

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


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
krwlr
Дата 20.5.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 6.12.2006

Репутация: 2
Всего: 51



дотНэт спонсирует микрософт.
питон: микрософт, гугль, сан, каноникал. Это только мне известные... В общем python.org/psf/. Может есть еще крупная, но мне неизвестная...


--------------------
убрал
PM   Вверх
MAKCim
Дата 20.5.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(AntonSaburov @  20.5.2008,  15:07 Найти цитируемый пост)
Prolog тоже элегантно решает очень сложные задачи. Только толку ? Да, есть какая-то область (не очень большая), где это реально удобно и красиво. Но таких областей мало. Следовательно и работы мало. 

вот (касаемо питона и C#)

Это сообщение отредактировал(а) MAKCim - 20.5.2008, 15:58


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
mr.DUDA
Дата 20.5.2008, 17:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(MAKCim @  20.5.2008,  15:48 Найти цитируемый пост)
цель была озвучена: скрипты + GUI

Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Сложнее в питоне делать графические приложения. Но мне использовать PyQt не очень удобно. А в дотнете с этим все прекрасно.

С гуи не всё прекрасно. Проще и удобнее дотнета для гуи - нет.

(у нас же религиозные войны всё-таки)

З.Ы. максимализм - это посылать к чертям что-либо из хулиганских лучших побуждений. Хотя MAKCim-у это положено  smile  smile 

З.Ы(2) ушёл зарабатывать на колбасу поверх хлеба  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
AntonSaburov
Дата 20.5.2008, 17:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 2
Всего: 118



Цитата(MAKCim @  20.5.2008,  15:48 Найти цитируемый пост)
вот только без этого, хорошо?
перечитай еще раз тему с середины второй страницы
и проследи за логикой 

Без чего "без этого" ? Перечитал. И не понял логики. С чем ты не согласен ? Что Питон пока не дотягивает по популярности ? В том, что предложений о работе на нем меньше ? Что критерии выбора должны быть определены, прежде чем выбирать ?

PM MAIL WWW ICQ   Вверх
MAKCim
Дата 20.5.2008, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



AntonSaburov
твой тезис
Цитата(AntonSaburov @  20.5.2008,  15:07 Найти цитируемый пост)
Без этого обсуждение превращается в спор без критериев - искусство ради искусства. Что вообщем-то даже в искусстве ничем не заканчивается. 

1. критерии озвучены (1 стр.)
2. никакого спора нет, человек (mr.DUDA) хотел "убийственного" примера
он его получил
решение задачи показывает выразительность языка и не более того
причем здесь вообще "хлеб" и "колбаса"?
у nerezus есть четкая цель: выбрать язык, конкретно Python или .NET (C#, ...)
он не спрашивает, что более востребовано, т. к "работа есть и там, и там"

Это сообщение отредактировал(а) MAKCim - 20.5.2008, 17:30


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
archimed7592
Дата 20.5.2008, 17:42 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(mr.DUDA @  20.5.2008,  17:03 Найти цитируемый пост)
Проще и удобнее дотнета для гуи - нет.

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


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 20.5.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(archimed7592 @  20.5.2008,  17:42 Найти цитируемый пост)
Давай обойдёмся без таких резких заявлений... 

точно
вспомним (и помянем) Delphi  smile

Добавлено через 2 минуты и 59 секунд
Цитата(mr.DUDA @  20.5.2008,  17:03 Найти цитируемый пост)
С гуи не всё прекрасно. Проще и удобнее дотнета для гуи - нет.

во всяком случае, GUI писАть на питоне можно
а вот скрипты и .NET, получается, ортогональные понятия  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
mr.DUDA
Дата 20.5.2008, 18:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(archimed7592 @  20.5.2008,  17:42 Найти цитируемый пост)
Хотя бы пока для дотнета не появится возможности не напрягаясь писать GUI вслепую, т.е. в блокноте.

Да ради бога, чем код по настройке виджетов/контейнеров будет отличаться от кода по настройке тех же контролов на форме? И кстати, писать гуи в блокноте будет разве только мазохист. Или любитель всяких там vim-ов smile 

Предположу, что в реале сложный GUI делают всё же не 100% в текстовом редакторе. Проще размещать и настраивать виджеты в RAD тулзе, тот же Qt зачем-то имеет собственный дизайн-тайм тул.

Цитата(MAKCim @  20.5.2008,  17:53 Найти цитируемый пост)
можно

Вооот! "Можно" и "нужно" разные понятия. Гуи можно на чём угодно написать, хоть на Фортране или Ассемблере.  smile 

Кстати, просил примеров реальных гуи-приложений на питоне, до сих пор в ожидании. Видимо не написали ещё за (сколько там Питону лет кстати?) кучу времени.

Цитата(MAKCim @  20.5.2008,  17:53 Найти цитируемый пост)
а вот скрипты и .NET, получается, ортогональные понятия

Приведи своё понятие скрипта, может не такие и ортогональные?

Ещё вот тут говорили про парсинг/анализ строк, как это замечательно и лаконично делается на Питоне. Всвязи с этим вопрос к nerezus - в планах есть что-нить связанное с сабжем? Ну там HTML парсить или синтаксический анализатор делать. 


--------------------
user posted image
PM MAIL WWW   Вверх
JackYF
Дата 20.5.2008, 18:52 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(mr.DUDA @  20.5.2008,  17:33 Найти цитируемый пост)
Или любитель всяких там vim-ов

Звали? smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
AntonSaburov
Дата 20.5.2008, 18:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 2
Всего: 118



Цитата(MAKCim @  20.5.2008,  17:27 Найти цитируемый пост)
1. критерии озвучены

Только информация в них достаточно субъективна.

Цитата(MAKCim @  20.5.2008,  17:27 Найти цитируемый пост)
2. никакого спора нет, человек (mr.DUDA) хотел "убийственного" примера, он его получил

Ну да - один тянет в сторону NET, другой - Python is the best. На NET тоже в пару кликов можно WebService сваять. Это не показатель.

Цитата(MAKCim @  20.5.2008,  17:27 Найти цитируемый пост)
у nerezus есть четкая цель: выбрать язык, конкретно Python или .NET (C#, ...) т. е он не спрашивает, что более востребовано

Он спрашивает, что выбрать и в числе критериев есть
Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
6) Требования контор
Есть конечно работа и туда и туда. Но вакансий больше именно для дотнета. Если мелкий город и junior-разработчик - это существенно.
Тут лидирует конечно .NET


PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 20.5.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(JackYF @  20.5.2008,  18:52 Найти цитируемый пост)
Звали?


JackYF спи, о Ктулху !!! smile 


--------------------
user posted image
PM MAIL WWW   Вверх
nickless
Дата 20.5.2008, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 2
Всего: 181



Цитата(mr.DUDA @  20.5.2008,  17:33 Найти цитируемый пост)
Кстати, просил примеров реальных гуи-приложений на питоне, до сих пор в ожидании.

PyQt4
http://calibre.kovidgoyal.net/wiki/Screenshots
http://musicbrainz.org/doc/PicardQt
http://recordmydesktop.iovar.org/about.php
http://home.gna.org/veusz/
http://k7z.sourceforge.net/7Z/Q7Z/
http://www.die-offenbachs.de/eric/index.html
PyQt3
http://kodos.sourceforge.net/
http://unrealvoodoo.org/hiteck/projects/albumart/
http://luma.sourceforge.net/about.html
http://hplip.sourceforge.net/
хватит? smile 

Цитата(JackYF @  20.5.2008,  17:52 Найти цитируемый пост)
Звали?

+1 smile 


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
mr.DUDA
Дата 20.5.2008, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Eric Python IDE рулит !!!  smile 

вот теперь я доволен и вопросов больше не имею


--------------------
user posted image
PM MAIL WWW   Вверх
archimed7592
Дата 20.5.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(mr.DUDA @  20.5.2008,  18:33 Найти цитируемый пост)
Да ради бога, чем код по настройке виджетов/контейнеров будет отличаться от кода по настройке тех же контролов на форме? И кстати, писать гуи в блокноте будет разве только мазохист. Или любитель всяких там vim-ов smile 

Код не будет отличаться ничем.. Просто его количество и качество будут существенно различаться для .NET и для Qt. В моей фразе ключевыми были слова "не напрягаясь" smile.
Насчёт мазохистов: ты видимо не знаком с Qt.
Там есть много прекраснейших вещей, но вот эти мне нравятся больше всего:
1. Layouts. Где они в .NET?
2. Stylesheets. О .NET я скромно промолчу smile.
3. Size policies, size hints, etc.

Иными словами, в .NET GUI-development сводится к pixel hunting, когда в Qt всё сводится к распихиванию виджетов по умным коробкам и сеткам.
В .NET всё сводится к написаю кода для оформления виджетов("контролов" по вашему), когда в Qt всё сводится к написанию коротенькой CSS.

Я ещё раз подчёркиваю: с Qt GUI-часть проекта делается на одном дыхании, т.е. совершенно не напрягаясь делаются достаточно сложные и динамичные интерфейсы.

Так о чём мы? Ах, да, о мазохистах: ни в одном из Qt-проектов я не использовал designer. Я мазохист? Да нет, что вы, я всегда старался упростить себе жизнь и стараюсь до сих пор. Насчёт 100% текстового редактора - ну да, не 100%... он у меня малость умный - имеет code completion... правда, в случае с .NET'ом code completion не поможет, не так ли?
Так что, ничего удобнее для GUI кроме .NET не существует? Не думаю, и Qt этому пример. Не могу утверждать, что Qt - самый удобный фреймворк для GUI(и не только) - у Qt множество недостатков(архитектурных... signal/slots & meta-object system, к примеру), но, в случае с GUI, - .NET тихо курит в сторонке даже несмотря на свои делегаты, лямбды и замыкания(это я в противовес неудобным сигнало-слотам).


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
mr.DUDA
Дата 20.5.2008, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



archimed7592, layout-ы и контейнеры в дотнете есть: FlowLayoutPanel/TableLayoutPanel, а также anchor-ы и docking. Пиксельхантингом не занимаемся - зачем, если для точного позиционирования и отступов можно выставить пару свойств в пропертигриде? Насчёт code completion - проще набрать пару букв и ентер/пробел, чем на память помнить имена методов и т.п. (ИМХО, т.к. с vim и прочими мегаблокнотами не знаком!)

А вот про сложный гуи без дизайнера -- что-нибудь навроде такого, за сколько времени можно склепать (чисто сам интерфейс, без логики)?

user posted image

З.Ы. Ах да, про WPF ещё не сказал - он чем-то напоминает Qt. Стили есть, layout более продвинут. Только это уже оффтоп.


--------------------
user posted image
PM MAIL WWW   Вверх
Lazin
Дата 20.5.2008, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



archimed7592, сейчас тебе начнут рассказывать про WPF smile

Добавлено через 1 минуту и 11 секунд
Цитата(mr.DUDA @  20.5.2008,  20:14 Найти цитируемый пост)
З.Ы. Ах да, про WPF ещё не сказал - он чем-то напоминает Qt. Стили есть, layout более продвинут. Только это уже оффтоп. 

совсем немного опоздал  smile 
PM MAIL Skype GTalk   Вверх
bilbobagginz
Дата 20.5.2008, 21:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 6
Всего: 317



Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Есть конечно работа и туда и туда. Но вакансий больше именно для дотнета. Если мелкий город и junior-разработчик - это существенно.

все (т.е. 3) моих товарищей, которые работают сейчас в google в рабочих интервью были спрошены умеют ли они говорить на python.
что хорошо для google - хорошо и для меня.
Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
В питоне же - куча мелких foundations. Сам питон - одно. numpy - другое, Qt - третье, PyQt - четвертое, Django - пятое. Это немного напрягает. Тем более что стандарты у контор разные.

если конторы пишут модули, а язык в принципе развивается python 3 уже скоро выйдет, значит данный децентрализованный метод работает.
что тоже оправдывает.

насчет GUI не буду спорить - подход у них разный.

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

(кстати неделю назад купил получил после того как на работе заказал Diving into Python ) уже посередине smile
но мне как сисадмину он сподручнее.




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
archimed7592
Дата 20.5.2008, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(mr.DUDA @  20.5.2008,  20:14 Найти цитируемый пост)
layout-ы и контейнеры в дотнете есть: FlowLayoutPanel/TableLayoutPanel

Ыыы, а скажи честно, ты ими пользуешься? Нет? А почему? Потому что тормозят безбожно? smile

Цитата(mr.DUDA @  20.5.2008,  20:14 Найти цитируемый пост)
Пиксельхантингом не занимаемся - зачем, если для точного позиционирования и отступов можно выставить пару свойств в пропертигриде?

Что за чудо-свойства такие?
Вопрос тебе такой: если по тем или иным причинам скрыть один из контролов, всё быстренько перекомпонуется как нужно?

Цитата(mr.DUDA @  20.5.2008,  20:14 Найти цитируемый пост)
А вот про сложный гуи без дизайнера -- что-нибудь навроде такого, за сколько времени можно склепать (чисто сам интерфейс, без логики)?

Минут 5-10, чисто чтобы код набрать смотря на картинку.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 20.5.2008, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(mr.DUDA @  20.5.2008,  18:33 Найти цитируемый пост)
Приведи своё понятие скрипта, может не такие и ортогональные?

скриптовый язык
Цитата(mr.DUDA @  20.5.2008,  18:33 Найти цитируемый пост)
Ещё вот тут говорили про парсинг/анализ строк, как это замечательно и лаконично делается на Питоне.

вот небольшой примерчик работы со строками

подсчитать количество строк в файле, которые содержат только целые неотрицательные числа, разделенные любым разделителем
Код

len(filter(lambda line: re.match("^\d+(\s\d+)*$", line.strip()), open(path).readlines()))


Добавлено через 2 минуты и 18 секунд
Цитата(mr.DUDA @  20.5.2008,  19:24 Найти цитируемый пост)
Eric Python IDE рулит !!!

красиво  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
nerezus
  Дата 20.5.2008, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Если цель иметь хлебушка и сверху колбаски, то надо изучать то, за что готовы платить деньги, т.е. NET.
 Деньги готовы платить за все.
Просто в мелких городах и на начинающих разработчиков проблемы будут, если не самое распространенное брать.

По крайней мере на питоне(сетевые скрипты) я пару сотен поднял(за инте надо было заплатить), хоть чисто для интереса кодил, а на дотнете же не пробовал поднимать.
Но средний скрипт на ~$20 я пишу примерно за полтора часа. Вполне неплохо для меня, т.к. писать их оч. интересно.

Цитата

Проще и удобнее дотнета для гуи - нет.
 Я согласен тут впринципе. Хотя PyQt считаю ОФИГЕННОЙ вещью, но .NET имхо ее превосходит.

Цитата

а вот скрипты и .NET, получается, ортогональные понятия
 Почему же? Просто мне не нравится, что больше кода на дотнете выйдет. А скрипт ил exe-сборка - пофиг, главное, чтобы компилить под целевую платформу не надо было.
+ поставить mono - еще та проблема(я их все-таки под никсы пускаю в основном)

Цитата

Предположу, что в реале сложный GUI делают всё же не 100% в текстовом редакторе. Проще размещать и настраивать виджеты в RAD тулзе, тот же Qt зачем-то имеет собственный дизайн-тайм тул.
 Угу, в QtDesigner это и делаю, руками ненавижу делать - ненавижу монотонную работу.

Цитата

1. Layouts. Где они в .NET?
 
Цитата

Ыыы, а скажи честно, ты ими пользуешься? Нет? А почему? Потому что тормозят безбожно? 
Не нужны имхо - я обходился в простых случаяхчерез Anchor свойство. Очень изящьно, кстати )
LayOut'ы есть, но я их не юзал - Anchor'ы мне понравились на порядок больше.

Цитата

2. Stylesheets. О .NET я скромно промолчу .
 Никогда не юзал, но вот внешний вид куте немного чужероден. А в дотнете есть наборы компонентов сторонних авторов по визуализации )

Цитата

Иными словами, в .NET GUI-development сводится к pixel hunting, когда в Qt всё сводится к распихиванию виджетов по умным коробкам и сеткам.
 Неа, по вышеназванным причинам.

Цитата

если у тебя есть проекты и работа на дот-нете - сам знаешь что делать.
 У меня есть проекты, которые я начал одновременно и там и там делать, и сразу выявились проблемы в обоих. причем они равномерно.
Если бы был Python под дотнет - юзал бы его. Но его нету(поделки типа IronPython не в счет). Так что трабл )




--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
mr.DUDA
Дата 21.5.2008, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(archimed7592 @  20.5.2008,  21:20 Найти цитируемый пост)
Ыыы, а скажи честно, ты ими пользуешься? Нет? А почему? Потому что тормозят безбожно?

Пользуюсь. Не тормозят и не должны.

Цитата(archimed7592 @  20.5.2008,  21:20 Найти цитируемый пост)
Что за чудо-свойства такие?
Вопрос тебе такой: если по тем или иным причинам скрыть один из контролов, всё быстренько перекомпонуется как нужно?

Location и Size, и другие. Скрываю контрол, если стоит Dock то остальные перекомпонуются. Или если AutoSize. За подробностями - в пм или мсдн.

Цитата(archimed7592 @  20.5.2008,  21:20 Найти цитируемый пост)
Минут 5-10, чисто чтобы код набрать смотря на картинку.

Я рад за тебя  smile 

На остальное nerezus ответил по существу.


--------------------
user posted image
PM MAIL WWW   Вверх
Fortop
Дата 21.5.2008, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(MAKCim @  20.5.2008,  13:52 Найти цитируемый пост)
для Web-приложений есть фреймворк Django

Можно поинтересоваться?
Как давно существует? Сколько веб-инсталяций? 
(сам видел 2-3 проекта, плюс, если не ошибаюсь МойКруг Яндекса)

Цитата(archimed7592 @  20.5.2008,  21:20 Найти цитируемый пост)
Минут 5-10, чисто чтобы код набрать смотря на картинку.

1. на вскидку 60-70 элементов на приведеном скриншоте. Ты уверен в своей оценке в 10 минут?
2. Ты забыл про CSS для того чтобы оно еще и выглядело так же.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Lazin
Дата 21.5.2008, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Цитата(Fortop @  21.5.2008,  01:18 Найти цитируемый пост)
Как давно существует? Сколько веб-инсталяций?

их много
PM MAIL Skype GTalk   Вверх
bilbobagginz
Дата 21.5.2008, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 6
Всего: 317



Цитата(nerezus @  20.5.2008,  21:55 Найти цитируемый пост)
Просто в мелких городах и на начинающих разработчиков проблемы будут, если не самое распространенное брать.

если гора не идёт к Магомету, Магомет пойдет к горе.
закон экономики: на периферии з/п ниже, спрос ниже, цены ниже.
хочешь увеличить з/п ?
либо работай серьёзно по удаленке (Т.е. открой свой фриланс офис) либо перезжай в "не маленький" город.

Добавлено через 10 минут и 35 секунд
кстати, еще одно кстати: 
если ориентироваться на то, что в Скоропопинске на дотнете у тебя всё будет пучком - тоже наивно. 
Вдруг построится какой-то завод по выпуску дождевых червяков, на который наймут 1/2 Скоропопинска, а IT на заводе будет Линукс. 
А так как сфера услуг будет ориентироваться на этот завод - через короткий срок засунешь дотнет в одно место.

Если думать широко, можно интересные парадоксы найти... например, что на питоне можно и под макинтош писать и под соляру.
а в США напр. рынок этих платформ (т.е. образовательный и банковский рынки соответственно) 
держит в себе не меньше капитала чем напр. весь российский рынок ПО.
Кстати а какой вообще оборот у российского рынка ПО относительно других стран ? 

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

а если не пойдет - пускай сосет лапу. так ему и надо smile



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
archimed7592
Дата 21.5.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(mr.DUDA @  21.5.2008,  00:02 Найти цитируемый пост)
За подробностями - в пм или мсдн.

Ок, поизучаю мсдн.

Цитата(Fortop @  21.5.2008,  01:18 Найти цитируемый пост)
1. на вскидку 60-70 элементов на приведеном скриншоте. Ты уверен в своей оценке в 10 минут?
2. Ты забыл про CSS для того чтобы оно еще и выглядело так же. 

Эмм, а, ну, во первых, не вижу там 70 элементов, хоть убей...
Во-вторых, они же все одинаковые, не так ли? Или у .NET'чиков принято не создавать новый класс, для повторяющихся сущностей, а дублировать код? 0_о


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
mr.DUDA
Дата 21.5.2008, 15:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(archimed7592 @  21.5.2008,  15:04 Найти цитируемый пост)
Во-вторых, они же все одинаковые, не так ли?

Если присмотреться к скрину, имя класса написано справа от имени элемента (в Document Outline). Так что ответ: нет. Контрол не совсем простой: по умолчанию нижние две трети скрыты и показываются только при выставлении соотв. чекбокса ("Use texture transformations" или "Remap channel map"). Вопрос не о том, сколько элементов на картинке, а сколько времени уйдёт на позиционирование элементов вручную в текстовом редакторе. Или мы на бумажке сначала рисуем, считаем координаты и размеры в процентах/пикселах, и только потом пишем код ?  smile

Добавлено через 5 минут и 20 секунд
З.Ы. контролов там не 70, а 76  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
Любитель
Дата 21.5.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(archimed7592 @  20.5.2008,  21:20 Найти цитируемый пост)
Минут 5-10, чисто чтобы код набрать смотря на картинку. 

Уже где-то недавно проскакивало это всё, но да ладно smile
1. "Смотря на картинку". В уме представлять всю кучу виджетов/контролов - зачастую напряжно. Дизайнер есть гуд. Независимо от гуи-либы.
2. Qt GUI vs WinForms. Qt выигрывает. Явно. Хотя Qt Designer и uic - далеки до идеала.
3. Фтопку ВинФормз, будущее дотнетовского гуя (ну, в контексте MS по крайней мере) - без сомненья WPF...

Цитата(MAKCim @  20.5.2008,  21:27 Найти цитируемый пост)
вот небольшой примерчик работы со строками

подсчитать количество строк в файле, которые содержат только целые неотрицательные числа, разделенные любым разделителем

Тут всё-таки определиться бы - язык обсуждаем в первую очередь или платформу. Питоноподобный язык под .Net - я думаю более чем реально. Почему кстати IronPython не в счёт (сабж не смотрел - просто интересно).

Если говорить про кроссплатформенность - .Net, конечно более чем слаб (повторяться надеюсь не будем).

Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Применяю для написание скриптов и гуевых приложений. Кроссплатформ для скриптов обязателен, но mono негуевые поддерживает. 

Ну, впрочем, если уж докапываться - биндинг для того же Qt вроде есть, правда до ужаса кривой (под .Net). Есть GTK# (где любители ГТК?).

А вообще - сферу применения хотелось бы подробней smile

Это сообщение отредактировал(а) Любитель - 21.5.2008, 16:33


--------------------
PM MAIL ICQ Skype   Вверх
archimed7592
Дата 21.5.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(mr.DUDA @  21.5.2008,  15:43 Найти цитируемый пост)
Вопрос не о том, сколько элементов на картинке, а сколько времени уйдёт на позиционирование элементов вручную в текстовом редакторе.
Или мы на бумажке сначала рисуем, считаем координаты и размеры в процентах/пикселах, и только потом пишем код ?

Я ж говорю, незнакомые с Qt люди не верят, что можно вообще не задумываться о координатах/размерах и утверждают, что то, чем они занимаются в дизайнере - это не pixel hunting smile.
Смотри, простой пример, дальше по аналогии:
Код

{
    QVBoxLayout *vbl = new QVBoxLayout();
    
    {
        QHBoxLayout *hbl = new QHBoxLayout();
        {
            QSomeImageViewer *w = new QSomeImageViewer();
            w-> ...; // configuring widget
            hbl->addWidget(w);
        }
        {
            QGridLayout *gl = new QGridLayout();
            int r = 0;
            {
                QLabel *lbl = new QLabel("&Type");
                QLineEdit *e = new QLineEdit();
                lbl->setBuddy(e);
                e-> ...; // configuring edit
                gl->addWidget(lbl, r, 0);
                gl->addWidget(e, r, 1);
                ++r;
            }
            {
                QLabel *lbl = new QLabel("&Width");
                QLineEdit *e = new QLineEdit();
                lbl->setBuddy(e);
                e-> ...; // configuring edit
                gl->addWidget(lbl, r, 0);
                gl->addWidget(e, r, 1);
                ++r;
            }
            ...// adding other rows
            
            gl->setColumnStretch(0, 30);
            gl->setColumnStretch(1, 70); // if needed
            
            hbl->addLayout(gl);
        }
        vbl->addLayout(hbl);
    }
    {
        ...; // other groups
        vbl->add...(...);
    }
    
    this->setLayout(vbl);
}

Ты видишь тут хоть одну координату, размер? smile

Цитата(mr.DUDA @  21.5.2008,  15:43 Найти цитируемый пост)
по умолчанию нижние две трети скрыты и показываются только при выставлении соотв. чекбокса

Это делается с помощью 1-й строки в том же текстовом редакторе или при помощи 7-10 телодвижений в дизайнере smile.

Добавлено через 3 минуты
Цитата(mr.DUDA @  21.5.2008,  15:43 Найти цитируемый пост)
З.Ы. контролов там не 70, а 76  smile  

Кстати, либо у меня с арифметикой плохо, либо их слишком много(читай: есть дублирование кода).

Цитата(Любитель @  21.5.2008,  15:54 Найти цитируемый пост)
1. "Смотря на кратинку". В уме представлять всю кучу виджетов/контролов - зачастую напряжно

Само собой, что не будет у меня примерной картинки, как предоставил mr.DUDA, я нарисую её на бумажке, но ни о каких вычислениях координат речи быть не может.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Любитель
Дата 21.5.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(archimed7592 @  21.5.2008,  16:01 Найти цитируемый пост)
Само собой, что не будет у меня примерной картинки, как предоставил mr.DUDA, я нарисую её на бумажке, но ни о каких вычислениях координат речи быть не может.

Ну, я считаю, что лучше сразу в дизайнере рисовать smile Я не говорю, что надо заниматься абсолютным позиционироваинем (фу!) - конечно лэйоуты, только в дизайнере smile


--------------------
PM MAIL ICQ Skype   Вверх
archimed7592
Дата 21.5.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Любитель, maybe это дело привычки/сноровки. Я буду дольше искать "как сделать это и это" в дизайнере, чем писать код. Плюс к этому два ньюанса:
1. я очень люблю ослаблять зависимости, а дизайнер к этому совсем не располагает.
2. дизайнер, как ты уже не раз замечал, для Qt немного "недо"дизайнер. Есть вещи которые красиво решаются парой строк, а в дизайнере их либо сделать невозможно, либо делать нужно через задний проход.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Любитель
Дата 21.5.2008, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Согласен. Для Qt сам часто вручную пишу. Раньше вообще только вручную smile Но это проблема Qt - а не дизайнера в общеидеологическом смысле.


--------------------
PM MAIL ICQ Skype   Вверх
nerezus
Дата 21.5.2008, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

либо работай серьёзно по удаленке (Т.е. открой свой фриланс офис) либо перезжай в "не маленький" город.

Придется открывать контору - переехать не могу ( Не из-за себя. конечно.

Цитата

 Почему кстати IronPython не в счёт (сабж не смотрел - просто интересно).
 2 версия гуевая которая(с w на конце) при запуске кидает ексепшн и падает )
Чисто пример "стабильностьти"


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
mr.DUDA
Дата 21.5.2008, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



archimed7592, ну по-любому ведь приходится думать о (хотя бы) относительных размерах контейнеров/layout-а. Дизайнер не есть зло, особенно если настраивать приходится много чего (тот код, который у тебя значится под " // configuring widget"). Слабая связь чего с чем? И про дублирование кода непонятно, если вот у меня 5 чекбоксов в разных местах - это дублирование кода, т.е. их в цикле расставлять надо?


--------------------
user posted image
PM MAIL WWW   Вверх
archimed7592
Дата 21.5.2008, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(mr.DUDA @  21.5.2008,  20:05 Найти цитируемый пост)
archimed7592, ну по-любому ведь приходится думать о (хотя бы) относительных размерах контейнеров/layout-а.

Эмм, ну и что, тебе думается лучше в дизайнере, чем на бумажке? Ну, да, привычка - сильная штука... smile
Кстати, уточни, пожалуйста, что ты понимаешь под этими относительными размерами о которых нужно думать(хотя бы smile)? Просто я вот сейчас пытаюсь вспомнить, сколько раз мне приходилось думать об этом и, что-то совсем мало случаев в голову приходит...

Цитата(mr.DUDA @  21.5.2008,  20:05 Найти цитируемый пост)
Дизайнер не есть зло, особенно если настраивать приходится много чего (тот код, который у тебя значится под " // configuring widget").

Покажи, плиз, пример, где нужно много чего настраивать, а?
Чтобы это у меня больше 5-7 строк было что-то не припомню. К тому же, как насчёт разбиения на ф-ции этапы создания интерфейса? Дизанер это умеет? Хотя зачем ему, если файлы XXX.designer.cs никто читать-то и не будет? smile

Цитата(mr.DUDA @  21.5.2008,  20:05 Найти цитируемый пост)
Слабая связь чего с чем?

Ну как чего с чем? Есть, скажем диалог, приведённый тобою выше. Ответь на вопросы:
1. Что он делает?
2. Что ему нужно, чтобы он делал это(что нужно выставить "наружу", что ему нужно "спросить с" внешнего клиента, чтобы выполнить задачу и т.д.)?
3. С какими из остальных частей GUI/логики этот диалог связан? Почему? А зачем нужна эта свзяь? А нельзя ли её ослабить?
Дык вот, если говорить о С++(а я именно на С++ с Qt работаю), то там результатом правильных ответов на поставленые вопросы будет реализация идиомы PImpl вкупе с минимальным интерфейсом наружу и минимальной завязкой на "остальной мир". К примеру, зачем выставлять наружу все эти labelXXX(отдельный вопрос: нахрена их вообще хранить как поля класса)?
Я понимаю, что в случае, с C#, к примеру, толку от PImpl не особо много и для тебя это звучит немного дико, просто, когда говорил это, немного не подумал, что спор здесь не про С++, а про Qt и GUI в принципе, но всё равно, дизайнер как-то, мне кажется, склоняет к созданию менее качественного кода smile.
Простой пример: я уже не помню, как это в .NET делается, но вроде как, для того чтобы создать юзер-контрол, которым можно будет пользоваться в дизайнере, нужно сделать немало телодвижений(помимо написания кода), что, вероятно, больше склонит девелопера к тому, чтобы наклепать 20 раз одно и то же, вместо того, чтобы сделать качественный контрол, который можно будет в том же дизайнере 20 раз кинуть на разные формы. В случае с работой без дизайнера такой проблемы нет в принципе smile.

Цитата(mr.DUDA @  21.5.2008,  20:05 Найти цитируемый пост)
И про дублирование кода непонятно, если вот у меня 5 чекбоксов в разных местах - это дублирование кода, т.е. их в цикле расставлять надо?

Я не могу тебе так просто ответить, не посмотрев кода... Не телепат, всё таки smile.
Ну вот, те же вопросики рядом с некоторыми полями ввода - это, насколько я понимаю, обыкновенные лэйблы, которые каждый раз отдельно настраиваются(помимо того, что можно просто задать текст помощь или номер индекса в справочной системе - неважно), да? Т.е. то, что ты приноровившись быстренько проделываешь руками превращается в redundant code. Я боюсь представить, какую гигантскую работу придётся проделать по всему проекту, если по каким-то причинам придётся что-то изменить в способе отображения этой самой контекстной помощи(или как она там называется?).


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Kefir
Дата 22.5.2008, 09:34 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



archimed7592, эк вы батенька .НЕТ унижаете, как будто .НЕТ в каменном веке создавался.

Цитата(archimed7592 @  21.5.2008,  16:01 Найти цитируемый пост)
Я ж говорю, незнакомые с Qt люди не верят, что можно вообще не задумываться о координатах/размерах и утверждают, что то, чем они занимаются в дизайнере - это не pixel hunting

Как это не верят? Верят. Более того и сами не заботятся об этом. Поставил док, поставил якорь. лайот какой-нибудь сделал при желании - наслаждайся. И это винформы. Я уже даже не говорю о WPF, о возможностях которого QT может только мечтать. А то что ты кодом пишешь - это уже личные заморочки каждого. Мне удобно юзать дизайнер. А насчёт "умного" лэйота QT - ну вот ты знаешь что текстовое поле будет содержать 2 символа. Что, он тоже мысли прочитает и сделает маленькую ширину? Вот. В любом случае, даже если не пикселями, то чем-то это надо задавать. В любом случае ты должен сказать, что кнопка находится внизу формы (к примеру) или ещё что-то.

Цитата(archimed7592 @  21.5.2008,  20:32 Найти цитируемый пост)
К тому же, как насчёт разбиения на ф-ции этапы создания интерфейса? Дизанер это умеет? Хотя зачем ему, если файлы XXX.designer.cs никто читать-то и не будет? smile

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

вообще интересно посмотреть на код. просто из любопытства
Цитата
e-> ...; // configuring edit



Цитата(archimed7592 @  21.5.2008,  20:32 Найти цитируемый пост)
Дык вот, если говорить о С++(а я именно на С++ с Qt работаю), то там результатом правильных ответов на поставленые вопросы будет реализация идиомы PImpl вкупе с минимальным интерфейсом наружу и минимальной завязкой на "остальной мир". К примеру, зачем выставлять наружу все эти labelXXX(отдельный вопрос: нахрена их вообще хранить как поля класса)?
Я понимаю, что в случае, с C#, к примеру, толку от PImpl не особо много и для тебя это звучит немного дико, просто, когда говорил это, немного не подумал, что спор здесь не про С++, а про Qt и GUI в принципе, но всё равно, дизайнер как-то, мне кажется, склоняет к созданию менее качественного кода smile.

Что-что? Первое предложение не ко мне В) Не смог вкурить эту философскую мысль  smile 
Что значит "зачем labelXXX"? Это ты к чему? Ну нужны там надписи, ты предлагаешь их удалить? Класс мембуры мешают - так не создавай ты для них отдельных класс мембуров, кто мешает-то?

Цитата(archimed7592 @  21.5.2008,  20:32 Найти цитируемый пост)
дизайнер как-то, мне кажется, склоняет к созданию менее качественного кода

почему? я не раз глядел в код дизайнера - ничего страшного не обнаружил. Просто вручную писать этот код, имхо, неэффективно. Всё сводится к набору текста. Monkey Job. и код этот как ни крути создавать дольше чем набросать в дизайнере. Пока напишешь, пока запустишь и проверишь так ли оно выглядит и т.д. Ни за что не поверю, что ГУИ (примитив  одной кнопкой и текстовым полем не в счёт) вручную писать быстрее чем в дизайнере.

Цитата(archimed7592 @  21.5.2008,  20:32 Найти цитируемый пост)
Простой пример: я уже не помню, как это в .NET делается, но вроде как, для того чтобы создать юзер-контрол, которым можно будет пользоваться в дизайнере, нужно сделать немало телодвижений(помимо написания кода), что, вероятно, больше склонит девелопера к тому, чтобы наклепать 20 раз одно и то же, вместо того, чтобы сделать качественный контрол, который можно будет в том же дизайнере 20 раз кинуть на разные формы. В случае с работой без дизайнера такой проблемы нет в принципе smile.

эээ... кхм... как бы сказать... то есть ты говоришь, что все .НЕТ девелоперы тупы как пробки?  smile  smile на самом деле создать юзер-контрол = Project -> Add -> User Control. Для того чтобы он появился в дизайнере надо один раз побилдить проект. Всё. Если это много телодвижений, то скажи мне что есть "мало" телодвижений.


Цитата(archimed7592 @  21.5.2008,  20:32 Найти цитируемый пост)
В случае с работой без дизайнера такой проблемы нет в принципе smile.

Есть такая песенка, там тоже неопровержимые фразы наподобие твоего утверждения:
Цитата
        * Eсли у вас нету дома,
        * Пожары ему не страшны.
        * И жена не уйдёт к другому,
        * Eсли у вас, если у вас,
        * Eсли у вас нет жены, нету жены.

        * Оркестр гремит басами,
        * Трубач выдувает медь.
        * Думайте сами, решайте сами,
        * Иметь или не иметь.
        * Иметь или не иметь.

        * Eсли у вас нет собаки,
        * Eё не отравит сосед.
        * И с другом не будет драки,
        * Eсли у вас друга нет.

        * Eсли у вас нету тёти,
        * Eё вам не потерять.
        * И если вы не живёте,
        * То вам и не умирать.

        * Eсли у вас нету тёти,
        * Eё не отравит сосед,
        * И жена не уйдёт к другому,
        * Eсли у вас друга нет.

 smile Это я к тому, что если ты на самолётах не летаешь, то у тебя нет проблемы с авиакатастрофами. Но ведь ты всё равно летаешь на самолётах, ибо это быстро и удобно.

Цитата(archimed7592 @  21.5.2008,  20:32 Найти цитируемый пост)
Ну вот, те же вопросики рядом с некоторыми полями ввода - это, насколько я понимаю, обыкновенные лэйблы, которые каждый раз отдельно настраиваются(помимо того, что можно просто задать текст помощь или номер индекса в справочной системе - неважно), да? Т.е. то, что ты приноровившись быстренько проделываешь руками превращается в redundant code. Я боюсь представить, какую гигантскую работу придётся проделать по всему проекту, если по каким-то причинам придётся что-то изменить в способе отображения этой самой контекстной помощи(или как она там называется?). 

ну почему отдельно? можно поставить один эвент и показывать разную информацию в зависимости от кликнутого вопросика. Чем плохо? Можно и тултип поставить при желании.



ЗЫ Извините, если немного нагловатый тон в посте. Что-то я разволновался.

Это сообщение отредактировал(а) Kefir - 22.5.2008, 09:37
PM MAIL WWW Skype   Вверх
mr.DUDA
Дата 22.5.2008, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(archimed7592 @  21.5.2008,  20:32 Найти цитируемый пост)
Эмм, ну и что, тебе думается лучше в дизайнере, чем на бумажке? Ну, да, привычка - сильная штука...

Ага, и работая в команде ты будешь на пальцах объяснять человеку как элементы расположены, или он телепат, или может быть бумажку сканировать и пересылать по имейлу? LOL  smile  smile  smile 

Цитата(archimed7592 @  21.5.2008,  20:32 Найти цитируемый пост)
Кстати, уточни, пожалуйста, что ты понимаешь под этими относительными размерами о которых нужно думать(хотя бы )? Просто я вот сейчас пытаюсь вспомнить, сколько раз мне приходилось думать об этом и, что-то совсем мало случаев в голову приходит...

Уточняю. Я про размер в процентах или пикселах, отводимый конкретному виджету в контейнере (так это вроде в Qt называется?). Width и Height. Размер кнопок, текстовых полей, разбивка на табличный layout с заданными размерами и т.п. - всё что с размерами связано.

Цитата(archimed7592 @  21.5.2008,  20:32 Найти цитируемый пост)
Ну как чего с чем? Есть, скажем диалог, приведённый тобою выше. Ответь на вопросы:
1. Что он делает?
2. Что ему нужно, чтобы он делал это(что нужно выставить "наружу", что ему нужно "спросить с" внешнего клиента, чтобы выполнить задачу и т.д.)?
3. С какими из остальных частей GUI/логики этот диалог связан? Почему? А зачем нужна эта свзяь? А нельзя ли её ослабить?

1. Настраивает текстурный мап.
2. Ссылка на один (!) объект. Его свойства отображает и редактирует этот (не диалог!) контрол, будучи размещённым где-то на другом контроле. И таких штук 10, на каждый текстурный мап. Всё вместе входит в гуи редактора материалов.
3. Ни с какими внешними объектами, кроме поданного на вход TextureMap он не связан. Ни о чём больше не знает, да и не нужно это.

Цитата(archimed7592 @  21.5.2008,  20:32 Найти цитируемый пост)
Ну вот, те же вопросики рядом с некоторыми полями ввода - это, насколько я понимаю, обыкновенные лэйблы, которые каждый раз отдельно настраиваются(помимо того, что можно просто задать текст помощь или номер индекса в справочной системе - неважно), да?

Копи-паст элементов в дизайнере (вместе со всеми настроенными свойствами) за два клика или Ctrl+Drag никто не отменял, это во-первых. Настроить всплывающую подсказку - просто вбить текст в свойстве "вопросика", за два клика - это во-вторых.



--------------------
user posted image
PM MAIL WWW   Вверх
Lazin
Дата 22.5.2008, 10:06 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



казалось бы, причем здесь Qt smile 
PM MAIL Skype GTalk   Вверх
mr.DUDA
Дата 22.5.2008, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Скриншот к моему предыдущему посту. smile 


--------------------
user posted image
PM MAIL WWW   Вверх
archimed7592
Дата 22.5.2008, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Kefir @  22.5.2008,  09:34 Найти цитируемый пост)
А насчёт "умного" лэйота QT - ну вот ты знаешь что текстовое поле будет содержать 2 символа. Что, он тоже мысли прочитает и сделает маленькую ширину? Вот. В любом случае, даже если не пикселями, то чем-то это надо задавать.

Ну, вот, ты сам привёл пример smile. Скажи мне пожалуйста, как в дизайнере ты укажешь editbox'у, что он должен иметь ширину на два символа? Потом я покажу тебе, как это делается в Qt без дизайнера(уверен, что точно также можно будет сделать и для SWF, только вот где проблема - для SWF без дизайнера не программируют smile).

Цитата(Kefir @  22.5.2008,  09:34 Найти цитируемый пост)
В любом случае ты должен сказать, что кнопка находится внизу формы (к примеру) или ещё что-то.

Ну давай простой пример нарисуй, только, чтобы не "70" элементов, а 2-4 элемента(примитивных) и скажи что тебе куда запихнут, что вниз, что влево, что вправо, в общем, какой-нибудь частый случай изобрази, а я тебе покажу как легко это делается в коде.

Цитата(Kefir @  22.5.2008,  09:34 Найти цитируемый пост)
вообще интересно посмотреть на код. просто из любопытства
Цитата
e-> ...; // configuring edit

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

Цитата(Kefir @  22.5.2008,  09:34 Найти цитируемый пост)
Что значит "зачем labelXXX"? Это ты к чему? Ну нужны там надписи, ты предлагаешь их удалить? Класс мембуры мешают - так не создавай ты для них отдельных класс мембуров, кто мешает-то?

Дизайнер SWF позволяет не создавать мембера для отдельных контролов? Респект ему и уважуха, если это так smile. Только почему-то я всё равно вижу повсюду "label1", "label2", "label3" и т.д.(в том же скриншоте).
Плюс к этому, есть вещи, я уверен, которые с помощью дизайнера настроить не удастся. Тогда придётся оставлять мемберов лишь для того, чтобы произвести донастройку в конструкторе(или где у вас принято это делать), после чего эти мемберы будут мёртвым грузом в каждом объекте, не так ли?

Цитата(Kefir @  22.5.2008,  09:34 Найти цитируемый пост)
почему? я не раз глядел в код дизайнера - ничего страшного не обнаружил. Просто вручную писать этот код, имхо, неэффективно. Всё сводится к набору текста. Monkey Job.

Ты немного не в том ключе понимаешь мои слова. Я изначально утверждал, что SWF так спроектирован, что нет возможности писать код в notepad'е, и не напрягаться в этот момент, а в какой пиксель нужно шлёпнуть контрол, а какой у него должен быть размер и т.д. BTW, в Qt есть возомжность и pixel hunting, если появится желание пострадать фигнёй smile.

Цитата(Kefir @  22.5.2008,  09:34 Найти цитируемый пост)
эээ... кхм... как бы сказать... то есть ты говоришь, что все .НЕТ девелоперы тупы как пробки?  smile  smile на самом деле создать юзер-контрол = Project -> Add -> User Control. Для того чтобы он появился в дизайнере надо один раз побилдить проект. Всё. Если это много телодвижений, то скажи мне что есть "мало" телодвижений.

Я чес слово уже не помню что там к чему. У меня мало опыта в написании гуя под SWF. Ну, скажем, такой пример: есть некий контрол, отображение которого зависит от многих факторов доступных только в рантайме, и, чтобы всё это запрограммировать так, чтобы это выглядело в дизайнере также, как в рантайме - мне кажется, не самая простая задача. Если дотнетчики и не ленятся делать это, в любом случае им приходится писать лишний код, который нужен именно для дизайнера - не это ли monkey job? smile

Цитата(Kefir @  22.5.2008,  09:34 Найти цитируемый пост)
ну почему отдельно? можно поставить один эвент и показывать разную информацию в зависимости от кликнутого вопросика. Чем плохо? Можно и тултип поставить при желании.

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

Это сообщение отредактировал(а) archimed7592 - 22.5.2008, 10:48


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Kefir
Дата 22.5.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



* сразу оговорюсь - не понимаю при чём тут SWF... говорю лишь о VS В) *

archimed7592, так, я может не обозначил свои цели. единственное что я хотел сказать, что винформы не такая примивная штука как ты о ней говоришь (по крайней мере у меня лично сложилось такое впечатление  smile )
Цитата(archimed7592 @  22.5.2008,  10:43 Найти цитируемый пост)
Скажи мне пожалуйста, как в дизайнере ты укажешь editbox'у, что он должен иметь ширину на два символа? Потом я покажу тебе, как это делается в Qt без дизайнера(уверен, что точно также можно будет сделать и для SWF, только вот где проблема - для SWF без дизайнера не программируют smile).

Конечно прямо вот так "2 символа" я не напишу. просто сделаю маленькую ширину.  smile 

Цитата(archimed7592 @  22.5.2008,  10:43 Найти цитируемый пост)
Это завязки на логику. mr.DUDA, вроде ясно дал понять, что логику писать не нужно, я лишь показал, где(в каком месте кода) с этой логикой придётся увязывать контролы и всё.

ой слушай, ты меня не понял. это к спору не относится. просто реально интересно В) жалко чтоли?

Цитата(archimed7592 @  22.5.2008,  10:43 Найти цитируемый пост)
Дизайнер SWF позволяет не создавать мембера для отдельных контролов? Респект ему и уважуха, если это так smile. Только почему-то я всё равно вижу повсюду "label1", "label2", "label3" и т.д.(в том же скриншоте).
Плюс к этому, есть вещи, я уверен, которые с помощью дизайнера настроить не удастся. Тогда придётся оставлять мемберов лишь для того, чтобы произвести донастройку в конструкторе(или где у вас принято это делать), после чего эти мемберы будут мёртвым грузом в каждом объекте, не так ли?

Дизайнер студии позволяет не создавать мемберов. Эти лейблы там есть потому что как-то надо в дизайн тайме в ними работать. Так что всё выглядит одинаково просто с той разницей, что мемберы можно и не делать.
А какие вещи ты бедушь донастраивать? Лейбл тот же самый - чего ему, шрифт поставил да и всё. Ведь мембуры не нужны для тех контролов которые не задействованы в логике. Если ты хочешь менять надписи - всё равно надо какую-то ссылку иметь.

Цитата(archimed7592 @  22.5.2008,  10:43 Найти цитируемый пост)
Ты немного не в том ключе понимаешь мои слова. Я изначально утверждал, что SWF так спроектирован, что нет возможности писать код в notepad'е, и не напрягаться в этот момент

По-моему он спроектирован так именно для того чтобы не было надобности писать это в блокноте В) вот и всё.

Цитата(archimed7592 @  22.5.2008,  10:43 Найти цитируемый пост)
Я чес слово уже не помню что там к чему. У меня мало опыта в написании гуя под SWF. Ну, скажем, такой пример: есть некий контрол, отображение которого зависит от многих факторов доступных только в рантайме, и, чтобы всё это запрограммировать так, чтобы это выглядело в дизайнере также, как в рантайме - мне кажется, не самая простая задача. Если дотнетчики и не ленятся делать это, в любом случае им приходится писать лишний код, который нужен именно для дизайнера - не это ли monkey job? 

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


Цитата(archimed7592 @  22.5.2008,  10:43 Найти цитируемый пост)
Подойди к вопросу более абстрактно: есть такие элементы UI, которые не сразу понятны неискушенному пользователю. Есть способ помочь ему освоится: сделать контекстную помощь, которая должна быть доступна при взаимодействии с элементом.
...

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

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

ЗЫ главное теперь до сравнения WPF не дойти  smile 

ЗЗЫ При чём тут SWF?... 

ЗЗЗЫ так вот питон - классный язык. очень нравится его 1) кроссплатформенность и 2) скриптованность. Очень удобно. С .НЕТ сравнивать его не могу. ибо всё-таки плохо в нём разбираюсь (дилетантишка одним словом).

Это сообщение отредактировал(а) Kefir - 22.5.2008, 11:18
PM MAIL WWW Skype   Вверх
archimed7592
Дата 22.5.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(mr.DUDA @  22.5.2008,  10:01 Найти цитируемый пост)
Ага, и работая в команде ты будешь на пальцах объяснять человеку как элементы расположены, или он телепат, или может быть бумажку сканировать и пересылать по имейлу? LOL

mr.DUDA, зачем мне объянять кому-то как расположены элементы? 0_о
Кому какая разница, как они расположены, если виджет - это "черный ящик", который отвечает за своё дело и ничего более?

Цитата(mr.DUDA @  22.5.2008,  10:01 Найти цитируемый пост)
Уточняю. Я про размер в процентах или пикселах, отводимый конкретному виджету в контейнере (так это вроде в Qt называется?). Width и Height. Размер кнопок, текстовых полей, разбивка на табличный layout с заданными размерами и т.п. - всё что с размерами связано.

Зачем мне эти размеры? Нет, бывают редкие случаи, что нужно сказать, что этот виджет занимает N% контейнера... Ну и так и пишу:
Код

{
    QWidget *w = ...;
    // ...
    {
        QSizePolicy sp = w->sizePolicy();
        sp->setHorizontalStretch(80);
        w->setSizePolicy(sp);
    }
    // ...

    hbl->addWidget(w);
}
{
    QWidget *w = ...;
    // ...
    {
        QSizePolicy sp = w->sizePolicy();
        sp->setHorizontalStretch(20);
        w->setSizePolicy(sp);
    }
    // ...

    hbl->addWidget(w);
}
// получим, что внутри HBox'а эти два виджета поделят между собой пространство 80%-20%

Зачем мне дизайнер для этого?

Цитата(mr.DUDA @  22.5.2008,  10:01 Найти цитируемый пост)
1. Настраивает текстурный мап.
2. Ссылка на один (!) объект. Его свойства отображает и редактирует этот (не диалог!) контрол, будучи размещённым где-то на другом контроле. И таких штук 10, на каждый текстурный мап. Всё вместе входит в гуи редактора материалов.
3. Ни с какими внешними объектами, кроме поданного на вход TextureMap он не связан. Ни о чём больше не знает, да и не нужно это.

Everything by the book smile.
Если вернуться к тому, с чего начинали, и опять поффтопить про сильные и слабые связи в С++, то, к примеру, внешний виджет, использующий твой, при изменении внутренней структуры твоего виджета будет перекомпилироваться, несмотря на то, что интерфейс с которым он работает с твоим виджетом не изменился. Происходит это потому, что ты, к примеру, изменишь название приватного поля, или добавишь приватную ф-цию... Это проблема конкретно С++.

Цитата(mr.DUDA @  22.5.2008,  10:01 Найти цитируемый пост)
Копи-паст элементов в дизайнере (вместе со всеми настроенными свойствами) за два клика или Ctrl+Drag никто не отменял, это во-первых. Настроить всплывающую подсказку - просто вбить текст в свойстве "вопросика", за два клика - это во-вторых.

Ух как... Вот об этих копи-пастах я и говорю - ухудшают они качество кода. А когда ты логику пишешь, ты тоже копи-пастом не брезгуешь? smile
Ну, собственно говоря, я уже привёл выше Kefir'у связанные с этим проблемы, повторяться не буду.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
archimed7592
Дата 22.5.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Kefir @  22.5.2008,  11:18 Найти цитируемый пост)
* сразу оговорюсь - не понимаю при чём тут SWF... говорю лишь о VS В) *

В VS уже нету такой штуки, как System.Windows.Forms? Жаль smile.
Я употреблял это сокращение, дабы дать понять, что говорю именно об SWF, а не о WPF, который якобы "ещё круче Qt" smile.

Цитата(Kefir @  22.5.2008,  11:18 Найти цитируемый пост)
Конечно прямо вот так "2 символа" я не напишу. просто сделаю маленькую ширину.  smile 

О, вот как, а что будет с этим контролом, когда за компьютер сядет человек с плохим зрением и выставит огромный системный шрифт?

Цитата(Kefir @  22.5.2008,  11:18 Найти цитируемый пост)
ой слушай, ты меня не понял. это к спору не относится. просто реально интересно В) жалко чтоли?

Ну что, что, откуда я знаю что smile.
Что-то вроде этого
Код

connect(e, SIGNAL(textChanged(const QString &)), controller, SLOT(onTextChanged(const QString &)));

Мало ли что там может быть - от логики зависит и от связи с ней smile.

Цитата(Kefir @  22.5.2008,  11:18 Найти цитируемый пост)
А какие вещи ты бедушь донастраивать? Лейбл тот же самый - чего ему, шрифт поставил да и всё. Ведь мембуры не нужны для тех контролов которые не задействованы в логике. Если ты хочешь менять надписи - всё равно надо какую-то ссылку иметь.

А что, не бывает в мире ГУИ вещей, которые приходится донастраивать в конструкторе? Скажем, заливать combo/list-box значениями, полученными откуда-то динамически?

Цитата(Kefir @  22.5.2008,  11:18 Найти цитируемый пост)
По-моему он спроектирован так именно для того чтобы не было надобности писать это в блокноте В) вот и всё.

Блин... Перефразирую:
1. Есть фреймворк, который настолько удобно спроектирован, что можно не задумываясь писать ГУЙ в блокноте.
2. Есть фреймворк, который не очень удачно спроектирован, хотя бы, потому что для того, чтобы сделать дизайн необходимо иметь дизайнер?(он что, часть фреймворка?)
Напомню, что началось всё с фразы 3-хмерного маньяка, мол "нет ничего удобнее для ГУЯ, чем дотнет".

Цитата(Kefir @  22.5.2008,  11:18 Найти цитируемый пост)
Ну во-первых, я не вижу преимущества писать код для всего контрола вручную. В дизайнере создаётся костак контрола. В логике уже обрабатываются определённые ситуации. Итого для дизайнера не надо писать ничего. Не вижу лишнего кода.

Мдя, ну возьмём table(не помню точного названия) с его возможностями настраивать через всяки диалоги связи с датасетом и т.п. Да и сам датасет, хоть он и не гуёвый элемент, немало диалогов для настройки имеет. Я говорю про написание этих диалогов - их придётся писать, если хочешь, чтобы в дизайнере можно было манипулировать контролом также, как в коде. Это и есть никому не нужная работа(которую, подозреваю, многие делать поленятся, ибо, действительно - monkey job, если сам контрол, конечно, не для продажи пишется).

Цитата(Kefir @  22.5.2008,  11:18 Найти цитируемый пост)
Если стоит такая задача, то на винформах лучше всего реализовывать через юзер-контрол.

Вот видишь, сразу контрол.  А почему контрол? А потому что без дизайнера себе жизни не представляем, да? smile
Я же сказал(от лица привередливого клиента), что через месяц передумаю и попрошу сделать так, чтобы всё действо происходило при наведении мыши на непонятный элемент, а не на контрол рядом с ним(будь то вопросик или крестик - неважно). И чем тебе этот контрол поможет?

Добавлено через 10 минут и 28 секунд
Цитата(Kefir @  22.5.2008,  11:18 Найти цитируемый пост)
Так вот. Ещ раз - я не говорю что винформы = великолепная гуи, или что она лучше QT.

А чё ж в спор полез? smile
Цитата(archimed7592 @  22.5.2008,  11:40 Найти цитируемый пост)
Напомню, что началось всё с фразы 3-хмерного маньяка, мол "нет ничего удобнее для ГУЯ, чем дотнет".



Это сообщение отредактировал(а) archimed7592 - 22.5.2008, 11:47


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Kefir
Дата 22.5.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Цитата(archimed7592 @  22.5.2008,  11:40 Найти цитируемый пост)
В VS уже нету такой штуки, как System.Windows.Forms? Жаль

ах соо. тогда ясно. просто мне эта аббр. больше флаш напоминает В)


Цитата(archimed7592 @  22.5.2008,  11:40 Найти цитируемый пост)
О, вот как, а что будет с этим контролом, когда за компьютер сядет человек с плохим зрением и выставит огромный системный шрифт?

научи меня, о гуру!


Цитата(archimed7592 @  22.5.2008,  11:40 Найти цитируемый пост)
А что не бывает в мире ГУИ вещей, которые не приходится донастраивать в конструкторе? Скажем, заливать combo/list-box значениями, полученными откуда-то динамически?

конечно бывает. вот и донастраивай. если ты хочешь с контролом общаться напрямую - делай мембер. или ты на QT говоришь можешь комбик заполнить без ссылки на него?  smile 


Цитата(archimed7592 @  22.5.2008,  11:40 Найти цитируемый пост)
Мдя, ну возьмём table(не помню точного названия) с его возможностями настраивать через всяки диалоги связи с датасетом и т.п. Да и сам датасет, хоть он и не гуёвый элемент, немало диалогов для настройки имеет. Я говорю про написание этих диалогов - их придётся писать, если хочешь, чтобы в дизайнере можно было манипулировать контролом также, как в коде. Это и есть никому не нужная работа(которую, подозреваю, многие делать поленятся, ибо, действительно - monkey job, если сам контрол, конечно, не для продажи пишется).

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


Цитата(archimed7592 @  22.5.2008,  11:40 Найти цитируемый пост)
Вот видишь, сразу контрол.  А почему контрол? А потому что без дизайнера себе жизни не представляем, да?

Цитата(archimed7592 @  22.5.2008,  11:40 Найти цитируемый пост)
И чем тебе этот контрол поможет? 

Нет, не угадал В) Юзер контрол потому что он позволяет запихнуть в него несколько контролом одновременно. То биш в него я поставлю, к примеру, лейбл и текстовое поле. Скажешь поставить сбоку вопросик - пожалуйста. Поставлю в него ещё и вопросик.

Добавлено через 53 секунды
А что, в QT вопросики по другому расставляются?  smile  Есть система "анти-привередлиость"?
PM MAIL WWW Skype   Вверх
mr.DUDA
Дата 22.5.2008, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(archimed7592 @  22.5.2008,  11:21 Найти цитируемый пост)
mr.DUDA, зачем мне объянять кому-то как расположены элементы? 0_оКому какая разница, как они расположены, если виджет - это "черный ящик", который отвечает за своё дело и ничего более?

Видимо ты не работал в команде, когда с виджетом работает более чем один девелопер.

Цитата(archimed7592 @  22.5.2008,  11:21 Найти цитируемый пост)
Ух как... Вот об этих копи-пастах я и говорю - ухудшают они качество кода. А когда ты логику пишешь, ты тоже копи-пастом не брезгуешь? 

Да, конечно не брезгую. У меня весь код - один сплошной копипаст !  smile 

Цитата(archimed7592 @  22.5.2008,  11:21 Найти цитируемый пост)
 Нет, бывают редкие случаи, что нужно сказать, что этот виджет занимает N% контейнера... Ну и так и пишу:

То есть Qt настолько умён, что человек-дизайнер уже как бы не нужен? Всё будет расставлено и растянуто как положено. Вау, нафиг тогда винформс и WPF, накоплю 6 килобаксов и перейду на Qt/C++  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
archimed7592
Дата 22.5.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Kefir @  22.5.2008,  12:03 Найти цитируемый пост)
больше флаш напоминает В)

Вообще говоря, я услышал эту аббревиатуру, если мне память не изменяет, от Exception'а... Может быть я расшифровал её неправильно? Ну, не суть.

Цитата(Kefir @  22.5.2008,  12:03 Найти цитируемый пост)
научи меня, о гуру!
Зачем сарказм? Я действительно не знаю, что будет с контролом, если выставить крупный системный шрифт.
В коде это делается так:
Код

int maxLen = 2; // кол-во предполагаемых символов
int margins = 10; // отступы в самом edit'е
QFontMetrics fm(e->font());
QString str('M', maxLen);
int width = fm.width(str) + margins;
e->setFixedWidth(width);

Это я расписал в 6 строк, ибо, как я подозреваю, не все знакому с С++ и не поймут записанное в одну строку(намного короче).
Думаю, что в .NET'е можно проделать тоже самое, только не в дизайнере.

Цитата(Kefir @  22.5.2008,  12:03 Найти цитируемый пост)
конечно бывает. вот и донастраивай. если ты хочешь с контролом общаться напрямую - делай мембер. или ты на QT говоришь можешь комбик заполнить без ссылки на него?

Можно сделать это без мембера. Просто ссылка будет иметь ограниченную область жизни(от места объявления до закрывающейся фигурной скобки):
Код

{
    QWidget *w = new QWidget();
    w->... ; // configuring widget
    layout->addWidget(w);
    this->someMember = w; // вот эту строку если НЕ написать(и мембера убрать),
                                          // то настройка будет произведена без наличия мембера
}

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

Цитата(Kefir @  22.5.2008,  12:03 Найти цитируемый пост)
Действительно. Потому что незачем. Накатал что тебе конкретно надо и живи спокойно. Зачем делать универсальный контрол, когда ты его юзаешь в двух местах программы? Понадобится полная универсальность - вот когда понадобится - тогда и сделаешь.

И что, ты в обоих местах будешь проделывать одни и те же действия?
Насчёт "зачем универсальный?" - а я не знаю зачем smile. Мне и не приходится делать универсальные контролы, ибо у меня не стоит задача, чтобы они работали в дизайнере. Мне достаточно, чтобы контрол выполнял требуемые от него ф-ции и всё. Дальше я его в двух(в десяти, в двадцати) местах программы создаю и использую и никаких проблем.
Об этом я собственно и говорю - вам не хочется делать универсальные контролы, и, когда придётся что-то изменить - придётся делать много monkey job и ни к чему другому копи-паст в дизайнере привести не может(собственно, как и копи-паст в коде).

Цитата(Kefir @  22.5.2008,  12:03 Найти цитируемый пост)
Нет, не угадал В) Юзер контрол потому что он позволяет запихнуть в него несколько контролом одновременно. То биш в него я поставлю, к примеру, лейбл и текстовое поле. Скажешь поставить сбоку вопросик - пожалуйста. Поставлю в него ещё и вопросик.

Эххх. Теперь представь, что у тебя есть лэйбл и эдитбокс(ну, типа поле для редактирования - ничего особенного). При наведении на оба элемента(что на лэйбл, что на эдит) должна дёргаться контекстная помощь. Занул ты обоих в свой контрол и радуешься жизни. Теперь представили, что таких полей для ввода с надписями много и они как-то должны быть сгруппированны. Когда у тебя просто есть отдельно лэйбл и отдельно эдитбокс, то ты можешь засунуть их в отдельные столбцы GridLayout'а. Когда они обёрнуты в какой-то спец-контрол, отвечающий за помощь, то это уже становится монолитный контрол и засунуть разные его части по разным столбцам не получится. Можно, конечно, воспользоваться span'ом на оба столбца, но эффект будет тот же, что если ты эти пять полей для ввода засунешь в VBoxLayout, т.е. будет похоже на ёлочку.
Как тут поступим?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
archimed7592
Дата 22.5.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(mr.DUDA @  22.5.2008,  12:21 Найти цитируемый пост)
Видимо ты не работал в команде, когда с виджетом работает более чем один девелопер.

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

Цитата(mr.DUDA @  22.5.2008,  12:21 Найти цитируемый пост)
Да, конечно не брезгую. У меня весь код - один сплошной копипаст !

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

Цитата(mr.DUDA @  22.5.2008,  12:21 Найти цитируемый пост)
То есть Qt настолько умён, что человек-дизайнер уже как бы не нужен? Всё будет расставлено и растянуто как положено.

Не понимаю тебя. Вот смотри, код:
Код

#include <QtCore>
#include <QtGui>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QDialog *d = new QDialog();

    {
        QGridLayout *gl = new QGridLayout();

        int r = 0;
        {
            QLabel *lbl = new QLabel("Field&11");
            QLineEdit *e = new QLineEdit();
            lbl->setBuddy(e);

            gl->addWidget(lbl, r, 0);
            gl->addWidget(e, r, 1);
            ++r;
        }
        {
            QLabel *lbl = new QLabel("Field&22222");
            QLineEdit *e = new QLineEdit();
            lbl->setBuddy(e);

            gl->addWidget(lbl, r, 0);
            gl->addWidget(e, r, 1);
            ++r;
        }
        {
            QWidget *dummy = new QWidget();
            gl->addWidget(dummy, r, 0, 1, 2);
            gl->setRowStretch(r, 1);
            ++r;
        }
        {
            QHBoxLayout *hbl = new QHBoxLayout();

            hbl->addStretch();

            {
                QPushButton *b = new QPushButton("OK");
                d->connect(b, SIGNAL(clicked()), SLOT(accept()));
                b->setDefault(true);
                hbl->addWidget(b);
            }
            {
                QPushButton *b = new QPushButton("Cancel");
                d->connect(b, SIGNAL(clicked()), SLOT(reject()));
                hbl->addWidget(b);
            }
            gl->addLayout(hbl, r, 0, 1, 2);
            ++r;
        }
        d->setLayout(gl);
    }

    d->show();

    return app.exec();
}

Вот что получается.
user posted image
Слева-направо, сверху-вниз: 1) размер по умолчанию; 2) юзер руками растянул по горизонтали; 3) растянул во вертикали; 4) растянул по диагонали.
И теперь вопрос: какие такие размеры мне пришлось учитывать?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
mr.DUDA
Дата 22.5.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(archimed7592 @  22.5.2008,  13:06 Найти цитируемый пост)
Правда, я не до сих пор не могу понять, что это за мега навороченный виджет должен быть, чтобы нельзя было разбить его по ф-ционалу и дизайну на кусочки и поручить их разным людям.

А вариантов, когда виджет дорабатывает кто-либо кроме создателя не рассматриваешь? Или тот же виджет, но спустя полгода ты подзабыл как оно должно было выглядеть.

Цитата(archimed7592 @  22.5.2008,  13:06 Найти цитируемый пост)
Слева-направо, сверху-вниз: 1) размер по умолчанию; 2) юзер руками растянул по горизонтали; 3) растянул во вертикали; 4) растянул по диагонали.И теперь вопрос: какие такие размеры мне пришлось учитывать?

Пример в ответ. Если добавить справа от текстбокса кнопку, размер кнопки можно как-то задать?



--------------------
user posted image
PM MAIL WWW   Вверх
Kefir
Дата 22.5.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Цитата(archimed7592 @  22.5.2008,  12:39 Найти цитируемый пост)
Вообще говоря, я услышал эту аббревиатуру, если мне память не изменяет, от Exception'а... Может быть я расшифровал её неправильно? Ну, не суть.

да всё ясно - мы просто по разному расшифровываем эти буквы smile 

Цитата(archimed7592 @  22.5.2008,  12:39 Найти цитируемый пост)
Думаю, что в .NET'е можно проделать тоже самое, только не в дизайнере.

ну конечно, само собой.

Цитата(archimed7592 @  22.5.2008,  12:39 Найти цитируемый пост)
Думаю, что в .NET'е можно проделать тоже самое, только не в дизайнере.

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


Цитата(archimed7592 @  22.5.2008,  12:39 Найти цитируемый пост)
Можно сделать это без мембера. Просто ссылка будет иметь ограниченную область жизни(от места объявления до закрывающейся фигурной скобки):

так о чём разговор? суть всё то же самое.


Цитата(archimed7592 @  22.5.2008,  12:39 Найти цитируемый пост)
Насчёт "зачем универсальный?" - а я не знаю зачем smile. Мне и не приходится делать универсальные контролы, ибо у меня не стоит задача, чтобы они работали в дизайнере. Мне достаточно, чтобы контрол выполнял требуемые от него ф-ции и всё. Дальше я его в двух(в десяти, в двадцати) местах программы создаю и использую и никаких проблем.
Об этом я собственно и говорю - вам не хочется делать универсальные контролы, и, когда придётся что-то изменить - придётся делать много monkey job и ни к чему другому копи-паст в дизайнере привести не может(собственно, как и копи-паст в коде).

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


Цитата(archimed7592 @  22.5.2008,  12:39 Найти цитируемый пост)
Как тут поступим?

перед этим хотелось бы услышать как всемогущий QT решает эти задачи. а то я пишу, пишу, жду, жду...
PM MAIL WWW Skype   Вверх
archimed7592
Дата 22.5.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Kefir @  22.5.2008,  13:36 Найти цитируемый пост)
только я работу с дизайном делаю делаю в дизайнере, а ты печатаешь кодом. в чм превосходство

В том, что в дизайнере нельзя задать ширину относительно размера системного шрифта, а без дизайнера можно.

Цитата(Kefir @  22.5.2008,  13:36 Найти цитируемый пост)
так о чём разговор? суть всё то же самое.

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

Цитата(Kefir @  22.5.2008,  13:36 Найти цитируемый пост)
ну опять. ну вот, сделал я контрол и буду юзать его хоть сто раз в любых местах. универсальный контрол в моём понимании - тот, который можно использовать в различных ситуациях. при чём тут этот копи-паст?

Ок. Есть контрол "форма ответа в тему". Она присутствует в трёх местах - быстрый ответ, "долгий" и ответ в ПМ. Хотя нет, ещё несколько мест: новая тема, новое ПМ.
Ситуации суть те же. Написали мы такой контрол. Ок. Нужно разместить его на странице. Размещаем... Ой, а как эту форму немного кастомизировать для разных случаев? Блин, нужно делать специальные диалоги настройки специально для дизайнера, вот же чёрт, придётся заниматься monkey job лишь для того, чтобы воспользоваться всею "мощью" дизайнера... Аналогия ясна?
Что-то мы из пустого в порожнее гоняем... Я напомню в чём здесь спор: я утверждаю, что некоторые контролы со сложной логикой при использовании в дизайнере приходится настраивать через спец. диалоги. Диалоги эти не нужны никому, кроме дизайнера. Вывод: это плохая черта делания ГУЯ в дизайнере, ибо приходится писать эти диалоги лишь для того чтобы пользоваться дизайнером. Вы согласны с этим выводом? Нет? Почему?
Ещё напомню это: без дизайнера делать ГУЙ нельзя при использовании SWF, а при использовании Qt делать ГУЙ можно без дизайнера. Вывод: Qt намного удобнее потому что не нужен никакой code behind, чтобы скрыть тот ужас, который генерит дизайнер - им можно просто не пользоваться. Вы согласны с тем, что фреймворк в котором можно с лёгкостью делать гуй без дизайнера лучше? Нет? Почему?

Цитата(Kefir @  22.5.2008,  13:36 Найти цитируемый пост)
перед этим хотелось бы услышать как всемогущий QT решает эти задачи. а то я пишу, пишу, жду, жду... 

Чего ты написал до чего ответа не дождался? 0_о
Я не утверждаю, что Qt решает эту задачу. Я утверждаю, что эту задачу можно решить когда не используешь дизайнера, а сделать это(т.е. писать код руками без дизайнера) можно только с один из двух обсуждаемых фреймворков - с Qt.
Я напомню, в чём вопрос: я утверждаю, что дизайнер принуждает к плохому стилю. Я бы даже без необходимости размещать в гриде не стал бы оборачивать лэйбл и эдитбокс в невидимый спец контейнер, отображающий хэлп и это не потому что я такой "гуру", а потому что просто я не пользуюсь дизайнером и не скован его ограничениями.
Собственно, я буквально неделю назад занимался прикруткой этого контекстного хэлпа к одному проекту. Прикручиванием я занимался уже после того, как проект был реализован, ибо когда я пытался научить персонал пользоваться программой, я понял, что другого выхода просто нет - запомнить пять шагов они не в сосотоянии, использовать(понимать) "обыкновенную" справку они тоже не в состоянии. Как бы смешно это не звучало, сначала я сделал с подобными вопросиками - даже это оказалось им не по силам(они не виноваты, просто уровень компьютерного развития почти нулевой, они из калькулятора результат переписывают на бумажку, после чего вводят его в экселе в соседнем окне с бумажки).
Тогда я сделал так, что при наведении мыши во второй половине окна отображалась html'ина с подробнейшим описанием и иллюстрациями(к слову, это хоть и помогло, но не особо - в итоге пришлось снимать видео при помощи CamStudio, где показывать подсвеченным указателем мыши куда нужна тыкнуть, зачем и т.д.).
Итак, добавление справки выглядит так:
Код

QLabel *lbl = ...;
QLineEdit *e = ...;
// ...
{
    QList< QWidget *> widgets = QList< QWidget *>() << lbl << e;
    QUrl helpLocation("qrc:/help/context/someElement.html");
    ContextHelpManager::instance()->registerWidgets(widgets, helpLocation);
}
{
    QUrl helpLocation("qrc:/help/someGroup.html");
    HelpManager::instance()->registerWidget(e, helpLocation);
}
//...

Как ты понимаешь, когда я переделывал с вопросика на hoverEnter/Leave я даже не заглядывал в этот код, я лишь немного подправил ContextHelpManager.

Цитата(mr.DUDA @  22.5.2008,  13:27 Найти цитируемый пост)
А вариантов, когда виджет дорабатывает кто-либо кроме создателя не рассматриваешь? Или тот же виджет, но спустя полгода ты подзабыл как оно должно было выглядеть.

Почему должно было? Хочешь сказать как оно выглядело?
Ну не проблема написать три строчки:
Код

QApplication app(argc, argv);

SomeMegaWidget *w = new SomeMegaWidget();
w->show();

return app.exec();



Цитата(mr.DUDA @  22.5.2008,  13:27 Найти цитируемый пост)
Пример в ответ. Если добавить справа от текстбокса кнопку, размер кнопки можно как-то задать?

Когда виджет в лэйауте, то размер - величина рекомендательная. К примеру, справа - это в отдельном столбце? Тогда столбец будет себе подбирать ширину по определённым правилам. Ньансы можно выбрать такие: задать стретч, чтобы этот столбец всегда занимал минимум пространства, тогда будет использован sizeHint отдаваемый кнопкой. Иначе, можно для каждой кнопки задавать fixedWidth. Иначе, можно выставить sizePolicy->horizontalPolicy в Fixed. Ньюансов куча - зависит от того, чего ты реально хочешь добится. Можно вообще эту кнопку вынуть из лэйаута и позиционировать её и задавать ей размеры руками, просто никто так делать не будет smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
mr.DUDA
Дата 22.5.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
Когда виджет в лэйауте, то размер - величина рекомендательная. К примеру, справа - это в отдельном столбце? Тогда столбец будет себе подбирать ширину по определённым правилам. Ньансы можно выбрать такие: задать стретч, чтобы этот столбец всегда занимал минимум пространства, тогда будет использован sizeHint отдаваемый кнопкой. Иначе, можно для каждой кнопки задавать fixedWidth. Иначе, можно выставить sizePolicy->horizontalPolicy в Fixed. Ньюансов куча - зависит от того, чего ты реально хочешь добится.

Вот это я и хотел услышать. Значит в Qt всё же есть шаманская машинка, которая определяет оптимальные размеры и отступы (по size policy и т.п.). Удобно (без сарказма). smile 

Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
В том, что в дизайнере нельзя задать ширину относительно размера системного шрифта, а без дизайнера можно.

В винформах есть AutoScaleMode, там в т.ч. есть вариант Font.


--------------------
user posted image
PM MAIL WWW   Вверх
Kefir
Дата 22.5.2008, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
В том, что в дизайнере нельзя задать ширину относительно размера системного шрифта, а без дизайнера можно.

так вот в коде и добавляем В) то что есть дизайнер не отнимает возможности дописать что-то в коде. я не прав?
о тут mr.DUDA даже лучше сказал В)

Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
Ок, раз то же самое, покажи мне как ты без мембера добавишь в дизайнере комбобокс и потом проинициализируешь список его значений в конструкторе.

Не смогу без лишних движений. Более того, мне его и не надо. Мемберы мне не нужны в тех случаях если мне не надо совсем не надо с контролом взаимодействовать. При такой постановке задачи по-моему, нет ничего плохого в том, чтобы комбик был мембуром. Если я хочу до контрола достучаться из кода, то мне нужны мемберы. Всё.

Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
Ситуации суть те же. Написали мы такой контрол. Ок. Нужно разместить его на странице. Размещаем... Ой, а как эту форму немного кастомизировать для разных случаев? Блин, нужно делать специальные диалоги настройки специально для дизайнера, вот же чёрт, придётся заниматься monkey job лишь для того, чтобы воспользоваться всею "мощью" дизайнера... Аналогия ясна?

Я понял что ты имеешь в виду, только я тебе о том и говорю - набросали костяк в дизайнере (ну там, накидали поле текстовое для ответа, кнопычка, ещё что-то). А в коде затачиваем до опупения. Для дизайнера ничего не надо делать.

Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
Вывод: это плохая черта делания ГУЯ в дизайнере, ибо приходится писать эти диалоги лишь для того чтобы пользоваться дизайнером. Вы согласны с этим выводом? Нет? Почему?

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

Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
без дизайнера делать ГУЙ нельзя при использовании SWF, а при использовании Qt делать ГУЙ можно без дизайнера.

Да кто тебе гадостей таких наговорил? Пиши на здоровье!

Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
Вы согласны с тем, что фреймворк в котором можно с лёгкостью делать гуй без дизайнера лучше? Нет? Почему?

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

Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
Чего ты написал до чего ответа не дождался? 0_о

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


Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
Итак, добавление справки выглядит так:

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

Это сообщение отредактировал(а) Kefir - 22.5.2008, 16:12
PM MAIL WWW Skype   Вверх
Любитель
Дата 22.5.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(mr.DUDA @  22.5.2008,  15:40 Найти цитируемый пост)
Вот это я и хотел услышать. Значит в Qt всё же есть шаманская машинка, которая определяет оптимальные размеры и отступы (по size policy и т.п.). Удобно (без сарказма).

Это не шаманская машинка - это просто нормальный механизм лейоутов ;) И дело (для меня) вовсе не в том, что он помогает писать руками. Я за дизайнер - при приемлемом качестве генрируемого кода (не в плане красоты, конечно).

А вообще - где изначальная тема-то?  smile

Добавлено через 6 минут и 34 секунды
Цитата(archimed7592 @  22.5.2008,  15:34 Найти цитируемый пост)
QApplication app(argc, argv);

SomeMegaWidget *w = new SomeMegaWidget();
w->show();

return app.exec();

Кстати, почему динамическое выделение памяти. Да ещё и без парента! smile 

Цитата(archimed7592 @  22.5.2008,  12:39 Найти цитируемый пост)
Мне достаточно, чтобы контрол выполнял требуемые от него ф-ции и всё. Дальше я его в двух(в десяти, в двадцати) местах программы создаю и использую и никаких проблем.

Тебе достаточно. Другим нет. Как бы то ни было - Qt Designer тоже существует. Более того, для интеграции виджета (просто интеграции - безо всяких специальных проперти-эдиторов и пр.) в Qt надо писать плагин. .Net этого не требует.


--------------------
PM MAIL ICQ Skype   Вверх
archimed7592
Дата 22.5.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Kefir @  22.5.2008,  16:10 Найти цитируемый пост)
так вот в коде и добавляем В) то что есть дизайнер не отнимает возможности дописать что-то в коде. я не прав?

Опустим пример с autoScale. Возьмём произвольный контрол, которому не получается сразу задать размер без кода. Вы задаёте размер в дизайнере + корректируете размер в коде - как вы контролируете что получится в итоге - как будут себя вести соседние контролы? Если всё пучком и всё под контролем, то претензию снимаю.

Цитата(Kefir @  22.5.2008,  16:10 Найти цитируемый пост)
Я понял что ты имеешь в виду, только я тебе о том и говорю - набросали костяк в дизайнере (ну там, накидали поле текстовое для ответа, кнопычка, ещё что-то). А в коде затачиваем до опупения. Для дизайнера ничего не надо делать.

В общем, я не могу далее вести дискуссию об этом, ибо не хватает опыта в делании гуи под SWF, чтобы показать мои предположения на примере(или опровергнуть эти предположения). Будем считать, что я сдался smile.

Цитата(Kefir @  22.5.2008,  16:10 Найти цитируемый пост)
Да кто тебе гадостей таких наговорил? Пиши на здоровье!

Вы с маньяком и наговорили - мазохизм, все дела... Я, в принципе, не спорю, что это мазохизм для SWF.

Цитата(Kefir @  22.5.2008,  16:10 Найти цитируемый пост)
аргументы, а-ля "а там меберы мешают", по-моему, просто смешны.

Аргумент был один, остальные относились немного к другому и, если ты вернёшься назад, то увидишь этот аргумент: вы с SWF занимаетесь pixel hunting'ом - попробуй доказать мне обратное. Скажем так, если тебе нужно создать диалог как я показал на примере выше и тебе без использования дизайнера придётся указать хотя бы одну координату или хотя бы один размер, то ты занимаешься pixel hunting'ом, и то, что ты проделываешь это при помощи указателя мыши в дизайнере, а не при помощи клавиатуры и калькулятора в блокноте - это не аргумент.
Следствие же из отсутствия нужды заниматься pixel hunting'ом - возможность делать гуи без дизайнера вообще(и остальные рассуждения на этот счёт, про качество кода и т.п.).

Цитата(Kefir @  22.5.2008,  16:10 Найти цитируемый пост)
хосспади, так напиши такой же хелп манагер на шарпе и радуйся жизни. Ты меня пытаешься убедить в том. что на QT всё намного проще и показываешь код, который к QT отношения не имеет. Ну да, клёво, класс, который подписывается на чужие эвенты (условно говоря).

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


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
mr.DUDA
Дата 22.5.2008, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



archimed7592, мир, дружба, жвачка !  smile 

nerezus, ну что решил что-нибудь по вопросу топика?  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
nerezus
  Дата 22.5.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

ну что решил что-нибудь по вопросу топика?
 Нет, т.к. начали гуями мериться ))

Пока пишу на питоне, потом посмотрим)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
archimed7592
Дата 22.5.2008, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Любитель @  22.5.2008,  17:00 Найти цитируемый пост)
Тебе достаточно. Другим нет. Как бы то ни было - Qt Designer тоже существует. Более того, для интеграции виджета (просто интеграции - безо всяких специальных проперти-эдиторов и пр.) в Qt надо писать плагин. .Net этого не требует.

Я не ярый противник дизайнера. Я это привожу лишь как пример недостатка пиксельхантинга...
В прочем, если появится сделанный "по уму" дизайнер для Qt, то, возможно, я начну им пользоваться(изредка smile).

Добавлено через 1 минуту и 30 секунд
Цитата(mr.DUDA @  22.5.2008,  20:06 Найти цитируемый пост)
archimed7592, мир, дружба, жвачка !  smile 

smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Kefir
Дата 23.5.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Цитата(archimed7592 @  22.5.2008,  19:49 Найти цитируемый пост)
Опустим пример с autoScale. Возьмём произвольный контрол, которому не получается сразу задать размер без кода. Вы задаёте размер в дизайнере + корректируете размер в коде - как вы контролируете что получится в итоге - как будут себя вести соседние контролы? Если всё пучком и всё под контролем, то претензию снимаю.

ну как... так же как и ты - прописываем, запускаем и смотрим что получилось В) насчёт соседних контролов - мне лично очень нравился табличный контейнер. суть то же что и в HTML таблица - нарисовал, спаны поставил, распихал по ней контролы. и в итоге ни один контрол другому мешать не будет. ну это как пример. к тому же у всякого контрола есть 1) якорь и 2) док. Якорь - это то, куда крепится контрол. То есть фактически если он где-то в углу, я ему скажу - держись за левый и верхний край парента. и при растяжении парента контрол останется на месте. если я поставлю якорь ещ и на правый край парента, то ширина контрола будет увеличиваться с растяжением парента и так далее.

Цитата(archimed7592 @  22.5.2008,  19:49 Найти цитируемый пост)
В общем, я не могу далее вести дискуссию об этом, ибо не хватает опыта в делании гуи под SWF, чтобы показать мои предположения на примере(или опровергнуть эти предположения). Будем считать, что я сдался

так а что сдался, не сдался В) всё просто - нужен тебе мега контрола, для которого необходимо конфигить много вещей через дизайнер (ситуация когда контрол на продажу, к примеру) - придётся помучаться. если делаешь для внутреннего пользования в фирме и там не требуют полной поддержки дизайнера - не делай. то есть фактически варианта два:
1) простой, ничего не пишушь для дизайнера. тогда контрол в дизайнере показывается, всё вроде пучком, но в пропертигриде ты увидишь только вещи, унаслдованные от UserControl. Ни строки кода для дизайнера.
2) тяжёлый. пишешь полную поддержку для дизайнера, чтобы можно было менять цвета сердечек, размеры звздочек, настраивать БД подключение или ещё что-то. Тут придётся постараться.


Цитата(archimed7592 @  22.5.2008,  19:49 Найти цитируемый пост)
Вы с маньяком и наговорили - мазохизм, все дела... Я, в принципе, не спорю, что это мазохизм для SWF.

Ну да, имхо, это мазохизм В) Не не люблю я это дело. Но ведь есть в мире мазохисты  smile 

Цитата(archimed7592 @  22.5.2008,  19:49 Найти цитируемый пост)
Аргумент был один, остальные относились немного к другому и, если ты вернёшься назад, то увидишь этот аргумент: вы с SWF занимаетесь pixel hunting'ом - попробуй доказать мне обратное. Скажем так, если тебе нужно создать диалог как я показал на примере выше и тебе без использования дизайнера придётся указать хотя бы одну координату или хотя бы один размер, то ты занимаешься pixel hunting'ом, и то, что ты проделываешь это при помощи указателя мыши в дизайнере, а не при помощи клавиатуры и калькулятора в блокноте - это не аргумент.
Следствие же из отсутствия нужды заниматься pixel hunting'ом - возможность делать гуи без дизайнера вообще(и остальные рассуждения на этот счёт, про качество кода и т.п.).

Ну в общем в начале этого поста есть объяснение, но повторюсь. Делаю табличную раскладку, туда пихаю контролы. У таблицы если совсем обленится можно поставить авто размер для строк / рядов.  Но я предпочитаю выставить размеры. Мне так нравится В) Или то что я поставлю 50% и 50% для столбцов это тоже пиксель хантинг? Если так, то да, я занимаюсь охотой на пиксели  smile 

archimed7592, в общем, можно закрыть эту тему, думаю. Если тебе не нравится (по причине пиксель хантинга или ещё какой-то) делать что-то в дизайнере - делай в коде. Я рад что тебе это нравится. Однако мне удобнее делать это в дизайнере без (как мне кажется) пиксель хангинга. Я не говорю, что в дизайнере нельзя этой охотой заниматься, я говорю лишь, что никто не вынуждает тебя этим заниматься. Главное чтобы человек знал как без этой охоты можно обойтись.
Надейюсь, что когда-нибудь создадут дизайнер, который тебе понравится и ты смело присоеденишься к нашему обществу горе-дизайнеров  smile 
PM MAIL WWW Skype   Вверх
nerezus
Дата 23.5.2008, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Предлагаю обсудить остальные 11(!!) пунктов )


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Любитель
Дата 23.5.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Нет нормальных средств функционального программирования.

Ещё раз - языков для .Net много (те же Nemerle, F# smile ) - так что не аргумент.

Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Применение в разработке скриптов и сетевых приложений

Странное название пункта (для меня, по крайней мере). Можно точней?

Ещё раз - это попытка сравнение или тебе сейчас реально что-то надо выбрать? Если второе - то для чего (конкретный проект, работа и пр.)?


--------------------
PM MAIL ICQ Skype   Вверх
nerezus
Дата 23.5.2008, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Ещё раз - языков для .Net много (те же Nemerle, F#  ) - так что не аргумент.
 Они не мейнстрим. Все равно потребуется же C# юзать в 95% случаев.

Цитата

Странное название пункта (для меня, по крайней мере). Можно точней?
 Например недавно я написал паука, которого кормил страничками с данными, он собирал их, анализировал и потом давал мне подробный отчет по суммированной и обработанной информации.
Я считаю его лучшей моей программой, но разгласить не могу. Подробностей качательно функционала разглашать не хочу.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
nerezus
Дата 23.5.2008, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Определился.
Гуй - дотнет. БД - дотнет. Виндовый софт - дотнет.
Скрипты и прочее, связанное с сетью - питон.

ПХП юзаю для веба. Пока заменять на питон не охота.

Но я сомневаюсь, что равномерно потяну 3 абсолютно разные технологии. Надо одну выкинуть. + J2ME в эту же свалку ((





--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Fortop
Дата 23.5.2008, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



nerezus
Либо убьешь Питон (ПХП может нормально работать в скриптах).
Либо перейдешь на Питон для Веба - не пробовал, не знаю smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
nerezus
Дата 23.5.2008, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

ПХП может нормально работать в скриптах
 Не может. Очень многово не хватает в пхп.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Fortop
Дата 23.5.2008, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



nerezus
Не очевидно. Можешь несколько примеров таких?
Можно в приват.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
nerezus
Дата 24.5.2008, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Fortop, да зачем в приват.
Что я юзал в своем последнем скрипте?
  • Потоки.
  • Синхронизацию потоков.
  • Класс работы с браузером(банально открыть страничку).
И это только один из моих скриптов на питоне.
Если Класс работы с браузером можно через расширение написать, то threads в пхп впринципе невозможны.


P.S. добивает еще такое в PHP:
Код

function s() {
  return array(0, 1, 2);
}
echo s()[0];

s() - это массив, но мы не можем с него взять элемент. А почему?


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
mr.DUDA
Дата 24.5.2008, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



Kefir, у архимеда как бы то ни было, есть мега-довод - size policy. Он просто расставляет контейнеры и задаёт им иерархию, и всё. После чего рутовое окно выглядит при любом размере корректно - вложенные элементы сами определяют как позиционироваться, сколько отступов делать (по правилам!) и где эти отступы делать. Вот это меня, честно говоря, добило - нету такого в дотнете, ни в винформах ни в WPF smile 

А ещё, у них layout не тормозит при ресайзинге топового окна. Пример - Opera.  smile 

Убийственная весч этот Qt !  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
Kefir
Дата 24.5.2008, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Цитата(mr.DUDA @  24.5.2008,  01:49 Найти цитируемый пост)
Убийственная весч этот Qt !

так я и не говрю то QT плохая штука. Я лишь говорю, что винфрмы не так уж плохи как пожет показаться простому смертному с первого взгляда. Я ещё раньше писал, что не ставлю целью доказать, что винформы лучше QT (как я могу доказать то, во что сам не верю?  smile )
PM MAIL WWW Skype   Вверх
archimed7592
Дата 24.5.2008, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Kefir @  24.5.2008,  09:25 Найти цитируемый пост)
Я лишь говорю, что винфрмы не так уж плохи как пожет показаться простому смертному с первого взгляда.

Простому смертному smile. Как ты будешь относится к мерседесу после месяца езды на феррари? Ну, бесспорно, мерседес машина хорошая, но, просто не тот уровень, что у феррари.
Думаю, что ты так считаешь(что SWF не так плоха), ибо большинство существующих GUI-библиотек/фреймворков(VCL, MFC, OWL, WTL и много других) построены на подобной архитектуре. Те же якори - они были в VCL ещё тогда, когда я на Delphi программировал, т.е. очень давно smile. Насчёт "доков" - не знаю, может и были, может и нет, я тогда не особо хорошо умел делать GUI.

Цитата(mr.DUDA @  24.5.2008,  01:49 Найти цитируемый пост)
ни в WPF 

Да? Жаль... А я уже было записал себе в TODO "ознакомится с WPF" - заинтриговали, блин smileKefir, кстати где-то грозился статью по WPF написать... линк можно, если она уже готова? Спасибо.

Цитата(mr.DUDA @  24.5.2008,  01:49 Найти цитируемый пост)
Пример - Opera.  smile 

Я конечно могу ошибаться, но она вроде как ещё на Qt-3 сделана... В Qt-4 всё ещё лучше и, главное, шустрее smile.

Это сообщение отредактировал(а) archimed7592 - 24.5.2008, 09:39


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Kefir
Дата 24.5.2008, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Цитата(archimed7592 @  24.5.2008,  09:36 Найти цитируемый пост)
Kefir, кстати где-то грозился статью по WPF написать... линк можно, если она уже готова? Спасибо.

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

Цитата(archimed7592 @  24.5.2008,  09:36 Найти цитируемый пост)
Те же якори - они были в VCL ещё тогда, когда я на Delphi программировал, т.е. очень давно smile

нуу, сколько лет весь интерфейс на осях выполняется в виде окон? это же не значит, что они такие плохие  smile 

Цитата(archimed7592 @  24.5.2008,  09:36 Найти цитируемый пост)
Как ты будешь относится к мерседесу после месяца езды на феррари?

мерседесы разные бывают. однако мысль ясна. вот только сначала мне показалось, что в твоих постах была речь о феррари и запорожце. я как раз и попытался запорожец довести хотя бы до мерса  smile 

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

Это сообщение отредактировал(а) Kefir - 24.5.2008, 10:08
PM MAIL WWW Skype   Вверх
archimed7592
Дата 24.5.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Kefir @  24.5.2008,  10:07 Найти цитируемый пост)
это же не значит, что они такие плохие  smile 

Пока не придумают чего-то лучшего smile. Вот якори эти тоже считались верхом совершенства, пока не придумали лэйаут-мэнеджеры. Как процедурное программирование, пока не появилось объектно-ориентированное. Лэйауты - это просто следующий этап развития GUI-строения, как и новый мерседес - результат переосмысления и доработки более старой модели. Я никогда и не утверждал, что SWF - это запорожец... Я лишь не согласился с фразой "лучше .NET для GUI не существует", мол это самая последняя модель мерседеса... В общем ладно, проехали smile.

Цитата(Kefir @  24.5.2008,  10:07 Найти цитируемый пост)
а сделал парочку скринкастов, которые можно увидеть тут.

Спасибо, посмотрю smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Fortop
Дата 24.5.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(nerezus @  24.5.2008,  01:43 Найти цитируемый пост)
Потоки.
Синхронизацию потоков.

И зачем это в СКРИПТЕ? smile

Цитата(nerezus @  24.5.2008,  01:43 Найти цитируемый пост)
Класс работы с браузером(банально открыть страничку).
И это только один из моих скриптов на питоне.
Если Класс работы с браузером можно через расширение написать,

1 вариант. Если я правильно помню, то такая вещь есть. Не пользовался, но читал пару месяцев назад.
2 вариант. 
Код

exec("iexplore http://google.com.ua");


Хотя остается логичный вопрос - зачем?

Добавлено через 5 минут и 26 секунд
Так с exec() я несколько переборщил smile под Win нужно будет еще поэксперементировать - не все так гладко как хотелось бы smile

Добавлено через 9 минут и 50 секунд
Цитата(nerezus @  24.5.2008,  01:43 Найти цитируемый пост)
s() - это массив, но мы не можем с него взять элемент. А почему? 

А потому что это не массив,  а функция. smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Любитель
Дата 24.5.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(mr.DUDA @  24.5.2008,  01:49 Найти цитируемый пост)
ни в винформах ни в WPF

В WPF нет нормального лейоут-менеджера? smile Если правда - я разачораван :(

Цитата(archimed7592 @  24.5.2008,  09:36 Найти цитируемый пост)
Насчёт "доков" - не знаю, может и были, может и нет, я тогда не особо хорошо умел делать GUI.

В VCL AFAIK они назывались алигнами. Но, конечно, это какие-то костыли - до нормальных лейоутов не тянет.


--------------------
PM MAIL ICQ Skype   Вверх
Kefir
Дата 24.5.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Так постойте... я вот сейчас глянул на эти лейоты в QT... что-то не понял я. Ну поставил грид. Определил его столбцы, строки, поставил минимальные или максимальные высоты ширины... у контролов то же самое. Я что-то так и не понял высоты QT в плане layout-ов. Объясните мне что они такого великого в себе несут? Разве грит не высчитывает лучший размер? Где я? на самом деле, а то у меня складывается такое впечатление, что я чего-то всё-таки просто не понимаю. Чем QGridLayout превосходит TableLayout из WF или Grid из WPF? А то я реально туплю.
PM MAIL WWW Skype   Вверх
nerezus
Дата 24.5.2008, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

И зачем это в СКРИПТЕ? 
 Как это зачем? о_О
Чтобы работало. Понимаешь ли, я очень люблю, когда мой код работает.
Примеры подобных нелепых вопросов: "ты дышишь, ты же не водолаз, зачем тебе дышать".

Цитата

exec("iexplore http://google.com.ua");
 Прости, но у меня опера таким боком не откроется ;) Код неверный.
Повезет еще, что у юзверя венда(хоть криво, но сработает подход). А если никс?

Цитата

Хотя остается логичный вопрос - зачем?
 Вывод логов работы пользователю.

Цитата

А потому что это не массив,  а функция.
 Функция - это s. А s() - это массив =)
Если не веришь - сделай var_dump.  smile 


Понимаешь, я стремлюсь не очернить 1 вещь и не предоставить одну, как универсальную. Я ищу истину. И тут нет места слепому фанатизму!
Я спокойно признаю, что моя любимая вещь в чем-то уступает другой, если будут приведены доказательства, а не буду слепо ее защищать.


P.S. И напоследок.
Цитата
И зачем это в СКРИПТЕ?
 Скажи-ка, чем отличается скрипт от нескрипта кроме как принципом запуска?
Чтобы лучше думалось, приведу пример скрипта:
user posted image
Да, эта IDE - это скрипт.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Lazin
Дата 24.5.2008, 17:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



в wxWidgets layout-ы появились раньше чем в Qt smile 
но это конечно к теме отношения не имеет))

Цитата(nerezus @  24.5.2008,  17:03 Найти цитируемый пост)
 Как это зачем? о_О
Чтобы работало. Понимаешь ли, я очень люблю, когда мой код работает.

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

Это сообщение отредактировал(а) Lazin - 24.5.2008, 17:21
PM MAIL Skype GTalk   Вверх
nerezus
Дата 24.5.2008, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



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


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
archimed7592
Дата 24.5.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Kefir, покажи мне диаолог, аналогичный тому, что я показывал чуть раньше, желательно в виде солюшина, чтобы было о чём говорить smile.
Я сейчас посмотрел - ну, как минимум, я не нашёл у ваших layout'ов stretch'ев(распорок).
Если интересно, как будет выглядеть тот диалог, что я выкладывал в виде кода в дизайнере, то вот, сделал жалкую попытку воспользоваться дизайнером(я им толком пользоваться не умею):
user posted image



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Lazin
Дата 24.5.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Цитата(nerezus @  24.5.2008,  17:34 Найти цитируемый пост)
Lazin, естественно они не параллельны, но все равно потокобезопасности по дефолту нету, если не использовать средства платформы. Пример думаю не нужен.
Тем более потоки выполняются все же параллельно, если один из потоков исполняет байткод, а другой занят сишным модулем. 

в этом ты прав smile 
но, в питоне нельзя, к примеру испортить список или словарь, одновременным изменением из разных потоков, и много чего еще smile 
PM MAIL Skype GTalk   Вверх
Любитель
Дата 24.5.2008, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(Lazin @  24.5.2008,  17:21 Найти цитируемый пост)
в wxWidgets layout-ы появились раньше чем в Qt 

Исторически, система лейоутов ИМХО в AWT/Swing первей всего появилась.


--------------------
PM MAIL ICQ Skype   Вверх
Kefir
Дата 24.5.2008, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



archimed7592, угу, нет распорок. не пользавался, не знаю насколько удобно. но необходимости пока не чувствую... В)

в общем солюшын тут.
PM MAIL WWW Skype   Вверх
Fortop
Дата 24.5.2008, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(nerezus @  24.5.2008,  17:03 Найти цитируемый пост)
Как это зачем? о_О
Чтобы работало. Понимаешь ли, я очень люблю, когда мой код работает.

Как бы тебе объяснить smile Скрипт это небольшая легко-модифицируемая утилита. В большинстве случаев интерпретируемая smile

Вот исходя из этих посылок, мне сложно понять, зачем она должна быть многопоточной.
Впрочем бог с ней - с золотой рыбкой smile Сформулируй задачу, для которой нужны несколько потоков в скрипте smile

Цитата(nerezus @  24.5.2008,  17:03 Найти цитируемый пост)
 Функция - это s. А s() - это массив =)
Если не веришь - сделай var_dump.

А то что ты привел - это вызов функции smile
массив ты получишь так smile
Код

$a = s();
echo $a[1]; // так можно

И проблема у тебя с перегрузкой операторов, что поддерживают далеко не все языки smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Kefir
Дата 24.5.2008, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Fortop, ну ты не можешь отрицать, что 
Код
$a = s()[0];

иногда так хочется, а нельзя В) мне на самом деле иногда так надоедает эту переменную заводить. особенно в мускул запросах. порой, где выборка одного поля или ещё чего
Код
$a = mysql_fetch_assoc($res);
$a = $a['fieldName'];

а хотелось бы от этого кретинизма избавиться:
Код

$a = mysql_fetch_assoc($res)['fieldName'];


Цитата(Fortop @  24.5.2008,  18:52 Найти цитируемый пост)
Сформулируй задачу, для которой нужны несколько потоков в скрипте

гм. к примеру, в яваскрипте многозадачность это уже очень большая проблема. анимации друг другу постоянно мешают. меня откровенно говоря это не радует. В) вот тебе и надобность в многопоточности.
PM MAIL WWW Skype   Вверх
archimed7592
Дата 24.5.2008, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Kefir @  24.5.2008,  18:23 Найти цитируемый пост)
в общем солюшын тут.

user posted image
Классный у вас лэйаут-менеджер smile.
(это тебе так, к сведению)
И ещё пара тестов ваших лэйаутов на вшивость:
1. какие тебе усилия понадобятся, чтобы сгенерить такую штуку динамически(допустим, что ты не знаешь заранее сколько будет строк, сколько столбцев.
2. что будет с tabOrder'ом если ты, скажем, динамически впихнёшь строку в лэйаут и не позаботишься о нём?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Fortop
Дата 24.5.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Kefir
Используй ООП.
Работай с моделями, а не с функциями и запросами.

в крайнем случае 
Код

$obj = mysql_fetch_object($result);
echo $obj->myFieldName;


Цитата(Kefir @  24.5.2008,  19:09 Найти цитируемый пост)
гм. к примеру, в яваскрипте многозадачность это уже очень большая проблема. анимации друг другу постоянно мешают. меня откровенно говоря это не радует. В) вот тебе и надобность в многопоточности. 

Это несоответствие инструмента стоящей задаче.
Сейчас на JS переносятся функции для отрисовки интерфейса. И естественно что это несколько не та, задача для которой он проектировался. С новыми браузерами и спецификациями этот вопрос должен улучшится.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
archimed7592
Дата 24.5.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Kefir @  24.5.2008,  19:09 Найти цитируемый пост)
гм. к примеру, в яваскрипте многозадачность это уже очень большая проблема.

 smile

Добавлено через 1 минуту и 17 секунд
Цитата(Fortop @  24.5.2008,  19:26 Найти цитируемый пост)
С новыми браузерами и спецификациями этот вопрос должен улучшится. 

Что за спецификации такие позволят мне динамически генерировать контент на клиенте?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Fortop
Дата 24.5.2008, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(archimed7592 @  24.5.2008,  19:26 Найти цитируемый пост)
Что за спецификации такие позволят мне динамически генерировать контент на клиенте? 

не понял вопроса :( где должна стоять запятая? Если она там должна быть.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
archimed7592
Дата 24.5.2008, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Fortop @  24.5.2008,  20:00 Найти цитируемый пост)
не понял вопроса :( где должна стоять запятая? Если она там должна быть.

Не должно быть smile. Ладно, др. словами:
Есть задача: генерить контент на клиенте.
Есть решение: скрипт, генерящий этот контент(на JavaScript).
Есть утверждение: 
Цитата(Fortop @  24.5.2008,  19:26 Найти цитируемый пост)
С новыми браузерами и спецификациями этот вопрос должен улучшится. 

Есть вопрос: каким спецификациям должен начать соответсвовать браузер, чтобы задача начала решаться без JavaScript?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Kefir
Дата 24.5.2008, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Цитата(archimed7592 @  24.5.2008,  19:24 Найти цитируемый пост)
Классный у вас лэйаут-менеджер

да уж В) хорош гусь. а, кстати, как поступит QT?..

Цитата(archimed7592 @  24.5.2008,  19:24 Найти цитируемый пост)
какие тебе усилия понадобятся, чтобы сгенерить такую штуку динамически(допустим, что ты не знаешь заранее сколько будет строк, сколько столбцев.

гм... ну что-то вроде этого (layout немного поменяется, поля буду класть в отдельную таблицу):
Код
foreach (string s in necessaryFields) {
  Label l = new Label();
  l.Dock = Dock.Fill;
  l.Text = s;
  tableLayoutPanelFields.Children.Add(l);
  TextBox t = new TextBox();
  t.Dock = Dock.Fill;
  tableLayoutPanelFields.Children.Add(t);
}

Итого создаём для каждого поля надпись и текстбокс и ставим их в таблицу. Ряды добавятся автоматом. Может быть не совсем тоные названия методов, ибо пишу по памяти.

Цитата(archimed7592 @  24.5.2008,  19:24 Найти цитируемый пост)
. что будет с tabOrder'ом если ты, скажем, динамически впихнёшь строку в лэйаут и не позаботишься о нём? 

Ыыы.... вот чего не помню - того не помню. Я последний раз винформами в прошлом июне занимался, так что не могу ответить, ибо не знаю В(


Цитата(Fortop @  24.5.2008,  19:26 Найти цитируемый пост)
Используй ООП.
Работай с моделями, а не с функциями и запросами.

а при чём тут это? Я тебе как пример привёл В)

Цитата(Fortop @  24.5.2008,  19:26 Найти цитируемый пост)
в крайнем случае

А какая разница в этом случае между массивом и обьектом?

Цитата(Fortop @  24.5.2008,  19:26 Найти цитируемый пост)
Это несоответствие инструмента стоящей задаче.
Сейчас на JS переносятся функции для отрисовки интерфейса. И естественно что это несколько не та, задача для которой он проектировался. С новыми браузерами и спецификациями этот вопрос должен улучшится. 

ну опять же, я привёл пример. сейчас анимациями посредством javascript пользуются очень многие, потому как очень удобно. когда ещё эти новые браузеры появятся В) мы живём настоящим. да и к тому же. да и не об этом речь. для этого он проектировался или нет - вопрос десятый. ведь он может выполнять анимации. и для того чтобы они были лучше, эффективнее, глаже и краше - очень неплохо было бы иметь многозадачность. то есть это потребность скриптового языка в многозадачности. она реально нужна. вот и всё. разве нет?
PM MAIL WWW Skype   Вверх
Fortop
Дата 24.5.2008, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(archimed7592 @  24.5.2008,  20:06 Найти цитируемый пост)
Есть вопрос: каким спецификациям должен начать соответсвовать браузер, чтобы задача начала решаться без JavaScript? 

Совсем без? smile Понятия не имею smile

И речь шла не о спецификациях браузера, а например о SilverLight smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
nerezus
Дата 24.5.2008, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

но, в питоне нельзя, к примеру испортить список или словарь, одновременным изменением из разных потоков, и много чего еще 

А если вот так?
Код

1)#a = 99
2)              #a=99
# о боже, нельзя дердать a меньше сотни, увеличиваем на 100
3)if a < 100: # true
                4( if a < 100: #тоже true
5) a += 100
6)               a += 100
7)print a # выведет не 199 ожидаемые, а 299ю

Портится не сама структура данных, а именно логическая связь

Цитата

И проблема у тебя с перегрузкой операторов, что поддерживают далеко не все языки 
 Перегрузка - это совсем другое.
Разберись в терминологии?

Вот тебе пример на языке, в котором нет перегрузки операторов.
Код

public class Test {
    
    public static int[] getInts() {
        int[] ints = new int[3];
        ints[0] = 5;
        ints[1] = 6;
        ints[2] = 665;
        return ints;
    }
    
    public static void main(String[] args) {
        System.out.println(getInts()[1]); # 6
    }
}

Вывод ожидаемый.

Цитата

А то что ты привел - это вызов функции
 От этого s() перестает быть массивом? Ну-ка сделай var_dump(s()), не ленись!

P.S. по твоей терминологии то, что я называю скриптами, ты можешь считать "полноценными программами".
Вот пхп для них явно не подходит.

Цитата

Есть вопрос: каким спецификациям должен начать соответсвовать браузер, чтобы задача начала решаться без JavaScript? 
  svg? canvas?

Цитата

И речь шла не о спецификациях браузера, а например о SilverLight 
 м, а почему столько шума вокруг этой поделки? Может сначала дождаться, пока оно будет хоть как-то приемлимо работать?
Пока я слышал только обещания, что "оно будет", но так реально поддержки со стороны браузеров(за исключением 3х штук из всей кучи нет)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Lazin
Дата 24.5.2008, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Цитата(nerezus @  24.5.2008,  22:25 Найти цитируемый пост)
Портится не сама структура данных, а именно логическая связь

согласен, есть там мютексы, значит они нужны smile 
я всегда считал, что потоки в питоне используются для всякой ерунды, вроде gui-я... в общем что-бы пользователь не ждал завершения чего-то длительного, буду рад узнать о другом их применении smile 
PM MAIL Skype GTalk   Вверх
Любитель
Дата 24.5.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(Kefir @  24.5.2008,  20:47 Найти цитируемый пост)
да уж В) хорош гусь. а, кстати, как поступит QT?..

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


--------------------
PM MAIL ICQ Skype   Вверх
Lazin
Дата 24.5.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



зы
хочу всем напомнить, что речь идет о 2х платформах, Python и .NET smile 
PM MAIL Skype GTalk   Вверх
Любитель
Дата 24.5.2008, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Lazin, дык мы типа это... PyQt защищаем. От ВинФормз smile 

ЗЫ А вот ПХП и яваскрипт - фтопку!!!


--------------------
PM MAIL ICQ Skype   Вверх
Lazin
Дата 24.5.2008, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



pps
многие люди не пишут gui приложения и им глубоко перпендикулярно наличие или отсутствие каких то гуевых фич  smile 
PM MAIL Skype GTalk   Вверх
Fortop
Дата 24.5.2008, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(nerezus @  24.5.2008,  22:25 Найти цитируемый пост)
От этого s() перестает быть массивом? Ну-ка сделай var_dump(s()), не ленись!

Яйцо не курица, сколько var_dump()  ты не делай.

Держи, и проверяй.
Код

function s($v) {
  return $v;
}
var_dump(s(array(0, 1, 2)));
var_dump(s(1));


Цитата(nerezus @  24.5.2008,  22:25 Найти цитируемый пост)
Перегрузка - это совсем другое.
Разберись в терминологии?

У тебя есть другое название? Озвучь.

оператор []  в PHP может применяться только к структурам данных, которые содержат массивы, но никак не к вызовам функций.

И в моем примере, это прекрасно видно.
Код

$a = s(1);
echo $a[1]; // так нельзя
echo s(1)[1]; // так тоже нельзя
echo s(array(0, 1, 2));  // так тоже нельзя
echo s(array(0, 1, 2))[1];  // так тоже нельзя

$a = s(array(0, 1, 2)); 
echo $a[1]; // так можно
echo s(1); // так тоже можно
var_dump(s(array(0, 1, 2))); // и вот так можно



Пользуйся на здоровье smile
Код

class Test {
    
    private getInts;

    public function __constructor() {
        $this->getInts = new ArrayObject();
        ints[0] = 5;
        ints[1] = 6;
        ints[2] = 665;
    }
    
    public static main(array args) {
        print_r($this->getInts[1]); # 6
    }
}


Цитата(nerezus @  24.5.2008,  22:25 Найти цитируемый пост)
по твоей терминологии то, что я называю скриптами, ты можешь считать "полноценными программами".
Вот пхп для них явно не подходит.

Ок smile договорились smile Тогда тебе нужны Java или .NET

Это сообщение отредактировал(а) Fortop - 24.5.2008, 22:53


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Lazin
Дата 24.5.2008, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Цитата(Любитель @  24.5.2008,  22:47 Найти цитируемый пост)
PyQt защищаем. От ВинФормз

это-же ортогональные вещи, как их сравнивать? 
вот кстати интересная статья на тему smile

Добавлено через 40 секунд
Цитата(Fortop @  24.5.2008,  22:49 Найти цитируемый пост)
Ок smile договорились smile Тогда тебе нужны Java или .NET

приехали smile 
PM MAIL Skype GTalk   Вверх
Любитель
Дата 24.5.2008, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(Lazin @  24.5.2008,  22:53 Найти цитируемый пост)
это-же ортогональные вещи, как их сравнивать? 

Это две гуёвые либы (одна для питона, другая для дотНета). Вроде сабж - Питон vs .Net smile Почему ортогональные?


--------------------
PM MAIL ICQ Skype   Вверх
Lazin
Дата 24.5.2008, 23:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



WF - это неотемлемая часть фреймверка, который называется .NET
Qt - сторонняя библиотека, которая имеет весьма слабое отношение к питону
PM MAIL Skype GTalk   Вверх
nerezus
Дата 24.5.2008, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

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

Цитата

Ок  договорились  Тогда тебе нужны Java или .NET
 А почему не тот же питон? )

Цитата

Держи, и проверяй.
 
Код

array(3) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
}
 Ч.Т.Д.

Цитата

WF - это неотемлемая часть фреймверка, который называется .NET
Qt - сторонняя библиотека, которая имеет весьма слабое отношение к питону
 Ну так не Qt, а PyQT.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Любитель
Дата 25.5.2008, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(Lazin @  24.5.2008,  23:30 Найти цитируемый пост)
WF - это неотемлемая часть фреймверка, который называется .NET
Qt - сторонняя библиотека, которая имеет весьма слабое отношение к питону

Речь про PyQt - один из типичных вариантов (ИМХО - лучший вариант) гуев для питона.



--------------------
PM MAIL ICQ Skype   Вверх
Kefir
Дата 25.5.2008, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Цитата(Любитель @  24.5.2008,  22:42 Найти цитируемый пост)
Налезать друг на друга - точно не позволит smile А дальше - смотря что больше нравится. Либо ограничение ресайза, либо ресайз кнопок по высоте и т. д. 

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

Цитата(Любитель @  24.5.2008,  22:47 Найти цитируемый пост)
Lazin, дык мы типа это... PyQt защищаем. От ВинФормз smile 

нет уж, это я винформс пытаюсь оградить от QTшников  smile 
PM MAIL WWW Skype   Вверх
Любитель
Дата 25.5.2008, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(Kefir @  25.5.2008,  01:06 Найти цитируемый пост)
хосспади, от привязались. смутно помню, что где-то была какая-то пимпочка а-ля авто прокрутка.

В ВинФормз нормальных лейоут-менеджером нет. Всё делается в стиле VCL (ИМХО такой стиль родился там). В WPF - я думал (уж не знаю почему), что должны быть нормальные лейоуты. Не знаю - не смотрел. Привязываться никто не собирался - вопрос был твой (про поведение куте) ;)


--------------------
PM MAIL ICQ Skype   Вверх
Fortop
Дата 25.5.2008, 05:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(nerezus @  24.5.2008,  23:40 Найти цитируемый пост)
 А почему не тот же питон? )

Потому что тебе были нужны полноценные приложения, а не скрипты smile

Цитата(nerezus @  24.5.2008,  23:40 Найти цитируемый пост)

Код

array(3) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
}

Ч.Т.Д.

Это у тебя оба вызова распечатали?  smile 
Если нет, то твое ЧТД совсем не к месту smile Запускай скрипты - пока не поймешь разницу между массивом, функцией и ее вызовом.
А про перегрузку операторов все же рекомендую почитать smile плаваешь в этом вопросе слегка.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
nerezus
Дата 25.5.2008, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Это у тебя оба вызова распечатали?  
 Нет, только когда функция отдает массив. Я именно про это и говорил.
Вот:
Цитата(nerezus)

Код

function s() {
  return array(0, 1, 2);
}
echo s()[0];

s() - это массив, но мы не можем с него взять элемент. А почему?


Цитата

Потому что тебе были нужны полноценные приложения, а не скрипты 
 [skipped]-копать )
А теперь ты может все-таки ответишь, чем эта IDE не полноценное приложение?
скриншот IDE(среда разработки, если что):

user posted image

Цитата

А про перегрузку операторов все же рекомендую почитать  плаваешь в этом вопросе слегка.
 Гыгы ) Где ты тут видел перегруженные операторы?
Если ты не заметил, то в прошлом примере я тебе специально привел код на жабе, где перегрузка впринципе невозможна.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Fortop
Дата 25.5.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(nerezus @  25.5.2008,  08:02 Найти цитируемый пост)
Нет, только когда функция отдает массив. Я именно про это и говорил.
Вот:

Ты серьезно, не отличаешь результат от действия?

Цитата(nerezus @  25.5.2008,  08:02 Найти цитируемый пост)
Гыгы ) Где ты тут видел перегруженные операторы?
Если ты не заметил, то в прошлом примере я тебе специально привел код на жабе, где перегрузка впринципе невозможна

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

Но неужели ты наивно полагаешь, что для того чтобы оператор мог быть применен к чему-либо, операнд не должен быть поддерживаемого им типа?

И как еще называется сие таинство, когда один и тот же оператор позволяет совершать действия с разными типами данных?

Нет, я конечно понимаю, что великий Python, просто не дает возможности задуматься о том, как это действительно происходит. Но все же.
Может подумать?

Массив не появляется из ниоткуда, он является результатом вызова функции. Сам результат функции у тебя не предопределен, в отличии от той же Java. Задача PHP быстрый старт, короткая работа и финиш. Именно то, что нужно для веб. Именно поэтому синтаксический анализатор в PHP упрощен - функция просто отдает результат, а оператор не перегружен и [] работает только с структурами данных.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
nerezus
Дата 25.5.2008, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Ты серьезно, не отличаешь результат от действия?
 Ты уверен, что я?
функция - это s.
s() - уже результат.

Цитата

И как еще называется сие таинство, когда один и тот же оператор позволяет совершать действия с разными типами данных?
 Перегрузка. Но при чем тут это? Ни в пхп ни в джаве ее нет, и я привел пример именно на джаве по этой причине.
Есть она в других языках, но нам пока мы обсуждаем пхп, на это должно быть монопенисуально.


Цитата

Но неужели ты наивно полагаешь, что для того чтобы оператор мог быть применен к чему-либо, операнд не должен быть поддерживаемого им типа?
 Должен.
Но массивы в пхп поддерживают []. Если ты не веришь, что s() имеет тип массива - сделай var_dump(s()).
И именно к s()(что есть array) я применяю[].
Реально, сделай var_dump() и проверь.


Цитата

Потому что тебе были нужны полноценные приложения, а не скрипты 
 Я 2 раза показал пример скрипта. Что в этой программе неполноценного?


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Fortop
Дата 25.5.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



nerezus, ты меня удивляешь :( очень неприятно удивляешь.

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

Цитата(nerezus @  25.5.2008,  13:23 Найти цитируемый пост)
Я 2 раза показал пример скрипта. Что в этой программе неполноценного?

Свое определение "скрипта" я приводил несколькими страницами ранее. Ты уверен, что IDE это скрипт?

Цитата(nerezus @  25.5.2008,  13:23 Найти цитируемый пост)
Но массивы в пхп поддерживают []. Если ты не веришь, что s() имеет тип массива - сделай var_dump(s()).
И именно к s()(что есть array) я применяю[].
Реально, сделай var_dump() и проверь.

Функции в PHP не типизированы. Ты этого не знал?

Вместо вот этой... гм, как бы так помягче сказать.... О, придумал! Не лажи, а конструкции.
Код

function s() {
  return array(0, 1, 2);
}


Поработай с вот такой
Код

function realfunction($param) {
  return $param;
}

И сообщи какого она типа. Массив, целоцисленная или вообще объект.

Цитата(nerezus @  25.5.2008,  13:23 Найти цитируемый пост)
Ты уверен, что я?
функция - это s.
s() - уже результат.

Да, теперь уже уверен.

Объясняю на пальцах.

s - функция, 
s() - операция вызова/обращения к функции.
и лишь то, что она вернет - является результатом.

Оператор [] в PHP не перегружен для работы напрямую с вызовами функций.


Цитата(nerezus @  25.5.2008,  13:23 Найти цитируемый пост)
Перегрузка. Но при чем тут это? Ни в пхп ни в джаве ее нет, и я привел пример именно на джаве по этой причине.
Есть она в других языках, но нам пока мы обсуждаем пхп, на это должно быть монопенисуально.

Гм, ты уверен, что перегрузка, это только то, что делаешь лично ты? А разработчики языков не могли заранее перегрузить некоторые операторы?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
nerezus
Дата 25.5.2008, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Ты уверен, что IDE это скрипт?
 Уверен. Исходник можешь посмотреть - его стартовый файл я открыл на той же картинке.
Цитата

Свое определение "скрипта"
 А может сосед у меня скриптом жопу называет? И кстати имеет право, но его жопа от этого не становится скриптом.
Что такое скрипт можно прочитать тут: http://en.wikipedia.org/wiki/Scripting_language

Цитата

A scripting language, script language or extension language, is a programming language that controls a software application. "Scripts" are often treated as distinct from "programs", which execute independently from any other application. At the same time they are distinct from the core code of the application, which is usually written in a different language, and by being accessible to the end user they enable the behavior of the application to be adapted to the user's needs. Scripts are often, but not always, interpreted from the source code or "semi-compiled" to bytecode which is interpreted, unlike the applications they are associated with, which are traditionally compiled to native machine code for the system on which they run. Scripting languages are nearly always embedded in the application with which they are associated.

Вполне подходит под определение ;)

Цитата

Функции в PHP не типизированы. Ты этого не знал?
 Знал, но как это относися к делу?

Цитата

И сообщи какого она типа. Массив, целоцисленная или вообще объект.
 Динамического.
Поэтому [] должно было бы бросить ошибку когда тип не массив. А оно бросает всегда. Даже когда массив.

Цитата

Про типизацию в Java, которую ты тупо опустил, и которая и разрешает тебе заниматься извращениями только там, где можно....
 Я не занимался извращениями. Я просто взял элемент с массива.
Ну да, все они говноязыки: C, C++, C#, Java, Python и десятки прочих.
А PHP истинно правильный язык! Если что-то не работает, то это так и должно быть, а если это "что-то" работает везде - то тогда все остальные извращенцы.

Ты это хочешь сказать?

Вот тебе:
Код

def s():
    return [5, 6, 665]
s()[1]


Код

public class Test {
    
    public static int[] getInts() {
        int[] ints = new int[3];
        ints[0] = 5;
        ints[1] = 6;
        ints[2] = 665;
        return ints;
    }
    
    public static void main(String[] args) {
        System.out.println(getInts()[1]);
    }
}



Код

#include <stdio.h>

int a[] = {5, 6, 666};

int* s() {
    return a;
}

int main() {
    printf("%d\n", s()[1]);
    return 0;
}


Код

class Program
{
    static int[] s()
    {
        int[] ints = new int[3];
        ints[0] = 5;
        ints[1] = 6;
        ints[2] = 665;
        return ints;
    }

    static void Main(string[] args)
    {
        System.Console.WriteLine(s()[1]);
    }
}


Добавлено через 3 минуты и 50 секунд
В том же C типизация слабая. Как и в пхп.
В том же питоне типизация динамическая. Как и в пхп.

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


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
source777
Дата 25.5.2008, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(archimed7592 @ 24.5.2008,  19:24)
Цитата(Kefir @  24.5.2008,  18:23 Найти цитируемый пост)
в общем солюшын тут.

user posted image
Классный у вас лэйаут-менеджер smile.
(это тебе так, к сведению)
И ещё пара тестов ваших лэйаутов на вшивость:
1. какие тебе усилия понадобятся, чтобы сгенерить такую штуку динамически(допустим, что ты не знаешь заранее сколько будет строк, сколько столбцев.
2. что будет с tabOrder'ом если ты, скажем, динамически впихнёшь строку в лэйаут и не позаботишься о нём?

тут не лэйаут-менеджер, а Kefir виноват, что минимальные размеры окна не задал...

А так с динамической компоновкой в .NET никаких проблем, особенно в WPF:
Вот вам XAML разметка, создающее окно со столбиком из надписей, полей ввода и кнопок и двумя кнопками внизу. При уменьшении размеров окна появляется вертикальная полоса прокрутки и горизонтальный ресайз, вплоть до того момента пока размеры окна не достигнут минимально допустимых... Так что модель компоновки QT абсолютно ничем не лучше, более того MS её подчистую слизала с QT и внесла собственные дополнения и улучшения...
Код

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="250" Width="400" MinHeight="150" MinWidth="250" Loaded="Window_Loaded">
    <Grid Name="mainGrid">
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="45" MinHeight="45" />
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="2" Margin="3" Name="stackPanel1" Orientation="Horizontal" HorizontalAlignment="Right">
            <Button Name="bOK" Margin="3,10,3,3" Width="70">OK</Button>
            <Button Name="bCancel" Margin="3,10,3,3" Width="70">Cancel</Button>
        </StackPanel>
        <ScrollViewer CanContentScroll="True" Name="scrollViewer1" VerticalScrollBarVisibility="Auto" VerticalAlignment="Top" >
            <Grid Name="grid1" Margin="3,3,10,3">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="Auto" MinWidth="70" />
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Label Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Margin="10, 3">Label</Label>
                <TextBox Grid.Column="1" Grid.Row="0" Name="textBox1" Margin="3" />
                <Button Grid.Column="2" Grid.Row="0" Name="button1" Margin="3">...</Button>               
                <Label Grid.Column="0" Grid.Row="1" HorizontalAlignment="Left" Margin="10, 3">Label</Label>
                <TextBox Grid.Column="1" Grid.Row="1" Name="textBox2" Margin="3" />
                <Button Grid.Column="2" Grid.Row="1" Name="button2" Margin="3">...</Button>
                <Label Grid.Column="0" Grid.Row="2" HorizontalAlignment="Left" Margin="10, 3">Label</Label>
                <TextBox Grid.Column="1" Grid.Row="2" Name="textBox3" Margin="3" />
                <Button Grid.Column="2" Grid.Row="2" Name="button3" Margin="3">...</Button>
                <Label Grid.Column="0" Grid.Row="3" HorizontalAlignment="Left" Margin="10, 3">Label</Label>
                <TextBox Grid.Column="1" Grid.Row="3" Name="textBox4" Margin="3" />
                <Button Grid.Column="2" Grid.Row="3" Name="button4" Margin="3">...</Button>
            </Grid>
        </ScrollViewer>
    </Grid>
</Window>



P.S. При желании всё то же самое можно сделать кодом, который будет концептуально похож на приводимые выше для QT - то же создание контейнеров, то же размещение элементов управления по ним... Однако наметилось разделение труда: интерфейс рисуют дизайнеры, а программисты пишут код и это правильно, ибо не гоже программистам такими мелочами себя отвлекать как рисование интерфейсов будь то кодом, будь то программой-дизайнером... Поэтому я лично в шоке, что вы тему выбора платформы для программиста свели к теме - где проще кнопочки по формам расставлять...

P.P.S. По первоначальной теме: я лично не понимаю почему автору надо выбрать что-то одно? Надо программировать с использованием языка/платформы, а не под конкретный язык/платформу...

Это сообщение отредактировал(а) source777 - 25.5.2008, 15:57


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
nerezus
Дата 25.5.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Гм, ты уверен, что перегрузка, это только то, что делаешь лично ты? А разработчики языков не могли заранее перегрузить некоторые операторы?
 Какие? У массива [] есть по дефолту.
В пхп и питоне во время исполнения это проверяется.
В сишарпе, жабе, C, C++ - на этапе компиляции.

На примере C: там вообще [] - не оператор по сути, а средство для рассчета адреса. Но оно работает! Потому что по логике должно.
Это начало 70х годов, естественно никаких терминов вроде перегрузки тогда не было.

Теперь вопрос для пхп:
Ты говоришь, что мы не знаем заранее, какого типа результат и поэтому не можем по нему сделать[].
Тогда почему работает код(мы ведь не знаем тип a, а вдруг оно не массив?):
Код

a = s();
echo a[1];


Добавлено через 2 минуты и 14 секунд
Цитата

 что минимальные размеры окна не задал...
 А разве оно не должно заранее определяться какминимальный размер его элементов(рекурсивно)? По логике должно.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
source777
Дата 25.5.2008, 16:06 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



nerezus, какой смысл обсуждать PHP в данной теме? Этот язык изначально разрабатывался для создания домашних страничек и он не далеко ушёл от первоначальной цели: несогласованная библиотека функций, недоразвитое ООП, отсутствие нормальной работы с Unicode и многое другое - говорят сами за себя, да кто-то сейчас вспомнит про PHP6, этим людям стоит сравнить в таком случае PHP6 с Perl6 и Python3, хотя какой смысл сравнивать то чего ещё нет? 

P.S. Python несомненно заслуживает внимания гораздо больше, чем PHP, но мне лично больше нравится Ruby... smile

Добавлено через 1 минуту и 38 секунд
Цитата(nerezus @  25.5.2008,  15:55 Найти цитируемый пост)
 А разве оно не должно заранее определяться какминимальный размер его элементов(рекурсивно)? По логике должно. 
Не должно, если для самих элементов не заданы статические или минимальные размеры...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
nerezus
Дата 25.5.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



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

Вот причина, по которой этот код должен работать.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Kefir
Дата 25.5.2008, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Цитата(nerezus @  25.5.2008,  15:55 Найти цитируемый пост)
По логике должно. 

Логика логикой, а .НЕТ .НЕТ-ом  smile 


Цитата(source777 @  25.5.2008,  15:52 Найти цитируемый пост)
тут не лэйаут-менеджер, а Kefir виноват, что минимальные размеры окна не задал

ну, Кефир виноват, собственно, в том, что память у него уже не та  smile 
PM MAIL WWW Skype   Вверх
Fortop
Дата 25.5.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Потому что вертолет...
Цитата(Fortop @  25.5.2008,  14:59 Найти цитируемый пост)
Оператор [] в PHP не перегружен для работы напрямую с вызовами функций.


Сколько раз мне еще это повторить? smile

Цитата(nerezus @  25.5.2008,  15:46 Найти цитируемый пост)
Я не занимался извращениями. Я просто взял элемент с массива

А чем ты занимался? Ты пытаешься доказать, что функция и ее вызов это массив. Это не так.

Цитата(nerezus @  25.5.2008,  15:55 Найти цитируемый пост)
У массива [] есть по дефолту

А у вызова () функции? Нет? Какая досада...

Я знаю, все люди тупят, и я тоже бывает туплю. Но скажи мне, чем я могу тебе помочь? Чтобы ты понял, что
static int[] s()
Вот этим кодом ты разрешаешь использовать [] для вызовов этой функции.

Ну есть в анализаторе Python обработка для извращенных случаев.

Понимаешь ли. Если PHP, разрешает делать вот так
Код

function s() {
    return array(1,2,3);
}

$tupo = 's';
var_dump($tupo());

То это не значит, что это хорошо и правильно.

Цитата(nerezus @  25.5.2008,  15:46 Найти цитируемый пост)
В том же C типизация слабая. Как и в пхп.

Мда, ты явную типизацию от неявной отличить не можешь :(

Добавлено через 5 минут и 32 секунды
Цитата(nerezus @  25.5.2008,  16:18 Найти цитируемый пост)
Вот причина, по которой этот код должен работать

Это исключительно твое хочу.

Цитата(source777 @  25.5.2008,  16:06 Найти цитируемый пост)
Этот язык изначально разрабатывался для создания домашних страничек и он не далеко ушёл от первоначальной цели

Не совсем так про ушел smile Но насчет его изначальных задач ты прав smile парсер текста - и ничего более.
Так что это не совсем язык даже smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Любитель
Дата 25.5.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(nerezus @  25.5.2008,  15:46 Найти цитируемый пост)
 А может сосед у меня скриптом жопу называет? И кстати имеет право, но его жопа от этого не становится скриптом.

 smile 

Цитата(source777 @  25.5.2008,  16:06 Найти цитируемый пост)
Не должно, если для самих элементов не заданы статические или минимальные размеры...

Ну, скажем минимальные размеры кнопки зависят от её текста. Сайз-хинты определяют виджеты в куте сами для себя. Впрочем - хватит про гуй уже smile

Цитата(Fortop @  25.5.2008,  16:32 Найти цитируемый пост)
А чем ты занимался? Ты пытаешься доказать, что функция и ее вызов это массив. Это не так.

No comments...

Цитата(Fortop @  25.5.2008,  16:32 Найти цитируемый пост)
Ну есть в анализаторе Python обработка для извращенных случаев.

А почему это извращённый случай?! Неужели тебе не кажется, что так писать естественно? Почему ПХП прав, а всех остальных - фтопку?


--------------------
PM MAIL ICQ Skype   Вверх
Fortop
Дата 25.5.2008, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Любитель
Цитата(Любитель @  25.5.2008,  21:09 Найти цитируемый пост)
Почему ПХП прав

PHP прав? smile Ты зря сделал такой вывод.
В отличии от Java, C# - PHP это парсер текста стремительно выросший в язык. В процессе роста имеется большая куча мусора. Часто дублирование функциональности и многое не "так", как в том же C, Perl.

Я всего лишь пытался объяснить человеку почему оператор [] не работает в PHP так, как ему хочется smile

Добавлено @ 21:22
Цитата(Любитель @  25.5.2008,  21:09 Найти цитируемый пост)
А почему это извращённый случай?! 

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

Я приводил пример с вызовом функции через переменную. Гибко - да. Но нужно ли? Едва ли...

Это сообщение отредактировал(а) Fortop - 25.5.2008, 21:22


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
nerezus
Дата 25.5.2008, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Цитата

В том же C типизация слабая. Как и в пхп.


Мда, ты явную типизацию от неявной отличить не можешь :(

Я до этого думал, что ты знаешь теорию, но просто меня не понимаешь, потому что ты упрямый.
А оказалось, что и теории не знаешь.
вот тут можно почитать: http://en.wikipedia.org/wiki/Type_system
Типизация бывает weak или strong по критерию type strength.
Типизация бывает static или dynamic по критерию type checking.

Вобщем читай ссылку выше и просвещайся.

PHP имеет weak dynamic типизацию. Это факт.
user posted image

Добавлено через 3 минуты и 42 секунды
Цитата

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

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

От массива(результата функции).


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Lazin
Дата 25.5.2008, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



казалось бы, причем здесь ПХП smile 
зы
YouTube сделан на питоне smile 
PM MAIL Skype GTalk   Вверх
Fortop
Дата 25.5.2008, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



nerezus, умиляешь smile

Цитата(nerezus @  25.5.2008,  21:32 Найти цитируемый пост)
PHP имеет weak dynamic типизацию. Это факт.

Я рад за тебя
  • PHP - weak, dynamic
  • Python - strong, dynamic ("duck typing")
  • C -  weak, static
  • Java - strong, static
  • C# - strong, static

Чтобы ты понимал. Явная типизация - static. Неявная типизация - dynamic. Что такое "duck typing" объяснять не буду, поскольку ты наглядно продемонстрировал это ранее.

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

Именно поэтому для тебя s() - это массив. Ты за деревом не видишь леса.

Выводы сам сделаешь? Или как?

Цитата(Lazin @  25.5.2008,  21:43 Найти цитируемый пост)
YouTube сделан на питоне 

Wikipedia, Facebook на PHP, MySpaces был на ColdFusion, но к чему это? smile Писать можно что угодно и на чем угодно.
Для того же PHP я видел реализации программ использующих GTK+. Но это бред.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Любитель
Дата 25.5.2008, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(Fortop @  25.5.2008,  21:19 Найти цитируемый пост)
Потому что в отличии от языков с явной типизацией перегружать такие конструкции в языках с неявной - это создавать дополнительное поле для ошибок. Которое и так достаточно обширно.

Да причём тут перегрузка?! smile 

Цитата(Lazin @  25.5.2008,  21:43 Найти цитируемый пост)
казалось бы, причем здесь ПХП 

Lazin, хватит следить за порядком?  smile 


--------------------
PM MAIL ICQ Skype   Вверх
Fortop
Дата 25.5.2008, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(nerezus @  25.5.2008,  21:32 Найти цитируемый пост)
потому что ты упрямый.

И таки да, я упрямый. Но ошибки признавать не боюсь.

Добавлено через 2 минуты и 25 секунд
Цитата(Любитель @  25.5.2008,  22:18 Найти цитируемый пост)
Да причём тут перегрузка?! 

Ты тоже считаешь что
Код

$a = array(1, 2, 3);

function s($p) {
    return $p;
}

$a[1];
// и
s($a)[1];


Будут транслироваться в идентичный код?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Kefir
Дата 25.5.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 4
Всего: 87



Fortopnerezus, вот вы тут пурги понагнали В) типизированный-нетипизированный. возвращает или нет. очень интересно смотреть как два человека, которые любят разную жвачку спорят о том какие красители использовались при изготовлении этих жвачек  smile 
один говорит, что по логике хорошо бы дабы можно было s()[0] делать, а другой говорит - нет, в пхп такого нельзя! причём первый знает что в пхп этого нет, а второй не сможет отрицать, что от такой возможности пхп по крайней мере не ухудшится В) и всё равно в дело идёт всё - скрытый сарказм, маленькие издёвки, нравоучения и даже (о ужас!) ВИКИПЕДИЯ!

молодые люди... вы куда забрались?
PM MAIL WWW Skype   Вверх
Fortop
Дата 25.5.2008, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Kefir
Цитата(Kefir @  25.5.2008,  22:50 Найти цитируемый пост)
молодые люди... вы куда забрались? 

Форум -> Разное -> Разные вопросы -> Религиозные войны 

Не мешай ;) smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
nerezus
Дата 25.5.2008, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Мда, ты явную типизацию от неявной отличить не можешь :(
 Ну так что я там не отличил, м? Нуко нуко?


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Fortop
Дата 25.5.2008, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



nerezus
Расслабся smile я не программист.

Цитата(nerezus @  25.5.2008,  23:01 Найти цитируемый пост)
Ну так что я там не отличил, м? Нуко нуко? 

Выше по топику, там где ты сравнивал типизацию C и PHP, мне лень искать smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Любитель
Дата 25.5.2008, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(Fortop @  25.5.2008,  22:19 Найти цитируемый пост)
Ты тоже считаешь что
...
Будут транслироваться в идентичный код?

Я считаю, что перегрузка тут не при чём. Даже не то, что считаю - это факт smile С ПХП не работаю, но в самом деле, как говорил nerezus - почему вот это:
Код

$a = array(1, 2, 3);
$a[0]; // а если $a - не массив?!

работает, а вот это нет:
Код

function a()
{
   return array(1, 2, 3);
}

a()[0]; // а если результат a - не массив?!


Логично? ИМХО нет.



Добавлено через 1 минуту и 6 секунд
Цитата(Fortop @  25.5.2008,  23:25 Найти цитируемый пост)
Выше по топику, там где ты сравнивал типизацию C и PHP, мне лень искат

Там была два сравнения. С C - по поводу строгости, с питоном - по поводу динамичности.


--------------------
PM MAIL ICQ Skype   Вверх
Fortop
Дата 26.5.2008, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(Любитель @  25.5.2008,  23:53 Найти цитируемый пост)
Я считаю, что перегрузка тут не при чём. Даже не то, что считаю - это факт 

Это не аргумент smile Если считаешь, что это не причина - приводи свою smile

Цитата(Любитель @  25.5.2008,  23:53 Найти цитируемый пост)
Логично? ИМХО нет.

Это тоже не аргумент smile Мое О, против твоего ИМХО smile Толку будет мало smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
archimed7592
Дата 26.5.2008, 00:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(source777 @  25.5.2008,  15:52 Найти цитируемый пост)
тут не лэйаут-менеджер, а Kefir виноват, что минимальные размеры окна не задал...

Ммм? А мне кажется, что виновата WF в том, что не позаботилась об этом.
Странная какая-то либа в которой приходится постоянно руками выставлять "док"(он что, сам выставляться не в состоянии?).
Я понимаю, что всё это мелочи, но вот из этих мелочей и складывается мнение о библиотеке(по крайней мере моё).

Цитата(source777 @  25.5.2008,  15:52 Найти цитируемый пост)
Вот вам XAML разметка
Цитата(source777 @  25.5.2008,  15:52 Найти цитируемый пост)
Height="250" Width="400"
Цитата(source777 @  25.5.2008,  15:52 Найти цитируемый пост)
Margin="3,10,3,3" Width="70"
Pixel hunting идёт в массы smile.

Ладно, насчёт Qt спорить перестаю - не хочу повторять по сто раз одно и то же(pixel hunting is evil, pixel hunting is evil, pixel hunting is evil, pixel hunting is evil, pixel hunting is evil, pixel hunting is evil, evil, evil, evil, evil, evil, evil, evil, evil, evil, evil, evil).


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
nerezus
Дата 26.5.2008, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

А у вызова () функции? Нет? Какая досада...
 Значение после вызова функции подставляется в обрабатываемое выражение. Это происходит, т.к. вызов функции имеет приореитет. И после этого уже над вернувшимся значением происходит [].

Я привел пример, что в других языках это работает. Причем с такими же частными видами типизации.
Посмотри примеры )

Цитата

Выше по топику, там где ты сравнивал типизацию C и PHP, мне лень искать 
 Я разве не правильно сравнил? И там и там она weak. Это факт.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
mr.DUDA
Дата 26.5.2008, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



По поводу PHP и s()[] - насколько мне помнится, в случае если вернут не массив то [] будет вести себя так: если это объект, возвращать поля объекта по индексу, если элементарная переменная, то [0] вернёт её же, а остальные индексы вернут null. Это типа пять копеек в копилку сего увлекательного холивара.  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
likehood
Дата 26.5.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 21.12.2005

Репутация: нет
Всего: 24



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

function a() {
  return 5;
}
$x = a()+4;


если этот код работает, по получается, что в php есть "перегрузка" операции + для вызовов функций (в терминах Fortopа).
что тогда мешает "перегрузить" операцию []?


Это сообщение отредактировал(а) likehood - 26.5.2008, 10:26
PM MAIL   Вверх
Shaggie
Дата 26.5.2008, 11:13 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: нет
Всего: 72



Обожаю читать религиозные войны!  smile 

В теме Python vs .NET люди всерьёз обсуждают перезрузку операций в PHP.  smile 


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
Любитель
Дата 26.5.2008, 14:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(likehood @  26.5.2008,  10:21 Найти цитируемый пост)
если этот код работает, по получается, что в php есть "перегрузка" операции + для вызовов функций (в терминах Fortopа).

 smile Вообще в терминах Fortopа в ПХП значение, которое возвращает функция всегда надо чем-нить присвоить, а только потом юзать.


--------------------
PM MAIL ICQ Skype   Вверх
source777
Дата 26.5.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(archimed7592 @  26.5.2008,  00:13 Найти цитируемый пост)
Pixel hunting идёт в массы smile.
Во-первых, в этой разметке нет ни одного размера в пикселях(px), во-вторых ты отступы вообще не задаёшь что ли? с какого боку тут Pixel hunting? Width и Heigth можно убрать, их дизайнер просто по умолчанию втыкивает, чтобы на превью компоненты удобнее бросать было...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
JackYF
Дата 26.5.2008, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(source777 @  26.5.2008,  14:34 Найти цитируемый пост)
их дизайнер просто по умолчанию втыкивает, чтобы на превью компоненты удобнее бросать было...

а выкинуть их (из дизайнера) можно? или ручками?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
source777
Дата 26.5.2008, 19:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(JackYF @  26.5.2008,  18:11 Найти цитируемый пост)
а выкинуть их (из дизайнера) можно? или ручками? 
если делать кодом, как любит archimed7592, то их не будет по умолчанию. А дизайнером без них пользоваться не получиться, ибо сложно Drag`n`Drop`ить контрол на форму нулевого размера, а именно такой размер у неё будет, если нет содержимого или размер не задан явно... впрочем не вижу в этом ничего страшного, когда все контролы расставлены можно и руками убрать при необходимости...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Fortop
Дата 26.5.2008, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(likehood @  26.5.2008,  10:21 Найти цитируемый пост)
если этот код работает, по получается, что в php есть "перегрузка" операции + для вызовов функций (в терминах Fortopа).
что тогда мешает "перегрузить" операцию []?

Задай этот вопрос разработчикам smile ;) Вполне может быть - намеренное упрощение синтаксического анализатора(все таки код интерпретируется), а может и просто банальное "наследство" от чего-то там smile

Цитата(Любитель @  26.5.2008,  14:20 Найти цитируемый пост)
Вообще в терминах Fortopа

Надо сказать отвратительно разбираешься в моих терминах ;) 
Но как это звучит - мне нравится ;)
Так и вижу - афиша, и большими буквами "Приглашаем посетить авторский курс терминов Fortopa" smile 

smile я объяснял почему, [] не работает так, как хочется отдельным людям smile И ничего более smile Попутно выяснил, что человек считает корнем зла именно слабую типизацию(при этом путает ее с неявной), которая отвечает за возможность использования в выражениях разных типов операндов, а не особенность реализации []. smile

Цитата(nerezus @  26.5.2008,  07:48 Найти цитируемый пост)
Значение после вызова функции подставляется в обрабатываемое выражение. Это происходит, т.к. вызов функции имеет приореитет. И после этого уже над вернувшимся значением происходит [].

Это тебе так хочется, чтобы так происходило smile Для того чтобы ты мог это утверждать со знанием дела, рекомендую погрузиться в исходники PHP smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
nerezus
Дата 26.5.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

при этом путает ее с неявной
 И где я ее путаю? Путаешь ты, я все написал правильно и даже тебе дал ссылку, где про это можно почитать.


Цитата

Надо сказать отвратительно разбираешься в моих терминах ;) 
Но как это звучит - мне нравится ;)

Вот пример: f1()->f2()->f3()->f4()->f5() - по логике Fortop здесь перегружен у функции метод метода метода метода? ))


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Void
Дата 27.5.2008, 16:44 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(Fortop @  26.5.2008,  23:15 Найти цитируемый пост)
рекомендую погрузиться в исходники PHP

Посмотрел я.
Цитата(Fortop @  26.5.2008,  23:15 Найти цитируемый пост)
что тогда мешает "перегрузить" операцию []?

Задай этот вопрос разработчикам smile ;) Вполне может быть - намеренное упрощение синтаксического анализатора(все таки код интерпретируется), а может и просто банальное "наследство" от чего-то там 

Вряд ли упрощение анализатора, потому что поменять грамматику так, чтобы слева от '[' dim_offset ']' стоял нетерминал выражения, ничего не стоит. И вычислительную сложность разбора это не усложнит, по крайней мере измеримо. Возможно, упрощение интерпретатора. Но скорее всего, просто тяжкое наследие прошлого.

Есть ещё один более-менее известный язык с таким ограничением — оригинальный Виртовский Паскаль. Только все нормальные реализации от него избавились давным давно.
Так что можно считать авторов PHP последователями Вирта smile Хотя язык у них все равно укуренный.

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


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
nerezus
  Дата 1.6.2008, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Оооо, я не рассматривал джаву, т.к. она не конкурировала с ними по Look-n-feel

Однако я упустил 2 вещи... SWT и Qt Jambi
Теперь я снова в сомнениях )


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Любитель
Дата 2.6.2008, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Если тебя шарп не устраивает по языковам фишкам, то ява - ИМХО там всё слишком строго smile


--------------------
PM MAIL ICQ Skype   Вверх
nginx
Дата 7.2.2010, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.6.2009

Репутация: -4
Всего: -3



Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Нет нормальных средств функционального программирования.

C# - не для этого был создан, да и не люблю функциональная, как каша смотрится
Правда, если очень хочется можешь посмотреть в сторону F#

Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
Нет нормальной кроссплатформенности(mono не предлагать, ).

llvm, а потом почему Моно не предлогать? У Питона бедновато с GUI , с визуальными стилями очень бедно и некрасиво, а начинать сидеть это очень долго и нудно, чтобы добиться того же эффекта, что в .NET можно получить за несколько минут (макс. 5 мин.),

Поэтому лучше сразу общаться с Window X напрямую и на СИ, тем более ты сам говорил, что компилер СИ от Интела компилит более оптимизированные приложения, чем на ASM даже.

А возни, чтобы добиться того же уровня качество твоего GUI-приложения будет столько же.

Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
4) Применение в разработке скриптов и сетевых приложений.Питон лидер. Просто лидер и никакой дотнет рядом не валялся. Написать многопоточный сканер? Пожалуйста, десять строк.Написать вебсервер? Пять строк.Кстати этот пункт я ценю выше всего.

А вот тут , я поспорю, ты забыл про PowerShell и тут он тоже может побороться с Питоном, тоже несколько строк для веб-сервера и многопоточного сканнера, юзает с лекгостью дотНЕТовские либы и полностью интрегерирован с дотНЕТом и твоими дотНЕТ приложениями.


Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
8) Другие возможности.Это фишки дотнета типа IronPython или Silverlight.Мое мнение касательно первого: слишком "по студенчески". Проект еще не дошел до готовой кондиции.Касательно второго - то пусть уж с апплетами жабы борется, а до Flash текущими темпами ему лет 40 еще. Ну не кроссплатформенный он, а Moonlight будет повторять путь mono, в котором даже стандартных методов для стандартных дотнетовских классов нет: not implemented, как говорится.

Ну , IronPython и начал свою историю, как студенческий, что с него взять? Точно так же, как IronRuby и Phalanger

А про Сильверлайт , мы с тобой уже давно беседовали, и СЛ уже полностью догнал, и моментами обогнал Флэш по возможностям, тюкать СЛ можно только за распространнимость и кросс-платформенность только насегодня.

Цитата(nerezus @  19.5.2008,  17:40 Найти цитируемый пост)
У дотнета же - MSDN, о которой у меня не лучшее мнение: ставишь критерий поиска win32 native - а оно всякие джаваскрипты в результатах выводит.

Потому что, нужно было набирать win32 c++

Цитата

11) Мобильные платформы.
Дотнет на WM, Python на Symbian.
Хоть у меня и Symbian, но нравится больше именно WM(следующий девайс(как и предыдущий) будет на нем). Да и версии CF от обычного фреймворка отличаются ограздо меньше, чем обычный питон от мобильного.
Тут мое мнение все же за .NET.

MonoTouch - for iPhone
Mono + Erlang - for Sony Erickson
Mono - для Андроида еще будет (если уже нет)
Моно есть для PS3, Nintendo Wii , где нет Питона
PM MAIL   Вверх
nerezus
Дата 7.2.2010, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

C# - не для этого был создан, да и не люблю функциональная, как каша смотрится
Правда, если очень хочется можешь посмотреть в сторону F#
 Посмотри дату моего поста.

Цитата

У Питона бедновато с GUI
 Какбэ в нем 100% поддержка куте есть, если ты не знал ;) Куда уж богаче.

Цитата

что в .NET можно получить за несколько минут (макс. 5 мин.),
 См. дату моего поста. Говорят, моно ушел сейчас дальше, чем тогда. Проверить надо будет как-нить.

Цитата

А вот тут , я поспорю, ты забыл про PowerShell 
 Посмотри дату моего поста.

Цитата

А про Сильверлайт , мы с тобой уже давно беседовали
 Посмотри дату моего поста.

Цитата

Потому что, нужно было набирать win32 c++
 Изучи интерфейс десктопного MSDN ;)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Любитель
Дата 7.2.2010, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(nerezus @  7.2.2010,  23:42 Найти цитируемый пост)
 Изучи интерфейс десктопного MSDN ;) 

Десктопный MSDN - УГ. В эпоху интернета на каждом шагу - ставить локально МСДН как-то даже стыдно...


--------------------
PM MAIL ICQ Skype   Вверх
nginx
Дата 7.2.2010, 23:49 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.6.2009

Репутация: -4
Всего: -3



Цитата(nerezus @  7.2.2010,  23:42 Найти цитируемый пост)
Изучи интерфейс десктопного MSDN ;)

http://social.msdn.microsoft.com/search/en...y=win32+c%2b%3d

Ну и в чем проблемы?

Цитата(nerezus @  7.2.2010,  23:42 Найти цитируемый пост)
Какбэ в нем 100% поддержка куте есть, если ты не знал ;) Куда уж богаче.

богаче в плане кучи небогатых либ, кроме qt?

Цитата

Посмотри дату моего поста.

Update the first message, because it's not just first, it looks like "news", you ought to update it!

Цитата(nerezus @  7.2.2010,  23:42 Найти цитируемый пост)
ЦитатаА вот тут , я поспорю, ты забыл про PowerShell  Посмотри дату моего поста.

На тот момент PowerShell уже существовал, и можно было точно так же с легкостью сделать в 4-е строчки!

Это сообщение отредактировал(а) nginx - 7.2.2010, 23:53
PM MAIL   Вверх
nerezus
Дата 7.2.2010, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

В эпоху интернета на каждом шагу
 Посмотри дату моего поста.

Цитата

Ну и в чем проблемы?
 Ты понимаешь, что под словом "MSDN" я имею ввиду десктопную версию справочника?

Цитата

богаче в плане кучи небогатых либ, кроме qt?
 Что значит кроме?)  Может тогда и совсем питон исключим до последнего байта?)

Цитата

Update the first message, because it's not just first, it looks like "news", you ought to update it!
 Неа.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
nginx
Дата 8.2.2010, 00:04 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.6.2009

Репутация: -4
Всего: -3



Цитата(nerezus @  7.2.2010,  23:59 Найти цитируемый пост)
Ты понимаешь, что под словом "MSDN" я имею ввиду десктопную версию справочника?

Да, я не понимаю, потому что это ошибка, искореняй ее!

Цитата(nerezus @  7.2.2010,  23:59 Найти цитируемый пост)
Неа.

Да-а, а то твой первый месс, как приговор смотриться, глаза мои режет этот приговор.

Цитата(nerezus @  7.2.2010,  23:59 Найти цитируемый пост)
Что значит кроме?)  Может тогда и совсем питон исключим до последнего байта?)

"Кроме" - оно и значит, что кроме Qt нет серьезных либ.
Попробуй мне создать интерференцию мех. волн в на основе своих либ, причем УСЛОВИЕ!!! Красота на уровне Compiz.

Это сообщение отредактировал(а) nginx - 8.2.2010, 00:16
PM MAIL   Вверх
nerezus
Дата 8.2.2010, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Да-а
 Я сам решу.

Цитата

Да, я не понимаю, потому что это ошибка, искореняй ее
 Это не ошибка. Учи матчасть. Скрин дать с программой?

Цитата

Попробуй мне создать интерференцию мех. волн в на основе своих либ, причем УСЛОВИЕ!!! Красота на уровне Compiz.
 ТЗ, сроки, бюджет.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
nginx
Дата 8.2.2010, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.6.2009

Репутация: -4
Всего: -3



Цитата(nerezus @  8.2.2010,  01:00 Найти цитируемый пост)
Учи матчасть. Скрин дать с программой?

именно ошибка, юзать "десктопную версию справочника" - это натуральная ошибка
собственно не мне учить "матчасть", да и ее тут и нет
Цитата(nerezus @  8.2.2010,  01:00 Найти цитируемый пост)
ТЗ, сроки, бюджет.

15 минут, 10 баксов, хотя бы открыть Вики соотв. раздел )  smile  больше смысла платить нет  )

Это сообщение отредактировал(а) nginx - 8.2.2010, 01:06
PM MAIL   Вверх
nerezus
Дата 8.2.2010, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

именно ошибка, юзать "десктопную версию справочника" - это натуральная ошибка
 С таким же уровнем успеха и бредогенерации можно сказать "юзать винду/вс/дотнет ошибка". Но это будет не более, чем трололо.

Цитата

15 минут, 10 баксов, хотя бы открыть Вики соотв. раздел )
 Ну раз ты сам за меня ответил ;)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
nginx
Дата 8.2.2010, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.6.2009

Репутация: -4
Всего: -3



Цитата(nerezus @  8.2.2010,  01:18 Найти цитируемый пост)
С таким же уровнем успеха и бредогенерации можно сказать "юзать винду/вс/дотнет ошибка".

нет, перевертываешь мои слова

Ты написал:
Цитата

Изучи интерфейс десктопного MSDN ;)

Что мне изучать? Как искать инфу по нативному программированию в msdn? Ссылку я тебе привел выше, и написал "в чем проблема"?
Ты описал ту проблему, который нет

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

Не нада перевертывать мои слова
PM MAIL   Вверх
nerezus
Дата 8.2.2010, 01:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



user posted image

Фильтры вверху. Особеннно на первый и пятый результат обрати внимание.

По поводу использования онлайн-версии повсеместно, то не надо думать, что за МКАДом нет жизни ) Особенно пару лет назад.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Любитель
Дата 8.2.2010, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(nerezus @  8.2.2010,  01:32 Найти цитируемый пост)
По поводу использования онлайн-версии повсеместно, то не надо думать, что за МКАДом нет жизни ) Особенно пару лет назад. 

Про пару лет назад - согласен. Было тяжёлое время smile Но сейчас, десктопный МСДН - это:
1. Тормозной ие-шный браузер (инициализация вкладки МСДН-а тормозит вечно также, как и в ие, поэтому думаю, что виноват он).
2. Отвратительный поиск. Мало того, что у меня онлайновый поиск отработает быстрее, так ещё и находит он ерунду какую-то. Реально пользоваться только "index" - если знаешь точно, что нужно. А если "как сделать ...." - то...

Лично моё мнение. В мсдн хорошая сама документация (данные), но поиск и каталогизация - ужасны. Гуглом проще/лучше/удобнее.


--------------------
PM MAIL ICQ Skype   Вверх
nerezus
Дата 8.2.2010, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Про пару лет назад - согласен. 
 Вот и отлично. А теперь смотри дату создания темы.

Но ты все еще не понял. За МКАДом с инетом проблемы и сейчас. Или ты наивно полагаешь, что студент с универского компа(иначе бы я и не трогал системное) может получить доступ к вебу?)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
nginx
Дата 8.2.2010, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.6.2009

Репутация: -4
Всего: -3



присваивание не является выражениям
я хочу сделать (Foo | = []). Append (42), а не Foo | = []; foo.append (42) и т.д.

Вай нот ин Пайтон?
PM MAIL   Вверх
Любитель
Дата 8.2.2010, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(nerezus @  8.2.2010,  02:08 Найти цитируемый пост)
Или ты наивно полагаешь, что студент с универского компа(иначе бы я и не трогал системное) может получить доступ к вебу?) 

Ээ.. я не понимаю, что значит "за МКАДом". В нашем жалком ВГУ инет есть smile MSDN десктопной нету.


--------------------
PM MAIL ICQ Skype   Вверх
nerezus
Дата 8.2.2010, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Любитель, окей. У нас в городе 1.1млн человек в 3 самых крупных универах нет интернета для студентов. В остальных даже хз.  Расстояние до Москвы ровно 1 тысяча км.

Это вы на расстоянии 500км от Москвы с жиру беситесь  smile 


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
nginx
Дата 8.2.2010, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.6.2009

Репутация: -4
Всего: -3



Цитата(nerezus @  8.2.2010,  14:18 Найти цитируемый пост)
Это вы на расстоянии 500км от Москвы с жиру беситесь   

Это же как же, тогда бесяться москвичи и люди , проживающее в ближайшем подмосковье  smile 
PM MAIL   Вверх
nerezus
Дата 8.2.2010, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

Это же как же, тогда бесяться москвичи и люди , проживающее в ближайшем подмосковье   
 Когда на рублевке 10 лет назад был бесплатный анлим, у меня 4 года назад было 7килобайт в секунду за 1300рублей.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Любитель
Дата 8.2.2010, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



nerezus, мы 4 года назад не знали слова "анлим" smile 


--------------------
PM MAIL ICQ Skype   Вверх
Страницы: (14) [Все] 1 2 3 ... Последняя »
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.6267 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.