Re[27]: Работа - с чего начать: С++ или С#?
От: esil  
Дата: 20.03.09 15:05
Оценка:
Здравствуйте, MxKazan, Вы писали:

MK>Здравствуйте, gandjustas, Вы писали:


G>>Думаете нельзя в C# на стеке данные размещать?

MK>Думаю конкретно esil имеет ввиду, что нельзя разместить в стеке произвольные данные.
MK>Массивы, например, туда не засунуть, ибо class

MK>А вот что имел ввиду minorlogic я, чесс говоря, тоже не понял.

MK>Но эт не страшно

Ну он как раз и имеет в виду, что мы можем произвольные типы размещать на стэке, что очень полезно, т. к. позволяет оставаться в рамках ООП-подхода и избегать множества выделений памяти в куче.
Re[28]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.03.09 15:10
Оценка: :))) :)
Здравствуйте, esil, Вы писали:

E>Здравствуйте, MxKazan, Вы писали:


MK>>Здравствуйте, gandjustas, Вы писали:


G>>>Думаете нельзя в C# на стеке данные размещать?

MK>>Думаю конкретно esil имеет ввиду, что нельзя разместить в стеке произвольные данные.
MK>>Массивы, например, туда не засунуть, ибо class

MK>>А вот что имел ввиду minorlogic я, чесс говоря, тоже не понял.

MK>>Но эт не страшно

E>Ну он как раз и имеет в виду, что мы можем произвольные типы размещать на стэке, что очень полезно, т. к. позволяет оставаться в рамках ООП-подхода и избегать множества выделений памяти в куче.

Как будут работать виртуальные методы при размещении объектов на стеке?
Re[65]: Работа - с чего начать: С++ или С#?
От: Хвост  
Дата: 20.03.09 15:14
Оценка: +1 -1
Здравствуйте, gandjustas, Вы писали:

G>
G>var stackArrayOfStruct = stackalloc SomeStruct[10];
G>


хы, ансейф, вперёд к С++?

просто вот когда дело доходит до новых апи — здравствуй интероп с нейтивом, хочешь массив на стеке — здравствуй ансейф, тот же пэйнт.нет афаир просто насквозь пропитан ансейфом, зачем тогда сишарп? хорошие вещи делаются только в нейтиве, вот тот же пример с выводом строк, для такой забавы как флейм на рсдн и стримы с регекспами не грех использовать, а вот если бы ето была программа промышленных маштабов — скажим анализатор логов, то здравствуй мем-маппед файлы да стейт-машины с отсутствием аллокаций, и писать етона си++ без ifstream и multiset, а не на сишарпе с gc и аллокацией на каждый чих.
People write code, programming languages don't.
Re[56]: Работа - с чего начать: С++ или С#?
От: CreatorCray  
Дата: 20.03.09 15:14
Оценка: +2 -1 :)
Здравствуйте, Erop, Вы писали:

G>>Кстати, как на делфи с задачкой про все строки файла...

E>Если вдруг ты сможешь понятно описать чего тебе надобно, старче, то она очевидно решается на ЛЮБОМ АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ, даже на FORTRAN И basic!
Ты не понял, это у шарпников новый фетиш такой: острое желание показать как можно выпендриться на шарпе. Синтаксический оверхедЪ у них там меньше.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[28]: Работа - с чего начать: С++ или С#?
От: esil  
Дата: 20.03.09 15:16
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, esil, Вы писали:


E>>Здравствуйте, gandjustas, Вы писали:


E>>>>Да это как раз у Вас полнейший неадекват какой-то, постоянное съезжание с темы, ответы на посты в отрыве от обсуждаемого контекста.


E>>>>Там же написано, что подсказка. Додуматься, что очевидно имелось в виду то, что можно заменить int на произвольный класс, и никакого malloca/free не понадобится, не судьба?


E>>>>P. S. Даже попкорн полохо лезет под такой некачественный флейм.


G>>>Думаете нельзя в C# на стеке данные размещать?

G>>>Вот в Java нельзя, только элементарные типы, в C# есть стурктуры.

G>>>Не надо показывать свое незнание.


E>>А вот обязательно было в моём утверждении подменять "произвольный класс" на "данные"? Именно это я и имел в виду, говоря про неадекват.

G>А вы можете объяснить разницу?

Ну вот такой довольно типичный для С++ пример разве разницу не объясняет:


class some_abstract_class {
public:
    some_abstract_class() {}
    virtual ~some_abstract_class() {}

    virtual void some_virtual_function() = 0;
};

void some_function_that_uses_abstract_class(some_abstract_class * cls) {
    cls->some_virtual_function();
}

class some_abstract_class_implementation: public some_abstract_class {
public:
    some_abstract_class_implementation() {}
    virtual ~some_abstract_class_implementation() {}

