Re: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 28.10.08 10:41
Оценка: +5 -2 :))) :))) :))) :))) :)))
Здравствуйте, diatlov, Вы писали:

D>Обсудим все + и — ?


D>Что хорошего появилось в Дельфи:

D>1. Шаблонизация

Ух ты! А это што такое?

D>2. Полная поддержка Unicode


Аллилуя! Не прошло и 10 лет.

D>3. Анонимные методы


Ну нифига себе! Вот это да! Так, глядишь, и C# 2 через лет 5 догонит.

D>4. Куча новых поддерживаемых БД


Прямо таки куча. Еще дымящаяся?

D>5. Web решения


Афигеть! Это новость. Для дельфи .

D>+ нативность по моему мнению — это очевидный плюс, т.к. с .NET не все так гладко при подготовке shareware продуктов (фреймворк многое запрещает по умолчанию на конечных машинах)


Давайте нативность оставим С++. А дельфи — в топку.
Re[2]: Delphi 2009 vs C# 3.0
От: L.Long  
Дата: 28.10.08 13:22
Оценка: 4 (2) :))) :))) :))) :))) :)))
Здравствуйте, _d_m_, Вы писали:

D>>Обсудим все + и — ?

D>>Что хорошего появилось в Дельфи:
D>>1. Шаблонизация
___>Ух ты! А это што такое?

Не, ты чув, як воны generic-и обозвали? Вбыв бы!
Чем совершеннее технически средство, тем более примитивные, никчемные и бесполезные сведения при его помощи передаются.(с)Станислав Лем
Re[10]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 04.11.08 18:30
Оценка: :))) :))) :)))
Здравствуйте, gandjustas, Вы писали:

НС>>>Нативный компилятор Дельфи порождает код, который в большинстве случаев медленнее того, который порождает дотнетный джит.


U>>Мне пофиг что там порождает дотнетный джит и что показывают купленные бенчмарки, но почему-то серия одинаковых запросов к Ораклу стабильно выполняется в 1.5 раза медленнее. Почему-то скорость распределения и освобождения одинакового количества объектов (порядок — сотни тысяч, миллионы) в .NET менеджере памяти ни разу не было быстрее дельфийского, а если чонть в деструкторе написать то вообще туши свет.


G>Код в студию.


using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public class TestObject
    {
        private const int ByteSize = 50;
        protected byte[] TestArray;
        public TestObject()
        {
            TestArray = new byte[ByteSize];
        }
    }

    class Program
    {
        private const int ObjectCount = 1000000;
        static void Main(string[] args)
        {
            DateTime Start = DateTime.Now;
            ArrayList Objects = new ArrayList();
            while (Objects.Count < ObjectCount)
            {
                Objects.Add(new TestObject());
            }
            DateTime Stop = DateTime.Now;
            TimeSpan Duration = Stop - Start;
            int Speed = Objects.Count % (int) Duration.TotalMilliseconds; 
            Console.WriteLine("C# Speed {0}", Speed);
        }
    }
}


program MemSpeedTest;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Contnrs,
  DateUtils;

const
  ArraySize=50;
  ObjectCount=1000000;

type
  TTestObject=class(TObject)
  private
    FTestArray:array of byte;
  public
    constructor Create;
  end;

{ TTestObject }

constructor TTestObject.Create;
begin
  inherited Create;
  SetLength(FTestArray, ArraySize);
end;

var
  Objects:TObjectList;
  Start, Stop:TDateTime;
  Speed:Integer;
begin
  Start:=Now;
  Objects:=TObjectList.Create(TRUE);
  try
    while Objects.Count<ObjectCount do
      Objects.Add(TTestObject.Create);
    Stop:=Now;
    Speed:=Objects.Count div MillisecondsBetween(Stop, Start);
    WriteLn('Delphi speed ', Speed:6);
  finally
    FreeAndNil(Objects);
  end;
end.


Результаты выполнения на AMD Phenom 9850, Vista.

D:\Temp\SpeedTest>dir
Volume in drive D is Архив
Volume Serial Number is 7473-5721

Directory of D:\Temp\SpeedTest

04.11.2008 23:20 <DIR> .
04.11.2008 23:20 <DIR> ..
04.11.2008 23:22 5 120 MemoryTest.exe
04.11.2008 23:23 80 896 MemSpeedTest.exe
2 File(s) 86 016 bytes
2 Dir(s) 264 707 985 408 bytes free

D:\Temp\SpeedTest>MemoryTest.exe
C# Speed 250

D:\Temp\SpeedTest>MemoryTest.exe
C# Speed 64

D:\Temp\SpeedTest>MemoryTest.exe
C# Speed 446

D:\Temp\SpeedTest>MemoryTest.exe
C# Speed 100

D:\Temp\SpeedTest>MemoryTest.exe
C# Speed 505

D:\Temp\SpeedTest>MemoryTest.exe
C# Speed 352

D:\Temp\SpeedTest>MemSpeedTest.exe
Delphi speed 5181

D:\Temp\SpeedTest>MemSpeedTest.exe
Delphi speed 3378

D:\Temp\SpeedTest>MemSpeedTest.exe
Delphi speed 3105

D:\Temp\SpeedTest>MemSpeedTest.exe
Delphi speed 3906

D:\Temp\SpeedTest>MemSpeedTest.exe
Delphi speed 3703
Re[6]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 28.10.08 20:33
Оценка: +1 -6
Здравствуйте, gandjustas, Вы писали:

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


U>>По поводу всего этого топика по моему уже можно расслабиться поскольку Delphi.NET выкинута CodeGear-ом на помойку и замещена новой хренью под названием Delphi Prism. Насколько я понял в этой скотинке есть/будет всё то-же самое что есть в C# + то чего в нем нет.


G>Даже смешно как-то. 2009 версия Delphi чуть лучше C# 2.0, но вероятнее всего к концу 2009 года уже выйдет C# 4.0.


Для тех кто не в танке Delphi 2009 Win32 доступна уже сейчас, а Prism будет доступна в ноябре этого года. На мой взгляд сравнивать нативную и .net-овскую среды программирования бессмысленно. Любая нативная дельфи если вдуматься лучше чем любой C# хотя бы потому что быстрее. Но не буду спорить... C# лучше, пусть будет лучше.
Re[13]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 01.12.08 11:57
Оценка: 3 (1) :)))
Здравствуйте, Antoshka, Вы писали:

kuj>>Если бы еще дельфовые библиотеки были хоть на одну йоту так же удобные и функциональны, как .NET Framework. ;>


A>Была задача: написать сканер почтового ящика. В дельфи идут штатно компоненты для работы с POP3 и IMAP4. В фреймворке же их не было и нет. Причём MS даже не хочет их туда добавить.


А нет там компонентов для работы с посудомоечной машиной? А то в MS тоже не хотят добавлять.
Re[5]: Delphi 2009 vs C# 3.0
От: Antikrot  
Дата: 29.10.08 07:43
Оценка: 1 (1) +2
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ну, оператор : ......... шарпу совсем не помешали бы.

Если я правильно понял, что, он делает, лишь будет закапывать ошибки поглубже и усложнять отладку...
Re[9]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 29.10.08 05:25
Оценка: +3
Здравствуйте, Utruk, Вы писали:

U>Здравствуйте, Ночной Смотрящий, Вы писали:


НС>>Здравствуйте, Utruk, Вы писали:


U>>> Любая нативная дельфи если вдуматься лучше чем любой C# хотя бы потому что быстрее.


НС>>Нативный компилятор Дельфи порождает код, который в большинстве случаев медленнее того, который порождает дотнетный джит.


U>Мне пофиг что там порождает дотнетный джит и что показывают купленные бенчмарки, но почему-то серия одинаковых запросов к Ораклу стабильно выполняется в 1.5 раза медленнее. Почему-то скорость распределения и освобождения одинакового количества объектов (порядок — сотни тысяч, миллионы) в .NET менеджере памяти ни разу не было быстрее дельфийского, а если чонть в деструкторе написать то вообще туши свет.


Код в студию.
Re[13]: Delphi 2009 vs C# 3.0
От: Klapaucius  
Дата: 31.10.08 10:50
Оценка: +3
Здравствуйте, Константин Л., Вы писали:

КЛ>>>не знаю, что ты этим хотел сказать, но оно там не только присутствует, но еще и дороже чем в unmanaged heap.

K>>Вообще-то нет. Накладные расходы связаны с живыми объектами, пережившими первую сборку, а не с мертвыми.
КЛ>при чем здесь это? В .net нет сборки мусора? А уплотнения хипа? Или мы с тобой о чем вообще?

Я о том, что освобождение памяти и сборка мусора не одно и то же. Освобождение подразумевает, что накладные расходы тем больше, чем больше объектов умирает. С другой стороны, в случае сборки мусора накладные расходы тем меньше, чем больше объектов умирает. Дорого обходятся долгоживущие, а не мертвые.
Я считаю, что рассуждения о высокой стоимости освобождения порождают в головах идеи о том, что освобождать нужно как можно меньше, которые нередко превращаются в подборки вредных советов
Автор: Shizuka-kun
Дата: 04.07.08
. Слепое соледование этим идеям, в свою очередь, приводит к широкому использованию сценариев наименее благоприятных для GC со всеми вытекающими последствиями.
... << RSDN@Home 1.2.0 alpha 4 rev. 1110>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[3]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 03.11.08 09:45
Оценка: :)))
Здравствуйте, Eugeny__, Вы писали:

kuj>>Вроде бы взрослые люди, а ведётесь на столь явный троллинг...


E__>Ой-ё, кто бы говорил . Хотя да, в троллинге ты прошаренный и очень опытный, это неопровержимый факт.


Да ладно вам! Я исправляюсь...
Re[12]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 01.12.08 11:44
Оценка: :)))
Здравствуйте, kuj, Вы писали:

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


A>>>>Слышал, но там много головняка с их подключением .


НС>>>Ага, ужас просто — нужно в настройках одну галочку взвести


A>>А ещё и постоянное соединение с интернетом. Хотя там что-то кешируется, но... как грится, зачем, если в дельфи всё идёт сразу безо всяких галочек и скачиваний с интеренета


kuj>Если бы еще дельфовые библиотеки были хоть на одну йоту так же удобные и функциональны, как .NET Framework. ;>


Была задача: написать сканер почтового ящика. В дельфи идут штатно компоненты для работы с POP3 и IMAP4. В фреймворке же их не было и нет. Причём MS даже не хочет их туда добавить.
Re[19]: Delphi 2009 vs C# 3.0
От: squid  
Дата: 06.12.08 18:39
Оценка: :)))
Здравствуйте, samius, Вы писали:

S>http://www.vniitf.ru/


меня одного пугает сочетание "Российский Федеральный Ядерный Центр" и "имени Забабахина"?

а вообще, может они утечки боятся. если там какие-то ядерные секреты, отсутствие доступа в инет может быть обосновано.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 17.02.09 12:57
Оценка: :)))
Добавлю свои пять копеек.
Сделал простую програмку на Delphi2009 и C# 2008, суть проста
взять Grid и заполнить его строками в количестве N, где N=30000 и 600000
попробовал все три значения. Время мерял через два DateTimePicker, как видно из кода.
В Delphi взял StringGrid, в VS2008 Express — DataGridView.

Код получился такой:


private void button1_Click(object sender, EventArgs e)
        {
            
           
           
            string[] row0 = { "", "29", "Революция babes 9", 
            "Beatles", "The Beatles [White Album]", "Fkm,jv Альбом", "Певец" };
            dateTimePicker1.Value = DateTime.Now;
            for (int i = 1; i <= 600000; i++)
            {
                row0[0] = Convert.ToString(i);
                this.dataGridView1.Rows.Add(row0);
            }
            dateTimePicker2.Value = DateTime.Now;
        }



procedure TSDIAppForm.Button1Click(Sender: TObject);
var
  s: TStringList;
  I,J,K: Integer;
  tm : TDateTime;
begin


    s := TStringList.Create;

    s.Add('1');
    s.Add('ghjikj');
    s.Add('прошло');
    s.Add('три');
    s.Add('года');
    s.Add('ывафыва');
    s.Add('бздын');
    StringGrid1.RowCount := 600000;
    StringGrid1.ColCount := 7;
     DateTimePicker1.DateTime :=  Time();
    with StringGrid1 do
      for J:= 0 to RowCount - 1 do
        begin
          s[0] := IntToStr(J);
          Rows[J].AddStrings(s);
        end;
     DateTimePicker2.DateTime :=  Time();
end;


Результаты такие:
на 30000: С# около 73сек. Delphi около 1сек
на 600000: С# не дождался окончания вывода на экран, Delphi — около 15сек.
проверял на виртуальной машине в VirtualBox.

По поводу скорости очевидно.

Выбираю среду разработки для своего проекта, пока что в раздумьях.
Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 28.10.08 09:39
Оценка: :))
Обсудим все + и — ?

Что хорошего появилось в Дельфи:
1. Шаблонизация
2. Полная поддержка Unicode
3. Анонимные методы
4. Куча новых поддерживаемых БД
5. Web решения

+ нативность по моему мнению — это очевидный плюс, т.к. с .NET не все так гладко при подготовке shareware продуктов (фреймворк многое запрещает по умолчанию на конечных машинах)
Re[3]: Delphi 2009 vs C# 3.0
От: swined Россия  
Дата: 28.10.08 11:44
Оценка: +1 -1
diatlov wrote:

> В каком ещё языке по умолчанию есть полнофункциональный набор компонентов

> для управления ADO, MSSQL, MySQL, Oracle, BDB, и т.д.?

perl
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Delphi 2009 vs C# 3.0
От: Pro100Oleh Украина  
Дата: 28.10.08 14:36
Оценка: +2
Здравствуйте, diatlov, Вы писали:

D>>>2. Полная поддержка Unicode


___>>Аллилуя! Не прошло и 10 лет.


D>Дело не в том сколько лет прошло, а в том что это есть, и это несомненный плюс.


Это не плюс, а отсутсвие минуса.
Pro
Re[7]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 28.10.08 21:40
Оценка: +1 -1
Здравствуйте, Utruk, Вы писали:

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


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


U>>>По поводу всего этого топика по моему уже можно расслабиться поскольку Delphi.NET выкинута CodeGear-ом на помойку и замещена новой хренью под названием Delphi Prism. Насколько я понял в этой скотинке есть/будет всё то-же самое что есть в C# + то чего в нем нет.


G>>Даже смешно как-то. 2009 версия Delphi чуть лучше C# 2.0, но вероятнее всего к концу 2009 года уже выйдет C# 4.0.


U>Для тех кто не в танке Delphi 2009 Win32 доступна уже сейчас, а Prism будет доступна в ноябре этого года. На мой взгляд сравнивать нативную и .net-овскую среды программирования бессмысленно. Любая нативная дельфи если вдуматься лучше чем любой C# хотя бы потому что быстрее. Но не буду спорить... C# лучше, пусть будет лучше.


не смеши
Re[3]: Delphi 2009 vs C# 3.0
От: elmal  
Дата: 29.10.08 21:01
Оценка: +2
Здравствуйте, diatlov, Вы писали:

D>В каком ещё языке по умолчанию есть полнофункциональный набор компонентов для управления ADO, MSSQL, MySQL, Oracle, BDB, и т.д.?

В практически любом, наверно. Быть не очень сильно привязанным к конкретной базе можно на выбор через ADO, ODBC, JDBC, OLE DB, и я далеко не все перечислил, эти вещи еще очень низкоуровневые, и лучше на такой низкий уровень не спускаться. Или мы хотим чтоб компоненты были графические, типа бросил на формочку, настроил параметры, и все стало хорошо ? Так графические компоненты это не достоинство, а недостаток — сложнее делать diff в системах контроля версий, сложнее рефакторить, сложнее сделать обертку над всем этим, чтоб не заморачиваться деталями реализациями, сложнее обучаться (чтоб использовать графический интерфейс эффективно надо заучить до черта хоткеев, понять какие-то концепции, специфические для среды, где-то умудриться еще best practices найти по использованию графического контрола, причем от версии к версии это все может поменяться ). Далее, при графическом представлении куча времени тратится на перестановку элементов так, как тебе удобно, зачастую забываешь назвать элемент так, чтобы было все читабельно и т.д. Извините, но программирование мышкой меня вставляло только в студенческие годы, а далее, чем больше опыта, тем больше отвращения к этому рисованию мышкой появилось — в графических средах гораздо сложнее и медленнее так писать, чтоб беглый взгляд на код позволял увидеть все целиком, без супернапряжения мозга. И что самое страшное — программирование мышкой стимулирует писать тяп ляп. Накидал контролов на формочку, и сортировку будем делать средствами контролов — вообще все будем делать с помощью них, и данные в них хранить, никакого MVC или MVP, никаких юнит тестов — UI контрол мое все .

PS У самого коммерческого опыта на Delphi нет. Есть опыт code review коммерческого Delphi (да и не только его, Power Buider еще например, когда смотрел на все эти художества, мне дурно становилось) кода — как посмотрю на шедевры, так мне дурно становилось, хоть и навидался я всякого, нервы крепкие . А так ... при необходимости, я уверен, что на Дельфи я напишу вполне поддерживаемый код (приходилось писать на гораздо худших языках), причем напишу достаточно быстро, и возможности языка и самой платформы меня ограничивать не будут, сам язык вполне удовлетворительный (Pascal был моим четвертым языком программирования, который в свое время неплохо знал, с ООП я впервые тоже познакомился именно на Паскале, а в ООП стиле приходилось писать и на гораздо худщих языках).
Re[2]: Delphi 2009 vs C# 3.0
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 02.11.08 12:27
Оценка: +1 :)
Здравствуйте, kuj, Вы писали:



kuj>Вроде бы взрослые люди, а ведётесь на столь явный троллинг...


... сказал довольный kuj, зайдя на форум под своим настоящим ником

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[12]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 08:09
Оценка: -1 :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Это ты не понял. Любые теоретически возможные тормоза по сравнению с запросом к БД — мгновение. Так что это в твоем dbExpress какие то серьезные проблемы.


Если это один и тот-же запрос к одной и той-же БД, то надо полагать что тормоза вносимые БД будут одинаковы в случае нативного приложения и .NET не так ли? В dbExpress код один и тот-же что и для .NET и для Win32, соответственно разница может быть в оверхеде который накладывает .NET исходящим из особенностей его функционирования.
Re[11]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 05.11.08 10:51
Оценка: +2
Здравствуйте, Utruk, Вы писали:

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


НС>>>>Нативный компилятор Дельфи порождает код, который в большинстве случаев медленнее того, который порождает дотнетный джит.


U>>>Мне пофиг что там порождает дотнетный джит и что показывают купленные бенчмарки, но почему-то серия одинаковых запросов к Ораклу стабильно выполняется в 1.5 раза медленнее. Почему-то скорость распределения и освобождения одинакового количества объектов (порядок — сотни тысяч, миллионы) в .NET менеджере памяти ни разу не было быстрее дельфийского, а если чонть в деструкторе написать то вообще туши свет.


G>>Код в студию.


U>
U>//бред посипан
U>


U>
U>//бред посипан
U>


Спасибо, поржал.
Re[15]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 11:09
Оценка: :))
Здравствуйте, Mr.Cat, Вы писали:

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

U>>Опечатался, а он уже усирается от радости... ну поправь на деление и запусти у себя.

MC>Обязательно запущу. Есть в природе голый компилер дельфи?


Не встречал. Но на торрентах есть 2009.
Re[11]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 06.11.08 14:27
Оценка: -2
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Нет, это значит, что если полазал в настройках грязными ручками, то нечего на дотнет пенять.


Тебе не кажется что все твои доводы безосновательны?
Да, если программа на .NET не использует сетевых возможностей, не лезет узнавать сетевое имя твоего компа, не открывает лишние подозрительные порты и т.д. (т.е. если программа для домохозяек, дает совет что лучше на завтрак приготовить) то она таки будет работать на любом компьютере с предустановленным фреймворком без дополнительных напильников.
У меня программа активно юзает сеть и мне таки пришлось полазить в настройках, но уже после того как exception стал вылезать на конечной машине.

В общем, если у тебя нет опыта дистрибуции и распространения программ на .NET, то уж лучше молчи, а если есть то скажи конкретно какую галочку и где надо поставить при сборке чтобы все работало всегда и везде.
Re[11]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 21.11.08 10:02
Оценка: +2
Здравствуйте, Antoshka, Вы писали:

A>А ещё и постоянное соединение с интернетом.


Ну, профессиональная разработка без постоянного подключения к интернету это что то экзотическое.
Re[13]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 03.12.08 11:23
Оценка: +2
Здравствуйте, Antoshka, Вы писали:

НС>>>>Ага, ужас просто — нужно в настройках одну галочку взвести


A>>>А ещё и постоянное соединение с интернетом. Хотя там что-то кешируется, но... как грится, зачем, если в дельфи всё идёт сразу безо всяких галочек и скачиваний с интеренета


kuj>>Если бы еще дельфовые библиотеки были хоть на одну йоту так же удобные и функциональны, как .NET Framework. ;>


A>Была задача: написать сканер почтового ящика. В дельфи идут штатно компоненты для работы с POP3 и IMAP4. В фреймворке же их не было и нет. Причём MS даже не хочет их туда добавить.


Тебе начать перечислять что есть в .NET Framework, чего нет в стандартных библиотеках Delphi? При чем не экзотика типа "написать сканер ящика по pop3", а базовые вещи типа base64 кодирования, хэширование, шифрование по AES, шифрование с открытым ключом, ЭЦП и т.д. и т.д и т.д..
Re[19]: Delphi 2009 vs C# 3.0
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.11.08 05:49
Оценка: 3 (1)
Здравствуйте, Utruk, Вы писали:

U>Есть некий механизм финализации объекта который состоит из двух фаз:

U>1) когда объект больше не нужен производятся некие действия.
U>2) память зарезервированная под объект освобождается.
Это заблуждение. Пункта 2 в GC-based системах просто нет. Точнее, в классических менеджерах памяти освобождение — это возврат использованной памяти обратно в хип. В GC в хип возвращается целое поколение, что намного эффективнее пообъектного освобождения.

Далее, про эффективность финалайзеров в управляемой среде вообще рассуждают только новички. Потому, что в реальной системе объектов с финалайзерами — незаметная доля процентов. Подавляющему большинству объектов финалайзеры не нужны. То есть п.1. неприменим.


U>Поясню ближе к практике. У меня есть некий процесс, результатом выполнения которого является сложная динамическая структура. Структура состоит из неопределенного количества объектов — порядок деятки, сотни тысяч, миллионы объектов. Эта структура может создаваться как результат некоего процесса, сохраняться в БД (в БД этих структур естественно может быть не одна), загружаться оттуда, части её могут модифицироваться или удаляться, причем удаляться именно в памяти чтобы сгенерироваться снова из базы или из процесса. Меня волнует вопрос, насколько быстро это всё будет происходить.

Это будет происходить очень быстро. Потому, что выделение памяти в дотнете стоит примерно столько же, сколько выделение на стеке — такой же инкремент указателя. Удаление объектов не делается вообще.

U>Делаем простой тест — распределяем миллион (два, десять) объектов и видим что не смотря на заявления про супер быстрый манагер памяти, про то что кто-то там генерит код более быстрый чем нативный Delphi, реально объекты были созданы существенно медленнее. С удалением объектов картина очень похожая.

У тебя косячный бенчмарк.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 28.10.08 22:40
Оценка: 1 (1)
Здравствуйте, diatlov, Вы писали:

D>По поводу запретов. К примеру сетевые приложения по умолчанию не могут использовать функции для определения хоста (getDNSName) — вываливается exception.


foreach (var addr in Dns.GetHostAddresses("rsdn.ru"))
    Console.WriteLine(addr);

194.154.75.214


Работает даже при включенном UAC без подписи.
Re[2]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 28.10.08 11:06
Оценка: -1
D>>1. Шаблонизация

___>Ух ты! А это што такое?


+1

D>>2. Полная поддержка Unicode


___>Аллилуя! Не прошло и 10 лет.


Дело не в том сколько лет прошло, а в том что это есть, и это несомненный плюс.

D>>3. Анонимные методы


___>Ну нифига себе! Вот это да! Так, глядишь, и C# 2 через лет 5 догонит.




D>>4. Куча новых поддерживаемых БД


___>Прямо таки куча. Еще дымящаяся?


В каком ещё языке по умолчанию есть полнофункциональный набор компонентов для управления ADO, MSSQL, MySQL, Oracle, BDB, и т.д.?

D>>5. Web решения


___>Афигеть! Это новость. Для дельфи .


Не поверите — новость. Значительные улучшения и добавления по сравнению с предыдущими версиями.

D>>+ нативность по моему мнению — это очевидный плюс, т.к. с .NET не все так гладко при подготовке shareware продуктов (фреймворк многое запрещает по умолчанию на конечных машинах)


___>Давайте нативность оставим С++. А дельфи — в топку.


Тут сравнение идет не с C++, а с C#, потому как C++ все таки уступает обоим в плане RAD GUI. А по моему мнению, так Delphi ещё и фору в этом плане всем дает.
Нативность оставить для C++ — это, по моему, зомбирование программистов. Есть такое выражение "Keep It Simple" (KISS если знаете ). Если мне удобно что-то сделать на Delphi, то я не буду использовать C++ только из-за того что он более продвинутый в плане использования WinAPI и возможности вручную рихтовать память.
Re[3]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 28.10.08 17:35
Оценка: -1
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, Mr.Cat, Вы писали:


Colon Operator

This is essential to our nullable support, but it is also a surprisingly useful feature for general coding. Basically, instead of using "." to access members and get an NullReferenceException if they are nil, use ":" and the call will be skipped for nil (and the result will be nil itself). For example:

IDisposable(SomeObject):Dispose; // only call dispose if the interface is implemented
x := Button:Parent:Parent:Parent // access the 3rd parent of a control, where any level might be nil.


на фичу не тянет

Inline Property Accessors

Define simple properties within the class declaration, without any extra setter/getters.

property Foo: String; // local field is implied;
property Right: Int32 read Left+Width; // reader expression is provided in line


Autoptoperties in c# 3.0?

"implies" operator

This is mostly helpful for invariants or pre/post-conditions. Basically, the second part only "needs" to be true if the first is; if the first is false, the entire expression is true. this sounds odd, but consider
require

assigned(Customer) implies Customer.CreditRatio > 5;
this translates too
require
(NOT assigned(Customer)) OR (Customer.CreditRatio > 5);
the above is much more readable.


Гм. Жесть. 2 ключевых слова ради непойми чего.

"case type of"

Write a switch/case statement that executes different cases depending on the TYPE of a certain object, i.e.
case type MyControl of:
Edit: // do something
Button: // do something else
end;


anything else? я прям без этого жить не мог

Property Notifications

These save a lot of boilerplate code. Attach the "notify" keyword to a property as directive (like "virtual"), and the compiler generates all the infrastructure and interfaces needed for property notifications to work (in C#, you'll need to implement getters/setters, add interfaces to the class, etc).
[q]

wow!

Enhanced Nullable Types

Unlike C#, the Delphi Prism compiler provides full support for nullable types. You can call their members and use them in expressions; there's extensive support for nullable expressions — if any part that contributes to an arithmetic expression is "nullable", the whole expression becomes nullable. if any part IS null, the whole expression becomes null. For example:
x: nullable Int32;
y: Int;
var a := x+y; // result is a nullable Int32;
var b := 5*x; // if x is null, so is b.

[/q]

wtf???

improved 'for each' loop
for each matching x: Button in Controls do // only run loop for buttons
// use i to count; also type of x is inferred automatically from type of "Controls", if its a generic enum
for each x in Controls index i do


мда....

'locked' directive
The locked directive allows methods, events and properties to be declared implicitly thread safe.


эмм...

Extended Constructor Calls

Set properties as part of the constructor call. This is especially useful if you're not assigning to a local ref. For example:
Controls.Add(new Button(Width := 100; Height := 50));
without this, you; would need a temp var for the button.


c# 3.0

Boolean Double Comparison
if 0 <= x < Count then //...


я чета не припомню, чтобы мне это было нужно?


Iteration delegation
The yield keyword supports delegation of the iterator to a second sequence.


no comments

Empty Methods
Supply the 'empty' directive on a method's interface declaration and you dont need to define the empty method body.

Exception Filters
Catch selective exceptions not only based on type, but also based on any arbitrary condition (supported by VB.NET but not C#).

raising/firing events
You can specify the visibility for raising/firing events. in C#, only the class that defines an event can fire it (from outside you can only add/remove handlers). in Delphi Prism, you can write the following and descendants can fire the event:
public
event Foo:EventHandler protected raise;


эммм....

Единственное, что заслуживает внимание, так это Class Contracts.


Зачем нам очередной клон c#, да еще и убогий?

Ребята, уберите var block! Хотя зачем? Ведь тогда оно умрет
Re[4]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 28.10.08 22:40
Оценка: +1
Здравствуйте, Константин Л., Вы писали:

КЛ>Единственное, что заслуживает внимание, так это Class Contracts.


Ну, оператор : и iteration delegation aka yield foreach и шарпу совсем не помешали бы.
Re[6]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 29.10.08 09:44
Оценка: +1
Здравствуйте, Константин Л., Вы писали:
КЛ>Про : уже сказали, а "iteration delegation aka yield foreach" это разве не yield return, появившийся в c# 2.0?

Не совсем. Это что-то типа foreach(type x in xs) yield x;
Re[3]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 29.10.08 10:13
Оценка: :)
Здравствуйте, L.Long, Вы писали:

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


D>>>Обсудим все + и — ?

D>>>Что хорошего появилось в Дельфи:
D>>>1. Шаблонизация
___>>Ух ты! А это што такое?

LL>Не, ты чув, як воны generic-и обозвали? Вбыв бы!


Ага, я вот как-бы пытался уточнить, то ли это ближе к шаблонам С++, то-ли к женерикам нетовским, то-ли нечто другое. В ответ получил +1
Re[5]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 29.10.08 19:55
Оценка: :)
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, diatlov, Вы писали:


КЛ>[]



D>>Так вот:


D>>


D>>Смотрим здесь


D>>Это данные по 2007 году. С выходом Дельфи 2009 рейтинг, думаю, только будет выше


КЛ>tiobe это фуфло.


КЛ>google trends


КЛ>rsdn:


КЛ>.net — 178030 posts

КЛ>.net gui — 51829 posts
КЛ>asp.net — 59203 posts

КЛ>~300 000 posts total


КЛ>delphi,builder — 75782


КЛ>ну и последний гвоздь — за последние 4 года слышал только об одном проекте на дельфе, и тот переписывается на шарп


Борландовские консоли не в ходу — это известный факт. Преимущества борландовских продуктов как раз в этом самом GUI, которого на шарпе аж 51829. Думаю приведенные вами цифры — был предсказуемый результат.
Re[9]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 30.10.08 23:19
Оценка: +1
Здравствуйте, Utruk, Вы писали:

U>Мне пофиг что там порождает дотнетный джит и что показывают купленные бенчмарки, но почему-то серия одинаковых запросов к Ораклу стабильно выполняется в 1.5 раза медленнее.


Вот уж тут то платформа точно не при чем. ODP к дотнету оракль пишет, так что все вопросы к МС. Драйвера к MSSQL работают не медленее нативных, даже если компилировать при помощи ICC (что не удивительно, vbs/js скорее всего тоже слабо отличимый результат продемонстрируют).

U> Почему-то скорость распределения и освобождения одинакового количества объектов (порядок — сотни тысяч, миллионы) в .NET менеджере памяти ни разу не было быстрее дельфийского


А это ты, уважаемый, просто вводишь нас в заблуждение. Скорость выделения дотнета не достижима ни для каких суперменеджеров кучи (не говоря уж о менеджере дельфи), потому что это прост инкремент одного указателя и пара проверок, а освобождение памяти в дотнете просто отсутствует.

U>, а если чонть в деструкторе написать то вообще туши свет.


В дотнете нет деструкторов.
Re[11]: Delphi 2009 vs C# 3.0
От: Klapaucius  
Дата: 31.10.08 07:25
Оценка: +1
Здравствуйте, Константин Л., Вы писали:

НС>>А это ты, уважаемый, просто вводишь нас в заблуждение. Скорость выделения дотнета не достижима ни для каких суперменеджеров кучи (не говоря уж о менеджере дельфи), потому что это прост инкремент одного указателя и пара проверок, а освобождение памяти в дотнете просто отсутствует.


КЛ>не знаю, что ты этим хотел сказать, но оно там не только присутствует, но еще и дороже чем в unmanaged heap.


Вообще-то нет. Накладные расходы связаны с живыми объектами, пережившими первую сборку, а не с мертвыми.
... << RSDN@Home 1.2.0 alpha 4 rev. 1110>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[7]: Delphi 2009 vs C# 3.0
От: yuriylsh  
Дата: 02.11.08 21:52
Оценка: +1
Здравствуйте, Ночной Смотрящий, Вы писали:

G>>Даже смешно как-то. 2009 версия Delphi чуть лучше C# 2.0, но вероятнее всего к концу 2009 года уже выйдет C# 4.0.


НС>Который ничем от C# 3 не отличается, окромя уродства под названием dynamic.


Ну, во-первых, не только Dynamically Typed Objects, также туда входят optional and named parameters, improved COM interoperability (это выглядело прикольно), сo- and сontra-variance. Плюс, тема concurrency, по личным впечатлениям, еще до конца не раскрыта и увидим мы это чуть позже.

Во вторых, почему dinamic это уродство? В сценариях с Silverlight, работой с COM и взаимодействия с динамическими языками очень и очень даже полезная фича.

Плюс, стоит не забывать (возможно, это и не совсем по теме топика, хотя как посмотреть), что вместе с самим языком обновления коснуться также и, так сказать, окружающие вещи, такие как новая версия ASP.NET (лично, правда, больше ожидаю ASP.NET MVC).
Luck in life always exists in the form of an abstract class that cannot be instantiated directly and needs to be inherited by hard work and dedication.
Re[13]: Delphi 2009 vs C# 3.0
От: Antikrot  
Дата: 05.11.08 00:11
Оценка: +1
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Это в очередной раз продемонстрировало уровень знаний о дотнете.

скорее о незнании всего кроме дельфи
Re[4]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 05.11.08 10:33
Оценка: +1
Здравствуйте, elmal, Вы писали:

E>... А так ... при необходимости, я уверен, что на Дельфи я напишу вполне поддерживаемый код ...


Главное не забывать в средах визуального проектирования логику и работу приложения описывать не в OnClick'ах, а в выделенных классах и функциях. Тогда на любом языке все будет тип-топ )
Re[15]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 05.11.08 11:23
Оценка: +1
Здравствуйте, Utruk, Вы писали:

U>Здравствуйте, Ночной Смотрящий, Вы писали:


НС>>Здравствуйте, Utruk, Вы писали:


U>>>Destructors (C# Programming Guide)


НС>>Ошибка в старом стандарте. Смотри более новый, там ошибку поправили.


U>Я смотрю тот хелп который пришел с MSVS C# 2008. В новом стандарте они как-то коренным образом изменились или их просто перестали называть деструкторами?


http://www.rsdn.ru/forum/message/2947045.1.aspx
Автор: gandjustas
Дата: 12.05.08

http://www.rsdn.ru/forum/message/2946875.1.aspx
Автор: _d_m_
Дата: 12.05.08
Re[16]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 13:10
Оценка: :)
Здравствуйте, Mr.Cat, Вы писали:

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

U>>Я смотрю тот хелп который пришел с MSVS C# 2008. В новом стандарте они как-то коренным образом изменились или их просто перестали называть деструкторами?

MC>Еще раз. Финализатор в среде с GC и деструктор в среде без GC — это сильно различающиеся вещи, как их ни назови.


Хорошо. Вы можете привести пример в котором код написанный в финализаторе или Dispose выполнялся бы быстрее нативного при условии что выполняются одни и те-же действия? Естественно вместе с GC.Collect, потому как объектов много и память физическая нужна сейчас, а не когда-нибудь.
Re[19]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 05.11.08 17:37
Оценка: +1
Здравствуйте, Utruk, Вы писали:
U>Речь шла изначально о скорости, но вам похоже важнее выяснить как оно называется.
Да. Я вообще последнее время не увлекаюсь бесполезными бенчмарками. В 99% случаев узким местом будет БД, сеть, какие-нибудь внешние библиотеки (например, для математических расчетов) или пользователь. Так что разницы в производительности особо никто не заметит.

U>Есть некий механизм финализации ... по сути выполняют эти механизмы одну и ту-же функцию.

Цель-то конечно одна — ресурсы корректно освободить. А вот техническая реализация совершенно разная.

U>миллионы объектов ... сохраняться в БД

Вот работа с БД и будет занимать большую часть времени. Так что займитесь лучше оптимизацией запросов, а приложение можете хоть на питоне написать.
Re[21]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 18:27
Оценка: -1
Здравствуйте, Utruk, Вы писали:

U>Тезис был "Delphi лучше C# потому что быстрее"... начиналось всё с "увеличения указателя и пары проверок", теперь уже "пооптимизируйте в других местах". В "других местах" оно даст эффект и с нативным приложением, тут заслуги сишарпа с дотнетом никакой.


Производительность имеет значение только тогда, когда ее не хватает. Вот наш проектик обслуживает примерно 7000-8000 подключений за сутки. Жалоб на производительность нету.

Глобальное преимущество .NET и Java — удобство и скорость разработки. Покажи мне нормальные аналоги для Castle Windsor, MEF, ASP.NET MVC, nHibernate, Rhino Mocks, nServiceBus и т.д. и т.п и покажи мне средства для организации полноценного continuous integration процесса...

Delphi как была никчемной игрушкой для бедных ВУЗов и энтузиастов этого уродства под названием "delphi language", так ею и осталась.
Re[25]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 05.11.08 20:53
Оценка: :)
Здравствуйте, Utruk, Вы писали:

U>Т.е вы хотите сказать что если я скажем перепишу анализ документа на C#, то при одинаковом алгоритме он будет быстрее чем на Delphi?

При одинаковом алгоритме конечно нет. А если написать хороший алгоритм для .NET, то прога на C# окажется быстрее, а код станет гораздо более удобочитаемый.
Re[23]: Delphi 2009 vs C# 3.0
От: Antikrot  
Дата: 05.11.08 22:35
Оценка: +1
Здравствуйте, Utruk, Вы писали:

U>Да нет, нули там. Это видимо FastMM так старается.

Да нет, мусор там. SetLength не инициализирует байты. Это видимо ОС так старается — зануляет память после выгрузки оттуда предыдущей программы...
Re[12]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 06.11.08 18:55
Оценка: +1
Здравствуйте, diatlov, Вы писали:


НС>>Нет, это значит, что если полазал в настройках грязными ручками, то нечего на дотнет пенять.


D>Тебе не кажется что все твои доводы безосновательны?

D> Да, если программа на .NET не использует сетевых возможностей, не лезет узнавать сетевое имя твоего компа, не открывает лишние подозрительные порты и т.д. (т.е. если программа для домохозяек, дает совет что лучше на завтрак приготовить) то она таки будет работать на любом компьютере с предустановленным фреймворком без дополнительных напильников.
D>У меня программа активно юзает сеть и мне таки пришлось полазить в настройках, но уже после того как exception стал вылезать на конечной машине.

D>В общем, если у тебя нет опыта дистрибуции и распространения программ на .NET, то уж лучше молчи, а если есть то скажи конкретно какую галочку и где надо поставить при сборке чтобы все работало всегда и везде.


У меня много лет опыта дистрибуции программ на .NET и подобной проблемы ни разу не видел. "Что я делаю не так?"
Re[6]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 14.11.08 06:19
Оценка: :)
Здравствуйте, diatlov, Вы писали:

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


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


D>>>Извините, глюкнуло


___>>Даже больше, чем можешь себе представить — очнись, сбрось наваждение Дельфи!


D>Я не дельфист ) Я как раз на Шарпе и пишу. Но т.к. тут все против Дельфи то, чтобы поддержать беседу, кому-то же надо находить положительные моменты в Дельфи.

D>Вот и стараюсь по мере возможности (На дельфи программировал только в 10 и 11 классе).

Вся RTL/VCL Delphi идёт с исходными текстами — это огромный плюс для тех, кто хочеть серьёзно изучить среду.
Re[15]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 26.11.08 20:20
Оценка: :)
Здравствуйте, Utruk, Вы писали:

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

G>>Чуть более реальный сценарий, как раз выделение-освобождение памяти.
G>> [...]
G>>Результаты:
G>>C# time 164
G>>Delphi time 484

G>>ЗЫ. При написании тестов запетил, что .NET тормозит при перераспределении больших блоков памяти. Поэтому большим спискам и StringBuilder с кучей текста лучше сразу выставлять capicity и не превышать её.


U>Ага... поигрался с ObjectCount... где-то от 10000 до 20000 происходит тот самый знаменательный момент под названием сборка мусора и все... производительность программы на C# умерла, после этого она уже медленнее всегда. По моему 20000 объектов — более чем реальное распределение за один заход, зависит конечно от задачи...


Рекомендую поиграться еще с типом массива, например object[]. Так показания будут ближе к задаче.
И GC это напряжет довольно сильно.
Re[2]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 17.02.09 13:14
Оценка: +1
Здравствуйте, pers79, Вы писали:

P>Добавлю свои пять копеек.

P>Сделал простую програмку на Delphi2009 и C# 2008, суть проста
P>взять Grid и заполнить его строками в количестве N, где N=30000 и 600000
P>попробовал все три значения. Время мерял через два DateTimePicker, как видно из кода.
P>В Delphi взял StringGrid, в VS2008 Express — DataGridView.

P>Код получился такой:

Код получился далеко не эквивалентный. Код на Delphi сразу задает емкость грида, а на дотнете добавляет по одной.

P>По поводу скорости очевидно.

P>Выбираю среду разработки для своего проекта, пока что в раздумьях.

Очевидно, что недорос даже до формоклепателя, куда там свой проект
Re[8]: Delphi 2009 vs C# 3.0
От: hattab  
Дата: 17.02.09 19:46
Оценка: -1
Здравствуйте, pers79, Вы писали:

P>Время для C# после второго запуска — 3-9сек, в среднем 4сек.-самый частый результат (600_000 записей). Я вполне доволен теперь.

P>Время для Delphi — очень удивился 8-10сек. (600_000 записей)
...
P>Вот такие пироги

Гриды-то хоть скрытые, или ты еще и скорость инвалидации померял? И в Delphi отключи опцию String format checking. А вообще, конечно, гриды не показатель

p.s. Да, машинка какая?
Re[29]: Delphi 2009 vs C# 3.0
От: iyura  
Дата: 18.02.09 09:44
Оценка: +1
Здравствуйте, kuj, Вы писали:

kuj>Ты подписался и расписался в вопиющей некомпетентности. Мальчик, прежде чем спорить со взрослыми дядьками изучи предмет спора.


Дяденька, извините, что влезаю с оффтопом, но хамить-то зачем? Или ты первый после Бога?
Re[3]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 28.10.08 13:18
Оценка:
Здравствуйте, diatlov, Вы писали:

[]

___>>Давайте нативность оставим С++. А дельфи — в топку.


D>Тут сравнение идет не с C++, а с C#, потому как C++ все таки уступает обоим в плане RAD GUI. А по моему мнению, так Delphi ещё и фору в этом плане всем дает.

D>Нативность оставить для C++ — это, по моему, зомбирование программистов. Есть такое выражение "Keep It Simple" (KISS если знаете ). Если мне удобно что-то сделать на Delphi, то я не буду использовать C++ только из-за того что он более продвинутый в плане использования WinAPI и возможности вручную рихтовать память.

Delphi — RAD GUI? Ды вы видели этот гуй? Я RAD Studio видели? Как посмотрите — приходите.
Re[3]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 28.10.08 16:40
Оценка:
Здравствуйте, diatlov, Вы писали:
D>В каком ещё языке по умолчанию есть полнофункциональный набор компонентов для управления ADO, MSSQL, MySQL, Oracle, BDB, и т.д.?
Давайте с другого конца укусим? Какие сложности работы с перечисленными СУБД есть в .NET (java, python, ruby, lisp, свой вариант) и нет в дельфи?
Re: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 28.10.08 16:41
Оценка:
Здравствуйте, diatlov, Вы писали:
D>фреймворк многое запрещает по умолчанию на конечных машинах

Ммм, у любителей дельфи новые аргументы появились. И что же Вам запретил FW?
Re: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 28.10.08 16:54
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Что хорошего появилось в Дельфи:

D>1. Шаблонизация
D>2. Полная поддержка Unicode
D>3. Анонимные методы
Вы уверены, что этого достаточно, чтобы delphi как язык сравнивать с C# 3.0 как языком?
Re[2]: Delphi 2009 vs C# 3.0
От: Трурль  
Дата: 28.10.08 17:12
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Вы уверены, что этого достаточно, чтобы delphi как язык сравнивать с C# 3.0 как языком?

http://prismwiki.codegear.com/wiki/Delphi_Prism_vs._CSharp
Re: Delphi 2009 vs C# 3.0
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 28.10.08 17:13
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Что хорошего появилось в Дельфи:

D>1. Шаблонизация
D>2. Полная поддержка Unicode
D>3. Анонимные методы
D>4. Куча новых поддерживаемых БД
D>5. Web решения

А что тут обсуждать-то? Это едва дотягивает до C# 2.0, который вышел аж 4 года назад. Так что сравнение будет некорректным и заведомо проигрышным для дельфей.
[КУ] оккупировала армия.
Re[3]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 28.10.08 17:31
Оценка:
Здравствуйте, Трурль, Вы писали:
Т>http://prismwiki.codegear.com/wiki/Delphi_Prism_vs._CSharp

По большей части это мусор. Все более-менее полезное из того списка доступно и в C#.
Re[4]: Delphi 2009 vs C# 3.0
От: WolfHound  
Дата: 28.10.08 17:55
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>

КЛ>Boolean Double Comparison
КЛ>if 0 <= x < Count then //...

КЛ>я чета не припомню, чтобы мне это было нужно?
А что код типа:
if (0 <= x && x < Count)

Никогда не писал?

А вобще все эти феньки либо уже сделаны в немерле макросами либо делаются на раз.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[5]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 28.10.08 18:00
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Константин Л., Вы писали:


КЛ>>

КЛ>>Boolean Double Comparison
КЛ>>if 0 <= x < Count then //...

КЛ>>я чета не припомню, чтобы мне это было нужно?
WH>А что код типа:
WH>
WH>if (0 <= x && x < Count)
WH>

WH>Никогда не писал?

представляешь, не писал так давно, что пришлось открывать стадион и проверять, что это не компилиццо

WH>А вобще все эти феньки либо уже сделаны в немерле макросами либо делаются на раз.
Re[5]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 28.10.08 18:17
Оценка:
Здравствуйте, WolfHound, Вы писали:
WH>немерле

Судя по всему, на rsdn начались осенние деньки с nemerle. Похоже, это заразно, я вот уже читаю вводный курс.
Re[4]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 28.10.08 18:58
Оценка:
Здравствуйте, Pro100Oleh, Вы писали:

PO>Это не плюс, а отсутсвие минуса.


По сравнению с предыдущими latin1 несомненный плюс
Re[4]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 28.10.08 19:01
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

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

D>>В каком ещё языке по умолчанию есть полнофункциональный набор компонентов для управления ADO, MSSQL, MySQL, Oracle, BDB, и т.д.?
MC>Давайте с другого конца укусим? Какие сложности работы с перечисленными СУБД есть в .NET (java, python, ruby, lisp, свой вариант) и нет в дельфи?

Ну к примеру визуализации не хватает. В C# с этим правда попытались бороться, но все равно многовато вылезает компонент для связи с данными против одного-двух в Delphi.
Re[4]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 28.10.08 19:02
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Delphi — RAD GUI? Ды вы видели этот гуй? Я RAD Studio видели? Как посмотрите — приходите.


Видел, не сомневайтесь. Это одна из лучших RAD мира
Re[4]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 28.10.08 19:03
Оценка:
Здравствуйте, swined, Вы писали:

S>diatlov wrote:


>> В каком ещё языке по умолчанию есть полнофункциональный набор компонентов

>> для управления ADO, MSSQL, MySQL, Oracle, BDB, и т.д.?

S>perl


У перла другие сильные стороны
Re[2]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 28.10.08 19:08
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

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

D>>фреймворк многое запрещает по умолчанию на конечных машинах

MC>Ммм, у любителей дельфи новые аргументы появились. И что же Вам запретил FW?


Я не любитель Delphi, просто одно время на нем программировал, сейчас давно уже на Шарпе сижу. Вот и появилась идея сравнить.
По поводу запретов. К примеру сетевые приложения по умолчанию не могут использовать функции для определения хоста (getDNSName) — вываливается exception. Для обхода проблемы приходится подписывать все библы идущие с прогой и саму прогу (sn.exe), а потом на конечной машине импортировать ключи в хранилище.
Может это как-то по другому решается, но я пока не знаю как. С Delphi таких проблем не было и вряд ли будет, т.к. она не управляется .NET
Re[2]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 28.10.08 19:10
Оценка:
Здравствуйте, koandrew, Вы писали:

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


D>>Что хорошего появилось в Дельфи:

D>>1. Шаблонизация
D>>2. Полная поддержка Unicode
D>>3. Анонимные методы
D>>4. Куча новых поддерживаемых БД
D>>5. Web решения

K>А что тут обсуждать-то? Это едва дотягивает до C# 2.0, который вышел аж 4 года назад. Так что сравнение будет некорректным и заведомо проигрышным для дельфей.


А что по вашему выгодно отличает C# от Delphi? Кроме синтаксиса )))
Re[5]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 28.10.08 19:36
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Здравствуйте, Константин Л., Вы писали:


КЛ>>Delphi — RAD GUI? Ды вы видели этот гуй? Я RAD Studio видели? Как посмотрите — приходите.


D>Видел, не сомневайтесь. Это одна из лучших RAD мира



здесь
Автор: Константин Л.
Дата: 15.10.08
и далее


У меня ее открывать даже желания нет. VS дабажит дельфийский код лучше, чем CodeGear RAD Studio
Re[3]: Delphi 2009 vs C# 3.0
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 28.10.08 19:39
Оценка:
Здравствуйте, diatlov, Вы писали:

D>А что по вашему выгодно отличает C# от Delphi? Кроме синтаксиса )))


Как это "кроме синтаксиса"? Мы же языки обсуждаем! Синтаксис и раздражает больше всего...

Ну ладно, едем дальше:
Это что сходу пришло в голову. Если подумать, то наверняка ещё что-нить вспомню...
[КУ] оккупировала армия.
Re[4]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 28.10.08 19:57
Оценка:
K>Ну ладно, едем дальше:
K> K>Это что сходу пришло в голову. Если подумать, то наверняка ещё что-нить вспомню...

По поводу всего этого топика по моему уже можно расслабиться поскольку Delphi.NET выкинута CodeGear-ом на помойку и замещена новой хренью под названием Delphi Prism. Насколько я понял в этой скотинке есть/будет всё то-же самое что есть в C# + то чего в нем нет.

http://www.codegear.com/products/delphi/prism
http://www.bitwisemag.com/2/Delphi-Prism-Visual-Studio-Pascal
Re[5]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.10.08 20:21
Оценка:
Здравствуйте, Utruk, Вы писали:

U>По поводу всего этого топика по моему уже можно расслабиться поскольку Delphi.NET выкинута CodeGear-ом на помойку и замещена новой хренью под названием Delphi Prism. Насколько я понял в этой скотинке есть/будет всё то-же самое что есть в C# + то чего в нем нет.


Даже смешно как-то. 2009 версия Delphi чуть лучше C# 2.0, но вероятнее всего к концу 2009 года уже выйдет C# 4.0.
Re[7]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.10.08 20:42
Оценка:
Здравствуйте, Utruk, Вы писали:

G>>Даже смешно как-то. 2009 версия Delphi чуть лучше C# 2.0, но вероятнее всего к концу 2009 года уже выйдет C# 4.0.


U>Для тех кто не в танке Delphi 2009 Win32 доступна уже сейчас, а Prism будет доступна в ноябре этого года. На мой взгляд сравнивать нативную и .net-овскую среды программирования бессмысленно. Любая нативная дельфи если вдуматься лучше чем любой C# хотя бы потому что быстрее. Но не буду спорить... C# лучше, пусть будет лучше.


Мы тут вообще-то о языке. А про все остальное даже думать не хочется.
Re[6]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 28.10.08 22:47
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Даже смешно как-то. 2009 версия Delphi чуть лучше C# 2.0, но вероятнее всего к концу 2009 года уже выйдет C# 4.0.


Который ничем от C# 3 не отличается, окромя уродства под названием dynamic.
Re[7]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 28.10.08 22:47
Оценка:
Здравствуйте, Utruk, Вы писали:

U> Любая нативная дельфи если вдуматься лучше чем любой C# хотя бы потому что быстрее.


Нативный компилятор Дельфи порождает код, который в большинстве случаев медленнее того, который порождает дотнетный джит.
Re[7]: Delphi 2009 vs C# 3.0
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 28.10.08 22:52
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Который ничем от C# 3 не отличается, окромя уродства под названием dynamic.


Неправда. Co- и contravariance тоже ценная ИМХО фича...
[КУ] оккупировала армия.
Re[3]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 29.10.08 00:01
Оценка:
Здравствуйте, diatlov, Вы писали:
D>По поводу запретов. К примеру сетевые приложения по умолчанию не могут использовать функции для определения хоста (getDNSName) — вываливается exception. Для обхода проблемы приходится подписывать все библы идущие с прогой и саму прогу (sn.exe), а потом на конечной машине импортировать ключи в хранилище.

Впервые слышу. Хотел уж код писать, да уже вроде Ночной Смотрящий проверил.
Re[5]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 29.10.08 00:08
Оценка:
Здравствуйте, diatlov, Вы писали:
D>Ну к примеру визуализации не хватает.
Чего визуализировать-то надо? Поподробнее пожалуйста. Вы, дельфисты, все такие. Начинаете говорить, что, мол дельфи лучше, что интуитивно понятнее, что готовые компоненты удобнее, что дизайнер гуя лучший в мире. А потом детали надо из Вас клещами вытягивать.

D>многовато вылезает компонент для связи с данными против одного-двух в Delphi.

Опять Вы какие-то общие рассуждения начинаете. Так один в дельфи компонент для связи с данными или все-таки два? Какая связка дотнетовских классов/компонентов реализует аналогичную функциональность?
Re[8]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 29.10.08 03:26
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Utruk, Вы писали:


U>> Любая нативная дельфи если вдуматься лучше чем любой C# хотя бы потому что быстрее.


НС>Нативный компилятор Дельфи порождает код, который в большинстве случаев медленнее того, который порождает дотнетный джит.


Мне пофиг что там порождает дотнетный джит и что показывают купленные бенчмарки, но почему-то серия одинаковых запросов к Ораклу стабильно выполняется в 1.5 раза медленнее. Почему-то скорость распределения и освобождения одинакового количества объектов (порядок — сотни тысяч, миллионы) в .NET менеджере памяти ни разу не было быстрее дельфийского, а если чонть в деструкторе написать то вообще туши свет.
Re[4]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 29.10.08 07:29
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, diatlov, Вы писали:


D>>По поводу запретов. К примеру сетевые приложения по умолчанию не могут использовать функции для определения хоста (getDNSName) — вываливается exception.


НС>
НС>foreach (var addr in Dns.GetHostAddresses("rsdn.ru"))
НС>    Console.WriteLine(addr);
НС>

НС>
НС>194.154.75.214
НС>


НС>Работает даже при включенном UAC без подписи.


Нужно проверять не на девелоперских машинах, а пользовательских. У некоторых пользователей все ок, у некоторых exception.
Вот пример кода, который требует подписи на некоторых машинах:

#region Список найденных IP адресов
            IPHostEntry m_Entry = Dns.GetHostEntry(Dns.GetHostName());
            foreach (IPAddress m_Addr in m_Entry.AddressList)
            {
                m_LocalIP.Items.Add(m_Addr.ToString());
                if (m_Addr.ToString() == LocalIP)
                    m_ipindex = m_LocalIP.Items.Count - 1;
            }
            
            if (m_LocalIP.Items.Count > 0)
                m_LocalIP.SelectedIndex = m_ipindex % m_LocalIP.Items.Count;
#endregion
Re[3]: Delphi 2009 vs C# 3.0
От: Mamut Швеция http://dmitriid.com
Дата: 29.10.08 08:17
Оценка:
D>В каком ещё языке по умолчанию есть полнофункциональный набор компонентов для управления ADO, MSSQL, MySQL, Oracle, BDB, и т.д.?

Что такое компонент?
Чем JDBC в Java не устроил


dmitriid.comGitHubLinkedIn
Re[5]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 29.10.08 09:17
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Константин Л., Вы писали:


КЛ>>Единственное, что заслуживает внимание, так это Class Contracts.


НС>Ну, оператор : и iteration delegation aka yield foreach и шарпу совсем не помешали бы.


Про : уже сказали, а "iteration delegation aka yield foreach" это разве не yield return, появившийся в c# 2.0?
Re[7]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 29.10.08 10:10
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, Константин Л., Вы писали:

КЛ>>Про : уже сказали, а "iteration delegation aka yield foreach" это разве не yield return, появившийся в c# 2.0?

MC>Не совсем. Это что-то типа foreach(type x in xs) yield x;


и чем это отличается от foreach(type x in xs) yield return x; ?
Re: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 29.10.08 10:25
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Обсудим все + и — ?


D>Что хорошего появилось в Дельфи:

...

Все, что осталось от дельфи — это поблекшая былая слава.
Хайлсберг, уже давно работает над C# а вы все еще живете прошлым.
Re[8]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 29.10.08 10:59
Оценка:
Здравствуйте, Константин Л., Вы писали:
КЛ>и чем это отличается от foreach(type x in xs) yield return x; ?
Очевидно, тем, что я забыл после yield написать return.
Re[9]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 29.10.08 11:41
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, Константин Л., Вы писали:

КЛ>>и чем это отличается от foreach(type x in xs) yield return x; ?
MC>Очевидно, тем, что я забыл после yield написать return.

так может объяснишь на пальцах?
Re[10]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 29.10.08 16:34
Оценка:
Здравствуйте, Константин Л., Вы писали:
КЛ>так может объяснишь на пальцах?

Вот это объяснить?
КЛ>>>и чем это отличается от foreach(type x in xs) yield return x; ?

Так я ж и говорю, что ничем (насколько я понял), я так и написал, что эта делегация йилда — тот же самый foreach.
Re[2]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 29.10.08 17:09
Оценка:
Здравствуйте, _d_m_, Вы писали:

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


D>>Обсудим все + и — ?


D>>Что хорошего появилось в Дельфи:

___>...

___>Все, что осталось от дельфи — это поблекшая былая слава.

___>Хайлсберг, уже давно работает над C# а вы все еще живете прошлым.
Re[3]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 29.10.08 17:12
Оценка:
Здравствуйте, diatlov, Вы писали:

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


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


D>>>Обсудим все + и — ?


D>>>Что хорошего появилось в Дельфи:

___>>...

___>>Все, что осталось от дельфи — это поблекшая былая слава.

___>>Хайлсберг, уже давно работает над C# а вы все еще живете прошлым.


Извините, глюкнуло

Так вот:



Смотрим здесь

Это данные по 2007 году. С выходом Дельфи 2009 рейтинг, думаю, только будет выше
Re[4]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 29.10.08 17:14
Оценка:
Извините, данные все таки за 2008 год. Но все же.. Дельфи 2009 вышла только в середине октября
Re[4]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 29.10.08 17:47
Оценка:
Здравствуйте, diatlov, Вы писали:

[]


D>Так вот:


D>


D>Смотрим здесь


D>Это данные по 2007 году. С выходом Дельфи 2009 рейтинг, думаю, только будет выше


tiobe это фуфло.

google trends

rsdn:

.net — 178030 posts
.net gui — 51829 posts
asp.net — 59203 posts

~300 000 posts total

delphi,builder — 75782

ну и последний гвоздь — за последние 4 года слышал только об одном проекте на дельфе, и тот переписывается на шарп
Re[4]: Delphi 2009 vs C# 3.0
От: squid  
Дата: 29.10.08 17:52
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Смотрим здесь


Delphi растет C# падает... С миром опять что-то не то
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Delphi 2009 vs C# 3.0
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 21:20
Оценка:
Здравствуйте, Utruk, Вы писали:

U>Любая нативная дельфи если вдуматься лучше чем любой C# хотя бы потому что быстрее.


В т.ч. и на это ответил здесь: Сказка о циничном ученом, простреленных ногах разработчиков
Автор: kochetkov.vladimir
Дата: 29.10.08
, хотя тема похоже сюда сама скоро переползет

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 30.10.08 08:52
Оценка:
Здравствуйте, diatlov, Вы писали:

КЛ>>tiobe это фуфло.


КЛ>>google trends


КЛ>>rsdn:


КЛ>>.net — 178030 posts

КЛ>>.net gui — 51829 posts
КЛ>>asp.net — 59203 posts

КЛ>>~300 000 posts total


КЛ>>delphi,builder — 75782


КЛ>>ну и последний гвоздь — за последние 4 года слышал только об одном проекте на дельфе, и тот переписывается на шарп


D>Борландовские консоли не в ходу — это известный факт. Преимущества борландовских продуктов как раз в этом самом GUI, которого на шарпе аж 51829. Думаю приведенные вами цифры — был предсказуемый результат.


Нет, просто так много вопросов только по .net gui, что пришлось выделить их в отдельный форум. А какие такие преимущества у богландовского ГУИ, которых нет в С#?
Re[4]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 30.10.08 08:57
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Извините, глюкнуло


Даже больше, чем можешь себе представить — очнись, сбрось наваждение Дельфи!

D>Так вот:


D>


D>Смотрим здесь


У меня этот сайт так и не открылся, наверное перегружен запросами от пописчиков КСВ
Re[5]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 30.10.08 23:19
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Нужно проверять не на девелоперских машинах, а пользовательских.


И в чем разница?

D> У некоторых пользователей все ок, у некоторых exception.



Ты, случаем, у этих некоторых не с сетевого диска программу запускал?
Re[6]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 30.10.08 23:19
Оценка:
Здравствуйте, Antikrot, Вы писали:

A>Если я правильно понял, что, он делает, лишь будет закапывать ошибки поглубже и усложнять отладку...


Да уж, код из кучи ифов с проверкой на null, он конечно намного лучше
Re[10]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 30.10.08 23:19
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Код в студию.


Да какой там код? Человек явно демонстрирует полное непонимание предмета.
Re[4]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 30.10.08 23:19
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Впервые слышу. Хотел уж код писать, да уже вроде Ночной Смотрящий проверил.


По наличию/отсутствию подписи может сработать только CAS, причем если ключ в полиси прописан.
Re[6]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 30.10.08 23:26
Оценка:
Здравствуйте, diatlov, Вы писали:

Ты не мог бы лишнее цитирование удалять?
Re[7]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 31.10.08 00:15
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Antikrot, Вы писали:


A>>Если я правильно понял, что, он делает, лишь будет закапывать ошибки поглубже и усложнять отладку...


НС>Да уж, код из кучи ифов с проверкой на null, он конечно намного лучше


забыл когда последний раз такой код писал
Re[10]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 31.10.08 00:16
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Utruk, Вы писали:


U>>Мне пофиг что там порождает дотнетный джит и что показывают купленные бенчмарки, но почему-то серия одинаковых запросов к Ораклу стабильно выполняется в 1.5 раза медленнее.


НС>Вот уж тут то платформа точно не при чем. ODP к дотнету оракль пишет, так что все вопросы к МС. Драйвера к MSSQL работают не медленее нативных, даже если компилировать при помощи ICC (что не удивительно, vbs/js скорее всего тоже слабо отличимый результат продемонстрируют).


U>> Почему-то скорость распределения и освобождения одинакового количества объектов (порядок — сотни тысяч, миллионы) в .NET менеджере памяти ни разу не было быстрее дельфийского


НС>А это ты, уважаемый, просто вводишь нас в заблуждение. Скорость выделения дотнета не достижима ни для каких суперменеджеров кучи (не говоря уж о менеджере дельфи), потому что это прост инкремент одного указателя и пара проверок, а освобождение памяти в дотнете просто отсутствует.


не знаю, что ты этим хотел сказать, но оно там не только присутствует, но еще и дороже чем в unmanaged heap.

U>>, а если чонть в деструкторе написать то вообще туши свет.


НС>В дотнете нет деструкторов.
Re[11]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.10.08 05:19
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

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


G>>Код в студию.


НС>Да какой там код? Человек явно демонстрирует полное непонимание предмета.


