На главную страницу AlgoNet В сотрудничестве с ZDNet
АРХИВ СТАТЕЙ 2006-4-24 на главную / новости от 2006-4-24
AlgoNet.ru
поиск

 

Место для Вашей рекламы!

 

Все новости от 24 апреля 2006 г.

Microsoft Visual Studio 2005 Express останется бесплатным

Чтобы лучше привлекать программистов к своему ПО, Microsoft решила сделать сокращенный набор инструментов разработки Visual Studio 2005 Express бесплатным бессрочно.

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

В среду софтверный гигант объявил также о нескольких соглашениях по предоставлению пользователям Express информационных ресурсов, включая фрагменты исходного кода. Например, совместно с Lego Microsoft разработала приложение для программирования сборных роботов Mindstorm. Программистам-любителям Microsoft предлагает рекомендации по таким вопросам как программирование цифровых камер.

«Возрождается движение любителей и самодеятельных разработчиков, — сказал главный продакт-менеджер Visual Studio Express Дэн Фернандес. — Мы хотим вырастить следующее поколение программистов». По оценкам Microsoft, в мире около 18 млн непрофессиональных программистов. Фернандес сообщил, что с ноября прошлого года Visual Studio 2005 Express был загружен 5 млн раз.

С усилением движения open source предложение бесплатного ПО, особенно инструментов разработки, стало обычным явлением. Компании, старающиеся привлечь профессиональных программистов, такие как Sun и Microsoft, стремятся вложить свое ПО в руки потенциальных заказчиков.

В среду же Microsoft добавила новые функции к своей бесплатной СУБД SQL Server 2005 Express.

Visual Studio 2005 Express предлагается в разных редакциях, в том числе для Visual Basic, C#, J#, C++ и веб-разработки с применением JavaScript. 

 Предыдущие публикации:
2006-04-10   Microsoft готовит встроенную базу данных
Обсуждение и комментарии
M&M's
24 Apr 2006 8:42 AM
У микрософта бесплатное ПО? Мабуть щось у лiсi здохло... Мабуть щось дуже велике... :-\
 

observer
24 Apr 2006 9:13 AM
Монополия может себе это позволить...
 

Zzz...
24 Apr 2006 10:51 AM
Имхо, правильно. Более проф. штуки, как всякие Тимстудии - это можно и за деньги. А для одиночки-домушника ( :) ) - самое то.
 

dr.a
24 Apr 2006 11:32 AM
Дело не в монополии. Просто таким образом они завлекают разработчиков на свою платформу dotNet 2. Visual Studio 2005 Express бесспорно вещь интересная, но стоит увидеть версию Pro, так сразу захочеться обладать ею =) Рассчет прост - сначала поиграються с Express, втянуться и захотят Pro али Standart.

p.s. Когда качал MSDN Express в прошлом году, то не обнаружил тама описаловки функций PlaySound (или что-то в этом роде), в то время как в MSDN к Pro-версии оно есть... Видимо MSDN в торопях обрезали =)
 

Сергей, который мимо пробегал
24 Apr 2006 2:46 PM
Неее, версия Про - это уже круть запредельная :) Для одиночки или даже маленькой группы - стандартная версия за глаза. А проф, да ещё за 700 баксов - ну это только для супер-пупер програмеров.
 

M&M's
24 Apr 2006 3:05 PM
Видимо, в стандартной версии можно только a+b складывать, а в версии про - окошки всплывать и функцией DrawFont пользоваться. Вот это супер, вот это пупер :-)))
 

M&M's
24 Apr 2006 3:09 PM
Помнится, в VS выпуска четырехлетней давности шрифты рисовались так медленно, как на доске в первом классе. Это была одна из причин, почему я засунул VS на самую пыльную полку...
 

Zhou
24 Apr 2006 4:34 PM
Что-т не заводится .NET. Если MS полагает что проблема только в отсутсвии бесплатного инструментария - думаю, они разочаруются. Учитывая что VS с Eclipse по удобству и стабильности и рядом не стоит...
 

bash
24 Apr 2006 8:05 PM
This information is obsolete!

Я на халяву эту студиу еще с беты 1 тим эдишн в июне (!) юзал. А то, что она бесплатная - не новость. А то, что експресс ничем не отличается от тим (кроме оффис надстроек, x64, Pocket PC и msdn) это тоже не новость.
 

00alex
24 Apr 2006 9:34 PM
Да чего вы на VS2005 гоните. Отличная среда!
(Последний эклипс не смотрел, но лет 5 назад, он мне сильно не понравился, VS тех времен - отлично порадовал)

Знатокам вопрос: Eclipse сейчас действительно руль? Или надо полгода мучаться чтобы под себя его настроить?
 

Tugarinov Sergey - tugarinovgmail.com
25 Apr 2006 2:37 AM
> Знатокам вопрос: Eclipse сейчас действительно руль? Или надо полгода мучаться чтобы под себя его настроить?

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

Настраивать практически ничего не нужно, предоставляемые по умолчанию настройки покрывают 99% нужд Java программиста.
 

Сергей, который мимо пробегал
25 Apr 2006 6:34 AM
Вот тут собака и порылась.
Еклипс в самом деле покрывает 99% потребностей Джава-программиста. А ВС покрывает 99% потребностей программистов, которые пишут для Виндовз не важно на каком языке. Так что сравнивать эти среды мягко говоря некорректно. Если с чисто практической точки зрения, отбросив идеологию, то на мой личный взгляд, ВС дюже лучше, чем Эклипс.
 

M&M's
25 Apr 2006 8:34 AM
> Так что сравнивать эти среды мягко говоря некорректно... на мой личный взгляд, ВС дюже лучше, чем Эклипс

аффтар жжош :-)))
 

злой
25 Apr 2006 9:05 AM
которые пишут для Виндовз не важно на каком языке.
--

Вау, круто. Так я на ней и на делфи и на пхп и на питоне могу сбацать. Круто. Виндузоиды жгут.

Вопрос. Если я пишу на Java, то зачем мне в IDE поддержка еще 20-и языков?
 

EA
25 Apr 2006 10:37 AM
Не знаю , Eclipse (я , правда, юзаю Rational , но тоже самое , только настроек больше и за деньги (немалые) ),конечно, круть , но почему отладчик включается в 10 раз медленнее , чем даже у JDeveloper , как перенастроить под свои кнопки не нашел - просто забил искать в хелпе , которого по большому счету (ну в сравнение с VS) нет , интегрированный Websphere - мало того что занимает 390 Mb , так , его апдейт занимает 1250Mb...

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

Поддержка прокси классов для Web-сервисов - очень мощная - классно смотрятся методы в которых все аргументы , например, типа UnknownClass - ты на это дело смотришь , вздыхаешь , исправляешь 1200 ошибок - не забудь перегрузить - а то заставит их еще раз исправлять ...

ну почему VS не умеет компилить и линковать в jar'ы :(... - я бы им денег дал за это....

 

vital
25 Apr 2006 12:40 PM
IntelliJ IDEA рулит :-) На самом деле очень жалею, что подобного нет для C++. VS + VisualAssist - это неплохо конечно, жаль вот только тормознуто, да и глючит нередко :-(
 

Zzz...
25 Apr 2006 1:11 PM
Eclipse это большой руль, и никакая студия ему в подметки не годится, возможностей море... 2 года назад как раз переходил с .net студии на Eclipse, счастливых визгов было море :)
---
Только вот такой мелкой штучки, как исключить некоторые каталоги из проекта - нет. Это была последняя капля в чашу двухнедельных мучений - после этого вернулся на IntelliJ и счастлив до сих пор
 

Yuri Abele
25 Apr 2006 1:23 PM
злой> Вопрос. Если я пишу на Java, то зачем мне в IDE поддержка
злой> еще 20-и языков?
Если ты пишешь на Java то тема этой статьи тебя вообще мало касается. Если только не сцелью "обосрать"
 

M&M's
25 Apr 2006 2:09 PM
А я мучался с DrawFont'ом в VS две недели, пока не психанул... Почему так медленно рисует? Матрица 10x40 полей рисовалась немногим менее секунды... В то время как любой грид отрисовывает моментально.
Вопрос к знатокам - это што ж такое, обязательно чтоли в API лезть из-за такой простой функции? :-((
 

M&M's
25 Apr 2006 2:11 PM
то есть любой грид отрисовывает свои шрифты моментально.
 

Tugarinov Sergey - tugarinovgmail.com
25 Apr 2006 2:33 PM
>Только вот такой мелкой штучки, как исключить некоторые каталоги из проекта - нет. Это была последняя капля в чашу двухнедельных мучений - после этого вернулся на IntelliJ и счастлив до сих пор

Есть, нужно внимательней смотреть...

>Вопрос. Если я пишу на Java, то зачем мне в IDE поддержка еще 20-и языков?
Так же можно построить вопрос, если ты работаешь в студии, скажем на шарпе, то зачем тебе в ней поддержка VBC, JS, HTML и т.д. :) Там то же самое, Eclipse это платформа, а не просто среда разработки.

>Так что сравнивать эти среды мягко говоря некорректно. Если с чисто практической точки зрения, отбросив идеологию, то на мой личный взгляд, ВС дюже лучше, чем Эклипс.
Eclipse с таким же успехом покрывает 99% возможностей, для программиста на C++ и т.д. Так что почему не корректно?

>А ВС покрывает 99% потребностей программистов, которые пишут для Виндовз не важно на каком языке.
В Эклипсе тоже можно писать на практически любом языке.

Вот только причем здесь "Windows программисты"? Java с таким же успехом работает как под виндой, так и под линухой и другими платформами, без изменения кода, главной соблюдать правила Pure Java.
 

Wintermute - devnul.ru
25 Apr 2006 3:40 PM
2 M&M's: "А я мучался с DrawFont'ом в VS две недели, пока не психанул"
DrawFont - это из какой оперы? А то я про такое не слышал, может, ты искал то, чего нет?
 

M&M's
25 Apr 2006 8:23 PM
2 Wintermute:
да я вже ж не помню, четыре года назад было. Может, не DrawFont, а DrawText. В ощем та функцийка, которая текст дравит. В Visual Basic .NET :-)))
 

Wintermute - devnul.ru
25 Apr 2006 9:29 PM
2 M&M's: Во-первых, в VB.Net нет "функцийк, которые текст дравят". То есть вообще нет. Как, впрочем, и в C#, JScript, J# у других языках. Во-вторых, есть метод System.Drawing.Graphics.DrawString, который рисует строку. Рисует _быстро_. Реально быстро. Чтобы не быть голословным, см. SHarpDevelop, компонент ICSharpCode.TextEditor, контрол, очень похожий на редактор от VS, полностью управляемый (managed), летает. Если 400 строк (10x40) у тебя рисуются за 1 секунду, значит, твой код кривой, а не DrawString медленная.
 

Zzz...
25 Apr 2006 10:17 PM
Есть, нужно внимательней смотреть...
---
Нету. Т.е. каталог с скомпилированными класс-файлами она сама исключает. А вот убрать каталог (результат ант-онизации) со всякими jsp и другими - не получается.
 

bash
26 Apr 2006 12:40 AM
>да я вже ж не помню, четыре года назад было. Может, не DrawFont, а >DrawText. В ощем та функцийка, которая текст дравит. В Visual >Basic .NET :-)))

Эх, зря вы так на VS наехали. .NET (framework 2) работает также быстро, как и pure C в юниксе. Сравнивать .NET с Java не корректно т.к. Java - большая виртуальная машина, а .NET - большая библиотека, но которая выполняет *СКОМПИЛИРОВАННЫЙ* код.

Если пишешь под винду, то VS .NET 2005 проcто незаменима с любой точки зрания. Наверное среди ВАС мало кто писал реальные БОЛЬШИЕ, заточенные под ексель, аксесс mssql и webforms проэкты.

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

Tugarinov Sergey - tugarinovgmail.com
26 Apr 2006 2:27 AM
>Эх, зря вы так на VS наехали. .NET (framework 2) работает также быстро, как и pure C в юниксе.
Конечно-конечно :) А посуду мыть он умеет?

>Под *никс другое дело, хотя яву не люблю из за очень низкой производительности. ПОсудите сами, что если апач, мускул и пхп были бы написаны на java, во-сколько раз они были бы тормознутей?
Простите, о какой низкой производительности идет речь, вы в каком году пробовали Java? Те же самые WinForms, Swing рвет как нефиг делать, и не только их.
TomCat работает очень достойно, и во многих тестах если мне не изменяет память рвет тот же Apache.
Java по многим показателям при работе в WEB, хотя и некорректно их сравнивать работает быстрее PHP.

>Нету. Т.е. каталог с скомпилированными класс-файлами она сама исключает. А вот убрать каталог (результат ант-онизации) со всякими jsp и другими - не получается.
Ясненько, просто неправильно вас понял.
 

Blind
26 Apr 2006 8:38 AM
Ну насчет .Net 2.0 бешает быстрее pure C в Юниксе - это явное преувеличение. C++ рулит даже в Windows. Managed C++ чуть медленнее. Просто на C# писать легче. А так, что Джава, что Шарп. Единственно, что я стараюсь применять C#/Managed C++ на Windows, а Java на Solaris. Очень легко интегрируются.
 

M&M's
26 Apr 2006 8:40 AM
2 Wintermute:
во-во, енти самые методы. Запамятовал, давно уже не юзал.
Тока не нада на мой код напраслину возводить, я для тестирования самый простейший код использовал, тока штоб рисовала матрицу. Нифига, тормозила нипадецки.
Может, в новых версиях VS оно и летает, не знаю, а тогда точно тормозило.
 

codeman
26 Apr 2006 9:04 AM
2 Blind
"C++ рулит даже в ***"

Каждому заданию свой язык. С/C++ - низко и быстро, С# - высоко и практично, Java - устаревшая технология.
 

Wintermute - devnul.ru
26 Apr 2006 9:20 AM
2 M&M's: "Тока не нада на мой код напраслину возводить, я для тестирования самый простейший код использовал, тока штоб рисовала матрицу. Нифига, тормозила нипадецки"
Я давно использую правило: "ОС безупречна, компилятор дает безошибочный код, библиотеки отлажены на 100%; если программа не работает или работает неправильно/медленно, это _моя_ ошибка". Знаешь, очень помогает, когда перестаешь стрелки на "того дядю" переводить и искать косяки у себя. В общем, см. мой предыдущий пост.
"Может, в новых версиях VS оно и летает, не знаю, а тогда точно тормозило"
FYI, я уже четыре года не использую VS, только SharpDevelop (AKA MonoDevelop). Привык. Так что скорость отрисовки текста от версии VS зависит слабо.
 

Wintermute - devnul.ru
26 Apr 2006 9:27 AM
2 Blind: "C++ чуть медленнее. Просто на C# писать легче"
Справедливости ради, я вот сейчас столкнулся с забавной ситуацией, случайно получилось, но... В общем, для отладки некоего кода написал грубый аналог виндузячьего listbox'а. На C#. По ошибке вбил 12000000 вместо 100000 и получил список в 12 миллионов строк (уникальных). Заполняется медленно, да, но в работе (прокрутка и т.п.) приемлемо. После простенькй (пол часа работы) оптимизации - быстро, хоть сейчас в production отдавай. Так вот, стандартный список, написанный на C, скомпилированный в оптимизированный машинный код не в состоянии переварить и 1 миллион строк, прога падает по OutOfMemoryException. Для моего контрола миллион строк - семечки. 100000 строк в стандартный вставляется минут 20, working set в 2 раза больше, чем если использовать мой, managed.
Сижу, чешу репу.
 

Black Bat
26 Apr 2006 10:11 AM
http://www.gotdotnet.ru/Forums/Common/305240.aspx
 

Yuri Abele
26 Apr 2006 11:02 AM
To Tugarinov Sergey:
> Те же самые WinForms, Swing рвет как нефиг делать
Мне всегда было интересно, откуда беруться такие категоричные утверждения. Можно посмотреть на пример сравнительного тестирования?
 

q
26 Apr 2006 1:28 PM
> Те же самые WinForms, Swing рвет как нефиг делать
Конечно Swing рвет, глаза пользователей.
 

Tugarinov Sergey - tugarinovgmail.com
26 Apr 2006 2:27 PM
>С/C++ - низко и быстро, С# - высоко и практично, Java - устаревшая технология.

Ага, C# - птица высокого полета... И каких это пор Java устаревшой технологией, с тех пор как дядя Билли об этом сказал? codeman вам это кто сказал, преподователь или сокурсник? По вашему что, в SUN и IBM м др. дураки сидят?

>Можно посмотреть на пример сравнительного тестирования?
Напишите два стандартных GUI приложения на шарпе и Java, безо всякой оптимизации, и посмотрите, на скорость прорисовки контролов. Никогда сознательно не искал такие тесты....

У нас есть два комерческих приложения одно на шарпе, другое на Java, первый после 2 лет использвания руководством было принято решение перенести весь документооборот на Linux, поэтому и была выбрана Java... Приложения совершенно идеентичны, во всем, в идее, функционале, GUI... Ну так вот, я отвлекся, приложения на Java работает приложения на шарпе.

>Конечно Swing рвет, глаза пользователей.
Навскидку.
http://javootoo.l2fprod.com/plaf/tinylaf/screenshot_tinylaf .gif
http://javootoo.l2fprod.com/plaf/jgoodies/bookfinder-0_9.pn g
Рвет? :)
Это называется Look and Feel, подключается 2 строчками, код не сложный, практически у все филов есть сорцы.

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

torvic
26 Apr 2006 3:16 PM
Swing же вроде не дёргает стандартные винконтролы, а сам всё рисует, как он может быть быстрее?
А то что винФормс кривоват, дык это не секрет, нормальными контролами надо пользоваться.
 

злой
26 Apr 2006 3:18 PM
2Yuri Abele
Если ты пишешь на Java то тема этой статьи тебя вообще мало касается. Если только не сцелью "обосрать"

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

злой
26 Apr 2006 3:20 PM
2 codeman
С/C++ - низко и быстро, С# - высоко и практично, Java - устаревшая технология.
--

это же каким надо быть малохольным, чтобы такое написать :)
 

Wintermute - devnul.ru
26 Apr 2006 5:33 PM
2 Yuri Abele: Утверждение, что Swing быстрее WinForms идет от старого "открытия", что DataGrid от MS работает заметно медленнее свингового грида, особенно на небольших объемах данных, накосячили они там сильно. Жабников в те времена колбасило от радости не по детски. С тех пор, когда идут разговоры внутри коммьюнити, жабники говорят, что да, свинг - тормоз, конечно, но надо использовать SWT и т.п. Но как только возникает спор, кто быстрее, .Net или жаба, сразу идет в бой аргумен - "а вот Swing рвет WinForms". Это при том, что есть гриды сторонних производителей, и вообще, WinForms - не единственная UI-библиотека для .Net.
Но вообще, положа руку на сердце, не люблю я WinForms.
 

M&M's
26 Apr 2006 7:48 PM
> Я давно использую правило: "ОС безупречна, компилятор дает безошибочный код, библиотеки отлажены на 100%; если программа не работает или работает неправильно/медленно, это _моя_ ошибка". Знаешь, очень помогает, когда перестаешь стрелки на "того дядю" переводить и искать косяки у себя. В общем, см. мой предыдущий пост.

Безмолвие, ты либо фанат, либо адепт. Как мона руководствоваться такими принципами? И ежу известно, что прорисовка графики в Студио сделана отвратительно.
Что касается моего ужасно неправильного кода, то это были простейшие два вложенных цикла с меняющимися номерами строк и столбцов, и внутри - простейший вызов метода отрисовки текста. Сорри, но тут я все-таки склонился к переводу стрелок на всемерно почитаемый тобой, великий и непревзойденный VS, потому как у меня код был идеально совершенен и прост, как колесо.

> FYI, я уже четыре года не использую VS, только SharpDevelop (AKA MonoDevelop).

Брателло, так о чем мы вообще с тобой разговариваем, если ты VS'ом не пользуешься? О культе компиляторов как центра вселенной? :-)))
 

torvic
26 Apr 2006 9:59 PM
M&M's - ты мой кумир!
пиши чаще
 

bash
27 Apr 2006 12:47 AM
2M&M's

Если подобные замуты на .NET 4 летней давности собираетесь впредь планировать - почитайте "Дональда Кнута".

Просто - не значит быстро. И это как минимум! Если Вы подобный огород городите, а потом обвиняете компилятор, что он "медленный".

Уж насколько апач хорошо проэктировали, но в какой-то из 1.х версий замутили касяк со слэшами. Сервер видя, что слэш не один удалял один слэш и продолжал сравнение. НО это - КАТАСТРОФФА для производительности. Если дезасемблировать этот вариант, то там будет цикл со вложенными 3 логическими переходами. А должна быть всего ОДНА групповая операция. Более того этот цикл до завершения должен выполниться на порядок больше раз.

Любой компилятор станет медленным в кривых руках. А если реально нужна производительность - берите дизасемблер и оптимизируйте на этом уровне. Хотя если код сам по себе кривой, какой там ассемблер...
 

sm4 - post314mail.ru
27 Apr 2006 3:54 AM
Господа вы отвлеклись от темы. Бесплатным обычно делают то, что за денньги уже никому не нужно или почти никому. Конечно это преподностится как жест доброй воли и запредельного гуманизма. По-пути убиваются ещё несколько "зайцев". Borland теперь можно выносить ногами вперед. А сильное настроение у многих уйти на Apple теперь поубавится.
 

злой
27 Apr 2006 9:15 AM
2sm4
Бесплатным обычно делают то, что за денньги уже никому не нужно
--
:)) сам то понял, что сказал?
 

злой
27 Apr 2006 9:18 AM
2bash
А если реально нужна производительность - берите дизасемблер и оптимизируйте на этом уровне
--
Мдяя, извращенцов на зднет хватает. Или это от большого ума?
 

