Здравствуйте Igor Trofimov, Вы писали:
IT>Кстати, об NGen. Как я понял, при работе ngen генерится нативный код, но исходный IL не выкидывается. А почему??? Отпала бы нужда во всяких обфускаторах и других подобных извращениях?
IL он должен выкинуть, а вот метаданные должны бы остаться.
Здравствуйте VladD2, Вы писали:
VD>Уже месяца два как есть. Не слышал такого слова "Ротор"? MS (вроде совместно с королом) выделили из .NET независящую от платформы серверную часть и портировала ее под Фришку. Все исходники есть. Портировать это дело под разные Линухи проблем не составит.
Адрес-то кинь А то я тут с местными Java-любителями борюсь, как бы хотелось их всех на C# пересадить...
Здравствуйте Edmond, Вы писали:
E>Здравствуйте econt, Вы писали:
E>>7. Windows (по крайней мере начиная с 2000) написана на этом языке. По-моему для программирования в этой операционной системе лучше использовать ее РОДНОЙ язык.
E>Ничего подобного!!! 2000 в основном написана на C!!! Это официальная информация M$!!!
Что-то мне не верится, я не думаю что все эти COM
объекты написаны на C. Там без ATL очень геморойно все
это делается, а COM-ов в Winmdows понастоящему дохрена.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте Anatolix, Вы писали:
A>Здравствуйте Edmond, Вы писали:
E>>Здравствуйте econt, Вы писали:
E>>>7. Windows (по крайней мере начиная с 2000) написана на этом языке. По-моему для программирования в этой операционной системе лучше использовать ее РОДНОЙ язык.
E>>Ничего подобного!!! 2000 в основном написана на C!!! Это официальная информация M$!!!
A>Что-то мне не верится, я не думаю что все эти COM A>объекты написаны на C. Там без ATL очень геморойно все A>это делается, а COM-ов в Winmdows понастоящему дохрена.
E>>Ничего подобного!!! 2000 в основном написана на C!!! Это официальная информация M$!!!
A>Что-то мне не верится, я не думаю что все эти COM A>объекты написаны на C. Там без ATL очень геморойно все A>это делается, а COM-ов в Winmdows понастоящему дохрена.
Дохрена-то дохрена, и, все же, думаю, основной объем кода Win2k — это не COM.
S>Ага, а потом сгенерированный код опять интерпретируется. Супер. Никакого оверхеда.
Почему это? Ты сгенерил метод, записал в него IL.
При первом вызове метода он скомпилируется в native, при последующих — уже будет использоваться настоящий native.
S>И шо, че-нибудь гуевое на нем можно слабать? Под BSD?
Есть еще не-MS проект, Mono. www.go-mono.com. Есть GTK#. И вроде как mono + gtk# дают возможность делать кроссплатформенный гуй. Есть уже вроде Qt#. Тоже. В Mono также обещают кроссплатформенный Windows.Forms. В общем, пока энтузиазм у народа есть Поживем — увидим.
Здравствуйте Igor Trofimov, Вы писали:
IT>Дохрена-то дохрена, и, все же, думаю, основной объем кода Win2k — это не COM.
Сухая статистика: у меня Windows 2000, в папке WINNT\SYSTEM32
1978 файлов с расширением Dll общий объем 306 Mb
Из них 609 файлов содержат внутри функцию DllGetClassObject
т.е. связаны с COM-ом. Их общий объем 145Mb т.е. почти половина.
Еще у меня 69 OCX объемом 16Mb и 48 ax объемом 5 Mb
Уже получается больше половины по объему. Т.е. половина
dll в Windows связана с COM и скорее всего написана на C++.
Плюс к этому непонятное количество остальных dll тоже
написана на C++.
Итак какой мы из этого можем сделать вывод?
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте Anatolix, Вы писали:
A>Здравствуйте Igor Trofimov, Вы писали:
IT>>Дохрена-то дохрена, и, все же, думаю, основной объем кода Win2k — это не COM.
A>Сухая статистика: у меня Windows 2000, в папке WINNT\SYSTEM32 A>1978 файлов с расширением Dll общий объем 306 Mb A>Из них 609 файлов содержат внутри функцию DllGetClassObject A>т.е. связаны с COM-ом. Их общий объем 145Mb т.е. почти половина.
A>Еще у меня 69 OCX объемом 16Mb и 48 ax объемом 5 Mb A>Уже получается больше половины по объему. Т.е. половина A>dll в Windows связана с COM и скорее всего написана на C++.
A>Плюс к этому непонятное количество остальных dll тоже A>написана на C++.
A>Итак какой мы из этого можем сделать вывод?
Здравствуйте Igor Trofimov, Вы писали:
S>>Ага, а потом сгенерированный код опять интерпретируется. Супер. Никакого оверхеда.
IT>Почему это? Ты сгенерил метод, записал в него IL. IT>При первом вызове метода он скомпилируется в native, при последующих — уже будет использоваться настоящий native.
Это верно только для нормальных компов. Карманные native image не хранят из-за недостатка памяти, а компилируют каждый раз.
Здравствуйте Igor Trofimov, Вы писали:
S>>Ага, а потом сгенерированный код опять интерпретируется. Супер. Никакого оверхеда.
IT>Почему это? Ты сгенерил метод, записал в него IL. IT>При первом вызове метода он скомпилируется в native, при последующих — уже будет использоваться настоящий native.
Ага, при следующем разборе регулярного выражения я запишу поверх него новый код, который опять будет компилироваться в native. Где выигрыш?
S>>И шо, че-нибудь гуевое на нем можно слабать? Под BSD? IT>Есть еще не-MS проект, Mono. www.go-mono.com. Есть GTK#. И вроде как mono + gtk# дают возможность делать кроссплатформенный гуй. Есть уже вроде Qt#. Тоже. В Mono также обещают кроссплатформенный Windows.Forms. В общем, пока энтузиазм у народа есть ;) Поживем — увидим.
Вопрос был не о наличии подобных проектов, а об их работоспособности, текущей и потенциальной. Энтузиазм ведь имеет тенденцию со временем испаряться :). Ximian одна за MS не успеет, а народ вполне может на mono забить. Кстати, о Qt# я ничего не слышал — оно чье? На сайте trolltech про нее вроде ничего нет.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте Sergey, Вы писали:
S>Ага, при следующем разборе регулярного выражения я запишу поверх него новый код, который опять будет компилироваться в native. Где выигрыш?
Зачем же записывать поверх новый код для того же выражения?
S>Вопрос был не о наличии подобных проектов, а об их работоспособности, текущей и потенциальной. Энтузиазм ведь имеет тенденцию со временем испаряться . Ximian одна за MS не успеет, а народ вполне может на mono забить. Кстати, о Qt# я ничего не слышал — оно чье? На сайте trolltech про нее вроде ничего нет.
Сырые все конечно страшно, что тут говорить... Про qt# — ссылка на www.go-mono.com кажется была.
Здравствуйте Edmond, Вы писали:
E>>7. Windows (по крайней мере начиная с 2000) написана на этом языке. По-моему для программирования в этой операционной системе лучше использовать ее РОДНОЙ язык.
E>Ничего подобного!!! 2000 в основном написана на C!!! Это официальная информация M$!!!
Цитирую Рихтера: "Ядро Windows 2000 написано в основном на С и С++, поэтому система легко портируется (переносится) на процессоры с другими архитектурами."
Если кода на C там больше, чем C++, ну что же... Тогда я неправ. Но все таки C++ там присутствует...
E>>8. Это достаточно низкоуровневый язык. На нем вполне можно писать даже драйверы.
E>Только не надо палку перегибать... Специальный компилятор.... да. E>Но назвать C++ достаточно низкоуровневым??? Это вы хватили.
Я никого не призываю писать низкоуровневые программы на C++. Я просто говорю, что на С++ это МОЖНО делать. У C++ присутствуют ВСЕ возможности языка C, а именно на C пишутся драйверы для Win2000.
Мне никогда не нравилась MFC. (c) Charles Petzold
Re[9]: Чем так привлекателен C++ ?
От:
Аноним
Дата:
21.08.02 11:02
Оценка:
Здравствуйте Igor Trofimov, Вы писали:
IT>Здравствуйте Sergey, Вы писали:
S>>Ага, при следующем разборе регулярного выражения я запишу поверх него новый код, который опять будет компилироваться в native. Где выигрыш?
IT>Зачем же записывать поверх новый код для того же выражения? :))
Ровно затем же, зачем Влад предлагал его несколько раз парсить на С++ :)
S>>Вопрос был не о наличии подобных проектов, а об их работоспособности, текущей и потенциальной. Энтузиазм ведь имеет тенденцию со временем испаряться :). Ximian одна за MS не успеет, а народ вполне может на mono забить. Кстати, о Qt# я ничего не слышал — оно чье? На сайте trolltech про нее вроде ничего нет.
IT>Сырые все конечно страшно, что тут говорить... Про qt# — ссылка на www.go-mono.com кажется была.
Спасибо, нашел. Тока оно GPL. Нафиг-нафиг такие либы и рантаймы. Я предпочитаю MIT License :)))
Здравствуйте econt, Вы писали:
E>Здравствуйте Edmond, Вы писали:
E>>>7. Windows (по крайней мере начиная с 2000) написана на этом языке. По-моему для программирования в этой операционной системе лучше использовать ее РОДНОЙ язык.
E>>Ничего подобного!!! 2000 в основном написана на C!!! Это официальная информация M$!!!
E>Цитирую Рихтера: "Ядро Windows 2000 написано в основном на С и С++, поэтому система легко портируется (переносится) на процессоры с другими архитектурами."
Объясняю второй раз: Рихтер не уточнил...
А вот пишет разработчик:
(Книга "Внутреннее устройство Windows 2000")
В основном ядро Windows было написанно на C....
Небольшая часть на C++
И Ассемблере.
E>>Только не надо палку перегибать... Специальный компилятор.... да. E>>Но назвать C++ достаточно низкоуровневым??? Это вы хватили.
E>Я никого не призываю писать низкоуровневые программы на C++. Я просто говорю, что на С++ это МОЖНО делать. У C++ присутствуют ВСЕ возможности языка C, а именно на C пишутся драйверы для Win2000.
Объясняю снова (будьте внимательны), я не сказал: "На C++ нельзя писать драйверы", я сказал:
"C++ не есть достаточно низкоуровневым, хотя бы так же как C -- вы не согласны. Это мнение Страугструпа, вропчем не только мнение, а и цель при создании..."
С уважением, Edmond
Re[2]: Чем так привлекателен C++ ?
От:
Аноним
Дата:
21.08.02 11:46
Оценка:
Здравствуйте Aquary, Вы писали:
A>Здравствуйте SergeMS, Вы писали:
SMS>>Что для вас значит C++? SMS>>В чем его привлекательность лично для вас ?
A>Тут народ в дебри ушел технические :maniac: A>:)
A>Для меня это: A>1. Красивый и лаконичный язык. Классический пример с копированием элементов массива это показывает ;) A>2. Язык с шаблонами. Насколько я знаю, их боьлше нет нигде. (Если не прав — поправьте) A>3. Универсальное средство для решения почти любых задач. Об этом уже писали. A>4. Стандартный язык для выражения идей. Примеры в книгах по проектированию и прочим теоретическим вещам как правило приводятся на С/С++
A>Вот, ИМХО... :)
1. Есть языки и покрасивей и полаконичней. Но из-за разных причин менее популярные.
2. Шаблоны, на мой взгляд, один из способов ввести полиморфизм в C++. Есть языки с объектами, где не нужно указывать ни типы входных значений, ни определять какие-либо интерфейсы. Все эти операции проделывает компилятор. Например, можно сказать, что у объекта А есть метод М который принимает в качестве параметра некоторый объект С, от которого требуется только, что бы он имел метод DoSomething с такими то аргументами (причем аргументы не обязаны иметь конкретный тип, если методу он не интересен). Компилятор сам вычислит и проверит все нужные типы.
object Ob =
method Add(a,b) = a.Plus(b);
end
В результате у объекта Ob будет метод Add который принимает две переменных произвольного типа с условием, что у a есть метод Plus(typeof(b)).
3. А зачем нужна универсальность, если драйверы удобно писать на одном языке, а GUI на другом?
4. Я думаю, это из-за того, что С++ самый популярный язык.
Здравствуйте Edmond, Вы писали:
E>В основном ядро Windows было написанно на C....
E>Небольшая часть на C++ E>И Ассемблере.
Ну почувствуй разницу между утверждениями "ядро Windows в основном написано на C" и своим предыдущим утверждением "Windows в основном написана на C"
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте Watcher, Вы писали:
W>>Программный код компилируется оптимальным образом под конкретный интеловский 32 битный процессор и его архитектурные фичи. Причем есть случаи, на атлонах аналогичной конфигурации такие программы работают даже быстрее.
VD>Без использования специфичных для процессора инструкций серьезного увеличения скорости добиться нельзя. А специфичные не будет пахать на всех платформах. На сегодня 90% програм компилируется под Первый пень. А он вообще ничего не умел. Джит производит компиляцию прямо на конечной машине и может применять все самые навороченные оптимизации. Об этом Машка и говорил.
JIT это плохо т.к. фактически является самомодифицирующимся кодом который
плохо переносится Windows. В частности это значит что при загрузке
2 копий программы она займет в памяти двойное место, а не одинарное
как с обыкновенным exe.
Впрочем MS обещала уметь конвертировать IL в нативный код при
установке программы, вот это было бы полезно. Кто нибудь из дотнетеров
проясните это уже сделано? И на сколько это популярно?
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев