Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 164 • Страница 7 из 9<  1 ... 4  5  6  7  8  9  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Junior
Статус: Не в сети
Регистрация: 08.08.2006
Я начал с Си++, а закончил Ассемблером. Мне хватает. Что касается Паскаля и его IDE - Делфи все это ерунда, придуманная для того, чтобы дать студентам представление о программировании в целом. Но писать профессианально программы на этом - увольте. Для примера - программа для винды, выводящая пустое окно на экран, написанная на Builder C++ 6 занимает на винчестере около 500 кб. Та же программа написанная на ассемблере с использованием чистого API - 8 кб. Делайте выводы...



Партнер
 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Коллеги, перенес ваш диалог в эту тему :)
Exec это не показатель.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Daemon
Daemon писал(а):
Exec это не показатель.

Да чего там не показатель, ИМХО правильно чел себя позиционирует. :)
Прочитал книжку – попробовал, значит знает. :D
Может же for какой-нить на Сях замутить, на ассме 5 строк написать, шо ИЩО надо. :lol:
Я вот тоже отпишусь. :D :haha:
Юзаю: ассемблер, С, С++, С#, VB, Object Pascal aka Делфа.
Правда усе кроме C# & Delphi больше в режиме чтения.
А без С и правду никак, бо иначе как же идеи и исходники тырить? :haha:

Exec
Exec писал(а):
Что касается Паскаля и его IDE - Делфи все это ерунда, придуманная для того, чтобы дать студентам представление о программировании в целом.

Аж прослезился… :lol:

Exec писал(а):
Для примера - программа для винды, выводящая пустое окно на экран, написанная на Builder C++ 6 занимает на винчестере около 500 кб. Та же программа написанная на ассемблере с использованием чистого API - 8 кб.

А шо мешает в том же Builder C++ использовать API? :)
Для примера в Delphi (извини, что не в Builder-ре, но ИМХО одни "грабли", тока вид сбоку), создается окно, метка, поле ввода, кнопка и проверяется пароль.
Размер после компиляции: 17408 байт. :D
Исходник прилагаю, посмотреть может каждый. :)
Код:
program Demo;

uses
  Windows, Messages;

var
  WinClass: TWndClassA;
  Inst, Handle, Button1, Label1, Edit1, hFont, WX, WY, WW, WH: Integer;
  Msg: TMsg;
  Password: String;

function CheckPassword(Value: String) : Boolean;
var
  Textlength: Integer;
  Text: PChar;
begin
  TextLength:= GetWindowTextLength(Edit1);
  GetMem(Text, TextLength + 1);
  try
    GetWindowText(Edit1, Text, TextLength + 1);
    Result:= (Text = Value);
    if not Result then
    begin
      MessageBoxA(Handle, 'Very bad... :)' , 'Password check', MB_OK);
      SetWindowText(Edit1, '');
      SetFocus(Edit1);
    end;
  finally
    FreeMem(Text, TextLength + 1);
  end;
end;

function WindowProc(hWnd, uMsg,   wParam,   lParam: Integer): Integer; stdcall;
var
  StrTmp: String;
begin
  StrTmp:= 'Password is correct :)' + #13 + 'Good luck ;)';
  Result:= DefWindowProc(hWnd, uMsg, wParam, lParam);
  if (lParam = Button1) and (uMsg = WM_COMMAND) then
    if CheckPassword (Password) then
    begin
      MessageBoxA(Handle, PChar(StrTmp) , 'Password check', MB_OK);
      Halt;
    end;
  if uMsg = WM_DESTROY then
    Halt;
end;