Wintermute - devnul.ru
27 Apr 2006 9:29 AM
2 M&M's: "Безмолвие, ты либо фанат, либо адепт"
Ни то, ни другое. Просто я очень скептически отношусь, в частности, к высказываниям, противоречащим моему опыту. Например, я не верю в НЛО, потому, что один раз наблюдал нечто, объявленное уфологами "тарелкой". Не верю потому, что точно знаю, что это было.
"Как мона руководствоваться такими принципами?"
Этот принцип был изложен в одной очень старой книге по разработке программного обеспечения. Книжка было предназначена для студентов, которые очень любят переводить стрелки со своих косяков на ОС и пр.
"И ежу известно, что прорисовка графики в Студио сделана отвратительно"
Да, но я-то не еж!
"два вложенных цикла с меняющимися номерами строк и столбцов, и внутри - простейший вызов метода отрисовки текста"
См. ниже - нарисовать 400 строк для GDI+ - плевое дело. Ты, часом, шрифты с кистями не внутри цикла создавал/освобождал?
"почитаемый тобой, великий и непревзойденный VS, потому как у меня код был идеально совершенен и прост, как колесо"
FYI, VS не выполняет твою программу, ее выполняет процессор :) И VS не помогает твоей программе рисовать строки на экране, это за него делает графическая подсистема :)
"Брателло, так о чем мы вообще с тобой разговариваем, если ты VS'ом не пользуешься? О культе компиляторов как центра вселенной?"
Как о чем? Ты утверждаешь, что VS, написанный, кстати, на C++, "медленно дравит" (извини, точную цитату не вспомню). Я привожу пример программы, _целиком_ написанной на C#, целиком managed, сложность которой близка к сложности VS, которая DrawText использует до безобразия интенсивно, и которая не тормозит. Т. е. мой опыт, как пользователя и как программера говорит одно, а ты утверждаешь прямо противоположное. Я привожу пример, ты отвечаешь в стиле "как известно..." Мое чувство справедливости уязвлено.
 

Wintermute - devnul.ru
27 Apr 2006 9:37 AM
2 bash: "А если реально нужна производительность - берите дизасемблер и оптимизируйте на этом уровне. Хотя если код сам по себе кривой, какой там ассемблер."
А я вот здесь я лично соглашусь с M&M's. Высокоуровневый код должен быть простым. Этим автор помогает а) компилятору, современные оптимизирующие компиляторы творят чудеса, и б) самому себе - проще потом ручками оптимизировать то, что компилятору не по силам.
 

bash
27 Apr 2006 12:08 PM
2Wintermute

Тогда Вам сюда:
http://www.ozon.ru/context/detail/id/1335648/
http://www.ozon.ru/context/detail/id/90845/
http://www.ozon.ru/context/detail/id/2527036/
http://www.ozon.ru/context/detail/id/1418882/

2Wintermute А какая Ваша была цель, когда Вы заставляли "cтандартный список, написанный на C, скомпилированный в оптимизированный машинный код не в состоянии переварить и 1 миллион строк, прога падает по OutOfMemoryException."

Ваша цель была:
а)Вывести список как можно быстрее.
б)Вывести список с "плавной прокруткой" чтобы пользователь смог разобрать текст во время прокрутки.
в)Вывести список в форму заточнную под редактирование. Тоесть чтобы пользователь легко смог сориентироваться в списке и нужный элемент был ему доступен немедленно.
г)Затратить минимум памяти.
д)Сэкономить CPU.

Вы не поверите, но "кнопка ПУСК", как и все в винде открывается с задержкой, которую можно выставить в настройках. Зачем?

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

WinForms оптимизорованы под пользователя. Используется управляемая прокрутка (не конфликтующая с LCD CRT), задержка для концентрации внимания и сознания факта, что обьект изменен.

Если Ваша цель вывести список за кротчайшее время - то зачем всё выводить. можно вывести ТОЛЬКО 12000000'ую и несколько предыдущих строй в самом конце, когда модификация полностью завершена.

Если Ваша цель экономить память, то зачем сохранять все 12000000 позиций, можно разместить только 12000000'ую и несколько предыдущих.

Если Вы хотите произвести красивый и быстрый анимированный вывод - пользуйте DirectDraw.

Зачем пользовать функцию НЕ по назначению, а потом обвинять M$ в "медленном выводе на экран"
 

Zhou
27 Apr 2006 2:55 PM
> Swing же вроде не дёргает стандартные винконтролы, а сам всё рисует, как он может быть быстрее?

Вам двойка за теорию, садитесь.

> А сильное настроение у многих уйти на Apple теперь поубавится.

Я думаю, это драка .NET vs Java. Но пока под .NET не будет такого количества ровного бесплатного (желательно - опенсорсного) софта - у них будут проблемы.
 

sm4 - post314mail.ru
27 Apr 2006 4:43 PM
2 злой
А ты еше раз прочитай , на ночь , а утром поймешь.
 

codeman
28 Apr 2006 6:15 AM
2 Tugarinov Sergey
"И каких это пор Java устаревшой технологией, с тех пор как дядя Билли об этом сказал?"

Если для вас МС состоит только из "Билли", то лучше жевать чем говорить... CLI это инновация. Да МС - монополия, но это не значит что я буду в своей работе игнорировать инновации.

"codeman вам это кто сказал, преподователь или сокурсник?"

К вашему удивлению я не студент. Но на вашем месте я бы не слушал мнения преподавателей. Открою вам секрет: они могут ошибаться :)

"было принято решение перенести весь документооборот на Linux, поэтому и была выбрана Java..."

no comment, lol

"Никогда не понимал причину наездов шарп программистов на Java, хотя и сам в свое время перешел с него на Java."

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

codeman
28 Apr 2006 7:07 AM
2 Tugarinov Sergey
"По вашему что, в SUN и IBM м др. дураки сидят?"

Старое еще не значит плохо. Например если ваше "руководство" не может заставить вас работать по-новому.
 

злой
28 Apr 2006 9:25 AM
2sm4
А ты еше раз прочитай , на ночь , а утром поймешь.
--

Так и сделал. Вобщем я неправильно сначала понял твой пост.
 

Wintermute - devnul.ru
28 Apr 2006 9:35 AM
2 bash: Спасибо за ссылки. Классика :) Но я от своих слов не отказываюсь. После того, как Фаулера начитался :)
"А какая Ваша была цель, когда Вы заставляли..."
Вообще-то, я эту цель указал. Список - это (был) test bench для некоей библиотеки. "Удивительный" результат возник случайно (опечатка). Вот потом, потом да, я стал смотреть, где оптимизировать. И, о чудо, оптимизировать пришлось экран (~50 строк) текста, два метода переписать.
"Вы не поверите, но "кнопка ПУСК", как и все в винде открывается с задержкой, которую можно выставить в настройках. Зачем?"
Вообще-то, я в курсе. Потому, что время реакции человека довольно велико. Если машина реагирует мгновенно, его это раздражает.
"WinForms оптимизорованы под пользователя"
А вот это неверно. WinForms - костыль. Когда MS создавала .Net, им нужна была оконная оболочка в управляемом коде, которая бы позволяла писать UI a la VB, при этом бы сносно поддерживала ActiveX/OLE и прочие технологии (см. класс Control через Reflector, это ужас, летящий на крыльях ночи), вот они ее и склепали на коленке. Сейчас я очень сильно подозреваю, что к моменту создания WinForms MS уже активно работала над Avalon, но выдать ее вместе .Net 1.0 они не могли физически, т.к. Avalon огромен.
"Используется управляемая прокрутка (не конфликтующая с LCD CRT)"
Код listbox находится в user32.dll. Это стандартный виндовый контрол, со времен Win 1.0. BTW, мой список также не мерцает ни на CRT, ни на LCD, этого очень легко достигнуть.
"можно вывести ТОЛЬКО 12000000'ую и несколько предыдущих"
Собственно, это было с самого начала, на экран выводится ровно то, что видно.
"Если Ваша цель экономить память, то зачем сохранять все 12000000 позиций, можно разместить только 12000000'ую и несколько предыдущих"
И создавать строки по мере прокрутки? Это хорошая идея, выполнимо. Вот только логика модели сильно усложнится.
"Если Вы хотите произвести красивый и быстрый анимированный вывод - пользуйте DirectDraw"
Вот чего не умею, того не умею :(
"Зачем пользовать функцию НЕ по назначению, а потом обвинять M$ в "медленном выводе на экран""
Я никого не обвинял, заметьте. Меня просто удивил факт, что стандартный контрол, который заведомо хранит данные эффективнее (неуправляемый код, на Си), который вылизан до предела (25 лет отладки) не в состоянии "проглотить" миллион строк, а для кода на C# это оказалось, в общем то, пустяком.
BTW, не первый раз писал код прокрутки изображения в окне. То, что на C/WinAPI или C++/MFC требовало утомительной отладки, на C# заняло в разы меньше места и заработало с первого раза.
 

Волонтер
28 Apr 2006 2:42 PM
2 Wintermute:

"ОС безупречна, компилятор дает безошибочный код, библиотеки отлажены на 100%; если программа не работает или работает неправильно/медленно, это _моя_ ошибка"

В принципе правильно, но я бы дал на 100%, а где-то 99,99. Это для Windows 2000 SP4 IE 6.0. Для Windows 2000 IE5.0 около 99. :)
Один раз словил занятный глюк компилятора VS 6.0 SP4, на SP5 не проверял:
i = k * 2; // не работало
i = k << 1; // все ОК.
 

M&M's
28 Apr 2006 3:00 PM
2 Wintermute:
> FYI, VS не выполняет твою программу, ее выполняет процессор :) И VS не помогает твоей программе рисовать строки на экране, это за него делает графическая подсистема :)

Бля буду, Безмолвие, но ты не прав.
Че-то ты VS вообще вынес за пределы процесса, может тогда VS вообще не нужен? :-)))) Выполняет процессор, рисует графическая подсистема. Показывает монитор. И т.д. Демагогия, любезнейший.

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

Но и это еще не все. Ведь она, прога компиленая, выполняется уже не сама по себе, она активно тянет ресурсы из дот нет фрэймворка, под которым работает. В результате нагромождение функций и запутанных взаимосвязей приводит к тому, что прога тормозит как выпускник Кащенко.

И не код программера тому виной, а архитектура всей этой долбанутой системы.
 

M&M's
28 Apr 2006 3:02 PM
"ОС безупречна, компилятор дает безошибочный код, библиотеки отлажены на 100%; если программа не работает или работает неправильно/медленно, это _моя_ ошибка"

Wintermute, а как у вас с комплексом неполноценности, не жалуетесь ли? Могу посоветовать специалиста. Излечивает все программерские заморочки в течение месяца.
 

M&M's
28 Apr 2006 3:06 PM
2 bash:
> Просто - не значит быстро. И это как минимум! Если Вы подобный огород городите, а потом обвиняете компилятор, что он "медленный".

Вы, сударь, тупица, и этим все сказано. Даже не удосужились внимательно прочитать посты, а туда же.
 

Ender
28 Apr 2006 8:14 PM
2M&Ms: "Поэтому дождаться, пока стартует программа, написанная в VS - неплевое дело, можно три раза выспаться, пока она стартует со всеми библиотеками. Ну пусть старт медленный, это фигня. Если бы еще и рисовала быстро. Но гэдэи в VS - это полный писец, наворочено взаимосвязей столько, что сам компилятор ногу сломит."

У меня программы написанные на VS как на C++ так и на C# стартуют мгновенно. Рисуется все везде на ура? Что я сделал не так?
 

Ender
28 Apr 2006 8:14 PM
В "на ура?" вместо "?" следует читать ".".
 

AT
29 Apr 2006 12:42 AM
> 2M&M's

Как программу напишешь так она и будет стартовать. Никто тебе не мешает поменять опции компилятору С и получить в 2Кб (2048 байтов) прогу под Windows !
 

codeman
29 Apr 2006 3:58 AM
2 Wintermute
"не в состоянии "проглотить" миллион строк,"

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

"То, что на C/WinAPI или C++/MFC требовало утомительной отладки,"

Все то, что написано криво трубует утомительной отладки. Та же ситуация с C#.
 

Сергей, который мимо пробегал
29 Apr 2006 8:21 AM
Меня жутко развлекают "академические" высказывания господ, подобных codeman. Джава, по его словам де устарела. Скажите, друг мой радостный, чем же эта восхитительная технология Вам не угодила? Не тем ли, что пары строк на Джава написать мы не могём?

Я умиляюсь господину M&M'sу.
Шоб Вы знали, милок. Вижуал Студия не компилит код и не пихает туда тучу библиотек. Сие делает компилятор (ну или в случае НЭТ скорее транслятор). Видимо для Вас будет открытием тот факт, что после установки .NET framework на компьютере пользователя уже будет стоять три транслятора. Три штуки враз. Задарма, кстати :) А Студия только и делает, что помогает программисту сотворить туеву хучу строк кода, которые потом перелапатит один из приложенных трёх (ну или больше) трансляторов, которые потом будут выполнены процессором. Такое впечатление, что я на лекции по программированию в детском саду, блин. Для особо нервных хочу повторить уж в который раз. Программу для .NET framework можно (нужно ли - вопрос) написать полностью ручками НЕ ИМЕЯ Вижуал Студии. Так тогда какого лешего отсылки на тормоза контролов, которые к ВС отношения не имеют вовсе? Тогда уж давайте честно скажем, что .NET framework - полные тормоза и это её библиотеки грузятся долго и она тормозливо рисует и тормозливо же считает.
Хотя, почему я этого не замечал? Видимо сам я - тормоз? :)))
 

M&M's
29 Apr 2006 9:30 AM
Сергей, который мимо пробегал:
> Такое впечатление, что я на лекции по программированию в детском саду, блин

Да, есть такое впечатление. Может вам действительно воспитателем в детсад устроиться, милейший? У вас явные склонности :-)))
 

M&M's
29 Apr 2006 9:31 AM
Меня жутко развлекают "академические" высказывания господ, подобных Сергею, который пробегает мимо.
 

M&M's
29 Apr 2006 9:32 AM
Сергей, который мимо пробегал:
> Видимо сам я - тормоз? :)))
Вы встали на путь истины, уважаемый, с чем Вас и поздравляю :-))
 

M&M's
29 Apr 2006 9:38 AM
Ладно, шучу, шучу. Возможно, у меня какой-то кривой VS стоял, потому и тормозил. А то я уже даже как-то стал сомневаться - кто знает, может оно на самом деле иногда работает? Тут столько уверенных господ, даже неловко как-то.
 

Tugarinov Sergey - tugarinovgmail.com
29 Apr 2006 12:56 PM
2 ALL
Заколебали передергивать, бесполезный спор, если человек чего то не понимает, его не переубедить...

2 codeman
>>"И каких это пор Java устаревшой технологией, с тех пор как дядя Билли об этом сказал?"
>Если для вас МС состоит только из "Билли", то лучше жевать чем говорить... CLI это инновация. Да МС - монополия, но это не значит что я буду в своей работе игнорировать инновации.

Вы считаете что если это инновация, значит нужно на нее бросаться и кричать что это круто, и рвет все и вся.... И все остальнве технологии, отстой.

"codeman вам это кто сказал, преподователь или сокурсник?"
>К вашему удивлению я не студент. Но на вашем месте я бы не слушал мнения преподавателей. Открою вам секрет: они могут ошибаться :)

Опа... У меня открылысь глаза.

>>"было принято решение перенести весь документооборот на Linux, поэтому и была выбрана Java..."
>no comment, lol

Объясните мне плиз, в чем я не прав?

>>"Никогда не понимал причину наездов шарп программистов на Java, хотя и сам в свое время перешел с него на Java."
>Но в некоторых тяжелых случаях полезно обратиться к преподавателю за помощью, если непонятно :)

А это здесь причем?

Кстати, вы хоть раз в жизни видели Java в работе?
 

bash
29 Apr 2006 4:26 PM
2M&M's
>Вы, сударь, тупица, и этим все сказано. Даже не удосужились внимательно прочитать посты, а туда же.

Аргумент в студию, иначе сам - тупица.

>И не код программера тому виной, а архитектура всей этой долбанутой системы.

Если "Возможно, у меня какой-то кривой VS стоял, потому и тормозил.", тогда уж сударь не в этой долбанной системе дело.

>Но гэдэи в VS - это полный писец, наворочено взаимосвязей столько, что сам компилятор ногу сломит.

Не нравится GDI? Юзай DirectX, WinAPI.
 

Сергей, который мимо пробегал
30 Apr 2006 6:03 AM
Коллеги! Я вот подумал, читая форум. Самая оживлённая дискуссия разгарается после того, как кто-то кого-то обзывает или посылает подальше. Я вот подумал.. А не обозвать ли всех участников форума тупицами в порядке разжигания энтузиазма в производительном обмене мнениями! Благо, останусь безнаказанным. И славу заработаю :)))
Ладно, шучу.
 

codeman
30 Apr 2006 7:29 AM
2 Tugarinov Sergey
"Вы считаете что если это инновация"

Считаю.

"Объясните мне плиз, в чем я не прав?"

Как я могу объяснить то, чего вы не признаете(инновации)?

"А это здесь причем?"

Это я все еще про инновации :)

"Кстати, вы хоть раз в жизни видели Java в работе?"

Да, у меня Eclipse на RHEL, C/C++ plug-in. Жутко тормозит.
 

codeman
30 Apr 2006 8:24 AM
2
"Скажите, друг мой радостный, чем же эта восхитительная технология Вам не угодила?"

Если для вас это как религия(или что еще хуже - идол какой-то), то можете и дальше восхищаться. Я не против.

"Не тем ли, что пары строк на Джава написать мы не могём?"

А я все время задаю себе этот вопрос, что же это такое - быть крутым LOL? Так оказывается вот же оно ::LOL::

"Такое впечатление, что я на лекции по программированию в детском саду, блин. "

А что, дать вам горшок? :)

"Так тогда какого лешего отсылки на тормоза контролов, которые к ВС отношения не имеют вовсе? "

Ответьте на простой вопрос: какой компонент генерирует код в функции InitializeComponent()?(компилятор - неправильный ответ :) )

".NET framework - полные тормоза "

Если программер - тормоз, то и код у него тормознутый.

"Видимо сам я - тормоз?"

Видимо.
 

№;%
30 Apr 2006 9:15 AM
2M&M's
>Помнится, в VS выпуска четырехлетней давности шрифты рисовались так медленно, как на доске в первом классе.

А руки править не пробовал? Все им TProgrammer подавай... :-D
 

M&M's
30 Apr 2006 10:44 PM
2 bash:

> Аргумент в студию, иначе сам - тупица.
Ваш аргумент сначала, поскольку именно Вы написали о каком-то "огороде", не имея представления о том, что это было и как оно было написано.
Аргумент! Иначе - сам тупица :-)

> Если "Возможно, у меня какой-то кривой VS стоял, потому и тормозил.", тогда уж сударь не в этой долбанной системе дело.

А в чем тогда дело? Что есть VS, как не часть этой долбаной системы?

> Не нравится GDI? Юзай DirectX, WinAPI.

Мдааа, сударь, продвижение VS на рынке я б на вас не повесил...
 

M&M's
1 May 2006 12:51 PM
2 bash:
> Это и есть кривой код. Точнее отсутствие "НЕОБХОДИМОГО" кода. Вам сюда http://msdn.microsoft.com/library/

Хоть убейте, туда не пойду :-) Я уже с этим занятием давненько завязал. Бег с препятствиями, расставленными компанией Microsoft - занятие совершенно неблагодарное, и того не стоящее чтобы им заниматься.
 

M&M's
1 May 2006 12:54 PM
Фактически, если для компилятора код, состоящий из простейших конструкций, является кривым, то это кривой компилятор. Независимо от того, во что там верит Wintermute ;-))
 

Олег
1 May 2006 4:46 PM
M&M's Тебе уже вроде русским языком объяснили что VS не причем.
Берешь любой коммерческий компонент с исходниками (Infraganistics,ComponentOne, DevExpress) и смотришь как нужно писать чтобы было побыстрей чем у тебя.
А что касается темы статьи то основная проблема Express (http://msdn.microsoft.com/vstudio/products/compare/) на мой взгляд это отсутствие поддержки Source Control (что в прочем решается сториними pluginами)
 

M&M's
1 May 2006 6:32 PM
2 Олег:
какой-то ты грубый, брателло. Наверное, только тем и занимаешься, что раскапываешь компоненты с исходниками... Бедняга.
 

codeman
2 May 2006 2:53 AM
2 M&M's
"Наверное, только тем и занимаешься, что раскапываешь компоненты с исходниками..."

Если ни у кого не возникает проблем с прорисовкой, кроме вас, то вам стоит обратить внимание на проекты с открытым кодом. Если дебаг не помогает, то лучший способ - выпрямить руки или посмотреть как у других. А если MSDN перечитать лень, то есть еще способ: бросить этим заниматься вообще и идти пасти коров(свиней).

"Фактически, если для компилятора код, состоящий из простейших конструкций, является кривым"

Иногда кривые руки при помощи всего нескольких своих кривых строк способны выбить из колеи даже самого матерого компилятора.
 

M&M's
2 May 2006 1:58 PM
2 codeman:
да нет у меня никаких проблем с прорисовкой! Н-е-т! Были четыре года назад, но это были и не проблемы вовсе... И не у меня, а у компилятора :-)))
 

M&M's
2 May 2006 2:00 PM
2 codeman:
> А если MSDN перечитать лень, то есть еще способ: бросить этим заниматься вообще и идти пасти коров(свиней).

Вот это интересно. А что вы еще знаете, кроме этих двух профессий?
 

Wintermute - devnul.ru
2 May 2006 2:56 PM
2 M&M's: "Фактически компилит и создает исполняемый код - именно VS"
Так, брателло, с этим вопросом тебе уже все за меня растолковали, пока я отдыхал. BTW, будет время свободное, погугли по словам MSBuild, NAnt, csc. Узнаешь много нового о .Net.
"а как у вас с комплексом неполноценности, не жалуетесь ли? Могу посоветовать специалиста. Излечивает все программерские заморочки в течение месяца"
Комплекс есть, неполноценности нет. Но и мегаломании, как у... не буду показывать пальцем... тоже нет. А стрелки на ось/компилер переводить меня отучили еще в институте.
 

Wintermute - devnul.ru
2 May 2006 3:02 PM
2 codeman: "Я только не понимаю зачем этому вашему контролу держать в памяти столько строк"
Да нафиг этот миллион нужен. Первоначально я дизайнил для _десятков_ строк. И был весьма удивлен, когда опечатался, а оно, тем не менее, заработло.
"Не лучше ли подгружать частями? Неудивительно, что у вас с ним проблемы"
С моим контролом у меня вообще проблем нет, проблемы есть с родным виндовым контролом. Мой код в два счета преобразовывается в MVC или virtual listbox, там буквально пару строчек надо менять.
Я проверил, на голом API, на моей машине, lisbox дохнет где-то на полумиллионе строк, т.е. это не глюк .Net, а родовая травма самого listbox'а.
И я в курсе, что MS не предполагала, что кто-то будет такой фигней, с миллионами строк, страдать. Мне просто интересно стало :)
 

bash
2 May 2006 5:08 PM
2Wintermute
>Я проверил, на голом API, на моей машине, lisbox дохнет где-то на полумиллионе строк, т.е. это не глюк .Net, а родовая травма самого listbox'а.
И я в курсе, что MS не предполагала, что кто-то будет такой фигней, с миллионами строк, страдать. Мне просто интересно стало :)

Проблема в том, что вся графика в винде - растровая, а отрисовкой/хранением занимается CPU/RAM, а не GPU/VRAM. Тоесть CPU страдает фигней (отрисовкой) вместо того, чтоб выполнять только код приложения, драгоценная RAM расходуется на хранение растровых "картинок", всевозможных обьектов, вместо того, чтоб хранить только данные. Винда хранит ОЧЕНЬ много лишнего ИМЕННО для "убыстрения" графики. На это уходит много памяти.

Если представить миллион символов - это уже мегабайт (!), который висит в драгоценной RAM. Если представить миллион строк, то это уже десятки метров и все это в памяти + расход на хранение графики! Неудивительно, что винда ошибки выдает, скорее всего есть какое-то ограничение на кол-во памяти занятое конкретным обьектом.

M$ всетке пытается подстроить свой софт под реальные условия использования, а не под "критические".
 

Сергей, который мимо пробегал
2 May 2006 6:52 PM
Для Codeman не удержусь и встряну в беседу.
Код, который среда Вижуал студия помещает в метод класса под названием InitializeComponent() (прошу обратить внимание, не в функцию, а в метод класса), не имеет никакого отношения к тормозам. Вы можете и теоретически и практически написать этот метод собственными ручками, и затем компильнуть его бесплатным средством под названием csc.exe с соответствующим набором ключей. Кстати, аналогичный код будет сгенерирован и Делфай и другим средством визуальной разработки. И ни Делфай ни другое средство разработки к генерации машинных кодов иметь отношение не будет.
Спасибо за горшок. Садитесь.
 

codeman
3 May 2006 3:08 AM
2 M&M's
"но это были и не проблемы вовсе... И не у меня, а у компилятора :-)))"

Нечего на зеркало пинять коли рожа крива.

"Вот это интересно. "

Я так и погнял, что вам понравится моя идея. Но увы, к сожалению, я не могу ничем помочь :)
 

codeman
3 May 2006 3:15 AM
2 Wintermute
"С моим контролом у меня вообще проблем нет"
"Мне просто интересно стало :)"

Главное чтобы этот обработчик не достался пользователям. У вас может и нет проблем, у юзеров они обязательно будут.
 

codeman
3 May 2006 3:24 AM
2 bash
Ускорение 2D в виндоуз есть через GDI+. Это заметно если отключить драйвер видео ускорителя.
 

codeman
3 May 2006 4:08 AM
2 Сергей, который мимо пробегал
"Спасибо за горшок"
"не удержусь и встряну в беседу."

Пожалуйста.
Но какого черта вам вставать с удобного мета?

"прошу обратить внимание, не в функцию, а в метод класса"

Успехов вам в изучении ООП.

"не имеет никакого отношения к тормозам"

Имеет. По крайней мере с моим VC++2003 с использованием MC++.

"Вы можете и теоретически и практически написать этот метод собственными ручками,"

Так вот мне и приходилось исправлять кривой код генератора.

"Делфай"

Delphi читается как "Дельфи"

"и затем компильнуть его бесплатным средством под названием csc.exe с соответствующим набором ключей. "

Чтобы использовать .NET Framework бесплатно(а csc.exe входит в его состав) необходимо обладать легальной копией операционной системы МС.
А чтобы действительно бесплатно скомпилировать вы можете использовать mcs.exe/gmcs.exe из Mono.

"И ни Делфай ни другое средство разработки к генерации машинных кодов иметь отношение не будет."

Возможно, на стадии обучения с примером hello world! это действительно так. Я с этим не спорю.
 

codeman
3 May 2006 4:43 AM
2 Wintermute
"Я проверил, на голом API, на моей машине, lisbox дохнет где-то на полумиллионе строк, т.е. это не глюк .Net, а родовая травма самого listbox'а."

Как по-вашему, ограниченное количество ресурса памяти/процессора на ПК - это что родовая травма listbox'а? Так это оказывается он во всем виноват! Главное же, чтобы не вы :)))
 

Wintermute - devnul.ru
3 May 2006 9:43 AM
2 bash: "Проблема в том, что вся графика в винде - растровая, а отрисовкой/хранением занимается CPU/RAM, а не GPU/VRAM"
Это справедлтво где-то до 96-97 года, потом началось повальное использование ускорителей. Да у меня году в 93 году была карточка "цирроз логики" с аппаратной поддержкой курсора мыши :) Это была крутизна неописеумая :)
GDI+ по умолчанию пользуется DirectX 7.0, представь отрисовку PathGradientBrush через геометрическое преобразование и цветовую матрицу без ускорителя - мухи сдохнут.
"Если представить миллион символов - это уже мегабайт (!)"
Ага .Net хранит UTF-16, так что 2 мегабайта.
"то это уже десятки метров и все это в памяти"
Вчера загнал для теста 5 миллионов, памяти отожрало пол-гига.
"Неудивительно, что винда ошибки выдает"
Вот как раз удивительно, что виндовый контрол не может, а мой - может. Я уже говорил, listbox эксплуатируется и отлаживается 25 лет.
 

Wintermute - devnul.ru
3 May 2006 9:45 AM
2 codeman: "Главное чтобы этот обработчик не достался пользователям"
Вот теперь точно достанется :) Я статью для Code Project пишу ;)
"У вас может и нет проблем, у юзеров они обязательно будут"
На то и программер, чтоб юзер не дремал!
 

Wintermute - devnul.ru
3 May 2006 9:52 AM
2 codeman: "Как по-вашему, ограниченное количество ресурса памяти/процессора на ПК - это что родовая травма listbox'а? Так это оказывается он во всем виноват! Главное же, чтобы не вы :)))"
Т.е. у листбокса ресурсов меньше, чем у моего контрола??? У листбокса ограничений на память и процессор больше, чем у моего контрола, выполняемого в рамках того же процеса??? Не смешите мои тапочки! Листбокс написан на Си, мой контрол - на C#. Код Си компилируется непосредственно в бинарный, непосредственно управляет памятью и обращается к WinAPI напрямую, мой код - в IL, обращается к WinAPI через толстый слой interop и проверки безопасности. И я, получается, виноват в том, что мой контрол работает в условиях, когда заведомо более эффективный контрол от MS - нет!
 

M&M's
3 May 2006 4:12 PM
> Я проверил, на голом API, на моей машине, lisbox дохнет где-то на полумиллионе строк, т.е. это не глюк .Net, а родовая травма самого listbox'а.

глубокоуважаемый Wintermute, похоже, сам себе противоречит. Гнать волну на листбоксы - разве этому вас в институте учили? :-))
Или компилятор ВСЕГДА прав, а листбокс - не всегда? :-))
 

Wintermute - devnul.ru
3 May 2006 4:20 PM
2 M&M's: "глубокоуважаемый Wintermute, похоже, сам себе противоречит. Гнать волну на листбоксы - разве этому вас в институте учили? :-))
Или компилятор ВСЕГДА прав, а листбокс - не всегда? :-))"
Блин, зануда! Я же сказал, что факт того, что управляемый код оказался эффективнее нативного _в_ _этом_ _конкретном_ _случае_ сильно озадачил меня самого. Я честно не понимаю, в чем загвоздка.
 

M&M's
3 May 2006 4:21 PM
Вообще меня нативные контролы в .NET просто поражали... Такое впечатление, что их не тестировали и не модернизировали все те 25 лет, о которых говорил Wintermute. Во-всяком случае, они очень недалеко ушли от всех предыдущих версий VS. Фактически, остались теми же.
Что тут говорить, если программер захочет качественный функциональный контрол, то приходится писать самому. Это удлиняет сроки разработки вдвое, хотя, с другой стороны, дает возможность попонтоваться на ZDNet.ru. Кому что важнее :-))
 

M&M's
3 May 2006 4:23 PM
> Я же сказал, что факт того, что управляемый код оказался эффективнее нативного _в_ _этом_ _конкретном_ _случае_ сильно озадачил меня самого. Я честно не понимаю, в чем загвоздка.

Признай наконец, что контролы в дотнете - отстой, и я тебя отпущу :-)))
 

Сергей, который мимо пробегал
3 May 2006 5:52 PM
Дорогой мой codeman!
Да, спасибо за пожелание успехов в изучении ООП.

>> Delphi читается как "Дельфи"
Вероятно, аноглоговорящие сотрудники Борланд понятия не имеют, как произносится название их продукта. Да уж, куда им до Вас :)
 

codeman
4 May 2006 2:36 AM
2 Сергей, который мимо пробегал
"Да, спасибо за пожелание"

Да хватит уже "спасиб". Мимо пробигать да каждому спасибо, не запыхайтесь...

"Вероятно, аноглоговорящие сотрудники Борланд понятия не имеют, как произносится название их продукта."

Вероятно. А Borland я бы прочел как "Борленд".

"Да уж, куда им до Вас :)"

А мне они пофиг.
 

codeman
4 May 2006 2:46 AM
2 Wintermute
"Т.е. у листбокса ресурсов меньше, чем у моего контрола???"

Я имел ввиду, что ресурсы памяти, например, которые может выделить ОС для пользовательского процесса ограничены. И поэтому нецелесообразно использовать их все для вывода миллионов строк на экран. Их влюбом случае не хватит.
 

codeman
4 May 2006 2:59 AM
2 Wintermute
"оказался эффективнее нативного _в_ _этом_ _конкретном_ _случае_ сильно озадачил меня самого. Я честно не понимаю, в чем загвоздка."

В реализации, конечно. Все зависит от алгоритма. Во многих случаях оптимизированный IL код работает быстрее(!) native кода. И этому простое объяснение: реализация JIT компилирует код однажды. Так что overhead есть только вначале.
 

codeman
4 May 2006 3:12 AM
2 M&M's
"контролы в дотнете - отстой"

Для таких как вы МС и отдает VS2005 Express беслатно. Чтобы не кричали "отстой".

"и я тебя отпущу :-)))"

Смотри чтобы он тебя не отпустил в отстойник.
 

M&M's
4 May 2006 8:52 AM
2 codeman:
товарисч, а что-нить поконструктивнее в студию? Какашками кидаться все орангутанги умеют :-))
 

Wintermute - devnul.ru
4 May 2006 10:39 AM
2 codeman: "Во многих случаях оптимизированный IL код работает быстрее(!) native кода"
Этого не может быть, причем по определению. Хотя бы потому, что для нативного кода доступны такие вещи, как глобальная оптимизация и т.п. А код высокоуровневых .Net-языков транслируется в весьма ограниченный по своим фичам IL, который ближе к макроассемблеру, чем к Си, и глобальная оптимизация при JIT не производится, так как очень сложно определить, выполнится ли "соседний метод" во время конкретного прогона программы, или нет. И ngen, кстати, я не запускал, очень не люблю эту фишку.
"И этому простое объяснение: реализация JIT компилирует код однажды. Так что overhead есть только вначале"
А нативный бинарник _вообще_ _не_ _компилируется_.
 

Wintermute - devnul.ru
4 May 2006 10:45 AM
2 M&M's: "Вообще меня нативные контролы в .NET просто поражали"
FYI, в WinForms, которые поставляются в файле dontetfx.exe, нативных контролов .Net почти нет (пожалуй, Panel, CheckedListBox да UserControl), есть "обертки" вокруг виндузячьих нативных контролов.
"Во-всяком случае, они очень недалеко ушли от всех предыдущих версий VS"
Говорить так - это примерно тоже самое, что утвреждать, что IDEA гораздо лучший компилятор, чем Eclipse (к примеру). Ни .Net, ни Java - это не Smalltalk, где язык, библиотеки и IDE связаны неразрывно.
 

M&M's
4 May 2006 1:05 PM
2 Wintermute:
понесло. Скажи прямо, что нативный контролы в дотнете - пережиток прошлого, в новые версии не вставляются, а используются контролы сторонних разработчиков.
Причем за качество контролов в этом случае МС не отвечает.
 

Wintermute - devnul.ru
4 May 2006 2:36 PM
2 M&M's: Сам-то понял, что сказал? MS поставляет только свое.
Впрочем с тем, что WinForms - пережиток прошлого, я согласен. Поэтому с нетерпением жду распространения WPF. Вот там - раздолье.
 

xacid
4 May 2006 4:36 PM
"Поэтому с нетерпением жду...."
до боли знакомое явление характерное для зависимых от мс
 

M&M's
4 May 2006 6:14 PM
2 Wintermute:
Да неужели МС поставляет только свое? А я-то думал! Тогда совсем непонятно, почему "свой" нативный листбокс глючит нипадецки с большими массивами, не говоря уже о дебильном юзабилити и прочем.
Тем более непонятно, откуда в списке поставляемых в комплекте активэксов куча посторонних имен производителей. Видимо, МС свое специально выдает за чужое... Или еще как, непонятно...
 

M&M's
4 May 2006 6:17 PM
2 xacid:
ты понимаешь, МС для них - уже почти религия, они лоб расшибут за любимого бога, не говоря уж о том, что майкрософтовские продукты вообще-не-подвергаются-никакому-сомнению.
Это то ли зомбирование, то ли что еще - непонятно, но на ум почему-то сразу приходит последний скандал с арестом Грабового... Практически тот же случай.
 

cnstr
4 May 2006 11:14 PM
2Wintermute:

По-моему, совершенно ничего удивительного в том, что Ваш listbox работает лучше, чем listbox Microsoft нет. Скорее всего Вы далеко не первый, кто это обнаружил (и написал свой компонент :-) ).

Основа кода Microsoft listbox написана чёрт знает когда и наверняка с тех пор не менялась. Просто потому, что обычно больше 10-20 строк туда не загоняется, а уж миллион и подавно.

И мне кажется, что в Microsoft в данном случае (как и во многих других) использовали правило: "работае - не трогай". Ведь за улучшение алгоритма listbox никто не заплатит.

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

codeman
5 May 2006 2:33 AM
2 xacid
"до боли знакомое явление характерное для зависимых от мс"

CLI - это движение к стандартизации, а значит и к независимости(от SUN, например).
 

codeman
5 May 2006 2:59 AM
2 Wintermute
"Этого не может быть, причем по определению"

Может. Нет никакого такого определения, что IL код транслированный в машинный будет работать медленнее. Даже наооборот - хорошо спроектированный JIT компилятор сделает работу быстрее.

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

Насолько я знаю, все это(и многое другое) умеет JIT из .NET Framework.
 

codeman
5 May 2006 3:09 AM
2 Wintermute
"А нативный бинарник _вообще_ _не_ _компилируется_."

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

Чем вам не нравится NGen? Насколько я знаю, .NET Framework 2.0.x.x уже на стадии инсталляции при помощи этой утилиты генерирует родные образы часто используемых assemblies.
 

codeman
5 May 2006 3:37 AM
По поводу native контролов в .NET Framework.
Поскольку эта система поставляется исключительно для ОС от МС, то им нет никакого смысла переписывать их заново, а достаточно(и практично) хорошо завернуть. Никаких нареканий у меня к родным классам окон нет.
Для сравнения в Mono контролы выполнены исключительно на вызовах System.Drawing*, что есть обложка libgdiplus. Это дает портируемость, чего МС не требуется.
 

Wintermute - devnul.ru
5 May 2006 9:16 AM
2 M&M's: "откуда в списке поставляемых в комплекте активэксов куча посторонних имен производителей"
Назови один. Который идет в поставке .Net Framework SDK и не от MS.
 

Wintermute - devnul.ru
5 May 2006 9:24 AM
2 cnstr: "Ведь за улучшение алгоритма listbox никто не заплатит"
Платят покупатели, платят разработчики.
"выводе на экран метафайл Windows можно было преобразовать, а именно отразить и растянуть, а вот при выводе на принтер - нет"
Хе-хе, с этим я встречался :) Это недоделка драйвера принтера, не реализованы трансформы. Как-то так выходит, что трансформами пользуются единичные программы, люди предпочитают координаты пересчитывать сами, поэтому для большинства это даже не глюк. А я ленивый, поэтому воспользовался разок, и напоролся сразу.
 

Wintermute - devnul.ru
5 May 2006 9:25 AM
2 codeman: "Я не знаю о каких глобальных оптимизациях говорите вы"
Обычно под глобальной оптимизацией подразумевают режим работы компилятора, когда он оперирует не на уровне функций тлт даже областей видимости, а на уровне модулей или всей программы целиком.
 

Wintermute - devnul.ru
5 May 2006 9:29 AM
2 codeman: "Чем вам не нравится NGen? Насколько я знаю, .NET Framework 2.0.x.x уже на стадии инсталляции при помощи этой утилиты генерирует родные образы часто используемых assemblies"
Во-первых, предкомпиляция ряда сборок производится при установке любой версии .Net. mscorlib предкомпилируется всегда.
Во-вторых, предкомпилированные сборки автоматически становятся domain neutral со всеми вытекающими. А я часто использую домены приложений.
В третих, по идее, предкомпилированые сборки должны быть подписаны и установлены в GAC. А это, если не ошибаюсь, значит FullTrust, что меня тоже не устраивает.
 

xacid
5 May 2006 12:13 PM
M&M's> это то я как раз хорошо понимаю)) о том и речь

codeman> политика сан меня абсолютно не напрягает... чего к сожалению не могу сказать о мс :(
по поводу оптимизаций в дотенете - жаба это всё тоже умеет
 

M&M's
5 May 2006 12:52 PM
2 Wintermute:
> Назови один. Который идет в поставке .Net Framework SDK и не от MS.

Вот прямо такие условия. Не назову. Я вообще-то говорил про VS, как систему разработки, с активэксами в комплекте.
 

bash
5 May 2006 2:09 PM
2Wintermute "Этого не может быть, причем по определению. Хотя бы потому, что для нативного кода доступны такие вещи, как глобальная оптимизация и т.п"

Хм, понятие "глобальная оптимизация" есть во многих учебниках, но на практике она не применяется. Я еще представляю, как можно оптимизировать "Hello World!" - тоесть int xx с передачей параметров и строки (адреса) в стеке. Но оптимизировать 30 метров кода (средняя цифра для гнушных проэктов) глобальной оптимизацией - не смешите мои тапочки.

Во-вторых, глобальная оптимизация - регистровая оптимизация, тоесть она направлена на использовании максимального числа регистров, самыми активными данными. Это где же вы видели, чтобы "сейчас" данные между функциями передавались в регистрах? Если внутри самой программы (до .NET и Java) это возможно, то на сегоднешний день, когда повсеместно используется инкапсуляция и т.п.х это невозможно. Даже в ANSI есть стандарт по передаче параметров, а вот регистров там нет.

Если вы верите в "чудо" оптимизацию вам сюда:
http://www.ozon.ru/context/detail/id/1418882/
http://www.ozon.ru/context/detail/id/146264/

PS: Широко разрекламмированная оптимизация .NET и gcc - миф. Единственное, что может оптимизирующий компилятор - не ТУПИТЬ, и максимально использовать новые инструкции.
 

cnstr
5 May 2006 8:41 PM
"Платят покупатели, платят разработчики." - если бы платили за это целенаправленно, то всё было бы уже исправлено. Всё-таки 25 лет прошло. :-)

"Это недоделка драйвера принтера, не реализованы трансформы." - ваша фраза относится к конкретному драйверу или ко всей подсистеме? То есть, если я принтер (с HP на Canon) поменяю, может заработать?
 

codeman
6 May 2006 2:42 AM
2 Wintermute
"Обычно под глобальной оптимизацией подразумевают... а на уровне модулей или всей программы целиком"

Из моего опыта работы с Visual C++ я описал, что именно его компилятор подразумевает под глобальными оптимизациями(опция /Og ). Повторяю: не знаю о каких вы говорите.

Но вот последний список чего умеет Mono JIT(1.1.13) я бы отнес к этому списку(глобальных):

- оптимизация циклов
- оптимизация ветвлений
- удаление мертвых инструкций
- линейное сканирование/глобальное выделение регистров
- производить per-domain code(shared)

Это все JIT делает согласно targeting processor architecture.
Он также умеет предкомпилировать все методы перед загрузкой Main.
 

codeman
6 May 2006 2:46 AM
2 bash
"на практике она не применяется"

см. предыдущий пост.
Или выкинь в мусорку учебники :)
 

codeman
6 May 2006 3:01 AM
2 xacid
"чего к сожалению не могу сказать о мс :( "

Но Mono же не есть политика МС. Кроме того это также не есть бузусловная политика GPL, так как позволяет использовать ее и с закрытыми программами(LGPL + если не устраивает это то по согласованию). То есть я не вижу факторов при помощи которых МС могла бы воздействовать негативно на существующую платформу.
 

codeman
6 May 2006 3:46 AM
Да, вот еще.
Sun to make Java more Linux-friendly
http://news.zdnet.com/2100-9590_22-6068852.html

То есть они собираются поменять лицензию на дружественную к Linux и OpenSolaris и т.д.

Для сравнения Mono уже
- open-source, free software
- включается в FC5(если я не ошибаюсь) + ничто не мешает включать его и эксплуатировать с GPL и другими
- основан на стандарте ECMA/ISO
- имеет все преимущества CLI(некоторые я уже здесь перечислил)
- необязательно программировать на языках C# или Java, чтобы программы работали(а Delphi и VB приветствуются :) )
 

Wintermute - devnul.ru
6 May 2006 9:06 AM
2 M&M's: "Не назову"
Понятно.
 

Wintermute - devnul.ru
6 May 2006 9:09 AM
2 bash: Ладно, пусть вы правы, и глобалдьная оптимизация в vc - миф (хотя я еще на четверке видел кое-что из этого). Но все равно, не верится, что C-код поддается оптимизации хуже, чем IL. IMHO.
 

Wintermute - devnul.ru
6 May 2006 9:11 AM
2 cnstr: "ваша фраза относится к конкретному драйверу или ко всей подсистеме? То есть, если я принтер (с HP на Canon) поменяю, может заработать?"
Я считаю, да. Мне помог переход с драйвера HP PCL на HP PostScript.
 

Wintermute - devnul.ru
6 May 2006 9:15 AM
2 codeman: "оптимизация циклов"
Локальная по определению - циклы всегда внутри функций/методов.
"оптимизация ветвлений"
??? Локальная, я с трудом себе представляю компилятор столь умный, что он оптимизирует longjmp или throw.
"удаление мертвых инструкций"
Локальная.
"линейное сканирование/глобальное выделение регистров"
Надо смотреть, как оно это делает, но эта оптимизация может быть глобальной.
"производить per-domain code(shared)"
А вот это - глобально, .Net-специфично и не слишком хорошо. Domain-netral - зло в общем случае, ASP.NET - так вообще ужас.
 

Wintermute - devnul.ru
6 May 2006 9:18 AM
bash: Посмотрел на ссылки - Касперски??? Авторитет??? Я читал его напыщенные и безграмотные статьи в "Программисте", заколебался ругаться с тамошней редакцией. У чувака самомнение, как будто он, по меньшей мере, Буч или Фаулер, но такие перлы откалывал!
 

torvic
6 May 2006 11:23 AM
Уж не знаю за всю глобальную оптимизацию, но то, что инлайновые подстановки делаются без проблем через границы доменов - это точно.
> Но все равно, не верится, что C-код поддается оптимизации хуже, чем IL.
Почему? IL сохраняет всю информацию, исх. текст восстанавливается рефлектором на ура, плюс наличие информации о среде исполнения, так что теоретически у jit возможностей поболе.
 

xacid
6 May 2006 12:17 PM
политика мс это дотнет
принять новый стандарт
или даже положить на него для мс нет никакой проблемы
спецификация джвм открыта
исходники тоже доступны при необходимости
куча опенсоурсных и альтернативных реализаций (айбиэм, оракл и тд)
какие у дотнета преимущества?
 

Любознательный
6 May 2006 12:33 PM
Для xacid

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

Wintermute - devnul.ru
6 May 2006 3:39 PM
2 torvic: "Уж не знаю за всю глобальную оптимизацию, но то, что инлайновые подстановки делаются без проблем через границы доменов - это точно"
??? Стыдно признаться, но ни разу не встречал. Границы домена ~ границы процесса, вызов идет через LRPC или сериализацию (я в курсе, что такое описание слишком грубое), как в этой ситуации можно произвести подстановку без domain-neutral?
"Почему? IL сохраняет всю информацию, исх. текст восстанавливается рефлектором на ура"
Не совсем. Дизассемблированый код - это довольно ограниченное подмножество C#, сильно напоминающее CodeDOM. Т.е. выскокоуровневые конструкты тип using Reflector превращает в try/finally и т.п.
"теоретически у jit возможностей поболе"
Плюс JIT в том, что он точно знает целевую архитектуру. Минус в том, что он компилирует лишь участки кода, т.е. не рассматривает программу как единое целое.
 

xacid
6 May 2006 6:51 PM
пусть разоряется себе
это его личные проблемы
 

xacid
6 May 2006 6:52 PM
преимущества: кроссплатформенность и очень хорошо развитая инфраструктура
 

cnstr
6 May 2006 9:42 PM
2Wintermute: Спасибо, познавательно.
 

codeman
7 May 2006 3:55 AM
2 xacid
"пусть разоряется себе
это его личные проблемы"

???
В случае если МС разорится, то есть(и всегда будет) Mono. А что есть у использующих Java?
Если затрудняетесь ответить, можете и не пытаться - и так все понятно.

"преимущества: кроссплатформенность и очень хорошо развитая инфраструктура"

Первое есть, второе - вопрос времени(скорого).
 

codeman
7 May 2006 4:18 AM
2 Wintermute
"я с трудом себе представляю компилятор столь умный"

По крайней мере они так заявляют, хотя в исходниках я не копался, родтверждения нет.

"Локальная по определению"
"внутри функций/методов. "

Тем не менее, компилятор VC позволяет оптимизировать индивидуальные функции(в том числе глобальная оптимизация применима).

Например, чтобы применить глобальную оптимизацию непосредственно к функции, нужно перед функцией объявить
#pragma optimize ( "g", on )

Так что все с определениями в порядке. В практическом плане по крайней мере.

"Надо смотреть, как оно это делает"

Так пожалуйста! Коды открыты любому. Посмотрим получится ли что-нибудь подобное после изменения лицензии Java(хе-хе).
 

codeman
7 May 2006 4:30 AM
2 Wintermute
Пропустил вот это

".Net-специфично и не слишком хорошо"

Напоминаю, что речь шла о Mono, то есть о свободной реализации открытого стандарта(имплементировать его может кто угодно и как угодно). Речь _не шла_ о проприетарной разработке компании Майкрософт - .NET Framework/CLR.
 

codeman
7 May 2006 4:36 AM
2 Wintermute
"Минус..."
(я полагаю, что имелся ввиду) JIT
"...в том, что он компилирует лишь участки кода, т.е. не рассматривает программу как единое целое."

Чушь собачья. Извините за выражение :)
 

xacid
7 May 2006 1:31 PM
ну вы бы поинтересовались что ли сколько есть реализаций jvm кроме sun
и если вам все понятно то зачем спрашиваете?

время, знаете ли, это деньги, все таки

с таким же успехом я могу вам рассказать что я сделаю через n-ое количество времени...
 

Любознательный
8 May 2006 12:39 AM
2 xacid

"ну вы бы поинтересовались что ли сколько есть реализаций jvm кроме sun и если вам все понятно то зачем спрашиваете?"

А развивать кто будет ява-платформу в случае, если Сан загнется? Или вас это не интересует?
 

xacid
8 May 2006 3:32 AM
те же кто и щас развивает за вычетом сан
только с чего это вдруг сан загнется непонятно
 

codeman
8 May 2006 4:56 AM
2 xacid
"ну вы бы поинтересовались"
"сколько есть реализаций jvm кроме sun"

Я в курсе. А есть ли что-нибудь подобное стандарту ECMA/ISO у SUN, чтобы на основе открытого стандарта можно было бы реализовать vm(независимо, без лицензии)?
И еще одно. Допустим кто-то, кто пишет на VB(или др.) и отвергает синтаксис Java напрочь. Или ему подходит другой язык для его задачи. Как быть?

"время, знаете ли, это деньги, все таки"

...которые иногда тратятся на инновации.
 

codeman
8 May 2006 5:35 AM
2 xacid
"только с чего это вдруг сан загнется непонятно"

Это предположение. В противовес CLI, если предположим загнется МС.
 

Wintermute - devnul.ru
8 May 2006 11:15 AM
2 codeman: "Напоминаю, что речь шла о Mono, то есть о свободной реализации открытого стандарта"
В общем случае, значения не имеет. Да и Mono - не единственная открытая реализация, хотя и самая полная.
Кстати, может, из-за этого у Mono косяки с доменами? Или они уже их пофиксили? Месяца три не следил.
"Чушь собачья. Извините за выражение"
Это почему же? JIT по определению компилирует только то, к чему происходит обращение. Ну, возможно, то, что он считает скоро будет выполняться. Если же JIT скомпилирует все программу целиком, а только в этом случае он сможет рассматривать программу, как единое целое, то это уже не JIT.
 

xacid
8 May 2006 1:32 PM
http://java.sun.com/docs/books/vmspec/2nd-edition/html/Copyr ight.doc.html

те кто отвергают джаву сами делают свой выбор, это их святое право

инновации меня не интересуют, мне нужно сегодня реализовать вполне конкретную функциональность за которую мне платит заказчик

если мс загнется то думаю что это только пойдет на пользу дотнету
 

Tugarinov Sergey - tugarinovgmail.com
8 May 2006 10:01 PM
>А развивать кто будет ява-платформу в случае, если Сан загнется? Или вас это не интересует?

IBM и иже с ними....
 

codeman
9 May 2006 4:50 AM
2 xacid
"http...Copyright.doc.html"

Все верно. Чтобы реализовать ECMA/ISO-CLI не нужно согласовывать/лицензировать это с МС и соблюдать ряд(неприемлимых) условий.
Противоположная ситуация с Java от SUN/(IBM и других лицензоров).
И что-то не нравится мне их положение сегодня. Но это не есть основная причина, CLI лучше в техническом плане.

"те кто отвергают джаву сами делают свой выбор"

Я не отвергаю, а выбрал лучшее, из тех что можно было выбрать.

"инновации меня не интересуют"

Это понятно. Динозавры :) Снимает сразу много вопросов, в том числе из моего пред. поста. И не подумайте, что я хочу вас переубедить! Я всего лишь поддерживаю дискуссию свежими аргументами. И у меня нет в них сомнения.

"мне нужно сегодня реализовать вполне конкретную функциональность за которую мне платит заказчик
"

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

"если мс загнется то думаю что это только пойдет на пользу дотнету"

.NET - это проприетарная разработка МС, это не есть стандарт.
Это только реализация. Одной реализацией меньше/больше. Есть стандарт и без всяких там лицензий/условий.
 

codeman
9 May 2006 5:03 AM
2 Wintermute
"В общем случае, значения не имеет"

Как же. Еще как имеет. Все имеет значение. Особенно когда я приводил аргументы относительно Mono.

"Да и Mono - не единственная открытая реализация"

Верно, есть еще полумертвый http://www.dotgnu.org/.

"JIT по определению компилирует только то, к чему происходит обращение."

Перед запуском Main он имеет возможность проанализировать весь код, оптимизировать и скомпилировать вцелом перед выполнением. И есть опция "precomp" для этого.

"Если же JIT скомпилирует все программу целиком"

Этим он и занят, если его специально проинструктировать :)
 

Wintermute - devnul.ru
10 May 2006 9:23 AM
2 codeman: "Перед запуском Main он имеет возможность проанализировать весь код, оптимизировать и скомпилировать вцелом перед выполнением. И есть опция "precomp" для этого"
Согласитесь, что предкомпиляция и компиляция по требованию (JIT) все-таки разные вещи. Плюс идея предкомпиляции мне не нравится, почему - см. ниже.
 

злой
10 May 2006 12:11 PM
2codeman
ну ты и перлы выдаешь :)) Кто тебе так мозги запудрил?
В каждои предложении слово инновация :) Это .нет то инновация?? Даже закоренелые дотнетчики не оспаривают тот факт, что .нет это клон джава и отстает он от джавы на 3-5 лет, отставал и отставать будет. Или уж потрудись тогода по пунктам перечислить все инновации, а то поднадоел уже твой панос неаргументированный.

--
Все верно. Чтобы реализовать ECMA/ISO-CLI не нужно согласовывать/лицензировать это с МС и соблюдать ряд(неприемлимых) условий.
--
Опять же, какие неприемлемые условия? По пунктам пожалуйста. А то сейчас ситуция такая, что весь такой прекрасный ECMA/ISO-CLI нафиг никому не нужен. А вот JVM реализовали IBM, Oracl, BEA и еще есть 4-е штуки, в том числе и Open Source JVM.

Так-же Java самый популярный в мире язык. С каждым годом спрос на Java программистов увеличивается. А вот про .нет такого не скажешь. http://www.tiobe.com/tpci.htm
Был всплеск конечно на дотнетчиков, но это во времена пояления этой платформы, потом народ разобрался, что к чему и все поутихло.
--
CLI лучше в техническом плане.
--
это аналог байткода джава? Если так, то чем CLI лучше? Читал статью(постараюсь найти ссылку) Java vs .net. Так там написано было, что байткод дотнетовский получается в 2-3 раза больше.

По поводу моно. Я бы на вашем месте его вообще не упоминал. Моно это недоделка, причем такая, что при таком темпе развития как сейчас, дотянет до современного .нет лет через 20-ть. Вобщем яркий пример того, что ECMA/ISO-CLI никому не нужен.

А вот еще хорошие новости :))
http://www.opennet.ru/opennews/art.shtml?num=7279
http://www.opennet.ru/opennews/art.shtml?num=7468

скоро наверное и на zdnet появятся
 

xacid
10 May 2006 12:40 PM
жабу выбирает как раз именно что заказчик
в том то весь и прикол
 

Wintermute - devnul.ru
10 May 2006 2:48 PM
2 злой: "Так там написано было, что байткод дотнетовский получается в 2-3 раза больше"
В реализации P# (Edinburg Prolog для .Net, потомок JProlog) при сравнении с "папашей" получается, что итоговая несжатая сборка в 2-3 раза меньше JAR-файла. Учитывая, что JAR - это ZIP, получаем, что на реальном, достаточно большом проекта зависимость обратная.
 

злой
10 May 2006 4:46 PM
2Wintermute
Не совсем понял о чем вы. JAR это действительно ZIP, по сути к Java никакого отношения не имеет и к байткоду темболее. И что за итоговая несжатая сборка? Причем здесь пролог? Поподробней, если не трудно объясните.
 

Олег
10 May 2006 8:19 PM
2злой
Объявления в газетах и сайтах о вакансиях говорят об обратном.
Огромный всплеск интереса к .net программистам (на уровне java в пике).
По зарплатам сравнялись с java в одном сегменте (ASP.NET vs JSP)
Так что по поводу умирания .нет думаю рановато.
Когда то про Win 95 тоже говорили что умрет и все остануться на WFW 3/11 или OS/2 ;)
 

Олег
10 May 2006 8:23 PM
По поводу убогости компонентов в Net.
Это стратегия Microsoft дать заработать сторонним фирмам.
Иногда лицензируется часть вещей (это было еще с VB4,5,6) и пишеться Portion CopyRight, но специально оставляется запас в одну версию,до бесплатной реализации внутри .нет
Пример - Docking Window, Office 2003 Menu,Resize контроли наконец.
Лишь в 2005 что то включили,до этого или пиши сам или покупай комерческие реализации других фирм.
И очень часто в случае написания комерческого приложения выгодней купить готовый компонент, чем писать свой.
 

codeman
11 May 2006 6:17 AM
2
"предкомпиляция и компиляция по требованию (JIT) все-таки разные вещи. "

С точки зрения JIT, компиляция и есть компиляция.

"идея предкомпиляции мне не нравится"

Я уже отметил, что предкомпиляция перед вызовом Main уже реализована. Хотите вы этого или нет, она дает реальную возможность оптимизировать весь доступный код перед загрузкой. Вопрос насколько это эффективно в Mono ткрыт, но я думаю, что будь это не эффективно то было бы исключено из сборки регресс тестами.
 

codeman
11 May 2006 6:27 AM
2 xacid
"жабу выбирает как раз именно что заказчик
в том то весь и прикол"

А заказчик, как известно, всегда прав. Не знаю насколько это верно для IT.
 

codeman
11 May 2006 6:30 AM
2 злой
"Причем здесь пролог?"

LOL
И как можно после этого рассматривать ваши слова(понос) всерьез?
 

codeman
11 May 2006 6:42 AM
2 Олег
"По поводу убогости компонентов в Net."
"Это стратегия Microsoft дать заработать сторонним фирмам"

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

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

M&M's
11 May 2006 8:57 AM
По поводу убогости компонентов в Net.
Они, как и в предыдущих выпусках, реально убогие. Возможностей настроек даже тех же WinForms мало, их компоновка не продумана и сделана на скорую руку. О контролах вообще промолчу, чтоб не матюкнуться.
Все вместе создает ощущение явной недоделанности системы. В общем так оно и есть, МС всегда выпускает свои архитектуры второпях, чтобы создать нагромождение конструкций, с одной стороны, и чтобы не отстать от рынка, с другой стороны. Одним словом, гавно.
 

Олег
11 May 2006 11:14 AM
2M&M's а что вы ожидаете от контролей
По поводу архитектуры да согласен второпях, но со 2 версией вроде должно быть чуть получше.
И что бы вы не говорили, им удалось заинтересовать рынок, так что и IBM с Java считается с ними.
А по поводу гавно или нет решать как тут было сказано заказчику.
Будете смеяться, возможно это даже порадует патриотов странны, скоро Америке придет кранты - своими глазами видел часть системы наземной по перехвату ракет написанной на .Нет 2.0 ;)
 

Wintermute - devnul.ru
11 May 2006 1:46 PM
2 злой: Подробнее? OK.
Prolog - декларативный логический язык программирования, основаный на доказательстве теорем. Одним из весьма распространенных диалектов языка является т.н. Edinburg Prolog, разработанная давным-давно в Эдинбургском Университете. Одной из реализаций языка является JProlog, транслирующий исходные тексты, очень похожие на Edinburg Prolog, в байт-код java и предоставляющий возможность вызова богатой библиотеки классов Явы.
Некий Йон Кук создал версию языка Пролог для .Net, основанную на JProlog. В настоящее время P# имеет номер версии 1.1.
Фактически, код на P# транслируется в IL, формируя стандартные единицы кода, называемые в .Net сборками. С точки зрения OS - это DLL. В Java единицей кода являются class-файлы, но, поскольку количество классов даже в небольших программах Java велико, их упаковывают в JAR-файлы - ZIP-архивы с дополнительной метаинформацией.
Программа на P# требует загрузчика, собственно скомпилированную сборку и сборку подсистемы поддержки, называемую PSharp.Dll. Последняя содержит реализацю всех стандартных предикатов (конструктов языка Пролог) плюс подсистему вызова библиотек .Net. Таким образом, данная сборка является по своей функциональности аналогом JAR-файла исполняющей системы JProlog.
Так вот, объем (несжатой) сборки реальной и довольно большой программы .Net (IL) _меньше_ объема (сжатого) JAR-файла аналогичной по функциональности программы Java (байт-код) в 2 с хвостиком раза. Что входит в противоречие с вашим утверждением:
"это аналог байткода джава? Если так, то чем CLI лучше? Читал статью(постараюсь найти ссылку) Java vs .net. Так там написано было, что байткод дотнетовский получается в 2-3 раза больше"
 

Wintermute - devnul.ru
11 May 2006 1:54 PM
2 codeman: "С точки зрения JIT, компиляция и есть компиляция"
А с точки зрения человека? Просто мне человеческая точка зрения как-то ближе.
"Я уже отметил, что предкомпиляция перед вызовом Main уже реализована"
Да, и в микрософтовской реализации тоже.
"Хотите вы этого или нет, она дает реальную возможность оптимизировать весь доступный код перед загрузкой"
Но это не JIT. Просто по определению. Возьмем WinForms программу, которая работает с файлами. Я ее запускаю и тут же закрываю. JIT скомпилит только код инициализации главного окна, до кода загрузки файла он просто не дойдет, так как я к нему не обратился. В случае предкомпиляции - скомпилит, разумеется, и глобальную оптимизацию даже проведет. Но что будет, если программа состоит из множества относительно мелких модулей-плагинов, ну, навроде SharpDevelop/MonoDevelop? В последних версиях там некторые плагины даже в память загружаются по требованию.
"Вопрос насколько это эффективно в Mono ткрыт, но я думаю, что будь это не эффективно то было бы исключено из сборки регресс тестами"
Это, безусловно, эффективно, особенно с точки зрения настольных, монолитных и долгоработающих приложений. Траблы начинаются, как только появляются домены и динамическая загрузка. Собственно, именно на этом недостатке платформы в целом я все время делаю акцент.
 

злой
11 May 2006 3:09 PM
2wintermute
Понятно куда вы клоните. только вот я не пойму, вы серьезно или шутить изволите? Это ктож так сравнивает? Так можно сравнивать квалификацию программистов, алгоритмов, подходов решений поставленой задачи и то с натяжкой. Откуда я знаю чего там в этот джар понапихали, туда ведь все што угодно поместить можно. Так же можно сказать, что реализация на Java качественней и вообще это более старшая реализация. Вобщем за такое сравнение двойка вам с минусом.
 

Wintermute - devnul.ru
11 May 2006 3:22 PM
2 злой: "вы серьезно или шутить изволите? Это ктож так сравнивает?"
Ну, вы же себе позволяете сравнить IL и байт-код Java - ведь слышали где-то что-то, не так ли?
"Откуда я знаю чего там в этот джар понапихали, туда ведь все што угодно поместить можно"
Возьмите да загрузите оба продукта, что вам мешает, кроме лени? По секрету скажу, что и эта конкретная сборка .Net, и этот конкретный JAR-файл содержат только метаданные и код, даже ресурсов нет, так как обе реализации языка ничего не знают ни о формах, ни о Swing (им и не нужно). А поскольку .Net-реализация является "дочкой" Java-реализации, в версии 0.1 это была просто построчная трансляция Java-текста, то сравнивать эти два продукта вполне корректно. В конце концов, сравнивают же Photoshop и GIMP.
"Вобщем за такое сравнение двойка вам с минусом"
В общем, слив засчитан.
 

злой
11 May 2006 4:11 PM
2Wintermute
я все же постараюсь найти ссылку той статьи, где проводилось сравнение. Хотя пока попытки не увенчались успехом. Там кстати все было просто, исходники на Java, аналогичные исходники на C# и все.
 

Конечный пользователь
28 Apr 2007 4:28 AM
Набрел на тему через рамблер. Ребята, вот что я вам скажу. Вам действительно нравится .НЕТ? Мне нет, ибо первые же ассоциации у меня это то что приложение будет жрать память и тормозить. Но я так понимаю вам на это глубоко наплевать, лишь бы написать выродок на своем си шарпе :(
 

 

← март 2006 19  20  21  23  24  25  26  27  28 май 2006 →
Реклама!
 

 

Место для Вашей рекламы!