Здравствуйте, MxKazan, Вы писали:
MK>Здравствуйте, gandjustas, Вы писали:
G>>Думаете нельзя в C# на стеке данные размещать? MK>Думаю конкретно esil имеет ввиду, что нельзя разместить в стеке произвольные данные. MK>Массивы, например, туда не засунуть, ибо class
MK>А вот что имел ввиду minorlogic я, чесс говоря, тоже не понял. MK>Но эт не страшно
Ну он как раз и имеет в виду, что мы можем произвольные типы размещать на стэке, что очень полезно, т. к. позволяет оставаться в рамках ООП-подхода и избегать множества выделений памяти в куче.
Здравствуйте, esil, Вы писали:
E>Здравствуйте, MxKazan, Вы писали:
MK>>Здравствуйте, gandjustas, Вы писали:
G>>>Думаете нельзя в C# на стеке данные размещать? MK>>Думаю конкретно esil имеет ввиду, что нельзя разместить в стеке произвольные данные. MK>>Массивы, например, туда не засунуть, ибо class
MK>>А вот что имел ввиду minorlogic я, чесс говоря, тоже не понял. MK>>Но эт не страшно
E>Ну он как раз и имеет в виду, что мы можем произвольные типы размещать на стэке, что очень полезно, т. к. позволяет оставаться в рамках ООП-подхода и избегать множества выделений памяти в куче.
Как будут работать виртуальные методы при размещении объектов на стеке?
просто вот когда дело доходит до новых апи — здравствуй интероп с нейтивом, хочешь массив на стеке — здравствуй ансейф, тот же пэйнт.нет афаир просто насквозь пропитан ансейфом, зачем тогда сишарп? хорошие вещи делаются только в нейтиве, вот тот же пример с выводом строк, для такой забавы как флейм на рсдн и стримы с регекспами не грех использовать, а вот если бы ето была программа промышленных маштабов — скажим анализатор логов, то здравствуй мем-маппед файлы да стейт-машины с отсутствием аллокаций, и писать етона си++ без ifstream и multiset, а не на сишарпе с gc и аллокацией на каждый чих.
Здравствуйте, Erop, Вы писали:
G>>Кстати, как на делфи с задачкой про все строки файла... E>Если вдруг ты сможешь понятно описать чего тебе надобно, старче, то она очевидно решается на ЛЮБОМ АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ, даже на FORTRAN И basic!
Ты не понял, это у шарпников новый фетиш такой: острое желание показать как можно выпендриться на шарпе. Синтаксический оверхедЪ у них там меньше.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, esil, Вы писали:
E>>Здравствуйте, gandjustas, Вы писали:
E>>>>Да это как раз у Вас полнейший неадекват какой-то, постоянное съезжание с темы, ответы на посты в отрыве от обсуждаемого контекста.
E>>>>Там же написано, что подсказка. Додуматься, что очевидно имелось в виду то, что можно заменить int на произвольный класс, и никакого malloca/free не понадобится, не судьба?
E>>>>P. S. Даже попкорн полохо лезет под такой некачественный флейм.
G>>>Думаете нельзя в C# на стеке данные размещать? G>>>Вот в Java нельзя, только элементарные типы, в C# есть стурктуры.
G>>>Не надо показывать свое незнание.
E>>А вот обязательно было в моём утверждении подменять "произвольный класс" на "данные"? Именно это я и имел в виду, говоря про неадекват. G>А вы можете объяснить разницу?
Ну вот такой довольно типичный для С++ пример разве разницу не объясняет:
Здравствуйте, gandjustas, Вы писали:
G>>>>Думаете нельзя в C# на стеке данные размещать? MK>>>Думаю конкретно esil имеет ввиду, что нельзя разместить в стеке произвольные данные. MK>>>Массивы, например, туда не засунуть, ибо class
MK>>>А вот что имел ввиду minorlogic я, чесс говоря, тоже не понял. MK>>>Но эт не страшно
E>>Ну он как раз и имеет в виду, что мы можем произвольные типы размещать на стэке, что очень полезно, т. к. позволяет оставаться в рамках ООП-подхода и избегать множества выделений памяти в куче. G>Как будут работать виртуальные методы при размещении объектов на стеке?
Точно так же, как и при размещении в куче. По указателю на базовый класс можно получить таблицу виртуальных функций, а где в памяти объект этого класса расположен — не важно. Приме ниже привёл.
Здравствуйте, Хвост, Вы писали:
Х>потому что я был уверен что struct в C# ето только данные и все операции с ним аля положить в массив и вызвать метод происходят только в его боксовом представлении
Угу. Еще ты был уверен про уровень
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, NikeByNike, Вы писали:
NBN>>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>>читай внимательно. в языках с gc гарантия — на 3x, можно и меньше. в C++ — гарантий никаких, расход может быть каким угодно прсто потому что память усеяна мелкими дырками
NBN>>C++ очень универсальный язык Он позволяет писать так как тебе нужно. В частности обеспечить все гарантии по чему хочешь, чем я, кстати, на днях воспользовался. G>Я вот тут на днях написал на C# библиотеку для работы с конечными автоматами. Она генерирует в рантайме код автомата по описанию, а потом использует его. G>На C++ такое получится?
И что же из себя представляет описание? И что из этого описания генерируется? И зачем это нужно в рантайм, почему нельзя в compile-time?
Здравствуйте, MxKazan, Вы писали:
MK> Про слив понравилось! Посмотрим как ты напишешь программу на C++ с графическим интерфейсом, но независимую от платформы.
Здравствуйте, esil, Вы писали:
NBN>>>C++ очень универсальный язык Он позволяет писать так как тебе нужно. В частности обеспечить все гарантии по чему хочешь, чем я, кстати, на днях воспользовался. G>>Я вот тут на днях написал на C# библиотеку для работы с конечными автоматами. Она генерирует в рантайме код автомата по описанию, а потом использует его. G>>На C++ такое получится?
E>И что же из себя представляет описание? И что из этого описания генерируется? И зачем это нужно в рантайм, почему нельзя в compile-time?
В compile-time Вы ограничены статичным автоматом, либо вынуждены использовать интерпретируемый автомат (например, с описанием на DSL-языке).
Здравствуйте, MxKazan, Вы писали:
MK>Здравствуйте, Хвост, Вы писали:
Х>>потому что я был уверен что struct в C# ето только данные и все операции с ним аля положить в массив и вызвать метод происходят только в его боксовом представлении MK>Угу. Еще ты был уверен про уровень
разработчиков .Net. MK>Что теперь мешает и мне написать подобный пост про тебя?
ну, давай по-порядку, на С# я писал давно и немного, на С++ на порядок больше, и есстествено что-то могло забытся, к тому же если ты проследишь начало темы про структуры, то она была о размещении их в массиве, и тут без ансейфа вариант действительно только один — боксинг. Теперь по-поводу "подобный пост про тебя", пиши пожалуйста, ведь ето ты будешь писать обо мне как о разработчике на C#, что ещё раз подтвердит мои слова , C# (особенно в версии 3.5) ето очень мощный язык, но для приложений требующих производительности, малой затраты ресурсов, быстрой реакции интерфейса ето просто моветон. Прототипы писать одно удовольствие, но тут как говорится — хоть на питоне. Дотнетчики же говорят "ааа, да ты чего, купи 4 ядра, возьми 16 гб" меня просто умиляют, вы поймите, что достойная производительность ето дополнительный функционал, ето когда спеллчекер подчёркивает красным не через две секунды после набора слова а сразу, ето когда в CAD'ах скролл рабочей области работает плавно, ето когда скриптовый google docs интерфейс не лагает, ето когда ты можешь в корелдро видеть тридцать слоёв одновременно а не пять, или когда диаграмму в таблице можно увидеть не только в плоском виде а в 3д и повращать, т.е. ещё раз, дополнительные ресурсы — дополнительный функционал. Вся ета дотнетчина на десктопах ето от бедности, когда нет денег нанять высокопрофессиональных программистов на С++ чтобы сделать проект и планка качества невысока, сойдёт и сишарп. Ентерпрайз лично у меня никогда не ассоциировался с качественным кодом, имхо там главная цель — лишь бы правильно работало, а уж быстро ли, медленно ли, интерфейс кривой или прямой — ето уже волнует в пятую очередь. Что насчёт дотнета на серверах — я только за, там дотнет ето просто клей, логика, вся тяжёлая работа лежит на сиквел-серверах + если надо какие-либо нейтив компоненты для обработки чего-нить быстрого (звук/картинки/видео). Заменить слово C# например на Python и ничего не поменяется, абсолютно. C# это клей, полный аналог VB конца 90-х по своему назначению, и плз, не надо его пихать в десктопы, точнее у вас ничего не выйдет, т.к. вы десктопы на C# не пишете, если вы разумны или у вас разумный руководитель.
Здравствуйте, Хвост, Вы писали:
Х>ну, давай по-порядку, на С# я писал давно и немного, на С++ на порядок больше, и есстествено что-то могло забытся, к тому же если ты проследишь начало темы про структуры, то она была о размещении их в массиве, и тут без ансейфа вариант действительно только один — боксинг. Теперь по-поводу "подобный пост про тебя", пиши пожалуйста, ведь ето ты будешь писать обо мне как о разработчике на C#, что ещё раз подтвердит мои слова , C# (особенно в версии 3.5) ето очень мощный язык, но для приложений требующих производительности, малой затраты ресурсов, быстрой реакции интерфейса ето просто моветон. Прототипы писать одно удовольствие, но тут как говорится — хоть на питоне. Дотнетчики же говорят "ааа, да ты чего, купи 4 ядра, возьми 16 гб" меня просто умиляют, вы поймите, что достойная производительность ето дополнительный функционал, ето когда спеллчекер подчёркивает красным не через две секунды после набора слова а сразу, ето когда в CAD'ах скролл рабочей области работает плавно, ето когда скриптовый google docs интерфейс не лагает, ето когда ты можешь в корелдро видеть тридцать слоёв одновременно а не пять, или когда диаграмму в таблице можно увидеть не только в плоском виде а в 3д и повращать, т.е. ещё раз, дополнительные ресурсы — дополнительный функционал. Вся ета дотнетчина на десктопах ето от бедности, когда нет денег нанять высокопрофессиональных программистов на С++ чтобы сделать проект и планка качества невысока, сойдёт и сишарп. Ентерпрайз лично у меня никогда не ассоциировался с качественным кодом, имхо там главная цель — лишь бы правильно работало, а уж быстро ли, медленно ли, интерфейс кривой или прямой — ето уже волнует в пятую очередь. Что насчёт дотнета на серверах — я только за, там дотнет ето просто клей, логика, вся тяжёлая работа лежит на сиквел-серверах + если надо какие-либо нейтив компоненты для обработки чего-нить быстрого (звук/картинки/видео). Заменить слово C# например на Python и ничего не поменяется, абсолютно. C# это клей, полный аналог VB конца 90-х по своему назначению, и плз, не надо его пихать в десктопы, точнее у вас ничего не выйдет, т.к. вы десктопы на C# не пишете, если вы разумны или у вас разумный руководитель.
Стена текста и все не по делу...
У нас пользователи в госструктурах на компах, которым уже по 2-4 года работают с нашим клиентом на .NET уже больше года в production режиме. Клиент довольно тяжелый: диалоги, графики, отчеты, таблицы, формы — полный комплект. Нареканий на производительность до сих пор не было. "ЧЯДНТ?"
Здравствуйте, criosray, Вы писали:
C>У нас пользователи в госструктурах на компах, которым уже по 2-4 года работают с нашим клиентом на .NET уже больше года в production режиме. Клиент довольно тяжелый: диалоги, графики, отчеты, таблицы, формы — полный комплект. Нареканий на производительность до сих пор не было. "ЧЯДНТ?"
да всё ты делаешь так, я же говорю, VB 21-го века, как бы понимаешь, на примере моего проекта, относительно небольшое приложение, формы, диалоги, отчёты, никто не жалуется, только я вот смотрю на как формочка появляется и меня грусть берёт, вот реально по ощущениям пластилин какой-то, оно то пользователю кажется и ничего, ну полсекунды на форму, или две — а мне то понятно что та же самая форма с теми же самыми контролами будь она писана на MFC например — появилась бы мнгновенно, потому что нет хмля, нет джита, нет гц будь он неладен. Но пипл хавает , ему лишь бы работало, а будет отчёт генерится 5 минут или 5 секунд — неважно, лишь бы не пять часов. Потому что ентерпрайз, другой такой программки у них нет и не будет, сравнивать не с чем. На десктопах ситуация кардинально другая — тут каждый сам за себя, пользователь выбирает, а не как в ентерпрайзах — "мы сейчас к вам прийдём и всё автоматизируем процесс", у пользователя процесс простой — почту почитать, фильму посмотреть, порисовать, поболтать, документ набрать, и тут ты к каждому в дом не прийдёшь с уговором, не создашь индивидуальный софт для каждого десктопа, тебе нужно сделать нацеленый на широкую аудиторию качественный софт, только вот незадача, а качественный нейтив то в этой области уже есть, а лучше качественного нейтива может быть только другой качественный нейтив с большим функционалом, а функционал реально ограничен только одним ресурсом — ресурсом компьютера. Если бы дотнет хотя бы в полтора раза ускорял разработку качественного десктопного софта, за 8 лет на нём бы уже написали немеряно десктоп приложений (посмотрите на C++, когда появился первый промышленный компилятор, и сколько софта писалось на C++ через 8 лет). Однако есть момент. Качественного десктопного софта на C# нет.
Здравствуйте, gandjustas, Вы писали:
G>Как будут работать виртуальные методы при размещении объектов на стеке?
Блин, следуй своим же советам! Заботай таки С++, а потом уже критикуй!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Хвост, Вы писали:
C>>У нас пользователи в госструктурах на компах, которым уже по 2-4 года работают с нашим клиентом на .NET уже больше года в production режиме. Клиент довольно тяжелый: диалоги, графики, отчеты, таблицы, формы — полный комплект. Нареканий на производительность до сих пор не было. "ЧЯДНТ?"
Х>да всё ты делаешь так, я же говорю, VB 21-го века, как бы понимаешь, на примере моего проекта, относительно небольшое приложение, формы, диалоги, отчёты, никто не жалуется,
Ну если приложение на 3 млн. строк кода "небольшое"...
Х>только я вот смотрю на как формочка появляется и меня грусть берёт, вот реально по ощущениям пластилин какой-то,
Может дело вовсе не в .NET?
Х>оно то пользователю кажется и ничего, ну полсекунды на форму, или две — а мне то понятно что та же самая форма с теми же самыми контролами будь она писана на MFC например — появилась бы мнгновенно,
2 секунды на форму? Дело точно не в .NET.
Х>потому что нет хмля, нет джита, нет гц будь он неладен. Но пипл хавает , ему лишь бы работало, а будет отчёт генерится 5 минут или 5 секунд — неважно, лишь бы не пять часов.
Генерация отчета точно не ограничена дотнетом. Там 95% скорости генерации зависит от доступа к базе.
Х>Потому что ентерпрайз, другой такой программки у них нет и не будет, сравнивать не с чем. На десктопах ситуация кардинально другая — тут каждый сам за себя, пользователь выбирает, а не как в ентерпрайзах — "мы сейчас к вам прийдём и всё автоматизируем процесс", у пользователя процесс простой — почту почитать, фильму посмотреть, порисовать, поболтать, документ набрать, и тут ты к каждому в дом не прийдёшь с уговором, не создашь индивидуальный софт для каждого десктопа, тебе нужно сделать нацеленый на широкую аудиторию качественный софт, только вот незадача, а качественный нейтив то в этой области уже есть, а лучше качественного нейтива может быть только другой качественный нейтив с большим функционалом,
Вы глубоко заблуждаетесь. Лучший тому пример — Microsoft Blend, и AutoCAD, последних версий.
Х>а функционал реально ограничен только одним ресурсом — ресурсом компьютера. Если бы дотнет хотя бы в полтора раза ускорял разработку качественного десктопного софта,
Ускоряет не в полтора раза, а как-минимум в три раза (в некоторых случаях может спокойно достичь десятикратного ускорения).
Сужу на собственном опыте — я много лет тому назад перешел с С/С++ на .NET и уже тогда он был более оправдан для большого класса приложений, а на сегодня так и подавно.
Благодаря .NET софт получается еще и много более качественный. Мы — адепты TDD. У нас 95% покрытие тестами.
Х>за 8 лет на нём бы уже написали немеряно десктоп приложений (посмотрите на C++, когда появился первый промышленный компилятор, и сколько софта писалось на C++ через 8 лет). Однако есть момент. Качественного десктопного софта на C# нет.
Продолжайте верить в это.
Здравствуйте, gandjustas, Вы писали:
G>Выразительность языка заключается не в возможности решить задачу, в читаемости, поддерживаемости и расширяемости этого решения. (это упрощенно)
Если я верно понял, тебе хочется уметь проверять есть ли в строке не менее трёх слов подряд, упорядоченных по алфавиту?
Так? IMHO, это просто, понятно и поддерживаемо записывается на ЛЮБОМ АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ...
Ну, во всяком случае теми, кто умеет программировать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, gandjustas, Вы писали:
G>Дейсвительно, не 6, а 7 десктопных программ которыми я пользуюсь: браузер, почтовик, paint.net, live writer, qip, skype, vs2008. G>Media Player был в комплекте, офис тоже. G>Остальное запускаю редко.
А "офис" -- это надо читать, как "ворд", или, как "ещё пять-семь программ"?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, criosray, Вы писали:
Х>>да всё ты делаешь так, я же говорю, VB 21-го века, как бы понимаешь, на примере моего проекта, относительно небольшое приложение, формы, диалоги, отчёты, никто не жалуется, C>Ну если приложение на 3 млн. строк кода "небольшое"...
я говорил о проекте в котором участвовал я, он был на порядок
3 млн. строк кода внушает, ето около 40 человеколет.
C>Может дело вовсе не в .NET?
может
C>2 секунды на форму? Дело точно не в .NET.
а может и в .NET, я не профайлил, знаете почему? потому что nobody care
C>Вы глубоко заблуждаетесь. Лучший тому пример — Microsoft Blend, и AutoCAD, последних версий.
Blend ето второй продукт о котором я услышал первый раз в жизни, глянул — софт для дотнета на дотнете, вполне логично.
Насчёт автокада я незнаю откуда пошло ето регулярно звучащее заблуждение, но я знаю одно, автокад — ето С++, то что автодеск выпустила пакет апи для интеропа с дотнетом не превращает продукт из нейтива в менеджед.
C>Благодаря .NET софт получается еще и много более качественный. Мы — адепты TDD. У нас 95% покрытие тестами.
я думаю TDD как методология слабо коррелирует с платформой или языком разработки.
Х>>за 8 лет на нём бы уже написали немеряно десктоп приложений (посмотрите на C++, когда появился первый промышленный компилятор, и сколько софта писалось на C++ через 8 лет). Однако есть момент. Качественного десктопного софта на C# нет. C>Продолжайте верить в это.
в ето не надо верить, достаточно просто посмотреть на список установленных программ.