В отчете Evans Data Corporation отмечается, что Swing обошел WinForms по распространенности в качестве тулкита для разработки интерфейса пользователя, и в США его использовали в 2005 году 47% разработчиков.
На сегодняшний день гораздо больше программистов используют Java SE и Swing, чем WinForms и .NET
Ну по-крайне мере большая часть shareware и мелких коммерческих поделок пишется на VB и delphi/с++ builder (оба из них, между прочим, уже мертвы - новых версий выпущено не будет).. А все что для enterprise и кому важна кросс-платформенность - по-моему делают с веб-интерфейсом.
А вот не подскажите - насколько более геморойно писать на MFC по сравнению с C++ Builder? Тоже подумываю поделки-shareware под винду писать начать, знаю только (плохо) BCB и (нормально) gtk.. А Qt покупать неохота.
ЗЫ: dotnet учить смысла не вижу, потому что у потенциальных кастомеров (домохозяек из пиндостана) dotnet runtime скорее всего стоять не будет.
> Тоже подумываю поделки-shareware под винду писать начать, знаю только (плохо) BCB и (нормально) gtk.. А Qt покупать неохота.
а писать на mingw+gtk под Win - религия видимо не позволяет ? ;-)
или Ваши мысли в стиле "а не спеть ли мне песню.."
> а писать на mingw+gtk под Win - религия видимо не позволяет ? ;-) или Ваши мысли в стиле "а не спеть ли мне песню.."
Так библиотек нет для gtk под винды сторонних. Даже activex компонент в gtk приложение наверно фиг встроишь. А для MFC и VCL сторонних либ тучи, платных и бесплатных. Велосипеды изобретать - время жалко. Я лучше куплю за $30 VCL-контрол чем полгода тоже самое для gtk писать буду.
> под винду кутэ давно бесплатно. уже год наверно.
Вроде доступна бесплатно только версия которая с баннером (что мол, только для GPL програм). А без баннера надо где-то в инете искать. И не факт что под нее либ сторонних очень много.
> врать не буду, я очень редко shareware ставлю и обычно не задаюсь вопросом на чем они были написаны. но думаю что такие .net поделки не за горами
Согласен. Но в ближайшие год-два-три домохозяек с виндой в которой есть .NET наверно будет 10-20% от общего количества домохозяек. Примерно столько сколько их сейчас с Win9X.
vklyuchaet v sebya frameworks
Name Summary
animation Time-based real-time animations in Java
binding JGoodies Data Binding framework
forms JGoodies Forms layout system
looks JGoodies Windows l&f and Plastic l&f family
validation JGoodies Validation Framework
>Когда запускаю Poseidon - приходит мысль, а не сдох-ли он на старте..При запуске на celeron`е, вообще ухожу курить/пить кофе.
Полностью солидарен. На PIV-3+4Г RAM грузится о-о-о-чень долго. При таскание сплитера ( список диаграмм | редактор ) скорость отрисовки просто ужасна (даже с пустым редактором)! Работать с ним просто невозможно. Врядли есть что то лучше старой доброй Розы.
>Ну так уж работает виртуальная машина. За то дай ей памяти побольше, запусти с параметром server а не client и можно радоваться скорости. И никакой тормознутости гуи.
Видидте ли, любезный друк, сун не зря зделала client, а для того, чтобы - ну сами знаете:
1)Чтобы ускорить запуск приложения ( ибо поначалу работает интерпретатор, а наиболее часто выполняющиеся методы джитятся в процессе)
2) Чтобы кушал(а,о) поменьше рамы, т.к. оптимизатор, в режиме server исползует например агрессивный инлайнииг и раскрутку лупа, значительно увеличивая таким образом размер кода. (есть мнение, что в режиме server интерпретатор не используется вообще)
А есть мнение, что свинги используются преимущественно (если не исключительно) в клиентских приложениях.
Что касается памяти побольше, так Вы же знаете, что владение памятью, довольно обременительно - больше памяти - больше расходов. Возьмите хотябы TLB miss-ы, например в Оптероне, УльтраСпарке-3 (да и наверное во всех современных процессорах) размер TLB около 512 входов, т.е. при размере страницы 4К, задешево можно адресовать ~ 2M озу. Вы видели приложения на java, которым хватает столько? А ведь исследования показали, что для УльтраСпарке-3, для память-интенсивных приложений, 19% времени процессора уходит на разрешение TLB miss ... Я уж не говорю о memory fault-aх... ,неизбежно возникающих в массовом порядке при использование сборщика мусора.
>Вот хороший пример IntelliJ-Idea - там и темы можно переключать, поставил виндовую или gtk - даже и намека на трмознутость гуи нет.
Солидарен с Вами. Идея зделана качественно. Однако мне кажется, что за этим стоят спец. технологии, что нибудь типа пулинга объектов. Ну что то вроде подхода используемого в Javolution.
Убожество у тебя в штанах. У Tk идеальный look&feel. Сопляки, привычные к свистелкам-перделкам - нисколько не интересная группа пользователей, разрабатывать софт для детского сада никто не станет.
>Блин, это получается, что 47% новых программ должны иметь GUI на Java? Где ж они? Работаю аутсорсером на пиндосов - MFC до сих пор рулит.
Подтверждаю. Хотя медленный прогресс намечается. Если раньше, мы и серверные и клиетские части делали на С++, то теперь клиентов часто приходится делать на java+swing. Работаем в пиндосии. Имеем аутсорсовую контору в Росии.
>Видидте ли, любезный друк, сун не зря зделала client, а для того, чтобы - ну сами знаете
Ну а что ж делать. Приходится чем-то жертвовать, вот так всегда. Однако, мне кажется, что время java для десктопов только-только наступает, это уже не то, что было 3 года назад. Мощности компьютеров растут, памяти побольше... яву тоже доделывают. Может когда-нибудь наступят золотые времена :-)
> есть мнение, что в режиме server интерпретатор не используется вообще
Ложь.
А за то, как написан HotSpot, надо убивать. Одно только то, что client и server - это две разные, но на 90% совпадающие ветки кода, говорит об абсолютной невменяемости аффторов. Желаю им как можно скорее выпить йаду. А за то, как они написали GC (их GC - худший в мире, ни у кого такой тормозной погани больше нет), йад должен быть очень невкусным, чтоб пили они его без всякого удовольствия.
Переписывали давече приложение с явы на .НЕТ для немцев... Заодно поинтерисовались о том, как же линух там обитает. Дык нет его почти нигде. Во всяком случае в корпоративных решениях. Так что все крики о переходе мюнхена на линух бред какого-то сумасшедшего очередного красноглазика. =)
> К тому времени этот ублюдочный недоязычок сам по себе сдохнет.
Ну он не сдохнет никогда, скорее сдохнут ублюдочные недопрограммисты, которые либо не умеют програмить. Грамотные специалисты пишут на яве отличные приложения, не нравится ява - вижуал бейсик ваш друг :-)
Я яву рассматриваю в связке с hibernate, spring, struts, ... и так список можно продолжить далеко. Все это реализовано на яве и все это используется при разработке приложений, причем получается повольно элегантно. Вот тогда и становится ясно, что это за язык такой - java. Если понять саму филсофию J2EE, разобраться в необходимых фреймворках - вот только тогда можно понять насколько мощна ява.
P.S. Если я не понимаю джаз, то это еще не значит, что музыка фигня, я просто его не понимаю. Аналагично и с явой, линуксом и тд. Но это не повод анонимусам нести разный бред на словами самого последнего быдла.
"Элегантно" оно получается только с твоей безграмотной точки зрения, поскольку ты не видел ничего другого кроме Жабки. Hibernate - грязный хак на рефлексии во время исполнения, что есть лучшее свидетельство ограниченности и убожества семантики Жабки. По настоящему рефлексивный язык, у которого есть истинные макры и MOP, позволяет такие вещи, как Hibernate, реализовывать на порядке проще и эффективнее.
И не гони. Я все эти Hibernate и прочие Spring юзал гораздо больше, чем мне того бы хотелось. Я гораздо лучше тебя разбираюсь в Жабке. Так что будь поосторожнее с безаппеляционными заявами - грамотность свою надо уметь подтвердить.
>>Когда запускаю Poseidon - приходит мысль, а не сдох-ли он на старте..При запуске на celeron`е, вообще ухожу курить/пить кофе.
>Полностью солидарен. На PIV-3+4Г RAM грузится о-о-о-чень долго. При таскание сплитера ( список диаграмм | редактор ) скорость отрисовки просто ужасна (даже с пустым редактором)! Работать с ним просто невозможно.
Это ж как себя надо нелюбить, что бы использовать посейдон? ;-)
>Врядли есть что то лучше старой доброй Розы.
В розе жуткий offline reverse eneenering .
Together от Borland (на Swing + JGraph) - online code generation & reverse eneenering для c++/java/c#
Omondo UML от Omondo (на JFace/SWT + GEF) online code generation & reverse eneenering кажется только для java
Оба написаны на JAVA оба работают быстро и очень удобные.
PS Я предпочитаю Together (делают ребята из Питера)
Извините, благородные доны, что влезаю в ваш разговор.
>Hibernate - грязный хак на рефлексии во время исполнения, что есть лучшее свидетельство ограниченности и убожества семантики Жабки.
Плохой продукт с точки зрения архитектуры является свидетельством того что плох язык?!!
Какой же тогда убогий язык Ruby )))
Ты видел ORM в rails? ;-))
Теперь к hibernate - он и правда грязный, но удобный и бесплатный.
Не нравится hibernate - бери Toplink, он чистый и красивый но от Oracle и за деньги )
> По настоящему рефлексивный язык, у которого есть истинные макры и MOP, позволяет такие вещи, как Hibernate, реализовывать на порядке проще и эффективнее.
Примеры ORM для haskell в студию )
PS Что за приложения были написаны на этих чудо языках с истинными МОРами и волшебными макаронами, короткие замыкания(как же вы забыли их упоминуть?!!) добавить по вкусу ;-)
> Tk. По сравнению с Tk всякие там свинги - говно кривейшее.
Tk тоже не сахар. Не по выразительности средств, а по их наличию, верней отсутствию...
Говно, не говно, но в данном форуме единственно правилный GUI -- должен быть мотиф. Всё остальное ересь -- жечь на костре медленно и обязательно мучительно.
> MegаWidgets - Это Tkinter при чем тут Tk? Есть темезаторы Tk - пиши не хочу интерфейсы.
Linfan : а при чём тут tkinter ?? tkinter - просто мостик к tcl/tk..
возможно конечно, мы разные Megawidgets имеет в виду..я - те что tcllib.sourceforge.net (те которые BWidgets)
Лучший темизатор Tk : X-resources ;-)
*font Terminus 12
*Frame.relief ridge
...
Ой блин. Может набросать ссылок где бейсик хвалят и говорят, что это верх совершенства? Но все знают, что это не так. И только не нужно говорить про свой проффесионализм, оно и видно, что ты за профессионал. Иметь дело с явой не означает разбираться в ней. Может язык показался сложноватый? Недоучил...
Извините, благородные доны, что влезаю в ваш разговор.
>Hibernate - грязный хак на рефлексии во время исполнения, что есть лучшее свидетельство ограниченности и убожества семантики Жабки.
Плохой продукт с точки зрения архитектуры является свидетельством того что плох язык?!! Какой же тогда убогий язык Ruby ))) Ты видел ORM в rails? ;-))
Теперь к hibernate - он и правда грязный, но удобный и бесплатный. Не нравится hibernate - бери Toplink, он чистый и красивый но от Oracle и за деньги )
> По настоящему рефлексивный язык, у которого есть истинные макры и MOP, позволяет такие вещи, как Hibernate, реализовывать на порядке проще и эффективнее.
Примеры ORM для haskell в студию )
PS Что за приложения были написаны на этих чудо языках с истинными МОРами и волшебными макаронами, короткие замыкания(как же вы забыли их упоминуть?!!) добавить по вкусу ;-)
к MKuznetsov-у
> tclkit весит 2 Мб - весь дистрибутив tcl/tk с кучей полезностей вроде
> vfs; MegaWidgets - 200k
а поподробней можно?
на активстэйте tcl-tc 20Мег
интересует именно вин-реализация,
как там с интерфэйсами?
например к БД...
и насколько сложно прицеписься к железкам?
например к COM, LPT(через прокладки ессно)
> Не отдельно от Тк, но listview (или я не понимаю что такое listview??)
нет, все правильно. я тоже подобное писал по надобности на канвасе. но отдельности tk от tcl это мягко говоря не решает. да и по скорости такие решения..
самый правильный из этого зоопарка, имхо, tktable был. со всеми вытекающими проблемами.
> Мсье был подвергнут заморожке в 2000году? Не спорю, в 2000 году так и было, но сегодня все совсем не так, как вчера. Evans Data это отразила в очете. MFC & Delphi похоронены и испольуются кустарями-одиночками и студентами.
> Вы просто не в теме, я, например, на Perl'е (используя Tk) пишу программы, которые могут работать сразу и в linux'e и в win, и listview на cpan'e есть
да в теме я, в теме. только вот какого объема рантайм нужен твоим прожкам? не проще ли юзеру jre поставить? :-)
> А вот не подскажите - насколько более геморойно писать на MFC по сравнению с C++ Builder? Тоже подумываю поделки-shareware под винду писать начать, знаю только (плохо) BCB и (нормально) gtk.. А Qt покупать неохота.
дистрибутив ActiveState содержит много дополнительного - полезного при разработке, но не поставлемого в итоге конечному пользователю. Практически он содежит максимум всего, на все случаи жизни (несколько xml-парсеров, ftp/http/smtp/nntp клиенты и сервера и много чего другого).
Про БД : в tclkit входит Metakit - своеобразная БД, ко всем прочим можно найти обёртки у производителей БД и/или отдельные проекты. (в частности tclsqlite - часть дистрибутива sqlite)
Про железки - затруднюсь сказать как обстоит работа с COM/LPT портом под Win, но под *nix - элементарно( set fd [open "/dev/cua0"] fconfigure $fd -baudarate 19200 -encoding utf-8 )
в любом случае расширить язык, добавив новую команду - элементарно, новый тип потока - чуть сложнее..(для любой платформы (TEA-рулит))
>> да было бы оно таки отдельно от tcl > Зачем?!? Тулкит должен иметь свой язык! Это не просто библиотека!
вот тут я категорически не согласен. я люблю удобства. я люблю когда язык которым пользуюсь был богат, имел хороший синтаксис и хорошую, удобную мне семантику. и я не согласен подстраивать логику программы под потребности какого бы то ни было тулкита. так что -- язык отдельно, окошки -- отдельно.
и еще для Анатолия (про БД):
практически мечта MS ;-) http://wiki.tcl.tk/14799
""An SQL database backed VFS""
set fd [vfs::sqlite3::Mount test.db test]
file copy file.txt test/file.txt
>"Элегантно" оно получается только с твоей безграмотной точки зрения, поскольку ты не видел ничего другого кроме Жабки. Hibernate - грязный хак на рефлексии во время исполнения, что есть лучшее свидетельство ограниченности и убожества семантики Жабки. По настоящему рефлексивный язык, у которого есть истинные макры и MOP, позволяет такие вещи, как Hibernate, реализовывать на порядке проще и эффективнее.
>И не гони. Я все эти Hibernate и прочие Spring юзал гораздо больше, чем мне того бы хотелось. Я гораздо лучше тебя разбираюсь в Жабке. Так что будь поосторожнее с безаппеляционными заявами - грамотность свою надо уметь подтвердить.
Так, учиним пацанам порку.
Относительно "хака на на рефлексию"
Для генерации небходимого кода Хибернейт испольует библиотеку CGLIB. http://cglib.sourceforge.net/. Используя это библиотеку, Хибернейт ГЕНЕРИТ классы с необходимым кодом в момент своей загрузки.
Например, из класса Car надо взять Name и установать в параметры запроса.
Генерится код вида: <code> public class CarPropertiesSetter { ... public setName(Car entity, PreparedStatement stmt, int position) { stmt.setString(position, entity.getName()); } ... } </code>
Так что никакй рефлексии нет. Поздравляю вас, господин соврамши с большим опытом.
А такой функцимональности как в Хибернейте нет ни в одном ОРМ ни для одного языка.