begin
  WW:= 305;
  WH:= 75;
  WX:= (GetSystemMetrics(SM_CYVIRTUALSCREEN) div 2) - (WH div 2);
  WY:= (GetSystemMetrics(SM_CXVIRTUALSCREEN) div 2) - (WW div 2);
  Password:= 'Over'; // Это типа пароль ;) :)))
  Inst:= hInstance;
  with WinClass do
  begin
    Style:= CS_CLASSDC or CS_PARENTDC;
    lpfnWndProc:= @WindowProc;
    hInstance:= Inst;
    hbrBackground:= color_btnface + 1;
    lpszClassName:= '_SGK_DEMO';
    hCursor:= LoadCursor(0, IDC_ARROW);
  end;
  RegisterClass(WinClass);
  Handle:= CreateWindowEx(WS_EX_TOPMOST, '_SGK_DEMO', 'Demo form _SGK',
                          WS_VISIBLE or WS_SIZEBOX or WS_CAPTION or WS_SYSMENU,
                          WX, WY, WW, WH, 0, 0, Inst, nil);
  Button1:= CreateWindow('Button', 'OK', WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or
                         BS_TEXT, 216, 8, 75, 25, handle, 0, Inst, nil);
  Label1:= Createwindow('Static', '', WS_VISIBLE or WS_CHILD or SS_LEFT,
                        8, 12, 76, 13, Handle, 0, Inst, nil);
  Edit1:= CreateWindowEx(WS_EX_CLIENTEDGE, 'Edit', '', WS_CHILD or WS_VISIBLE or
                         WS_BORDER or ES_PASSWORD, 88, 8, 121, 21, Handle, 0, Inst, nil);
  hFont:= CreateFont(-11, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET,
                     OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                     DEFAULT_PITCH or FF_DONTCARE, 'MS Sans Serif');
  if hFont <> 0 then
  begin
    SendMessage(Button1, WM_SETFONT, hFont, 0);
    SendMessage(Label1, WM_SETFONT, hFont, 0);
    SendMessage(Edit1, WM_SETFONT, hFont, 0);
  end;
  SetWindowText(Label1, 'Enter password:');
  SetFocus(Edit1);
  UpdateWindow(Handle);

  while(GetMessage(Msg, Handle, 0, 0)) do
  begin
    TranslateMessage(msg);
    DispatchMessage(msg);
  end;
end.


Exec писал(а):
Делайте выводы...

Сделали… :)


 

Advanced member
Статус: Не в сети
Регистрация: 12.01.2004
Exec
Exec писал(а):
Что касается Паскаля и его IDE - Делфи все это ерунда, придуманная для того, чтобы дать студентам представление о программировании в целом. Но писать профессианально программы на этом - увольте

Ну да, совсем. Серьезная CRM система, написанная на Delphi - это считается за профессионально? При чем я писал там логику, не люблю междумордья рисовать вообще.
_SGK
_SGK писал(а):
Для примера в Delphi (извини, что не в Builder-ре, но ИМХО одни "грабли", тока вид сбоку)

Не те же. Во временя 6-го билдера (дальше на него не смотрел) размер получался больше, чем на делфи.

_________________
Sapienti sat


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
--Vel--
--Vel-- писал(а):
Ну да, совсем. Серьезная CRM система, написанная на Delphi - это считается за профессионально? При чем я писал там логику, не люблю междумордья рисовать вообще.
_SGK _SGK писал(а):
Для примера в Delphi (извини, что не в Builder-ре, но ИМХО одни "грабли", тока вид сбоку)

Не те же. Во временя 6-го билдера (дальше на него не смотрел) размер получался больше, чем на делфи.

Извиняйте, под граблями я имел в виду сам принцип юзанья WinAPI. :)
Просто у меня сложилось впечатление, что многие оценивают определенные среды разработки, так, как оценивают айсберги. :)
Оце бачу (знаю) - це есть :), шо не бачу або не знаю - того нема… :haha:


2ALL
Всем любителям маленьких размеров :haha: исполняемых файлов ессно. :wink:
Кто нить из вас пытался поинтересоваться тем, сколько памяти кушает процесс, если запускать два однотипных exe-шника, тока один написан на c использованием VCL и весит соответственно, а другой нет.
Попробуйте и будете очень удивлены. :D
Это я к тому, что имея в системнике два винта, один на 400GB, другой на 160GB мну глубоко насрать :) скока будет весить exe-шник, 16Kb или 500, бо после запуска памяти будет скушано ~ одинаково. :haha:


 

Advanced member
Статус: Не в сети
Регистрация: 12.01.2004
_SGK
На самом деле у VCL есть и похуже недостатки, чем размер исполняемого файла (который, кстати, очень мало уже кого волнует, если говорить о прикладном программировании). Но тем не менее Delphi/Builder (для меня только Delphi) неплохими средствами разработки со своими недостатками (как и у других, между прочим). Да и размер занимаемой процессом памяти меня на данный момент тоже мало волнует. Грубо говоря различные факторы должны волновать там, где они на самом деле имеют значение. Я тоже страдал фигней и на асме рисовал win формы. А смысл? Для развлечения можно. А серьезно это делать очень редко стоит.
PS: Кстати, exeшник, написанный в помощью VCL памяти все же будет больше будет кушать - ему нужно много чего туда поднять, в отличие от exeшника, написанного на C++ с тем же MFC. Но не сильно больше, да и не суть важно это.

_________________
Sapienti sat


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
--Vel--
--Vel-- писал(а):
На самом деле у VCL есть и похуже недостатки

Безусловно, за все нужно платить, и за то, чтобы пионЭры :) могли создавать полноценный (для определенных направлений) софт тоже.
Не пионЭры должны помнить о том, что VCL начинается с TObject, и почти ничего невозможного нет - ограничение ИМХО накладывает только ДНК ;).
--Vel-- писал(а):
Кстати, exeшник, написанный в помощью VCL памяти все же будет больше будет кушать - ему нужно много чего туда поднять

Кое что можно подчистить, смотри выше.

--Vel-- писал(а):
написанного на C++ с тем же MFC

Имелась ввиду одна среда.

--Vel-- писал(а):
Но не сильно больше, да и не суть важно это.

Согласен. :)
Есть направления, где без C++ ловить нечего.
Вопрос в другом, хватит ли мозгов (опыта, знаний) у конкретного программера для реализации этих направлений :).
А то на коньках с клюшкой гонять все могут :), а Харламов как был один, так и остался… ;)


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
_SGK писал(а):
Всем любителям маленьких размеровисполняемых файлов ессно. Кто нить из вас пытался поинтересоваться тем, сколько памяти кушает процесс, если запускать два однотипных exe-шника, тока один написан на c использованием VCL и весит соответственно, а другой нет.

Замечал. Даже самое левое окно(хоть на асме написано) отъест больше метра памяти. А вот маленький размер(экзэшника :D ) это приятно. В первую очередь за то что траффика меньше(порой ощутимо) идёт на скачку. Чтобы стало понятнее(для тех кто в танке :) ) загляните в ту же ветку оперы - как там народ за каждый килобайт трафика борется(чё-только не поставят ради уменьшения). Да и просто, согласитесь, открывать проги из интернета по простому клику в мгновение намного приятнее чем запускать качалку и ждать время(пусть даже не большое, но всё же).
_SGK писал(а):
Кое что можно подчистить, смотри выше.

Это приведённый код?! Нифига себе оптимизация :) . На си как-то приятнее(или привычнее) такой код смотрится. Кстати студия собрала бы такой код в килобайта 3-4 ;)


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
mein
mein писал(а):
Да и просто, согласитесь, открывать проги из интернета по простому клику в мгновение намного приятнее чем запускать качалку и ждать время(пусть даже не большое, но всё же).

Согласен. :)
ИМХО можно либо паковать, либо юзать Виндовые контролы через API, как приведено выше.

mein писал(а):
Это приведённый код?

Неа. :)
Это:
_SGK писал(а):
Не пионЭры должны помнить о том, что VCL начинается с TObject

И тянуть в проект весь "мусор" вовсе не обязательно ;)
Добавлено спустя 1 час, 44 минуты, 44 секунды
mein
mein писал(а):
загляните в ту же ветку оперы - как там народ за каждый килобайт трафика борется

Кстати, судя по всему, трафиком озабочены лишь представители СНГ и подобных хм-хм развивающихся стран.
У меня много друзей за бугром.
Когда мне из Германии и Канады "пачками" слали "фотки" -*.bmp 1280x1024 я еще как-то терпел (хотя в восторге ессно не был), но когда из США прислали "пачку" тупых американских "карикатур" -> *.bmp :shock: (типа посмеемся вместе), я не выдержал и написал все, что о них – буржуях и их дурацких карикатурах думаю.
При встрече пришлось извинятся :), бо гнев мой понят не был.


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
Цитата:
Неа.
Это:
_SGK писал(а):
Не пионЭры должны помнить о том, что VCL начинается с TObject

