Здравствуйте, adontz, Вы писали:
A>Безусловно нет, но некоторые языки оптимизировать легче/проще/удобнее чем другие некоторыее языки.
Знаешь у какого языка самый крутой оптимизатор, ни за что не догадаешься. У Фортрана. Можешь начинать на него переходить.
A>И если С++ имеет очень большой потенциал для оптимизации высокоуровневой, то у C# из-за этой safe'ности и ООориентированности (порою на пустом месте, когда что не число, то объект ) потенциал именно высокоуровневой оптимизации гораздо меньше. Добавь сюда боксинг который появляеться и исчазает как призрак и будет тебе понимание того, о чём я говорю.
Всё что ты говоришь я уже когда-то слышал. Речь была о переходе с C на C++. Аргументы были примерно такими же, тормознутость ООП, виртуальные вызовы и прочий бред. Тем не менее на голом C уже давно никто не пишет.
A>Основная проблема ОО языков это постоянные копирования и ещё раз копирования и копирования на всякий случай лишь бы остаться ОО. В Си++ эта проблема, пусть и через, как их Влад назвал, заплатки, решаема, в C# паталогически нет.
Ну это просто твои заблуждения и домыслы. Объект в .NET никуда не копируется, т.к. он не может быть создан кроме как в управляемой куче. На стеке же создаются только value-типа, которые как раз не имеют никакого отношения к ООП.
A>Ну и потом. Посуди сам. Простой пример. Решение системы линейных уравнений. На Си++ я напишу шаблонную матрицу с методами SolveU и SolveV, а на шарпе что? Наследовать ICollection? Нифига себе производительность будет Сомневаюсь я чтоб дженерики сильно улучшили ситуацию. Так что в бизнес-логике .Net может и рулит, а за её переделами увы.
Я тебе говорю, пиши на Фортране, быстрее работать будет.
A>И как бы не махали флагами патриоты Нета, он какую нишу должен был занять — уже занял и ни новые версии и офигительный маркетинг сильно ситуацию не изменят.
Рома, .NET занимает свои ниши только два года и уже назанимал достаточно. Что будет лет через 5 мы только можем догадываться.
A>И я просто не верю, и на то есть причины, что MS будет выпускать API доступное только из managed сборок. Мне скажут а как же СОМ? Плохой пример. СОМ пусть и не очень удобно, но можно пользоватся из любого, даже не ОО (например Си) языка. Хедеры DirectX даже в девятой версии поддерживают не Си++ компиляцию, а сам СОМ хотя и построен на интерфейсах, но простите CoInitialize это же функция
То что CoInitialize это функция так это наследие процедурного программирования, в нормальной ОО модели такой функции вообще быть не должно.
A>На .Net никогда не будут писать драйвера и вообще сугубо системые вещи. Свою нишу он уже занял.
Я бы не стал так уж категорично утверждать. Впрочем, посмотрим, что наш штатный Предсказамус настрадал
A>С# — угадй с 1й попытки что с ним будет
Что если не секрет?
A>Так что сменим кучу языков (Basic. Pascal, JavaScript, VBScript, Perl, PHP, C++) я остаюсь поклонником плюсов и будущее меня не особо волнует, без работы я не останусь
В драйверописатели пойдёшь? Так их много не надо. По крайней мере на весь Тбилиси одного двух хватит. А то и вообще вам там без них можно будет обойтись, пусть их пишут производители железок.
Тебе же как другу, я так и быть дам дельный совет. Другому бы не стал, зачем мне лишняя конкуренция Но тебе так и быть.
Рома, учи C#. Если времени хватит, то и Java можно внимание уделить. Все твои аргументы — это аргументы лузера, не желающего признаться самому себе в том, что технологии меняются и надо по новой учиться. Причём каждое подобное технологическое обновление сопровождается тем, что ты практически становишься в один ряд со вчерашними студентами. Гораздо проше стать в позу матёрого девелопера и презрительно созерцать телодвижения окружающих. Всё это здорово, но только шансов на выжывание при такой тактике практически никаких. Ну попишешь ты ещё на Win32 годика два-три, пусть даже четыре, а дальше что? Вчерашние студенты отберут у тебя последние заказы, и пойдёшь ты, Рома, куда-нибудь автоматизировать 1C (которая к тому времени будет уже переписана на .NET ), а то и сам на ней работать. А что, из бывших программистов обычно получаются высококлассные бухгалтера и экономисты.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Знаешь у какого языка самый крутой оптимизатор, ни за что не догадаешься. У Фортрана. Можешь начинать на него переходить.
У Си(++) уже не хуже.
IT>Всё что ты говоришь я уже когда-то слышал. Речь была о переходе с C на C++. Аргументы были примерно такими же, тормознутость ООП, виртуальные вызовы и прочий бред. Тем не менее на голом C уже давно никто не пишет.
Агащазблин. На голом Си пишут как минимум все драйвера так или иначе связанные с видео. Другое дело, что иногда легче докупить деталей (памяти например) чем написать программу по-лучше.
IT>Ну это просто твои заблуждения и домыслы. Объект в .NET никуда не копируется, т.к. он не может быть создан кроме как в управляемой куче. На стеке же создаются только value-типа, которые как раз не имеют никакого отношения к ООП.
То есть если я делаю (код предоставлен AS IS и может даже не компилироватся)
string a = "a";
string b = "b";
string c = a + b;
То в третьей строке нет копирования? Ты скажешь, а как же без него, но если так? (код предоставлен AS IS и может даже не компилироватся)
class x
{
string f(string a, string b)
{
return a + b;
}
}
То что? RVO это не mandaroty optimization. Может будет, а может и нет. В Си++ проблема решается исключительно за счёт шаблонов (набираем в Google MOJO) а в С# проблема не решается в принципе. И ещё много лишних копирований в разных местах при разных обстоятельствах. Я сам обо всё этом до поры до времени не знал. Стандартные библиотеки (MFC/ATL/STL) это чудо не пользуют. А производительность отдельных участков может возрасти в разы, хотя конечно 10-40% куда типичнее.
Да и потом, что значит 10%? Ты скажешь, что это мелочь. Да, при использовании Януса это может и мелочь и Аське я прощу даже 50%, но прикинь что будет, если вдруг все SQL серверы начнут работать на 10% медленнее? Это уже о бабках разговор, кто не понял И о больших бабках.
IT>Я тебе говорю, пиши на Фортране, быстрее работать будет.
Некоторые части, если действительно быстрее и это надо, почему бы и нет?
IT>То что CoInitialize это функция так это наследие процедурного программирования, в нормальной ОО модели такой функции вообще быть не должно.
Но нормальная ОО модель замкнута, а СОМ открыт. Написав СОМ сервер я отдаю его не заботясь о совместимости, а начав писать на шарпе, я сто раз усомнюсь, а будет ли фреймворм, а будут ли другие части на .Net платформе и проч. и проч.
A>>С# — угадй с 1й попытки что с ним будет IT>Что если не секрет?
Да не будет его через 2-3 года. Вернее название наверно будет, но сам язык сильно поменяют.
IT>В драйверописатели пойдёшь? Так их много не надо. По крайней мере на весь Тбилиси одного двух хватит. А то и вообще вам там без них можно будет обойтись, пусть их пишут производители железок.
Зачем же так? В игрушко писатели. В писатели сетевых сервисов например. В Тбилиси PIII средний комп с большой натяжкой, а 2000/ХР это хорошо, а не норма. 98 не редкость, а .Net Framework я пока видел установленным только у себя и тех у кого Server 2003, да и то потому что он ставиться за компанию. А в России ситуация сильно лучше? Только не надо думасть, что Москва == Россия. Так что я вполне соответствую своему IT (ну и ник ты себе выбрал!) рынку и даже где-то опережаю его потребности.
IT>Тебе же как другу, я так и быть дам дельный совет. Другому бы не стал, зачем мне лишняя конкуренция Но тебе так и быть. IT>Рома, учи C#. Если времени хватит, то и Java можно внимание уделить. Все твои аргументы — это аргументы лузера, не желающего признаться самому себе в том, что технологии меняются и надо по новой учиться. Причём каждое подобное технологическое обновление сопровождается тем, что ты практически становишься в один ряд со вчерашними студентами. Гораздо проше стать в позу матёрого девелопера и презрительно созерцать телодвижения окружающих.
Игорь я абсолютно хорошо понимаю, что есть сферы в которых .Net это беспорный лидер, но есть где не беспорный, есть гlе очень даже спорный, а есть места где .Net делать нефига.
Я прекрасно понимаю, что уже сейчас мне надо учить ASP.NET чтоб не отстать в вебе. Уже сейчас, а не через 5 лет. А вот в том что НЕ веб, пока рановато. Зачем учить то что не покупают, да ещё и с опережением в годы?
IT>Всё это здорово, но только шансов на выжывание при такой тактике практически никаких. Ну попишешь ты ещё на Win32 годика два-три, пусть даже четыре, а дальше что?
А дальше, если появится рынок .Net приложений переквалифицируюсь. А опыта Си++ ещё никому мало не было. Я тебе больше скажу, сколько сейчас Си++ вакансий и Сколько C#|VB ? Не думаю, что за год акценты сместятся сильно. А вот в PHP/ASP.NET уже сместились. Всему своё время. Ты почему стал учить .Net? За него платят? А мне пока за него никто не платит. Мне платят за жестокие полусишные приложения которые работают и на PII 300 и под Win95. Такие вот у нас тут компы. Так что если для тебя .Net это заработок, для меня это скорее красивый звук.
IT>Вчерашние студенты отберут у тебя последние заказы, и пойдёшь ты, Рома, куда-нибудь автоматизировать 1C (которая к тому времени будет уже переписана на .NET ), а то и сам на ней работать. А что, из бывших программистов обычно получаются высококлассные бухгалтера и экономисты.
Если через 3-4 года я не буду грозно начальствовать над мелким отделом крупных разработок, значит что-то в моей карьере пошло не так и .Net здесь ни при чём.
Здравствуйте, mikа, Вы писали:
M>[...] Может и MS не будет к тому времени. Все может быть.
Вполне возможно, что к тому времени MS будет разбита на несколько более мелких подразделений. Они, кажется, уже начали отпачковываться.
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage — to move in the opposite direction. -- Albert Einstein
Здравствуйте, is, Вы писали:
is>Здравствуйте, mikа, Вы писали:
M>>[...] Может и MS не будет к тому времени. Все может быть.
is>Вполне возможно, что к тому времени MS будет разбита на несколько более мелких подразделений. Они, кажется, уже начали отпачковываться.
Вот за этим я не слежу. Мне еле хватает времени за тем, чтобы успеть за развитием ихних технологий. Если я еще буду и за бизнесом MS-им следить, то точно рехнусь.
Здравствуйте, adontz, Вы писали:
A>Основная проблема ОО языков это постоянные копирования и ещё раз копирования и копирования на всякий случай лишь бы остаться ОО.
Что то я в дотнете особых копирований не приметил.
A> В Си++ эта проблема, пусть и через, как их Влад назвал, заплатки, решаема, в C# паталогически нет.
Ее там просто нет.
A>Ну и потом. Посуди сам. Простой пример. Решение системы линейных уравнений. На Си++ я напишу шаблонную матрицу с методами SolveU и SolveV, а на шарпе что? Наследовать ICollection?
Зачем? Массивов вполне достаточно.
A> Нифига себе производительность будет Сомневаюсь я чтоб дженерики сильно улучшили ситуацию.
На таких задачах дженерики ничуть не хуже плюсовых темплейтов.
A>И я просто не верю, и на то есть причины, что MS будет выпускать API доступное только из managed сборок.
Это не вопрос веры, это свершившийся факт. Индиго работает с СОМ только через интероп и вобще никак без СОМ. Авалон тож целиком менеджед и ac.exe ничего кроме дотнета не знает.
A>Pascal — не MS язык. Практически не изменлся со времён Turbo Pascal.
Лучше не стоит говорить о том о чем ничего не знаешь. Object Pascal менялся практически с каждой версией Дельфи.
A> Добавлялся но не менялся.
Ром, если у тебя завтра на лбу вырастет рог то по твоей логике ты нифига не менялся, просто новая фича добавилась.
A>Basic — MS Язык.
Здравствуйте, adontz, Вы писали:
IT>>То что CoInitialize это функция так это наследие процедурного программирования, в нормальной ОО модели такой функции вообще быть не должно. A>Но нормальная ОО модель замкнута, а СОМ открыт. Написав СОМ сервер я отдаю его не заботясь о совместимости,
Да нифига подобного. Если ты использовал фичи СОМ+ 1.5 то фиг где ты его запустишь кроме как на ХР и 2003. И, в отличие от фреймворка, никакие установки тебе не помогут, для 2000 его просто нет. ПОлитика МС ясна — фреймворк будет частью ОС, точно так же как сейчас СОМ, отличий от него в этом плане нет никаких.
A> а начав писать на шарпе, я сто раз усомнюсь, а будет ли фреймворм, а будут ли другие части на .Net платформе и проч. и проч.
А я не буду, я просто включу в состав нужную мне версию фреймворка, не заботясь о том какая версия компонент будет в системе и что какой то урод выпустил в используемом мной СОМ-сервере несколько версий интерфейса под одним гуидом.
A> Только не надо думасть, что Москва == Россия. Так что я вполне соответствую своему IT (ну и ник ты себе выбрал!) рынку и даже где-то опережаю его потребности.
И нет никакой надежды что IT сектор у вас так и перестанет быть дохлым?
A>Я прекрасно понимаю, что уже сейчас мне надо учить ASP.NET чтоб не отстать в вебе. Уже сейчас, а не через 5 лет. А вот в том что НЕ веб, пока рановато. Зачем учить то что не покупают, да ещё и с опережением в годы?
Затем чтобы не оказаться не у дел когда начнут покупать. В России уже покупают, думаешь до Тбилиси через несколько лет докатится?
A>А дальше, если появится рынок .Net приложений переквалифицируюсь.
Может оказаться поздно.
A>Ты почему стал учить .Net? За него платят?
Следовать в хвосте не лучшая стратегия. Те кто сумеют оценить перспективы заранее в итоге окажутся в большем выигрыше. Как ты думаешь — через пару лет, когда ты наконец решишь заняться дотнетом, ты будешь конкурентом людей, у которых 4-5 летний опыт? Думаю что нет.
Здравствуйте, AndrewVK, Вы писали:
AVK>Следовать в хвосте не лучшая стратегия. Те кто сумеют оценить перспективы заранее в итоге окажутся в большем выигрыше. Как ты думаешь — через пару лет, когда ты наконец решишь заняться дотнетом, ты будешь конкурентом людей, у которых 4-5 летний опыт? Думаю что нет.
AVK я не думаю что опыт программирования есть опыт общения с языком. Через какое-то время наступает стадия когда язык значения не имеет. Выучить синтаксис С# во всех его тонкостях можно за пол-года максимум. А вот дальше или ты думаешь или нет. Если у человека в башке пусто, то никакие годы его не спасут, а если я на плюсах не кнопки клепал, а решал неординарные задачи, то есть этот опыт, использования Алгоримов и Структур данных, опых Архитектуры, кто у меня его отнимет? И через 20 лет он мне пригодится.
Да, за год до появления серьёзного рынка .Net его учить надо, может даже за 2. Но вот я для интереса не раз предлагал Нетовкие решения своим клиентам. Думал и сам подучу и людям польза. А им не надо. Ну то есть совсем не надо Не то что бы надо одному из 100, а вообще никому И не только моим,а вообще никому в этот Нет не нужен. Исключение — зарубежные компании с уже существующими .Net решениями, которые надо просто поддерживать в условия жёсткой локализации. Вот такая вот весёлая у нас ситуация на IT рынке.
Так что у меня 3 выхода.
1) Учить .Net на всякий случай не имея фактически реального опыта работы и ждать когда настанет тот счастливый миг, когда им захотят воспользоваться.
2) Учить .Net и мотать на фиг за границу.
3) Не учить .Net а учить то за что платят.
Это конечно моя личная проблема, но мне не только себя кормить надо, так что....
Здравствуйте, AndrewVK, Вы писали:
A>>Ну и потом. Посуди сам. Простой пример. Решение системы линейных уравнений. На Си++ я напишу шаблонную матрицу с методами SolveU и SolveV, а на шарпе что? Наследовать ICollection?
AVK>Зачем? Массивов вполне достаточно.
Сегодня я хочу float, завтра double, послезавтра захочу прикрутить класс CVeryBigPrecisionFloat из библиотеки SuperMath, и всё массивами? А типами что делать?
A>>И я просто не верю, и на то есть причины, что MS будет выпускать API доступное только из managed сборок. AVK>Это не вопрос веры, это свершившийся факт. Индиго работает с СОМ только через интероп и вобще никак без СОМ. Авалон тож целиком менеджед и ac.exe ничего кроме дотнета не знает.
Ну поглядим — увидим.
A>>Pascal — не MS язык. Практически не изменлся со времён Turbo Pascal. AVK>Лучше не стоит говорить о том о чем ничего не знаешь. Object Pascal менялся практически с каждой версией Дельфи.
Как раз на Дельфи я писал. Менялось окружение, а сам язык не очень. По сравнению с VB6<->VB.NET, а хотя ладно, это пожалуй разные языки под похожими названиями.
A>> Добавлялся но не менялся. AVK>Ром, если у тебя завтра на лбу вырастет рог то по твоей логике ты нифига не менялся, просто новая фича добавилась.
Если у меня вырасет рог, то я пойду и спрошу, "Молилась ты на ночь, Дездемона?"
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, AndrewVK, Вы писали:
AVK>>Следовать в хвосте не лучшая стратегия. Те кто сумеют оценить перспективы заранее в итоге окажутся в большем выигрыше. Как ты думаешь — через пару лет, когда ты наконец решишь заняться дотнетом, ты будешь конкурентом людей, у которых 4-5 летний опыт? Думаю что нет.
A>AVK я не думаю что опыт программирования есть опыт общения с языком.
Не целиком, но и это в том числе. Тем паче что дотнет не язык, а платформа.
A> Через какое-то время наступает стадия когда язык значения не имеет. Выучить синтаксис С# во всех его тонкостях можно за пол-года максимум.
Выучить синтаксис шарпа можно за пару недель досконально, только это нифига не даст.
A>то есть этот опыт, использования Алгоримов и Структур данных, опых Архитектуры, кто у меня его отнимет? И через 20 лет он мне пригодится.
Никто и не спорит. Тем не менее есть довольно специфичный опыт, приобрести который можно программируя только для управляемых платформ.
A>Да, за год до появления серьёзного рынка .Net его учить надо, может даже за 2. Но вот я для интереса не раз предлагал Нетовкие решения своим клиентам. Думал и сам подучу и людям польза. А им не надо. Ну то есть совсем не надо
Меняй клиентов . Лично моим клиентам, когда я непосредственно взаимодействовал с ними, было абсолютно пофигу, лишь бы работало.
A> И не только моим,а вообще никому в этот Нет не нужен. Исключение — зарубежные компании с уже существующими .Net решениями, которые надо просто поддерживать в условия жёсткой локализации. Вот такая вот весёлая у нас ситуация на IT рынке.
По моему ты просто неверно ее оцениваешь. Спрашивать у заказчика какие средства программирования применять это нонсенс.
Здравствуйте, adontz, Вы писали:
A>Сегодня я хочу float, завтра double, послезавтра захочу прикрутить класс CVeryBigPrecisionFloat из библиотеки SuperMath, и всё массивами?
Тогда еще дженериками.
A> А типами что делать?
Все остальное
A>>>И я просто не верю, и на то есть причины, что MS будет выпускать API доступное только из managed сборок. AVK>>Это не вопрос веры, это свершившийся факт. Индиго работает с СОМ только через интероп и вобще никак без СОМ. Авалон тож целиком менеджед и ac.exe ничего кроме дотнета не знает.
A>Ну поглядим — увидим.
Уже можно глядеть. Подробности в longhorn.msdn.microsoft.com.
AVK>>Лучше не стоит говорить о том о чем ничего не знаешь. Object Pascal менялся практически с каждой версией Дельфи.
A>Как раз на Дельфи я писал.
Я тоже. И на TP кстати тож, с версии 3.0.
A> Менялось окружение, а сам язык не очень.
Ага, всего ничего. А ты в курсе что до версии 5.5 в ТР не было ООП? Что в версии 8.0 (ака Дельфи 1) появилась параллельная старой новая поддержка ООП и компонпентный RTTI? Что до версии Дельфи 3 в языке не было понятия интерфейса, а до версии 4 перегрузки методов? Что в Дельфи 4 появилась возможность использовать IDispatch без явной работы с СОМ, как в бейсике? Это ты называешь не очень?
A>По сравнению с VB6<->VB.NET,
Здравствуйте, adontz, Вы писали:
A>Ах вот ты о чём Мда... с русской терминологией у тебя не лады.
А ее просто нет. Найди мне хоть одно упоминание разговора (русского) где бы была рассуждалось о специализациях создаваемыми компилятором и человеком. Я такого не припомню. На том же рсдн когда речь заходит о специализации то, под ней всегда воспринимается ручная.
В общем, я не веноват в том, что твой кругозор ограничен. Перевод же термина самый что ни наесть подходящий и павильный.
A> А я то и не понял, То что ты говоришь это явная специализация. A>user-defined кстати можно было перевести как пользовательская, но уж никак не ручная.
Ссылки, плиз, в студию.
A>
A>template <typename T>
A>class A
A>{
A>}
A>
A>Неявная потому что компилятор сам решает какие операторы, функции и проч использовать.
Нда. Разговор прекращаю потому, как дальнейшее обсуждение приведет к тому что меня обвинят в переходе на личности.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Sinclair, Вы писали:
S>Рома, ты будешь смеяться, но начиная с 1920-1940 годов никаких новых задач программирование не решило. Тезис Черча очертил круг алгоритмически разрешимых задач, и с тех пор этот круг не пересматривался. Ни процедурное, ни объектно-ориентированное, ни логическое, ни функциональное программирование не внесли ничего нового. И есть мнение, что уже не внесут. S>Поэтому вся история программирования — это борьба со сложностью, или попытки предоставить для решения тех же задач более удобные средства.
В точку!
Просто у Ромы явное нежелание принимать правду. Так что все эти споры бессмысленны.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, dad, Вы писали:
dad>мне приходится код меня только когда я с удивлением обнаруживаю, что vc компилит все что ни попадя
Значит ты меньше времени этим занимаешся. Ну, или тебя пронесло. А вот я за 10 лет несколько раз нарвался. Нельзя сказать, что были сильные проблемы, но все же.
dad>но сравнивать то их чего ? разные ведь вещи.
Чем же они разные если я ими обоими решают одни и те же задачи? Они разные по устройству, но используются для одинакового применения. Есть очень незначительное количество нишь в которых дотнет неприменим. И эти ниши большинство программистов не волнуют.
dad>надо сравнивать будет mono когда реализация под винды выйдет с .net.
Моно для виндовс есть с самого начала. Качай и сравнивай. А сравнивать С++ и дотнет стал не я. И единственной целью этих людей было убидить себя в том, что им не нужно напрягаться и учить дотнет. Мол скорость кода неприемлемо мала... а стало быть нафиг он пупал...
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, AndrewVK, Вы писали:
VD>>Вот в ИЛДАСМе как раз таки появились параметры <!0> или что-то вроде того.
AVK>Появились, но в IL это почти обычные параметры с хитрым именем.
Тут оно как... или IL менялся, или нет. Тут как с беременностью...
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, AndrewVK, Вы писали:
A>>>Basic — MS Язык. AVK>>Ты ошибаешься. Бейсик не МС придумала.
A>Для ПК именно MS
Твои знаия постоянно рудут. Даже МС придумл Васин не для ПК. По крайней мере не для IBM PC.
МС просто лецинзировал свой Васик для заихивания его в ROM BIOS.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.