Есть ли будущее у DELPHI?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.43] |
|
|
Правила раздела:
| Страницы: (245) « Первая ... 106 107 [108] 109 110 ... 244 245 ( Перейти к последнему сообщению ) |
Есть ли будущее у DELPHI?
|
Сообщ.
#1606
,
|
|
|
|
|
Сообщ.
#1607
,
|
|
|
|
Потому что это, ИМХО, совсем не мелочь, какой ее тут пытаются представить. Добавлено Цитата D_KEY @ --Ins--, ты бы это в той теме написал. Да ну нафиг в ту тему встревать, у меня такой проблемы нет и пока не сел за C# - с роду не было, сами там разбирайтесь как так вышло что вопрос стоит |
|
Сообщ.
#1608
,
|
|
|
|
Цитата --Ins-- @ Потому что это, ИМХО, совсем не мелочь, какой ее тут пытаются представить. Мне трудно представить себе соглашения по именованию, которым бы я не стал следовать, если бы речь шла об участии в интересном для меня проекте |
|
Сообщ.
#1609
,
|
|
|
|
Цитата D_KEY @ Мне трудно представить себе соглашения по именованию, которым бы я не стал следовать, если бы речь шла об участии в интересном для меня проекте Да с проектом когда внутри все исходники свои все понятно, перестроиться несложно А как быть с некой библиотекой общего назначения? Ты ведь не знаешь какие правила именования будут в команде, которая их использует. И не возникнут ли проблемы восприятия этого кода там. В c# я даже на MSDN разночтения в примерах находил, в одном написано так, а в другом - сяк. Вот меня это честно напрягает, я не знаю как мне именовать идентификаторы, чтобы проблемы восприятия кода не было ни у кого. В Delphi - все просто, правила едины. Зато конечно других не упрекнешь в строгой дисциплине |
|
Сообщ.
#1610
,
|
|
|
|
Цитата --Ins-- @ В Delphi - все просто, правила едины. Если именование так критично, то его надо зашивать в язык, а не вырабатывать "всеобщие соглашения". |
|
Сообщ.
#1611
,
|
|
|
|
Цитата --Ins-- @ А если написано Time - это что? тип? переменная? что вот это: TBar.Foo; - вызов классового метода, а вто это: Bar.Foo - вызов instance-метода, что TBar - это тип, Bar - это локальный идентификатор, FBar - это поле Добавлено Здесь буковки F есть: ![]() ![]() TLangRec = packed record FName: string; FLCID: LCID; FExt: string; end; ![]() ![]() TTimeStamp = record Time: Integer; { Number of milliseconds since midnight } Date: Integer; { One plus number of days since 1/1/0001 } end; LCID в первом фрагменте - это тип или нет? |
|
Сообщ.
#1612
,
|
|
|
|
Цитата trainer @ А если написано Time - это что? тип? переменная? Переменная, потому что тип - это TTime Цитата trainer @ LCID в первом фрагменте - это тип или нет? Это одноименный тип Windows, как и HWND, например, для них есть псевдонимы в Delphi-style (TLocaleID), но использование имен тех же что и в MSDN предпочтительнее. Добавлено Цитата trainer @ А здесь - нет: Это не класс, это структура, перепутать поле это или не поле - невозможно |
|
Сообщ.
#1613
,
|
|
|
|
Цитата DesweR @ По первому: приводи живой пример, а так мне не очень то ясны возможности и ограничения этих коллекций. ![]() ![]() #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (nonatomic, retain) IBOutletCollection(UITextField) NSArray *name; - (IBAction)setFieldsEnabled:(UISwitch *)sender; - (IBAction)setRightAlign:(UISwitch *)sender; @end ![]() ![]() #import "ViewController.h" @implementation ViewController @synthesize name; - (void)setFieldsEnabled:(UISwitch *)sender { BOOL state = [sender isOn]; for (UITextField *field in name) { [field setEnabled:state]; } } - (void)setRightAlign:(UISwitch *)sender { UITextAlignment alignment = [sender isOn] ? UITextAlignmentRight : UITextAlignmentLeft; for (UITextField *field in name) { [field setTextAlignment:alignment]; } } @end http://www.youtube.com/watch?v=_KAtEK7j06Y а вот такое взаимодействие компонентов эти ваши делфи могут (если непонятно — ни единой строчки кода, даже компилировать не нужно, чтобы потестить): http://www.youtube.com/watch?v=rFfmV89aHnc или вот такое (всего две строчки кода: 1 и 2, даже и кодом-то не назовешь): ![]() ![]() #import <Foundation/Foundation.h> @interface Model : NSObject @property (nonatomic) NSInteger value; // 1 @end ![]() ![]() #import "Model.h" @implementation Model @synthesize value; // 2 @end http://www.youtube.com/watch?v=MIo5EF2zDBY |
|
Сообщ.
#1614
,
|
|
|
|
Цитата --Ins-- @ А может TIme, оно же time, оно же TIME? Регистр буковок-то не различается. С чего это ты решил, что это TTime?Переменная, потому что тип - это TTime Цитата --Ins-- @ Там вообще-то два фрагмента. Тебе первый не понравился? TLangRec не структура, а класс? А WordRec почему не имеет префикса T ?Это не класс, это структура, перепутать поле это или не поле - невозможно ![]() ![]() WordRec = packed record case Integer of 0: (Lo, Hi: Byte); 1: (Bytes: array [0..1] of Byte); end; Цитата --Ins-- @ Но они ведь не соответствуют:но использование имен тех же что и в MSDN предпочтительнее. Цитата --Ins-- @ Почему правило не соблюдается? Почему "кто на что горазд"? В дельфи есть одно единственное общеупотребимое правило именования (смешанный регистр, класс с буквы T, интерфейс с буквы I, поле с буквы F, класс исключения с буквы E), а не кто на что горазд Добавлено А здесь класс? Почему префикс F отсутствует? ![]() ![]() EHeapException = class(Exception) private AllowFree: Boolean; public procedure FreeInstance; override; end; |
|
Сообщ.
#1615
,
|
|
|
|
Цитата trainer @ А может TIme, оно же time, оно же TIME? Регистр буковок-то не различается. С чего это ты решил, что это TTime? Тогда он будет называться TIme, потому что в наименованиях в этом случае используется смешанный регистр, а не какой вздумается Цитата trainer @ Но они ведь не соответствуют: Соответствуют, просто в скобках в моей цитате я привел эти правило в сильно упрощенном виде. Коклассы например именуют с префикса Co, я это тоже там не упомянул, и к системным типам - вроде Integer, T тоже как правило не добавляется Цитата trainer @ А здесь класс? Почему префикс F отсутствует? Я думаю во всей VCL таких контрпримеров единицы, для тебя это безусловно повод прицепиться. Единичные недосмотры все же лучше, чем повальное отсутствие правил и повсеместное использование собственных стилей именования |
|
Сообщ.
#1616
,
|
|
|
|
Цитата --Ins-- @ Единичные недосмотры все же лучше, чем повальное отсутствие правил и повсеместное использование собственных стилей именования Вопрос в том, кого они реально напрягают? Как code style вообще может быть каким-то препятствием для профессионального разработчика? |
|
Сообщ.
#1617
,
|
|
|
|
Цитата MyNameIsIgor @ Как code style вообще может быть каким-то препятствием для профессионального разработчика? Сбивает с толку и ухудшает восприятие кода. Задай этот вопрос в соседней теме вообще |
|
Сообщ.
#1618
,
|
|
|
|
Цитата --Ins-- @ Сбивает с толку и ухудшает восприятие кода. Оно может быть неприятно, но не "сбивать с толку" и не мешать работать. Цитата --Ins-- @ Задай этот вопрос в соседней теме вообще Да Господи, там просто потрындеть собрались ввиду общей унылости холиваров. Никто реально из-за code style сраться не будет. |
|
Сообщ.
#1619
,
|
|
|
|
Самый важный — это отсутствие каких-либо достоинств, ни рыба, ни мясо. Богатых GUI? Это вот те убогие формочки в примере — богатый GUI? Для веба это именно что неправильный подход: 1. url'ов на ресурсы нет, в итоге из того примера например, там слева были вкладки с уже конкретными демками, конкретную демку: 1) в другой вкладке браузера не открыть, только полностью приложение, а потом искать; 2) в закладки не добавить; 3) никуда ссылку не передать, нигде не запостить; 4) в файл не сохранить для локального просмотра, разве что все приложение, и то не факт; 5) нормально не закешировать, разве что опять же все приложение целиком; 6) никакой истории, только если само приложение будет ее поддерживать. 2. стейта (для которого http в принципе не предназначен) в клиенте дохрена, что тоже никак не способствует выполнению вышеперечисленных операций; 3. требования к клиенту значительно выше => не везде может завестись. Вообще клиент не такой уж и тонкий получается. А при правильном подходе полноценный десктопный GUI к веб-сервису пишется влегкую. |
|
Сообщ.
#1620
,
|
|
|
|
Проблема Дельфи в том, что язык не развивается практически. Некоторые фичи слизали с других языков только спустя 5 лет! А из своего что? Убогое глючное FireMonkey? На "нативном" компиляторе, который создает код медленнее джавы (а поскольку файрманки компилируется под мак и айось фрипаскалем, то еще медленнее)?
Кризис начался после Delphi 7. Вполне возможно, что это "головокружение от успеха", но от этого как-то не легче. Начиная с Delphi 8 Дельфи пошло по неправильному пути, потом пыталось догнать своих соперников, но не особо успешно, а сейчас вот опять пошли не в ту сторону. Вместо того чтобы утвердиться как взрослая платформа хотя бы под виндовз, Дельфи будет уделом кнопкокидателей еще и под Мак. А вот Виндовз с приближающимся релизом WinRT может легко ускользнуть от Дельфи-программистов. После знакомства с Джавой и Шарпом я в здравом уме не начну ни один проект на Дельфях. Потому что это неудобно и неэффективно, язык бедный, среда неполноценная и глючная вплоть до самых последних версий. |