Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите определиться 
:(
    Опции темы
chipset
Дата 10.2.2005, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 4
Всего: 164



<Spawn>, дельфи не востребован на рынке труда. Вот и всё.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Domestic Cat
Дата 10.2.2005, 04:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



Цитата(chipset @ 9.2.2005, 18:11)
<Spawn>, дельфи не востребован на рынке труда. Вот и всё.


угу. здесь особенно.


--------------------

PM   Вверх
Конструктор
Дата 10.2.2005, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 12.5.2004
Где: Москва

Репутация: нет
Всего: 10



Цитата
Приведи, пожалуйста пример, что бы понять выгоду работы с памятью в Си.


Да хотя-бы оператор индексирования который можно применить к любому указателю чтобы обратиться к любой ячейке памяти.
PM MAIL WWW ICQ   Вверх
~FoX~
Дата 10.2.2005, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 1
Всего: 68



Цитата(chipset @ 10.2.2005, 03:11)
<Spawn>, дельфи не востребован на рынке труда. Вот и всё.

Не совсем так, делфи востребован, но из личного опыта знаю, что Сишный программист получает 1,5-2 раза больше чем делфячий. Даже если проекты написаны за одни и тоже время и полностью соответствуют ТЗ, то предпочтение отдают Сишному. Просто бытует мнение, что сишники более профессианальны.


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
<Spawn>
Дата 10.2.2005, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Цитата
Цитата
Приведи, пожалуйста пример, что бы понять выгоду работы с памятью в Си.


Да хотя-бы оператор индексирования который можно применить к любому указателю чтобы обратиться к любой ячейке памяти.

И в чем же эта выгода? Что это

Код

char *c;
...<че та делаем с указателем>
c[n-ый байт] = 'a';



что это:

Код

var
 c: PChar;
begin
...<че та делаем с указателем>
 PChar(c + n-ый байт)^ := 'a';
end;


физически выполняют одно и то же действие. И я не вижу тут особенной прогрессивности Сишного кода, что бы сказать Дельфи МастДай и пересесть за один Сиsmile

Цитата
дельфи не востребован на рынке труда. Вот и всё.

Где я спрашивал про уровень востребованности языков программирования? Все что мне было нужно это примеры работы с памятью, которые по словам автора, позволяют
Цитата
легче работать с памятью. Все-таки Delphi не дает такой свободы
. Покажите мне такую возможность, которую я не смогу реализовать в Дельфи.

А про востребованность Дельфи вот что могу сказать - в банке, в котором я работаю, есть программеры Дельфи(это не яsmile - я там работаю прогером Oracle:) ), то есть востребованность все таки естьsmile

Цитата
Просто бытует мнение, что сишники более профессианальны.
Абсолютная глупость.smile Все это скорее всего завязано на том, что в Дельфи абсолютный новичок может на базе готовых компонентов состряпать незамысловатое приложение. Но ты попытайся там писать на уровне создания классов и своих компонентов и, я думаю тебе это не покажется легчем чем в Си.

P.S. Я не хочу сказать, что Дельфи лучший язык - все зависит от конкретной задачи. Вообще в последнее время я так или иначе спорикасался с 7 языками программирования и не скажу, что могу выделить из них лучший - все зависит, как я уже сказал, от конкретной задачи.

Это сообщение отредактировал(а) <Spawn> - 10.2.2005, 12:25


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
bel_nikita
Дата 10.2.2005, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: нет
Всего: 47



Однозначно: C++, Java, C# + .NET
Именно в таком порядке. Будешь знать C++, перейти на Java и C# не составит большого труда.
Цитата
И в чем же эта выгода? Что это
Код
char *c;
...<че та делаем с указателем>
c[n-ый байт] = 'a';
что это:
Код
var
c: PChar;
begin
...<че та делаем с указателем>
PChar(c + n-ый байт)^ := 'a';
end;

Очевидно, что первый код выглядит понятнее smile


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
chipset
Дата 10.2.2005, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 4
Всего: 164



Уга-га! Ещё один сторонник Сей нашёлся! smile


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
GoodBoy
Дата 10.2.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: нет
Всего: 83



Цитата(bel_nikita @ 10.2.2005, 13:06)
Очевидно, что первый код выглядит понятнее

Типа поспорить ради того, чтобы поспорить??? smile

Я тоже не сталкивался пока с задачей, которую невозможно было бы реализовать средствами Дельфи и требовалось бы непременное использование С++...


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Sun
Дата 10.2.2005, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 3
Всего: 48



<Spawn>, в C/С++ есть операторы * и & для работы с указателями и ссылками, которые я могу применять абсолютно ко всем объектам языка, начиная от переменных и заканчивая функциями. Указатель я могу преобразовать к любому типу данных.

В Delphi есть операторы ^ и @, для типизированых указателей. Это значит что если у меня указатель на Integer, то я могу его использовать только для операций с целым типом. Это усложняет многие бинарные операции. Конечно все можно обойти, но будет выглядеть это сложнее чем в С
Цитата

FILE* f = fopen("data.bin", "r");
char data[100];
fread(data,  1, 100, f);
struct SOME_STRUCT1 s1;
int n = sizeof(s1);
memcpy(&s1, data, n);
struct SOME_STRUCT2 s2;
memcpy(&s2, &data[n], sizeof(s2));
...

Еще добавлю что в Паскале до 4 Дельфи отсутствовали динамические массивы, что превращало работу с массивами в тихий ужас. Но слава богу они включили функцию SetLength для установки длины массива "на лету".


