Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.11.30;
Скачать: [xml.tar.bz2];

Вниз

А зачем линуксоидам 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.005 c
2-1224240499
Fynjy
2008-10-17 14:48
2008.11.30
При печати выводит диалог с запросом сохранения файла


2-1224561005
Mery
2008-10-21 07:50
2008.11.30
Маска ввода


15-1222743186
Slider007
2008-09-30 06:53
2008.11.30
С днем рождения ! 30 сентября 2008 вторник


3-1210565102
YurikGL
2008-05-12 08:05
2008.11.30
TSimpleDataSet+mySQL+Decimal (15,4) - проблема типов.


2-1224219089
Mamed
2008-10-17 08:51
2008.11.30
SQL Server table changed





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский