Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 460 461 [462] 463 464 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#6916
,
|
|
|
|
Цитата --Ins-- @ Хотя вопрос производительности стоит остро как правило в тех самых дровах и серверах, а для Java-софта человекочасы и доллары важнее тактов и байт Вопрос производительности стоит остро, когда понабирают дебилов не понимающих языка. И которые потом забивают память и проц своими жава-перделками. java неплохой язык, но увы 80% жавистов его тупо не знают. Знают только как пользоватся тем что он дает. А как это внутри устроено не знают. Читал недавно одну статью, как жава прогер открыл для себя истину, и получил просветление, после нескольки лет опыта узнав что у него тип boolean весит аж 4 байта. И поэтому у него кончилось 15 гигов памяти, когда он создал булевский массив на 500 милионов элементов... Добавлено И как же ты на нем бедненький писал то? Небось вот матерился и писал? Мне кажется ты даже не задумывался об этом когда на нем писал. Так к чему у тебя притензии ? С виду напоминает, как чувак купил себе мерседес, и доказывает всем что круче него быть не может машины. |
|
Сообщ.
#6917
,
|
|
|
|
Цитата KILLER @ И как же ты на нем бедненький писал то? Небось вот матерился и писал? Мне кажется ты даже не задумывался об этом когда на нем писал. Так к чему у тебя притензии ? Матерился я потом, когда узнал что фигней страдал Хотя вру, не матерился. Просто больше потом не страдалЦитата KILLER @ С виду напоминает, как чувак купил себе мерседес, и доказывает всем что круче него быть не может машины. Неет, это как человек который с жигули пересел на мерседес, и доказывает тем, кто до сих пор на жигули - что жигули это говно |
|
Сообщ.
#6918
,
|
|
|
|
Что за скрытый пользователь всё читает тему и не пишет?
|
|
Сообщ.
#6919
,
|
|
|
|
Цитата --Ins-- @ Матерился я потом, когда узнал что фигней страдал Хотя вру, не матерился. Просто больше потом не страдал Какой фигней? Конкретно что плохого то в этом? Какие недостатки? На примере желательно, на жизненом, а не придуманом сферическом примере, который можно под ЛСД только написать... Цитата --Ins-- @ Неет, это как человек который с жигули пересел на мерседес, и доказывает тем, кто до сих пор на жигули - что это говно Ну да. Делфи это говно. Хотя мне Делфи тоже нравился в свое время. Ты же на делфи до этого ездил? Ну все верно... А С++ ты не юзал, поэтому пересев на свой мерседес, ты не мошеь судить о машине на которой не ездил |
|
Сообщ.
#6920
,
|
|
|
|
Цитата --Ins-- @ А мне непонятно зачем подменять понятие объекта и класса, и зачем передавать объекты по значению. Никто понятий не подменяет. class в С++ может объевлять не только класс иерархии наследования. Но позволяет делать и это. Потому С++ и является языком с поддержкой ООП, но не ОО-языком. Я не понимаю твоего вопроса. Если не надо передавать - не передавай. В чем трудность? Как, кстати, мне в Delphi изменить работу этих самых неявных ссылок на объекты? Язык же нативный и без сборки мусора... Вот в С++: ![]() ![]() // сырой указатель typedef my_type * my_type_ptr; // указатель, уникально владеющий объектом typedef unique_ptr<my_type> my_type_unique; // подсчет ссылок typedef shared_ptr<my_type> my_type_shared; // так же могут быть другие "указатели", // для размещения в shared memory, например // или там от какой-нибудь реализации GC // ... И если очень хочется, ты можешь выбрать один из видов указателей, сделать удобный typedef и получить такое же поведение, как в Delphi и даже немножко больше(т.к. сможешь менять вид указателя). Цитата Нисколько не удивляюсь что от этой тенденции благоразумно уходят со временем, и не только в Delphi Какой тенденции? Добавлено И на всякий случай скажу, что вышеприведенные typedef'ы и указатели будут одинаковы для любых типов. |
|
Сообщ.
#6921
,
|
|
|
|
Цитата --Ins-- @ Я не понимаю, ЗАЧЕМ в с++ объекты - это сами данные, а не ссылки на них, что приводит к таким интересным вещам, как передача объектов по значению Кстати, я вот что тут подумал. В принципе если так прикинуть, то ссылки мало того что дороже выходят, они то дают и еще большие костыли. Вот какие проблемы могут быть с передачей параметров по значению(допустим программист банально забыл одну зкорючку, как тут выразились, поставить)? Ну давай прикинем, я вижу несколько проблем: 1) Замедляется скорость(допустим когда передали массив данный, весь он будет копироваться, если массив большой - займет время) 2) Ну еще может не сработать динамический полиморфизм. Т.к. будет создана копия объекта базового класса, а не производного. 3) ??? Что еще? Про копию синглтона, это бред, потому что ты не знаешь что такое синглтон и как он устроен и как работает. Синглтон специально проектируется так, чтобы нельзя было создать больше одного объекта для этого класса. А теперь прикинем какие минусы у нас возникают с сылочной семантикой: 1) Замедляется скорость программы в целом. Данные обычно хранятся в куче, что как бэ намекает. 2) Если мы забыли инициализировать объект или создать его, выхватываем AV. Кстати это вполне себе не сферическая ситуация. 3) Прогаммист может банально забыть особенность ссылочной семантики, и вместо копирования данных будет копировать ссылку на них, что может привести к нежелательной модификации оригинала. 4) Программист может банально забыть особенность ссылочной семантики и при сравнении сравнить ссылки, а не данные, содержащиеся за ссылкой. 5) Дальше тупо лень вспоминать.... |
|
Сообщ.
#6922
,
|
|
|
|
Цитата KILLER @ 1) Замедляется скорость программы в целом. Данные обычно хранятся в куче, что как бэ намекает. Цитата An STL vector always allocates memory for its data on the heap. Heap allocation is slower than stack allocation. http://assoc.tumblr.com/post/411601680/per...-plain-c-arrays |
|
Сообщ.
#6923
,
|
|
|
|
Цитата KILLER @ 3) Прогаммист может банально забыть особенность ссылочной семантики, и вместо копирования данных будет копировать ссылку на них, что может привести к нежелательной модификации оригинала. это субъективно. точно так же можно забыть особенность семантики значений и вместо изменения оригинала модифицировать копию. в .NET подобное сплошь и рядом для структур происходит. |
|
Сообщ.
#6924
,
|
|
|
|
Цитата A vector does not store its data in a continuous chunk of memory. Pointers to the start and end of the vector will be stored in a different location from the data itself. korvin, не читай на ночь советских газет |
|
Сообщ.
#6925
,
|
|
|
|
Цитата jack128 @ это субъективно. точно так же можно забыть особенность семантики значений и вместо изменения оригинала модифицировать копию. в .NET подобное сплошь и рядом для структур происходит. Так оно там происходит из-за того, что две семантики в одном языке... Или нет? Добавлено korvin, твои источники тебя обманывают |
|
Сообщ.
#6926
,
|
|
|
|
Цитата jack128 @ это субъективно. точно так же можно забыть особенность семантики значений и вместо изменения оригинала модифицировать копию. в .NET подобное сплошь и рядом для структур происходит. Ну вон Инс ведь в качестве ключевого аргумента приводит тот факт, что если программист забудет написать закорючку эту, то будет ппц как плохо. Хотя это тоже субъективное мнение. Я вот и не помню, когда я в последний раз забывал закорючку писать, на автомате она пишется, ну разве что только промазать и набрать звездочку или еще чего, но тогда будет ошибка компиляции. Цитата korvin @ 1 Цитата ) Замедляется скорость программы в целом. Данные обычно хранятся в куче, что как бэ намекает. Цитата An STL vector always allocates memory for its data on the heap. Heap allocation is slower than stack allocation. И? Я тебе не про массивы данных говорю. А про обычные объекты. А ты можешь почитать еще и про всякие std::map, std::set, std::string и т.д. они тоже память для данных в куче выделяют. При этом объекты самих классов создаются на стэке! Добавлено Цитата jack128 @ точно так же можно забыть особенность семантики значений и вместо изменения оригинала модифицировать копию. в .NET подобное сплошь и рядом для структур происходит. В том и дело что в С++ сложно это забыть. Потому что там только семантика значений. А ссылочную семантику нужно писать специально, т.е. лишние символы нужно набирать. А вот то что ты говоришь в .NET, и в Java скорее всего это есть. Потому что в этих языках две семантики идут паралельно. Сначало ты упорно работал с какими нибудь int'ами, ну алгоритм сложный там писал. А потом тебе резко понадобились объекты пользовательских типов. И вот тут тебе нужно свой мозг быстренько переключить на ту особенность, что объекты пользовательских типов отличаются от примитивных типов. В С++ тебе не нужно переключаться на этот ньюанс. Вот о чем я. |
|
Сообщ.
#6927
,
|
|
|
|
|
|
Сообщ.
#6928
,
|
|
|
|
D_KEY,
|
|
Сообщ.
#6929
,
|
|
|
|
Цитата --Ins-- @ Везде. Есть ссылочные типы, а есть типы передаваемые по значению. Первые - это не только классы, но классы в частности. Ага. Т.е. всё ещё хуже, чем я думал. Семантику типов надо распечатать и прилепить посреди монитора. ![]() Вот и и правильно. Пишем PROCEDURE Proc(v: DataRecord); FAR; EXTERNAL; а видим фигу. Что тут комментировать? Добавлено Цитата --Ins-- @ Не помогло... Я боюсь разорвать твой шаблон, но из-за этих ваших объектов, которые не только объекты, но и не объекты, использовать ООП в с++ настолько неудобно, что пришлось придумывать другие языки со смесью ссылочной и нессылочной семантик, и внезапно для ООП использовать стали именно их, а с++ остался там, где не до объектов Добавлено Цитата --Ins-- @ А как назвать эксперта, который не может понять элементарные и фундаментальные вещи? Гы:О том, что я подозрительно отношусь к эксперту, который не может объяснить внятно и понятно элементарные и фундаментальные вещи, указать на ошибки в чужих рассуждениях. Видать, у самого целостной картины нет А еще то, что я такой скромный потому что я такой красивый Цитата --Ins-- @ "Сынок, это море. - Хде?? На практике я с такими случаями не встречался, всегда нужно передавать по ссылке. Хочу услышать ответ на этот простой вопрос, который уже десятый раз задаю " © "Что тут комментировать?" |
|
Сообщ.
#6930
,
|
|
|
|
Вы все еще труп пинаете?
|