--------------------
Account removed
PM MAIL   Вверх
<Spawn>
Дата 10.2.2005, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Цитата
Указатель я могу преобразовать к любому типу данных.
В Дельфе это тоже возможноsmile
Указатель на функцию:

Код

type
 TFuncPtr = function;


Твой код на Дельфи:

Код

type
 TStruct1 = record
   SomeField: Integer;
 end;
 TStruct2 = record
   SomeField: Double;
 end;
var
 data: array[0..99] of Char;
 n: integer;
 s1: TStruct1;
 s2: TStruct2;
begin
 with TFileStream.Create('data.bin', fmOpenRead) do
 try
   Read(data, 100);
   n := SizeOf(TStruct1);
   Move(Pointer(@data)^, s1, n);
   Move(Pointer(DWORD(@data) + n)^, s2, SizeOf(s2));
 finally
   Free;
 end;
end;


Да операции с указателями несколько больше по части преобразования типов, но это не особенно мне осложняет работуsmile

Или даже можно так:

Код

   CopyMemory(@s1, @data, n);
   CopyMemory(@s2, Pointer(DWORD(@data) + n), SizeOf(s2));


Это сообщение отредактировал(а) <Spawn> - 10.2.2005, 20:16


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Dmitry V.Abramov
Дата 11.2.2005, 06:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: нет
Всего: 4



Цитата
Цитата
Цитата
Приведи, пожалуйста пример, что бы понять выгоду работы с памятью в Си.


Да хотя-бы оператор индексирования который можно применить к любому указателю чтобы обратиться к любой ячейке памяти.

И в чем же эта выгода? Что это

Код

char *c;
...<че та делаем с указателем>
c[n-ый байт] = 'a';



что это:

Код

var
 c: PChar;
begin
...<че та делаем с указателем>
 PChar(c + n-ый байт)^ := 'a';
end;

Если c: PChar, то еще проще:
Код

var
 c: PChar;
begin
...<че та делаем с указателем>
 c[n-ый байт] := 'a';
end;

--------------------
/DVA
PM MAIL WWW   Вверх
Sun
Дата 11.2.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 3
Всего: 48



Цитата
Pointer(DWORD(@data) + n)^
smile А как быть с 16-разрядной и 64 разрядной адресацией?


--------------------
Account removed
PM MAIL   Вверх
Дрон
Дата 12.2.2005, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 92



А есть ли в дельфи такая штука как union? smile
Когда одно и то же место в памяти можно трактовать по разному... Позволяет много хитростей делать.

Хотя, конечно, и без неё можно жить, зато как красиво получается:
Код
union Color
{
   DWORD Value;
   struct
   {
         BYTE Red;
         BYTE Green;
         BYTE Blue;
         BYTE Alpha;
   };
};


Это сообщение отредактировал(а) Дрон - 12.2.2005, 16:55


--------------------
Да. Именно так.
PM   Вверх
<Spawn>
Дата 12.2.2005, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Дрон

Есть тут такое:) Называется, вроде, вариантные записи. Вот пример стандартной заиси-аналога union для Variant типа данных:

Код

 TVarData = packed record
   case Integer of
     0: (VType: TVarType;
         case Integer of
           0: (Reserved1: Word;
               case Integer of
                 0: (Reserved2, Reserved3: Word;
                     case Integer of
                       varSmallInt: (VSmallInt: SmallInt);
                       varInteger:  (VInteger: Integer);
                       varSingle:   (VSingle: Single);
                       varDouble:   (VDouble: Double);
                       varCurrency: (VCurrency: Currency);
                       varDate:     (VDate: TDateTime);
                       varOleStr:   (VOleStr: PWideChar);
                       varDispatch: (VDispatch: Pointer);
                       varError:    (VError: HRESULT);
                       varBoolean:  (VBoolean: WordBool);
                       varUnknown:  (VUnknown: Pointer);
                       varShortInt: (VShortInt: ShortInt);
                       varByte:     (VByte: Byte);
                       varWord:     (VWord: Word);
                       varLongWord: (VLongWord: LongWord);
                       varInt64:    (VInt64: Int64);
                       varString:   (VString: Pointer);
                       varAny:      (VAny: Pointer);
                       varArray:    (VArray: PVarArray);
                       varByRef:    (VPointer: Pointer);
                    );
                 1: (VLongs: array[0..2] of LongInt);
              );
           2: (VWords: array [0..6] of Word);
           3: (VBytes: array [0..13] of Byte);
         );
     1: (RawData: array [0..3] of LongInt);
 end;


Вот аналог сишного кода:

Код

 TMyColor = packed record
   case Integer of
     0: (Color: DWORD);
     1: (Red: Byte;
         Green: Byte;
         Blue: Byte;
         Alpha: Byte)
 end;


P.S.

Можно даже так извратиться smile :

Код

type
 TRGB = packed record
   Red: Byte;
   Green: Byte;
   Blue: Byte;
   Alpha: Byte;
 end;
var
 Color: DWORD;
 RGB: TRGB absolute Color;


Это сообщение отредактировал(а) <Spawn> - 12.2.2005, 18:52


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
S.A.P.
Дата 12.2.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 1
Всего: 71



<Spawn> нука примерчик перегрузки операторов в Дельфе! smile . То то же smile .

А шаблоны (templates)?

ЗЫ: сейчас Стауструпа открою smile .

Это сообщение отредактировал(а) Perchilla - 12.2.2005, 18:53
PM MAIL   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1160 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.