    virtual void some_virtual_function() {
    }
};

void some_function_usage() {
    some_abstract_class_implementation impl;
    some_function_that_uses_abstract_class(&impl);
}


?
Re[29]: Работа - с чего начать: С++ или С#?
От: esil  
Дата: 20.03.09 15:26
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

G>>>>Думаете нельзя в C# на стеке данные размещать?

MK>>>Думаю конкретно esil имеет ввиду, что нельзя разместить в стеке произвольные данные.
MK>>>Массивы, например, туда не засунуть, ибо class

MK>>>А вот что имел ввиду minorlogic я, чесс говоря, тоже не понял.

MK>>>Но эт не страшно

E>>Ну он как раз и имеет в виду, что мы можем произвольные типы размещать на стэке, что очень полезно, т. к. позволяет оставаться в рамках ООП-подхода и избегать множества выделений памяти в куче.

G>Как будут работать виртуальные методы при размещении объектов на стеке?

Точно так же, как и при размещении в куче. По указателю на базовый класс можно получить таблицу виртуальных функций, а где в памяти объект этого класса расположен — не важно. Приме ниже привёл.
Re[64]: Работа - с чего начать: С++ или С#?
От: MxKazan Португалия  
Дата: 20.03.09 15:33
Оценка:
Здравствуйте, Хвост, Вы писали:

Х>потому что я был уверен что struct в C# ето только данные и все операции с ним аля положить в массив и вызвать метод происходят только в его боксовом представлении

Угу. Еще ты был уверен про уровень
Автор: Хвост
Дата: 20.03.09
разработчиков .Net.
Что теперь мешает и мне написать подобный пост про тебя?
Re[25]: Работа - с чего начать: С++ или С#?
От: esil  
Дата: 20.03.09 15:38
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, NikeByNike, Вы писали:


NBN>>Здравствуйте, BulatZiganshin, Вы писали:


BZ>>>читай внимательно. в языках с gc гарантия — на 3x, можно и меньше. в C++ — гарантий никаких, расход может быть каким угодно прсто потому что память усеяна мелкими дырками


NBN>>C++ очень универсальный язык Он позволяет писать так как тебе нужно. В частности обеспечить все гарантии по чему хочешь, чем я, кстати, на днях воспользовался.

G>Я вот тут на днях написал на C# библиотеку для работы с конечными автоматами. Она генерирует в рантайме код автомата по описанию, а потом использует его.
G>На C++ такое получится?

И что же из себя представляет описание? И что из этого описания генерируется? И зачем это нужно в рантайм, почему нельзя в compile-time?
Re[3]: Работа - с чего начать: С++ или С#?
От: Regulus  
Дата: 20.03.09 15:55
Оценка: :)
Здравствуйте, MxKazan, Вы писали:

MK> Про слив понравилось! Посмотрим как ты напишешь программу на C++ с графическим интерфейсом, но независимую от платформы.


QT слыхал о таком?
Re[26]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 20.03.09 15:58
Оценка:
Здравствуйте, esil, Вы писали:

NBN>>>C++ очень универсальный язык Он позволяет писать так как тебе нужно. В частности обеспечить все гарантии по чему хочешь, чем я, кстати, на днях воспользовался.

G>>Я вот тут на днях написал на C# библиотеку для работы с конечными автоматами. Она генерирует в рантайме код автомата по описанию, а потом использует его.
G>>На C++ такое получится?

E>И что же из себя представляет описание? И что из этого описания генерируется? И зачем это нужно в рантайм, почему нельзя в compile-time?


В compile-time Вы ограничены статичным автоматом, либо вынуждены использовать интерпретируемый автомат (например, с описанием на DSL-языке).
Re[65]: Работа - с чего начать: С++ или С#?
От: Хвост  
Дата: 20.03.09 16:04
Оценка: +2 -1
Здравствуйте, MxKazan, Вы писали:

MK>Здравствуйте, Хвост, Вы писали:


Х>>потому что я был уверен что struct в C# ето только данные и все операции с ним аля положить в массив и вызвать метод происходят только в его боксовом представлении

MK>Угу. Еще ты был уверен про уровень
Автор: Хвост
Дата: 20.03.09
разработчиков .Net.