И тянуть в проект весь "мусор" вовсе не обязательно

понятно, сказывается отсутсвие опыта с сим продуктом :) .
_SGK писал(а):
Согласен. ИМХО можно либо паковать, либо юзать Виндовые контролы через API, как приведено выше.

Ну это всё уплавыющие в небытие мечты :) - всё равно щас уже почти всё пишется современными средствами. И производители железа только рады этому: тормозит программа?! - покупайте ребятки новый наш камушек, да оперативки не забудте нарастить :haha: . Никуда не денемся.


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
mein
mein писал(а):
Ну это всё уплавыющие в небытие мечты - всё равно щас уже почти всё пишется современными средствами.


Ага, просто смотри откуда все началось:

Exec писал(а):
Но писать профессианально программы на этом - увольте.

плюс :)
Exec писал(а):
Builder C++ 6 занимает на винчестере около 500 кб. Та же программа написанная на ассемблере с использованием чистого API - 8 кб. Делайте выводы...

Читая подобный пост даже невооруженным взглядом видно, что, мягко говоря человек и понятия не имеет о том, что постит.
Достали уже пионЭры своими умняками, даже комментировать это не буду.
Я так думаю, что если реально колбасит :) от размера, то от использования VCL и отказаться можно (опять же ессно если мозгов хватит). :)
Кстати, не знаю не одного человека, который бы отказался от использования действительно необходимого ПО, по причине большого размера исполняемого файла. :haha:

mein писал(а):
И производители железа только рады этому: тормозит программа?! - покупайте ребятки новый наш камушек, да оперативки не забудте нарастить . Никуда не денемся.

Отож…


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Набрел вот случайно на "антикварное" :), но любопытное чтиво.
Ввиду юзанья C# оно мне показалось актуальным.
Особенно последние два предложения. ;)

Марко Кэнту писал(а):
"Чистые" объектно-ориентированные языки, например Java и SmallTalk, не позволяют определять глобальные процедуры, так что приходится использовать методы класса.
Это считается хорошим объектно-ориентированным подходом, но как мне кажется, не ведет к улучшению читабельности кода.
Наоборот, это заставляет программиста использовать объектно-ориентированный код там, где это неадекватно ситуации и даже писать бесполезные по своей сути классы только для того, чтобы иметь метод класса.
Я считаю, что это не преимущество, а недостаток таких языков.



Кто шо скажет (аргументировано :) по теме)?


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
_SGK согласен, абсолютно согласен. Не даром ведь МС в .net 2.0 включила static классы ;)

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
А я нет. Вернее как - вообщем-то ход мыслей верный - НО в применении конкретно к Java у меня есть куча претензий:
1) кто сказал что Java (про смолтолк не скажу, бо не знаю) - универсальный язык? У него есть конкретные области применения - и все.
2) кто сказал что Java - чистый ОО язык? Чистый ОО язык не должен поддерживать встроенные типы (int, char, etc), а заменять их классами. В Java есть обертки для типов - но сами типы поддерживаются и активно используются.
3) какие ситуации? Системное программирование - Java не для этого. Написание консольных прог по типу Hello world ИЛИ однометодные программы в стиле школьных\вузовских лаб? А тут Java зачем? Для изучения самого Java ? Структурное программирование надо проходить на других языках (C, Pascal), а на джаве надо СРАЗУ объяснять что такое класс и с чем его едят. Потому максимум однометодных программок штук 10 будет. Какая важность.


 

Member
Статус: Не в сети
Регистрация: 18.08.2005
Откуда: Новороссийск
Меня давно интересует вопрос, как узнать какие библиотеки динамической компановки использует программа, а то часто получается, что без установленной среду разработки проги просто не работают, т.к. требуют те или иные библиотеки, а делать для всех программ инсталляторы как правило нет смысла, особенно если программки маленькие. Этот вопрос касается как среды Builder C++ так и Visual Studio C++, помогите плиз!


 

Advanced member
Статус: Не в сети
Регистрация: 12.01.2004
-=alex-forewer=-
В такой случае лучше статически компановать. В Builder C++ не так уж и просто выловить все, что написанная программа будет использовать. Во всяком случае, простого способа я непомню.
_SGK
_SGK писал(а):
Кто шо скажет (аргументировано по теме)?

Не согласен. У людей просто сказывается груз процедурного наследия. Действительно, а что тут плохого, дай-ка я объявлю одну глобальную переменную или функцию, ничего плохого в этом нет. Так же будут думать еще пяток умников, работающих над проектом. А потом как откроешь проект, так и за голову хвататься можно. Только не помогает уже. При грамотном изначальном проектировании объектной модели будушего проекта в 99.9% случаев не приходится хвататься за голову, а как бы извернуться так, чтобы эта часть была доступна всем и везде. Обернуть можно все. Более того, удобочитаемость и производительность потом вырастает. Главное, не бросаться сразу кодить, а подумать, обрисовать и разложить по полочкам. А уже потом очень быстро и без нервного напряжения все закодировать

_________________
Sapienti sat


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
-=alex-forewer=- в поставке студии идет утилита depends, используй ее.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 24.09.2004
Откуда: Belarus, Mensk
--Vel-- писал(а):
очень быстро и без нервного напряжения все закодировать


Сказка... А вообще в принципе можно и "сразу бросаться"... писать тесты :)

_________________
ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Спорить не буду, потому что лично мне все равно как реализовывать, через метод класса или корректно оформленной глобальной процедурой (если есть выбор).
ИМХО очень простой вопрос заданный чисто из любопытства: хорошо или нет на ваш взгляд, что везде и где нужно и где нет, приходится использовать методы классов.

Catar
Catar писал(а):
А я нет. Вернее как - вообщем-то ход мыслей верный

Вы такой противоречивый… :)

Catar писал(а):
НО в применении конкретно к Java у меня есть куча претензий

Кто бы сомневался… ;)

--Vel--
--Vel-- писал(а):
Действительно, а что тут плохого, дай-ка я объявлю одну глобальную переменную или функцию, ничего плохого в этом нет.

Во уже и глобальные переменные в ход пошли. :haha:
Под глобальными процедурами подразумевались процедуры определенного направления оформленные, как правило, отдельным модулем.
Как в таком случае можно заблудиться даже ума не приложу. :spy:

--Vel-- писал(а):
Так же будут думать еще пяток умников, работающих над проектом.

Фантастики небось в детстве начитались? :)
Умников в совместных проектах нет, их удел – одиночество типа: "Hello World" да самопальные бенчи.

--Vel-- писал(а):
При грамотном изначальном проектировании объектной модели будушего проекта в 99.9% случаев не приходится хвататься за голову, а как бы извернуться так, чтобы эта часть была доступна всем и везде

За безграмотность никто ведь и не агитирует :), а для квалифицированного специалиста выяснить "откуда растут ноги" точно не проблема.

--Vel-- писал(а):
Главное, не бросаться сразу кодить, а подумать, обрисовать и разложить по полочкам. А уже потом очень быстро и без нервного напряжения все закодировать

Согласен, скажу даже больше, так во всех книжках учат. :)
Вот правда в жизни бывает иначе, потому как "полочки" эти в процессе разработки постоянно добавляются. ;)

eisernWolf
eisernWolf писал(а):
Сказка...

Во-во… :beer:


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
_SGK писал(а):
Фантастики небось в детстве начитались? Умников в совместных проектах нет, их удел – одиночество типа: "Hello World" да самопальные бенчи.

Твои слова больше не фантастику смахивают ;) Команды професионалов в условии недостатка кадров на IT специальности встречаются не так часто, как хотелось бы. Для примера посмотри сорцы какого-нибудь действительно большого проекта, к примеру движка Q3. Тебя его состояние очень удивит ;)

_________________
Ку ку


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 164 • Страница 7 из 9<  1 ... 4  5  6  7  8  9  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan