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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему так не любят Delphi? 
:(
    Опции темы
SKrivosein
Дата 10.4.2013, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


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

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



Я незнаю, там дальше по сылке было такое
Это не оно smile? Или тебя не удовлетворят качество информации на TechNet? 


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
Beltar
Дата 10.4.2013, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А как вообще у .NET с тем чтобы сервер приложений написать в сравнении с Delphi?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
SKrivosein
Дата 10.4.2013, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


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

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



Beltar а в чем как бы сложность? Я по этим вещам не специалист, но помоему на .NET кроме тяжелого системного програмирования (драйвера там, да всякое такое для режима ядра) какие ограничения?


--------------------
Оптимист - это плохо информированный человек.
user posted image

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


Опытный
**


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

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



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


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Zloxa
Дата 10.4.2013, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

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



Цитата(SKrivosein @  10.4.2013,  01:00 Найти цитируемый пост)
такое

В винде можно мониторить и админитрить некие распределенные транзакции. Наверняка этот механизм активно используется при развертывании кластера. Вполне возможно, его можно еще где-то заюзать.
И?
Еще в винде есть RPC и COM+.
Еще в винде есть WinAPI.
Еще в винде есть служба индексирования.
Еще в винде есть служба терминалов.
Еще в видне есть утилита комнадной строки.

Слава доднет платформе?


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
SKrivosein
Дата 10.4.2013, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


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

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



Beltar я так понимаю на Jave такое пишут. Не знаю почему бы на .NET этого нелзя было делать. 
Цитата

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

Кстати многие со стороны наверное незнают  smile , но в .NET можно уйти в unsafe режим, и выйти так из под контроля рантайма .NET Со всеми плюсами и минусами такого програмирования.
Указатели и т.д. Но нам обычно говорят: "Ая яй, подумай если оно тебе действительно надо!" Поэтому большинство это даже не пробовало, и я тоже  smile 

Это сообщение отредактировал(а) SKrivosein - 10.4.2013, 01:53


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
Zloxa
Дата 10.4.2013, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

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



Цитата(SKrivosein @  10.4.2013,  01:41 Найти цитируемый пост)
Со всеми плюсами и минусами 

А можешь вкрадце рассказать о минусах?
Мне действительно не совсем понятны предпосылы для создания CLR. С жавой - понятно, там мультиптатформенность и все такое... а тут smile

Добавлено через 1 минуту и 55 секунд
Цитата(SKrivosein @  10.4.2013,  01:41 Найти цитируемый пост)
Я так понимаю на Jave такое пишут.

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


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
SKrivosein
Дата 10.4.2013, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


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

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



Цитата(Zloxa @ 10.4.2013,  00:47)
А можешь вкрадце рассказать о минусах?

Zloxa я здесь честно признаюсь, не чувствую себя компитентным. Мож diadiavova чего раскажет...
Не будараж мои воспоминания на С++  smile Как написал однажды на форуме Partizan: "Я когда увижу как у меня в конторе какой то сопляк спустил в коде сборщик мусора или ушел в unsafe code, сразу его бью по пальцам. "
Цитата(C# 4.0 и платформа .NET 4.0 для профессионалов)

Существуют две основные причины для применения указателей. 
 -  Обратная совместимость. Несмотря на все возможности, предоставляемые  
исполняющей средой .NET, оставлена возможность вызова родных функций Windows API, 
что в некоторых случаях может оказаться единственным способом решения задачи. 
Эти функции API в основном реализованы на языке С и часто требуют передачи 
указателей в качестве параметров. Однако во многих случаях можно написать  
объявление DllImport, избегая применения указателей; например, с помощью класса 
System.IntPtr. 
 -  Производительность. В тех случаях, когда на первом месте стоит скорость,  
указатели могут помочь оптимизировать производительность. Если вы четко представляете, 
что делаете, то можете обеспечить доступ и манипуляции данными наиболее  
эффективным способом. Однако следует помнить, что часто существуют другие участки 
кода, производительность которых можно увеличить, не обращаясь к указателям. 
Попытайтесь использовать профилировщик кода, чтобы найти узкие места. Один из 
таких инструментов входит в состав Visual Studio. 

.....

За низкоуровневый доступ в память приходится платить свою цену. Синтаксис  
указателей более сложен, чем синтаксис ссылок, и указатели, несомненно, сложнее использовать 
правильно. Чтобы успешно использовать указатели, необходимо обладать достаточной 
программистской квалификацией и блестящей способностью к логическому мышлению  
относительно того, что делает код. Проявив невнимательность при применении указателей, 
очень легко внести в свои программы тонкие, трудно обнаруживаемые ошибки. Например, 
запросто можно переписать содержимое переменных, вызвать переполнение стека,  
получить доступ к памяти, не содержащей никаких переменных, или даже перезаписать код, 
необходимый исполняющей среде .NET, тем самым разрушив работающую программу. 


Эт я так пару кусков вырвал уз многа букав  smile 

Это сообщение отредактировал(а) SKrivosein - 10.4.2013, 02:23


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
k0rvin
Дата 10.4.2013, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Beltar @  9.4.2013,  12:13 Найти цитируемый пост)
ни перед кем-то из присутствующих, так что всем пофиг.

Если бы это было так, никто бы и не упомянул об этом.

Добавлено через 53 секунды
Цитата(Akella @  9.4.2013,  12:39 Найти цитируемый пост)
время
время - это самое дорогое, что у нас есть ;) 

Поэтому я и спросил про сложности.

Добавлено через 5 минут и 58 секунд
Цитата(Beltar @  9.4.2013,  13:33 Найти цитируемый пост)
У Delphi 3 плюса:
...
2) Object Pascal.

Ты перепутал, это минус.

Цитата(Beltar @  9.4.2013,  13:33 Найти цитируемый пост)
3) Довольно высокое качество самой среды

В этом я разубеждаюсь все чаще.

Цитата(Beltar @  9.4.2013,  13:33 Найти цитируемый пост)
так что можно проект от Delphi 2 без проблем пересобрать в 2007. 

Ты проверял все существующие проекты от 2-ки?


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
serger
Дата 10.4.2013, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: 5



Цитата(Akella @  9.4.2013,  17:47 Найти цитируемый пост)
Цитата(serger @ 9.4.2013,  15:50)
Цитата(Akella @  9.4.2013,  13:17 )
и в дельфи не главное   
не хочешь - не кидай, создавай всё ручками в коде, никто не запрещает писать ручками код ;)

прошу пример. Без извращений - приложение только ручками с использованием стандартных компонентов, ну или без.

Пример чего именно?


Пардон, имел ввиду приложения целиком. В данном случае форму helloworld - только в коде.


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
Beltar
Дата 10.4.2013, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Если бы это было так, никто бы и не упомянул об этом.


Вообще-то не я поднял этот вопрос, который правильно звучит так: "Я увидел, как на каком-то форуме кто-то не может распарсить на Delphi строку => в Delphi это сделать ну ахренеть, как сложно". После таких аргументов я с Delphi уже точно никуда не уйду, ибо видно, что противники в принципе не способны предложить ничего лучше и лишь выдумывают какую-то фигню.

Цитата

С жавой - понятно, там мультиптатформенность


Тоже спорно.
У меня есть процессор с частотой 10 МГц, который работает в стиральной машине и есть процессор 100 МГц другой архитектуры, который работает в телефоне под какой-то там осью, на кой черт обеспечивать между ними совместимость? Ну пусть даже сходные процы, одинаковое применение, не уровня микроконтроллера, как в стиральной машине, это гарантирует возможность работы программы на каждом? Я терпеть не могу мобилки и прочую подобную хрень, но вроде как те же Java-игрушки идут лишь на весьма ограниченном числе моделей, разница в производительности не аргумент, на PC эта проблема упешно решается. Да и сами игры обычно не сложнее тех, что в начале 90-ых прекрасно работали на 386SX или 7 МГц проце игровй приставки. Так что сама концепция переносимости по меньшей мере сомнительна. В конце концов якобы единый байт-код (например, разрешение экрана учитывать как будем) требует написания для его компиляции под каждую конкретную платформу отдельной среды исполнения и лично у меня большие сомнения, что это многим проще изготовления нативного компилятора.

Цитата

Ты перепутал, это минус.


Опять начинаются слезки, что дескать надо по-человечески код оформлять, и нет возможности ради сохранения 5 минут времени в день на наборе текста набыдлокодить багов на неделю отладки? Си++ vs Pascal было бы актуально при сравнении BC++ и BP году этак в 90-ом, когда в Паскале было полно глупостей, или в эпоху Delphi 7, когда можно было кое-где сэкономить за счет шаблонов, но сейчас тратить на C++ время просто верх глупости. Если вопрос загибания Delphi можно сформулировать как "загнется ли?", то для плюсов после появления C# он звучит "когда?".

Добавлено через 2 минуты и 46 секунд
Цитата

Пардон, имел ввиду приложения целиком. В данном случае форму helloworld - только в коде.


Код

program Project1;

uses
  SysUtils, Windows, Messages;

const WM_MESS=WM_USER+1;

var
  ClassName,Title:PChar;
  Msg:TMsg;
  Handle:HWND;
  WC:WndClass;

function MainWndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var s:PChar;
begin
case Msg of
  WM_CREATE:;
  WM_DESTROY:PostQuitMessage(0);
  WM_PAINT:;
  WM_CHAR:begin
          case Lo(LParam) of
            13:SendMessage(hWnd,WM_MESS,0,0);
            27:ShowWindow(hWnd,SW_MINIMIZE);
          end
          end;
  WM_MESS:begin
          GetWindowText(hWnd,s,80);
          strcat(s,'+');
          SetWindowText(hWnd,s);
          end;
  else Result:=DefWindowProc(hWnd,Msg,wParam,lParam);
end;
end;

begin
ClassName:='Class';
Title:='Hello world';
wc.style:=0;
wc.lpfnWndProc:=@MainWndProc;
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=hInstance;
wc.hIcon:=LoadIcon(hInstance,IDI_Application);
wc.hCursor:=LoadCursor(0,IDC_ARROW);
wc.hbrBackground:=Color_Window+1;
wc.lpszMenuName:=0;
wc.lpszClassName:=ClassName;
if RegisterClass(wc)=0 then MessageBox(0,'Ошибка регистрации класса',nil,mb_OK)
                       else
  begin
  //Создание окна
  Handle:=CreateWindow(ClassName,Title,WS_OverlappedWindow,10,10,500,300,
    0,0,hInstance,nil);
  if Handle=0 then MessageBox(0,'Ошибка создания окна',nil,mb_OK)
              else
    begin
    ShowWindow(Handle,SW_Show);
    UpdateWindow(Handle);
    While GetMessage(Msg,0,0,0) do
      begin
      TranslateMessage(Msg);
      DispatchMessage(Msg);
      end;
    end;
  end;


end.



Сойдет?  smile 


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
kolesnle
Дата 10.4.2013, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Упертый сишник
*


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

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



C++ никогда не загнется, потому что его постоянно совершенствуют! У вас в дельфях есть например, лямбда-функции? Или вы думаете, что например Qt менее совершенна, чем ваши кнопочки на формочках? ОБЛОМИТЕСЬ!
PM MAIL   Вверх
Akella
Дата 10.4.2013, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(Beltar @ 10.4.2013,  00:00)
А как вообще у .NET с тем чтобы сервер приложений написать в сравнении с Delphi?

я уверен, что его можно написать хоть на жаве, хоть на шарпе, хоть на дельфи  smile

Добавлено @ 10:14
Цитата(kolesnle @  10.4.2013,  08:10 Найти цитируемый пост)
У вас в дельфях есть например, лямбда-функции? 


А для чего они?

Добавлено @ 10:16
это анонимная функция?

http://ru.wikipedia.org/wiki/%D0%90%D0%BD%...%86%D0%B8%D1%8F

Код

function(x, y: integer): integer 
begin
  result := x+y;
end;



Код

SomeArray.Sort(    
   function(a,b: Integer): Integer   // Инплейс функция-компаратор
   begin
      Result := a - b;
   end
);


Добавлено @ 10:18
ну, как говорится - обломитесь  smile

Добавлено через 8 минут и 42 секунды
Замыкание(closure):

Код

type
  TProc = reference to function(x: Integer): function;

function Foo(a: Integer): TProc;
begin
  Foo := function(b: Integer): Integer;
  begin
    Result := a + b;
  end;     
end;



В вышеприведенном коде функция Foo возвращает лямбда-функцию, складывающую a и b smile (возвращаемую функцию еще предстоит вычислить)

Почему лябду назвали анонимным методом? Это связано с внутренней реализацией этой фичи: лямбда-функция является ничем иным как методом анонимного класса.
Замыкание реализуется за счет того, что класс хранит в себе "контекст вызова". Т.е. полями класса будут "общие" для "окружения" и лямбды переменные (В случае вышеприведенного примера это "общая" a). Помимо этого у класса есть счетчик ссылок, т.е, как полноценная closure, лябда-функция может жить вне "зоны вызова"
Замыкание — это когда в точке вызова функции доступны переменные, которые были в зоне видимости определения функции, но не видны в самой точке вызова)

Добавлено через 11 минут и 28 секунд
Код

type
  TMFormAction<T: TMForm> = reference to procedure(AForm: T);

...

class function THandlerForm<T>.ShowForm(const APrevProc, APostProc: TMFormAction<T>): T;

...
//адский хак
  if Assigned(APostProc) then
  begin
    IInterface(PPointer(@APostProc)^)._AddRef;
    Result.FPostProcedure := PPointer(@APostProc)^;
  end;

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


Упертый сишник
*


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

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



Это анонимный функтор, а не метод smile обламитесь! Я вообще больше про библиотеки сказал, чем про лямбды))
Дельфи через год загнется) Обещаю! Я ее загну

Это сообщение отредактировал(а) kolesnle - 10.4.2013, 10:34
PM MAIL   Вверх
Deja_Vu
Дата 10.4.2013, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Akella @  10.4.2013,  10:13 Найти цитируемый пост)
это анонимная функция?

Вложенные функции в Pascal были задолго доя lambda функций в том же JS. 
Только вот в lambda передается контекст в которой она выполняется, а вложенные функции в Delphi Language, на сколько я знаю - нет.

Добавлено через 1 минуту и 36 секунд
Цитата(kolesnle @ 10.4.2013,  10:32)
Это анонимный функтор, а не метод smile обламитесь! Я вообще больше про библиотеки сказал, чем про лямбды))
Дельфи через год загнется) Обещаю! Я ее загну

Вообще Delphi Language идеальный язык для обучения.
И зачем его загибать? Лучше бы C++ загнули - то ещё говнецо.
PM Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

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

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


 




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


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

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