Да просто поржать хотел.
Ровно год назад знакомый толкал такие же мысли по поводу C++Builder и .NET. Оказалось что в .NET он использовал DataSet, а в билдере ADO Recordset (компонент ADOQuery).
Когда на .NET переписали с использованием datareader, то на .NET все гораздо быстрее заработало.
Re[7]: Delphi 2009 vs C# 3.0
От: Antikrot  
Дата: 31.10.08 07:26
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

A>>Если я правильно понял, что, он делает, лишь будет закапывать ошибки поглубже и усложнять отладку...

НС>Да уж, код из кучи ифов с проверкой на null, он конечно намного лучше
С *моей* точки зрения (поддержка/отладка такого кода), код с ":" в общем случае просто г..о по сравнению с кучей проверок. Давайте уж тогда on error resume next добавим, фиг ли.
Re[6]: Delphi 2009 vs C# 3.0
От: LuciferArh Россия  
Дата: 31.10.08 09:39
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>И в чем разница?


Иногда банальна — разная винда, к примеру, стоит. В свое время сколько раз наступал на грабли с ограничением размера простого текстовика в NT и Win9x. Опять же от приложения зависит. Я, к примеру, использую Office 2003 и у меня отчет в Excel шикарно строится (на сводных таблицах замечено), а у пользователя — Office 2000, и отчет не работает.

НС>Ты, случаем, у этих некоторых не с сетевого диска программу запускал?


А без разницы. Просто какой-то DLL-ки не хватает. И все, exception гарантирован. Хотя это уже все пройдено десять раз. И все мое ношу с собой. Просто так, на всякий...

Хотя, это все вообще безотносительно ЯП. Хоть на своем собственном пиши...
С годами я делаюсь все менее терпимым к людям неумным и неумеющим работать свое дело очень хорошо. (с) М. Веллер
Re[12]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 31.10.08 09:44
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Здравствуйте, Константин Л., Вы писали:


НС>>>А это ты, уважаемый, просто вводишь нас в заблуждение. Скорость выделения дотнета не достижима ни для каких суперменеджеров кучи (не говоря уж о менеджере дельфи), потому что это прост инкремент одного указателя и пара проверок, а освобождение памяти в дотнете просто отсутствует.


КЛ>>не знаю, что ты этим хотел сказать, но оно там не только присутствует, но еще и дороже чем в unmanaged heap.


K>Вообще-то нет. Накладные расходы связаны с живыми объектами, пережившими первую сборку, а не с мертвыми.


при чем здесь это? В .net нет сборки мусора? А уплотнения хипа? Или мы с тобой о чем вообще?
Re[7]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 31.10.08 10:05
Оценка:
Здравствуйте, LuciferArh, Вы писали:

НС>>И в чем разница?


LA>Иногда банальна — разная винда, к примеру, стоит.


Что значит разная? Речь шла о Висте.

НС>>Ты, случаем, у этих некоторых не с сетевого диска программу запускал?


LA>А без разницы. Просто какой-то DLL-ки не хватает.


А с подписью dll'ка таинственным образом появляется?
Re[5]: Delphi 2009 vs C# 3.0
От: Константин Л.  
Дата: 31.10.08 10:42
Оценка:
Здравствуйте, diatlov, Вы писали:

если приложение ставится click-once'ом, то пора бы девелоперам почитать про trust zones, permissions и проч для приложений, устанавливаемых этим самым click-once
Re[6]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 01.11.08 09:13
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>если приложение ставится click-once'ом, то пора бы девелоперам почитать про trust zones, permissions и проч для приложений, устанавливаемых этим самым click-once


Думаю, там все намного проще — запускают с сетевого диска. Вот и получается — у кого то работает, кто с локальног диска пускает, у кого то нет. А разбираться неохота — проще на кривую платформу свалить.
Re: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 01.11.08 16:47
Оценка:
Вроде бы взрослые люди, а ведётесь на столь явный троллинг...
Re[5]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 01.11.08 19:05
Оценка:
Здравствуйте, _d_m_, Вы писали:

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


D>>Извините, глюкнуло


___>Даже больше, чем можешь себе представить — очнись, сбрось наваждение Дельфи!


Я не дельфист ) Я как раз на Шарпе и пишу. Но т.к. тут все против Дельфи то, чтобы поддержать беседу, кому-то же надо находить положительные моменты в Дельфи.
Вот и стараюсь по мере возможности (На дельфи программировал только в 10 и 11 классе).
Re[8]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 01.11.08 19:13
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, LuciferArh, Вы писали:


НС>>>И в чем разница?


LA>>Иногда банальна — разная винда, к примеру, стоит.


НС>Что значит разная? Речь шла о Висте.


НС>>>Ты, случаем, у этих некоторых не с сетевого диска программу запускал?


LA>>А без разницы. Просто какой-то DLL-ки не хватает.


НС>А с подписью dll'ка таинственным образом появляется?


О КАКОЙ ВИСТЕ??????????????????????
Речь шла о всеми любимой XP. По крайней мере я её имел ввиду.
При попытке на пользовательской машине моего приложения узнать имя машины и список её IP-адресов вываливался exception, где писалось что-то типа у вашего приложения недостаточно прав и т.д. и т.п. Обратитесь к системному администратору или зайдите в консоль управления фреймворком и дайте ему прав скоко нада.

Решал методом подписи приложения ч/з sn.exe (это из Windows SDK, генерит strong names). Затем на клиентской машине запускал caspol.exe -af <моя прога>
Для тех кто не знает про caspol — http://msdn.microsoft.com/en-us/library/cb6t8dtz(VS.80).aspx
Только после этого не было исключений безопасности.
Re[9]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 01.11.08 21:39
Оценка:
Здравствуйте, diatlov, Вы писали:

D>При попытке на пользовательской машине моего приложения узнать имя машины и список её IP-адресов вываливался exception, где писалось что-то типа у вашего приложения недостаточно прав и т.д. и т.п. Обратитесь к системному администратору или зайдите в консоль управления фреймворком и дайте ему прав скоко нада.


Бегом изучать, что такое CAS

D>Решал методом подписи приложения ч/з sn.exe (это из Windows SDK, генерит strong names). Затем на клиентской машине запускал caspol.exe -af <моя прога>


А всего то надо было не запускать с сетевого диска или прописать сетевой диск в полиси.
Re[2]: Delphi 2009 vs C# 3.0
От: Eugeny__ Украина  
Дата: 01.11.08 23:50
Оценка:
Здравствуйте, kuj, Вы писали:



kuj>Вроде бы взрослые люди, а ведётесь на столь явный троллинг...


Ой-ё, кто бы говорил . Хотя да, в троллинге ты прошаренный и очень опытный, это неопровержимый факт.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[4]: Delphi 2009 vs C# 3.0
От: FR  
Дата: 02.11.08 08:12
Оценка:
Здравствуйте, Константин Л., Вы писали:


КЛ>Гм. Жесть. 2 ключевых слова ради непойми чего.


КЛ>

КЛ>"case type of"

КЛ>Write a switch/case statement that executes different cases depending on the TYPE of a certain object, i.e.
КЛ>case type MyControl of:
КЛ> Edit: // do something
КЛ> Button: // do something else
КЛ>end;


Осторожно и ощупью к сопоставлению с образцом?
Re[3]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 03.11.08 13:30
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

kuj>>Вроде бы взрослые люди, а ведётесь на столь явный троллинг...


KV>... сказал довольный kuj, зайдя на форум под своим настоящим ником


А кто сказал, что это мой настоящий ник?
Re[10]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 03.11.08 19:33
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Бегом изучать, что такое CAS


Обязательно посмотрю что за штука )

НС>А всего то надо было не запускать с сетевого диска или прописать сетевой диск в полиси.


Ну фишка в том что диск был отнюдь не сетевой, а совсем даже жесткий.. очень )
Но у того чела винда была хз какая.. ну XP т.е., но эксплорер 6 стоял и т.д. Так что мож там сервис пак 1й был или ещё что.
Ну в любом случае я победил это ) хоть может и варварским методом
Re[10]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 04.11.08 18:45
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:
U>>Мне пофиг что там порождает дотнетный джит и что показывают купленные бенчмарки, но почему-то серия одинаковых запросов к Ораклу стабильно выполняется в 1.5 раза медленнее.

НС>Вот уж тут то платформа точно не при чем. ODP к дотнету оракль пишет, так что все вопросы к МС. Драйвера к MSSQL работают не медленее нативных, даже если компилировать при помощи ICC (что не удивительно, vbs/js скорее всего тоже слабо отличимый результат продемонстрируют).


Вы не поняли... запросы выполняются из под приложения написанного на Delphi через dbExpress к одной и той-же БД. Кодовая база одна и та-же. Только в одном случае оно скомпилировано в Win32 в другом случае в .NET.

U>> Почему-то скорость распределения и освобождения одинакового количества объектов (порядок — сотни тысяч, миллионы) в .NET менеджере памяти ни разу не было быстрее дельфийского


НС>А это ты, уважаемый, просто вводишь нас в заблуждение. Скорость выделения дотнета не достижима ни для каких суперменеджеров кучи (не говоря уж о менеджере дельфи), потому что это прост инкремент одного указателя и пара проверок, а освобождение памяти в дотнете просто отсутствует.


См. результаты теста. Про освобождение памяти... не смешите плиз...

U>>, а если чонть в деструкторе написать то вообще туши свет.


НС>В дотнете нет деструкторов.


От того что их переименовали, они не перестали быть деструкторами.
Re[11]: Delphi 2009 vs C# 3.0
От: Antikrot  
Дата: 04.11.08 20:03
Оценка:
Здравствуйте, Utruk, Вы писали:

сам поймешь, за что смайлики?
Re[11]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 04.11.08 22:52
Оценка:
Здравствуйте, Utruk, Вы писали:
U>От того что их переименовали, они не перестали быть деструкторами.

ИМХО, отличия деструктора в понимании, скажем, C++ от финализатора в среде с jit довольно существенны.
Re[11]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 04.11.08 23:24
Оценка:
Здравствуйте, Utruk, Вы писали:

U>>>Мне пофиг что там порождает дотнетный джит и что показывают купленные бенчмарки, но почему-то серия одинаковых запросов к Ораклу стабильно выполняется в 1.5 раза медленнее. Почему-то скорость распределения и освобождения одинакового количества объектов (порядок — сотни тысяч, миллионы) в .NET менеджере памяти ни разу не было быстрее дельфийского, а если чонть в деструкторе написать то вообще туши свет.


G>>Код в студию.


U>
U>            TimeSpan Duration = Stop - Start;
U>            int Speed = Objects.Count % (int) Duration.TotalMilliseconds; 
U>            Console.WriteLine("C# Speed {0}", Speed);
U>        }
U>    }
U>}
U>


А зачем здесь % — операция остатка от деления?
И нафига еще что-то делить — приведи просто милисекунды.
Re[11]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 04.11.08 23:26
Оценка:
Здравствуйте, Utruk, Вы писали:

U>Вы не поняли... запросы выполняются из под приложения написанного на Delphi через dbExpress к одной и той-же БД. Кодовая база одна и та-же. Только в одном случае оно скомпилировано в Win32 в другом случае в .NET.


Это ты не понял. Любые теоретически возможные тормоза по сравнению с запросом к БД — мгновение. Так что это в твоем dbExpress какие то серьезные проблемы.

U>См. результаты теста.


Тест некорректен.

U> Про освобождение памяти... не смешите плиз...


Да уж, после тебя это мне вряд ли удастся.

НС>>В дотнете нет деструкторов.


U>От того что их переименовали, они не перестали быть деструкторами.


Их не переименовывали, их просто нет.
Re[12]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 04.11.08 23:28
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>А зачем здесь % — операция остатка от деления?


Это в очередной раз продемонстрировало уровень знаний о дотнете.
Re[12]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 04.11.08 23:34
Оценка:
Здравствуйте, Mr.Cat, Вы писали:
MC>в среде с jit

Рррр. Имел в виду "в среде со сборкой мусора", конечно. Хочу редактирование сообщений.
Re[11]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 04.11.08 23:47
Оценка:
Здравствуйте, Utruk, Вы писали:

НС>>А это ты, уважаемый, просто вводишь нас в заблуждение. Скорость выделения дотнета не достижима ни для каких суперменеджеров кучи (не говоря уж о менеджере дельфи), потому что это прост инкремент одного указателя и пара проверок, а освобождение памяти в дотнете просто отсутствует.


U>См. результаты теста. Про освобождение памяти... не смешите плиз...


Это там, где ты остатком от деления насмешил?

U>>>, а если чонть в деструкторе написать то вообще туши свет.


НС>>В дотнете нет деструкторов.


U>От того что их переименовали, они не перестали быть деструкторами.


От оно как!
Почитай сначала стандарт языка C#, а потом уже высказывай безапеляционные утверждения.
Re[13]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 07:42
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, _d_m_, Вы писали:


___>>А зачем здесь % — операция остатка от деления?


НС>Это в очередной раз продемонстрировало уровень знаний о дотнете.


Опечатался, а он уже усирается от радости... ну поправь на деление и запусти у себя.

C:\...udio 2008\Projects\MemoryTest\MemoryTest\bin\Release>MemoryTest.exe
C# Speed 1886

C:\...udio 2008\Projects\MemoryTest\MemoryTest\bin\Release>MemoryTest.exe
C# Speed 1945

C:\...udio 2008\Projects\MemoryTest\MemoryTest\bin\Release>MemoryTest.exe
C# Speed 1831
Re[12]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 07:58
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Их не переименовывали, их просто нет.


А это что тогда?

Destructors (C# Programming Guide)

Destructors are used to destruct instances of classes.

Remarks
Destructors cannot be defined in structs. They are only used with classes.
A class can only have one destructor.
Destructors cannot be inherited or overloaded.
Destructors cannot be called. They are invoked automatically.
A destructor does not take modifiers or have parameters.
Re[13]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 05.11.08 08:12
Оценка:
Здравствуйте, Utruk, Вы писали:

U>Destructors (C# Programming Guide)


Ошибка в старом стандарте. Смотри более новый, там ошибку поправили.
Re[13]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 05.11.08 08:12
Оценка:
Здравствуйте, Utruk, Вы писали:

U>Если это один и тот-же запрос к одной и той-же БД, то надо полагать что тормоза вносимые БД будут одинаковы в случае нативного приложения и .NET не так ли?


Не так.

U> В dbExpress код один и тот-же что и для .NET и для Win32


Я в этом не уверен.

U>, соответственно разница может быть в оверхеде который накладывает .NET исходящим из особенностей его функционирования.


Вывод неверный.
Re[14]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 10:02
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Utruk, Вы писали:


U>>Если это один и тот-же запрос к одной и той-же БД, то надо полагать что тормоза вносимые БД будут одинаковы в случае нативного приложения и .NET не так ли?


НС>Не так.


Т.е. скорость выполнения запроса сервером зависит от того на каком языке написан клиент?

U>> В dbExpress код один и тот-же что и для .NET и для Win32


НС>Я в этом не уверен.


Посмотрите сами.

U>>, соответственно разница может быть в оверхеде который накладывает .NET исходящим из особенностей его функционирования.


НС>Вывод неверный.


Аргументируйте.
Re[14]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 05.11.08 10:18
Оценка:
Здравствуйте, Utruk, Вы писали:
U>Опечатался, а он уже усирается от радости... ну поправь на деление и запусти у себя.

Обязательно запущу. Есть в природе голый компилер дельфи?
Re[7]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 05.11.08 10:28
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Константин Л., Вы писали:


КЛ>>если приложение ставится click-once'ом, то пора бы девелоперам почитать про trust zones, permissions и проч для приложений, устанавливаемых этим самым click-once


Совершенно согласен, там скорее всего так и есть. После импорта ключа в хранилище (с помощью caspol.exe) прога заработала. Поищу где почитать про то что вы порекомендовали, чтобы через попу не делать )

НС>Думаю, там все намного проще — запускают с сетевого диска. Вот и получается — у кого то работает, кто с локальног диска пускает, у кого то нет. А разбираться неохота — проще на кривую платформу свалить.


НЕТ! Я конечно не самый лучший программист.. но программа была запущена С ЖЕСТКОГО ДИСКА, НЕ С СЕТЕВОГО. Я на кривость не валил, я сказал лишь что trustы иногда мешают. Ну т.е. они конечно не мешают, а даже наоборот, НО когда ты все время писал нативный код и привык что экзешник работает с полпинка, то после этого морочится тем о чем написал Константин.. короче надо привыкать к этому.
Re[14]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 10:45
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Utruk, Вы писали:


U>>Destructors (C# Programming Guide)


НС>Ошибка в старом стандарте. Смотри более новый, там ошибку поправили.


Я смотрю тот хелп который пришел с MSVS C# 2008. В новом стандарте они как-то коренным образом изменились или их просто перестали называть деструкторами?
Re[11]: Delphi 2009 vs C# 3.0
От: Eugeny__ Украина  
Дата: 05.11.08 11:10
Оценка:
Здравствуйте, Utruk, Вы писали:

U>
U>            int Speed = Objects.Count % (int) Duration.TotalMilliseconds; 
U>



Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[12]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 11:11
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Спасибо, поржал.


Ваш вариант в студию.
Re[14]: Delphi 2009 vs C# 3.0
От: Eugeny__ Украина  
Дата: 05.11.08 11:21
Оценка:
Здравствуйте, Utruk, Вы писали:

___>>>А зачем здесь % — операция остатка от деления?


НС>>Это в очередной раз продемонстрировало уровень знаний о дотнете.


U>Опечатался, а он уже усирается от радости... ну поправь на деление и запусти у себя.


Такая "опечаточка" в реальном коде может стать причиной многих забавных багов .
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[8]: Delphi 2009 vs C# 3.0
От: Antikrot  
Дата: 05.11.08 11:52
Оценка:
Здравствуйте, diatlov, Вы писали:

D>НЕТ! Я конечно не самый лучший программист.. но программа была запущена С ЖЕСТКОГО ДИСКА, НЕ С СЕТЕВОГО.

а положена она туда случайно не с помощью IE? а то он гад пишет в доп.потоки ntfs что прожка скачана
Re[15]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 05.11.08 12:15
Оценка:
Здравствуйте, Utruk, Вы писали:
U>Я смотрю тот хелп который пришел с MSVS C# 2008. В новом стандарте они как-то коренным образом изменились или их просто перестали называть деструкторами?

Еще раз. Финализатор в среде с GC и деструктор в среде без GC — это сильно различающиеся вещи, как их ни назови.
Re[15]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 12:18
Оценка:
Здравствуйте, Eugeny__, Вы писали:

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


___>>>>А зачем здесь % — операция остатка от деления?


НС>>>Это в очередной раз продемонстрировало уровень знаний о дотнете.


U>>Опечатался, а он уже усирается от радости... ну поправь на деление и запусти у себя.


E__>Такая "опечаточка" в реальном коде может стать причиной многих забавных багов .


Многие "опечаточки" могут приводить в реальном коде к забавным багам. Например поставить ; после then в паскале. Я уже не говорю о случаях когда в одной области видимости оказываются два идентификатора отличающиеся на одну букву. У вас не было случаев когда думаете об одном а пишете совсем другое? Хотелось бы все таки конструктивного подхода.
Re[11]: Delphi 2009 vs C# 3.0
От: icWasya  
Дата: 05.11.08 12:51
Оценка:
Здравствуйте, Utruk, Вы писали:


U>Speed:=Objects.Count div MillisecondsBetween(Stop, Start);


этот код показывает, сколько объектов создаётся за милисекунду

U>D:\Temp\SpeedTest>MemoryTest.exe

U>C# Speed 505

U>D:\Temp\SpeedTest>MemSpeedTest.exe

U>Delphi speed 3703
Re[17]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 05.11.08 16:45
Оценка:
Здравствуйте, Utruk, Вы писали:
U>Хорошо. Вы можете привести пример в котором код написанный в финализаторе или Dispose выполнялся бы быстрее нативного при условии что выполняются одни и те-же действия?
При чем тут быстрее/медленнее? Я и мои коллеги просто указываем Вам на то, что финализатор и деструктор — не одно и то же, с чем Вы вроде как не согласны.

U>Естественно вместе с GC.Collect, потому как объектов много и память физическая нужна сейчас, а не когда-нибудь.

Очень рекомендую Вам почитать про работу GC, в частности, в .NET, чтобы таких вопросов не возникало. GC.Collect вызывать руками вовсе не нужно — если памяти под новый объект не хватает — сборка будет произведена. А если хватает — то лишние сборки ни к чему.
Re[18]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 17:27
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

U>>Хорошо. Вы можете привести пример в котором код написанный в финализаторе или Dispose выполнялся бы быстрее нативного при условии что выполняются одни и те-же действия?

MC>При чем тут быстрее/медленнее?
Речь шла изначально о скорости, но вам похоже важнее выяснить как оно называется.
MC> Я и мои коллеги просто указываем Вам на то, что финализатор и деструктор — не одно и то же, с чем Вы вроде как не согласны.
Есть некий механизм финализации объекта который состоит из двух фаз:
1) когда объект больше не нужен производятся некие действия.
2) память зарезервированная под объект освобождается.
Где-то он называется деструктор, где-то развесистая комбинация финализатора + dispose + GC. Пусть слова "деструктор" там нет, но по сути выполняют эти механизмы одну и ту-же функцию. Меня не волнует какими словами этот механизм обозван, хоть транклюкатор. Тем более в Delphi.NET он так и называется — деструктор, хотя разворачивается именно в вышеописанный набор вещей.

Не уж-то вы услышав слово "деструктор" не поняли о чем речь? По моему прекрасно поняли.

U>>Естественно вместе с GC.Collect, потому как объектов много и память физическая нужна сейчас, а не когда-нибудь.

MC>Очень рекомендую Вам почитать про работу GC, в частности, в .NET, чтобы таких вопросов не возникало. GC.Collect вызывать руками вовсе не нужно — если памяти под новый объект не хватает — сборка будет произведена. А если хватает — то лишние сборки ни к чему.
Ну измените количество объектов в большую сторону, сделайте удаления части объектов, потом снова распределение и т.п. Так и быть, GC.Collect не нужно будет писать. Оно будет вызываться само собой и всё равно сожрет CPU, хотя есть шанс что сожрет ресурсы другого ядра. У моего CPU их четыре, но на машине пользователя может быть и одно.

Поясню ближе к практике. У меня есть некий процесс, результатом выполнения которого является сложная динамическая структура. Структура состоит из неопределенного количества объектов — порядок деятки, сотни тысяч, миллионы объектов. Эта структура может создаваться как результат некоего процесса, сохраняться в БД (в БД этих структур естественно может быть не одна), загружаться оттуда, части её могут модифицироваться или удаляться, причем удаляться именно в памяти чтобы сгенерироваться снова из базы или из процесса. Меня волнует вопрос, насколько быстро это всё будет происходить. Делаем простой тест — распределяем миллион (два, десять) объектов и видим что не смотря на заявления про супер быстрый манагер памяти, про то что кто-то там генерит код более быстрый чем нативный Delphi, реально объекты были созданы существенно медленнее. С удалением объектов картина очень похожая.
Re[19]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 17:47
Оценка:
Здравствуйте, Utruk, Вы писали:

U>Где-то он называется деструктор, где-то развесистая комбинация финализатора + dispose + GC. Пусть слова "деструктор" там нет, но по сути выполняют эти механизмы одну и ту-же функцию.

Тебе же сказали RTFM. Автоматическая сборка мусора предполагает недетерменированный момент удаления объектов из кучи.

Dispose это вообще из другой оперы. Всего-лишь механизм для принудительного освобождения системных ресурсов (файлы, соединения к БД и т.п.) и хотя Dispose вызывается в финализаторе, но обычно предполагает принудительный вызов. Например, автоматически при выходе из блока using() { } или вручную в блоке try ... finally { }.

U>Поясню ближе к практике.

Описанная тобой ситуация не имеет никакого отношения к практике.
Re[20]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 18:01
Оценка:
Здравствуйте, kuj, Вы писали:

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


U>>Где-то он называется деструктор, где-то развесистая комбинация финализатора + dispose + GC. Пусть слова "деструктор" там нет, но по сути выполняют эти механизмы одну и ту-же функцию.

kuj>Тебе же сказали RTFM. Автоматическая сборка мусора предполагает недетерменированный момент удаления объектов из кучи.

И???? Память-то мой процесс получит быстрее или как? Ему как бы работать надо, а не ждать пока этот самый недетерминированный момент случится.

kuj>Dispose это вообще из другой оперы. Всего-лишь механизм для принудительного освобождения системных ресурсов (файлы, соединения к БД и т.п.) и хотя Dispose вызывается в финализаторе, но обычно предполагает принудительный вызов. Например, автоматически при выходе из блока using() { } или вручную в блоке try ... finally { }.

U>>Поясню ближе к практике.
kuj>Описанная тобой ситуация не имеет никакого отношения к практике.
Шеф, вы?
Re[8]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 05.11.08 18:01
Оценка:
Здравствуйте, diatlov, Вы писали:

D>НЕТ! Я конечно не самый лучший программист.. но программа была запущена С ЖЕСТКОГО ДИСКА, НЕ С СЕТЕВОГО.


Значит в полиси была фигня накручена, что даже для сборок на локальном диске full trust не выдавался. С caspol кто то, небось, поигрался.

D> Я на кривость не валил, я сказал лишь что trustы иногда мешают. Ну т.е. они конечно не мешают, а даже наоборот, НО когда ты все время писал нативный код и привык что экзешник работает с полпинка, то после этого морочится тем о чем написал Константин.. короче надо привыкать к этому.


Ни с чем морочится не надо, если не лезть туда, куда не понимаешь.
Re[15]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 05.11.08 18:01
Оценка:
Здравствуйте, Utruk, Вы писали:

НС>>Я в этом не уверен.


U>Посмотрите сами.


Нет ни возможности ни желания.

U>>>, соответственно разница может быть в оверхеде который накладывает .NET исходящим из особенностей его функционирования.


НС>>Вывод неверный.


U>Аргументируйте.


Уже, просто ты упорно игнорируешь. Чтобы добится замедления обращения к БД даже в скриптах, надо конкретно накосячить. А что именно и где накосячили, мне мало интересно. Бери ODP или хотя бы нативный провайдер и меряй. Я для MSSQL мерял, разница, разумеется, ничтожна.
Re[21]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 18:06
Оценка:
Здравствуйте, Utruk, Вы писали:

U>>>Где-то он называется деструктор, где-то развесистая комбинация финализатора + dispose + GC. Пусть слова "деструктор" там нет, но по сути выполняют эти механизмы одну и ту-же функцию.

kuj>>Тебе же сказали RTFM. Автоматическая сборка мусора предполагает недетерменированный момент удаления объектов из кучи.

U>И???? Память-то мой процесс получит быстрее или как? Ему как бы работать надо, а не ждать пока этот самый недетерминированный момент случится.


Твоему процессу памяти не хватает? Может пора равнять руки?
Re[20]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 18:12
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

U>>Речь шла изначально о скорости, но вам похоже важнее выяснить как оно называется.

MC>Да. Я вообще последнее время не увлекаюсь бесполезными бенчмарками. В 99% случаев узким местом будет БД, сеть, какие-нибудь внешние библиотеки (например, для математических расчетов) или пользователь. Так что разницы в производительности особо никто не заметит.
U>>Есть некий механизм финализации ... по сути выполняют эти механизмы одну и ту-же функцию.
MC>Цель-то конечно одна — ресурсы корректно освободить. А вот техническая реализация совершенно разная.
U>>миллионы объектов ... сохраняться в БД
MC>Вот работа с БД и будет занимать большую часть времени. Так что займитесь лучше оптимизацией запросов, а приложение можете хоть на питоне написать.

Тезис был "Delphi лучше C# потому что быстрее"... начиналось всё с "увеличения указателя и пары проверок", теперь уже "пооптимизируйте в других местах". В "других местах" оно даст эффект и с нативным приложением, тут заслуги сишарпа с дотнетом никакой.
Re[21]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 05.11.08 18:27
Оценка:
Здравствуйте, Utruk, Вы писали:

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


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


U>>>Где-то он называется деструктор, где-то развесистая комбинация финализатора + dispose + GC. Пусть слова "деструктор" там нет, но по сути выполняют эти механизмы одну и ту-же функцию.

kuj>>Тебе же сказали RTFM. Автоматическая сборка мусора предполагает недетерменированный момент удаления объектов из кучи.

U>И???? Память-то мой процесс получит быстрее или как?

Вашему процессу не хватает памяти, вы хотите об этом поговорить?

U>Ему как бы работать надо, а не ждать пока этот самый недетерминированный момент случится.

Нет, если память понадобится, то GC для вас найдет кусочек.
Re[22]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 18:46
Оценка:
Здравствуйте, kuj, Вы писали:

U>>И???? Память-то мой процесс получит быстрее или как? Ему как бы работать надо, а не ждать пока этот самый недетерминированный момент случится.


kuj>Твоему процессу памяти не хватает? Может пора равнять руки?


Память ресурс не бесконечный. Бывает его занимают другие процессы. Бывает его просто мало. Бывает его требуется много. Бывают задачи в которых скорость критична.

Например одна из задач которых у меня есть должна обрабатывать картинки. Картинки формата от A5 до A3 с разрешением в 300..600 dpi и цветностью от B/W до True Color прилетают со частотой 2..3 страницы в секунду. За это время надо успеть её обработать (проверить не белая-ли, не загнутые ли углы, нет ли там баркода, не грязная ли ну и т.п.) и положить на хранение. Пока удается укладываться. Медленнее нельзя, при тех объемах которые есть даже 10% процентные тормоза становятся заметными, это уже деньги... Вот я и думаю, если у меня программа будет на C# а не на Delphi, я смогу сохранить скорость?

Здесь люди утверждают что сишарповский компилятор генерит код который выполняется быстрее чем дельфийский нативный. Простой пример с распределением миллиона объектов заставляет меня усомниться в этом. Страшно подумать что будет когда пример станет сложным и распределение каждого объекта будет сопровождаться распределением 30-ти метров памяти плюс обвешан всякими обработками переписанными на С#. Я конечно понимаю что можно заапгрейдить железо, но скажем какая-нибудь индонезийская или японская почта просто не поймет меня и вежливо покивав головой, "о да, ваша карасо, мы вам позвонить", пойдет искать а нет ли кого-то кто не требует апгрейда железа.
Re[16]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 18:53
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Уже, просто ты упорно игнорируешь. Чтобы добится замедления обращения к БД даже в скриптах, надо конкретно накосячить. А что именно и где накосячили, мне мало интересно. Бери ODP или хотя бы нативный провайдер и меряй. Я для MSSQL мерял, разница, разумеется, ничтожна.


Я мерял для Oracle. Разница не ничтожна. Ну и надеюсь под "обращением к БД" подразумевается не только выполнение SQL запроса, но и скажем чтение данных из рекордсета, а так-же распихивание их по внутренним структурам программы.

Тесты то запускали, али на стебе над % все остановилось?
Re[22]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 19:03
Оценка:
Здравствуйте, gandjustas, Вы писали:

U>>И???? Память-то мой процесс получит быстрее или как?

G>Вашему процессу не хватает памяти, вы хотите об этом поговорить?

Нет. Я хочу поговорить о том с какой скоростью мой процесс будет получать очередную серию кусков памяти. С этого всё начиналось. Меня вполне удовлетворит если это случиться быстрее чем на Delphi.
Re[17]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 05.11.08 19:08
Оценка:
Здравствуйте, Utruk, Вы писали:

U>Я мерял для Oracle. Разница не ничтожна.


Вот я и говорю — ищи косяки в Дельфи.

U> Ну и надеюсь под "обращением к БД" подразумевается не только выполнение SQL запроса, но и скажем чтение данных из рекордсета, а так-же распихивание их по внутренним структурам программы.


Если это распихивание дольше самого запроса, то нет, не подразумевается.

U>Тесты то запускали, али на стебе над % все остановилось?


У меня нет на машине компилятора Дельфи.
Re[22]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 19:24
Оценка:
Здравствуйте, kuj, Вы писали:

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


U>>Тезис был "Delphi лучше C# потому что быстрее"... начиналось всё с "увеличения указателя и пары проверок", теперь уже "пооптимизируйте в других местах". В "других местах" оно даст эффект и с нативным приложением, тут заслуги сишарпа с дотнетом никакой.


kuj>Производительность имеет значение только тогда, когда ее не хватает. Вот наш проектик обслуживает примерно 7000-8000 подключений за сутки. Жалоб на производительность нету.


Я не знаю что там к чему подключается... но последнее серверное приложение которое мне доводилось писать лет пять назад обслуживало соединений на порядок больше и работало на каком-то там гигагерцовом xeon-е. Я далек от мысли что это является каким-то достижением.

kuj>Глобальное преимущество .NET и Java — удобство и скорость разработки. Покажи мне нормальные аналоги для Castle Windsor, MEF, ASP.NET MVC, nHibernate, Rhino Mocks, nServiceBus и т.д. и т.п и покажи мне средства для организации полноценного continuous integration процесса...


Я честно говоря ни одной из этих штук не пользовался... нет нужды. И надеюсь не появится в ближайшем будущем.

kuj>Delphi как была никчемной игрушкой для бедных ВУЗов и энтузиастов этого уродства под названием "delphi language", так ею и осталась.


Вот опустили... а я то тут в мелкой конторке маюсь с оборотом в USD $7M/год и клиентурой от Германии до Японии. И всё на Delphi.
Re[23]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 19:31
Оценка:
Здравствуйте, Utruk, Вы писали:

U>Память ресурс не бесконечный. Бывает его занимают другие процессы. Бывает его просто мало. Бывает его требуется много. Бывают задачи в которых скорость критична.


U>Например одна из задач которых у меня есть должна обрабатывать картинки. Картинки формата от A5 до A3 с разрешением в 300..600 dpi и цветностью от B/W до True Color прилетают со частотой 2..3 страницы в секунду. За это время надо успеть её обработать (проверить не белая-ли, не загнутые ли углы, нет ли там баркода, не грязная ли ну и т.п.) и положить на хранение. Пока удается укладываться. Медленнее нельзя, при тех объемах которые есть даже 10% процентные тормоза становятся заметными, это уже деньги... Вот я и думаю, если у меня программа будет на C# а не на Delphi, я смогу сохранить скорость?


Ясное дело. Процессорное время на управление ресурсами в данном случае ничтожно мало в сравнении со временем на обработку собственно самих картинок.
Re[18]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 19:32
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

U>>Тесты то запускали, али на стебе над % все остановилось?

НС>У меня нет на машине компилятора Дельфи.

Придется значит вам поверить мне на слово что Delphi быстрее чем C#. Сами вы проверить не можете. Впрочем можете дальше продолжать петь алилуя сишарпу, вреда от этого никому не будет. У меня впрочем тоже создавалось скорострельности сего продукта в процессе прочтения того-же Рихтера. Но только в процессе прочтения, бумага она всё стерпит.
Re[23]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 05.11.08 19:33
Оценка:
Здравствуйте, Utruk, Вы писали:

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


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


U>>>Тезис был "Delphi лучше C# потому что быстрее"... начиналось всё с "увеличения указателя и пары проверок", теперь уже "пооптимизируйте в других местах". В "других местах" оно даст эффект и с нативным приложением, тут заслуги сишарпа с дотнетом никакой.


kuj>>Производительность имеет значение только тогда, когда ее не хватает. Вот наш проектик обслуживает примерно 7000-8000 подключений за сутки. Жалоб на производительность нету.


U>Я не знаю что там к чему подключается... но последнее серверное приложение которое мне доводилось писать лет пять назад обслуживало соединений на порядок больше и работало на каком-то там гигагерцовом xeon-е. Я далек от мысли что это является каким-то достижением.

Что-то не верится.

kuj>>Глобальное преимущество .NET и Java — удобство и скорость разработки. Покажи мне нормальные аналоги для Castle Windsor, MEF, ASP.NET MVC, nHibernate, Rhino Mocks, nServiceBus и т.д. и т.п и покажи мне средства для организации полноценного continuous integration процесса...


U>Я честно говоря ни одной из этих штук не пользовался... нет нужды. И надеюсь не появится в ближайшем будущем.

Не стоит культивировать свое невежество.

kuj>>Delphi как была никчемной игрушкой для бедных ВУЗов и энтузиастов этого уродства под названием "delphi language", так ею и осталась.

U>Вот опустили... а я то тут в мелкой конторке маюсь с оборотом в USD $7M/год и клиентурой от Германии до Японии.
Это премущество делфи?
Re[23]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 19:34
Оценка:
Здравствуйте, Utruk, Вы писали:

U> Медленнее нельзя, при тех объемах которые есть даже 10% процентные тормоза становятся заметными, это уже деньги...


Деньги это время программиста, которое он будет тратить, пытаясь выловить очередную утечку памяти.

U>Здесь люди утверждают что сишарповский компилятор генерит код который выполняется быстрее чем дельфийский нативный. Простой пример с распределением миллиона объектов заставляет меня усомниться в этом.


Еще раз для тех, кто в танке: подобные синтетические тесты не имеют ровным счетом ничего общего с реальными задачами.

U>Страшно подумать что будет когда пример станет сложным и распределение каждого объекта будет сопровождаться распределением 30-ти метров памяти плюс


Может пора подумать над моим советом про руки?
Re[23]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 19:39
Оценка:
Здравствуйте, Utruk, Вы писали:


U>>>Тезис был "Delphi лучше C# потому что быстрее"... начиналось всё с "увеличения указателя и пары проверок", теперь уже "пооптимизируйте в других местах". В "других местах" оно даст эффект и с нативным приложением, тут заслуги сишарпа с дотнетом никакой.


kuj>>Производительность имеет значение только тогда, когда ее не хватает. Вот наш проектик обслуживает примерно 7000-8000 подключений за сутки. Жалоб на производительность нету.


U>Я не знаю что там к чему подключается... но последнее серверное приложение которое мне доводилось писать лет пять назад обслуживало соединений на порядок больше и работало на каком-то там гигагерцовом xeon-е. Я далек от мысли что это является каким-то достижением.


80 тыс соединений? 1 ггц xeon? и написано на Delphi? "Не верю!"

kuj>>Глобальное преимущество .NET и Java — удобство и скорость разработки. Покажи мне нормальные аналоги для Castle Windsor, MEF, ASP.NET MVC, nHibernate, Rhino Mocks, nServiceBus и т.д. и т.п и покажи мне средства для организации полноценного continuous integration процесса...


U>Я честно говоря ни одной из этих штук не пользовался... нет нужды. И надеюсь не появится в ближайшем будущем.


Все ясно. Ты хоть ВУЗ уже закончил?

kuj>>Delphi как была никчемной игрушкой для бедных ВУЗов и энтузиастов этого уродства под названием "delphi language", так ею и осталась.


U>Вот опустили... а я то тут в мелкой конторке маюсь с оборотом в USD $7M/год и клиентурой от Германии до Японии. И всё на Delphi.


Re[19]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 05.11.08 19:40
Оценка:
Здравствуйте, Utruk, Вы писали:

U>Придется значит вам поверить мне на слово что Delphi быстрее чем C#.


Простой вопрос — что находится в массивах после вызова SetLength
Re[24]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 19:48
Оценка:
Здравствуйте, kuj, Вы писали:

U>>Например одна из задач которых у меня есть должна обрабатывать картинки. Картинки формата от A5 до A3 с разрешением в 300..600 dpi и цветностью от B/W до True Color прилетают со частотой 2..3 страницы в секунду. За это время надо успеть её обработать (проверить не белая-ли, не загнутые ли углы, нет ли там баркода, не грязная ли ну и т.п.) и положить на хранение. Пока удается укладываться. Медленнее нельзя, при тех объемах которые есть даже 10% процентные тормоза становятся заметными, это уже деньги... Вот я и думаю, если у меня программа будет на C# а не на Delphi, я смогу сохранить скорость?


kuj>Ясное дело. Процессорное время на управление ресурсами в данном случае ничтожно мало в сравнении со временем на обработку собственно самих картинок.


Правильно ли я понял, что управление ресурсами это все таки слабое место C#, но мы типа отбрасываем его потому что якобы оно будет случаться редко?

Т.е вы хотите сказать что если я скажем перепишу анализ документа на C#, то при одинаковом алгоритме он будет быстрее чем на Delphi? Начать с простого, например какой-нибудь фильтр sharpen или despeckle. А что если мне во время анализа опять-же придется распределять кучу всякой памяти, ну и естественно её придется когда-нибудь освобождать? Через пару секунд думаю оно случится само собой.
Re[25]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 19:57
Оценка:
Здравствуйте, Utruk, Вы писали:

U>>>Например одна из задач которых у меня есть должна обрабатывать картинки. Картинки формата от A5 до A3 с разрешением в 300..600 dpi и цветностью от B/W до True Color прилетают со частотой 2..3 страницы в секунду. За это время надо успеть её обработать (проверить не белая-ли, не загнутые ли углы, нет ли там баркода, не грязная ли ну и т.п.) и положить на хранение. Пока удается укладываться. Медленнее нельзя, при тех объемах которые есть даже 10% процентные тормоза становятся заметными, это уже деньги... Вот я и думаю, если у меня программа будет на C# а не на Delphi, я смогу сохранить скорость?


kuj>>Ясное дело. Процессорное время на управление ресурсами в данном случае ничтожно мало в сравнении со временем на обработку собственно самих картинок.


U>Правильно ли я понял, что управление ресурсами это все таки слабое место C#, но мы типа отбрасываем его потому что якобы оно будет случаться редко?


Не слабое, а сильное место, т.к. почти исключает возможность возникновения утечек памяти (кроме случаев, когда "забыли" отписаться от события объекта в объекте с более длинным lifetime, и редких проблем с фрагментацией кучи в связи с pin`ом объектов, ссылающихся на unmanaged участки памяти).

Я же говорил о том, что временные затраты процессорного времени на управление ресурсами ничтожно малы на фоне других задач. Таких, как обработка картинок в твоем примере или работа с БД/с файловой системой/и т.п.

U>Т.е вы хотите сказать что если я скажем перепишу анализ документа на C#, то при одинаковом алгоритме он будет быстрее чем на Delphi?


Теоретически может работать быстрее, учитывая, что IL компилируется непосредственно на целевой платформе, что дает бОльший простор для оптимизации.

U>Начать с простого, например какой-нибудь фильтр sharpen или despeckle. А что если мне во время анализа опять-же придется распределять кучу всякой памяти, ну и естественно её придется когда-нибудь освобождать? Через пару секунд думаю оно случится само собой.

Естественно случится, но если производительность приложения у тебя упирается в производительность сборки мусора, то пора думать о смене профессии — ибо профнепригоден.
Re[21]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 05.11.08 20:03
Оценка:
Здравствуйте, Utruk, Вы писали:
U>Тезис был "Delphi лучше C# потому что быстрее"...
Это Ваш тезис. Мой тезис — "Дельфи может быть и быстрее, но всем пох... т.е. пофиг". На синтетических тестах на каком-нибудь http://shootout.alioth.debian.org/ даже free pascal показывает очень неплохие результаты. Только вот скорость выполнения кода далеко не главная характеристика языка. Есть еще порог вхождения/кривая обучения, удобство использования, наличие и качество библиотек (в т.ч. возможность использования кода на других языках) и инструментов. Думаете почему нынче довольно большое количество приложений под *nix пишется на питоне? Потому что есть готовые качественные низкоуровневые сишные библиотеки (разработанные за годы развития *nix) и простой способ делать для них обертки на питоне и потом использовать из питонского кода. При этом производительность особенно не просажавается, а программист получает возможность использовать действительно удобный и лаконичный язык.

U>В "других местах" оно даст эффект и с нативным приложением, тут заслуги сишарпа с дотнетом никакой.

Так с этим никто и не спорит.
Re[24]: Delphi 2009 vs C# 3.0
От: ambel-vlad Беларусь  
Дата: 05.11.08 20:13
Оценка:
Hi kuj

kuj>>>Производительность имеет значение только тогда, когда ее не хватает. Вот наш проектик обслуживает примерно 7000-8000 подключений за сутки. Жалоб на производительность нету.


U>>Я не знаю что там к чему подключается... но последнее серверное приложение которое мне доводилось писать лет пять назад обслуживало соединений на порядок больше и работало на каком-то там гигагерцовом xeon-е. Я далек от мысли что это является каким-то достижением.


kuj>80 тыс соединений? 1 ггц xeon? и написано на Delphi? "Не верю!"


Я забыл Делфи как страшный сон. Но что в такой цифре странного? Вполне нормальная суточная нагрузка. Не бог весть что.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[25]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 20:23
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

kuj>>>>Производительность имеет значение только тогда, когда ее не хватает. Вот наш проектик обслуживает примерно 7000-8000 подключений за сутки. Жалоб на производительность нету.


U>>>Я не знаю что там к чему подключается... но последнее серверное приложение которое мне доводилось писать лет пять назад обслуживало соединений на порядок больше и работало на каком-то там гигагерцовом xeon-е. Я далек от мысли что это является каким-то достижением.


kuj>>80 тыс соединений? 1 ггц xeon? и написано на Delphi? "Не верю!"


AV>Я забыл Делфи как страшный сон. Но что в такой цифре странного? Вполне нормальная суточная нагрузка. Не бог весть что.


С самопальным аппсервером на Делфи? Хочу посмотреть.
Re[24]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 20:28
Оценка:
Здравствуйте, kuj, Вы писали:

U>>Я не знаю что там к чему подключается... но последнее серверное приложение которое мне доводилось писать лет пять назад обслуживало соединений на порядок больше и работало на каком-то там гигагерцовом xeon-е. Я далек от мысли что это является каким-то достижением.


kuj>80 тыс соединений? 1 ггц xeon? и написано на Delphi? "Не верю!"


А что такого? На Kylix, тогда это был Kylix. Ну и немножечко C++. А да... там было два xeon-а.

Впрочем Вас не заинтересовало ни количество одновременно активных/простаивающих/всего, ни количество потребных ресурсов на соединение, ни время обслуживания, ни характер выполняемой работы, ни степень конкуренции. Сами вы тоже подобные параметры не указали, крайне маловероятно чтобы у вас было 7000..8000 одновременных подключений к серверу причем активными были бы ВСЕ и сразу. Это я просто к тому что голые цифры в 7000 или 80000 подключений ни о чем не говорят. Тут можно было бы тоже закатывать глаза и делать многозначительные замечания о ВУЗ-е, годах, длине письки и т.п...

kuj>>>Глобальное преимущество .NET и Java — удобство и скорость разработки. Покажи мне нормальные аналоги для Castle Windsor, MEF, ASP.NET MVC, nHibernate, Rhino Mocks, nServiceBus и т.д. и т.п и покажи мне средства для организации полноценного continuous integration процесса...


U>>Я честно говоря ни одной из этих штук не пользовался... нет нужды. И надеюсь не появится в ближайшем будущем.


kuj>Все ясно. Ты хоть ВУЗ уже закончил?


Не знал что опыт работы с Castle Windsor есть критерий окончания ВУЗ-а... пойду спрашивать знакомых, слышали-ли они про этот самый Castle Windsor хотя-бы краем уха. Надеюсь что хотя бы один наберется. Кстати, а если человек занимается программированием микроконтроллеров, то он тоже должен знать всю эту бодягу чтобы быть удостоенным выпуска из ВУЗа?
Re[25]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 20:38
Оценка:
Здравствуйте, Utruk, Вы писали:

U>>>Я не знаю что там к чему подключается... но последнее серверное приложение которое мне доводилось писать лет пять назад обслуживало соединений на порядок больше и работало на каком-то там гигагерцовом xeon-е. Я далек от мысли что это является каким-то достижением.


kuj>>80 тыс соединений? 1 ггц xeon? и написано на Delphi? "Не верю!"


U>А что такого? На Kylix, тогда это был Kylix. Ну и немножечко C++. А да... там было два xeon-а.


U>Впрочем Вас не заинтересовало ни количество одновременно активных/простаивающих/всего, ни количество потребных ресурсов на соединение, ни время обслуживания, ни характер выполняемой работы, ни степень конкуренции. Сами вы тоже подобные параметры не указали, крайне маловероятно чтобы у вас было 7000..8000 одновременных подключений к серверу причем активными были бы ВСЕ и сразу.


Читать значит не умеем?

U>Это я просто к тому что голые цифры в 7000 или 80000 подключений ни о чем не говорят. Тут можно было бы тоже закатывать глаза и делать многозначительные замечания о ВУЗ-е, годах, длине письки и т.п...


Смешно слышать про голые цифры от тебя.

kuj>>>>Глобальное преимущество .NET и Java — удобство и скорость разработки. Покажи мне нормальные аналоги для Castle Windsor, MEF, ASP.NET MVC, nHibernate, Rhino Mocks, nServiceBus и т.д. и т.п и покажи мне средства для организации полноценного continuous integration процесса...


U>>>Я честно говоря ни одной из этих штук не пользовался... нет нужды. И надеюсь не появится в ближайшем будущем.


kuj>>Все ясно. Ты хоть ВУЗ уже закончил?


U>Не знал что опыт работы с Castle Windsor есть критерий окончания ВУЗ-а... пойду спрашивать знакомых, слышали-ли они про этот самый Castle Windsor хотя-бы краем уха. Надеюсь что хотя бы один наберется. Кстати, а если человек занимается программированием микроконтроллеров, то он тоже должен знать всю эту бодягу чтобы быть удостоенным выпуска из ВУЗа?

Естественно нет, но судя по твоим постам ты и базовых вещей не знаешь. Продолжай в том же духе. Очень смешно почитать.
Re[26]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 20:40
Оценка:
Здравствуйте, kuj, Вы писали:

U>>Т.е вы хотите сказать что если я скажем перепишу анализ документа на C#, то при одинаковом алгоритме он будет быстрее чем на Delphi?


kuj>Теоретически может работать быстрее, учитывая, что IL компилируется непосредственно на целевой платформе, что дает бОльший простор для оптимизации.


Э-э-э-э... а практически? То что он теоретически быстрее создает объекты потому что у него "один указатель и одна-две проверки" это мы уже выяснили. Что на практике... я выяснил, у других сразу проблемы возникли. То что он компилируется непосредственно на целевой платформе это тоже в книжке было написано.

U>>Начать с простого, например какой-нибудь фильтр sharpen или despeckle. А что если мне во время анализа опять-же придется распределять кучу всякой памяти, ну и естественно её придется когда-нибудь освобождать? Через пару секунд думаю оно случится само собой.


kuj>Естественно случится, но если производительность приложения у тебя упирается в производительность сборки мусора, то пора думать о смене профессии — ибо профнепригоден.


Злые вы... чуть чо сразу профнепригоден... ещё не начал программировать, а уже записали в дворники.
Re[25]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 05.11.08 20:42
Оценка:
Здравствуйте, Utruk, Вы писали:


U>Впрочем Вас не заинтересовало ни количество одновременно активных/простаивающих/всего, ни количество потребных ресурсов на соединение, ни время обслуживания, ни характер выполняемой работы, ни степень конкуренции. Сами вы тоже подобные параметры не указали, крайне маловероятно чтобы у вас было 7000..8000 одновременных подключений к серверу причем активными были бы ВСЕ и сразу. Это я просто к тому что голые цифры в 7000 или 80000 подключений ни о чем не говорят. Тут можно было бы тоже закатывать глаза и делать многозначительные замечания о ВУЗ-е, годах, длине письки и т.п...

Говорилось про 7000-8000 подключений в сутки. то есть где-то одно подключение за 20 секунд. Такую нагрузку практически любая прога выдержит. В десятки раз большая нагрузка — менее секунды на запрос уже серьезная нагрузка. Если запросы обрабатываются достаточно медленно, то производительнось может упереться в количество тредов и открытых подключений.

U>Не знал что опыт работы с Castle Windsor есть критерий окончания ВУЗ-а... пойду спрашивать знакомых, слышали-ли они про этот самый Castle Windsor хотя-бы краем уха.

Уверен что нет. Можешь про IoC и TDD спросить.
U>Надеюсь что хотя бы один наберется. Кстати, а если человек занимается программированием микроконтроллеров, то он тоже должен знать всю эту бодягу чтобы быть удостоенным выпуска из ВУЗа?
Видел группу из 10 программистов на делфи, которые ничего из указанного не знают. Уже третий год пишут программу, которую можно написать втроем за полгода.
Re[20]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 20:47
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Utruk, Вы писали:


U>>Придется значит вам поверить мне на слово что Delphi быстрее чем C#.


НС>Простой вопрос — что находится в массивах после вызова SetLength


Как всё плохо оказывается-то... данные находятся. Какие-нибудь данные, и способ получения и заполнения массива этими данными нас не касается. Через N наносекунд после создания этого объекта по нему пройдется визитор и что-нибудь с ним сделает. Может быть заполнит этот массив какими-нибудь осмысленными данными.
Re[27]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 20:48
Оценка:
Здравствуйте, Utruk, Вы писали:

U>>>Т.е вы хотите сказать что если я скажем перепишу анализ документа на C#, то при одинаковом алгоритме он будет быстрее чем на Delphi?


kuj>>Теоретически может работать быстрее, учитывая, что IL компилируется непосредственно на целевой платформе, что дает бОльший простор для оптимизации.


U>Э-э-э-э... а практически? То что он теоретически быстрее создает объекты потому что у него "один указатель и одна-две проверки" это мы уже выяснили. Что на практике... я выяснил, у других сразу проблемы возникли. То что он компилируется непосредственно на целевой платформе это тоже в книжке было написано.

Мда. Смешно. Ты до сих пор считаешь, что критерий это время на создание какого-то там объекта? Кино и немцы....

U>>>Начать с простого, например какой-нибудь фильтр sharpen или despeckle. А что если мне во время анализа опять-же придется распределять кучу всякой памяти, ну и естественно её придется когда-нибудь освобождать? Через пару секунд думаю оно случится само собой.


kuj>>Естественно случится, но если производительность приложения у тебя упирается в производительность сборки мусора, то пора думать о смене профессии — ибо профнепригоден.


U>Злые вы... чуть чо сразу профнепригоден... ещё не начал программировать, а уже записали в дворники.

Так о чем споришь? Приходи годков через 5, как опыта да знаний наберешься.
Re[21]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 05.11.08 20:53
Оценка:
Здравствуйте, Utruk, Вы писали:

U>Как всё плохо оказывается-то... данные находятся. Какие-нибудь данные


Да нет, мусор там. Теперь осталось выяснить, что находится в шарповских массивах.
Re[26]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 20:58
Оценка:
Здравствуйте, gandjustas, Вы писали:

U>>Т.е вы хотите сказать что если я скажем перепишу анализ документа на C#, то при одинаковом алгоритме он будет быстрее чем на Delphi?

G>При одинаковом алгоритме конечно нет.
Это спорно. В некоторых случаях даже C++ native оказывается медленнее, чем .NET (легко найти в гугле бенчмарки). Что уж говорить про Delphi...
Re[26]: Delphi 2009 vs C# 3.0
От: ambel-vlad Беларусь  
Дата: 05.11.08 21:06
Оценка:
Hi kuj

kuj>>>80 тыс соединений? 1 ггц xeon? и написано на Delphi? "Не верю!"


AV>>Я забыл Делфи как страшный сон. Но что в такой цифре странного? Вполне нормальная суточная нагрузка. Не бог весть что.


kuj>С самопальным аппсервером на Делфи? Хочу посмотреть.


Давно не видел Делфи. И очень рад этому. А что тебя смущает в этом? Если писать аккуратно, то ничего ужасного в этой цифре нет. Учавствовал в разработке AppServer (сейчас несколько отошел от этого). Так тестовые прогоны на следующей задаче — выборка данных из БД (пару тысяч записей), обсчет их, выгонка результатов обсчета в TeX, преобразование TeX в PDF и отдача последнего пользователю — давали необходимую цифру (около 18700-19000 обработанных запросов за чуть больше чем за 2 часа). Тестовая машина — Intel Core 2 Duo то ли 2.0 то ли 1.8 ГГц. Памяти 3 гига. И это не предел. Просто больше не требовалось. Поэтому на более насыщенных нагрузках никто и не гонял. Пока.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[26]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 21:06
Оценка:
Здравствуйте, gandjustas, Вы писали:

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



G>Говорилось про 7000-8000 подключений в сутки. то есть где-то одно подключение за 20 секунд. Такую нагрузку практически любая прога выдержит. В десятки раз большая нагрузка — менее секунды на запрос уже серьезная нагрузка. Если запросы обрабатываются достаточно медленно, то производительнось может упереться в количество тредов и открытых подключений.

Не понятно-же как оно распределено по суткам. Может все 7000 случаются в пределах получаса, а может размазано равномерно по суткам. Этого автор не написал... Если 7000 равномерно размазано по суткам и это говорится в контексте "посмотрите какой у нас производительный прожект на С#" то блин... ну тогда либо С# просто редкостное, либо автор к написанию сервера отношение имеет крайне посредственное. Потому что на том ксеоне с 80-тью тысячами соединений, сервер приложений написанный на Kylix+Indy+C++ совершенно никого не напрягал по скорости (это было примерно 250 рабочих станций). Сколько максимум одновременно активных соединений за всё время работы сервера я как-то не удосуживался посмотреть, но самое большое которое доводилось видеть было около 120. По потоку на клиента.

U>>Не знал что опыт работы с Castle Windsor есть критерий окончания ВУЗ-а... пойду спрашивать знакомых, слышали-ли они про этот самый Castle Windsor хотя-бы краем уха.

G>Уверен что нет. Можешь про IoC и TDD спросить.
Странно, а ВУЗ закончили... Если про TDD спрошу, а человек не ответит то точно ВУЗ не закончил?
U>>Надеюсь что хотя бы один наберется. Кстати, а если человек занимается программированием микроконтроллеров, то он тоже должен знать всю эту бодягу чтобы быть удостоенным выпуска из ВУЗа?
G>Видел группу из 10 программистов на делфи, которые ничего из указанного не знают. Уже третий год пишут программу, которую можно написать втроем за полгода.
На каких только я языках такого не видел... а когда пили вместе они рассказывали подобную байку про кого-нибудь другого.
Re[28]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 21:18
Оценка:
Здравствуйте, kuj, Вы писали:

U>>Э-э-э-э... а практически? То что он теоретически быстрее создает объекты потому что у него "один указатель и одна-две проверки" это мы уже выяснили. Что на практике... я выяснил, у других сразу проблемы возникли. То что он компилируется непосредственно на целевой платформе это тоже в книжке было написано.


kuj>Мда. Смешно. Ты до сих пор считаешь, что критерий это время на создание какого-то там объекта? Кино и немцы....


Я до сих пор сравнивал C# и Delphi только в разрезе скорости. Про остальные моменты даже не заикался. Если вы не поняли, я не виноват. Читать внимательнее надо сообщения. Если бы вы сразу сказали: "Не, это не критерий, эдак мы быстро придем к выводу что Delphi лучше чем C#", то я бы счел вопрос закрытым и возможно перешел бы к другой теме.

U>>>>Начать с простого, например какой-нибудь фильтр sharpen или despeckle. А что если мне во время анализа опять-же придется распределять кучу всякой памяти, ну и естественно её придется когда-нибудь освобождать? Через пару секунд думаю оно случится само собой.


kuj>>>Естественно случится, но если производительность приложения у тебя упирается в производительность сборки мусора, то пора думать о смене профессии — ибо профнепригоден.


U>>Злые вы... чуть чо сразу профнепригоден... ещё не начал программировать, а уже записали в дворники.

kuj>Так о чем споришь? Приходи годков через 5, как опыта да знаний наберешься.

Да я от вас хотел набраться ума... а чо нельзя?
Re[29]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 21:21
Оценка:
Здравствуйте, Utruk, Вы писали:

U>>>Э-э-э-э... а практически? То что он теоретически быстрее создает объекты потому что у него "один указатель и одна-две проверки" это мы уже выяснили. Что на практике... я выяснил, у других сразу проблемы возникли. То что он компилируется непосредственно на целевой платформе это тоже в книжке было написано.


kuj>>Мда. Смешно. Ты до сих пор считаешь, что критерий это время на создание какого-то там объекта? Кино и немцы....


U>Я до сих пор сравнивал C# и Delphi только в разрезе скорости. Про остальные моменты даже не заикался. Если вы не поняли, я не виноват. Читать внимательнее надо сообщения. Если бы вы сразу сказали: "Не, это не критерий, эдак мы быстро придем к выводу что Delphi лучше чем C#", то я бы счел вопрос закрытым и возможно перешел бы к другой теме.


Скорости чего? Сферического коня в банаховом пространстве? Самому еще не смешно?

U>>>>>Начать с простого, например какой-нибудь фильтр sharpen или despeckle. А что если мне во время анализа опять-же придется распределять кучу всякой памяти, ну и естественно её придется когда-нибудь освобождать? Через пару секунд думаю оно случится само собой.


kuj>>>>Естественно случится, но если производительность приложения у тебя упирается в производительность сборки мусора, то пора думать о смене профессии — ибо профнепригоден.


U>>>Злые вы... чуть чо сразу профнепригоден... ещё не начал программировать, а уже записали в дворники.

kuj>>Так о чем споришь? Приходи годков через 5, как опыта да знаний наберешься.

U>Да я от вас хотел набраться ума... а чо нельзя?


Выйдет. Только стоить тебе будет дорого.
Re[26]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 21:22
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


U>>Т.е вы хотите сказать что если я скажем перепишу анализ документа на C#, то при одинаковом алгоритме он будет быстрее чем на Delphi?

G>При одинаковом алгоритме конечно нет. А если написать хороший алгоритм для .NET, то прога на C# окажется быстрее, а код станет гораздо более удобочитаемый.
Ну дык и для нативного приложения можно написать хороший алгоритм. Разве не так?
Re[27]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.11.08 21:30
Оценка:
Здравствуйте, Utruk, Вы писали:

U>>>Т.е вы хотите сказать что если я скажем перепишу анализ документа на C#, то при одинаковом алгоритме он будет быстрее чем на Delphi?

G>>При одинаковом алгоритме конечно нет. А если написать хороший алгоритм для .NET, то прога на C# окажется быстрее, а код станет гораздо более удобочитаемый.
U>Ну дык и для нативного приложения можно написать хороший алгоритм. Разве не так?

Фишка в том, что на .NET и Java можно писать много быстрее и качественнее и во многом благодаря вышеуказанным средствам, о которых ты ясное дело не слыхивал и ни видывал, а раз так, то и больше времени на mature optimization (ибо premature во всех ее проявлениях есть зло), тестирование и отладку.
Re[22]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 21:30
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Utruk, Вы писали:


U>>Как всё плохо оказывается-то... данные находятся. Какие-нибудь данные


НС>Да нет, мусор там. Теперь осталось выяснить, что находится в шарповских массивах.


Да нет, нули там. Это видимо FastMM так старается. Но даже если добавить обнуление массива, то изменения скорости меньше чем статистическая погрешность.
Re[28]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 21:49
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>Фишка в том, что на .NET и Java можно писать много быстрее и качественнее и во многом благодаря вышеуказанным средствам, о которых ты ясное дело не слыхивал и ни видывал, а раз так, то и больше времени на mature optimization (ибо premature во всех ее проявлениях есть зло), тестирование и отладку.


Да я и не спорю... но меня эти вопросы пока что не волнуют. Наверное как сяду за С# плотно, так сразу вопросы оптимизации начнут волновать придется искать средства чтобы высвободить время на "оптимизацию, тестирование и отладку".
Re[30]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 22:06
Оценка:
Здравствуйте, kuj, Вы писали:

U>>Я до сих пор сравнивал C# и Delphi только в разрезе скорости. Про остальные моменты даже не заикался. Если вы не поняли, я не виноват. Читать внимательнее надо сообщения. Если бы вы сразу сказали: "Не, это не критерий, эдак мы быстро придем к выводу что Delphi лучше чем C#", то я бы счел вопрос закрытым и возможно перешел бы к другой теме.


kuj>Скорости чего? Сферического коня в банаховом пространстве? Самому еще не смешно?


Скорости работы кода написанного на сем языке. Я привел пример. Есть пара идей ещё сортировка вставками в дерево, шеллом и квиксорт... тоже интересно. Потом попробовать какую-нить математику.
Re[29]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 05.11.08 22:23
Оценка:
Здравствуйте, Utruk, Вы писали:

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


kuj>>Фишка в том, что на .NET и Java можно писать много быстрее и качественнее и во многом благодаря вышеуказанным средствам, о которых ты ясное дело не слыхивал и ни видывал, а раз так, то и больше времени на mature optimization (ибо premature во всех ее проявлениях есть зло), тестирование и отладку.


U>Да я и не спорю... но меня эти вопросы пока что не волнуют. Наверное как сяду за С# плотно, так сразу вопросы оптимизации начнут волновать придется искать средства чтобы высвободить время на "оптимизацию, тестирование и отладку".


Да... если у Вас нечего сказать существенного по скорости, то лучше не говорите вообще... отвлекает. Castle я займусь попозже, когда и если в нем возникнет потребность. По поводу какое дельфи гумно и как на ём плохо писать сетевые сервера тоже не надо, я уже всё понял 7000 соединений в сутки — это круто.
Re[26]: Delphi 2009 vs C# 3.0
От: Antikrot  
Дата: 05.11.08 22:24
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>Теоретически может работать быстрее, учитывая, что IL компилируется непосредственно на целевой платформе, что дает бОльший простор для оптимизации.


где-нибудь есть исходники jit компилятора .net? просто посмотреть как там практически
Re[27]: Delphi 2009 vs C# 3.0
От: Mr.Cat  
Дата: 05.11.08 22:51
Оценка:
Здравствуйте, Antikrot, Вы писали:
A>где-нибудь есть исходники jit компилятора .net? просто посмотреть как там практически

mono?
Re[28]: Delphi 2009 vs C# 3.0
От: Antikrot  
Дата: 05.11.08 22:57
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

A>>где-нибудь есть исходники jit компилятора .net? просто посмотреть как там практически

MC>mono?

фигня. как компилятор работает я как-бы знаю...
но мы ж вроде сравниваем 2009-ый дельфи с M$-овской реализацией .net 3.0. вот в последнем мне интересен "оптимизатор под целевую платформу" — может кто притырил где?
Re[24]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 06.11.08 01:44
Оценка:
Здравствуйте, Antikrot, Вы писали:

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


U>>Да нет, нули там. Это видимо FastMM так старается.

A>Да нет, мусор там. SetLength не инициализирует байты. Это видимо ОС так старается — зануляет память после выгрузки оттуда предыдущей программы...
Смотрел в отладчике. Но даже если мусор, то явное заполнение массива нулями на производительности практически никак не сказалось.
Re[27]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.11.08 05:12
Оценка:
Здравствуйте, Utruk, Вы писали:

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


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



G>>Говорилось про 7000-8000 подключений в сутки. то есть где-то одно подключение за 20 секунд. Такую нагрузку практически любая прога выдержит. В десятки раз большая нагрузка — менее секунды на запрос уже серьезная нагрузка. Если запросы обрабатываются достаточно медленно, то производительнось может упереться в количество тредов и открытых подключений.

U>Не понятно-же как оно распределено по суткам. Может все 7000 случаются в пределах получаса, а может размазано равномерно по суткам. Этого автор не написал... Если 7000 равномерно размазано по суткам и это говорится в контексте "посмотрите какой у нас производительный прожект на С#" то блин... ну тогда либо С# просто редкостное, либо автор к написанию сервера отношение имеет крайне посредственное. Потому что на том ксеоне с 80-тью тысячами соединений, сервер приложений написанный на Kylix+Indy+C++ совершенно никого не напрягал по скорости (это было примерно 250 рабочих станций). Сколько максимум одновременно активных соединений за всё время работы сервера я как-то не удосуживался посмотреть, но самое большое которое доводилось видеть было около 120. По потоку на клиента.
Что клиенты на сервере делали? Какова частота прихода запросов от клиентов? Каково время обработки одного запроса?
Re[13]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.11.08 06:17
Оценка:
Здравствуйте, Utruk, Вы писали:

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


G>>Спасибо, поржал.


U>Ваш вариант в студию.


только что скачал Turbo Delphi

Чуть более реальный сценарий, как раз выделение-освобождение памяти.

public class TestObject
{
    private const int ByteSize = 50;
    protected byte[] TestArray;
    public TestObject()
    {
        TestArray = new byte[ByteSize];
    }
}

class Program
{
    private const int ObjectCount = 1000;
    static void Main(string[] args)
    {
        var sw = new Stopwatch();
        sw.Start();

        for (int i = 0; i < 1000; i++)
        {
            var Objects = new List<object>(ObjectCount);
            while (Objects.Count < ObjectCount)
            {
                Objects.Add(new TestObject());
            }
        }
        sw.Stop();
        Console.WriteLine("C# Speed {0}", sw.ElapsedMilliseconds);
        Console.ReadLine();
    }
}



const
  ArraySize=50;
  ObjectCount=1000;

type
  TTestObject=class(TObject)
  private
    FTestArray:array of byte;
  public
    constructor Create;
  end;

{ TTestObject }

constructor TTestObject.Create;
begin
  inherited Create;
  SetLength(FTestArray, ArraySize);
end;

var
  Objects:TObjectList;
  Start, Stop:TDateTime;
  Speed:Integer;
  i:integer;
begin
  Start:=Now;

  for i := 1 to 1000 do
  begin
    Objects:=TObjectList.Create(TRUE);
    Objects.Capacity := ObjectCount;
    try
      while Objects.Count<ObjectCount do
        Objects.Add(TTestObject.Create);
    finally
      FreeAndNil(Objects);
    end;
  end;

  Stop:=Now;
  Speed:=MillisecondsBetween(Stop, Start);
  WriteLn('Delphi speed ', Speed);
  Readln;
end.


Результаты:
C# time 164
Delphi time 484

ЗЫ. При написании тестов запетил, что .NET тормозит при перераспределении больших блоков памяти. Поэтому большим спискам и StringBuilder с кучей текста лучше сразу выставлять capicity и не превышать её.
Re[16]: Delphi 2009 vs C# 3.0
От: Eugeny__ Украина  
Дата: 06.11.08 06:18
Оценка:
Здравствуйте, Utruk, Вы писали:


U>Многие "опечаточки" могут приводить в реальном коде к забавным багам. Например поставить ; после then в паскале.


Не шарю в паскале, что это будет?

U>Я уже не говорю о случаях когда в одной области видимости оказываются два идентификатора отличающиеся на одну букву.


В нормальной IDE это видно будет(при наведении на переменную все вхождения подсвечиваются). Ну, и вообще не припомню случая, чтобы переменные отличались на одну букву, кроме, разве что, индексаторов(i, j). Это как нужно называть, чтобы на одну букву? Хочу реального примера из жизни.

U>У вас не было случаев когда думаете об одном а пишете совсем другое? Хотелось бы все таки конструктивного подхода.


Наверное, я не из потомков Цезаря, я так не умею.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[17]: Delphi 2009 vs C# 3.0
От: Alexey Voytsehovich Украина  
Дата: 06.11.08 07:31
Оценка:
Здравствуйте, Eugeny__, Вы писали:

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



U>>Многие "опечаточки" могут приводить в реальном коде к забавным багам. Например поставить ; после then в паскале.


E__>Не шарю в паскале, что это будет?


if 1=2 then;
  writeln('hihi');


hihi будет всегда
без ; никогда.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Я не умею быть злым, и не хочу быть добрым.
Re[17]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 06.11.08 07:50
Оценка:
Здравствуйте, Eugeny__, Вы писали:

E__>В нормальной IDE это видно будет(при наведении на переменную все вхождения подсвечиваются).


Вы внимательно изучаете каждый раз что подсветилось а что нет?

E__>Ну, и вообще не припомню случая, чтобы переменные отличались на одну букву, кроме, разве что, индексаторов(i, j). Это как нужно называть, чтобы на одну букву? Хочу реального примера из жизни.


Page.Size и Pages.Size — что они будут обозначать сами додумаете или объяснить?

U>>У вас не было случаев когда думаете об одном а пишете совсем другое? Хотелось бы все таки конструктивного подхода.


E__>Наверное, я не из потомков Цезаря, я так не умею.


У вас наверное и ошибок в программах не бывает никогда. Завидую.
Re[17]: Delphi 2009 vs C# 3.0
От: Eugeny__ Украина  
Дата: 06.11.08 07:55
Оценка:
Здравствуйте, Utruk, Вы писали:


U>Естественно вместе с GC.Collect, потому как объектов много и память физическая нужна сейчас, а не когда-нибудь.


Вызов GC.Collect() совершенно не гарантирует, что запустится сборка мусора. Если памяти еще дофига, то зачем ее очищать?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[9]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 06.11.08 08:14
Оценка:
Здравствуйте, Antikrot, Вы писали:

A>а положена она туда случайно не с помощью IE? а то он гад пишет в доп.потоки ntfs что прожка скачана


Скопировал по сетке с другого компа. Все в пределах офиса тестировалось.
Re[9]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 06.11.08 08:16
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ни с чем морочится не надо, если не лезть туда, куда не понимаешь.


Т.е. если я скопировал прогу на конечный компьютер и она нихрена не работает, то значит забить на это и сказать "переставляй винду дядя"?
Re[28]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 06.11.08 08:34
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Что клиенты на сервере делали?


Размещали (фоновый процесс) или просматривали (интерактивное GUI приложение) изображения + некоторые метаданные.

G> Какова частота прихода запросов от клиентов?

G> Каково время обработки одного запроса?

Я честно говоря уже не очень хорошо помню конкретные цифры которые замерялись, но в среднем от одного клиента в зависимости от характера выполняемой задачи приходил один запрос с интервалом в 2..3 минуты. Каждый клиент работал примерно две смены из трех. Кроме того в систему равномерно влетало примерно 20..40 тысяч документов в сутки (1 документ — 1 запрос). Время обработки одного запроса от мгновенного (ну там сотни миллисекунд) до секунд 5 (когда они наваливались на сервер). Естественно приоритет работы пользователей был наивысшим, если чо фоновым процессам показывался кукишь и они отыгрывались на сервере по ночам, когда пользователей было мало.
Re[29]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.11.08 08:40
Оценка:
Здравствуйте, Utruk, Вы писали:

U>Я честно говоря уже не очень хорошо помню конкретные цифры которые замерялись, но в среднем от одного клиента в зависимости от характера выполняемой задачи приходил один запрос с интервалом в 2..3 минуты. Каждый клиент работал примерно две смены из трех. Кроме того в систему равномерно влетало примерно 20..40 тысяч документов в сутки (1 документ — 1 запрос). Время обработки одного запроса от мгновенного (ну там сотни миллисекунд) до секунд 5 (когда они наваливались на сервер). Естественно приоритет работы пользователей был наивысшим, если чо фоновым процессам показывался кукишь и они отыгрывались на сервере по ночам, когда пользователей было мало.

Вполне терпимая нагрузка на один неочень мощный сервак.
Re[18]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 06.11.08 08:48
Оценка:
Здравствуйте, Eugeny__, Вы писали:

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



U>>Естественно вместе с GC.Collect, потому как объектов много и память физическая нужна сейчас, а не когда-нибудь.


E__>Вызов GC.Collect() совершенно не гарантирует, что запустится сборка мусора.


Это он гарантирует.
Re[14]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 06.11.08 09:18
Оценка:
Здравствуйте, gandjustas, Вы писали:
G>Чуть более реальный сценарий, как раз выделение-освобождение памяти.
G> [...]
G>Результаты:
G>C# time 164
G>Delphi time 484

G>ЗЫ. При написании тестов запетил, что .NET тормозит при перераспределении больших блоков памяти. Поэтому большим спискам и StringBuilder с кучей текста лучше сразу выставлять capicity и не превышать её.


Ага... поигрался с ObjectCount... где-то от 10000 до 20000 происходит тот самый знаменательный момент под названием сборка мусора и все... производительность программы на C# умерла, после этого она уже медленнее всегда. По моему 20000 объектов — более чем реальное распределение за один заход, зависит конечно от задачи...
Re[10]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 06.11.08 09:19
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Т.е. если я скопировал прогу на конечный компьютер и она нихрена не работает, то значит забить на это и сказать "переставляй винду дядя"?


Нет, это значит, что если полазал в настройках грязными ручками, то нечего на дотнет пенять.
Re[30]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 06.11.08 09:25
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


U>>Я честно говоря уже не очень хорошо помню конкретные цифры которые замерялись, но в среднем от одного клиента в зависимости от характера выполняемой задачи приходил один запрос с интервалом в 2..3 минуты. Каждый клиент работал примерно две смены из трех. Кроме того в систему равномерно влетало примерно 20..40 тысяч документов в сутки (1 документ — 1 запрос). Время обработки одного запроса от мгновенного (ну там сотни миллисекунд) до секунд 5 (когда они наваливались на сервер). Естественно приоритет работы пользователей был наивысшим, если чо фоновым процессам показывался кукишь и они отыгрывались на сервере по ночам, когда пользователей было мало.

G>Вполне терпимая нагрузка на один неочень мощный сервак.

А я про что? 80000 — ничего экстраординарного, а 7000 это скорее от незнания чем занимается сервер, нулей много но ни о чем не говорит.
Re[24]: Delphi 2009 vs C# 3.0
От: Utruk  
Дата: 06.11.08 09:39
Оценка:
Здравствуйте, gandjustas, Вы писали:

kuj>>>Delphi как была никчемной игрушкой для бедных ВУЗов и энтузиастов этого уродства под названием "delphi language", так ею и осталась.

U>>Вот опустили... а я то тут в мелкой конторке маюсь с оборотом в USD $7M/год и клиентурой от Германии до Японии.
G>Это премущество делфи?

Это имеет ровно-то же отношение к вопросу хороша делфи или плоха как и пассаж выше про игрушку для вузов и т.п... Фирма (вполне себе успешная) в которой я сейчас работаю пользуется Delphi с пятой версии... ни на ВУЗ с бедными студентами ни на уродство оно непохоже...
Re[15]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.11.08 09:49
Оценка:
Здравствуйте, Utruk, Вы писали:

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

G>>Чуть более реальный сценарий, как раз выделение-освобождение памяти.
G>> [...]
G>>Результаты:
G>>C# time 164
G>>Delphi time 484

G>>ЗЫ. При написании тестов запетил, что .NET тормозит при перераспределении больших блоков памяти. Поэтому большим спискам и StringBuilder с кучей текста лучше сразу выставлять capicity и не превышать её.


U>Ага... поигрался с ObjectCount... где-то от 10000 до 20000 происходит тот самый знаменательный момент под названием сборка мусора и все... производительность

программы на C# умерла, после этого она уже медленнее всегда. По моему 20000 объектов — более чем реальное распределение за один заход, зависит конечно от задачи...

Тотже код.
Поставил ObjectCount = 1000000
C# time 53285
Delphi time 63937

Проект на C# собирал в режиме release, запускал не из студии. В BDS оптимизация включена.
Re[16]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.11.08 09:53
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Поставил ObjectCount = 1000000

Ошибся, нолик лишний.
ObjectCount = 100000
Re[31]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 06.11.08 11:28
Оценка:
Здравствуйте, Utruk, Вы писали:

U>>>Я честно говоря уже не очень хорошо помню конкретные цифры которые замерялись, но в среднем от одного клиента в зависимости от характера выполняемой задачи приходил один запрос с интервалом в 2..3 минуты. Каждый клиент работал примерно две смены из трех. Кроме того в систему равномерно влетало примерно 20..40 тысяч документов в сутки (1 документ — 1 запрос). Время обработки одного запроса от мгновенного (ну там сотни миллисекунд) до секунд 5 (когда они наваливались на сервер). Естественно приоритет работы пользователей был наивысшим, если чо фоновым процессам показывался кукишь и они отыгрывались на сервере по ночам, когда пользователей было мало.

G>>Вполне терпимая нагрузка на один неочень мощный сервак.

U>А я про что? 80000 — ничего экстраординарного, а 7000 это скорее от незнания чем занимается сервер, нулей много но ни о чем не говорит.


Зато создание 100 млн объектов это очень о многом говорит. В дилетантстве ты уже расписался. Можешь больше не стараться.
Re[12]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 06.11.08 23:53
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Тебе не кажется что все твои доводы безосновательны?


Нет.

D> Да, если программа на .NET не использует сетевых возможностей, не лезет узнавать сетевое имя твоего компа, не открывает лишние подозрительные порты и т.д. (т.е. если программа для домохозяек, дает совет что лучше на завтрак приготовить) то она таки будет работать на любом компьютере с предустановленным фреймворком без дополнительных напильников.


Несколько программ, которые я пишу за деньги, "активно юзают сеть". И еще ни разу не было проблем с CAS. Более того, в отличие от тебя, я неплохо представляю себе всю механику CAS и как оно работает, а не просто пользуюсь магической строкой с caspol.exe.

D>В общем, если у тебя нет опыта дистрибуции и распространения программ на .NET, то уж лучше молчи




D>, а если есть то скажи конкретно какую галочку и где надо поставить при сборке чтобы все работало всегда и везде.


Галочку надо ставить не при сборке, а в мо... Надо привести в оригинальное состояние локальные политики пользователя и машины на той машине, где у тебя странным образом срабатывает CAS (и корпоративную политику, если она используется).
Re[13]: Delphi 2009 vs C# 3.0
От: diatlov Молдова  
Дата: 07.11.08 10:27
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Галочку надо ставить не при сборке, а в мо... Надо привести в оригинальное состояние локальные политики пользователя и машины на той машине, где у тебя странным образом срабатывает CAS (и корпоративную политику, если она используется).


Т.е. взял человек мою программу, а у него там политиков понастроено. Я должен ему сказать: "Извини чел, у тебя компьютер супермегазащищен, перенастрой его так чтобы моя программа не ругалась". Так? Или мне все таки класть в дистрибутив caspol и автоматически при установке регить прогу?
Re[14]: Delphi 2009 vs C# 3.0
От: icWasya  
Дата: 07.11.08 11:37
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>Чуть более реальный сценарий, как раз выделение-освобождение памяти.


G>
G>...
   Objects.Capacity = ObjectCount; // это я добавил
        Console.WriteLine("C# Speed {0}", sw.ElapsedMilliseconds);
        Console.ReadLine();
G>   }
G>}
G>



G>
G>.....
G>  WriteLn('Delphi speed ', Speed);
G>  Readln;
G>end.
G>


у меня получилось

Intel Core2 Duo 2х1.61 ГГц
озу 2 Гб

ArraySize 50
ObjectCount 100000

C# (2005 Studio) speed 37401
Delphi5 speed 56562
Delphi2009 speed 34328

то есть между D5 и D2009 менеджер памяти заметно улучшился
а между C# и D2009 разница не большая, хотя и есть
Re[15]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 07.11.08 17:29
Оценка:
Здравствуйте, icWasya, Вы писали:

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



G>>
G>>...
W>   Objects.Capacity = ObjectCount; // это я добавил
W>        Console.WriteLine("C# Speed {0}", sw.ElapsedMilliseconds);
W>        Console.ReadLine();
G>>   }
G>>}
G>>


Зачем добавил?
Re[14]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 08.11.08 00:55
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Т.е. взял человек мою программу, а у него там политиков понастроено. Я должен ему сказать: "Извини чел, у тебя компьютер супермегазащищен, перенастрой его так чтобы моя программа не ругалась". Так?


Так. А ты чего думаешь, я твою программу на Дельфи не поставлю раком несколькими кликами мышки?

D> Или мне все таки класть в дистрибутив caspol и автоматически при установке регить прогу?


Нет, проблемы поставленной раком операционки это проблемы того, кто поставил ее раком.
Re: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 13.11.08 10:16
Оценка:
Здравствуйте, diatlov, Вы писали:

D>Обсудим все + и — ?


Для меня два главных, и пока никак не решаемых, минусов дельфи:
1) полное отсутствие возможности создания программ с векторным графическим интерфейсом м поддержкой автоматической компоновки;
2) убогая (точнее очень устаревшая) модель работы с БД. Нафига нужен весь этот путь DataSet — DataSource — DataLink — DB-aware controls? Почему просто нельзя подключить произвольный объект к стандартному визуальному контролу? Нет, блин, до сих пор городим две иерархии контролов, датасеты, которые нужно обязательно открыть перед тем как что-то в них вставить, и к которым невозможно привязать два грида с независимым перемещением и т.п.

По иронии судьбы, всё это добро в довольно изящной форме реализовано в WPF и FCL C# 3.5.
Re[14]: Delphi 2009 vs C# 3.0
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.11.08 04:45
Оценка:
Здравствуйте, diatlov, Вы писали:
D>Т.е. взял человек мою программу, а у него там политиков понастроено. Я должен ему сказать: "Извини чел, у тебя компьютер супермегазащищен, перенастрой его так чтобы моя программа не ругалась". Так?
Вообще говоря — да.
Потому, что скорее всего нерабочесть твоей проги — это не досадная случайность, а осознанное решение местного админа.
И это решение нужно уважать. Админ имеет полное право ограничить исполнение всякого отстоя, поступившего неизвестно откуда.
D>Или мне все таки класть в дистрибутив caspol и автоматически при установке регить прогу?
Вот автоматически — не надо. Галочку в инсталлере сделать можно, предупредив админа о причинах необходимости работать под full trust.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[23]: Delphi 2009 vs C# 3.0
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.11.08 05:49
Оценка:
Здравствуйте, Utruk, Вы писали:
U>Нет. Я хочу поговорить о том с какой скоростью мой процесс будет получать очередную серию кусков памяти. С этого всё начиналось. Меня вполне удовлетворит если это случиться быстрее чем на Delphi.
Да, это таки случится быстрее, чем на Delphi.
Есть некоторые вырожденные сценарии, когда GC будет менее эффективным, но в жизни их получить достаточно тяжело.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[20]: Delphi 2009 vs C# 3.0
От: wallaby  
Дата: 14.11.08 06:07
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Это будет происходить очень быстро. Потому, что выделение памяти в дотнете стоит примерно столько же, сколько выделение на стеке — такой же инкремент указателя. Удаление объектов не делается вообще.


А что мешает сделать то же самое в нативном коде? В старом добром Паскале PDP-11 были аналогичные функции работы с памятью (если склероз не изменяет, назывались Mark/Release). В Турбопаскале они не были реализованы видимо по причине сегментной организации памяти в DOS, но при плоской модели памяти проблем с их реализацией никаких.
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Re[21]: Delphi 2009 vs C# 3.0
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.11.08 07:14
Оценка:
Здравствуйте, wallaby, Вы писали:

W>А что мешает сделать то же самое в нативном коде?

То, что порядок вызова деструкторов никто не гарантирует.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.11.08 06:38
Оценка:
Здравствуйте, Antoshka, Вы писали:

D>>Я не дельфист ) Я как раз на Шарпе и пишу. Но т.к. тут все против Дельфи то, чтобы поддержать беседу, кому-то же надо находить положительные моменты в Дельфи.

D>>Вот и стараюсь по мере возможности (На дельфи программировал только в 10 и 11 классе).

A>Вся RTL/VCL Delphi идёт с исходными текстами — это огромный плюс для тех, кто хочеть серьёзно изучить среду.

От того что человек изучит среду среда не станет лучше.

ЗЫ. .NET, Java тоже имеет по большей части открытие исходники.
Re[8]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 17.11.08 13:43
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


D>>>Я не дельфист ) Я как раз на Шарпе и пишу. Но т.к. тут все против Дельфи то, чтобы поддержать беседу, кому-то же надо находить положительные моменты в Дельфи.

D>>>Вот и стараюсь по мере возможности (На дельфи программировал только в 10 и 11 классе).

A>>Вся RTL/VCL Delphi идёт с исходными текстами — это огромный плюс для тех, кто хочеть серьёзно изучить среду.

G>От того что человек изучит среду среда не станет лучше.

Сделать среду лучше — задача разработчика среды. А вот уметь выжать из инструмента максимум — это почётная цель как раз для прикладного разработчика.

G>ЗЫ. .NET, Java тоже имеет по большей части открытие исходники.


Слышал, но там много головняка с их подключением . В дельфи же всё идёт сразу. Достаточно нажать Ctrl+Space
Re[9]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 17.11.08 16:26
Оценка:
Здравствуйте, Antoshka, Вы писали:

G>>ЗЫ. .NET, Java тоже имеет по большей части открытие исходники.


A>Слышал, но там много головняка с их подключением . В дельфи же всё идёт сразу. Достаточно нажать Ctrl+Space


Основная сложность — найти мотивацию. Делов там на 5 минут максимум. Просто оно обычно нафиг не надо.
Re[2]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 18.11.08 06:09
Оценка:
Здравствуйте, Antoshka, Вы писали:

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


D>>Обсудим все + и — ?


A>Для меня два главных, и пока никак не решаемых, минусов дельфи:

A>1) полное отсутствие возможности создания программ с векторным графическим интерфейсом м поддержкой автоматической компоновки;
A>2) убогая (точнее очень устаревшая) модель работы с БД. Нафига нужен весь этот путь DataSet — DataSource — DataLink — DB-aware controls? Почему просто нельзя подключить произвольный объект к стандартному визуальному контролу? Нет, блин, до сих пор городим две иерархии контролов (обычные и db-aware), датасеты, которые нужно обязательно открыть перед тем как что-то в них вставить, и к которым невозможно привязать два грида с независимым перемещением и т.п.

3) отсутствие многоадресных делегатов — любая множественная подписка на события становится источником изрядного головняка

A>По иронии судьбы, всё это добро в довольно изящной форме реализовано в WPF и FCL C# 3.5.
Re[9]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 18.11.08 23:05
Оценка:
Здравствуйте, Antoshka, Вы писали:

A>Слышал, но там много головняка с их подключением .


Ага, ужас просто — нужно в настройках одну галочку взвести
Re[10]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 21.11.08 06:27
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Antoshka, Вы писали:


A>>Слышал, но там много головняка с их подключением .


НС>Ага, ужас просто — нужно в настройках одну галочку взвести


А ещё и постоянное соединение с интернетом. Хотя там что-то кешируется, но... как грится, зачем, если в дельфи всё идёт сразу безо всяких галочек и скачиваний с интеренета
Re[11]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 21.11.08 07:19
Оценка:
Здравствуйте, Antoshka, Вы писали:

A>>>Слышал, но там много головняка с их подключением .


НС>>Ага, ужас просто — нужно в настройках одну галочку взвести


A>А ещё и постоянное соединение с интернетом. Хотя там что-то кешируется, но... как грится, зачем, если в дельфи всё идёт сразу безо всяких галочек и скачиваний с интеренета


Если бы еще дельфовые библиотеки были хоть на одну йоту так же удобные и функциональны, как .NET Framework. ;>
Re[10]: Delphi 2009 vs C# 3.0
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.11.08 09:47
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>А это ты, уважаемый, просто вводишь нас в заблуждение. Скорость выделения дотнета не достижима ни для каких суперменеджеров кучи (не говоря уж о менеджере дельфи), потому что это прост инкремент одного указателя и пара проверок, а освобождение памяти в дотнете просто отсутствует.


1. Достижима, но смотря где.
2. Освобождение памяти есть. только оно для поколения, а не для единичного объекта.

Когда много свободной памяти, дотнет выделяет быстро, не хуже чем на стеке.

А когда памяти мало, то начинается тихий ужас — выделение памяти влечет за собой геморрой, дотнет пробут освободть память в первом поколении, видит, что её не хваватает, берётся за следующее, в конце концов, когда выясняется, что много объектов сидит в последнем поколении, начинается цирк — если в памяти висит ком объектов со ссылками друг на друга и на этот ком никто не ссылается, то дотнет не может выпустить этот ком пока не осободит все и только потом начнется выделение.

Разницу заметить просто — если в каждом из объектов в этой куче разорвать ссылки, то память выделится очень быстро. Только разрыв ссылок оных займёт примерно столько же времени сколько и GC будет работать.

В этой ситуации даже количество ядер не улучшает ситуацию.
Re[12]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 01.12.08 11:18
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Antoshka, Вы писали:


A>>А ещё и постоянное соединение с интернетом.


НС>Ну, профессиональная разработка без постоянного подключения к интернету это что то экзотическое.


В регионах диалап пока ещё реальность.
Re[13]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 01.12.08 11:53
Оценка:
Здравствуйте, Antoshka, Вы писали:

A>>>А ещё и постоянное соединение с интернетом.


НС>>Ну, профессиональная разработка без постоянного подключения к интернету это что то экзотическое.


A>В регионах диалап пока ещё реальность.


И дельфи тоже. Очень редкая.
Re[13]: Delphi 2009 vs C# 3.0
От: Ночной Смотрящий Россия  
Дата: 02.12.08 22:54
Оценка:
Здравствуйте, Antoshka, Вы писали:

A>В регионах диалап пока ещё реальность.


В конторах по разработке софта?
Re[14]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 02.12.08 23:09
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Antoshka, Вы писали:


A>>В регионах диалап пока ещё реальность.


НС>В конторах по разработке софта?


Есть одна контора, в которой занимаются и разработкой софта в том числе... Пишут для внутренних нужд, на продажу, в том числе кое-что для Газпрома. Программистов наберется несколько сотен. Интернет там все же есть, но по некоторым прикидкам ~5 рабочих мест на 1000 сотрудников, которые в основном пустуют. Ведь для получения одноразового доступа в интернет требуется получить разрешение у руководителя подразделения (начальник над 300-1000 сотрудников).

Диалап на рабочем месте для сотрудников этой конторы — несбыточная мечта!
Re[15]: Delphi 2009 vs C# 3.0
От: Eugeny__ Украина  
Дата: 03.12.08 10:12
Оценка:
Здравствуйте, samius, Вы писали:


S>Есть одна контора, в которой занимаются и разработкой софта в том числе... Пишут для внутренних нужд, на продажу, в том числе кое-что для Газпрома. Программистов наберется несколько сотен. Интернет там все же есть, но по некоторым прикидкам ~5 рабочих мест на 1000 сотрудников, которые в основном пустуют. Ведь для получения одноразового доступа в интернет требуется получить разрешение у руководителя подразделения (начальник над 300-1000 сотрудников).


Жуть какая
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[15]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 03.12.08 11:25
Оценка:
Здравствуйте, samius, Вы писали:

A>>>В регионах диалап пока ещё реальность.


НС>>В конторах по разработке софта?


S>Есть одна контора, в которой занимаются и разработкой софта в том числе... Пишут для внутренних нужд, на продажу, в том числе кое-что для Газпрома. Программистов наберется несколько сотен. Интернет там все же есть, но по некоторым прикидкам ~5 рабочих мест на 1000 сотрудников, которые в основном пустуют. Ведь для получения одноразового доступа в интернет требуется получить разрешение у руководителя подразделения (начальник над 300-1000 сотрудников).


S>Диалап на рабочем месте для сотрудников этой конторы — несбыточная мечта!


Несколько сотен и все программисты? Честно-честно??

И не могут обеспечить их нормальным Интернетом?

Попахивает откровенной ложью.
Re[16]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 03.12.08 11:42
Оценка:
Здравствуйте, kuj, Вы писали:

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


S>>Диалап на рабочем месте для сотрудников этой конторы — несбыточная мечта!


kuj>Несколько сотен и все программисты? Честно-честно??

Несколько сотен программистов, вообще сотрудников около 10000.

kuj>И не могут обеспечить их нормальным Интернетом?

Могут, но не считают это возможным.

kuj>Попахивает откровенной ложью.

Попахивает режимом, я бы сказал.
Re[17]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 03.12.08 12:09
Оценка:
Здравствуйте, samius, Вы писали:

S>>>Диалап на рабочем месте для сотрудников этой конторы — несбыточная мечта!


kuj>>Несколько сотен и все программисты? Честно-честно??

S>Несколько сотен программистов, вообще сотрудников около 10000.

kuj>>И не могут обеспечить их нормальным Интернетом?

S>Могут, но не считают это возможным.

kuj>>Попахивает откровенной ложью.

S>Попахивает режимом, я бы сказал.

Можно поинтересоваться название конторы и территориальное местоположение?
Re[18]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 03.12.08 12:11
Оценка:
Здравствуйте, kuj, Вы писали:

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


S>>>>Диалап на рабочем месте для сотрудников этой конторы — несбыточная мечта!


kuj>>>Несколько сотен и все программисты? Честно-честно??

S>>Несколько сотен программистов, вообще сотрудников около 10000.

kuj>>>И не могут обеспечить их нормальным Интернетом?

S>>Могут, но не считают это возможным.

kuj>>>Попахивает откровенной ложью.

S>>Попахивает режимом, я бы сказал.

kuj>Можно поинтересоваться название конторы и территориальное местоположение?

http://www.vniitf.ru/
Re[14]: Delphi 2009 vs C# 3.0
От: vlad_gri  
Дата: 03.12.08 15:44
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>Тебе начать перечислять что есть в .NET Framework, чего нет в стандартных библиотеках Delphi? При чем не экзотика типа "написать сканер ящика по pop3", а базовые вещи типа base64 кодирования, хэширование, шифрование по AES, шифрование с открытым ключом, ЭЦП и т.д. и т.д и т.д..


А Indy(начиная с D7 из коробки)? +куча сторонних библиотек и компонент.
Re[15]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.12.08 16:34
Оценка:
Здравствуйте, vlad_gri, Вы писали:

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


kuj>>Тебе начать перечислять что есть в .NET Framework, чего нет в стандартных библиотеках Delphi? При чем не экзотика типа "написать сканер ящика по pop3", а базовые вещи типа base64 кодирования, хэширование, шифрование по AES, шифрование с открытым ключом, ЭЦП и т.д. и т.д и т.д..


_>А Indy(начиная с D7 из коробки)? +куча сторонних библиотек и компонент.


Indy только в Enterprise версии, которая дороже Pro студии, а по функционалу слабее.
Про сторонние библиотеки — вообще смешно ибо большенство описанного функционала есть в самой винде, а Borland\CodeGear не удосужились сделать враппер для них в VCL.

Кстати как у делфи (не делфи.NET) с вебом?
Re[16]: Delphi 2009 vs C# 3.0
От: vlad_gri  
Дата: 04.12.08 02:50
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Indy только в Enterprise версии, которая дороже Pro студии, а по функционалу слабее.


Indy имеет

The software is dual-licensed under the "Indy Modified BSD License" and the "Indy MPL License"

и входила в "Borland Companion CD" с 1995 года еще под именем "Winshoes" c 2000 "Indy"

G>Про сторонние библиотеки — вообще смешно ибо большенство описанного функционала есть в самой винде, а Borland\CodeGear не удосужились сделать враппер для них в VCL.


Ну и что обозначает аббревиатура VCL? Неужели "Vсе в мире Cомпонент Lиблиотека"

G>Кстати как у делфи (не делфи.NET) с вебом?

Что именно CGI? ISAPI? WebServices? WebSnap? SOAP? или может IntraWeb?
Re[17]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.12.08 03:51
Оценка:
Здравствуйте, vlad_gri, Вы писали:

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


G>>Indy только в Enterprise версии, которая дороже Pro студии, а по функционалу слабее.


_>Indy имеет

_>

_>The software is dual-licensed under the "Indy Modified BSD License" and the "Indy MPL License"

_>и входила в "Borland Companion CD" с 1995 года еще под именем "Winshoes" c 2000 "Indy"

Цену самой среды это никак не уменьшает.

G>>Про сторонние библиотеки — вообще смешно ибо большенство описанного функционала есть в самой винде, а Borland\CodeGear не удосужились сделать враппер для них в VCL.

_>Ну и что обозначает аббревиатура VCL? Неужели "Vсе в мире Cомпонент Lиблиотека"
Это типа отмазка чтобы не реализовывать важную функциональность?

G>>Кстати как у делфи (не делфи.NET) с вебом?

_>Что именно CGI? ISAPI? WebServices? WebSnap? SOAP? или может IntraWeb?
И что из этого мне поможет создать свой веб-сервис и разместить его на существующем сервере (IIS, Apache)?
Re[18]: Delphi 2009 vs C# 3.0
От: vlad_gri  
Дата: 04.12.08 04:56
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Цену самой среды это никак не уменьшает.

TurboDelphi?

G>>>Про сторонние библиотеки — вообще смешно ибо большенство описанного функционала есть в самой винде, а Borland\CodeGear не удосужились сделать враппер для них в VCL.

_>>Ну и что обозначает аббревиатура VCL? Неужели "Vсе в мире Cомпонент Lиблиотека"
G>Это типа отмазка чтобы не реализовывать важную функциональность?
Ну так что обозначает аббревиатура VCL?

G>>>Кстати как у делфи (не делфи.NET) с вебом?

_>>Что именно CGI? ISAPI? WebServices? WebSnap? SOAP? или может IntraWeb?
G>И что из этого мне поможет создать свой веб-сервис и разместить его на существующем сервере (IIS, Apache)?
CGI, ISAPI, WebServices, WebSnap, SOAP и даже IntraWeb.
Re[19]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.12.08 05:25
Оценка:
Здравствуйте, vlad_gri, Вы писали:

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


G>>Цену самой среды это никак не уменьшает.

_>TurboDelphi?
На которую те самые сторонние компоненты не ставятся.

G>>>>Про сторонние библиотеки — вообще смешно ибо большенство описанного функционала есть в самой винде, а Borland\CodeGear не удосужились сделать враппер для них в VCL.

_>>>Ну и что обозначает аббревиатура VCL? Неужели "Vсе в мире Cомпонент Lиблиотека"
G>>Это типа отмазка чтобы не реализовывать важную функциональность?
_>Ну так что обозначает аббревиатура VCL?
Википедия:

Библиоте́ка визуа́льных компоне́нтов (англ. Visual Component Library, VCL) — объектно-ориентированная библиотека для разработки программного обеспечения, разработанная компанией «Borland» для поддержки принципов визуального программирования. VCL входит в комплект поставки «Delphi», «C++ Builder» и «Borland Developer Studio» и является, по сути, частью среды разработки, хотя разработка приложений этих средах возможна и без использования VCL. VCL представляет огромное количество готовых к использованию компонентов для работы в самых разных областях программирования, таких, например, как интерфейс пользователя (экранные формы и т. н. «контролы»), работа с базами данных, взаимодействие с операционной системой, программирование сетевых приложений и прочее.



G>>>>Кстати как у делфи (не делфи.NET) с вебом?

_>>>Что именно CGI? ISAPI? WebServices? WebSnap? SOAP? или может IntraWeb?
G>>И что из этого мне поможет создать свой веб-сервис и разместить его на существующем сервере (IIS, Apache)?
_>CGI, ISAPI, WebServices, WebSnap, SOAP и даже IntraWeb.
Ну да писать веб-серсив на CGI или ISAPI уже очень хорошее занятие. WebSnap не поддерживается хостинг-провайдерами, да слабоват он по сравнению с ASP.NET. IntraWeb — вообще не веб, а бред.
Дома поиграть это все еще как-нибудь сойдет, а для серьезной разработки — никак.
Re[20]: Delphi 2009 vs C# 3.0
От: vlad_gri  
Дата: 04.12.08 07:56
Оценка:
Здравствуйте, gandjustas, Вы писали:

_>>TurboDelphi?

G>На которую те самые сторонние компоненты не ставятся.
Кто говорил про Explorer. Turbo Delphi Professional Edition;

G>

G>Библиоте́ка визуа́льных компоне́нтов (англ. Visual Component Library, VCL) — объектно-ориентированная библиотека для разработки программного обеспечения, разработанная компанией «Borland» для поддержки принципов визуального программирования. VCL входит в комплект поставки «Delphi», «C++ Builder» и «Borland Developer Studio» и является, по сути, частью среды разработки, хотя разработка приложений этих средах возможна и без использования VCL. VCL представляет огромное количество готовых к использованию компонентов для работы в самых разных областях программирования, таких, например, как интерфейс пользователя (экранные формы и т. н. «контролы»), работа с базами данных, взаимодействие с операционной системой, программирование сетевых приложений и прочее.

Visual!!! Как ты себе представляешь визуальное программирование к примеру base64 или AES

G>Ну да писать веб-серсив на CGI или ISAPI уже очень хорошее занятие. WebSnap не поддерживается хостинг-провайдерами, да слабоват он по сравнению с ASP.NET. IntraWeb — вообще не веб, а бред.

WebSnap = ISAPI. Про

не поддерживается хостинг-провайдерами

? Ни разу не сталкивался(я имею ввиду с не поддерживается).

G>Дома поиграть это все еще как-нибудь сойдет, а для серьезной разработки — никак.

Кому как.
Re[21]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.12.08 08:22
Оценка:
Здравствуйте, vlad_gri, Вы писали:

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


_>>>TurboDelphi?

G>>На которую те самые сторонние компоненты не ставятся.
_>Кто говорил про Explorer. Turbo Delphi Professional Edition;
Дороже студии Standard, причем в студии не один язык, а несколько.

G>>

G>>Библиоте́ка визуа́льных компоне́нтов (англ. Visual Component Library, VCL) — объектно-ориентированная библиотека для разработки программного обеспечения, разработанная компанией «Borland» для поддержки принципов визуального программирования. VCL входит в комплект поставки «Delphi», «C++ Builder» и «Borland Developer Studio» и является, по сути, частью среды разработки, хотя разработка приложений этих средах возможна и без использования VCL. VCL представляет огромное количество готовых к использованию компонентов для работы в самых разных областях программирования, таких, например, как интерфейс пользователя (экранные формы и т. н. «контролы»), работа с базами данных, взаимодействие с операционной системой, программирование сетевых приложений и прочее.

_>Visual!!! Как ты себе представляешь визуальное программирование к примеру base64 или AES
Да я как-то слабо себе представляю визуальное взаимодействие с операционной системой и программирование сетевых приложений. Хотя это тоже есть в VCL.

G>>Ну да писать веб-серсив на CGI или ISAPI уже очень хорошее занятие. WebSnap не поддерживается хостинг-провайдерами, да слабоват он по сравнению с ASP.NET. IntraWeb — вообще не веб, а бред.

_>WebSnap = ISAPI. Про
_>

_>не поддерживается хостинг-провайдерами

_>? Ни разу не сталкивался(я имею ввиду с не поддерживается).
Ну-ну, и каждый хостинг провайдер разрешает у себя ISAPI-фильтры ставить?

G>>Дома поиграть это все еще как-нибудь сойдет, а для серьезной разработки — никак.

_>Кому как.
Пример веб-проекта на делфи?
Re[22]: Delphi 2009 vs C# 3.0
От: vlad_gri  
Дата: 04.12.08 12:27
Оценка:
Здравствуйте, gandjustas, Вы писали:

_>>Кто говорил про Explorer. Turbo Delphi Professional Edition;

G>Дороже студии Standard, причем в студии не один язык, а несколько.
339$ конечно дороже 550$
G>Ну-ну, и каждый хостинг провайдер разрешает у себя ISAPI-фильтры ставить?
Нормальный провайдер разрешает.
G>Пример веб-проекта на делфи?
здесь
здесь
Re[23]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.12.08 13:49
Оценка:
Здравствуйте, vlad_gri, Вы писали:

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


_>>>Кто говорил про Explorer. Turbo Delphi Professional Edition;

G>>Дороже студии Standard, причем в студии не один язык, а несколько.
_>339$ конечно дороже 550$
У меня другие цены: 400; для студии против 439$ для делфи.
Даже если студия дороже, то возможностей там больше.

G>>Ну-ну, и каждый хостинг провайдер разрешает у себя ISAPI-фильтры ставить?

_>Нормальный провайдер разрешает.
Не все и стоит это дорого.

Ссылку?
G>>Пример веб-проекта на делфи?
_>здесь
_>здесь
Это одна и таже библиотека. В урле указаны htm страницы, зачем там Delphi нужен?
Да и SessionID по IP — безмерно круто.
Re[24]: Delphi 2009 vs C# 3.0
От: vlad_gri  
Дата: 04.12.08 14:10
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Ссылку?

G>>>Пример веб-проекта на делфи?
_>>здесь
_>>здесь
G>Это одна и таже библиотека. В урле указаны htm страницы, зачем там Delphi нужен?
G>Да и SessionID по IP — безмерно круто.

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

зачем там Delphi нужен?

Re[25]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.12.08 14:29
Оценка:
Здравствуйте, vlad_gri, Вы писали:

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


G>>Ссылку?

G>>>>Пример веб-проекта на делфи?
_>>>здесь
_>>>здесь
G>>Это одна и таже библиотека. В урле указаны htm страницы, зачем там Delphi нужен?
G>>Да и SessionID по IP — безмерно круто.

_>Первая ссылка, это пример того, что можно сделать с помощью инструмента со второй ссылки.

_>Просто обрати внимание на этот инструмент и поймешь
_>

_>зачем там Delphi нужен?


Уже обратил, набрал URL http://www.e-delos.com/Delos.Pro.htm и увидел тоже самое что и здесь.
Получается что все это не нужно.
Re[26]: Delphi 2009 vs C# 3.0
От: vlad_gri  
Дата: 04.12.08 14:56
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>Уже обратил, набрал URL http://www.e-delos.com/Delos.Pro.htm и увидел тоже самое что и здесь.

G>Получается что все это не нужно.
То есть про кэширование и алиасы слышим впервые.
Ну да ладно written in WebSnap
Re[17]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 04.12.08 15:20
Оценка:
Здравствуйте, vlad_gri, Вы писали:

_>Indy имеет


Не совсем понятно каким боком Indy к теме, ну да ладно...

_>

_>The software is dual-licensed under the "Indy Modified BSD License" and the "Indy MPL License"

_>и входила в "Borland Companion CD" с 1995 года еще под именем "Winshoes" c 2000 "Indy"

G>>Про сторонние библиотеки — вообще смешно ибо большенство описанного функционала есть в самой винде, а Borland\CodeGear не удосужились сделать враппер для них в VCL.


_>Ну и что обозначает аббревиатура VCL? Неужели "Vсе в мире Cомпонент Lиблиотека"


G>>Кстати как у делфи (не делфи.NET) с вебом?

_>Что именно CGI? ISAPI? WebServices? WebSnap? SOAP? или может IntraWeb?

WSE 3 (WS-Security 1.0/1.1, WS-Trust, WS-SecureConversation, WS-Addressing, Message Transmission Optimization Mechanism (MTOM)) ?
WCF ?
WPF ?
С возможностью выбрать Json/Xml/Binary сериализатор по желанию?
O/RM?
Хотя бы элементарный аналог простейшего Linq to SQL, я уж не говорю про Entity Framework?

Про вещи типа MEF и ASP.NET MVC (ну да, ну да, это не framework, но Microsoft и с очень большой долей вероятности войдет во framework в будущем) я и не вспоминаю...
Re[21]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 04.12.08 15:22
Оценка:
Здравствуйте, vlad_gri, Вы писали:

G>>

G>>Библиоте́ка визуа́льных компоне́нтов (англ. Visual Component Library, VCL) — объектно-ориентированная библиотека для разработки программного обеспечения, разработанная компанией «Borland» для поддержки принципов визуального программирования. VCL входит в комплект поставки «Delphi», «C++ Builder» и «Borland Developer Studio» и является, по сути, частью среды разработки, хотя разработка приложений этих средах возможна и без использования VCL. VCL представляет огромное количество готовых к использованию компонентов для работы в самых разных областях программирования, таких, например, как интерфейс пользователя (экранные формы и т. н. «контролы»), работа с базами данных, взаимодействие с операционной системой, программирование сетевых приложений и прочее.

_>Visual!!! Как ты себе представляешь визуальное программирование к примеру base64 или AES

AES примерно так же относится к Indy, как и к VCL. ;]
Re[27]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.12.08 15:24
Оценка:
Здравствуйте, vlad_gri, Вы писали:

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



G>>Уже обратил, набрал URL http://www.e-delos.com/Delos.Pro.htm и увидел тоже самое что и здесь.

G>>Получается что все это не нужно.
_>То есть про кэширование и алиасы слышим впервые.

По первому урлу отдается статический файл, а по второму — динамика.

_>Ну да ладно written in WebSnap

Да уж. Лучше бы сайт статикой делали.
Заголовки подозрительное разные отдаются на этот сайт и два предыдущих.

Да и вообще не очень понятно зачем делать статический сайт на Delphi, в нем разве есть средства редактирования HTML?
Re[24]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 04.12.08 15:26
Оценка:
Здравствуйте, gandjustas, Вы писали:

_>>>>Кто говорил про Explorer. Turbo Delphi Professional Edition;

G>>>Дороже студии Standard, причем в студии не один язык, а несколько.
_>>339$ конечно дороже 550$
G>У меня другие цены: 400; для студии против 439$ для делфи.
G>Даже если студия дороже, то возможностей там больше.

Это точно. Достаточно вспомнить, что VS это далеко не только примитивный редактор кода и формочек... Про удобство VS+Resharper Delphi только мечтать...

P.S. Нашел вчера как прикрутить intellisense для jquery в VS...
Re[28]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 04.12.08 15:27
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Да и вообще не очень понятно зачем делать статический сайт на Delphi, в нем разве есть средства редактирования HTML?

Редактировать HTML можно и в блокноте.
Re[25]: Delphi 2009 vs C# 3.0
От: vlad_gri  
Дата: 04.12.08 16:34
Оценка:
Здравствуйте, kuj, Вы писали:

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


_>>>>>Кто говорил про Explorer. Turbo Delphi Professional Edition;

G>>>>Дороже студии Standard, причем в студии не один язык, а несколько.
_>>>339$ конечно дороже 550$
G>>У меня другие цены: 400; для студии против 439$ для делфи.
G>>Даже если студия дороже, то возможностей там больше.

kuj>Это точно. Достаточно вспомнить, что VS это далеко не только примитивный редактор кода и формочек... Про удобство VS+Resharper Delphi только мечтать...

А кто сказал что VS плохо.
Resharper добавляет к начальной цене VS еще 350$.

kuj>P.S. Нашел вчера как прикрутить intellisense для jquery в VS...

Рад за тебя.
Re[14]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 04.12.08 19:54
Оценка:
Здравствуйте, _d_m_, Вы писали:

A>>Была задача: написать сканер почтового ящика. В дельфи идут штатно компоненты для работы с POP3 и IMAP4. В фреймворке же их не было и нет. Причём MS даже не хочет их туда добавить.


___>А нет там компонентов для работы с посудомоечной машиной? А то в MS тоже не хотят добавлять.


Вопрос не в том, что там есть вообще, а в том, есть ли что-то нужное для решения КОНКРЕНТНОЙ задачи в конкретное время. У меня были задачи, которые на .NET решались очень плохо. И в то же время, были вещи, которые в дельфи лучше было не делать. Инструмент выбирается под задачу. Just Business
Re[15]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.12.08 20:32
Оценка:
Здравствуйте, Antoshka, Вы писали:

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


A>>>Была задача: написать сканер почтового ящика. В дельфи идут штатно компоненты для работы с POP3 и IMAP4. В фреймворке же их не было и нет. Причём MS даже не хочет их туда добавить.


___>>А нет там компонентов для работы с посудомоечной машиной? А то в MS тоже не хотят добавлять.


A>Вопрос не в том, что там есть вообще, а в том, есть ли что-то нужное для решения КОНКРЕНТНОЙ задачи в конкретное время.

И вы готовы писать Enterprise систему на делфи потому что в нем есть POP3, а в .NET нету?
Фреймворки ценятся не способностью решать КОНКРЕНТНЫЕ задачи в конкретное время, а покрытием типовых задач и простотой использования компонент. .NET по этим параметрам на 2 головы выше.

A>У меня были задачи, которые на .NET решались очень плохо.

По сравнению с делфи? Не верю!
Разве что какой-то компонент, который есть в делфи и нет в FW, но гуглится аналог за 5 минут.

A>И в то же время, были вещи, которые в дельфи лучше было не делать. Инструмент выбирается под задачу. Just Business

Задачи обычно гораздо шире, чем получение почты по POP3. Для всех (99.99%) задач .NET подходит гораздо лучше делфи.
Re[26]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.12.08 07:27
Оценка:
Здравствуйте, vlad_gri, Вы писали:

kuj>>Это точно. Достаточно вспомнить, что VS это далеко не только примитивный редактор кода и формочек... Про удобство VS+Resharper Delphi только мечтать...

_>А кто сказал что VS плохо.
_>Resharper добавляет к начальной цене VS еще 350$.
И что? Это копейки. ;>
Re[15]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.12.08 07:28
Оценка:
Здравствуйте, Antoshka, Вы писали:

A>>>Была задача: написать сканер почтового ящика. В дельфи идут штатно компоненты для работы с POP3 и IMAP4. В фреймворке же их не было и нет. Причём MS даже не хочет их туда добавить.


___>>А нет там компонентов для работы с посудомоечной машиной? А то в MS тоже не хотят добавлять.


A>Вопрос не в том, что там есть вообще, а в том, есть ли что-то нужное для решения КОНКРЕНТНОЙ задачи в конкретное время. У меня были задачи, которые на .NET решались очень плохо. И в то же время, были вещи, которые в дельфи лучше было не делать. Инструмент выбирается под задачу. Just Business


Ну ка, поведай нам какие-такие задачи плохо решаются на .NET и хорошо — на делфи?

Я бы еще понял, если бы речь шла о C++, но Delphi..
Re[27]: Delphi 2009 vs C# 3.0
От: vlad_gri  
Дата: 05.12.08 18:23
Оценка:
Здравствуйте, kuj, Вы писали:

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


kuj>>>Это точно. Достаточно вспомнить, что VS это далеко не только примитивный редактор кода и формочек... Про удобство VS+Resharper Delphi только мечтать...

_>>А кто сказал что VS плохо.
_>>Resharper добавляет к начальной цене VS еще 350$.
kuj>И что? Это копейки. ;>

Это как бы на

>>От: gandjustas
>>Дата: 04.12.08 14:22
>>Здравствуйте, vlad_gri, Вы писали:

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

>>_>>>TurboDelphi?
>>G>>На которую те самые сторонние компоненты не ставятся.
>>_>Кто говорил про Explorer. Turbo Delphi Professional Edition;
>>Дороже студии Standard, причем в студии не один язык, а несколько.


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

>>...
>>Я бы еще понял, если бы речь шла о C++, но Delphi..
Если .NET еще чем то похож по концепции на Delphi то каким боком сюда приплетать C++ (...?)

От: gandjustas
Дата: 05.12.08 02:32
Здравствуйте, Antoshka, Вы писали:
По сравнению с делфи? Не верю!
Разве что какой-то компонент, который есть в делфи и нет в FW, но гуглится аналог за 5 минут.

т.е. после гугла .NET становится Delphi?

A>И в то же время, были вещи, которые в дельфи лучше было не делать. Инструмент выбирается под задачу. Just Business
Задачи обычно гораздо шире, чем получение почты по POP3. Для всех (99.99%) задач .NET подходит гораздо лучше делфи.

Это субъективное мнение. Для меня "Для всех (99.99%) задач Delphi подходит гораздо лучше .NET." в том числе и в Enterprise задачах. Единственное что, я (для себя) не приемлю в Delphi, это простой алгоритм обвертывать в компонент, когда для этого достаточно класса или процедуры(функции).
C++ и С я принимаю и использую в исключительных случаях. .NET это конечно классно, модно но, это Visual Basic с расширенной VCL,NVCL и GC, все остальное от лукавого.
Re[28]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 05.12.08 19:03
Оценка:
Здравствуйте, vlad_gri, Вы писали:

_>

_>От: gandjustas
_>Дата: 05.12.08 02:32
_>Здравствуйте, Antoshka, Вы писали:
_>По сравнению с делфи? Не верю!
_>Разве что какой-то компонент, который есть в делфи и нет в FW, но гуглится аналог за 5 минут.

_>т.е. после гугла .NET становится Delphi?
Нет, ибо после гугла Delphi не станет .NET

_>

A>>И в то же время, были вещи, которые в дельфи лучше было не делать. Инструмент выбирается под задачу. Just Business
_>Задачи обычно гораздо шире, чем получение почты по POP3. Для всех (99.99%) задач .NET подходит гораздо лучше делфи.


_>Это субъективное мнение.

Это объективная реальность.

_>Для меня "Для всех (99.99%) задач Delphi подходит гораздо лучше .NET." в том числе и в Enterprise задачах.

Ели не хотите вступать в аргументированный спор, то лучше свое мнение и не писать.

_>Единственное что, я (для себя) не приемлю в Delphi, это простой алгоритм обвертывать в компонент, когда для этого достаточно класса или процедуры(функции).

А кроме делфи другие языки видели?

_>C++ и С я принимаю и использую в исключительных случаях. .NET это конечно классно, модно но, это Visual Basic с расширенной VCL,NVCL и GC, все остальное от лукавого.

Моя плакать... Как глубоки ваши познания в .NET? Вы его вообще в глаза видели?

Мне кажется что большенство защитников Delphi в темах Delphi vs .NET ничего кроме делфи не знают.
Re[28]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.12.08 20:53
Оценка:
Здравствуйте, vlad_gri, Вы писали:

_>Это субъективное мнение. Для меня "Для всех (99.99%) задач Delphi подходит гораздо лучше .NET." в том числе и в Enterprise задачах. Единственное что, я (для себя)


Ты подписался и расписался в вопиющей некомпетентности. Мальчик, прежде чем спорить со взрослыми дядьками изучи предмет спора.
Re[29]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 05.12.08 20:54
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Мне кажется что большенство защитников Delphi в темах Delphi vs .NET ничего кроме делфи не знают.


Более чем уверен, что данный экземпляр и Delphi не знает.
Re[30]: Delphi 2009 vs C# 3.0
От: vlad_gri  
Дата: 06.12.08 02:15
Оценка:

От: gandjustas
Дата: 06.12.08 01:03
_>Для меня "Для всех (99.99%) задач Delphi подходит гораздо лучше .NET." в том числе и в Enterprise задачах.
Ели не хотите вступать в аргументированный спор, то лучше свое мнение и не писать.

Перечисляю аргументы которыми вы меня убедили отказаться от Delphi в пользу .NET.

g... только в Enterprise версии, которая дороже Pro студии, а по функционалу слабее.
g... Цену самой среды это никак не уменьшает.
g... На которую те самые сторонние компоненты не ставятся.
g... Дороже студии Standard, причем в студии не один язык, а несколько.
g... Даже если студия дороже, то возможностей там больше.
k... Это точно. Достаточно вспомнить, что VS это далеко не только примитивный редактор кода и формочек... Про удобство VS+Resharper Delphi только мечтать...
k.. И что? Это копейки. ;>


g... Для всех (99.99%) задач .NET подходит гораздо лучше делфи.
k... Я бы еще понял, если бы речь шла о C++, но Delphi..
g.. Это объективная реальность.
k.. Ты подписался и расписался в вопиющей некомпетентности. Мальчик, прежде чем спорить со взрослыми дядьками изучи предмет спора.


G>>Мне кажется что большенство защитников Delphi в темах Delphi vs .NET ничего кроме делфи не знают.
kuj>Более чем уверен, что данный экземпляр и Delphi не знает.


Все убедили!!!!
Re[31]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 06.12.08 18:44
Оценка:
Здравствуйте, vlad_gri, Вы писали:

_>Все убедили!!!!


"_>Это субъективное мнение. Для меня "Для всех (99.99%) задач Delphi подходит гораздо лучше .NET." в том числе и в Enterprise задачах. Единственное что, я (для себя) "



Пиши еще мальчик.
Re[20]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 06.12.08 20:17
Оценка:
Здравствуйте, squid, Вы писали:

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


S>>http://www.vniitf.ru/


S>меня одного пугает сочетание "Российский Федеральный Ядерный Центр" и "имени Забабахина"?

На баше была уже такая шутка

S>а вообще, может они утечки боятся. если там какие-то ядерные секреты, отсутствие доступа в инет может быть обосновано.


Естественно, режимные ограничения имеют место. С рабочего места как бы и правда нельзя. Но то что существуют проблемы выхода в интернет из специально отведенных мест — это не режимные а организационные траблы. Дома ведь сотрудникам института никто не запрещает в интернет ходить. Только вот ходить в интернет по рабочим вопросам из дома — дороговато (2.30р за мегабайт).

Пугает в этой ситуации именно то, что сотрудники вынуждены работать в информационном вакууме. Можно смело догадываться, о характере большинства защит научных работ... Защищает, допустим человек кандидатскую степень с грифом "секретно", а буквально его работа задается в качестве домашнего задания на неделю студентам 2-го курса где-нибудь в Киеве.
Отсутствие доступа к общедоступной информации помноженное на режимные меры — страшное дело.
Re[21]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 07.12.08 08:25
Оценка:
Здравствуйте, samius, Вы писали:


S>>>http://www.vniitf.ru/


S>>меня одного пугает сочетание "Российский Федеральный Ядерный Центр" и "имени Забабахина"?

S>На баше была уже такая шутка

S>>а вообще, может они утечки боятся. если там какие-то ядерные секреты, отсутствие доступа в инет может быть обосновано.


S>Естественно, режимные ограничения имеют место. С рабочего места как бы и правда нельзя. Но то что существуют проблемы выхода в интернет из специально отведенных мест — это не режимные а организационные траблы. Дома ведь сотрудникам института никто не запрещает в интернет ходить. Только вот ходить в интернет по рабочим вопросам из дома — дороговато (2.30р за мегабайт).


Неужто даже спутникового дешевого нет?.. Вот вам и минус гигантской территории РФ.
Re[22]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 07.12.08 08:44
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>Неужто даже спутникового дешевого нет?.. Вот вам и минус гигантской территории РФ.

Спутниковый есть, но далеко не каждый будет с ним заморачиваться. Массово им не пользуются.
Re[23]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 07.12.08 09:18
Оценка:
Здравствуйте, samius, Вы писали:

kuj>>Неужто даже спутникового дешевого нет?.. Вот вам и минус гигантской территории РФ.

S>Спутниковый есть, но далеко не каждый будет с ним заморачиваться. Массово им не пользуются.

Что значит "заморачиваться"? Один канал на отдел хватило бы за глаза.
Re[24]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 07.12.08 10:11
Оценка:
Здравствуйте, kuj, Вы писали:

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


kuj>>>Неужто даже спутникового дешевого нет?.. Вот вам и минус гигантской территории РФ.

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

kuj>Что значит "заморачиваться"? Один канал на отдел хватило бы за глаза.

По части доступа в интернет из института я за институт отвечать не буду, я в нем уже несколько лет не работаю, описал (выше) лишь фактическое положение вещей. Однако, институтских каналов хватает на многое, институт является одним из немногих провайдеров интернета в городе. Полагаю лишь что руководство института регулярный доступ в интернет не считает серьезной необходимостью, либо считает это дорогим удовольствием. Ввод/вывод информации в локальные сети института ограничен режимными требованиями. Потому даже передача в локальные сети выкачанной из интернета информации, с компьютеров, имеющих доступ в интернет, требует серьезных (людских и временных) ресурсов.

В общем, извиняюсь, но не сильно-то хочется обсуждать режимные требования, надеюсь, поймете, почему. Пример привел к тому, что не у всех программистов есть доступ в интернет с рабочего места (ни то что диалапа). Опять же не хотелось бы обсуждать уровень таких программеров (всякие есть, но в среднем, оставляет желать лучшего). Т.е. по факту — людям платят деньги за работу программистами, доступа в интернет нет и не будет.
Re[16]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 08.12.08 04:50
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


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


A>>>>Была задача: написать сканер почтового ящика. В дельфи идут штатно компоненты для работы с POP3 и IMAP4. В фреймворке же их не было и нет. Причём MS даже не хочет их туда добавить.


___>>>А нет там компонентов для работы с посудомоечной машиной? А то в MS тоже не хотят добавлять.


A>>Вопрос не в том, что там есть вообще, а в том, есть ли что-то нужное для решения КОНКРЕНТНОЙ задачи в конкретное время.

G>И вы готовы писать Enterprise систему на делфи потому что в нем есть POP3, а в .NET нету?

Так ведь пишутся И работают. И продаются.

G>Фреймворки ценятся не способностью решать КОНКРЕНТНЫЕ задачи в конкретное время, а покрытием типовых задач и простотой использования компонент. .NET по этим параметрам на 2 головы выше.


Всё дело в размере головы. Какие такие несравненные плюсы, окромя WPF (здесь я честно ставлю дельфи жирный минус), есть у .NET для разработки толстого клиента?

A>>И в то же время, были вещи, которые в дельфи лучше было не делать. Инструмент выбирается под задачу. Just Business

G>Задачи обычно гораздо шире, чем получение почты по POP3. Для всех (99.99%) задач .NET подходит гораздо лучше делфи.

Задачи ровно те, которые ставит перед командой заказчик. Наши внутренние измышления о задачах заказчику монопенисуальны. Ему важен результат. А вот здесь у .NET нет никакого существенного преимущества перед остальными системами программирования.
Re[17]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 08.12.08 06:14
Оценка:
Здравствуйте, Antoshka, Вы писали:

A>>>Вопрос не в том, что там есть вообще, а в том, есть ли что-то нужное для решения КОНКРЕНТНОЙ задачи в конкретное время.

G>>И вы готовы писать Enterprise систему на делфи потому что в нем есть POP3, а в .NET нету?
A>Так ведь пишутся И работают. И продаются.
Круто, в чем заслуга делфи?
Я уверен что подобного уровня системы на .NET пишутся проще.

G>>Фреймворки ценятся не способностью решать КОНКРЕНТНЫЕ задачи в конкретное время, а покрытием типовых задач и простотой использования компонент. .NET по этим параметрам на 2 головы выше.

A>Всё дело в размере головы. Какие такие несравненные плюсы, окромя WPF (здесь я честно ставлю дельфи жирный минус), есть у .NET для разработки толстого клиента?
Тогда лучше рассмотреть что вообще есть для Enterprise разработки, считаем:
1)ORM — Linq 2 SQL, EF
2)Сервисы WCF — в делфи ничего даже отдаленно похожего нету
3)ADO.NET Data Services
4)IoC контейнер, не в состеве .NET, но есть написанные и поддерживемые MS, с AOP и другими страшными TLA
5)Workflow Foundation — при правильном использовании очень хорошая вещь
6)Библиотеки unit-тестирования, как от MS, так и сторонние. Все отлично интегрируются со студией и build-системами
7)Для интерфейсов — WPF. Даже при использовании WinForms есть Binding и не нужно разделение на Data aware и обычные контролы
8)На .NET можно писать процедуры и функции, которые будут исполняться внутри MS SQL Server
Это уже не говоря о разработки для мобильных устройств и веба. У делфи с этим вообще жопа.

Что вам из этого надо для разработки тостого клиента?

Кроме того .NET — не один язык, а множество. Если хотите, то можете писать на C#, VB, Nemerle, F#.


A>>>И в то же время, были вещи, которые в дельфи лучше было не делать. Инструмент выбирается под задачу. Just Business

G>>Задачи обычно гораздо шире, чем получение почты по POP3. Для всех (99.99%) задач .NET подходит гораздо лучше делфи.

A>Задачи ровно те, которые ставит перед командой заказчик. Наши внутренние измышления о задачах заказчику монопенисуальны. Ему важен результат. А вот здесь у .NET нет никакого существенного преимущества перед остальными системами программирования.

Спасибо, поржал.

Если интересно скачайте прокект Dinner Now, система от MS, которая показывает многие возможности в .NET 3.5. Потом посмотрите сможете ли повторить такое на делфи. Хотябы серверную часть.

ЗЫ. При наличии Mono .NET даже частично кроссплатформенно получается.
Re[18]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 08.12.08 07:39
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>>>И вы готовы писать Enterprise систему на делфи потому что в нем есть POP3, а в .NET нету?

A>>Так ведь пишутся И работают. И продаются.
G>Круто, в чем заслуга делфи?

В том, что система создана, удовлетворяет заказчика и продаётся. Что не так?

G>Я уверен что подобного уровня системы на .NET пишутся проще.


"Я уверен, что проще" — не катит за аргумент. Факты в студию.

G>Тогда лучше рассмотреть что вообще есть для Enterprise разработки, считаем:

G>1)ORM — Linq 2 SQL, EF

Linq — не пришей кобыле хвост. EF не знаю, не смотрел.

G>2)Сервисы WCF — в делфи ничего даже отдаленно похожего нету


Нафига они нужны в двухзвенке: СУБД + толстый клиент?
[лирика] У некоторых наших партнёров-монополистов так были сделаны веб-сервисы, то лучше бы они вообще этого не делали, пользовались бы чистым Http. Даже дотнет не жрал их реализацию, пришлось вместо веб-сервисов делать прямые xml+http-запросы к их системам. [/лирика]

G>3)ADO.NET Data Services


EF не знаю, не смотрел.

G>4)IoC контейнер, не в состеве .NET, но есть написанные и поддерживемые MS, с AOP и другими страшными TLA


я тоже знаю много страшных слов. И что?

G>5)Workflow Foundation — при правильном использовании очень хорошая вещь


А зачем? Где её реальное применение в корпоративных системах массовой обработки данных?

G>6)Библиотеки unit-тестирования, как от MS, так и сторонние. Все отлично интегрируются со студией и build-системами


согласен, удобно. Но можно и без них, особенно если логика в хранимых процедурах.

G>7)Для интерфейсов — WPF. Даже при использовании WinForms есть Binding и не нужно разделение на Data aware и обычные контролы


согласен на все 100%

G>8)На .NET можно писать процедуры и функции, которые будут исполняться внутри MS SQL Server


используем. Здесь, как говорится, by design.

G>Это уже не говоря о разработки для мобильных устройств и веба. У делфи с этим вообще жопа.


А зачем это всё нужно в двузвенных корпоративных системах массовой обработки данных??

G>Что вам из этого надо для разработки тостого клиента?


Ничего

G>Кроме того .NET — не один язык, а множество. Если хотите, то можете писать на C#, VB, Nemerle, F#.


Я плакалъ

A>>Задачи ровно те, которые ставит перед командой заказчик. Наши внутренние измышления о задачах заказчику монопенисуальны. Ему важен результат. А вот здесь у .NET нет никакого существенного преимущества перед остальными системами программирования.

G>Спасибо, поржал.

И?

G>Если интересно скачайте прокект Dinner Now, система от MS, которая показывает многие возможности в .NET 3.5. Потом посмотрите сможете ли повторить такое на делфи. Хотябы серверную часть.


Зачем? У меня свои задачи, я их спокойно решаю на дельфи. Если будут задачи, где с нетом проще — буду использовать .NET

G>ЗЫ. При наличии Mono .NET даже частично кроссплатформенно получается.


Не интересует. Даже близко.


Что в итоге? Да, в .NET есть много интересного. Но мало такого, без чего невозможно жить. MS Office тому пример. Уже лет шесть прошло с момента выхода .NET, а флагманский продукт MS не спешит его использовать. А зачем тогда остальным просто так переходить?
Re[19]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 08.12.08 08:12
Оценка:
Здравствуйте, Antoshka, Вы писали:

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


G>>>>И вы готовы писать Enterprise систему на делфи потому что в нем есть POP3, а в .NET нету?

A>>>Так ведь пишутся И работают. И продаются.
G>>Круто, в чем заслуга делфи?
A>В том, что система создана, удовлетворяет заказчика и продаётся. Что не так?
Это никак не заслуга среды\языка и прочих технических факторов.
Это в первую очередь заслуга тех кто продает и пиарит.
Во вторую очередь это заслуга самих программистов.
От языка и платформы тут мало зависит.

G>>Я уверен что подобного уровня системы на .NET пишутся проще.

A>"Я уверен, что проще" — не катит за аргумент. Факты в студию.
Преимущества .NET я ужде привел. Если вы не можете или не хотите использовать эти преимущества, это не проблема .NET.
Кроме того на .NET можно вести разработку используя бесплатные инструменты, делфи без платной среды не откомпилируешь даже.

G>>Тогда лучше рассмотреть что вообще есть для Enterprise разработки, считаем:

G>>1)ORM — Linq 2 SQL, EF
A>Linq — не пришей кобыле хвост. EF не знаю, не смотрел.
Так наверное стоит посмотреть. Что подобное есть в делфи?

G>>2)Сервисы WCF — в делфи ничего даже отдаленно похожего нету

A>Нафига они нужны в двухзвенке: СУБД + толстый клиент?

G>>Это уже не говоря о разработки для мобильных устройств и веба. У делфи с этим вообще жопа.

A>А зачем это всё нужно в двузвенных корпоративных системах массовой обработки данных??
Я же писал что рассматриваем фичи для Enterprise, в разных программах могут потребоваться разные возможности.

A>[лирика] У некоторых наших партнёров-монополистов так были сделаны веб-сервисы, то лучше бы они вообще этого не делали, пользовались бы чистым Http. Даже дотнет не жрал их реализацию, пришлось вместо веб-сервисов делать прямые xml+http-запросы к их системам. [/лирика]

Это проблема тех кто пишет сервисы.

G>>3)ADO.NET Data Services

A>EF не знаю, не смотрел.

G>>4)IoC контейнер, не в состеве .NET, но есть написанные и поддерживемые MS, с AOP и другими страшными TLA

A>я тоже знаю много страшных слов. И что?

G>>5)Workflow Foundation — при правильном использовании очень хорошая вещь

A>А зачем? Где её реальное применение в корпоративных системах массовой обработки данных?
Наверное стоит посмотреть на все эти технологии перед тем как писать свое мнение.


G>>6)Библиотеки unit-тестирования, как от MS, так и сторонние. Все отлично интегрируются со студией и build-системами

A>согласен, удобно. Но можно и без них, особенно если логика в хранимых процедурах.
В database Edition студии можно Unit-тесты для БД писать.

G>>7)Для интерфейсов — WPF. Даже при использовании WinForms есть Binding и не нужно разделение на Data aware и обычные контролы

A>согласен на все 100%

G>>8)На .NET можно писать процедуры и функции, которые будут исполняться внутри MS SQL Server

A>используем. Здесь, как говорится, by design.

G>>Что вам из этого надо для разработки тостого клиента?

A>Ничего
В свете выделенного выше очень интересна последняя фраза.

G>>Кроме того .NET — не один язык, а множество. Если хотите, то можете писать на C#, VB, Nemerle, F#.

A>Я плакалъ
И?

G>>Если интересно скачайте прокект Dinner Now, система от MS, которая показывает многие возможности в .NET 3.5. Потом посмотрите сможете ли повторить такое на делфи. Хотябы серверную часть.

A>Зачем? У меня свои задачи, я их спокойно решаю на дельфи. Если будут задачи, где с нетом проще — буду использовать .NET

G>>ЗЫ. При наличии Mono .NET даже частично кроссплатформенно получается.

A>Не интересует. Даже близко.

Вы демонстрируете потрясающий пример парадокса Блаба
Автор(ы): Чистяков Влад (VladD2)
Дата: 03.03.2007
Язык программирования Nemerle заинтересовал многих в первую очередь своей мощнейшей подсистемой мак-росов. Однако и без них Nemerle предоставляет ряд су-щественных улучшений по сравнению с традиционными, императивными языками программирования (такими как Java, C# и C++).
Nemerle, кроме традиционного императивного програм-мирования, поддерживает функциональное программи-рование. Это выражается в наличии конструкций, упро-щающих манипуляцию функциями, построение и анализ сложных структур данных и т.п.
К сожалению, если вы не использовали возможности, присущие функциональным языкам ранее, то вам будет трудно оценить, насколько Nemerle может оказаться вам полезным в реальной повседневной работе. Данная статья призвана в неформальной форме продемонс-трировать это.
, только не в плане языков, а в плане технологий.
Вы смотрите на все технологии через призму задач, которые вами решались в той программе которую пишите. Даже более того, вы еще ограничиваете себя деталями реализации. Поэтому все фичи вам кажутся неужными и бесполезными. При этом вы свое мнение экстраполируете на всю разработку.


A>Что в итоге? Да, в .NET есть много интересного. Но мало такого, без чего невозможно жить.

А какой смысл использовать не самые мощные средства разработки?
Разве что чтобы пиписька длиннее была.

A>MS Office тому пример. Уже лет шесть прошло с момента выхода .NET, а флагманский продукт MS не спешит его использовать.

Да ну?
Офис 2007 отлично хостит внутри себя CLR, а также можно писать расширеня на .NET.
Интероп с самой первой версии был.

A>А зачем тогда остальным просто так переходить?

А зачем не переходить?
Если вы имеете ввиду все переписать на .NET, то этого не стоит делать — невыгодно. А начинать новые проекты имеет смысл на .NET.
Re[20]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 08.12.08 12:04
Оценка:
Здравствуйте, gandjustas, Вы писали:

A>>>>Так ведь пишутся И работают. И продаются.

G>>>Круто, в чем заслуга делфи?
A>>В том, что система создана, удовлетворяет заказчика и продаётся. Что не так?
G>Это никак не заслуга среды\языка и прочих технических факторов.
G>Это в первую очередь заслуга тех кто продает и пиарит.
G>Во вторую очередь это заслуга самих программистов.
G>От языка и платформы тут мало зависит.

Я и говорил, что инструмент — он вторичен.

A>>"Я уверен, что проще" — не катит за аргумент. Факты в студию.

G>Преимущества .NET я ужде привел. Если вы не можете или не хотите использовать эти преимущества, это не проблема .NET.
G>Кроме того на .NET можно вести разработку используя бесплатные инструменты, делфи без платной среды не откомпилируешь даже.

G>>>Тогда лучше рассмотреть что вообще есть для Enterprise разработки, считаем:

G>>>1)ORM — Linq 2 SQL, EF
A>>Linq — не пришей кобыле хвост. EF не знаю, не смотрел.
G>Так наверное стоит посмотреть. Что подобное есть в делфи?

Наверное стоит, да вот смотреть особо негде. Реальных примеров нет. А hello world'ами я уже сыт по горло.

G>>>Это уже не говоря о разработки для мобильных устройств и веба. У делфи с этим вообще жопа.

A>>А зачем это всё нужно в двузвенных корпоративных системах массовой обработки данных??
G>Я же писал что рассматриваем фичи для Enterprise, в разных программах могут потребоваться разные возможности.

Согласен. Но! Часто в этот класс суют задачи, не имеющие отнешения к Enterprise как таковому. А те, которые действительно касаются предприятий и бизнеса, они и без всего перечисленного неплохо решаются.

A>>[лирика] У некоторых наших партнёров-монополистов так были сделаны веб-сервисы, то лучше бы они вообще этого не делали, пользовались бы чистым Http. Даже дотнет не жрал их реализацию, пришлось вместо веб-сервисов делать прямые xml+http-запросы к их системам. [/лирика]

G>Это проблема тех кто пишет сервисы.

К сожалению, это проблема тех, кто их использует.

G>>>3)ADO.NET Data Services

G>>>4)IoC контейнер, не в состеве .NET, но есть написанные и поддерживемые MS, с AOP и другими страшными TLA
G>>>5)Workflow Foundation — при правильном использовании очень хорошая вещь
A>>А зачем? Где её реальное применение в корпоративных системах массовой обработки данных?
G>Наверное стоит посмотреть на все эти технологии перед тем как писать свое мнение.

Некогда. Т.е., я бы рад их посмотреть. Но, как говорится "в деле". Ради этого даже время бы нашёл. Примеры из MSDN — как-то неубедительно.

G>>>6)Библиотеки unit-тестирования, как от MS, так и сторонние. Все отлично интегрируются со студией и build-системами

A>>согласен, удобно. Но можно и без них, особенно если логика в хранимых процедурах.
G>В database Edition студии можно Unit-тесты для БД писать.

Цену огласите всех нужных редакций студии.

G>>>7)Для интерфейсов — WPF. Даже при использовании WinForms есть Binding и не нужно разделение на Data aware и обычные контролы

A>>согласен на все 100%
G>>>8)На .NET можно писать процедуры и функции, которые будут исполняться внутри MS SQL Server
A>>используем. Здесь, как говорится, by design.
G>>>Что вам из этого надо для разработки тостого клиента?
A>>Ничего
G>В свете выделенного выше очень интересна последняя фраза.

Ничто не мешает это делать на дельфи. Для CLR-объектов MSSQL можно юзать бесплатный .NET.

G>>>Кроме того .NET — не один язык, а множество. Если хотите, то можете писать на C#, VB, Nemerle, F#.

A>>Я плакалъ
G>И?

Какие глобальные отличия C# от VB, чтобы считать это мультиязыковостью? Остальное, похоже, из лабораторной практики ещё не вышло.

G>>>ЗЫ. При наличии Mono .NET даже частично кроссплатформенно получается.

A>>Не интересует. Даже близко.

G>Вы демонстрируете потрясающий пример парадокса Блаба
Автор(ы): Чистяков Влад (VladD2)
Дата: 03.03.2007
Язык программирования Nemerle заинтересовал многих в первую очередь своей мощнейшей подсистемой мак-росов. Однако и без них Nemerle предоставляет ряд су-щественных улучшений по сравнению с традиционными, императивными языками программирования (такими как Java, C# и C++).
Nemerle, кроме традиционного императивного програм-мирования, поддерживает функциональное программи-рование. Это выражается в наличии конструкций, упро-щающих манипуляцию функциями, построение и анализ сложных структур данных и т.п.
К сожалению, если вы не использовали возможности, присущие функциональным языкам ранее, то вам будет трудно оценить, насколько Nemerle может оказаться вам полезным в реальной повседневной работе. Данная статья призвана в неформальной форме продемонс-трировать это.
, только не в плане языков, а в плане технологий.


Не спорю

G>Вы смотрите на все технологии через призму задач, которые вами решались в той программе которую пишите. Даже более того, вы еще ограничиваете себя деталями реализации. Поэтому все фичи вам кажутся неужными и бесполезными. При этом вы свое мнение экстраполируете на всю разработку.


Если смотреть на всю разработку, то всем языкам до c/c++ как до Луны. Естественно, я смотрю только свою разработку, и разработку своих соседей. За всех пусть говорят маркетологи и им подобные пустомели.

A>>Что в итоге? Да, в .NET есть много интересного. Но мало такого, без чего невозможно жить.

G>А какой смысл использовать не самые мощные средства разработки?
G>Разве что чтобы пиписька длиннее была.

Да хотя бы в цене и в тоннах унаследованного кода.

A>>MS Office тому пример. Уже лет шесть прошло с момента выхода .NET, а флагманский продукт MS не спешит его использовать.

G>Да ну?
G>Офис 2007 отлично хостит внутри себя CLR, а также можно писать расширеня на .NET.
G>Интероп с самой первой версии был.

Вот когда он целиком от А до Я будет написан на .NET, тогда я поверю, что это .NET-продукт. Хосты и интеропы — это костыли, удобные в некоторых случаях.

A>>А зачем тогда остальным просто так переходить?

G>А зачем не переходить?
G>Если вы имеете ввиду все переписать на .NET, то этого не стоит делать — невыгодно. А начинать новые проекты имеет смысл на .NET.

Согласен. Но не везде есть новые проекты. Гораздо чаще суппорт или создание новой версии на основе предыдущих.
Re[21]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 08.12.08 13:13
Оценка:
Здравствуйте, Antoshka, Вы писали:

G>>>>Тогда лучше рассмотреть что вообще есть для Enterprise разработки, считаем:

G>>>>1)ORM — Linq 2 SQL, EF
A>>>Linq — не пришей кобыле хвост. EF не знаю, не смотрел.
G>>Так наверное стоит посмотреть. Что подобное есть в делфи?
A>Наверное стоит, да вот смотреть особо негде. Реальных примеров нет. А hello world'ами я уже сыт по горло.
Гугл.

A>>>[лирика] У некоторых наших партнёров-монополистов так были сделаны веб-сервисы, то лучше бы они вообще этого не делали, пользовались бы чистым Http. Даже дотнет не жрал их реализацию, пришлось вместо веб-сервисов делать прямые xml+http-запросы к их системам. [/лирика]

G>>Это проблема тех кто пишет сервисы.
A>К сожалению, это проблема тех, кто их использует.
нет, как раз тех кто пишет.
Вы можете написать свой сервис на известном только вам протоколе, это будут ваши проблемы.


G>>>>3)ADO.NET Data Services

G>>>>4)IoC контейнер, не в состеве .NET, но есть написанные и поддерживемые MS, с AOP и другими страшными TLA
G>>>>5)Workflow Foundation — при правильном использовании очень хорошая вещь
A>>>А зачем? Где её реальное применение в корпоративных системах массовой обработки данных?
G>>Наверное стоит посмотреть на все эти технологии перед тем как писать свое мнение.
A>Некогда. Т.е., я бы рад их посмотреть. Но, как говорится "в деле". Ради этого даже время бы нашёл. Примеры из MSDN — как-то неубедительно.
Гугл.

G>>>>6)Библиотеки unit-тестирования, как от MS, так и сторонние. Все отлично интегрируются со студией и build-системами

A>>>согласен, удобно. Но можно и без них, особенно если логика в хранимых процедурах.
G>>В database Edition студии можно Unit-тесты для БД писать.
A>Цену огласите всех нужных редакций студии.
Примерно как две делфи Enterprise.

G>>>>Кроме того .NET — не один язык, а множество. Если хотите, то можете писать на C#, VB, Nemerle, F#.

A>>>Я плакалъ
G>>И?

A>Какие глобальные отличия C# от VB, чтобы считать это мультиязыковостью? Остальное, похоже, из лабораторной практики ещё не вышло.

Гугл.
Можно еще вспомнить про поддержку динамических языков.

G>>>>ЗЫ. При наличии Mono .NET даже частично кроссплатформенно получается.

A>>>Не интересует. Даже близко.
G>>Вы демонстрируете потрясающий пример парадокса Блаба
Автор(ы): Чистяков Влад (VladD2)
Дата: 03.03.2007
Язык программирования Nemerle заинтересовал многих в первую очередь своей мощнейшей подсистемой мак-росов. Однако и без них Nemerle предоставляет ряд су-щественных улучшений по сравнению с традиционными, императивными языками программирования (такими как Java, C# и C++).
Nemerle, кроме традиционного императивного програм-мирования, поддерживает функциональное программи-рование. Это выражается в наличии конструкций, упро-щающих манипуляцию функциями, построение и анализ сложных структур данных и т.п.
К сожалению, если вы не использовали возможности, присущие функциональным языкам ранее, то вам будет трудно оценить, насколько Nemerle может оказаться вам полезным в реальной повседневной работе. Данная статья призвана в неформальной форме продемонс-трировать это.
, только не в плане языков, а в плане технологий.

A>Не спорю
Так о чем тогда спор?
Я верю что лично вы можете написать на дефли хорошую программу. Также я знаю что на .NET такую же программу можно написать проще.

G>>Вы смотрите на все технологии через призму задач, которые вами решались в той программе которую пишите. Даже более того, вы еще ограничиваете себя деталями реализации. Поэтому все фичи вам кажутся неужными и бесполезными. При этом вы свое мнение экстраполируете на всю разработку.

A>Если смотреть на всю разработку, то всем языкам до c/c++ как до Луны. Естественно, я смотрю только свою разработку, и разработку своих соседей. За всех пусть говорят маркетологи и им подобные пустомели.
А что же вы на c/c++ не пишите?

A>>>Что в итоге? Да, в .NET есть много интересного. Но мало такого, без чего невозможно жить.

G>>А какой смысл использовать не самые мощные средства разработки?
G>>Разве что чтобы пиписька длиннее была.
A>Да хотя бы в цене и в тоннах унаследованного кода.
В цене чего? На .NET разработка дешевле чем на делфи, вплоть до того что на .NET можно писать используя бесплатные инструменты.
Что касается унаследованного кода, то это называет поддержкой. Я говорю только о разработке.

A>>>MS Office тому пример. Уже лет шесть прошло с момента выхода .NET, а флагманский продукт MS не спешит его использовать.

G>>Да ну?
G>>Офис 2007 отлично хостит внутри себя CLR, а также можно писать расширеня на .NET.
G>>Интероп с самой первой версии был.
A>Вот когда он целиком от А до Я будет написан на .NET, тогда я поверю, что это .NET-продукт. Хосты и интеропы — это костыли, удобные в некоторых случаях.
А как же тонны унаследованного кода и цена?
Думаете каждая новая версия с нуля пишется?
Re[22]: Delphi 2009 vs C# 3.0
От: Antoshka  
Дата: 08.12.08 18:14
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>>>Вы демонстрируете потрясающий пример парадокса Блаба
Автор(ы): Чистяков Влад (VladD2)
Дата: 03.03.2007
Язык программирования Nemerle заинтересовал многих в первую очередь своей мощнейшей подсистемой мак-росов. Однако и без них Nemerle предоставляет ряд су-щественных улучшений по сравнению с традиционными, императивными языками программирования (такими как Java, C# и C++).
Nemerle, кроме традиционного императивного програм-мирования, поддерживает функциональное программи-рование. Это выражается в наличии конструкций, упро-щающих манипуляцию функциями, построение и анализ сложных структур данных и т.п.
К сожалению, если вы не использовали возможности, присущие функциональным языкам ранее, то вам будет трудно оценить, насколько Nemerle может оказаться вам полезным в реальной повседневной работе. Данная статья призвана в неформальной форме продемонс-трировать это.
, только не в плане языков, а в плане технологий.

A>>Не спорю
G>Так о чем тогда спор?
G>Я верю что лично вы можете написать на дефли хорошую программу. Также я знаю что на .NET такую же программу можно написать проще.

Так флейм же изначально. Про лучше никаких аргументов особых не прозвучало. (Названия технологий и т.п. — не в счёт). Вот если бы сказал, что две команды: А и Б — решали одинаковую задачу на разных системах. И достигли таких-то успехов, за такое-то время при оговоренном качестве. Тады ой. А так...

Ну да ладно, я не против .NET, сам на нём пишу кое-какие небольшние проекты. Просто там, где сейчас работаю, приходится работать над большим проектом, который на Дельфи. И там, оказывается, тоже всё можно. С другой стороны, хочется уже перейти на .NET, уж очень там некоторые вещи привлекают (где-то в самом конце треда о писал).
Re[23]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 08.12.08 20:55
Оценка:
Здравствуйте, Antoshka, Вы писали:

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


G>>>>Вы демонстрируете потрясающий пример парадокса Блаба
Автор(ы): Чистяков Влад (VladD2)
Дата: 03.03.2007
Язык программирования Nemerle заинтересовал многих в первую очередь своей мощнейшей подсистемой мак-росов. Однако и без них Nemerle предоставляет ряд су-щественных улучшений по сравнению с традиционными, императивными языками программирования (такими как Java, C# и C++).
Nemerle, кроме традиционного императивного програм-мирования, поддерживает функциональное программи-рование. Это выражается в наличии конструкций, упро-щающих манипуляцию функциями, построение и анализ сложных структур данных и т.п.
К сожалению, если вы не использовали возможности, присущие функциональным языкам ранее, то вам будет трудно оценить, насколько Nemerle может оказаться вам полезным в реальной повседневной работе. Данная статья призвана в неформальной форме продемонс-трировать это.
, только не в плане языков, а в плане технологий.

A>>>Не спорю
G>>Так о чем тогда спор?
G>>Я верю что лично вы можете написать на дефли хорошую программу. Также я знаю что на .NET такую же программу можно написать проще.

A>Так флейм же изначально. Про лучше никаких аргументов особых не прозвучало. (Названия технологий и т.п. — не в счёт). Вот если бы сказал, что две команды: А и Б — решали одинаковую задачу на разных системах. И достигли таких-то успехов, за такое-то время при оговоренном качестве. Тады ой. А так...

Да нигде таких данных не будет, дороговатый эксперимент получится.
Я писал программы на делфи и на C#. С появлением .NET 3.5 я понял что массу кода на делфи можно переписать относительно компактным кодом на C#. Что впоследствии и сделал на небольшой программе.

A>Ну да ладно, я не против .NET, сам на нём пишу кое-какие небольшние проекты. Просто там, где сейчас работаю, приходится работать над большим проектом, который на Дельфи. И там, оказывается, тоже всё можно. С другой стороны, хочется уже перейти на .NET, уж очень там некоторые вещи привлекают (где-то в самом конце треда о писал).

Там много чего нельзя. Но вы с этим не сталкиваетесть, потому что никому в голову не придет делать на делфи что нельзя сделать на нем.
Вот почему на делфи до сих пор нет ORM или IoC контейнеров?

ЗЫ. Под словом "нельзя" я понимаю "ооооооооочень долго и дорого".
Re[24]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 09.12.08 07:21
Оценка:
Здравствуйте, gandjustas, Вы писали:


A>>Ну да ладно, я не против .NET, сам на нём пишу кое-какие небольшние проекты. Просто там, где сейчас работаю, приходится работать над большим проектом, который на Дельфи. И там, оказывается, тоже всё можно. С другой стороны, хочется уже перейти на .NET, уж очень там некоторые вещи привлекают (где-то в самом конце треда о писал).

G>Там много чего нельзя. Но вы с этим не сталкиваетесть, потому что никому в голову не придет делать на делфи что нельзя сделать на нем.
G>Вот почему на делфи до сих пор нет ORM или IoC контейнеров?

Да бог с ним с IoC, куда серьезнее стоит вопрос утечек памяти в программах на делфи. Если в C++ есть мощные средства типа boost::shared_ptr<>, то в Делфи полный ахтунг — шаром покати...

Вообще это даже смешно сравнивать убогое детище борланд с C#.
Re[23]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 09.12.08 07:24
Оценка:
Здравствуйте, Antoshka, Вы писали:

A>Ну да ладно, я не против .NET, сам на нём пишу кое-какие небольшние проекты. Просто там, где сейчас работаю, приходится работать над большим проектом, который на Дельфи.

И на сколько же он большой ваш большой проект на Delphi? Можно точную цифру?
Re[19]: Delphi 2009 vs C# 3.0
От: kuj  
Дата: 09.12.08 07:52
Оценка:
Здравствуйте, Antoshka, Вы писали:

G>>Я уверен что подобного уровня системы на .NET пишутся проще.


A>"Я уверен, что проще" — не катит за аргумент. Факты в студию.


Вот тебе факты: ASP.NET MVC/Castle Monorail/Spring.NET MVC, WCF, nHibernate/EF, MEF, Castle Windsor/StructureMap/Unity/Spring.NET, nServiceBus, mbUnit+Rhino Mocks+nCover и т.д. и т.д.

Ну и конечно же средства для automated continous integration, которые разработчикам Delphi не доступны как класс.

Сравнивать Delphi и .NET и особенно на поприще enterprise систем это все-равно что сравнивать Запорожец и Mercedes S-500.. ну да, и то и то едет

G>>Тогда лучше рассмотреть что вообще есть для Enterprise разработки, считаем:

G>>1)ORM — Linq 2 SQL, EF

A>Linq — не пришей кобыле хвост.


Так и запишем: не видел, но мнение имеет.

A>EF не знаю, не смотрел.


Кто бы сомневался.

G>>2)Сервисы WCF — в делфи ничего даже отдаленно похожего нету


A>Нафига они нужны в двухзвенке: СУБД + толстый клиент?


Значит ты не видел настоящих enterprise систем, где клиенты могут быть за сотни и тысячи километров от центра.

"Кто бы сомневался".

A>[лирика] У некоторых наших партнёров-монополистов так были сделаны веб-сервисы, то лучше бы они вообще этого не делали, пользовались бы чистым Http. Даже дотнет не жрал их реализацию, пришлось вместо веб-сервисов делать прямые xml+http-запросы к их системам. [/лирика]


Не удивительно... с такими-то программистами. ;]

G>>3)ADO.NET Data Services


A>EF не знаю, не смотрел.


ADO.NET DS это далеко не только EF.

G>>4)IoC контейнер, не в состеве .NET, но есть написанные и поддерживемые MS, с AOP и другими страшными TLA


A>я тоже знаю много страшных слов. И что?


Какие еще страшные слова? Это будни .NET. Ну ладно IoC — его в неуправляемой среде фиг построишь нормальный, но про AOP вообще-то грех не знать. Бегом доучиваться!

G>>6)Библиотеки unit-тестирования, как от MS, так и сторонние. Все отлично интегрируются со студией и build-системами


A>согласен, удобно. Но можно и без них, особенно если логика в хранимых процедурах.


Логика в хранимых процедурах. Добро пожаловать назад в 90-ые...

G>>Кроме того .NET — не один язык, а множество. Если хотите, то можете писать на C#, VB, Nemerle, F#.


A>Я плакалъ


По поводу чего плакал-то?

Ну как перепиши данный простейший код на Delphi:

    Async.Run
        (Async.Parallel [ AsyncHttp "http://www.live.com";
                          AsyncHttp "http://www.google.com";
                          AsyncHttp "http://maps.live.com";
                          AsyncHttp "http://maps.google.com"; ])


    let AsyncHttp(url:string) =
        async {  do printfn "Created web request for %s" url
                 // Create the web request object
                 let req = WebRequest.Create(url)

                 do printfn "Getting response for %s" url

                 // Get the response, asynchronously
                 let! rsp = req.GetResponseAsync()

                 do printfn "Reading response for %s" url

                 // Grab the response stream and a reader. Clean up when we're done
                 use stream = rsp.GetResponseStream()
                 use reader = new System.IO.StreamReader(stream)

                 // synchronous read-to-end
                 return reader.ReadToEnd() }



A>>>Задачи ровно те, которые ставит перед командой заказчик. Наши внутренние измышления о задачах заказчику монопенисуальны. Ему важен результат. А вот здесь у .NET нет никакого существенного преимущества перед остальными системами программирования.

G>>Спасибо, поржал.
+1
A>И?
Ты конечно не знаешь про фактор "человеко-часы".


G>>Если интересно скачайте прокект Dinner Now, система от MS, которая показывает многие возможности в .NET 3.5. Потом посмотрите сможете ли повторить такое на делфи. Хотябы серверную часть.


A>Зачем? У меня свои задачи, я их спокойно решаю на дельфи. Если будут задачи, где с нетом проще — буду использовать .NET


Откуда ты знаешь как они решаются на .NET если ты ровным счетом ничего не знаешь о .NET?
Re[2]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.02.09 13:08
Оценка:
Здравствуйте, pers79, Вы писали:

P>Результаты такие:

P> на 30000: С# около 73сек. Delphi около 1сек
P>на 600000: С# не дождался окончания вывода на экран, Delphi — около 15сек.
P>проверял на виртуальной машине в VirtualBox.


Где бы еще найти пользователя, который сможет обработать хотябы 10000 записей в одном гриде.
Re[3]: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 17.02.09 13:34
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


P>>Результаты такие:

P>> на 30000: С# около 73сек. Delphi около 1сек
P>>на 600000: С# не дождался окончания вывода на экран, Delphi — около 15сек.
P>>проверял на виртуальной машине в VirtualBox.
G>

G>Где бы еще найти пользователя, который сможет обработать хотя бы 10000 записей в одном гриде.


Понятно, что тест мой преувеличен. Но скорость меньше, плюс я никакой обработки данных не проводил,
а если с обработкой, то скорость окажется поменьше.

Вообще с такой проблемой я столкнулся, когда писал маленькую програмку, которая запрашивает данные из базы данных,
причем всего лишь из одной таблицы, выводит на печать или сохраняет в файл. Условия выборки: начальная дата-время, конечная дата время, источник, тип события. Решил я написать ее побыстрее, а потому выбор мой пал на Visual Studio 2005 (она тогда была под рукой, а с Delphi я вообще мало знаком).
Написал, да не подумал что в таблице объем может быть большой (время хранения полгода), тем более если интервал выборки сделать как раз полгода. В итоге время отрисовки Grid, при интервале равном полгода показалось мне каким-то долгим, с учетом что компьютер и так был не быстр (на нем два OPC Servera + SCADA система),переписал все на MFC(стало очень шустренько).

Понятное дело, такую проблему обойти не сложно, ужесточить условия выборки, например выводить в интервале не превышающем 3х дней. Но факт, есть факт — скорость меньше.

Кстати с 10000 я тоже пробовал: C# — 5-6 сек., Delphi — меньше 1сек.

Собственно камень ни в чей огород бросить не хочу, нравится и то, и то. Вопрос, что выбрать.
Re[3]: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 17.02.09 13:41
Оценка:
Здравствуйте, samius, Вы писали:

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


P>>Добавлю свои пять копеек.

P>>Сделал простую програмку на Delphi2009 и C# 2008, суть проста
P>>взять Grid и заполнить его строками в количестве N, где N=30000 и 600000
P>>попробовал все три значения. Время мерял через два DateTimePicker, как видно из кода.
P>>В Delphi взял StringGrid, в VS2008 Express — DataGridView.

P>>Код получился такой:

S>Код получился далеко не эквивалентный. Код на Delphi сразу задает емкость грида, а на дотнете добавляет по одной.

P>>По поводу скорости очевидно.

P>>Выбираю среду разработки для своего проекта, пока что в раздумьях.

S>Очевидно, что недорос даже до формоклепателя, куда там свой проект


Ну дак расскажи свой вариант, раз уж так все очевидно. Возможно я свой выбор сделаю быстрее, спасибо тебе скажу.
Re[4]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.02.09 13:43
Оценка:
Здравствуйте, pers79, Вы писали:

P>Вообще с такой проблемой я столкнулся, когда писал маленькую програмку, которая запрашивает данные из базы данных,

P>причем всего лишь из одной таблицы, выводит на печать или сохраняет в файл. Условия выборки: начальная дата-время, конечная дата время, источник, тип события. Решил я написать ее побыстрее, а потому выбор мой пал на Visual Studio 2005 (она тогда была под рукой, а с Delphi я вообще мало знаком).
P>Написал, да не подумал что в таблице объем может быть большой (время хранения полгода), тем более если интервал выборки сделать как раз полгода. В итоге время отрисовки Grid, при интервале равном полгода показалось мне каким-то долгим, с учетом что компьютер и так был не быстр (на нем два OPC Servera + SCADA система),переписал все на MFC(стало очень шустренько).
Так вам надо было в файл записи скинуть или в грид вывести?
Если в файл (как написано выше), то зачем было в грид выводить?

P>Понятное дело, такую проблему обойти не сложно, ужесточить условия выборки, например выводить в интервале не превышающем 3х дней. Но факт, есть факт — скорость меньше.

Скорость чего? Вывода тысячи записей? А кому столько записей в гриде надо?

Пока не начали писать программу запомните простую вещь: не выводите в интерфейс данных больше, чем сможет обработать человек. Для обычного грида это не более пары сотен записей.
Re[4]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 17.02.09 13:58
Оценка:
Здравствуйте, pers79, Вы писали:

P>Ну дак расскажи свой вариант, раз уж так все очевидно. Возможно я свой выбор сделаю быстрее, спасибо тебе скажу.

Чтобы код для сравнения наполнения гридов получился примерно эквивалентный, нужно для версии C# предварительно установить свойство RowCount у DataGridView.

А лучше воспользоваться свойством DataSource, подсунув туда список строк или DataTable, или что другое.

Ну и кроме того, скорость заполнения грида не является критерием выбора среды.
Re[5]: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 17.02.09 14:03
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


P>>Вообще с такой проблемой я столкнулся, когда писал маленькую програмку, которая запрашивает данные из базы данных,

P>>причем всего лишь из одной таблицы, выводит на печать или сохраняет в файл. Условия выборки: начальная дата-время, конечная дата время, источник, тип события. Решил я написать ее побыстрее, а потому выбор мой пал на Visual Studio 2005 (она тогда была под рукой, а с Delphi я вообще мало знаком).
P>>Написал, да не подумал что в таблице объем может быть большой (время хранения полгода), тем более если интервал выборки сделать как раз полгода. В итоге время отрисовки Grid, при интервале равном полгода показалось мне каким-то долгим, с учетом что компьютер и так был не быстр (на нем два OPC Servera + SCADA система),переписал все на MFC(стало очень шустренько).
G>Так вам надо было в файл записи скинуть или в грид вывести?
G>Если в файл (как написано выше), то зачем было в грид выводить?

P>>Понятное дело, такую проблему обойти не сложно, ужесточить условия выборки, например выводить в интервале не превышающем 3х дней. Но факт, есть факт — скорость меньше.

G>Скорость чего? Вывода тысячи записей? А кому столько записей в гриде надо?

G>Пока не начали писать программу запомните простую вещь: не выводите в интерфейс данных больше, чем сможет обработать человек. Для обычного грида это не более пары сотен записей.


В Grid тоже надо выводить было.

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

Очевидные вещи говорите — не поспоришь
Re[5]: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 17.02.09 16:59
Оценка:
Здравствуйте, samius, Вы писали:

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


P>>Ну дак расскажи свой вариант, раз уж так все очевидно. Возможно я свой выбор сделаю быстрее, спасибо тебе скажу.

S>Чтобы код для сравнения наполнения гридов получился примерно эквивалентный, нужно для версии C# предварительно установить свойство RowCount у DataGridView.

S>А лучше воспользоваться свойством DataSource, подсунув туда список строк или DataTable, или что другое.


S>Ну и кроме того, скорость заполнения грида не является критерием выбора среды.


Ох ни в коем случае не собирался я выбор основывать на скорости заполнения грида. Просто это первая мысль, которая пришла. Попробовал поставить RowCount, попробовал не на виртуальной машине, а на реально машине с 2Гб памяти — все довольно шустро заработало, правда все равно медленнее чем, если б было скомпилировано в обычный exe, но это уже история не о 'vs Delphi'.

За совет спасибо.
Re[6]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 17.02.09 17:18
Оценка:
Здравствуйте, pers79, Вы писали:

P>Ох ни в коем случае не собирался я выбор основывать на скорости заполнения грида. Просто это первая мысль, которая пришла. Попробовал поставить RowCount, попробовал не на виртуальной машине, а на реально машине с 2Гб памяти — все довольно шустро заработало, правда все равно медленнее чем, если б было скомпилировано в обычный exe, но это уже история не о 'vs Delphi'.

Т.е. ты на глазок прикинул время JIT компиляции для такой маленькой сборки? Ну и на сколько медленнее оказалось, чем если б было скомпилировано в обычный exe?

P>За совет спасибо.

То был не совет, а исправление вкравшегося недоразумения, дискредитирующего дотнетовский грид
Если не сложно, приведи новые цифры. Мне просто интересно, а вопрос о выборе платформы для меня пока не стоит.
Re[7]: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 17.02.09 18:36
Оценка:
Здравствуйте, samius, Вы писали:

S>Если не сложно, приведи новые цифры. Мне просто интересно, а вопрос о выборе платформы для меня пока не стоит.


Если я правильно понял, под JIT компиляцией ты имел в виду то, что при первом запуске метода некоторое время уходит на компиляцию, если тот же код будет запущен второй раз, то повторной компиляции не будет.

Время для C# после второго запуска — 3-9сек, в среднем 4сек.-самый частый результат (600_000 записей). Я вполне доволен теперь.
Время для Delphi — очень удивился 8-10сек. (600_000 записей)
Код думаю вполне стал эквивалентным:


StringGrid1.RowCount := 600000;
  DateTimePicker1.DateTime := Time();
  for I := 0 to StringGrid1.RowCount - 1 do
       for K := 0 to 6 do
        StringGrid1.Cells[K,I] := IntToStr(I);

  DateTimePicker2.DateTime := Time();
end;



dataGridView1.RowCount = 600000;
dateTimePicker1.Value = DateTime.Now;
for (int i = 1; i < 600000; i++)
{
    for (int k = 0; k < 6; k++)
    {
      dataGridView1.Rows[i].Cells[k].Value = Convert.ToString(i);
    }
}
dateTimePicker2.Value = DateTime.Now;


Вот такие пироги
Re[8]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 17.02.09 19:37
Оценка:
Здравствуйте, pers79, Вы писали:

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


S>>Если не сложно, приведи новые цифры. Мне просто интересно, а вопрос о выборе платформы для меня пока не стоит.


P>Если я правильно понял, под JIT компиляцией ты имел в виду то, что при первом запуске метода некоторое время уходит на компиляцию, если тот же код будет запущен второй раз, то повторной компиляции не будет.

Именно. Как правило, JIT компиляция занимает очень малое время (от времени выполнения программы). И это практически единственное, что отличает "ненормальный" exe от "нормального".

P>Время для C# после второго запуска — 3-9сек, в среднем 4сек.-самый частый результат (600_000 записей). Я вполне доволен теперь.

P>Время для Delphi — очень удивился 8-10сек. (600_000 записей)
Во! Теперь хоть одного порядка цифры.

P> Код думаю вполне стал эквивалентным:

Функционально — да. Но если целью эксперимента было сравнить чисто шустрость гридов, то IntToStr(I) и Convert.ToString(i) (можно проще i.ToString()) можно было бы сделать не по 6 раз на строку, а один. Тогда цифры были бы более "чистые".

P>Вот такие пироги


К сведению: если действительно нужен большой грид, чтобы доканать пользователя, лучше использовать виртуальный грид. Время добавления в него информации не зависит от числа ячеек. Единственная проблема с большими гридами — затрудненная скроллинг навигация. Создать таблицу умножения от 0 до 1M вопрос долей секунды, а вот найти в ней результат умножения конкретных чисел стандартным скроллингом будет весьма утомительно.

В дотнете всеже есть узкие места. Например, чтение/запись БОЛЬШИХ файлов. Только там, где это действительно напрягает, можно использовать WinAPI.
Re[9]: Delphi 2009 vs C# 3.0
От: criosray  
Дата: 18.02.09 00:17
Оценка:
Здравствуйте, samius, Вы писали:

S>К сведению: если действительно нужен большой грид, чтобы доканать пользователя, лучше использовать виртуальный грид. Время добавления в него информации не зависит от числа ячеек. Единственная проблема с большими гридами — затрудненная скроллинг навигация. Создать таблицу умножения от 0 до 1M вопрос долей секунды, а вот найти в ней результат умножения конкретных чисел стандартным скроллингом будет весьма утомительно.


Всегда удивляли люди, которые меряют попугаев на синтетической задаче, и делают на основе этого какие-то там выводы...

Г-да, это не профессионально.
Re[10]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 18.02.09 00:34
Оценка:
Здравствуйте, criosray, Вы писали:

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


S>>К сведению: если действительно нужен большой грид, чтобы доканать пользователя, лучше использовать виртуальный грид. Время добавления в него информации не зависит от числа ячеек. Единственная проблема с большими гридами — затрудненная скроллинг навигация. Создать таблицу умножения от 0 до 1M вопрос долей секунды, а вот найти в ней результат умножения конкретных чисел стандартным скроллингом будет весьма утомительно.


C>Всегда удивляли люди, которые меряют попугаев на синтетической задаче, и делают на основе этого какие-то там выводы...

Раз уж это ответ на мой пост, полагаю что я в числе тех людей. Можно довести до меня выводы, которые я сделал по попугаям на синтетической задаче?

C>Г-да, это не профессионально.

Re[11]: Delphi 2009 vs C# 3.0
От: criosray  
Дата: 18.02.09 01:11
Оценка:
Здравствуйте, samius, Вы писали:

S>>>К сведению: если действительно нужен большой грид, чтобы доканать пользователя, лучше использовать виртуальный грид. Время добавления в него информации не зависит от числа ячеек. Единственная проблема с большими гридами — затрудненная скроллинг навигация. Создать таблицу умножения от 0 до 1M вопрос долей секунды, а вот найти в ней результат умножения конкретных чисел стандартным скроллингом будет весьма утомительно.


C>>Всегда удивляли люди, которые меряют попугаев на синтетической задаче, и делают на основе этого какие-то там выводы...

S>Раз уж это ответ на мой пост, полагаю что я в числе тех людей. Можно довести до меня выводы, которые я сделал по попугаям на синтетической задаче?

Так это Вам лучше знать. Вы же тратите свое время на составление и обсуждение абсолютно бессмысленных тестов.
Re[3]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 18.02.09 03:01
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


P>>Результаты такие:

P>> на 30000: С# около 73сек. Delphi около 1сек
P>>на 600000: С# не дождался окончания вывода на экран, Delphi — около 15сек.
P>>проверял на виртуальной машине в VirtualBox.
G>

G>Где бы еще найти пользователя, который сможет обработать хотябы 10000 записей в одном гриде.


Даже для этого идотского варианта есть в DataGridView так называемый virtual mode, о котором скорее всего автор теста и не подозревает.
Re[6]: Delphi 2009 vs C# 3.0
От: anton_t Россия  
Дата: 18.02.09 03:14
Оценка:
Здравствуйте, Antikrot, Вы писали:

A>Здравствуйте, Ночной Смотрящий, Вы писали:


НС>>Ну, оператор : ......... шарпу совсем не помешали бы.

A>Если я правильно понял, что, он делает, лишь будет закапывать ошибки поглубже и усложнять отладку...

+ провоцирует на нарушение правила Деметры http://en.wikipedia.org/wiki/Law_of_Demeter
Re[8]: Delphi 2009 vs C# 3.0
От: anton_t Россия  
Дата: 18.02.09 03:15
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Здравствуйте, Ночной Смотрящий, Вы писали:


НС>>Который ничем от C# 3 не отличается, окромя уродства под названием dynamic.


K>Неправда. Co- и contravariance тоже ценная ИМХО фича...


+ PFX http://en.wikipedia.org/wiki/Parallel_FX_Library
Что-то похожее дельфям вообще не светит имхо.
Re[12]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 18.02.09 06:07
Оценка:
Здравствуйте, criosray, Вы писали:

C>>>Всегда удивляли люди, которые меряют попугаев на синтетической задаче, и делают на основе этого какие-то там выводы...

S>>Раз уж это ответ на мой пост, полагаю что я в числе тех людей. Можно довести до меня выводы, которые я сделал по попугаям на синтетической задаче?

C>Так это Вам лучше знать. Вы же тратите свое время на составление и обсуждение абсолютно бессмысленных тестов.

Вы теперь тоже в этом замешаны Кроме того, Вы еще тратите свое время на совершение выводов за других. Сами себя не удивляете?
Вклиниваетесь в бессмысленное обсуждение постом, провоцирующим переход на личности. Видимо хотели блеснуть профессионализмом...
Re[9]: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 18.02.09 06:52
Оценка:
Здравствуйте, hattab, Вы писали:

H>Гриды-то хоть скрытые, или ты еще и скорость инвалидации померял? И в Delphi отключи опцию String format checking. А вообще, конечно, гриды не показатель


H>p.s. Да, машинка какая?


Я код привел, время смотрел через DateTimePicker. Я и не считаю гриды важным показателем — это всего лишь один из многих, и как уже народ отметил не самый важный. Гриды виды на экране, если я правильно понял твой вопрос, то не скрытые. В принципе меня в первую очередь и интересовала скорость обновления грида с точки зрения пользователя. А 600_000 записей взял, потому что на паре сотен без разницы чей грид и на чем программа написана — различий в скорости видно не будет.

Эти результаты на AMD x6000, 2G оперативка:
P>>Время для C# после второго запуска — 3-9сек, в среднем 4сек.-самый частый результат (600_000 записей). Я вполне доволен теперь.
P>>Время для Delphi — очень удивился 8-10сек. (600_000 записей)


А вот на виртуалке другие результаты (на ней всего 512M в качестве оперативки есть):

от NET результата не дождался,
Delphi видимо сам себе на уме — все те же 10сек. (такое ощущение, что ему в данном случае не важно какой процессор, какая память, да String format checking никак не повлиял)

Посмотрел еще на core2duo T7600 2.33ГГц 2G:
Delphi — все те же 10сек.
NET — тот же результат, что и на AMD 3-9сек, в среднем 4сек.-самый частый, я бы даже сказал стабильный, результат.

Видимо по скорости в данном случае NET выигрывает, а вот к памяти более требователен.
Re[4]: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 18.02.09 07:00
Оценка:
Здравствуйте, _d_m_, Вы писали:

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


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


P>>>Результаты такие:

P>>> на 30000: С# около 73сек. Delphi около 1сек
P>>>на 600000: С# не дождался окончания вывода на экран, Delphi — около 15сек.
P>>>проверял на виртуальной машине в VirtualBox.
G>>

G>>Где бы еще найти пользователя, который сможет обработать хотябы 10000 записей в одном гриде.


___>Даже для этого идотского варианта есть в DataGridView так называемый virtual mode, о котором скорее всего автор теста и не подозревает.


Есстественно не подозреваю, т.к. написал уже, что толком ни на чем не работал. Лучше подскажи, что этот virtual mode дает — мне интересно.

Кстати народ подсказал что мой код не совсем эквивалентен и после правки результаты другие.
http://www.rsdn.ru/forum/message/3296063.1.aspx
Re[5]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 18.02.09 07:17
Оценка:
Здравствуйте, pers79, Вы писали:


G>>>Где бы еще найти пользователя, который сможет обработать хотябы 10000 записей в одном гриде.


___>>Даже для этого идотского варианта есть в DataGridView так называемый virtual mode, о котором скорее всего автор теста и не подозревает.


P>Есстественно не подозреваю, т.к. написал уже, что толком ни на чем не работал. Лучше подскажи, что этот virtual mode дает — мне интересно.


А гугль тебе на что?
http://msdn.microsoft.com/ru-ru/library/system.windows.forms.datagridview.virtualmode.aspx
http://msdn.microsoft.com/ru-ru/library/2b177d6d.aspx
Re[8]: Delphi 2009 vs C# 3.0
От: Jack128  
Дата: 18.02.09 07:21
Оценка:
Здравствуйте, pers79, Вы писали:

P>Время для C# после второго запуска — 3-9сек, в среднем 4сек.-самый частый результат (600_000 записей). Я вполне доволен теперь.

P>Время для Delphi — очень удивился 8-10сек. (600_000 записей)
P> Код думаю вполне стал эквивалентным:

совсем не факт. Насколько я помню, дельфийский грид использует sparse array для хранения строк, там добавление достаточно долгое, зато хорошая оптимизация по памяти при хранении "разреженных" массивов
Re[13]: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 18.02.09 07:39
Оценка:
Здравствуйте, samius, Вы писали:

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


C>>>>Всегда удивляли люди, которые меряют попугаев на синтетической задаче, и делают на основе этого какие-то там выводы...

S>>>Раз уж это ответ на мой пост, полагаю что я в числе тех людей. Можно довести до меня выводы, которые я сделал по попугаям на синтетической задаче?

C>>Так это Вам лучше знать. Вы же тратите свое время на составление и обсуждение абсолютно бессмысленных тестов.

S>Вы теперь тоже в этом замешаны Кроме того, Вы еще тратите свое время на совершение выводов за других. Сами себя не удивляете?
S>Вклиниваетесь в бессмысленное обсуждение постом, провоцирующим переход на личности. Видимо хотели блеснуть профессионализмом...

Я думаю не стоит спорить из-за моего бессмысленного теста. Я не знаток — тут секрета нет. Решил вот такой тест провести, кто-то критикует, кто-то подсказывает. Кто переходит на личности на того все равно внимание не обращаю.


А по поводу количества сообщений в гриде не все однозначно:

взять промышленный объект, на котором идут испытания по какой-то подсистеме, все события происходящие за это промежуток кладутся в одну таблицу в базе данных (сразу говорю не я эту базу придумал, чтоб никто не говорил потом, что так базы данных делать нельзя). Прошло три часа, собралась комиссия и решила, давай те ка посмотрим, а какие события у нас в базу записались и соответствуют ли они тому, что было на испытаниях. Подойдут они к компьютеру и наберут интервал с 10.00 до 13.00, а им в ответ "событий слишком много — выберите интервал поменьше", они выбирают 10.00-12.00, а им снова "событий слишком много — выберите интервал поменьше", произойти это может, хотя бы потому, что за три часа в базу может попасть не только 100-300 событий, но и 3000.
Понятно что начнут распечатывать по частям, понятно что и решить эту проблему можно, понятно, что тест синтетический, но тем не менее хотелось бы чтоб проблемы такой не было вовсе, хотелось бы лучшего, хотелось бы наименьшего количества затрат труда с хорошим результатом. К этому я думаю все и стремятся.
Re[6]: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 18.02.09 08:09
Оценка:
Здравствуйте, _d_m_, Вы писали:

Вопрос есть, по твоему опыту, как чаще приходится использовать DataGridView — в связанном или не связанном режиме?

Немного неясно по поводу этой строчки из MSDN:
Виртуальный режим должен использоваться, чтобы поддерживать значения несвязанных столбцов, когда элемент управления DataGridView находится в режиме привязки данных. Сортировка по несвязанным столбцам в режиме привязки данных не поддерживается.

Я так понимаю, это используется (т.е. основное назначение данного режима). когда например привязал я DataGridView к источнику данных и дополнительно добавил в грид свои столбцы, не связанные с источником данных, которые мне тоже нужно обрабатывать.

Поправь меня, если я не так понял.
Re[10]: Delphi 2009 vs C# 3.0
От: hattab  
Дата: 18.02.09 08:33
Оценка:
Здравствуйте, pers79, Вы писали:

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


Я вижу ты не понял главного из моего поста: при обновлении ячейки происходит инвалидация оной, и эта инвалидация может быть сильно по разному реализована. Как реализовано в Delphi я знаю, и там это сильно не оптимально т.к. инвалидация происходит всякий раз при обновлении, а метод позволяющий включить режим обновления забыли вынести в паблик... Но мы же в нативе, посему можно применить маленький хак: PBoolean(Cardinal(StringGrid1) + 816)^ := True; (перед добавлением) и PBoolean(Cardinal(StringGrid1) + 816)^ := False; StringGrid1.Invalidate; (после обновления). У меня (PM 1.7, 512) время 3 сек. Стабильно. Но еще раз говорю: я это пишу не с целью померяться органами, ибо не считаю любую синтетику оправданной.
Re[14]: Delphi 2009 vs C# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 18.02.09 08:52
Оценка:
Здравствуйте, pers79, Вы писали:

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


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


C>>>>>Всегда удивляли люди, которые меряют попугаев на синтетической задаче, и делают на основе этого какие-то там выводы...

S>>>>Раз уж это ответ на мой пост, полагаю что я в числе тех людей. Можно довести до меня выводы, которые я сделал по попугаям на синтетической задаче?

C>>>Так это Вам лучше знать. Вы же тратите свое время на составление и обсуждение абсолютно бессмысленных тестов.

S>>Вы теперь тоже в этом замешаны Кроме того, Вы еще тратите свое время на совершение выводов за других. Сами себя не удивляете?
S>>Вклиниваетесь в бессмысленное обсуждение постом, провоцирующим переход на личности. Видимо хотели блеснуть профессионализмом...

P>Я думаю не стоит спорить из-за моего бессмысленного теста. Я не знаток — тут секрета нет. Решил вот такой тест провести, кто-то критикует, кто-то подсказывает. Кто переходит на личности на того все равно внимание не обращаю.



P>А по поводу количества сообщений в гриде не все однозначно:


P>взять промышленный объект, на котором идут испытания по какой-то подсистеме, все события происходящие за это промежуток кладутся в одну таблицу в базе данных (сразу говорю не я эту базу придумал, чтоб никто не говорил потом, что так базы данных делать нельзя). Прошло три часа, собралась комиссия и решила, давай те ка посмотрим, а какие события у нас в базу записались и соответствуют ли они тому, что было на испытаниях. Подойдут они к компьютеру и наберут интервал с 10.00 до 13.00, а им в ответ "событий слишком много — выберите интервал поменьше", они выбирают 10.00-12.00, а им снова "событий слишком много — выберите интервал поменьше", произойти это может, хотя бы потому, что за три часа в базу может попасть не только 100-300 событий, но и 3000.


А зачем все 3000 сразу в грид пихать? Можно делать подгрузку по частям (через тот же virtual mode) с кешированием или какой-нить ненавязчивый пейджинг (в случае web).
Не нужны пользователю сразу все 3000 записей в гриде.
Re[14]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 18.02.09 08:59
Оценка:
Здравствуйте, pers79, Вы писали:

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


P>А по поводу количества сообщений в гриде не все однозначно:


P>взять промышленный объект, на котором идут испытания по какой-то подсистеме, все события происходящие за это промежуток кладутся в одну таблицу в базе данных (сразу говорю не я эту базу придумал, чтоб никто не говорил потом, что так базы данных делать нельзя). Прошло три часа, собралась комиссия и решила, давай те ка посмотрим, а какие события у нас в базу записались и соответствуют ли они тому, что было на испытаниях. Подойдут они к компьютеру и наберут интервал с 10.00 до 13.00, а им в ответ "событий слишком много — выберите интервал поменьше", они выбирают 10.00-12.00, а им снова "событий слишком много — выберите интервал поменьше", произойти это может, хотя бы потому, что за три часа в базу может попасть не только 100-300 событий, но и 3000.

Тут нужна голова а не грид. У комиссии нет задачи "просмотреть все записи с 10:00-12:00". Просмотром грида они решают свою более высокую задачу (найти аномалии, оценить тенденции и пр.) только потому что программист не предоставил им удобный сервис для решения прямой задачи.

P>Понятно что начнут распечатывать по частям, понятно что и решить эту проблему можно, понятно, что тест синтетический, но тем не менее хотелось бы чтоб проблемы такой не было вовсе, хотелось бы лучшего, хотелось бы наименьшего количества затрат труда с хорошим результатом. К этому я думаю все и стремятся.

Нужно стремиться удовлетворить заказчика, занимаясь прежде всего решением его задач.
Re[13]: Delphi 2009 vs C# 3.0
От: criosray  
Дата: 18.02.09 09:08
Оценка:
Здравствуйте, samius, Вы писали:

C>>>>Всегда удивляли люди, которые меряют попугаев на синтетической задаче, и делают на основе этого какие-то там выводы...

S>>>Раз уж это ответ на мой пост, полагаю что я в числе тех людей. Можно довести до меня выводы, которые я сделал по попугаям на синтетической задаче?

C>>Так это Вам лучше знать. Вы же тратите свое время на составление и обсуждение абсолютно бессмысленных тестов.

S>Вы теперь тоже в этом замешаны
Нет, не замешан.
S>Кроме того, Вы еще тратите свое время на совершение выводов за других. Сами себя не удивляете?
Я на знаю что Вы подразумеваете под "совершение выводов за других"... Я лишь прокомментировал весь этот бессмысленный топик с намеком на то, что Вам лучше бросить эту пустую затею.
Re[14]: Delphi 2009 vs C# 3.0
От: samius Япония http://sams-tricks.blogspot.com
Дата: 18.02.09 09:33
Оценка:
Здравствуйте, criosray, Вы писали:

C>Я на знаю что Вы подразумеваете под "совершение выводов за других"...

Ну как же? Вы сделали вывод о том что я делаю какие-то выводы. А я их не делал, так, лясы точил.

C>Я лишь прокомментировал весь этот бессмысленный топик

Топик далеко не весь бессмысленный.
C>с намеком на то, что Вам лучше бросить эту пустую затею.
Благодарен за заботу. Не понимаю только, чем обязан такому вниманию?

З.Ы. Предлагаю не разводить флуд во флу... в священных войнах. Ваш намек я принял к вниманию, однако решать, что бросать и что пустое, предпочту сам.
Re[11]: Delphi 2009 vs C# 3.0
От: pers79  
Дата: 18.02.09 09:33
Оценка:
Здравствуйте, hattab, Вы писали:

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


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


H>Я вижу ты не понял главного из моего поста: при обновлении ячейки происходит инвалидация оной, и эта инвалидация может быть сильно по разному реализована. Как реализовано в Delphi я знаю, и там это сильно не оптимально т.к. инвалидация происходит всякий раз при обновлении, а метод позволяющий включить режим обновления забыли вынести в паблик... Но мы же в нативе, посему можно применить маленький хак: PBoolean(Cardinal(StringGrid1) + 816)^ := True; (перед добавлением) и PBoolean(Cardinal(StringGrid1) + 816)^ := False; StringGrid1.Invalidate; (после обновления). У меня (PM 1.7, 512) время 3 сек. Стабильно. Но еще раз говорю: я это пишу не с целью померяться органами, ибо не считаю любую синтетику оправданной.


В принципе и у меня не было цели меряться органами. Было любопытство, как это там и там делается, сделал, послушал что люди говорят, для себя далеко идущих выводов делать не собирался.

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

Всем спасибо за ответы
Re[7]: Delphi 2009 vs C# 3.0
От: _d_m_  
Дата: 19.02.09 07:13
Оценка:
Здравствуйте, pers79, Вы писали:

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


P>Вопрос есть, по твоему опыту, как чаще приходится использовать DataGridView — в связанном или не связанном режиме?


Я использую в несвязанном.

P>Немного неясно по поводу этой строчки из MSDN:

P>Виртуальный режим должен использоваться, чтобы поддерживать значения несвязанных столбцов, когда элемент управления DataGridView находится в режиме привязки данных. Сортировка по несвязанным столбцам в режиме привязки данных не поддерживается.

P>Я так понимаю, это используется (т.е. основное назначение данного режима). когда например привязал я DataGridView к источнику данных и дополнительно добавил в грид свои столбцы, не связанные с источником данных, которые мне тоже нужно обрабатывать.


Я виртуальным режимом не пользовался — т.к. не использую озвученный моветон (типа серверных курсоров). Лезть в документацию и напрягать мозг по этому поводу я не хочу — не нужем мне виртуал мод. Если хочешь получить ответы на свои вопросы — писать надо не в КСВ, а целевой соседний форум по дотнету.
Re[30]: Delphi 2009 vs C# 3.0
От: ambel-vlad Беларусь  
Дата: 19.02.09 14:43
Оценка:
Hi iyura

kuj>>Ты подписался и расписался в вопиющей некомпетентности. Мальчик, прежде чем спорить со взрослыми дядьками изучи предмет спора.


I>Дяденька, извините, что влезаю с оффтопом, но хамить-то зачем? Или ты первый после Бога?


Ты что не знал, что он и есть Бог. Это же знают все читатели данного форума.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.