Здравствуйте, Сергей, Вы писали:
С>Qt уже переросла сосотояние просто GUI бибилотеки. Сейчас это скорее С>фреймворк для написания кроссплатформенных десктопных программ.
Да, но только если вы не хотите открывать исходный код своих программ под GPL вам придется выложить
немалые суммы (за весь фреймворк в Desktop edition):
One Platform — $3300
Two Platforms — $4950
Three Platforms — $6600
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, Андрей Хропов, Вы писали:
S>>>Это ни в коем случае не плохо, это также и не хорошо. Это просто другое мышление. АХ>>У многих из них прагматичное мышление. Они разрабатывают некий продукт, а потом к ним приходит клиент и говорит "Мы используем также и Линукс, хотим чтобы под ним тоже работало". Вот тогда им и понадобится Mono. S>Qt?
Что Qt? У них уже есть приложение под .NET, которое хотят портировать.
Да и Qt для коммерческого применения безумно дорог — от $4950 на 1 разработчика для 2 платформ (здесь).
А чтобы разрабатывать на Qt под Windows нормально придется все равно покупать Visual Studio.
S>>>Так вот, линуксоидам пользовать моно не с руки. АХ>>Отучаемся говорить за всех. Моно начал самый что ни на есть линуксоид, основатель проекта Gnome Мигель де Иказа. S>Значит, ему было нужно.
Как видишь проект Mono не умер, а вполне себе развивается. Правда не так хорошо как хотелось бы...
S>>> Есть более нативные средства, и их хватает вполне. АХ>>Да не очень то их хватает для нормальной компонентности. S>Чего именно не хватает?
Как интегрировать в рамках, например, твоего Qt компоненты на Python и на C++?
Без дополнительных усилий, просто взял и вызвал метод.
А динамически объекты создавать можно по имени?
типа как в .NET:
// LoadInvoke loads MyAssembly.dll and lists the method
// information for each method. After compiling this class,
// run LoadInvoke.exe with the DisplayName for the assembly,
// as shown here:
// LoadInvoke MyAssemblyusing System;
using System.Reflection;
using System.Security.Permissions;
public class LoadInvoke
{
[PermissionSetAttribute(SecurityAction.Demand, Name="FullTrust")]
public static void Main(string[] args)
{
Assembly a = Assembly.Load(args[0]);
Type[] mytypes = a.GetTypes();
BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public |
BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);
foreach(Type t in mytypes)
{
MethodInfo[] mi = t.GetMethods(flags);
Object obj = Activator.CreateInstance(t);foreach(MethodInfo m in mi)
{
// Instead of invoking the methods,
// it's safer to initially just list them.
Console.WriteLine(m);
}
}
}
}
А вообще как с рефлексией?
А с версионностью компонентов как?
S>о_0
Что такое o_0?
S>>> И объяснить почему моно слабо пойдет под линуухом, это практически тоже самое, что объяснить виндузовцам — что на серваке не должно быть графики, а только консоль. АХ>>На серваке должно быть то, чем удобно пользоваться. Лучше и то и другое. S>Мне удобно пользоваться mc... Админу нашему удобно пользоваться mc. А еще ssh, telnet... Этого хватает с головой, поверь.
Кому чего. Но я не админ, мне сложнее судить.
Но агитировать за технологии уровня 70-х годов...
АХ>>Но это уже давай в КСВ, а не здесь S>Модераторы, отделите ветку плиз...
да, они тут уже давно ничего не отделяют
Здравствуйте, Turtle.BAZON.Group, Вы писали:
TBG>>>На шарпе программить несколько приятнее, чем на яве. Хотя по сути — вырез в профиль. D>>Примеры приятностей можно?
TBG>Можно. Проперти.
ИМХО, ещё одна не очень нужная сущность. Писал на C# довольно давно, но насколько помню, для стороны, которая изменяет пропертю, в коде выглядит как обычное поле, что может сбить с толку. Также чем удобнее по сравнению с геттерами/сеттерами?
Здравствуйте, Donz, Вы писали:
TBG>>Не подобные. Другие просто. D>Под подобными я имел в виду возможность удобно манипулировать файлами/папками, удобное редактирование текстовых и бинарных файлов и исопльзование как FTP клиента
Ну тогда bash+vim+hexedit+ncftp. А под "удобными" вы какое понятие вкладываете?
Здравствуйте, Donz, Вы писали:
TBG>>Можно. Проперти. D>ИМХО, ещё одна не очень нужная сущность. Писал на C# довольно давно, но насколько помню, для стороны, которая изменяет пропертю, в коде выглядит как обычное поле, что может сбить с толку. Также чем удобнее по сравнению с геттерами/сеттерами?
Вам неудобно не значит, что и остальным неудобно. А удобнее тем, что нагляднее. А раз нагляднее, то и приятнее.
Здравствуйте, Turtle.BAZON.Group, Вы писали:
TBG>Здравствуйте, Андрей Хропов, Вы писали:
АХ>>У многих из них прагматичное мышление. Они разрабатывают некий продукт, а потом к ним приходит клиент и говорит "Мы используем также и Линукс, хотим чтобы под ним тоже работало". Вот тогда им и понадобится Mono.
TBG>И потом оказывается вдруг, что сказки то и нет и моно это не .net. Кто думает, тот сразу о совместимости и кроссплатформенности. Прагматичные люди понимают, что потом это выпивает, как правило, много крови и пота.
Ну ситуация с портированием улучшается потихоньку.
Вот выпустили Mono Migration Analyzer.
Здравствуйте, Turtle.BAZON.Group, Вы писали:
TBG>>>Не подобные. Другие просто. D>>Под подобными я имел в виду возможность удобно манипулировать файлами/папками, удобное редактирование текстовых и бинарных файлов и исопльзование как FTP клиента
TBG>Ну тогда bash+vim+hexedit+ncftp. А под "удобными" вы какое понятие вкладываете?
Как минимум, всё перечисленное в одном флаконе. Для меня удобный файловый менеджер должен быть с двумя синими панелями Far, например, для меня очень удобен. vim, например, надо довольно долго изучать, что не очень хочется делать, если надо делать простые замены символов и т.д.
Здравствуйте, Turtle.BAZON.Group, Вы писали:
D>>ИМХО, ещё одна не очень нужная сущность. Писал на C# довольно давно, но насколько помню, для стороны, которая изменяет пропертю, в коде выглядит как обычное поле, что может сбить с толку. Также чем удобнее по сравнению с геттерами/сеттерами?
TBG>Вам неудобно не значит, что и остальным неудобно. А удобнее тем, что нагляднее. А раз нагляднее, то и приятнее.
Чем "умное" поле нагляднее в коде, чем метод, если выглядит также, как и "неумное" поле?
Я, кстати, не говорил, что мне неудобно. Я сказал, что непонятно зачем вводить лишнюю сущность. Можете назвать принципиальное отличие свойств от геттеров/сеттеров?
Здравствуйте, Donz, Вы писали:
D>Здравствуйте, Turtle.BAZON.Group, Вы писали:
D>>>ИМХО, ещё одна не очень нужная сущность. Писал на C# довольно давно, но насколько помню, для стороны, которая изменяет пропертю, в коде выглядит как обычное поле, что может сбить с толку. Также чем удобнее по сравнению с геттерами/сеттерами?
TBG>>Вам неудобно не значит, что и остальным неудобно. А удобнее тем, что нагляднее. А раз нагляднее, то и приятнее.
D>Чем "умное" поле нагляднее в коде, чем метод, если выглядит также, как и "неумное" поле? D>Я, кстати, не говорил, что мне неудобно. Я сказал, что непонятно зачем вводить лишнюю сущность. Можете назвать принципиальное отличие свойств от геттеров/сеттеров?
Ну принципиально то, что они объединаются в одну сущность, а не 2 функции. Да, кстати — это синтаксический сахар, потом внутри MSIL они превращаются в обычные геттеры/сеттеры.
Здравствуйте, Donz, Вы писали:
TBG>>Ну тогда bash+vim+hexedit+ncftp. А под "удобными" вы какое понятие вкладываете? D>Как минимум, всё перечисленное в одном флаконе. Для меня удобный файловый менеджер должен быть с двумя синими панелями Far, например, для меня очень удобен. vim, например, надо довольно долго изучать, что не очень хочется делать, если надо делать простые замены символов и т.д.
Опять же — весьма субъективное понятие удобности. Мне, к примеру, нравится менеджер с тремя окнами. Слева большое — справа два пополам поделенные. Многие вещи МС удобнее делать с помощью консоли bash, но этого мне вам не объяснить. Посмотреть vim стоит 15 мин и вы уже будете готовы к базовым операциям и оно того стоит. Продвинутые могут и не понадобиться до конца жизни. В качестве гуя — Konqueror офигительная штука.
Здравствуйте, Donz, Вы писали:
D>Чем "умное" поле нагляднее в коде, чем метод, если выглядит также, как и "неумное" поле? D>Я, кстати, не говорил, что мне неудобно. Я сказал, что непонятно зачем вводить лишнюю сущность. Можете назвать принципиальное отличие свойств от геттеров/сеттеров?
Вам непонятно не значит, что и остальным непонятно. Принципиально отличие лишь с тем, что этим удобнее пользоваться. Потому что не надо писать кучу-кучу всего для получения и установки значения. Все проще и прозрачнее.
D>>Я, кстати, не говорил, что мне неудобно. Я сказал, что непонятно зачем вводить лишнюю сущность. Можете назвать принципиальное отличие свойств от геттеров/сеттеров?
TBG>Вам непонятно не значит, что и остальным непонятно. Принципиально отличие лишь с тем, что этим удобнее пользоваться. Потому что не надо писать кучу-кучу всего для получения и установки значения. Все проще и прозрачнее.
Опять? И так, приведи мне правила по которым ты создаёш либо свойство либо метод без параметров?
Здравствуйте, Turtle.BAZON.Group, Вы писали:
TBG>Здравствуйте, Donz, Вы писали:
D>>Чем "умное" поле нагляднее в коде, чем метод, если выглядит также, как и "неумное" поле? D>>Я, кстати, не говорил, что мне неудобно. Я сказал, что непонятно зачем вводить лишнюю сущность. Можете назвать принципиальное отличие свойств от геттеров/сеттеров?
TBG>Вам непонятно не значит, что и остальным непонятно.
А если Вам понятно, то это не значит, что всем остальным понятно
Здравствуйте, Andrei N.Sobchuck, Вы писали:
TBG>>Вам непонятно не значит, что и остальным непонятно. Принципиально отличие лишь с тем, что этим удобнее пользоваться. Потому что не надо писать кучу-кучу всего для получения и установки значения. Все проще и прозрачнее. ANS>Опять? И так, приведи мне правила по которым ты создаёш либо свойство либо метод без параметров?
Это вы к чему? Я к тому, что эти правила гармоничнее видятся. Всем понятно, что правила одни. Удобства в восприятии и использовании роль играют.
S>>Чего именно не хватает? АХ>Как интегрировать в рамках, например, твоего Qt компоненты на Python и на C++? АХ>Без дополнительных усилий, просто взял и вызвал метод.
Ну, напрямую не знаю. Есть PyQt + кутэшники серьезно озаботились интеграцией с другими языками. Например, забайндились к Java. Что будет дальше — посмотрим.
Почти оффтоп, почти СВ. Если бы в МС сделали MFC хоть наполовину похожую на Qt, на .NET бы сейчас никто бы не переезжал, имхо
Здравствуйте, Turtle.BAZON.Group, Вы писали:
ANS>>Опять? И так, приведи мне правила по которым ты создаёш либо свойство либо метод без параметров?
TBG>Это вы к чему? Я к тому, что эти правила гармоничнее видятся. Всем понятно, что правила одни. Удобства в восприятии и использовании роль играют.
К тому, что всем понятно, что правила одни. Не понятно только какие
Здравствуйте, Andrei N.Sobchuck, Вы писали:
TBG>>Это вы к чему? Я к тому, что эти правила гармоничнее видятся. Всем понятно, что правила одни. Удобства в восприятии и использовании роль играют. ANS>К тому, что всем понятно, что правила одни. Не понятно только какие
Дыкть! Вся наша жизнь сложная штука. А если серьезно, то в шарпе много таких вот мелких фичек, вроде бы и не нужных, но которые несколько жизнь облегчают.
Здравствуйте, Cyberax, Вы писали:
C>А вообще, все чего Линуксу не хватает — это замены FARа и VisualStudio для С++
Однако samba рулит
Сижу под WinXP, а разрабатываю под линухом... использую Far и VC++8
Правда компилировать приходится через ssh кстати может кто знает как научить студию компилять через ssh и зачитывать сообщения об ошибках?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Sheridan, Вы писали:
S>Понимаеш, эти все люди, которых ты описал — работают по виндовс, и мышление виндозовское, обдотнетченое, так сказать.
Очень смелое утверждение для человека который не понимает разницу между VB(не VB.NET) и .NET.
А что касается темы то виртуальная машина .NET действительно продумана много лучше чем JVM.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Андрей Хропов, Вы писали:
АХ>Ну принципиально то, что они объединаются в одну сущность, а не 2 функции. Да, кстати — это синтаксический сахар, потом внутри MSIL они превращаются в обычные геттеры/сеттеры.
Если не ошибаюсь, то можно задать только геттер или только сеттер для "умного" поля.
АХ>Ну и писать АХ>
Чую, что будет ответом от Turtle.BAZON.Group на этот пост (Вам не..., то это не значит, что остальным...) , но всё-таки. В первом случае совершенно неясно, идёт ли обычное "тупое" присваивание или же какие-то манипуляции с параметром. Во втором же случае всё понятно: вызываем метод, значит параметр теоретически может быть преобразован.
В общем, спор как таковой смысла не имеет, каждый, наверное, останавливается на своём уровне синтаксического сахара.