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

Поиск:

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


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Возможно диск зафрагментировался. Или сервисы лишние запустились. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Akella
Дата 2.8.2013, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Тесты DataSnap серверов.
http://robertocschneiders.wordpress.com/20...tability-tests/
Судя по этим тестам, самый быстрый оказался REST-сервер, написанный Delphi с использованием mORMo, и меньше всех памяти сожрал.
PM MAIL   Вверх
k0rvin
Дата 3.8.2013, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Где Erlang, Go, C++ в тесте?


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


Творец
****


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

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



да! где?
PM MAIL   Вверх
Akella
  Дата 5.8.2013, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Вопрос по яве.
Щупаю периодически андроид, изучая уроки.
Прохожу урок что-то типа "Нажатие на кнопку. Несколько кнопок и один метод onClick".
На форме расположены три кнопки, требуется в методе определить что за кнопка нажата и выполнить несколько действий (покрасить форму в соответствующий цвет и вывести названия цвета)

Вот метод для трёх кнопок на яве:
Код

    public void buttonColored_Click(View v){

        switch (v.getId()){
            case R.id.buttonRed: {tvHello.setText(R.string.res_btn_Red);
                rl.setBackgroundResource(R.color.res_col_red);};
            break;

            case R.id.buttonGreen: {tvHello.setText(R.string.res_btn_Green);
                rl.setBackgroundResource(R.color.res_col_gre);};
            break;

            case R.id.buttonYellow: {tvHello.setText(R.string.res_btn_Yellow);
                rl.setBackgroundResource(R.color.res_col_yel);};
            break;

        }
    }



а вот на дельфи:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  case TButton(sender).Tag of
   0: begin Form1.Color := clRed;
        Form1.Caption := 'Красный'; end;

   1: begin Form1.Color := clYellow;
        Form1.Caption := 'Желтый'; end;

   2: begin Form1.Color := clGreen;
        Form1.Caption := 'Зеленый'; end;
  end;
//как минимум, каждый раз не нужно case и break


//или ещё проще
  with Self do
    case TButton(sender).Tag of
     0: begin Color := clRed; Caption := 'Красный'; end;
     1: begin Color := clYellow; Caption := 'Желтый'; end;
     2: begin Color := clGreen; Caption := 'Зеленый'; end;
    end;
end;




на яве можно сократить/упростить? 
обязательно ли в Case использовать фигурные скобки {}, если там несколько операций?
PM MAIL   Вверх
LSD
Дата 6.8.2013, 10:25 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(Akella @  5.8.2013,  22:32 Найти цитируемый пост)
на яве можно сократить/упростить?

А что там сокращать? Можно сократить в стиле дельфей:
Код

switch (v.getId()) {
    case R.id.buttonRed: tvHello.setText(R.string.res_btn_Red); rl.setBackgroundResource(R.color.res_col_red); break;
    case R.id.buttonGreen: tvHello.setText(R.string.res_btn_Green); rl.setBackgroundResource(R.color.res_col_gre); break;
    case R.id.buttonYellow: tvHello.setText(R.string.res_btn_Yellow); rl.setBackgroundResource(R.color.res_col_yel); break;
}

Получаем такую же нечитаемую кашу как и на дельфях.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
k0rvin
Дата 6.8.2013, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Akella @  5.8.2013,  21:32 Найти цитируемый пост)
//как минимум, каждый раз не нужно case и break

Зато begin и end =)

Цитата(Akella @  5.8.2013,  21:32 Найти цитируемый пост)

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  with Self do
    case TButton(sender).Tag of
     0: begin Color := clRed; Caption := 'Красный'; end;
     1: begin Color := clYellow; Caption := 'Желтый'; end;
     2: begin Color := clGreen; Caption := 'Зеленый'; end;
    end;
end;

на яве можно сократить/упростить? 

Код

public void button1_Click(View sender) {
  switch (sender.getTag()) {
    case 0: setBackground(Color.RED);    setText('Красный'); break;
    case 1: setBackground(Color.YELLOW); setText('Желтый' ); break;
    case 2: setBackground(Color.GREEN);  setText('Зеленый'); break;
  }
}

Ну это для swing/awt. Для Андроида возможно есть свои особенности.


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


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


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

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



Цитата(Akella @  5.8.2013,  22:32 Найти цитируемый пост)
'Красный'


Цитата(Akella @  5.8.2013,  22:32 Найти цитируемый пост)
'Желтый'


Цитата(Akella @  5.8.2013,  22:32 Найти цитируемый пост)
'Зеленый'

Светофор делаешь? smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
drkot
Дата 7.8.2013, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


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

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



LSDk0rvin, как обычно явисты не заметили слона... что  и немудрено... так как в яве понятие "контекста" отсутствует и "with" им ни о чем не говорит, хотя и непонятно почему  smile 

Цитата(k0rvin @  6.8.2013,  16:21 Найти цитируемый пост)
case 0: setBackground(Color.RED);    setText('Красный'); break;

вынос в процедуры это не упрощение, а наоборот усложнение. 
Akella же наивно предполагал, что его нехитрая конструкция будет понята, вместо этого LSD, как обычно, об...ет все что видит руководствуясь исключительно идеологическими критериями. 


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
LSD
Дата 7.8.2013, 14:42 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



with это костыль для убогих ЯП не позволяющих объявить переменную по месту.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Alexeis
Дата 7.8.2013, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



with модификатор области видимости, такой как using std::vector, только действует не на неймспейс, а на объект. В С++ аналогичные вещи можно сделать путем создания локальных ссылок.  with кстати не лучшее изобретение, а простор для труднодиагностируемых ошибок. Учитывая, что в VCL у многих классов свойства называются одинаково, с with можно жестко накосячить. Вообще, много раз писалось, что у хороших программистов скорость печати много выше скорости программирования, так что экономия на операторах в ущерб прозрачности скорее минус чем плюс.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
diadiavova
Дата 7.8.2013, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


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

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



Цитата(Alexeis @  7.8.2013,  23:08 Найти цитируемый пост)
with кстати не лучшее изобретение, а простор для труднодиагностируемых ошибок. 

Смотря как реализован. В бейсике, например, он никаких проблем не вызывает, поскольку все контексты остаются доступными, а обращение к контексту блока происходит через точку
Код

With expression
    Text = .Text
End With
будет эквивалентно
Код

Me.Text = expression.Text
'Me - аналог this в си-подбных языках



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Alexeis
Дата 7.8.2013, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



в делфях можно сделать так
Код

With obj1,obj2 do

и дальше разбирайси где чьи поля и функции. У себя я стараюсь даже std:: никогда не "открывать". Пусть лучше видно, принадлежность классов. Мне писать недолго, зато читается всегда однозначно.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
drkot
Дата 7.8.2013, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


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

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



LSD, ну что я говорил... а Баба-Яга против!

Добавлено через 2 минуты и 59 секунд
Цитата(Alexeis @  7.8.2013,  22:53 Найти цитируемый пост)
Мне писать недолго, зато читается всегда однозначно.

вот с этим аргументом согласен


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
k0rvin
Дата 8.8.2013, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(drkot @  7.8.2013,  13:27 Найти цитируемый пост)
вынос в процедуры это не упрощение, а наоборот усложнение. 

Какие процедуры? setBackground и setTitle (перепутал с setText) -- стандратные сеттеры JFrame, как и свойства Color и Caption -- стандартные свойства TForm.


Цитата(drkot @  7.8.2013,  13:27 Найти цитируемый пост)
LSD, k0rvin, как обычно явисты не заметили слона... что  и немудрено... так как в яве понятие "контекста" отсутствует и "with" им ни о чем не говорит, хотя и непонятно почему

Интересно каким образом "with Self" меняет контекст. В частности в примере Акеллы.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

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

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


 




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


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

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