Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.30;
Скачать: CL | DM;

Вниз

А зачем линуксоидам Delphi?   Найти похожие ветки 

 
Городской Шаман   (2008-09-27 21:45) [0]

Статистика по операционным системам посетителей ресурса
Microsoft Windows   833   100%   98,58
Linux   9   100%   1,07
xBSD   3   100%   0,36
http://top.mail.ru/oses?id=53505&period=0&date=2008-09-27#

Статистика по браузерам посетителей ресурса
Opera   347   100%   39,39%
Netscape, Mozilla, Firefox, и т.д.   266   100%   30,19%
IE и основанные на IE   248   100%   28,15%
Основанные на KHTML: Konqueror, Safari, Google Chrome и т.д. 20   100%   2,27%
http://top.mail.ru/browsers?id=53505&period=0&date=2008-09-27#


 
Zeqfreed ©   (2008-09-27 21:46) [1]

А флудить и из под линукса хорошо. Тут вообще все хорошо.


 
Anatoly Podgoretsky ©   (2008-09-27 21:53) [2]

Линуксоидам не только Дельфи, но и все не нужно.
То что ты видишь - это не линуксоиды, это у них браузеры такие.


 
Игорь Шевченко ©   (2008-09-27 22:01) [3]

Как бы я иногда из-под линукса сюда хожу. И че ?


 
DVM ©   (2008-09-27 22:17) [4]

Я вообще из под Symbian каждый день сюда хожу. Под Symbian Delphi вообще без надобности.
Ну а по большому счету, в Delphi был Kylix и FreePascal тоже для Delphi "родственник", а под Linux компилирует. Хотя только больной на голову (или человек с очень большим количеством свободного времени) будет писать на паскале под Linux, но тем не менее.


 
@!!ex ©   (2008-09-27 23:19) [5]

> [4] DVM ©   (27.09.08 22:17)

Почему большим количеством времени? За неделю адекватный код с Delphi под FPC Linux портируется(это если вообще никогда раньше не писал под Линукс)


 
DVM ©   (2008-09-27 23:48) [6]


> @!!ex ©   (27.09.08 23:19) [5]


> Почему большим количеством времени?

Заголовочные файлы многие (многие это мягко сказано) отсутствуют для Pascal. Портировать из Си надо - много времени уйдет.


 
DVM ©   (2008-09-27 23:56) [7]


> За неделю адекватный код с Delphi под FPC Linux портируется

Портируются относительно легко относительно несложные программы в основном прикладного характера, да и то если их создавали с учетом возможного портирования в nix. В противном случае портирование сведется к полному переписыванию кода.


 
@!!ex ©   (2008-09-28 00:15) [8]

> [7] DVM ©   (27.09.08 23:56)

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


 
Anatoly Podgoretsky ©   (2008-09-28 00:48) [9]


> DVM ©   (27.09.08 23:48) [6]

Любите Jedi


 
DVM ©   (2008-09-28 00:57) [10]


> @!!ex ©   (28.09.08 00:15) [8]


> Никто и не говорит о портировании системных утилит.

Да и не обязательно системных. Любое более-менее сложное ПО, например, использующее многопоточность (типа сервера какого нибудь многопользовательского) портируется очень со скрипом. Слишком большие различия у Windows и NIX в этом плане.


> Anatoly Podgoretsky ©   (28.09.08 00:48) [9]


> Любите Jedi

А что Jedi переводит заголовочные файлы Linux API на Pascal? Не знал. Да и вряд ли они переведут все. Там стооолько понаписано, мама не горюй.


 
TUser ©   (2008-09-28 09:03) [11]

А я в компклассе под Линухом обычно. Потому что там есть оболочка неудобная, и студенты не будут из-под моего преподского аккаунта работать, пока я от компьютера убежал.


 
@!!ex ©   (2008-09-28 09:33) [12]

> Да и не обязательно системных. Любое более-менее сложное
> ПО, например, использующее многопоточность (типа сервера
> какого нибудь многопользовательского) портируется очень
> со скрипом. Слишком большие различия у Windows и NIX в этом
> плане.

На мой взгляд(сугубо ИМХО) API у них очень похожи и все портируется без проблем.
Те же потоки, что в винде 10 строчек кода, что в Линуксе - теже 10 строчек.


 
DVM ©   (2008-09-28 17:39) [13]


> На мой взгляд(сугубо ИМХО) API у них очень похожи и все
> портируется без проблем.

Да где же оно одинаково. Fork() в Windows вообще отсутствует, попробуй портируй в лоб код хоть с одним единственным таким вызовом. В свою очередь, поддержки потоков совсем еще недавно в Линукс попросу не было, т.к. не было в них особой нужды благодаря Fork() и гораздо более развитым чем в Windows средствам межпроцессного взаимодействия. Потом поддержку потоков добавили, но потоки в Линукс организоаны совсем по-другому. Вообще другая идеология. В Windows процесс это контейнер для потоков, в линукс каждый доп поток приводит к созданию специального доп процесса (вроде бы клона, но не такого как в результате вызова Fork). Взаимодействие между потоками и между процессами в Windows и Linux реализуется по-разному, хотя есть и схожие варианты. Короче, портировать можно, но если о возможности порта позаботились заранее, иначе много надо будет переделывать.


 
Johnmen ©   (2008-09-28 17:52) [14]


> А зачем линуксоидам Delphi?

А тебе зачем?


 
@!!ex ©   (2008-09-28 18:42) [15]

> [13] DVM ©   (28.09.08 17:39)

Мне надоело с вами спорить.
Вот реально рабочий код, кроссплатформенного приложения. реализует интерфейс класса cThread для двух систем:
BOOL CTHRead::StartThRead(BOOL IsSuspend){
   #ifdef __WINDOWS__
DWORD dwTHID;
if (IsSuspend){
      THRead=CreateThread(NULL,100000,(LPTHREAD_START_ROUTINE)&ObjectNewTHRead,this,CR EATE_SUSPENDED,&dwTHID);          
}else{
    THRead=CreateThread(NULL,100000,(LPTHREAD_START_ROUTINE)&ObjectNewTHRead,this,0, &dwTHID);          
};    
   #endif //ifdef __WINDOWS__
   #ifdef __UNIX__
       if (pthread_create(&THRead, NULL, (void*(*)(void*))&ObjectNewTHRead, this)){
        DebugCode(CDEBUG::printerrno(););
        THRead=0;
    };
   #endif //#ifdef __UNIX__
   ASSERT(THRead);
   return(0!=THRead);
};

CTHRead::CTHRead(BOOL IsSuspend){
   IsTerminated = FALSE;
   #ifdef __WINDOWS__
if (IsSuspend){
    FStateTHRead=stSuspend;
}else{
    FStateTHRead=stResume;
};
if (!StartThRead(IsSuspend)) FStateTHRead=stNONE;
   #endif //ifdef __WINDOWS__
   #ifdef __UNIX__
if (IsSuspend){
    FStateTHRead=stCreateSuspend;
}else{
    FStateTHRead=stResume;
    if (!StartThRead()) FStateTHRead=stNONE;
};
   #endif //#ifdef __UNIX__
};
CTHRead::~CTHRead(void){
Terminate();
Wait();
DebugPrint("CTHRead::~CTHRead");
};

void CTHRead::Wait(void){
   #ifdef __WINDOWS__
    if (stNONE!=StateTHRead()){
 WaitForSingleObject(THRead,INFINITE);
 //Тут можно уже на синхронизировать, т.к. поток уже умер
 CloseHandle(THRead);    
};
   #endif //ifdef __WINDOWS__
   #ifdef __UNIX__
       if (stNONE!=StateTHRead()) pthread_join(THRead,NULL);
   #endif //#ifdef __UNIX__
   FStateTHRead = stNONE;
};    

void CTHRead::Suspend(void){
Lock.Enter();
if (stResume==FStateTHRead){
 #ifdef __WINDOWS__
  SuspendThread(THRead);
 #endif //ifdef __WINDOWS__
 #ifdef __UNIX__
  pthread_kill(THRead,SIGSTOP);
 #endif //#ifdef __UNIX__
 FStateTHRead = stSuspend;
};
Lock.Leave();
};

void CTHRead::Resume(void){
Lock.Enter();
   if (stSuspend==FStateTHRead){
 #ifdef __WINDOWS__
     ResumeThread(THRead);
 #endif //ifdef __WINDOWS__
 #ifdef __UNIX__  
     pthread_kill(THRead,SIGCONT);
 #endif //#ifdef __UNIX__  
 FStateTHRead = stResume;
#ifdef __UNIX__
    }else if (stCreateSuspend==FStateTHRead){
        FStateTHRead=stResume;
        if (!StartThRead()) FStateTHRead=stNONE;  
#endif //#ifdef __UNIX__  
 };
Lock.Leave();
};


 
DVM ©   (2008-09-28 18:57) [16]


> @!!ex ©   (28.09.08 18:42) [15]
>
> > [13] DVM ©   (28.09.08 17:39)
>
> Мне надоело с вами спорить.

Я вообще то не спорю, просто беседую. Обрывок кода, приведенноый выше, изначально создавался кроссплатформенным.
Никто же не говорит, что это невозможно, возможно, но не всегда так тривиально. Как Fork() будет в Windows выглядеть?


 
@!!ex ©   (2008-09-28 19:03) [17]

> Как Fork() будет в Windows выглядеть?

Я никогда не заикался о том, что портировать с Линукса на Винду легко.
речь шла как раз о портировании с Винду под Линукс. Проблем с Fork в этом случае не может возникнуть по определению. :)



Страницы: 1 вся ветка

Текущий архив: 2008.11.30;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.016 c
2-1224562444
Alex_Y
2008-10-21 08:14
2008.11.30
Цвета при масштабировании Bitmap в TImage


9-1175256771
3DProger
2007-03-30 16:12
2008.11.30
Создание местности


2-1223920451
Ruzzz
2008-10-13 21:54
2008.11.30
как работать с TSplitter у которого Align := alNone ?


15-1222326187
Vlad Oshin
2008-09-25 11:03
2008.11.30
Дурацкое высказывание


3-1210838730
Анна
2008-05-15 12:05
2008.11.30
insert в Excel