MK>Что теперь мешает и мне написать подобный пост про тебя?
ну, давай по-порядку, на С# я писал давно и немного, на С++ на порядок больше, и есстествено что-то могло забытся, к тому же если ты проследишь начало темы про структуры, то она была о размещении их в массиве, и тут без ансейфа вариант действительно только один — боксинг. Теперь по-поводу "подобный пост про тебя", пиши пожалуйста, ведь ето ты будешь писать обо мне как о разработчике на C#, что ещё раз подтвердит мои слова , C# (особенно в версии 3.5) ето очень мощный язык, но для приложений требующих производительности, малой затраты ресурсов, быстрой реакции интерфейса ето просто моветон. Прототипы писать одно удовольствие, но тут как говорится — хоть на питоне. Дотнетчики же говорят "ааа, да ты чего, купи 4 ядра, возьми 16 гб" меня просто умиляют, вы поймите, что достойная производительность ето дополнительный функционал, ето когда спеллчекер подчёркивает красным не через две секунды после набора слова а сразу, ето когда в CAD'ах скролл рабочей области работает плавно, ето когда скриптовый google docs интерфейс не лагает, ето когда ты можешь в корелдро видеть тридцать слоёв одновременно а не пять, или когда диаграмму в таблице можно увидеть не только в плоском виде а в 3д и повращать, т.е. ещё раз, дополнительные ресурсы — дополнительный функционал. Вся ета дотнетчина на десктопах ето от бедности, когда нет денег нанять высокопрофессиональных программистов на С++ чтобы сделать проект и планка качества невысока, сойдёт и сишарп. Ентерпрайз лично у меня никогда не ассоциировался с качественным кодом, имхо там главная цель — лишь бы правильно работало, а уж быстро ли, медленно ли, интерфейс кривой или прямой — ето уже волнует в пятую очередь. Что насчёт дотнета на серверах — я только за, там дотнет ето просто клей, логика, вся тяжёлая работа лежит на сиквел-серверах + если надо какие-либо нейтив компоненты для обработки чего-нить быстрого (звук/картинки/видео). Заменить слово C# например на Python и ничего не поменяется, абсолютно. C# это клей, полный аналог VB конца 90-х по своему назначению, и плз, не надо его пихать в десктопы, точнее у вас ничего не выйдет, т.к. вы десктопы на C# не пишете, если вы разумны или у вас разумный руководитель.
People write code, programming languages don't.
Re[66]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 20.03.09 16:12
Оценка: +1 -1 :)
Здравствуйте, Хвост, Вы писали:

Х>ну, давай по-порядку, на С# я писал давно и немного, на С++ на порядок больше, и есстествено что-то могло забытся, к тому же если ты проследишь начало темы про структуры, то она была о размещении их в массиве, и тут без ансейфа вариант действительно только один — боксинг. Теперь по-поводу "подобный пост про тебя", пиши пожалуйста, ведь ето ты будешь писать обо мне как о разработчике на C#, что ещё раз подтвердит мои слова , C# (особенно в версии 3.5) ето очень мощный язык, но для приложений требующих производительности, малой затраты ресурсов, быстрой реакции интерфейса ето просто моветон. Прототипы писать одно удовольствие, но тут как говорится — хоть на питоне. Дотнетчики же говорят "ааа, да ты чего, купи 4 ядра, возьми 16 гб" меня просто умиляют, вы поймите, что достойная производительность ето дополнительный функционал, ето когда спеллчекер подчёркивает красным не через две секунды после набора слова а сразу, ето когда в CAD'ах скролл рабочей области работает плавно, ето когда скриптовый google docs интерфейс не лагает, ето когда ты можешь в корелдро видеть тридцать слоёв одновременно а не пять, или когда диаграмму в таблице можно увидеть не только в плоском виде а в 3д и повращать, т.е. ещё раз, дополнительные ресурсы — дополнительный функционал. Вся ета дотнетчина на десктопах ето от бедности, когда нет денег нанять высокопрофессиональных программистов на С++ чтобы сделать проект и планка качества невысока, сойдёт и сишарп. Ентерпрайз лично у меня никогда не ассоциировался с качественным кодом, имхо там главная цель — лишь бы правильно работало, а уж быстро ли, медленно ли, интерфейс кривой или прямой — ето уже волнует в пятую очередь. Что насчёт дотнета на серверах — я только за, там дотнет ето просто клей, логика, вся тяжёлая работа лежит на сиквел-серверах + если надо какие-либо нейтив компоненты для обработки чего-нить быстрого (звук/картинки/видео). Заменить слово C# например на Python и ничего не поменяется, абсолютно. C# это клей, полный аналог VB конца 90-х по своему назначению, и плз, не надо его пихать в десктопы, точнее у вас ничего не выйдет, т.к. вы десктопы на C# не пишете, если вы разумны или у вас разумный руководитель.


Стена текста и все не по делу...

У нас пользователи в госструктурах на компах, которым уже по 2-4 года работают с нашим клиентом на .NET уже больше года в production режиме. Клиент довольно тяжелый: диалоги, графики, отчеты, таблицы, формы — полный комплект. Нареканий на производительность до сих пор не было. "ЧЯДНТ?"
Re[67]: Работа - с чего начать: С++ или С#?
От: Хвост  
Дата: 20.03.09 16:38
Оценка: 1 (1) +2 -2
Здравствуйте, criosray, Вы писали:

C>У нас пользователи в госструктурах на компах, которым уже по 2-4 года работают с нашим клиентом на .NET уже больше года в production режиме. Клиент довольно тяжелый: диалоги, графики, отчеты, таблицы, формы — полный комплект. Нареканий на производительность до сих пор не было. "ЧЯДНТ?"


да всё ты делаешь так, я же говорю, VB 21-го века, как бы понимаешь, на примере моего проекта, относительно небольшое приложение, формы, диалоги, отчёты, никто не жалуется, только я вот смотрю на как формочка появляется и меня грусть берёт, вот реально по ощущениям пластилин какой-то, оно то пользователю кажется и ничего, ну полсекунды на форму, или две — а мне то понятно что та же самая форма с теми же самыми контролами будь она писана на MFC например — появилась бы мнгновенно, потому что нет хмля, нет джита, нет гц будь он неладен. Но пипл хавает , ему лишь бы работало, а будет отчёт генерится 5 минут или 5 секунд — неважно, лишь бы не пять часов. Потому что ентерпрайз, другой такой программки у них нет и не будет, сравнивать не с чем. На десктопах ситуация кардинально другая — тут каждый сам за себя, пользователь выбирает, а не как в ентерпрайзах — "мы сейчас к вам прийдём и всё автоматизируем процесс", у пользователя процесс простой — почту почитать, фильму посмотреть, порисовать, поболтать, документ набрать, и тут ты к каждому в дом не прийдёшь с уговором, не создашь индивидуальный софт для каждого десктопа, тебе нужно сделать нацеленый на широкую аудиторию качественный софт, только вот незадача, а качественный нейтив то в этой области уже есть, а лучше качественного нейтива может быть только другой качественный нейтив с большим функционалом, а функционал реально ограничен только одним ресурсом — ресурсом компьютера. Если бы дотнет хотя бы в полтора раза ускорял разработку качественного десктопного софта, за 8 лет на нём бы уже написали немеряно десктоп приложений (посмотрите на C++, когда появился первый промышленный компилятор, и сколько софта писалось на C++ через 8 лет). Однако есть момент. Качественного десктопного софта на C# нет.
People write code, programming languages don't.
Re[29]: Следуй своим же советам!
От: Erop Россия  
Дата: 20.03.09 16:49
Оценка: +1 -1
Здравствуйте, gandjustas, Вы писали:

G>Как будут работать виртуальные методы при размещении объектов на стеке?

Блин, следуй своим же советам! Заботай таки С++, а потом уже критикуй!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[68]: Работа - с чего начать: С++ или С#?
От: Mamut Швеция http://dmitriid.com
Дата: 20.03.09 16:49
Оценка:
Х> Качественного десктопного софта на C# нет.

С одной стороны виноват тот же С++. Потому что legacy и тот же ворд нет смысла переписывать с нуля
С другой стороны — а что такое десктопный софт?
avalon 1.0b rev 146


dmitriid.comGitHubLinkedIn
Re[68]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 20.03.09 16:50
Оценка:
Здравствуйте, Хвост, Вы писали:

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# нет.

Продолжайте верить в это.
Re[57]: Работа - с чего начать: С++ или С#?
От: Erop Россия  
Дата: 20.03.09 16:59
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Выразительность языка заключается не в возможности решить задачу, в читаемости, поддерживаемости и расширяемости этого решения. (это упрощенно)


Если я верно понял, тебе хочется уметь проверять есть ли в строке не менее трёх слов подряд, упорядоченных по алфавиту?
Так? IMHO, это просто, понятно и поддерживаемо записывается на ЛЮБОМ АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ...
Ну, во всяком случае теми, кто умеет программировать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[57]: Работа - с чего начать: С++ или С#?
От: Erop Россия  
Дата: 20.03.09 17:03
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Дейсвительно, не 6, а 7 десктопных программ которыми я пользуюсь: браузер, почтовик, paint.net, live writer, qip, skype, vs2008.

G>Media Player был в комплекте, офис тоже.
G>Остальное запускаю редко.

А "офис" -- это надо читать, как "ворд", или, как "ещё пять-семь программ"?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[69]: Работа - с чего начать: С++ или С#?
От: Хвост  
Дата: 20.03.09 17:13
Оценка: +1 :)
Здравствуйте, 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>Продолжайте верить в это.

в ето не надо верить, достаточно просто посмотреть на список установленных программ.
People write code, programming languages don't.
Re[70]: Работа - с чего начать: С++ или С#?
От: Хвост  
Дата: 20.03.09 17:15
Оценка:
Здравствуйте, Хвост, Вы писали:


Х>я говорил о проекте в котором участвовал я, он был на порядок

на порядок меньше ессно.
People write code, programming languages don't.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.