Re[8]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 30.04.08 10:09
Оценка:
Здравствуйте, Mamut, Вы писали:

H>>Мы тут, что С++ обсуждаем или Java? Ты сказал, что в Delphi чего-то нет. Я тебе говорю, что есть (может оно и в семерке уже было, я не помню).


M>И сколько 7-ка стоит?


Я не понял к чему вопрос... Вроде не продают ее уже.
Re[4]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 30.04.08 10:11
Оценка:
Здравствуйте, Lloyd, Вы писали:

K>>>6. Несовместимость разных версий IDE


H>>А зачем мне совместимость IDE? Чего там совмещать?


L>Видимо имелось в виду то, что формат dfm-а время от времени перестает пониматься более новой версией IDE.


Microsoft движется (хоть и медленно) в правильном направлении со своим Visual Studio — начиная с VS 2005 все файлы проектов C# и VB это не что иное, как xml-скрипт msbuild. Солюшен VS 2005 можно собрать без самого VS 2005 — просто вызвав msbuild <name>.sln, где msbuild идет в поставке с .NET Framework, начиная с .NET 2.0.
Msbuild сам по себе фактически полный аналог (функционально) nAnt`у. Позволяет писать фактически какой угодно сложности сценарии по сборке, тестированию и deploying`у.
Re[7]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.04.08 10:22
Оценка:
Здравствуйте, hattab, Вы писали:

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


H>>>Видимо. И не только мне. На форумах обсуждалось неоднократно с последующими советами понавставлять по коду GC.Collect

G>>Мда... Перечитайте лучше форумы.
H>Мне-то это зачем? У меня таких проблем нет и небыло никогда...
Это еще раз показывает что вы кроме делфи ничего толком не знаете.

G>>>>А как еще можно было сделать динамические строки и массивы, но не нагружать программиста вызовами Free?

H>>>Ну так это же плюс. Чего ты его охаял?
G>>Это не плюс, это необходимость. Плюс был бы если бы можно было врубать GC для всех объектов.
H>Для тебя это плюс? Для меня нет.
А зря

H>>>Под Delphi я и имел ввиду компилятор (а что же еще-то может за этим следить...).

G>>В .NET следит рантайм.
H>Мы не о .Net тут говорим, если я не ошибаюсь.
Мы тут сравниваем Delphi с другими языками и платформами. Достоинства и недостатки видны только в сравнении с другими

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

G>>В C# люди работают, не зная с чем, и баги не возникают почему-то.
H> уморил.
Может тебе и смешно, а я уже успел почуствовать насколько меньше люди ошибатся с использованием C# и Java, по сравнению с темже Delphi
Причем среднее всермя обучения C# гораздо меньше чем для Delphi

G>>Я ловил сотни ошибоки из-затого что люди забывали/не_знали_что_надо вызывать Free. В Управляемых средах вообще таких проблем нет. Придирки вполе по делу. Вы просто не понимаете, потому что не работали с этим.

H>Если люди чего-то там не знали/забывали, это характеризует только их, но не инструмент. Если выражаться простым языком: не можешь срать -- не мучай жопу. В управляемых средах, таки, есть место ручной очистке (пусть даже семантически скрываемой) для объектов владеющих ресурсами. Что начнется, когда человек, который работает не зная с чем (с твоих же слов), будет следовать навязываемой идеологии...
Какой-то бред, в чем смысл вашего высказывания?

H>>>Какая разница кто-кого догоняет или откуда заимствуются те или иные фичи? Ты тут о минусах говорил, я же тебе на плюсы указываю.

G>>Эти плюсы не перекрывают минусы. А в других языках и платформах минусов поменьше.
H>В других платформах есть тормоза неизвестно откуда появляющиеся, но теория их существование отрицает
Что дороже покупка в два раза более мощногокомпьютера или в два раза больше времени работы программиста?

H>Мы тут, что С++ обсуждаем или Java? Ты сказал, что в Delphi чего-то нет. Я тебе говорю, что есть (может оно и в семерке уже было, я не помню).

Перечитай первые посты. Идет сравнение Delphi c другими популярными сейчас языками и платформами.

Если вам так нарвится делфи, то откройте ветк в которой опишите чем вам так нравится программировать на Delphi. Желательно в КУ.

ЗЫ Можем вспонить web. какие у делфи возможности создания web-приложений? Правильно — никаких!!!! Это удар ниже пояса.
Re[5]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 30.04.08 10:26
Оценка: +1
Здравствуйте, kuj, Вы писали:

kuj>Microsoft движется (хоть и медленно) в правильном направлении со своим Visual Studio — начиная с VS 2005 все файлы проектов C# и VB это не что иное, как xml-скрипт msbuild. Солюшен VS 2005 можно собрать без самого VS 2005 — просто вызвав msbuild <name>.sln, где msbuild идет в поставке с .NET Framework, начиная с .NET 2.0.

kuj>Msbuild сам по себе фактически полный аналог (функционально) nAnt`у. Позволяет писать фактически какой угодно сложности сценарии по сборке, тестированию и deploying`у.

С 2007 Delphi тоже использует msbuild.
Re[8]: Чем вам всем не угодил Delphi?
От: DOOM Россия  
Дата: 30.04.08 10:28
Оценка:
Здравствуйте, kuj, Вы писали:

DOO>>Ой, сейчас разойдусь... Perl cо своим криптосинтаксисом тут всех уделает


kuj>Я о том, что пост и пре инкременты и декременты к сожалению в ряде случаев понижают читабельность кода.


Согласен. Более того, в приведенном мною примере для перла C++'ник получит неожиданный для него результат — вот это грабли, дак грабли.
Re[6]: Чем вам всем не угодил Delphi?
От: DOOM Россия  
Дата: 30.04.08 10:31
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>Ну почитай про то, как реализованы generics в .Net Узнаешь много нового


В .Net не понимаю почти ничего — я тут про С++ только рассуждаю.
Почитаю я только после того, как закончу Windows Internals, Windows для профессионалов, MS SQL Server 2005 справочник администратора, Защищенный код. И то, если сюда не включится что-нибудь новенькое
Re[9]: Чем вам всем не угодил Delphi?
От: Mamut Швеция http://dmitriid.com
Дата: 30.04.08 10:34
Оценка:
M>>И сколько 7-ка стоит?

H>Я не понял к чему вопрос... Вроде не продают ее уже.


Я о том, что очень мелкие изменения/добавления/исправления оказываются в сильно разных версиях. Так никаких денего не напасешься
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>


dmitriid.comGitHubLinkedIn
Re[6]: Чем вам всем не угодил Delphi?
От: DOOM Россия  
Дата: 30.04.08 10:38
Оценка: +1
Здравствуйте, goto, Вы писали:

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

Да при чем тут конкретно синтаксис — libc осталась. Появились char * vs std::string. Много еще таких несоответствий — если уж придумывали как отдельный язык, то и надо было делать отдельным языком, а поддержку C вынести в опциональную библиотеку, например.
Re[5]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 30.04.08 10:39
Оценка:
Здравствуйте, hattab, Вы писали:

H>>>И неконтролируемая... Из-за которой, порой, возникают прелесные фризы на ровном месте.


kuj>>Не может быть никаких фризов. Сборщик муссора ведь не в главном потоке приложения выполняется.


H>Суслика видишь? Нет. А он есть (c) ДМБ. А сборщику не нужно лочить кучу, чтоб дефрагментацию делать? А процы уже у всех поголовно двух/четырех головые?


То, чего пользователь не видит для него не существует. Это только то, что имеет значение.

Что до процессоров — наши .NET 2.0 и 3.5 сборки крутятся на довольно старых компьютерах. На производительность и тем более фризы никто пока не жаловался.

Вот, кстати, почитай http://msdn.microsoft.com/en-us/library/ms973837.aspx#dotnetgcbasics_topic4

H>>>Да ты что? Управляемая (читай контролируемая) сборка мусора это недостаток?


kuj>>В общем случае это таки недостаток. Особенно, когда нет в наличии generic smart pointer`ов (прерогатива C++).


H>Так в чем недостаток-то?


В том, что GC один на всех. Если один процесс пнет его — очисти кучу в то время, как другой процесс нагружает его alloc`ами, то что произойдет? GC сам должен регулировать этот процесс, чтоб для пользователя он был абсолютно незаметным.

kuj>>Без полноценного DI в Delphi толку от интерфейсов куда как меньше.


H>Чего-то не улавливаю связи...


Я писал где-то в этом топике. Вся сила интерфейсов раскрывается при наличии полноценного DI/IoC контейнера.
Re[8]: Чем вам всем не угодил Delphi?
От: TheEvilOne Россия  
Дата: 30.04.08 10:39
Оценка: :)))
Здравствуйте, kuj, Вы писали:

kuj>Я о том, что пост и пре инкременты и декременты к сожалению в ряде случаев понижают читабельность кода.


Зато в C можно писать вот так (IOCCC, 17th IOCCC winner — arachnid.c):

#include <ncurses.h>/*****************************************************/
            int               m[256                   ] [         256   ],a
 ,b   ;;;   ;;;   WINDOW*w;   char*l=""   "\176qxl"   "q"   "q"   "k"   "w\
xm"   "x"   "t"         "j"         "v"         "u"         "n"         ,Q[
 ]=   "Z"   "pt!ftd`"   "qdc!`eu"   "dq!$c!nnwf"/**   ***   */"t\040\t";c(
int   u ,         int         v){                     v?m   [u]         [v-
 1]   |=2,m[u][v-1] &   48?W][v-1   ] &   15]]):0:0;u?m[u   -1][v]|=1   ,m[
 u-               1][   v]&         48?               W-1   ][v         ]&
15]   ]):0:0;v<   255   ?m[   u][v+1]|=8,m[u][v+1]&   48?   W][   v+1]&15]]
):0         :0;         u <               255   ?m[   u+1         ][v   ]|=
4,m[u+1][   v]&48?W+1][v]&15]]):0:0;W][   v]&   15]   ]);}cu(char*q){   return
 *q               ?cu   (q+         1)&         1?q   [0]               ++:
q[0   ]--   :1;   }d(   int   u ,   int/**/v,   int/**/x,   int   y){   int
Y=y   -v,   X=x         -u;   int         S,s   ;Y<         0?Y   =-Y   ,s,
s=-   1:(   s=1);X<0?X=-X,S   =-1  :(S=   1);   Y<<=   1;X<<=1;   if(X>Y){
int   f=Y               -(X   >>1   );;               while(u!=         x){
f>=   0?v+=s,f-=X:0;u   +=S   ;f+=   Y;m[u][v]|=32;mvwaddch(w,v   ,u,   m[u
 ][               v]&   64?   60:         46)         ;if         (m[   u][
v]&16){c(u,v);;   ;;;   ;;;   return;}}   }else{int   f=X   -(Y>>1);;   while
 (v   !=y         ){f   >=0         ?u   +=S,               f-=         Y:0
 ;v   +=s   ;f+=X;m[u][v]|=   32;mvwaddch(w,v   ,u,m[u][v]&64?60:46);if(m[u
 ][                     v]&         16)   {c(   u,v                     );
  ;   return;;;}}}}Z(   int/**/a,   int   b){   }e(   int/**/y,int/**/  x){
int               i ;         for         (i=         a;i               <=a
+S;i++)d(y,x,i,b),d(y,x,i,b+L);for(i=b;i<=b+L;i++)d(y,x,a,i),d(y,x,a+   S,i
 );                     ;;;         ;;;         ;;;               ;;;   ;
  mvwaddch(w,x,y,64);   ;;;   ;;;   ;;;   prefresh(   w,b,a,0,0   ,L-   1,S-1
);}             main(         int               V ,   char              *C[
  ]   ){FILE*f=   fopen(V==1?"prog.c"/******/   :C[   1],"r");int/**/x,y,c,
v=0         ;;;      initscr              ();               Z(Z         (raw
 ()   ,Z(   curs_set(0),Z(1   ,noecho()))),keypad(    stdscr,TRUE));w   =newpad
  (   300,  300               ) ;   for         (x=   255   ; x   >=0   ;x--
  )   for   (y=   255   ;y>=0;y--   )m[   x][   y]=   0;x=y=0;refresh( );while
  (   (c=                           fgetc (f)   )+1)                    {if(
0||c==10||  x==   256){x=0;y++;if(y==256  )break;;}   else{m[x][y]=(c   ==
'~'   ?64   : c   ==32              ?0:         16)   ;;x               ++;
      }}for(x=0   ;x<   256;x++)m   [x][0]=16   ,m[   x][   255]=16;for(y=0
;y<         256   ; y         ++)   m[0         ][y   ] =               16,
m[255][y]   =16   ;a=b=c=0;   x=y   =1;   do{v++;mvwaddch   (w,   y,x   ,m[
x][         y]&               32?   m[x                     ][y   ] &   16?
 0|   acs_map[l[m[x][y]&15]]:46 :   32);c==0163&&!(m[x][y+1]&16)?y++:   0;c
 ==   119         &&!         (m[                                       x][
 y-   1]&   16)   ?y--:0;;c   ==97  &&!(m[x-1][y]&16)?x--:0;c==100&&!(m[x+1
 ][   y]&   16)         ? x   ++:0              ;if(                    c==
 3-   1+1   ){endwin(   );;   return(0)   ;}x   -a<5?a>S-   5?a-=S-5:(a=0):
0;x               -a>         S-5?a<255   -S*         2?a               +=S
-5:(a=256-S):0;   y-b<5?b>L-5?b-=L-5:(b   =0)   :0;   y-b>L-5?b<255-L   *2?
b+=                                       L-5   :(b                     =256
-L)   :0;e(x,y);if(m[x][y]&64)break;}while((c=getch())!=-1);endwin();cu(Q);
printf(Q,v);}


Кто-нибудь может то же самое написать для Delphi?
Re[8]: Чем вам всем не угодил Delphi?
От: DOOM Россия  
Дата: 30.04.08 10:40
Оценка: +2 :)))
Здравствуйте, Mamut, Вы писали:

H>>Мы тут, что С++ обсуждаем или Java? Ты сказал, что в Delphi чего-то нет. Я тебе говорю, что есть (может оно и в семерке уже было, я не помню).


M>И сколько 7-ка стоит?


Ну это удар ниже пояса... Готов поспорить, что несмотря на приличную популярность Дельфи в 90-ые, продаж по России почти не было
Re[8]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 30.04.08 10:41
Оценка: -3
Здравствуйте, gandjustas, Вы писали:

H>>>>Видимо. И не только мне. На форумах обсуждалось неоднократно с последующими советами понавставлять по коду GC.Collect

G>>>Мда... Перечитайте лучше форумы.
H>>Мне-то это зачем? У меня таких проблем нет и небыло никогда...
G>Это еще раз показывает что вы кроме делфи ничего толком не знаете.

Ты обо мне поговорить хочешь?

H>>>>Под Delphi я и имел ввиду компилятор (а что же еще-то может за этим следить...).

G>>>В .NET следит рантайм.
H>>Мы не о .Net тут говорим, если я не ошибаюсь.
G>Мы тут сравниваем Delphi с другими языками и платформами. Достоинства и недостатки видны только в сравнении с другими

Ты нить теряешь...

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

G>>>В C# люди работают, не зная с чем, и баги не возникают почему-то.
H>> уморил.
G>Может тебе и смешно, а я уже успел почуствовать насколько меньше люди ошибатся с использованием C# и Java, по сравнению с темже Delphi
G>Причем среднее всермя обучения C# гораздо меньше чем для Delphi

Да-да. Я это уже слышал и не раз. За короткий срок невозможно научиться грамотно программировать на чем-бы то нибыло. Я соглашусь, что двоечнику после Delphi-AccessViolation'ов будет легче под .Net/Java. Однако создавать качественного продукта он не сможет. Пердульки бухгалтерские его удел. Максимум.

G>>>Я ловил сотни ошибоки из-затого что люди забывали/не_знали_что_надо вызывать Free. В Управляемых средах вообще таких проблем нет. Придирки вполе по делу. Вы просто не понимаете, потому что не работали с этим.

H>>Если люди чего-то там не знали/забывали, это характеризует только их, но не инструмент. Если выражаться простым языком: не можешь срать -- не мучай жопу. В управляемых средах, таки, есть место ручной очистке (пусть даже семантически скрываемой) для объектов владеющих ресурсами. Что начнется, когда человек, который работает не зная с чем (с твоих же слов), будет следовать навязываемой идеологии...
G>Какой-то бред, в чем смысл вашего высказывания?

Ты теряешь не только нить...

H>>>>Какая разница кто-кого догоняет или откуда заимствуются те или иные фичи? Ты тут о минусах говорил, я же тебе на плюсы указываю.

G>>>Эти плюсы не перекрывают минусы. А в других языках и платформах минусов поменьше.
H>>В других платформах есть тормоза неизвестно откуда появляющиеся, но теория их существование отрицает
G>Что дороже покупка в два раза более мощногокомпьютера или в два раза больше времени работы программиста?

Поменять парк бухгалтерских машинок из-за одного криворукого идиота? Мы пойдем другим путем.

H>>Мы тут, что С++ обсуждаем или Java? Ты сказал, что в Delphi чего-то нет. Я тебе говорю, что есть (может оно и в семерке уже было, я не помню).

G>Перечитай первые посты. Идет сравнение Delphi c другими популярными сейчас языками и платформами.

Уж не знаю, как ты, а я твои безосновательные выпады парирую.

G>Если вам так нарвится делфи, то откройте ветк в которой опишите чем вам так нравится программировать на Delphi. Желательно в КУ.


Мне оно надо? У меня фетиша-то нету, в отличии от...

G>ЗЫ Можем вспонить web. какие у делфи возможности создания web-приложений? Правильно — никаких!!!! Это удар ниже пояса.


Хотя Delphi и не среда для веб-разработчика, но имеется WebSnap, Intraweb, WebServices. Ты некомпетентен.
Re[10]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 30.04.08 10:48
Оценка:
Здравствуйте, Mamut, Вы писали:

M>>>И сколько 7-ка стоит?


H>>Я не понял к чему вопрос... Вроде не продают ее уже.


M>Я о том, что очень мелкие изменения/добавления/исправления оказываются в сильно разных версиях. Так никаких денего не напасешься


Так ведь можно не покупать все время Enterprise. Потом цена апдейта не сильно большая, насколько я помню. И уж разумеется никто не станет покупать новую версию из-за наличия контейнерной библы. С пятерки на шестерку поползли по причине ее кросплатформенной составляющей и веб-сервисов. На семерку... Не помню нафига поползли Но вообще ты прав, деньги они любят и маркетинг дурацкий был все последние годы.
Re[6]: Чем вам всем не угодил Delphi?
От: wallaby  
Дата: 30.04.08 10:49
Оценка: 1 (1)
Здравствуйте, kuj, Вы писали:

W>>В Delphi нет пост/прекрементов, но это не напрягает и имхо это вообще наследие архитектуры PDP-11, где пост/прекременты поддерживались на уровне системы команд процессора.


kuj>

kuj>int x = 3;

kuj>x += x++;

kuj>


kuj>Вопрос: чему равен x?


Не так интересно что получится, сколько отвечает ли стандарт языка на этот вопрос? Кстати, если склероз не изменяет в ассемблере PDP-11 таких двусмысленностей не было, были "приёмчики" типа

  CMP -(SP),-(SP)


Вопрос: что делает эта инструкция?
[Самым эффективным образом резервирует в стеке 4 байта ]
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Re[9]: Чем вам всем не угодил Delphi?
От: DOOM Россия  
Дата: 30.04.08 10:50
Оценка: 4 (2) :))) :)))
Здравствуйте, TheEvilOne, Вы писали:

TEO>Кто-нибудь может то же самое написать для Delphi?


Еще раз: криптосинтаксис лучше всего развит в перле. Приведенное выше — детский лепет, по сравнению хотя бы с этим:
#!/usr/bin/perl -w                                      # camel code
use strict;

                                           $_='ev
                                       al("seek\040D
           ATA,0,                  0;");foreach(1..3)
       {<DATA>;}my               @camel1hump;my$camel;
  my$Camel  ;while(             <DATA>){$_=sprintf("%-6
9s",$_);my@dromedary           1=split(//);if(defined($
_=<DATA>)){@camel1hum        p=split(//);}while(@dromeda
 ry1){my$camel1hump=0      ;my$CAMEL=3;if(defined($_=shif
        t(@dromedary1    ))&&/\S/){$camel1hump+=1<<$CAMEL;}
       $CAMEL--;if(d   efined($_=shift(@dromedary1))&&/\S/){
      $camel1hump+=1  <<$CAMEL;}$CAMEL--;if(defined($_=shift(
     @camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if(
     defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME
     L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h
      ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@
      camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\
      064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse;
       print"$_\040$Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y
        /LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/;
         $_=reverse;print"\040$_$Camel\n";}';;s/\s*//g;;eval;   eval
           ("seek\040DATA,0,0;");undef$/;$_=<DATA>;s/\s*//g;(   );;s
             ;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__   \124
               \1   50\145\040\165\163\145\040\157\1 46\040\1  41\0
                    40\143\141  \155\145\1 54\040\1   51\155\  141
                    \147\145\0  40\151\156 \040\141    \163\16 3\
                     157\143\   151\141\16  4\151\1     57\156
                     \040\167  \151\164\1   50\040\      120\1
                     45\162\   154\040\15    1\163\      040\14
                     1\040\1   64\162\1      41\144       \145\
                     155\14    1\162\       153\04        0\157
                      \146\     040\11     7\047\         122\1
                      45\15      1\154\1  54\171          \040
                      \046\         012\101\16            3\16
                      3\15           7\143\15             1\14
                      1\16            4\145\163           \054
                     \040            \111\156\14         3\056
                    \040\         125\163\145\14         4\040\
                    167\1        51\164\1  50\0         40\160\
                  145\162                              \155\151
                \163\163                                \151\1
              57\156\056
Re[6]: Чем вам всем не угодил Delphi?
От: TheEvilOne Россия  
Дата: 30.04.08 10:54
Оценка:
Здравствуйте, goto, Вы писали:

G>Если говорить абстрактно, то не знаю, ибо есть мобилы, интеллектуальные пылесосы и крылатые ракеты. Лично на моем огороде все пожрал жук писюк.


А какой архитектуры у Вас дома писюк?
Re[9]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.04.08 10:56
Оценка: +1
Здравствуйте, hattab, Вы писали:

H>Да-да. Я это уже слышал и не раз. За короткий срок невозможно научиться грамотно программировать на чем-бы то нибыло. Я соглашусь, что двоечнику после Delphi-AccessViolation'ов будет легче под .Net/Java. Однако создавать качественного продукта он не сможет. Пердульки бухгалтерские его удел. Максимум.

Что в твоем понимании качественный продукт?
Я видел бухгалтерскую программу на C#, клон программы на Delphi. На шарпе она быстрее работала, была более стабильна и стоила в 2 раза дешевле.

H>Поменять парк бухгалтерских машинок из-за одного криворукого идиота? Мы пойдем другим путем.

Ты не путай, для коробочного продукта примерные параметры по быстродействию известны заранее и продукт не выпустят если не программа не пройдет по этим параметрам. Для ПО, разрабатываемого на заказ бывает выгоднее поменять железо, чем оплачивать работу десятка программистов.
Тем боее саме серьезные потери производительности происходят в основном не по вине платформы, а вследствие неправльного выблора/реализации алгоритмов.

H>Хотя Delphi и не среда для веб-разработчика, но имеется WebSnap, Intraweb, WebServices. Ты некомпетентен.

Ну напиши с помощью этого всего веб-страницу, которя выводи текущее время.
Re: Чем вам всем не угодил Delphi?
От: Mr.Cat  
Дата: 30.04.08 10:59
Оценка:
Здравствуйте, misha_irpen, Вы писали:

_>Что такого рулезного есть в новомоюдых сишарпах и иже с ними кроме монстровидных, а часто еще и тормозных RTE/виртуальных машин? ... неужели всм оказалась так нужна эта управляемость кода?


1)Внимание, сейчас скажу пошлость Кроссплатформенность на уровне "дистрибутива". Конечно, с определенными оговорками и ограниченими, но она есть. В качестве примера гляньте antlr, flex sdk. Как итог — не надо компилить "продукт" под все возможные платформы.
PS: Я не дурак и понимаю, что в реальности не все так просто.

2)Рефлекшн — полезная штука как ни крути. Кстати, думаю, во многом благодаря оному Java и .NET неплохо чувствуют себя в сфере веб-программирования, в отличие от неуправляемых языков. Ну-ка как будет выглядеть шаблонизатор, навроде Velocity на неуправляемом языке? Это к вопросу о...
_>...могу считать себя профессионалом Delphi и ASM. И у меня приактически никогда не возникало проблем из-за каких-то ограничений языка. Я с уверенностью могу сказать, что могу написать на нем абсолютно все что угодно в рамках имеющихся API и математических моделей.
Я не сомневаюсь, что это реализуемо, однако насколько это будет удобно?

3)Простите за тавтологию, "управляемость". Согласитесь, тоже хорошая такая задачка — организовать песочницу для неуправляемого кода. Собственно, там, где нужна песочница (например, в том, что сейчас модно называть rich internet application), и рулят управлемые платформы: flash/flex, silverlight, java.

Собственно, к чему я веду. Управляемость в целом ведет к расширению области применения языка/платформы — и это есть гут. То есть используя практически одну и ту же управляемую платформу, программист может и десктопные приложения разрабатывать, и RIA, и с вебом возиться. Ясно, что различия будут, но не такие большие, как если бы приходилось пользоваться просто различными инструментами. Итого девелоперу, освоившему "десктопный аспект" управляемой платформы, будет легче освоить, например, веб. Что в конечном счете расширяет круг его возможностей.

Ну а по остальной части вопроса... Мне уж и добавить к уже сказанному особо нечего.
Re[6]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 30.04.08 11:01
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>>>Не может быть никаких фризов. Сборщик муссора ведь не в главном потоке приложения выполняется.


H>>Суслика видишь? Нет. А он есть (c) ДМБ. А сборщику не нужно лочить кучу, чтоб дефрагментацию делать? А процы уже у всех поголовно двух/четырех головые?


kuj>То, чего пользователь не видит для него не существует. Это только то, что имеет значение.


Я в WindowsLiveWriter наблюдаю периодические фризы. Не стану утверждать, что это GC или JIT. Но они есть.

kuj>Что до процессоров — наши .NET 2.0 и 3.5 сборки крутятся на довольно старых компьютерах. На производительность и тем более фризы никто пока не жаловался.


kuj>Вот, кстати, почитай http://msdn.microsoft.com/en-us/library/ms973837.aspx#dotnetgcbasics_topic4


Я о работе сборщика читал У меня же предубеждения к .Net'у нет.

kuj>>>В общем случае это таки недостаток. Особенно, когда нет в наличии generic smart pointer`ов (прерогатива C++).


H>>Так в чем недостаток-то?


kuj>В том, что GC один на всех. Если один процесс пнет его — очисти кучу в то время, как другой процесс нагружает его alloc`ами, то что произойдет? GC сам должен регулировать этот процесс, чтоб для пользователя он был абсолютно незаметным.


Мы точно о Delphi говорим? Какие там разные процессы? Или ты про разные Delphi-процессы? Там же нет такого отдельного понятия, как GC в .Net/Java. Просто есть типы с управляемым временем жизни. Вышла переменная из области видимости -- компилер ее тут же зафиналил. Все просто и эффективно.

kuj>>>Без полноценного DI в Delphi толку от интерфейсов куда как меньше.


H>>Чего-то не улавливаю связи...


kuj>Я писал где-то в этом топике. Вся сила интерфейсов раскрывается при наличии полноценного DI/IoC контейнера.


Все это сильно зависит от способа применения и изобретательности
Re[7]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 30.04.08 11:05
Оценка:
Здравствуйте, hattab, Вы писали:

H>>>Видимо. И не только мне. На форумах обсуждалось неоднократно с последующими советами понавставлять по коду GC.Collect


kuj>>Ссылки в студию.


H>Я их не коллекционирую. На хоботе было обсуждение написанного прокси у которого именно фризы и лезли после долгостояния Тут тоже где-то в веб-программировании было нечто подобное.


Называется: слышал звон, да не знаю где он?

H>>>Это с возвратом созданного объекта чтоль? Ну и в чем проблема? Вот GetMem/VirtualAlloc тоже сырую память отдают и ее возвращать нужно. Не смущает? На самом деле ни какой проблемы в этом нет, объекты, как правило создаются для хранения в каких-либо коллекциях/списках и прочих. И уж точно нет ни какого напряга дернуть Free. Придирки, и не более того.


kuj>>Ты забываешь о человеческом факторе.


H>Человеческий фактор отмазка хорошая Кто-то заставляет работать с такими представителями рода человеческого? Delphi 2006 благодаря новому менеджеру памяти исправно сигналит обо всех утечках.


Человеческий фактор это не отмазка, а основной мотивирующий момент при разработке языков программирования.

H>>>Уж не про LINQ ли ты говоришь Ну в 2008 или 2009 обещают анонимные методы добавить еще.


kuj>>Lambda, linq, implicitly typed variables (я, правда, несколько негативно к идеи применения var отношусь, но это тема для отдельного разговора), extension methods, annonymous types, auto properties, type inference, object и collection initializers...


H>И правда, тут об этом не стоит О Delphi таки говорим.


Все познается в сравнении.

H>>>>>Списки (различные), стеки, очереди, бит-контейнеры, ассоциативные массивы. Мало?

G>>>>Это оно когда появилось? Случаем не в Delphi.NET ?
H>>>В нативной 2006 точно есть. Может и в 2005 было, я не помню.
kuj>>Только без generic`ов ОЙ как плохо.

H>Не сильно, если честно



H>Для Delphi 2006 есть неофициальный тул (по сути препроцессор) который реализует много чего: и дженерики, и case по строкам, и exit с возвратом результата. В общем кому нужно -- тот найдет.


Мухи отдельно, котлеты отдельно...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.