![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 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 негуевые поддерживает. |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
F# не предлагать, да? ![]() -------------------- 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 |
|||
|
||||
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 1 Всего: 62 |
Питон - тормоз, у него плохо с масштабируемостью и многопоточностью.
![]() |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Ch0bits, этот "тормоз" самый быстрый скриптовый язык из распространенных. ) Ну если не считать lua, из-за его области применения.
Что касается многопоточности - то global lock не мешает, т.к. он не распространяется на модули, а практически все задержки в них, а не на логике. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 2 Всего: 118 |
||||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Ну в данном случае считать, что Java=.NET ))
Просто для меня существенны следующие разоличия: 1) Java требует JRE для запуска, когда как .NET встроен в винду по дефолту(кроме старых версий, конечно) 2) Но джава кроссплатформенна. 3) Дотнетовский гуй родной для винды, джава выглядит же очень чужеродно. 4) Кроссплатформ для мобильников. Остальные доводы считать идентичными для джавы и дотнета) |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
nerezus, собственно, вопрос поставлен некорректно! Сравнивать язык программирования с платформой!!!
Вот если бы Python vs C#, то можно будет сравнивать.
Почему mono не предлагать? Про F# уже archimed7592 отписался. ![]() А вообще, я смотрю Вам по нраву синтаксические особенности Питона и модель программирования .NET. Может IronPython попробуете? Авось устроит.... -------------------- |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
в питоне многопоточность обычно реализуется не на уровне потоков(из за GIL это все будет выполняться последовательно) а на уровне процессов, так же есть фреймверк Twisted, который в этом помогает ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Почему Вы считаете, что питон - это не платформа? -------------------- 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 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
тогда какой к черту .NET? Python + QT4 wrapper -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
![]() У стандартных слассов нет стандартных методов в нем.
Из 12 пунктов про сам язык всего лишь 1 пункт(ибо язык является частью), остальное про платформы. |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Но вот документация в стиле "убейте меня". Примеров ОЧЕНЬ мало, а те, которые есть - на C++, а не на питоне. Тем более что в сборке под винду нет половины контроллов(типа QWebView и т.д.) и возможностей(хз почему так собрали). |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Почему не .NET + SWF? ![]() -------------------- 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 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
потому что платформ, где можно запустить Python + QT4 несоизмеримо больше какие дотнетовские языки являются скриптовыми? Это сообщение отредактировал(а) MAKCim - 19.5.2008, 19:27 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Нужно определиться, что есть платформа. Если, например, использовать определение:
то я действительно был не прав. -------------------- |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Согласен, скриптовых - нет... по крайней мере я таких не знаю...
Ну давайте закроем глаза на терминологию с формулировками и пойдём несколько иным путём. Что такое .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 |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
archimed7592, JIT-компилятор и сборшик мусора как составные части платформы (.NET) это не тоже самое, что интерпретатор языка программирования и сборшик мусора на уровне языка (Python).
Остаётся только набор библиотек, который уместнее было бы именовать какркасом (framework), нежели платформой. Кроме того, исполняемым файлом платформы .NET является файл, содержащий инструкции MSIL, а не просто исходный код на одном из языков .NET. Если по-вашему, то любой интерпретируемый язык, поддерживающий сборку мусора, сопровождает и одноимённая платформа. Платформа Ruby, платформа Lisp, платформа Smalltalk... Не многовато будет? IMHO -------------------- |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
kemiisto, ты так говоришь, т.к. не видел питон.
В нем аналогичная ситуация: промежуточный байт-код. Файлы pyc/pyo. В платформе питона можно компилить не только код на языке питоне, но и на других. Просто надо создать такой pyc-файл. |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
nerezus, дико извиняюсь.
![]()
А на каких именно, можно поинтересоваться? -------------------- |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
kemiisto,
Хотя никто не мешает написать компилер в pyc для другого языка - нет технических ограничений. С джавой подобное(но "альтернативы" есть вроде мидлет паскаля), хотя у нас на 4ом курсе пишут компилер своего языка в байткод джавы. Это сообщение отредактировал(а) nerezus - 20.5.2008, 06:31 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Тут упоминали Python в связке QT4 для гуи. Дайте пример приложения, где так делают. Чисто из спортивного интереса глянуть.
![]() И ещё, вот по поводу крутости разработки сетевых приложений, пример, если можно. -------------------- ![]() |
|||
|
||||
Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: нет Всего: 72 |
mr.DUDA, приложения не дам, а почитать можно тут же на форуме: ссылка.
|
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
mr.DUDA, я ошибся, в 4 строки, а не в 5 ):
Если заменить handler на свой - то можно генерировать прямо на лету. Касательно Qt: ссылку выше дали ) |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
nerezus, в примере - встроенный функционал одной из стандартных библиотек? Если нет, то не засчитывается.
![]() -------------------- ![]() |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
интересно, есть ли для .NET-a что то похоже на easy_install
![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Shaggie, почитал обе статьи, включая ту которая про Qt4 на С++. Что сказать, если нужна кроссплатформенность то и правда "какой тут к чёрту .NET".
![]() Но вот если не нужна (и лишних 6 килобаксов на Qt нет), то сами понимаете... ![]() -------------------- ![]() |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
mr.DUDA, стандартные библиотеи. Есть и поддержка CGI в таком сервере. Тоже стандартно.
И лицензия у него вовсе не такая, как у Qt. Точнее такая же, но на модификацию самой PyQt, а вот код питона, который ее юзает, может иметь любую лицензию ;) Вот такое преимущество у скриптовых языков ;) Это сообщение отредактировал(а) nerezus - 20.5.2008, 09:33 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
гы это и называется платформа пожалуйста, можешь использовать любой компонент .NET, только вряд ли у тебя получится написать все в 5 строчек ![]() вот тут уже дело в языке Это сообщение отредактировал(а) MAKCim - 20.5.2008, 09:49 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
MAKCim, дело совсем не в языке. Точно так же я могу взять и написать свой класс под любым названием и запихнуть туда прослушивание сокета, назвав это SimpleServer-ом. Код для использования такого сервера влезет в 3-4 строчки кода, практически один-в-один с приведённым примером (а Handler будет делегат на метод того же класса сервера, обрабатывающим HTTP запрос). На кодпрожекте таких примеров вагон. Пока ничего сверхъестественного в питоне не вижу кроме кроссплатформенности. Просил убийственных примеров - не привели. ![]() Добавлено @ 10:04 Гм... мысль не понял. ![]() -------------------- ![]() |
|||
|
||||
nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
mr.DUDA,
Дело в том, что код питона очень краток. Это был пример. Так же в нем есть вещи типа: Например открыть файл в виде массива строк с вырезанием пробелов по краям, пропуская пустые строки:
Или объявление функций в процессе выполнения программы:
Это сообщение отредактировал(а) nerezus - 20.5.2008, 10:16 |
||||||
|
|||||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
лови ![]() сериализовать список из N отображений номера динамически созданных классов с именами class1, class2, ..., classN, в каждом из которых есть метод c именем get, принимающий параметр целого типа K и возвращающий число K + i, где i - порядковый номер созданного класса, на объект этого класса
Это сообщение отредактировал(а) MAKCim - 20.5.2008, 10:54 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 2 Всего: 118 |
У меня такой ощущение, что тут не желание понять. что реально решает проблему, а показать. что Питон круче.
Ну занимайся Питоном, если очень хочется. Правда работы на нем найти сложновато. Ну наверно на .NET это не так элегантно выглядит. Только что-то за последние лет 20 я таких задач в своей практике не встречал. А вот писание сайта с жуткой логикой с обращениями к распределенным базам данных с сотнями таблиц, со сложным GUI, Web GUI - сколько угодно. Исходите из того, какие задачи встречаются в реальной жизни. А восхищение элегантностью - Perl тоже выглядел офигительным языком. Ну и где он сейчас ? |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
MAKCim, пример сразил наповал.
![]() nerezus, таких наворотов в шарпе конечно нету. В С++ вроде есть похожее что-то (число тоже можно было передать как параметр тимплейта функции), не помню. -------------------- ![]() |
|||
|
||||
MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
задача, естественно, надуманная ее цель - показать выразительность языка и его способность быстро и качественно решать сложные задачи
Perl никогда не был элегантным
в С++ по определению такого не сделать я не вижу сложности это реализовать на питоне в итоге мы получим более простой и понятный код меньшего размера (благодаря выразительности языка) для Web-приложений есть фреймворк Django сам не использовал, но слышал много хороших отзывов в конце концов есть Java + Struts + Hibernate + Spring ![]() порвет .NET + ASP как тузик грелку ![]() или тот же RoR вообщем, для любых задач можно найти инструмент лучше, чем .NET Это сообщение отредактировал(а) MAKCim - 20.5.2008, 14:00 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Максимализм просто восхищает. Так держать ! ![]() -------------------- ![]() |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 2 Всего: 118 |
Когда он появился, то выглядел просто офигительно. И отзывы были самые хвалебные. Во всяком случае чуть ли не 10 лет назад.
Prolog тоже элегантно решает очень сложные задачи. Только толку ? Да, есть какая-то область (не очень большая), где это реально удобно и красиво. Но таких областей мало. Следовательно и работы мало. Изначальный вопрос был - выбрать между .NET и Python. Тут надо исходить из цели. Если цель писать элегантные решения, которые показывают превосходство Питона, то надо заниматься Питоном. Если цель иметь хлебушка и сверху колбаски, то надо изучать то, за что готовы платить деньги, т.е. NET. Так что сначала надо определить именно цели, которые дадут критерии выбора. А потом уже выбирать. Без этого обсуждение превращается в спор без критериев - искусство ради искусства. Что вообщем-то даже в искусстве ничем не заканчивается. |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Альтернатив этих немало. Для затравки: 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 |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 2 Всего: 162 |
||||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
я не прав? ![]()
цель была озвучена: скрипты + GUI выбор очевиден Добавлено через 3 минуты и 36 секунд
вот только без этого, хорошо? перечитай еще раз тему с середины второй страницы и проследи за логикой -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
krwlr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 6.12.2006 Репутация: 2 Всего: 51 |
дотНэт спонсирует микрософт.
питон: микрософт, гугль, сан, каноникал. Это только мне известные... В общем python.org/psf/. Может есть еще крупная, но мне неизвестная... -------------------- убрал |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
вот (касаемо питона и C#) Это сообщение отредактировал(а) MAKCim - 20.5.2008, 15:58 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
С гуи не всё прекрасно. Проще и удобнее дотнета для гуи - нет. (у нас же религиозные войны всё-таки) З.Ы. максимализм - это посылать к чертям что-либо из хулиганских лучших побуждений. Хотя MAKCim-у это положено ![]() ![]() З.Ы(2) ушёл зарабатывать на колбасу поверх хлеба ![]() -------------------- ![]() |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 2 Всего: 118 |
Без чего "без этого" ? Перечитал. И не понял логики. С чем ты не согласен ? Что Питон пока не дотягивает по популярности ? В том, что предложений о работе на нем меньше ? Что критерии выбора должны быть определены, прежде чем выбирать ? |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
AntonSaburov,
твой тезис
1. критерии озвучены (1 стр.) 2. никакого спора нет, человек (mr.DUDA) хотел "убийственного" примера он его получил решение задачи показывает выразительность языка и не более того причем здесь вообще "хлеб" и "колбаса"? у nerezus есть четкая цель: выбрать язык, конкретно Python или .NET (C#, ...) он не спрашивает, что более востребовано, т. к "работа есть и там, и там" Это сообщение отредактировал(а) MAKCim - 20.5.2008, 17:30 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Давай обойдёмся без таких резких заявлений... Хотя бы пока для дотнета не появится возможности не напрягаясь писать 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 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
точно вспомним (и помянем) Delphi ![]() Добавлено через 2 минуты и 59 секунд во всяком случае, GUI писАть на питоне можно а вот скрипты и .NET, получается, ортогональные понятия ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Да ради бога, чем код по настройке виджетов/контейнеров будет отличаться от кода по настройке тех же контролов на форме? И кстати, писать гуи в блокноте будет разве только мазохист. Или любитель всяких там vim-ов ![]() Предположу, что в реале сложный GUI делают всё же не 100% в текстовом редакторе. Проще размещать и настраивать виджеты в RAD тулзе, тот же Qt зачем-то имеет собственный дизайн-тайм тул. Вооот! "Можно" и "нужно" разные понятия. Гуи можно на чём угодно написать, хоть на Фортране или Ассемблере. ![]() Кстати, просил примеров реальных гуи-приложений на питоне, до сих пор в ожидании. Видимо не написали ещё за (сколько там Питону лет кстати?) кучу времени. Приведи своё понятие скрипта, может не такие и ортогональные? Ещё вот тут говорили про парсинг/анализ строк, как это замечательно и лаконично делается на Питоне. Всвязи с этим вопрос к nerezus - в планах есть что-нить связанное с сабжем? Ну там HTML парсить или синтаксический анализатор делать. -------------------- ![]() |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 2 Всего: 162 |
||||
|
||||
AntonSaburov |
|
||||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 2 Всего: 118 |
Только информация в них достаточно субъективна.
Ну да - один тянет в сторону NET, другой - Python is the best. На NET тоже в пару кликов можно WebService сваять. Это не показатель.
Он спрашивает, что выбрать и в числе критериев есть |
||||
|
|||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
-------------------- ![]() |
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 2 Всего: 181 |
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/ хватит? ![]() +1 ![]() -------------------- ![]() 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 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
-------------------- ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Код не будет отличаться ничем.. Просто его количество и качество будут существенно различаться для .NET и для Qt. В моей фразе ключевыми были слова "не напрягаясь" ![]() Насчёт мазохистов: ты видимо не знаком с Qt. Там есть много прекраснейших вещей, но вот эти мне нравятся больше всего: 1. Layouts. Где они в .NET? 2. Stylesheets. О .NET я скромно промолчу ![]() 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 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
archimed7592, layout-ы и контейнеры в дотнете есть: FlowLayoutPanel/TableLayoutPanel, а также anchor-ы и docking. Пиксельхантингом не занимаемся - зачем, если для точного позиционирования и отступов можно выставить пару свойств в пропертигриде? Насчёт code completion - проще набрать пару букв и ентер/пробел, чем на память помнить имена методов и т.п. (ИМХО, т.к. с vim и прочими мегаблокнотами не знаком!)
А вот про сложный гуи без дизайнера -- что-нибудь навроде такого, за сколько времени можно склепать (чисто сам интерфейс, без логики)? ![]() З.Ы. Ах да, про WPF ещё не сказал - он чем-то напоминает Qt. Стили есть, layout более продвинут. Только это уже оффтоп. -------------------- ![]() |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
||||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
все (т.е. 3) моих товарищей, которые работают сейчас в google в рабочих интервью были спрошены умеют ли они говорить на python. что хорошо для google - хорошо и для меня. если конторы пишут модули, а язык в принципе развивается python 3 уже скоро выйдет, значит данный децентрализованный метод работает. что тоже оправдывает. насчет GUI не буду спорить - подход у них разный. в общем вопрос сложный, имхо теки по течению: если у тебя есть проекты и работа на дот-нете - сам знаешь что делать. (кстати неделю назад купил получил после того как на работе заказал Diving into Python ) уже посередине ![]() но мне как сисадмину он сподручнее. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
archimed7592 |
|
||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Ыыы, а скажи честно, ты ими пользуешься? Нет? А почему? Потому что тормозят безбожно? ![]()
Что за чудо-свойства такие? Вопрос тебе такой: если по тем или иным причинам скрыть один из контролов, всё быстренько перекомпонуется как нужно?
Минут 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 |
||||||
|
|||||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
скриптовый язык
вот небольшой примерчик работы со строками подсчитать количество строк в файле, которые содержат только целые неотрицательные числа, разделенные любым разделителем
Добавлено через 2 минуты и 18 секунд красиво ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
nerezus |
|
||||||||||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Просто в мелких городах и на начинающих разработчиков проблемы будут, если не самое распространенное брать. По крайней мере на питоне(сетевые скрипты) я пару сотен поднял(за инте надо было заплатить), хоть чисто для интереса кодил, а на дотнете же не пробовал поднимать. Но средний скрипт на ~$20 я пишу примерно за полтора часа. Вполне неплохо для меня, т.к. писать их оч. интересно.
+ поставить mono - еще та проблема(я их все-таки под никсы пускаю в основном)
LayOut'ы есть, но я их не юзал - Anchor'ы мне понравились на порядок больше.
Если бы был Python под дотнет - юзал бы его. Но его нету(поделки типа IronPython не в счет). Так что трабл ) |
||||||||||||||||||
|
|||||||||||||||||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Пользуюсь. Не тормозят и не должны.
Location и Size, и другие. Скрываю контрол, если стоит Dock то остальные перекомпонуются. Или если AutoSize. За подробностями - в пм или мсдн. Я рад за тебя ![]() На остальное nerezus ответил по существу. -------------------- ![]() |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Можно поинтересоваться? Как давно существует? Сколько веб-инсталяций? (сам видел 2-3 проекта, плюс, если не ошибаюсь МойКруг Яндекса) 1. на вскидку 60-70 элементов на приведеном скриншоте. Ты уверен в своей оценке в 10 минут? 2. Ты забыл про CSS для того чтобы оно еще и выглядело так же. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
||||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
если гора не идёт к Магомету, Магомет пойдет к горе. закон экономики: на периферии з/п ниже, спрос ниже, цены ниже. хочешь увеличить з/п ? либо работай серьёзно по удаленке (Т.е. открой свой фриланс офис) либо перезжай в "не маленький" город. Добавлено через 10 минут и 35 секунд кстати, еще одно кстати: если ориентироваться на то, что в Скоропопинске на дотнете у тебя всё будет пучком - тоже наивно. Вдруг построится какой-то завод по выпуску дождевых червяков, на который наймут 1/2 Скоропопинска, а IT на заводе будет Линукс. А так как сфера услуг будет ориентироваться на этот завод - через короткий срок засунешь дотнет в одно место. Если думать широко, можно интересные парадоксы найти... например, что на питоне можно и под макинтош писать и под соляру. а в США напр. рынок этих платформ (т.е. образовательный и банковский рынки соответственно) держит в себе не меньше капитала чем напр. весь российский рынок ПО. Кстати а какой вообще оборот у российского рынка ПО относительно других стран ? но для этого надо на изучение английского потратить напр. пол года, открыться официально... это всё морока, на которую "технарь"-наёмник не пойдет. а если не пойдет - пускай сосет лапу. так ему и надо ![]() -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Ок, поизучаю мсдн.
Эмм, а, ну, во первых, не вижу там 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 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Если присмотреться к скрину, имя класса написано справа от имени элемента (в Document Outline). Так что ответ: нет. Контрол не совсем простой: по умолчанию нижние две трети скрыты и показываются только при выставлении соотв. чекбокса ("Use texture transformations" или "Remap channel map"). Вопрос не о том, сколько элементов на картинке, а сколько времени уйдёт на позиционирование элементов вручную в текстовом редакторе. Или мы на бумажке сначала рисуем, считаем координаты и размеры в процентах/пикселах, и только потом пишем код ? ![]() Добавлено через 5 минут и 20 секунд З.Ы. контролов там не 70, а 76 ![]() -------------------- ![]() |
|||
|
||||
Любитель |
|
||||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Уже где-то недавно проскакивало это всё, но да ладно ![]() 1. "Смотря на картинку". В уме представлять всю кучу виджетов/контролов - зачастую напряжно. Дизайнер есть гуд. Независимо от гуи-либы. 2. Qt GUI vs WinForms. Qt выигрывает. Явно. Хотя Qt Designer и uic - далеки до идеала. 3. Фтопку ВинФормз, будущее дотнетовского гуя (ну, в контексте MS по крайней мере) - без сомненья WPF...
Тут всё-таки определиться бы - язык обсуждаем в первую очередь или платформу. Питоноподобный язык под .Net - я думаю более чем реально. Почему кстати IronPython не в счёт (сабж не смотрел - просто интересно). Если говорить про кроссплатформенность - .Net, конечно более чем слаб (повторяться надеюсь не будем).
Ну, впрочем, если уж докапываться - биндинг для того же Qt вроде есть, правда до ужаса кривой (под .Net). Есть GTK# (где любители ГТК?). А вообще - сферу применения хотелось бы подробней ![]() Это сообщение отредактировал(а) Любитель - 21.5.2008, 16:33 |
||||
|
|||||
archimed7592 |
|
||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Я ж говорю, незнакомые с Qt люди не верят, что можно вообще не задумываться о координатах/размерах и утверждают, что то, чем они занимаются в дизайнере - это не pixel hunting ![]() Смотри, простой пример, дальше по аналогии:
Ты видишь тут хоть одну координату, размер? ![]()
Это делается с помощью 1-й строки в том же текстовом редакторе или при помощи 7-10 телодвижений в дизайнере ![]() Добавлено через 3 минуты Кстати, либо у меня с арифметикой плохо, либо их слишком много(читай: есть дублирование кода).
Само собой, что не будет у меня примерной картинки, как предоставил 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 |
||||||
|
|||||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Ну, я считаю, что лучше сразу в дизайнере рисовать ![]() ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 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 |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Согласен. Для Qt сам часто вручную пишу. Раньше вообще только вручную
![]() |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Придется открывать контору - переехать не могу ( Не из-за себя. конечно.
Чисто пример "стабильностьти" |
||||
|
|||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
archimed7592, ну по-любому ведь приходится думать о (хотя бы) относительных размерах контейнеров/layout-а. Дизайнер не есть зло, особенно если настраивать приходится много чего (тот код, который у тебя значится под " // configuring widget"). Слабая связь чего с чем? И про дублирование кода непонятно, если вот у меня 5 чекбоксов в разных местах - это дублирование кода, т.е. их в цикле расставлять надо?
-------------------- ![]() |
|||
|
||||
archimed7592 |
|
||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Эмм, ну и что, тебе думается лучше в дизайнере, чем на бумажке? Ну, да, привычка - сильная штука... ![]() Кстати, уточни, пожалуйста, что ты понимаешь под этими относительными размерами о которых нужно думать(хотя бы ![]()
Покажи, плиз, пример, где нужно много чего настраивать, а? Чтобы это у меня больше 5-7 строк было что-то не припомню. К тому же, как насчёт разбиения на ф-ции этапы создания интерфейса? Дизанер это умеет? Хотя зачем ему, если файлы XXX.designer.cs никто читать-то и не будет? ![]() Ну как чего с чем? Есть, скажем диалог, приведённый тобою выше. Ответь на вопросы: 1. Что он делает? 2. Что ему нужно, чтобы он делал это(что нужно выставить "наружу", что ему нужно "спросить с" внешнего клиента, чтобы выполнить задачу и т.д.)? 3. С какими из остальных частей GUI/логики этот диалог связан? Почему? А зачем нужна эта свзяь? А нельзя ли её ослабить? Дык вот, если говорить о С++(а я именно на С++ с Qt работаю), то там результатом правильных ответов на поставленые вопросы будет реализация идиомы PImpl вкупе с минимальным интерфейсом наружу и минимальной завязкой на "остальной мир". К примеру, зачем выставлять наружу все эти labelXXX(отдельный вопрос: нахрена их вообще хранить как поля класса)? Я понимаю, что в случае, с C#, к примеру, толку от PImpl не особо много и для тебя это звучит немного дико, просто, когда говорил это, немного не подумал, что спор здесь не про С++, а про Qt и GUI в принципе, но всё равно, дизайнер как-то, мне кажется, склоняет к созданию менее качественного кода ![]() Простой пример: я уже не помню, как это в .NET делается, но вроде как, для того чтобы создать юзер-контрол, которым можно будет пользоваться в дизайнере, нужно сделать немало телодвижений(помимо написания кода), что, вероятно, больше склонит девелопера к тому, чтобы наклепать 20 раз одно и то же, вместо того, чтобы сделать качественный контрол, который можно будет в том же дизайнере 20 раз кинуть на разные формы. В случае с работой без дизайнера такой проблемы нет в принципе ![]()
Я не могу тебе так просто ответить, не посмотрев кода... Не телепат, всё таки ![]() Ну вот, те же вопросики рядом с некоторыми полями ввода - это, насколько я понимаю, обыкновенные лэйблы, которые каждый раз отдельно настраиваются(помимо того, что можно просто задать текст помощь или номер индекса в справочной системе - неважно), да? Т.е. то, что ты приноровившись быстренько проделываешь руками превращается в 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 |
||||||
|
|||||||
Kefir |
|
||||||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
archimed7592, эк вы батенька .НЕТ унижаете, как будто .НЕТ в каменном веке создавался.
Как это не верят? Верят. Более того и сами не заботятся об этом. Поставил док, поставил якорь. лайот какой-нибудь сделал при желании - наслаждайся. И это винформы. Я уже даже не говорю о WPF, о возможностях которого QT может только мечтать. А то что ты кодом пишешь - это уже личные заморочки каждого. Мне удобно юзать дизайнер. А насчёт "умного" лэйота QT - ну вот ты знаешь что текстовое поле будет содержать 2 символа. Что, он тоже мысли прочитает и сделает маленькую ширину? Вот. В любом случае, даже если не пикселями, то чем-то это надо задавать. В любом случае ты должен сказать, что кнопка находится внизу формы (к примеру) или ещё что-то. ![]() вообще интересно посмотреть на код. просто из любопытства
Что-что? Первое предложение не ко мне В) Не смог вкурить эту философскую мысль ![]() Что значит "зачем labelXXX"? Это ты к чему? Ну нужны там надписи, ты предлагаешь их удалить? Класс мембуры мешают - так не создавай ты для них отдельных класс мембуров, кто мешает-то?
почему? я не раз глядел в код дизайнера - ничего страшного не обнаружил. Просто вручную писать этот код, имхо, неэффективно. Всё сводится к набору текста. Monkey Job. и код этот как ни крути создавать дольше чем набросать в дизайнере. Пока напишешь, пока запустишь и проверишь так ли оно выглядит и т.д. Ни за что не поверю, что ГУИ (примитив одной кнопкой и текстовым полем не в счёт) вручную писать быстрее чем в дизайнере. эээ... кхм... как бы сказать... то есть ты говоришь, что все .НЕТ девелоперы тупы как пробки? ![]() ![]()
Есть такая песенка, там тоже неопровержимые фразы наподобие твоего утверждения:
![]() ну почему отдельно? можно поставить один эвент и показывать разную информацию в зависимости от кликнутого вопросика. Чем плохо? Можно и тултип поставить при желании. ЗЫ Извините, если немного нагловатый тон в посте. Что-то я разволновался. Это сообщение отредактировал(а) Kefir - 22.5.2008, 09:37 |
||||||||
|
|||||||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Ага, и работая в команде ты будешь на пальцах объяснять человеку как элементы расположены, или он телепат, или может быть бумажку сканировать и пересылать по имейлу? LOL ![]() ![]() ![]() Уточняю. Я про размер в процентах или пикселах, отводимый конкретному виджету в контейнере (так это вроде в Qt называется?). Width и Height. Размер кнопок, текстовых полей, разбивка на табличный layout с заданными размерами и т.п. - всё что с размерами связано. 1. Настраивает текстурный мап. 2. Ссылка на один (!) объект. Его свойства отображает и редактирует этот (не диалог!) контрол, будучи размещённым где-то на другом контроле. И таких штук 10, на каждый текстурный мап. Всё вместе входит в гуи редактора материалов. 3. Ни с какими внешними объектами, кроме поданного на вход TextureMap он не связан. Ни о чём больше не знает, да и не нужно это. Копи-паст элементов в дизайнере (вместе со всеми настроенными свойствами) за два клика или Ctrl+Drag никто не отменял, это во-первых. Настроить всплывающую подсказку - просто вбить текст в свойстве "вопросика", за два клика - это во-вторых. -------------------- ![]() |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
казалось бы, причем здесь Qt
![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
-------------------- ![]() |
|||
|
||||
archimed7592 |
|
||||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Ну, вот, ты сам привёл пример ![]() ![]()
Ну давай простой пример нарисуй, только, чтобы не "70" элементов, а 2-4 элемента(примитивных) и скажи что тебе куда запихнут, что вниз, что влево, что вправо, в общем, какой-нибудь частый случай изобрази, а я тебе покажу как легко это делается в коде.
Это завязки на логику. mr.DUDA, вроде ясно дал понять, что логику писать не нужно, я лишь показал, где(в каком месте кода) с этой логикой придётся увязывать контролы и всё. Дизайнер SWF позволяет не создавать мембера для отдельных контролов? Респект ему и уважуха, если это так ![]() Плюс к этому, есть вещи, я уверен, которые с помощью дизайнера настроить не удастся. Тогда придётся оставлять мемберов лишь для того, чтобы произвести донастройку в конструкторе(или где у вас принято это делать), после чего эти мемберы будут мёртвым грузом в каждом объекте, не так ли?
Ты немного не в том ключе понимаешь мои слова. Я изначально утверждал, что SWF так спроектирован, что нет возможности писать код в notepad'е, и не напрягаться в этот момент, а в какой пиксель нужно шлёпнуть контрол, а какой у него должен быть размер и т.д. BTW, в Qt есть возомжность и pixel hunting, если появится желание пострадать фигнёй ![]() Я чес слово уже не помню что там к чему. У меня мало опыта в написании гуя под SWF. Ну, скажем, такой пример: есть некий контрол, отображение которого зависит от многих факторов доступных только в рантайме, и, чтобы всё это запрограммировать так, чтобы это выглядело в дизайнере также, как в рантайме - мне кажется, не самая простая задача. Если дотнетчики и не ленятся делать это, в любом случае им приходится писать лишний код, который нужен именно для дизайнера - не это ли monkey job? ![]()
Подойди к вопросу более абстрактно: есть такие элементы 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 |
||||||||
|
|||||||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
* сразу оговорюсь - не понимаю при чём тут SWF... говорю лишь о VS В) *
archimed7592, так, я может не обозначил свои цели. единственное что я хотел сказать, что винформы не такая примивная штука как ты о ней говоришь (по крайней мере у меня лично сложилось такое впечатление ![]() Конечно прямо вот так "2 символа" я не напишу. просто сделаю маленькую ширину. ![]() ой слушай, ты меня не понял. это к спору не относится. просто реально интересно В) жалко чтоли? Дизайнер студии позволяет не создавать мемберов. Эти лейблы там есть потому что как-то надо в дизайн тайме в ними работать. Так что всё выглядит одинаково просто с той разницей, что мемберы можно и не делать. А какие вещи ты бедушь донастраивать? Лейбл тот же самый - чего ему, шрифт поставил да и всё. Ведь мембуры не нужны для тех контролов которые не задействованы в логике. Если ты хочешь менять надписи - всё равно надо какую-то ссылку иметь. По-моему он спроектирован так именно для того чтобы не было надобности писать это в блокноте В) вот и всё. Ну во-первых, я не вижу преимущества писать код для всего контрола вручную. В дизайнере создаётся костак контрола. В логике уже обрабатываются определённые ситуации. Итого для дизайнера не надо писать ничего. Не вижу лишнего кода. Если стоит такая задача, то на винформах лучше всего реализовывать через юзер-контрол. Так вот. Ещ раз - я не говорю что винформы = великолепная гуи, или что она лучше QT. я просто посчитал своим долгом высказать своё мнение. я с винформами работал не то чтобы очень долго, но достаточно. и могу сказать, что там есть свои пакости и непристойности, однако это не значит что она уж совсем никудышная. дизайнер - удобный. просто и со вкусом. если надо можно очень даже неплохие гуи создавать. возможностей куча. ЗЫ главное теперь до сравнения WPF не дойти ![]() ЗЗЫ При чём тут SWF?... ЗЗЗЫ так вот питон - классный язык. очень нравится его 1) кроссплатформенность и 2) скриптованность. Очень удобно. С .НЕТ сравнивать его не могу. ибо всё-таки плохо в нём разбираюсь (дилетантишка одним словом). Это сообщение отредактировал(а) Kefir - 22.5.2008, 11:18 |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
mr.DUDA, зачем мне объянять кому-то как расположены элементы? 0_о Кому какая разница, как они расположены, если виджет - это "черный ящик", который отвечает за своё дело и ничего более? Зачем мне эти размеры? Нет, бывают редкие случаи, что нужно сказать, что этот виджет занимает N% контейнера... Ну и так и пишу:
Зачем мне дизайнер для этого? Everything by the book ![]() Если вернуться к тому, с чего начинали, и опять поффтопить про сильные и слабые связи в С++, то, к примеру, внешний виджет, использующий твой, при изменении внутренней структуры твоего виджета будет перекомпилироваться, несмотря на то, что интерфейс с которым он работает с твоим виджетом не изменился. Происходит это потому, что ты, к примеру, изменишь название приватного поля, или добавишь приватную ф-цию... Это проблема конкретно С++. Ух как... Вот об этих копи-пастах я и говорю - ухудшают они качество кода. А когда ты логику пишешь, ты тоже копи-пастом не брезгуешь? ![]() Ну, собственно говоря, я уже привёл выше 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 |
|||
|
||||
archimed7592 |
|
||||||||||||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
В VS уже нету такой штуки, как System.Windows.Forms? Жаль ![]() Я употреблял это сокращение, дабы дать понять, что говорю именно об SWF, а не о WPF, который якобы "ещё круче Qt" ![]()
О, вот как, а что будет с этим контролом, когда за компьютер сядет человек с плохим зрением и выставит огромный системный шрифт?
Ну что, что, откуда я знаю что ![]() Что-то вроде этого
Мало ли что там может быть - от логики зависит и от связи с ней ![]() А что, не бывает в мире ГУИ вещей, которые приходится донастраивать в конструкторе? Скажем, заливать combo/list-box значениями, полученными откуда-то динамически?
Блин... Перефразирую: 1. Есть фреймворк, который настолько удобно спроектирован, что можно не задумываясь писать ГУЙ в блокноте. 2. Есть фреймворк, который не очень удачно спроектирован, хотя бы, потому что для того, чтобы сделать дизайн необходимо иметь дизайнер?(он что, часть фреймворка?) Напомню, что началось всё с фразы 3-хмерного маньяка, мол "нет ничего удобнее для ГУЯ, чем дотнет". Мдя, ну возьмём table(не помню точного названия) с его возможностями настраивать через всяки диалоги связи с датасетом и т.п. Да и сам датасет, хоть он и не гуёвый элемент, немало диалогов для настройки имеет. Я говорю про написание этих диалогов - их придётся писать, если хочешь, чтобы в дизайнере можно было манипулировать контролом также, как в коде. Это и есть никому не нужная работа(которую, подозреваю, многие делать поленятся, ибо, действительно - monkey job, если сам контрол, конечно, не для продажи пишется).
Вот видишь, сразу контрол. А почему контрол? А потому что без дизайнера себе жизни не представляем, да? ![]() Я же сказал(от лица привередливого клиента), что через месяц передумаю и попрошу сделать так, чтобы всё действо происходило при наведении мыши на непонятный элемент, а не на контрол рядом с ним(будь то вопросик или крестик - неважно). И чем тебе этот контрол поможет? Добавлено через 10 минут и 28 секунд
А чё ж в спор полез? ![]()
Это сообщение отредактировал(а) 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 |
||||||||||||||||
|
|||||||||||||||||
Kefir |
|
||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
ах соо. тогда ясно. просто мне эта аббр. больше флаш напоминает В)
научи меня, о гуру! конечно бывает. вот и донастраивай. если ты хочешь с контролом общаться напрямую - делай мембер. или ты на QT говоришь можешь комбик заполнить без ссылки на него? ![]() Действительно. Потому что незачем. Накатал что тебе конкретно надо и живи спокойно. Зачем делать универсальный контрол, когда ты его юзаешь в двух местах программы? Понадобится полная универсальность - вот когда понадобится - тогда и сделаешь.
Нет, не угадал В) Юзер контрол потому что он позволяет запихнуть в него несколько контролом одновременно. То биш в него я поставлю, к примеру, лейбл и текстовое поле. Скажешь поставить сбоку вопросик - пожалуйста. Поставлю в него ещё и вопросик. Добавлено через 53 секунды А что, в QT вопросики по другому расставляются? ![]() |
||||
|
|||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Видимо ты не работал в команде, когда с виджетом работает более чем один девелопер.
Да, конечно не брезгую. У меня весь код - один сплошной копипаст ! ![]()
То есть Qt настолько умён, что человек-дизайнер уже как бы не нужен? Всё будет расставлено и растянуто как положено. Вау, нафиг тогда винформс и WPF, накоплю 6 килобаксов и перейду на Qt/C++ ![]() -------------------- ![]() |
||||
|
|||||
archimed7592 |
|
||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Вообще говоря, я услышал эту аббревиатуру, если мне память не изменяет, от Exception'а... Может быть я расшифровал её неправильно? Ну, не суть. Зачем сарказм? Я действительно не знаю, что будет с контролом, если выставить крупный системный шрифт. В коде это делается так:
Это я расписал в 6 строк, ибо, как я подозреваю, не все знакому с С++ и не поймут записанное в одну строку(намного короче). Думаю, что в .NET'е можно проделать тоже самое, только не в дизайнере.
Можно сделать это без мембера. Просто ссылка будет иметь ограниченную область жизни(от места объявления до закрывающейся фигурной скобки):
Ты же не удивляешься, что дизайнер как-то умудряется производить настройку контролов без наличия мемберов(раз их можно убрать)... То же можешь делать и ты, только вот где проблема - без дизайнера жизнь не сладкая у SWF программистов ![]() И что, ты в обоих местах будешь проделывать одни и те же действия? Насчёт "зачем универсальный?" - а я не знаю зачем ![]() Об этом я собственно и говорю - вам не хочется делать универсальные контролы, и, когда придётся что-то изменить - придётся делать много monkey job и ни к чему другому копи-паст в дизайнере привести не может(собственно, как и копи-паст в коде). Эххх. Теперь представь, что у тебя есть лэйбл и эдитбокс(ну, типа поле для редактирования - ничего особенного). При наведении на оба элемента(что на лэйбл, что на эдит) должна дёргаться контекстная помощь. Занул ты обоих в свой контрол и радуешься жизни. Теперь представили, что таких полей для ввода с надписями много и они как-то должны быть сгруппированны. Когда у тебя просто есть отдельно лэйбл и отдельно эдитбокс, то ты можешь засунуть их в отдельные столбцы 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 |
||||||
|
|||||||
archimed7592 |
|
||||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Да, не работал. Правда, я не до сих пор не могу понять, что это за мега навороченный виджет должен быть, чтобы нельзя было разбить его по ф-ционалу и дизайну на кусочки и поручить их разным людям.
Сарказм какой-то пошёл.. Ты хочешь услышать, что я пытаюсь донести или ты несмотря ни на что будешь продвигать свой тезис, мол ничего удобнее .NET для гуи не существует? Тогда не вижу смысла в дальнейшей дискуссии.
Не понимаю тебя. Вот смотри, код:
Вот что получается. ![]() Слева-направо, сверху-вниз: 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 |
||||||||
|
|||||||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
А вариантов, когда виджет дорабатывает кто-либо кроме создателя не рассматриваешь? Или тот же виджет, но спустя полгода ты подзабыл как оно должно было выглядеть. Пример в ответ. Если добавить справа от текстбокса кнопку, размер кнопки можно как-то задать? -------------------- ![]() |
|||
|
||||
Kefir |
|
||||||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
да всё ясно - мы просто по разному расшифровываем эти буквы ![]()
ну конечно, само собой.
конечно, само собой. так оно и получается. только я работу с дизайном делаю делаю в дизайнере, а ты печатаешь кодом. в чм превосходство второго варианта? пока что я могу лишь заметить, что в дизайнере работать намного нагляднее, чем описывать в коде.
так о чём разговор? суть всё то же самое. ну опять. ну вот, сделал я контрол и буду юзать его хоть сто раз в любых местах. универсальный контрол в моём понимании - тот, который можно использовать в различных ситуациях. при чём тут этот копи-паст? перед этим хотелось бы услышать как всемогущий QT решает эти задачи. а то я пишу, пишу, жду, жду... |
||||||||
|
|||||||||
archimed7592 |
|
||||||||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
В том, что в дизайнере нельзя задать ширину относительно размера системного шрифта, а без дизайнера можно. Ок, раз то же самое, покажи мне как ты без мембера добавишь в дизайнере комбобокс и потом проинициализируешь список его значений в конструкторе. Ок. Есть контрол "форма ответа в тему". Она присутствует в трёх местах - быстрый ответ, "долгий" и ответ в ПМ. Хотя нет, ещё несколько мест: новая тема, новое ПМ. Ситуации суть те же. Написали мы такой контрол. Ок. Нужно разместить его на странице. Размещаем... Ой, а как эту форму немного кастомизировать для разных случаев? Блин, нужно делать специальные диалоги настройки специально для дизайнера, вот же чёрт, придётся заниматься monkey job лишь для того, чтобы воспользоваться всею "мощью" дизайнера... Аналогия ясна? Что-то мы из пустого в порожнее гоняем... Я напомню в чём здесь спор: я утверждаю, что некоторые контролы со сложной логикой при использовании в дизайнере приходится настраивать через спец. диалоги. Диалоги эти не нужны никому, кроме дизайнера. Вывод: это плохая черта делания ГУЯ в дизайнере, ибо приходится писать эти диалоги лишь для того чтобы пользоваться дизайнером. Вы согласны с этим выводом? Нет? Почему? Ещё напомню это: без дизайнера делать ГУЙ нельзя при использовании SWF, а при использовании Qt делать ГУЙ можно без дизайнера. Вывод: Qt намного удобнее потому что не нужен никакой code behind, чтобы скрыть тот ужас, который генерит дизайнер - им можно просто не пользоваться. Вы согласны с тем, что фреймворк в котором можно с лёгкостью делать гуй без дизайнера лучше? Нет? Почему?
Чего ты написал до чего ответа не дождался? 0_о Я не утверждаю, что Qt решает эту задачу. Я утверждаю, что эту задачу можно решить когда не используешь дизайнера, а сделать это(т.е. писать код руками без дизайнера) можно только с один из двух обсуждаемых фреймворков - с Qt. Я напомню, в чём вопрос: я утверждаю, что дизайнер принуждает к плохому стилю. Я бы даже без необходимости размещать в гриде не стал бы оборачивать лэйбл и эдитбокс в невидимый спец контейнер, отображающий хэлп и это не потому что я такой "гуру", а потому что просто я не пользуюсь дизайнером и не скован его ограничениями. Собственно, я буквально неделю назад занимался прикруткой этого контекстного хэлпа к одному проекту. Прикручиванием я занимался уже после того, как проект был реализован, ибо когда я пытался научить персонал пользоваться программой, я понял, что другого выхода просто нет - запомнить пять шагов они не в сосотоянии, использовать(понимать) "обыкновенную" справку они тоже не в состоянии. Как бы смешно это не звучало, сначала я сделал с подобными вопросиками - даже это оказалось им не по силам(они не виноваты, просто уровень компьютерного развития почти нулевой, они из калькулятора результат переписывают на бумажку, после чего вводят его в экселе в соседнем окне с бумажки). Тогда я сделал так, что при наведении мыши во второй половине окна отображалась html'ина с подробнейшим описанием и иллюстрациями(к слову, это хоть и помогло, но не особо - в итоге пришлось снимать видео при помощи CamStudio, где показывать подсвеченным указателем мыши куда нужна тыкнуть, зачем и т.д.). Итак, добавление справки выглядит так:
Как ты понимаешь, когда я переделывал с вопросика на hoverEnter/Leave я даже не заглядывал в этот код, я лишь немного подправил ContextHelpManager.
Почему должно было? Хочешь сказать как оно выглядело? Ну не проблема написать три строчки:
Когда виджет в лэйауте, то размер - величина рекомендательная. К примеру, справа - это в отдельном столбце? Тогда столбец будет себе подбирать ширину по определённым правилам. Ньансы можно выбрать такие: задать стретч, чтобы этот столбец всегда занимал минимум пространства, тогда будет использован sizeHint отдаваемый кнопкой. Иначе, можно для каждой кнопки задавать fixedWidth. Иначе, можно выставить sizePolicy->horizontalPolicy в Fixed. Ньюансов куча - зависит от того, чего ты реально хочешь добится. Можно вообще эту кнопку вынуть из лэйаута и позиционировать её и задавать ей размеры руками, просто никто так делать не будет ![]() -------------------- 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 |
||||||||||||
|
|||||||||||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Вот это я и хотел услышать. Значит в Qt всё же есть шаманская машинка, которая определяет оптимальные размеры и отступы (по size policy и т.п.). Удобно (без сарказма). ![]()
В винформах есть AutoScaleMode, там в т.ч. есть вариант Font. -------------------- ![]() |
|||
|
||||
Kefir |
|
||||||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
так вот в коде и добавляем В) то что есть дизайнер не отнимает возможности дописать что-то в коде. я не прав? о тут mr.DUDA даже лучше сказал В)
Не смогу без лишних движений. Более того, мне его и не надо. Мемберы мне не нужны в тех случаях если мне не надо совсем не надо с контролом взаимодействовать. При такой постановке задачи по-моему, нет ничего плохого в том, чтобы комбик был мембуром. Если я хочу до контрола достучаться из кода, то мне нужны мемберы. Всё. Я понял что ты имеешь в виду, только я тебе о том и говорю - набросали костяк в дизайнере (ну там, накидали поле текстовое для ответа, кнопычка, ещё что-то). А в коде затачиваем до опупения. Для дизайнера ничего не надо делать. Это уж как хотите - хотите чтобы контрол полностью кастомайзился в дизайнере - пожалуйста, не хотите - не делайте. Никто не обязывает писать диалоги для дизайнера.
Да кто тебе гадостей таких наговорил? Пиши на здоровье!
нет. не согласен. тот фреймворк лучше, у которого можно с лёгкостью делать гуй (заметьте, опущена часть без дизайнера). а с дизайнером или без - это уже дело второе. я считаю, что винформы очень удобны в плане создания гуя, ты считаешь, что нет, потому что тебе больше нравится писать ручками ![]() нут, я как бы думал, что вот ты сейчас меня послушаешь и скажешь как на QT это сделать (ну мне это показалось логичным, может я неправильно понял). хосспади, так напиши такой же хелп манагер на шарпе и радуйся жизни. Ты меня пытаешься убедить в том. что на QT всё намного проще и показываешь код, который к QT отношения не имеет. Ну да, клёво, класс, который подписывается на чужие эвенты (условно говоря). Это сообщение отредактировал(а) Kefir - 22.5.2008, 16:12 |
||||||||
|
|||||||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Это не шаманская машинка - это просто нормальный механизм лейоутов ;) И дело (для меня) вовсе не в том, что он помогает писать руками. Я за дизайнер - при приемлемом качестве генрируемого кода (не в плане красоты, конечно). А вообще - где изначальная тема-то? ![]() Добавлено через 6 минут и 34 секунды
Кстати, почему динамическое выделение памяти. Да ещё и без парента! ![]() Тебе достаточно. Другим нет. Как бы то ни было - Qt Designer тоже существует. Более того, для интеграции виджета (просто интеграции - безо всяких специальных проперти-эдиторов и пр.) в Qt надо писать плагин. .Net этого не требует. |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Опустим пример с autoScale. Возьмём произвольный контрол, которому не получается сразу задать размер без кода. Вы задаёте размер в дизайнере + корректируете размер в коде - как вы контролируете что получится в итоге - как будут себя вести соседние контролы? Если всё пучком и всё под контролем, то претензию снимаю. В общем, я не могу далее вести дискуссию об этом, ибо не хватает опыта в делании гуи под SWF, чтобы показать мои предположения на примере(или опровергнуть эти предположения). Будем считать, что я сдался ![]() Вы с маньяком и наговорили - мазохизм, все дела... Я, в принципе, не спорю, что это мазохизм для SWF. Аргумент был один, остальные относились немного к другому и, если ты вернёшься назад, то увидишь этот аргумент: вы с SWF занимаетесь pixel hunting'ом - попробуй доказать мне обратное. Скажем так, если тебе нужно создать диалог как я показал на примере выше и тебе без использования дизайнера придётся указать хотя бы одну координату или хотя бы один размер, то ты занимаешься pixel hunting'ом, и то, что ты проделываешь это при помощи указателя мыши в дизайнере, а не при помощи клавиатуры и калькулятора в блокноте - это не аргумент. Следствие же из отсутствия нужды заниматься pixel hunting'ом - возможность делать гуи без дизайнера вообще(и остальные рассуждения на этот счёт, про качество кода и т.п.). Ну да, клёво, а теперь вспомни, с чего пошло это ответвление спора... Вспомнил? Нет? Я говорил о том, что дизайнер вынуждает(или совращает - как угодно) писать менее качественный код. Началось то всё с того, что я сказал - вот в скрине вижу лейблы, а дальше... впрочем что было дальше - вернись назад и почитай ![]() -------------------- 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 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
archimed7592, мир, дружба, жвачка !
![]() nerezus, ну что решил что-нибудь по вопросу топика? ![]() -------------------- ![]() |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Пока пишу на питоне, потом посмотрим) |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Я не ярый противник дизайнера. Я это привожу лишь как пример недостатка пиксельхантинга... В прочем, если появится сделанный "по уму" дизайнер для Qt, то, возможно, я начну им пользоваться(изредка ![]() Добавлено через 1 минуту и 30 секунд ![]() -------------------- 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 |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
ну как... так же как и ты - прописываем, запускаем и смотрим что получилось В) насчёт соседних контролов - мне лично очень нравился табличный контейнер. суть то же что и в HTML таблица - нарисовал, спаны поставил, распихал по ней контролы. и в итоге ни один контрол другому мешать не будет. ну это как пример. к тому же у всякого контрола есть 1) якорь и 2) док. Якорь - это то, куда крепится контрол. То есть фактически если он где-то в углу, я ему скажу - держись за левый и верхний край парента. и при растяжении парента контрол останется на месте. если я поставлю якорь ещ и на правый край парента, то ширина контрола будет увеличиваться с растяжением парента и так далее. так а что сдался, не сдался В) всё просто - нужен тебе мега контрола, для которого необходимо конфигить много вещей через дизайнер (ситуация когда контрол на продажу, к примеру) - придётся помучаться. если делаешь для внутреннего пользования в фирме и там не требуют полной поддержки дизайнера - не делай. то есть фактически варианта два: 1) простой, ничего не пишушь для дизайнера. тогда контрол в дизайнере показывается, всё вроде пучком, но в пропертигриде ты увидишь только вещи, унаслдованные от UserControl. Ни строки кода для дизайнера. 2) тяжёлый. пишешь полную поддержку для дизайнера, чтобы можно было менять цвета сердечек, размеры звздочек, настраивать БД подключение или ещё что-то. Тут придётся постараться.
Ну да, имхо, это мазохизм В) Не не люблю я это дело. Но ведь есть в мире мазохисты ![]() Ну в общем в начале этого поста есть объяснение, но повторюсь. Делаю табличную раскладку, туда пихаю контролы. У таблицы если совсем обленится можно поставить авто размер для строк / рядов. Но я предпочитаю выставить размеры. Мне так нравится В) Или то что я поставлю 50% и 50% для столбцов это тоже пиксель хантинг? Если так, то да, я занимаюсь охотой на пиксели ![]() archimed7592, в общем, можно закрыть эту тему, думаю. Если тебе не нравится (по причине пиксель хантинга или ещё какой-то) делать что-то в дизайнере - делай в коде. Я рад что тебе это нравится. Однако мне удобнее делать это в дизайнере без (как мне кажется) пиксель хангинга. Я не говорю, что в дизайнере нельзя этой охотой заниматься, я говорю лишь, что никто не вынуждает тебя этим заниматься. Главное чтобы человек знал как без этой охоты можно обойтись. Надейюсь, что когда-нибудь создадут дизайнер, который тебе понравится и ты смело присоеденишься к нашему обществу горе-дизайнеров ![]() |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Предлагаю обсудить остальные 11(!!) пунктов )
|
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Ещё раз - языков для .Net много (те же Nemerle, F# ![]() Странное название пункта (для меня, по крайней мере). Можно точней? Ещё раз - это попытка сравнение или тебе сейчас реально что-то надо выбрать? Если второе - то для чего (конкретный проект, работа и пр.)? |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Я считаю его лучшей моей программой, но разгласить не могу. Подробностей качательно функционала разглашать не хочу. |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Определился.
Гуй - дотнет. БД - дотнет. Виндовый софт - дотнет. Скрипты и прочее, связанное с сетью - питон. ПХП юзаю для веба. Пока заменять на питон не охота. Но я сомневаюсь, что равномерно потяну 3 абсолютно разные технологии. Надо одну выкинуть. + J2ME в эту же свалку (( |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
nerezus,
Либо убьешь Питон (ПХП может нормально работать в скриптах). Либо перейдешь на Питон для Веба - не пробовал, не знаю ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
|
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
nerezus,
Не очевидно. Можешь несколько примеров таких? Можно в приват. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Fortop, да зачем в приват.
Что я юзал в своем последнем скрипте?
Если Класс работы с браузером можно через расширение написать, то threads в пхп впринципе невозможны. P.S. добивает еще такое в PHP:
s() - это массив, но мы не можем с него взять элемент. А почему? |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Kefir, у архимеда как бы то ни было, есть мега-довод - size policy. Он просто расставляет контейнеры и задаёт им иерархию, и всё. После чего рутовое окно выглядит при любом размере корректно - вложенные элементы сами определяют как позиционироваться, сколько отступов делать (по правилам!) и где эти отступы делать. Вот это меня, честно говоря, добило - нету такого в дотнете, ни в винформах ни в WPF
![]() А ещё, у них layout не тормозит при ресайзинге топового окна. Пример - Opera. ![]() Убийственная весч этот Qt ! ![]() -------------------- ![]() |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
так я и не говрю то QT плохая штука. Я лишь говорю, что винфрмы не так уж плохи как пожет показаться простому смертному с первого взгляда. Я ещё раньше писал, что не ставлю целью доказать, что винформы лучше QT (как я могу доказать то, во что сам не верю? ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Простому смертному ![]() Думаю, что ты так считаешь(что SWF не так плоха), ибо большинство существующих GUI-библиотек/фреймворков(VCL, MFC, OWL, WTL и много других) построены на подобной архитектуре. Те же якори - они были в VCL ещё тогда, когда я на Delphi программировал, т.е. очень давно ![]() Да? Жаль... А я уже было записал себе в TODO "ознакомится с WPF" - заинтриговали, блин ![]() Я конечно могу ошибаться, но она вроде как ещё на Qt-3 сделана... В Qt-4 всё ещё лучше и, главное, шустрее ![]() Это сообщение отредактировал(а) 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 |
|||
|
||||
Kefir |
|
||||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
Я как таковую статью не писал, а сделал парочку скринкастов, которые можно увидеть тут. Пока что небольшой застой, ибо делаю дипломную и разбираюсь с поступлением на магистратуру. В)
нуу, сколько лет весь интерфейс на осях выполняется в виде окон? это же не значит, что они такие плохие ![]()
мерседесы разные бывают. однако мысль ясна. вот только сначала мне показалось, что в твоих постах была речь о феррари и запорожце. я как раз и попытался запорожец довести хотя бы до мерса ![]() Вообще, мне кажется, что у нас просто разные понятия о том, как должен описываться интерфейс. К тому же, раз уж заговорили о WPF - тебе он должен понравится. Во-первых, можешь описывать весь гуй XAMLом и одновременно смотреть как он будет выглядеть. Это сообщение отредактировал(а) Kefir - 24.5.2008, 10:08 |
||||||
|
|||||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Пока не придумают чего-то лучшего ![]() ![]() Спасибо, посмотрю ![]() -------------------- 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 |
|||
|
||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
И зачем это в СКРИПТЕ? ![]()
1 вариант. Если я правильно помню, то такая вещь есть. Не пользовался, но читал пару месяцев назад. 2 вариант.
Хотя остается логичный вопрос - зачем? Добавлено через 5 минут и 26 секунд Так с exec() я несколько переборщил ![]() ![]() Добавлено через 9 минут и 50 секунд А потому что это не массив, а функция. ![]() -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
В WPF нет нормального лейоут-менеджера? ![]()
В VCL AFAIK они назывались алигнами. Но, конечно, это какие-то костыли - до нормальных лейоутов не тянет. |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
Так постойте... я вот сейчас глянул на эти лейоты в QT... что-то не понял я. Ну поставил грид. Определил его столбцы, строки, поставил минимальные или максимальные высоты ширины... у контролов то же самое. Я что-то так и не понял высоты QT в плане layout-ов. Объясните мне что они такого великого в себе несут? Разве грит не высчитывает лучший размер? Где я? на самом деле, а то у меня складывается такое впечатление, что я чего-то всё-таки просто не понимаю. Чем QGridLayout превосходит TableLayout из WF или Grid из WPF? А то я реально туплю.
|
|||
|
||||
nerezus |
|
||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Чтобы работало. Понимаешь ли, я очень люблю, когда мой код работает. Примеры подобных нелепых вопросов: "ты дышишь, ты же не водолаз, зачем тебе дышать".
Повезет еще, что у юзверя венда(хоть криво, но сработает подход). А если никс?
Если не веришь - сделай var_dump. ![]() Понимаешь, я стремлюсь не очернить 1 вещь и не предоставить одну, как универсальную. Я ищу истину. И тут нет места слепому фанатизму! Я спокойно признаю, что моя любимая вещь в чем-то уступает другой, если будут приведены доказательства, а не буду слепо ее защищать. P.S. И напоследок.
Чтобы лучше думалось, приведу пример скрипта: ![]() Да, эта IDE - это скрипт. |
||||||||||
|
|||||||||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
в wxWidgets layout-ы появились раньше чем в Qt
![]() но это конечно к теме отношения не имеет))
наверное он имел ввиду то, что в скрипте, код не выполняется паралельно, в питоне потоки - это на самом деле эмуляция многопоточности и одновременно ресурсы разными потоками там не используются... что-бы была реальная многопоточность - нужны не потоки а процессы ![]() но это, во первых, не проблема питона, в руби к примеру то-же самое во вторых так и задумывалось ![]() Это сообщение отредактировал(а) Lazin - 24.5.2008, 17:21 |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Lazin, естественно они не параллельны, но все равно потокобезопасности по дефолту нету, если не использовать средства платформы. Пример думаю не нужен.
Тем более потоки выполняются все же параллельно, если один из потоков исполняет байткод, а другой занят сишным модулем. |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Kefir, покажи мне диаолог, аналогичный тому, что я показывал чуть раньше, желательно в виде солюшина, чтобы было о чём говорить
![]() Я сейчас посмотрел - ну, как минимум, я не нашёл у ваших layout'ов stretch'ев(распорок). Если интересно, как будет выглядеть тот диалог, что я выкладывал в виде кода в дизайнере, то вот, сделал жалкую попытку воспользоваться дизайнером(я им толком пользоваться не умею): ![]() -------------------- 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 |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
в этом ты прав ![]() но, в питоне нельзя, к примеру испортить список или словарь, одновременным изменением из разных потоков, и много чего еще ![]() |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Исторически, система лейоутов ИМХО в AWT/Swing первей всего появилась. |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
archimed7592, угу, нет распорок. не пользавался, не знаю насколько удобно. но необходимости пока не чувствую... В)
в общем солюшын тут. |
|||
|
||||
Fortop |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Как бы тебе объяснить ![]() ![]() Вот исходя из этих посылок, мне сложно понять, зачем она должна быть многопоточной. Впрочем бог с ней - с золотой рыбкой ![]() ![]()
А то что ты привел - это вызов функции ![]() массив ты получишь так ![]()
И проблема у тебя с перегрузкой операторов, что поддерживают далеко не все языки ![]() -------------------- Мир это Я. Живее всех живых. |
||||||
|
|||||||
Kefir |
|
||||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
Fortop, ну ты не можешь отрицать, что
иногда так хочется, а нельзя В) мне на самом деле иногда так надоедает эту переменную заводить. особенно в мускул запросах. порой, где выборка одного поля или ещё чего
а хотелось бы от этого кретинизма избавиться:
гм. к примеру, в яваскрипте многозадачность это уже очень большая проблема. анимации друг другу постоянно мешают. меня откровенно говоря это не радует. В) вот тебе и надобность в многопоточности. |
||||||
|
|||||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
![]() Классный у вас лэйаут-менеджер ![]() (это тебе так, к сведению) И ещё пара тестов ваших лэйаутов на вшивость: 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 |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Kefir,
Используй ООП. Работай с моделями, а не с функциями и запросами. в крайнем случае
Это несоответствие инструмента стоящей задаче. Сейчас на JS переносятся функции для отрисовки интерфейса. И естественно что это несколько не та, задача для которой он проектировался. С новыми браузерами и спецификациями этот вопрос должен улучшится. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
![]() Добавлено через 1 минуту и 17 секунд
Что за спецификации такие позволят мне динамически генерировать контент на клиенте? -------------------- 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 |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
не понял вопроса :( где должна стоять запятая? Если она там должна быть. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Не должно быть ![]() Есть задача: генерить контент на клиенте. Есть решение: скрипт, генерящий этот контент(на JavaScript). Есть утверждение:
Есть вопрос: каким спецификациям должен начать соответсвовать браузер, чтобы задача начала решаться без 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 |
||||
|
|||||
Kefir |
|
||||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
да уж В) хорош гусь. а, кстати, как поступит QT?..
гм... ну что-то вроде этого (layout немного поменяется, поля буду класть в отдельную таблицу):
Итого создаём для каждого поля надпись и текстбокс и ставим их в таблицу. Ряды добавятся автоматом. Может быть не совсем тоные названия методов, ибо пишу по памяти.
Ыыы.... вот чего не помню - того не помню. Я последний раз винформами в прошлом июне занимался, так что не могу ответить, ибо не знаю В( а при чём тут это? Я тебе как пример привёл В) А какая разница в этом случае между массивом и обьектом? ну опять же, я привёл пример. сейчас анимациями посредством javascript пользуются очень многие, потому как очень удобно. когда ещё эти новые браузеры появятся В) мы живём настоящим. да и к тому же. да и не об этом речь. для этого он проектировался или нет - вопрос десятый. ведь он может выполнять анимации. и для того чтобы они были лучше, эффективнее, глаже и краше - очень неплохо было бы иметь многозадачность. то есть это потребность скриптового языка в многозадачности. она реально нужна. вот и всё. разве нет? |
||||||
|
|||||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Совсем без? ![]() ![]() И речь шла не о спецификациях браузера, а например о SilverLight ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
nerezus |
|
||||||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
А если вот так?
Портится не сама структура данных, а именно логическая связь
Разберись в терминологии? Вот тебе пример на языке, в котором нет перегрузки операторов.
Вывод ожидаемый.
P.S. по твоей терминологии то, что я называю скриптами, ты можешь считать "полноценными программами". Вот пхп для них явно не подходит.
Пока я слышал только обещания, что "оно будет", но так реально поддержки со стороны браузеров(за исключением 3х штук из всей кучи нет) |
||||||||||||||
|
|||||||||||||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
согласен, есть там мютексы, значит они нужны ![]() я всегда считал, что потоки в питоне используются для всякой ерунды, вроде gui-я... в общем что-бы пользователь не ждал завершения чего-то длительного, буду рад узнать о другом их применении ![]() |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Налезать друг на друга - точно не позволит ![]() |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
зы
хочу всем напомнить, что речь идет о 2х платформах, Python и .NET ![]() |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Lazin, дык мы типа это... PyQt защищаем. От ВинФормз
![]() ЗЫ А вот ПХП и яваскрипт - фтопку!!! |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
pps
многие люди не пишут gui приложения и им глубоко перпендикулярно наличие или отсутствие каких то гуевых фич ![]() |
|||
|
||||
Fortop |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Яйцо не курица, сколько var_dump() ты не делай. Держи, и проверяй.
У тебя есть другое название? Озвучь. оператор [] в PHP может применяться только к структурам данных, которые содержат массивы, но никак не к вызовам функций. И в моем примере, это прекрасно видно.
Пользуйся на здоровье ![]()
Ок ![]() ![]() Это сообщение отредактировал(а) Fortop - 24.5.2008, 22:53 -------------------- Мир это Я. Живее всех живых. |
||||||||||
|
|||||||||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
это-же ортогональные вещи, как их сравнивать? вот кстати интересная статья на тему ![]() Добавлено через 40 секунд приехали ![]() |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Это две гуёвые либы (одна для питона, другая для дотНета). Вроде сабж - Питон vs .Net ![]() |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
WF - это неотемлемая часть фреймверка, который называется .NET
Qt - сторонняя библиотека, которая имеет весьма слабое отношение к питону |
|||
|
||||
nerezus |
|
||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Чтобы не было гемора с асинхронными сокетами.
|
||||||||||
|
|||||||||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
||||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
хосспади, от привязались. смутно помню, что где-то была какая-то пимпочка а-ля авто прокрутка. я уж не помню точно. нет уж, это я винформс пытаюсь оградить от QTшников ![]() |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
В ВинФормз нормальных лейоут-менеджером нет. Всё делается в стиле VCL (ИМХО такой стиль родился там). В WPF - я думал (уж не знаю почему), что должны быть нормальные лейоуты. Не знаю - не смотрел. Привязываться никто не собирался - вопрос был твой (про поведение куте) ;) |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Потому что тебе были нужны полноценные приложения, а не скрипты ![]() Это у тебя оба вызова распечатали? ![]() Если нет, то твое ЧТД совсем не к месту ![]() А про перегрузку операторов все же рекомендую почитать ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
nerezus |
|
||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Вот:
А теперь ты может все-таки ответишь, чем эта IDE не полноценное приложение? скриншот IDE(среда разработки, если что): ![]()
Если ты не заметил, то в прошлом примере я тебе специально привел код на жабе, где перегрузка впринципе невозможна. |
||||||||||
|
|||||||||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Ты серьезно, не отличаешь результат от действия?
Начнем с того что echo это даже не фукнция, а языковой конструкт. Да бог с ним. Про типизацию в Java, которую ты тупо опустил, и которая и разрешает тебе заниматься извращениями только там, где можно.... Мы то же промолчим. Но неужели ты наивно полагаешь, что для того чтобы оператор мог быть применен к чему-либо, операнд не должен быть поддерживаемого им типа? И как еще называется сие таинство, когда один и тот же оператор позволяет совершать действия с разными типами данных? Нет, я конечно понимаю, что великий Python, просто не дает возможности задуматься о том, как это действительно происходит. Но все же. Может подумать? Массив не появляется из ниоткуда, он является результатом вызова функции. Сам результат функции у тебя не предопределен, в отличии от той же Java. Задача PHP быстрый старт, короткая работа и финиш. Именно то, что нужно для веб. Именно поэтому синтаксический анализатор в PHP упрощен - функция просто отдает результат, а оператор не перегружен и [] работает только с структурами данных. -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
nerezus |
|
||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
функция - это s. s() - уже результат.
Есть она в других языках, но нам пока мы обсуждаем пхп, на это должно быть монопенисуально.
Но массивы в пхп поддерживают []. Если ты не веришь, что s() имеет тип массива - сделай var_dump(s()). И именно к s()(что есть array) я применяю[]. Реально, сделай var_dump() и проверь.
|
||||||||
|
|||||||||
Fortop |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
nerezus, ты меня удивляешь :( очень неприятно удивляешь.
Нет, я конечно понимаю, что я не профессиональный программист, а так... побелить покрасить. Но я, во всяком случае, понимаю границы своих знаний. Но, ты ведь претендуешь на звание программиста. Будь добр - разбирайся в том с чем ты работаешь.
Свое определение "скрипта" я приводил несколькими страницами ранее. Ты уверен, что IDE это скрипт? Функции в PHP не типизированы. Ты этого не знал? Вместо вот этой... гм, как бы так помягче сказать.... О, придумал! Не лажи, а конструкции.
Поработай с вот такой
И сообщи какого она типа. Массив, целоцисленная или вообще объект. Да, теперь уже уверен. Объясняю на пальцах. s - функция, s() - операция вызова/обращения к функции. и лишь то, что она вернет - является результатом. Оператор [] в PHP не перегружен для работы напрямую с вызовами функций. Гм, ты уверен, что перегрузка, это только то, что делаешь лично ты? А разработчики языков не могли заранее перегрузить некоторые операторы? -------------------- Мир это Я. Живее всех живых. |
||||||
|
|||||||
nerezus |
|
||||||||||||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Что такое скрипт можно прочитать тут: http://en.wikipedia.org/wiki/Scripting_language
Вполне подходит под определение ;)
Поэтому [] должно было бы бросить ошибку когда тип не массив. А оно бросает всегда. Даже когда массив.
Ну да, все они говноязыки: C, C++, C#, Java, Python и десятки прочих. А PHP истинно правильный язык! Если что-то не работает, то это так и должно быть, а если это "что-то" работает везде - то тогда все остальные извращенцы. Ты это хочешь сказать? Вот тебе:
Добавлено через 3 минуты и 50 секунд В том же C типизация слабая. Как и в пхп. В том же питоне типизация динамическая. Как и в пхп. И они(как и другие языки с подобной типизацией) позволяют брать значение по индексу у массива всегда. |
||||||||||||||||||||
|
|||||||||||||||||||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
тут не лэйаут-менеджер, а Kefir виноват, что минимальные размеры окна не задал... А так с динамической компоновкой в .NET никаких проблем, особенно в WPF: Вот вам XAML разметка, создающее окно со столбиком из надписей, полей ввода и кнопок и двумя кнопками внизу. При уменьшении размеров окна появляется вертикальная полоса прокрутки и горизонтальный ресайз, вплоть до того момента пока размеры окна не достигнут минимально допустимых... Так что модель компоновки QT абсолютно ничем не лучше, более того MS её подчистую слизала с QT и внесла собственные дополнения и улучшения...
P.S. При желании всё то же самое можно сделать кодом, который будет концептуально похож на приводимые выше для QT - то же создание контейнеров, то же размещение элементов управления по ним... Однако наметилось разделение труда: интерфейс рисуют дизайнеры, а программисты пишут код и это правильно, ибо не гоже программистам такими мелочами себя отвлекать как рисование интерфейсов будь то кодом, будь то программой-дизайнером... Поэтому я лично в шоке, что вы тему выбора платформы для программиста свели к теме - где проще кнопочки по формам расставлять... P.P.S. По первоначальной теме: я лично не понимаю почему автору надо выбрать что-то одно? Надо программировать с использованием языка/платформы, а не под конкретный язык/платформу... Это сообщение отредактировал(а) source777 - 25.5.2008, 15:57 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
В пхп и питоне во время исполнения это проверяется. В сишарпе, жабе, C, C++ - на этапе компиляции. На примере C: там вообще [] - не оператор по сути, а средство для рассчета адреса. Но оно работает! Потому что по логике должно. Это начало 70х годов, естественно никаких терминов вроде перегрузки тогда не было. Теперь вопрос для пхп: Ты говоришь, что мы не знаем заранее, какого типа результат и поэтому не можем по нему сделать[]. Тогда почему работает код(мы ведь не знаем тип a, а вдруг оно не массив?):
Добавлено через 2 минуты и 14 секунд
|
||||||
|
|||||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
nerezus, какой смысл обсуждать PHP в данной теме? Этот язык изначально разрабатывался для создания домашних страничек и он не далеко ушёл от первоначальной цели: несогласованная библиотека функций, недоразвитое ООП, отсутствие нормальной работы с Unicode и многое другое - говорят сами за себя, да кто-то сейчас вспомнит про PHP6, этим людям стоит сравнить в таком случае PHP6 с Perl6 и Python3, хотя какой смысл сравнивать то чего ещё нет?
P.S. Python несомненно заслуживает внимания гораздо больше, чем PHP, но мне лично больше нравится Ruby... ![]() Добавлено через 1 минуту и 38 секунд
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Приоритет операторов: вызов функции имеет более высокий приоритет, чем получение элемента.
Поэтому сначала вызывается функция и ее результат будет учавствовать в выражении. После этого от полученного значения(которое массив) берется элемент. Вот причина, по которой этот код должен работать. |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
||||
|
||||
Fortop |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Потому что вертолет...
Сколько раз мне еще это повторить? ![]() А чем ты занимался? Ты пытаешься доказать, что функция и ее вызов это массив. Это не так. А у вызова () функции? Нет? Какая досада... Я знаю, все люди тупят, и я тоже бывает туплю. Но скажи мне, чем я могу тебе помочь? Чтобы ты понял, что static int[] s() Вот этим кодом ты разрешаешь использовать [] для вызовов этой функции. Ну есть в анализаторе Python обработка для извращенных случаев. Понимаешь ли. Если PHP, разрешает делать вот так
То это не значит, что это хорошо и правильно. Мда, ты явную типизацию от неявной отличить не можешь :( Добавлено через 5 минут и 32 секунды Это исключительно твое хочу.
Не совсем так про ушел ![]() ![]() Так что это не совсем язык даже ![]() -------------------- Мир это Я. Живее всех живых. |
||||||
|
|||||||
Любитель |
|
||||||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
![]()
Ну, скажем минимальные размеры кнопки зависят от её текста. Сайз-хинты определяют виджеты в куте сами для себя. Впрочем - хватит про гуй уже ![]()
No comments... А почему это извращённый случай?! Неужели тебе не кажется, что так писать естественно? Почему ПХП прав, а всех остальных - фтопку? |
||||||
|
|||||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Любитель,
PHP прав? ![]() В отличии от Java, C# - PHP это парсер текста стремительно выросший в язык. В процессе роста имеется большая куча мусора. Часто дублирование функциональности и многое не "так", как в том же C, Perl. Я всего лишь пытался объяснить человеку почему оператор [] не работает в PHP так, как ему хочется ![]() Добавлено @ 21:22 Потому что в отличии от языков с явной типизацией перегружать такие конструкции в языках с неявной - это создавать дополнительное поле для ошибок. Которое и так достаточно обширно. Я приводил пример с вызовом функции через переменную. Гибко - да. Но нужно ли? Едва ли... Это сообщение отредактировал(а) Fortop - 25.5.2008, 21:22 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Я до этого думал, что ты знаешь теорию, но просто меня не понимаешь, потому что ты упрямый. А оказалось, что и теории не знаешь. вот тут можно почитать: http://en.wikipedia.org/wiki/Type_system Типизация бывает weak или strong по критерию type strength. Типизация бывает static или dynamic по критерию type checking. Вобщем читай ссылку выше и просвещайся. PHP имеет weak dynamic типизацию. Это факт. ![]() Добавлено через 3 минуты и 42 секунды
Приоритет операторов: вызов функции имеет более высокий приоритет, чем получение элемента. Поэтому сначала вызывается функция и ее результат будет учавствовать в выражении. После этого от полученного значения(которое массив) берется элемент. От массива(результата функции). |
||||||
|
|||||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
казалось бы, причем здесь ПХП
![]() зы YouTube сделан на питоне ![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
nerezus, умиляешь
![]() Я рад за тебя
Чтобы ты понимал. Явная типизация - static. Неявная типизация - dynamic. Что такое "duck typing" объяснять не буду, поскольку ты наглядно продемонстрировал это ранее. Твоя проблема в том, что ты следуешь фразе - "если это выглядит как утка, ходит как утка, то мы назовем это уткой" Именно поэтому для тебя s() - это массив. Ты за деревом не видишь леса. Выводы сам сделаешь? Или как? Wikipedia, Facebook на PHP, MySpaces был на ColdFusion, но к чему это? ![]() Для того же PHP я видел реализации программ использующих GTK+. Но это бред. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
||||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
И таки да, я упрямый. Но ошибки признавать не боюсь. Добавлено через 2 минуты и 25 секунд Ты тоже считаешь что
Будут транслироваться в идентичный код? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 4 Всего: 87 |
Fortop, nerezus, вот вы тут пурги понагнали В) типизированный-нетипизированный. возвращает или нет. очень интересно смотреть как два человека, которые любят разную жвачку спорят о том какие красители использовались при изготовлении этих жвачек
![]() один говорит, что по логике хорошо бы дабы можно было s()[0] делать, а другой говорит - нет, в пхп такого нельзя! причём первый знает что в пхп этого нет, а второй не сможет отрицать, что от такой возможности пхп по крайней мере не ухудшится В) и всё равно в дело идёт всё - скрытый сарказм, маленькие издёвки, нравоучения и даже (о ужас!) ВИКИПЕДИЯ! молодые люди... вы куда забрались? |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Kefir,
Форум -> Разное -> Разные вопросы -> Религиозные войны Не мешай ;) ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
|
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
nerezus,
Расслабся ![]() Выше по топику, там где ты сравнивал типизацию C и PHP, мне лень искать ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Любитель |
|
||||||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Я считаю, что перегрузка тут не при чём. Даже не то, что считаю - это факт ![]()
работает, а вот это нет:
Логично? ИМХО нет. Добавлено через 1 минуту и 6 секунд
Там была два сравнения. С C - по поводу строгости, с питоном - по поводу динамичности. |
||||||
|
|||||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Это не аргумент ![]() ![]() Это тоже не аргумент ![]() ![]() ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Ммм? А мне кажется, что виновата WF в том, что не позаботилась об этом. Странная какая-то либа в которой приходится постоянно руками выставлять "док"(он что, сам выставляться не в состоянии?). Я понимаю, что всё это мелочи, но вот из этих мелочей и складывается мнение о библиотеке(по крайней мере моё). Pixel hunting идёт в массы ![]() Ладно, насчёт 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 |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Я привел пример, что в других языках это работает. Причем с такими же частными видами типизации. Посмотри примеры )
|
||||
|
|||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
По поводу PHP и s()[] - насколько мне помнится, в случае если вернут не массив то [] будет вести себя так: если это объект, возвращать поля объекта по индексу, если элементарная переменная, то [0] вернёт её же, а остальные индексы вернут null. Это типа пять копеек в копилку сего увлекательного холивара.
![]() -------------------- ![]() |
|||
|
||||
likehood |
|
|||
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: нет Всего: 24 |
Вот мои пять копеек в спор о перегрузке вызова функций в PHP. Сразу говорю, что в PHP не силен, но такой код, по идее, должен работать:
если этот код работает, по получается, что в php есть "перегрузка" операции + для вызовов функций (в терминах Fortopа). что тогда мешает "перегрузить" операцию []? Это сообщение отредактировал(а) likehood - 26.5.2008, 10:26 |
|||
|
||||
Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: нет Всего: 72 |
Обожаю читать религиозные войны!
![]() В теме Python vs .NET люди всерьёз обсуждают перезрузку операций в PHP. ![]() |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
||||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Во-первых, в этой разметке нет ни одного размера в пикселях(px), во-вторых ты отступы вообще не задаёшь что ли? с какого боку тут Pixel hunting? Width и Heigth можно убрать, их дизайнер просто по умолчанию втыкивает, чтобы на превью компоненты удобнее бросать было...
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 2 Всего: 162 |
||||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
если делать кодом, как любит archimed7592, то их не будет по умолчанию. А дизайнером без них пользоваться не получиться, ибо сложно Drag`n`Drop`ить контрол на форму нулевого размера, а именно такой размер у неё будет, если нет содержимого или размер не задан явно... впрочем не вижу в этом ничего страшного, когда все контролы расставлены можно и руками убрать при необходимости...
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Задай этот вопрос разработчикам ![]() ![]() Надо сказать отвратительно разбираешься в моих терминах ;) Но как это звучит - мне нравится ;) Так и вижу - афиша, и большими буквами "Приглашаем посетить авторский курс терминов Fortopa" ![]() ![]() ![]() ![]() ![]() Это тебе так хочется, чтобы так происходило ![]() ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Вот пример: f1()->f2()->f3()->f4()->f5() - по логике Fortop здесь перегружен у функции метод метода метода метода? )) |
||||
|
|||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Посмотрел я. Вряд ли упрощение анализатора, потому что поменять грамматику так, чтобы слева от '[' dim_offset ']' стоял нетерминал выражения, ничего не стоит. И вычислительную сложность разбора это не усложнит, по крайней мере измеримо. Возможно, упрощение интерпретатора. Но скорее всего, просто тяжкое наследие прошлого. Есть ещё один более-менее известный язык с таким ограничением — оригинальный Виртовский Паскаль. Только все нормальные реализации от него избавились давным давно. Так что можно считать авторов PHP последователями Вирта ![]() Ну и вот, значит, про перегрузку. Перегрузка операторов в общепринятом понимании этого словосочетания означает разное поведение операторов в зависимости от типа операндов. В PHP этот вопрос решается на уровне синтаксического анализатора, где никакими типами не пахнет. Называйте сию замечательную особенность языка как-нибудь по другому. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Оооо, я не рассматривал джаву, т.к. она не конкурировала с ними по Look-n-feel
Однако я упустил 2 вещи... SWT и Qt Jambi Теперь я снова в сомнениях ) |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Если тебя шарп не устраивает по языковам фишкам, то ява - ИМХО там всё слишком строго
![]() |
|||
|
||||
nginx |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 20.6.2009 Репутация: -4 Всего: -3 |
C# - не для этого был создан, да и не люблю функциональная, как каша смотрится Правда, если очень хочется можешь посмотреть в сторону F# llvm, а потом почему Моно не предлогать? У Питона бедновато с GUI , с визуальными стилями очень бедно и некрасиво, а начинать сидеть это очень долго и нудно, чтобы добиться того же эффекта, что в .NET можно получить за несколько минут (макс. 5 мин.), Поэтому лучше сразу общаться с Window X напрямую и на СИ, тем более ты сам говорил, что компилер СИ от Интела компилит более оптимизированные приложения, чем на ASM даже. А возни, чтобы добиться того же уровня качество твоего GUI-приложения будет столько же. А вот тут , я поспорю, ты забыл про PowerShell и тут он тоже может побороться с Питоном, тоже несколько строк для веб-сервера и многопоточного сканнера, юзает с лекгостью дотНЕТовские либы и полностью интрегерирован с дотНЕТом и твоими дотНЕТ приложениями. Ну , IronPython и начал свою историю, как студенческий, что с него взять? Точно так же, как IronRuby и Phalanger А про Сильверлайт , мы с тобой уже давно беседовали, и СЛ уже полностью догнал, и моментами обогнал Флэш по возможностям, тюкать СЛ можно только за распространнимость и кросс-платформенность только насегодня.
Потому что, нужно было набирать win32 c++
MonoTouch - for iPhone Mono + Erlang - for Sony Erickson Mono - для Андроида еще будет (если уже нет) Моно есть для PS3, Nintendo Wii , где нет Питона |
||||
|
|||||
nerezus |
|
||||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
|
||||||||||||
|
|||||||||||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Десктопный MSDN - УГ. В эпоху интернета на каждом шагу - ставить локально МСДН как-то даже стыдно... |
|||
|
||||
nginx |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 20.6.2009 Репутация: -4 Всего: -3 |
http://social.msdn.microsoft.com/search/en...y=win32+c%2b%3d Ну и в чем проблемы?
богаче в плане кучи небогатых либ, кроме qt?
Update the first message, because it's not just first, it looks like "news", you ought to update it!
На тот момент PowerShell уже существовал, и можно было точно так же с легкостью сделать в 4-е строчки! Это сообщение отредактировал(а) nginx - 7.2.2010, 23:53 |
||||||
|
|||||||
nerezus |
|
||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
|
||||||||
|
|||||||||
nginx |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 20.6.2009 Репутация: -4 Всего: -3 |
Да, я не понимаю, потому что это ошибка, искореняй ее! Да-а, а то твой первый месс, как приговор смотриться, глаза мои режет этот приговор.
"Кроме" - оно и значит, что кроме Qt нет серьезных либ. Попробуй мне создать интерференцию мех. волн в на основе своих либ, причем УСЛОВИЕ!!! Красота на уровне Compiz. Это сообщение отредактировал(а) nginx - 8.2.2010, 00:16 |
||||
|
|||||
nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
|
||||||
|
|||||||
nginx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 20.6.2009 Репутация: -4 Всего: -3 |
именно ошибка, юзать "десктопную версию справочника" - это натуральная ошибка собственно не мне учить "матчасть", да и ее тут и нет 15 минут, 10 баксов, хотя бы открыть Вики соотв. раздел ) ![]() Это сообщение отредактировал(а) nginx - 8.2.2010, 01:06 |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
|
||||
|
|||||
nginx |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 20.6.2009 Репутация: -4 Всего: -3 |
нет, перевертываешь мои слова Ты написал:
Что мне изучать? Как искать инфу по нативному программированию в msdn? Ссылку я тебе привел выше, и написал "в чем проблема"? Ты описал ту проблему, который нет И я очень сомневаюсь, что она присутвует в локальной помощи, которая берет ту же инфу с сервера, и только не берет инфу, когда и-нета нет, а посколько ты всегда в Нете, то и хорошо у тебя работает локальная справка, там такой же удобный поиск, в чем проблема? Не нада перевертывать мои слова |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
![]() Фильтры вверху. Особеннно на первый и пятый результат обрати внимание. По поводу использования онлайн-версии повсеместно, то не надо думать, что за МКАДом нет жизни ) Особенно пару лет назад. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Про пару лет назад - согласен. Было тяжёлое время ![]() 1. Тормозной ие-шный браузер (инициализация вкладки МСДН-а тормозит вечно также, как и в ие, поэтому думаю, что виноват он). 2. Отвратительный поиск. Мало того, что у меня онлайновый поиск отработает быстрее, так ещё и находит он ерунду какую-то. Реально пользоваться только "index" - если знаешь точно, что нужно. А если "как сделать ...." - то... Лично моё мнение. В мсдн хорошая сама документация (данные), но поиск и каталогизация - ужасны. Гуглом проще/лучше/удобнее. |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Но ты все еще не понял. За МКАДом с инетом проблемы и сейчас. Или ты наивно полагаешь, что студент с универского компа(иначе бы я и не трогал системное) может получить доступ к вебу?) |
|||
|
||||
nginx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 20.6.2009 Репутация: -4 Всего: -3 |
присваивание не является выражениям
я хочу сделать (Foo | = []). Append (42), а не Foo | = []; foo.append (42) и т.д. Вай нот ин Пайтон? |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
||||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Любитель, окей. У нас в городе 1.1млн человек в 3 самых крупных универах нет интернета для студентов. В остальных даже хз. Расстояние до Москвы ровно 1 тысяча км.
Это вы на расстоянии 500км от Москвы с жиру беситесь ![]() |
|||
|
||||
nginx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 20.6.2009 Репутация: -4 Всего: -3 |
||||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
|
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
nerezus, мы 4 года назад не знали слова "анлим"
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |