Форум: "Потрепаться";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
ВнизЕсть ли жизнь после делфи? Куда шагать дальше? Найти похожие ветки
← →
by © (2005-11-27 13:41) [0]Если бы вы сейчас начинали изучать какой-то язык программирования что бы это было? Что востребовано? Только просьба не скатываться в предложения - иди на job.ru или учи программирование вообще. Интересно именно мнение сообщества.
Так что - C#, Java, BlackBox - или что-то другое?
← →
Gero © (2005-11-27 13:42) [1]Что-то хорошее.
← →
Маг Похмеляйнен (2005-11-27 13:54) [2]Можно освоить, например, avr-gcc, пойти в эмбеддеры, найти свою нишу, и творчески жить в ней долго + счастливо.
Хороший вариант?
← →
марсианин © (2005-11-27 13:55) [3]html, javascript, php, ect..
← →
Sergey Masloff (2005-11-27 14:01) [4]by © (27.11.05 13:41)
> или учи программирование вообще
Ну тогда и обсуждать не будем. Потому что это единственный вариант. Все остальное смысла не имеет. Сейчас востребовано знание многих вещей которые просто так, в домашних условиях не выучишь. Нужно приходить и начинать работать. Это масса внутренних языков различных систем. Нужна база, опыт C (pascal, etc) сам по себе не особо пригодится.
А на джоб ру я бы ориентироваться не стал. Почему - объяснять лень
← →
by © (2005-11-27 14:08) [5]Хорошо, перефразируем вопрос.
Если бы вы начинали писать новую систему для работы с БД - что бы выбрали?
← →
Sergey Masloff (2005-11-27 14:23) [6]by © (27.11.05 14:08) [5]
Я бы озаботился подбором СУБД позволяющей максимум логики поместить в себя. Междумордие (с) Diamond Shark вторично. Если у пользователей винда то можно пока и на Delphi. Но уже можно и в C# смотреть. А вообще потребности в таких приложениях тают. Для больших предприятий все больше коммерческих конструкторов SAP и иже с ними на слуху но на самом деле их намного больше и действительно во многих случаях логично их применить.
Для многих мелких проектов вполне сгодятся Акцесс и ФокСпро как клиент MSDE. Для средних есть 1С да и западные есть конкуренты пусть не стольк известные.
Так что доля CUSTOM систем - будем смотреть правде в глаза - снижается вместе с тем сужая дельфийский ареал.
← →
Eraser © (2005-11-27 14:31) [7]
> by ©
Согласен с Sergey Masloff"ым. Только вот на СУБД и АСУ свет клином не сошёлся.
C# + MS Visual Studio, а остально со временем "прийдёт".
← →
by © (2005-11-27 14:33) [8]Sergey Masloff (27.11.05 14:23) [6]
Так что доля CUSTOM систем - будем смотреть правде в глаза - снижается вместе с тем сужая дельфийский ареал.
На этой неделе был в Киеве Borland Developer Day, так представитель борланда как раз убеждал в обратном, что доля Custom систем будет расти из-за неудовлетворенности внедрениями конструкторов. Хотя верится слабо ((.
А база уже выбрана - это Oracle, и логика там же. Кроме того, база уже написана и давно работает. Просто ранее надобности в фейсе не было, а теперь появились пользователи не только разработчики - вот и встал вопрос.
← →
Sergey Masloff (2005-11-27 14:40) [9]Eraser © (27.11.05 14:31) [7]
Просто 70% программистов занимаются этим во всем мире ;-) А так конечно свет не сошелся.
Кстати для программирования контроллеров, например есть штуки типа National Instruments Lab View которая уже лет 6 назад когда я ею занимался была очень мощной средой графического программирования. Буквально никаких операторов там не было а было собирание картинок схем из иконок. И вполне шустрый код генерился. Плагины можно было писать на чем угодно и подключать через COM или писать модули на Це но это практически не востребовано было потому чо библиотеки на все случаи жизни уже тогда были.
Я конечно плохой гуру и прогнозист но возможно изучить азы на pascal и це по возможности параллельно. И не связываясь особо со средами. А потом получать первый практический опыт на C# или Java. Потому что с Win32 дельфи можно оказаться в ситуации что когда наберешь первый профессионалтный опыт (ну скажем года 2 работы) придется переучиваться (среда и библиотеки) а на самом деле не так все это быстро как хотелось бы
← →
Sergey Masloff (2005-11-27 14:44) [10]by © (27.11.05 14:33) [8]
>А база уже выбрана - это Oracle, и логика там же.
Ну это намного лучше. Тогда вариантов полно - WEB интерфейс (можно средствами самого оракла) а также разной степеи толщины клиенты. Можно и на дельфе, переделать потом будет несложно.
← →
Eraser © (2005-11-27 14:52) [11]
> Sergey Masloff (27.11.05 14:40) [9]
> Просто 70% программистов занимаются этим во всем мире ;-
> ) А так конечно свет не сошелся.
> Кстати для программирования контроллеров, например есть
> штуки типа National Instruments Lab View которая уже лет
> 6 назад когда я ею занимался была очень мощной средой графического
> программирования.
Думаю в ближайщие 10 лет эта цифра сократиться если не на порядок, то в разы, именно "благодаря" коммерческим монстрообразным инструментам, а будущее будет именно примерна за такого масштаба приложениями/системами, которую вы привели в пример.
От бухгалтерии и управления программеры потихоньку будут переходить в другие, ещё не освоеные или даже ещё не существующие ниши.
Моё imho, основанное на скромном опыте.
← →
by © (2005-11-27 15:01) [12]Sergey Masloff (27.11.05 14:44) [10]
Тогда вариантов полно - WEB интерфейс (можно средствами самого оракла) а также разной степеи толщины клиенты.
Свобода выбора - плохая штука )))
WEB интерфейс есть и сейчас для части задачи (отчеты) - iAS, mod_plsql, htp.
А вот для другой части задачи нужен rich client. Вот и смотрю.
Delphi - быстро, красиво, можно без клиента Oracle - но дорого (лицензия) и логика с представление перемешаны.
C# (Visual Studio) - достаточно быстро, красиво, отделение логики от представления, не очень дорого - но больше мороки в установке для админов (Framework, и т.п.) да и машины нужны помощнее.
Java - JDeveloper от Oracle бесплатен, очень функционален, установка возможна простым копированием, кросплатформенность, логика и представление разделены - но сложнее в изучении, слегка другая парадигма.
Вот и попробуй выбрать. Хотя если все отбросить - то мне сейчас C# наиболее симпатичен.
← →
Kerk © (2005-11-27 16:30) [13]by © (27.11.05 15:01) [12]
Delphi - .... логика с представление перемешаны.
C# (Visual Studio) - ...отделение логики от представления...
как это связано?
← →
by © (2005-11-27 16:41) [14]Kerk © (27.11.05 16:30) [13]
ак это связано?
Для меня это связано с тем что получаются сильно связанные классы. Что мне понравилось в .Net - это делегаты и подписка на события - этого в Delphi я не нашел, может плохо искал.
← →
jack128 © (2005-11-27 17:07) [15]by © (27.11.05 16:41) [14]
подписка на события
А свойства процедурного типа aka события для кого придуманы?
by © (27.11.05 16:41) [14]
Для меня это связано с тем что получаются сильно связанные классы
Они не "получаются" - это ты их таковыми делаешь
← →
Sergey Masloff (2005-11-27 17:07) [16]Kerk © (27.11.05 16:30) [13]
>как это связано?
Ну, скажем, так : "подразумеваемая парадигма" ;-)
Действительно в .NET по умолчанию подразумевается другая модель. Хотя конечно никто не мешает реализвать по другому и там и там.
← →
Kerk © (2005-11-27 17:09) [17]Sergey Masloff (27.11.05 17:07) [16]
Ну, скажем, так : "подразумеваемая парадигма" ;-)
Действительно в .NET по умолчанию подразумевается другая модель.
Действительно. :)
Но вот я как раз об этом:
> Хотя конечно никто не мешает реализвать по другому и
> там и там.
← →
by © (2005-11-27 17:20) [18]jack128 © (27.11.05 17:07) [15]
А свойства процедурного типа aka события для кого придуманы?
А с помощью их можно сделать что-бы при наступлении какого то события в моем классе были оповещены другие классы, о которых мой не знает? Например в классе выполнилось действие, а два подписанных на это события logger отобразили это - одни в Tmemo, а другой отправил net sent сообщение.
Можно пример на Delphi?
← →
Sergey Masloff (2005-11-27 17:54) [19]by © (27.11.05 17:20) [18]
типа такого? Пример высосан из пальца (мой) и написан за 5 минут поэтому на красоту кода не претендую. Работает
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Contnrs;
type
TLogger = class(Tobject)
loggername : string;
Target : TStrings;
procedure DoLog();
end;
TEventMapper = class(TObject)
private
fReceiverList : TObjectList;
fSenderBtn : TButton;
FSenderOnClick: TNotifyEvent;
procedure SetSenderBtn(AButton : TButton);
procedure SetSenderOnClick(const Value: TNotifyEvent);
public
constructor Create();
destructor Destroy; override;
procedure MyOnClick(Sender : TObject);
procedure InsertLogger(ALogger : TLogger);
procedure RemoveLogger(ALogger : TLogger);
property SenderBtn : TButton read fSenderBtn write SetSenderBtn;
property SenderOnClick : TNotifyEvent read FSenderOnClick write SetSenderOnClick;
end;
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
flogger1 : TLogger;
flogger2 : TLogger;
fMapper : TEventMapper;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TEventMapper }
constructor TEventMapper.Create;
begin
fReceiverList := TObjectList.Create();
end;
destructor TEventMapper.Destroy;
begin
fReceiverList.Free();
inherited;
end;
procedure TEventMapper.InsertLogger(ALogger: TLogger);
begin
fReceiverList.Add(ALogger);
end;
procedure TEventMapper.MyOnClick(Sender: TObject);
var
i : Integer;
begin
for i := 0 to pred(fReceiverList.Count) do
TLogger(fReceiverList[i]).DoLog();
if Assigned(FSenderOnClick) then
FSenderOnClick(fSenderBtn);
end;
procedure TEventMapper.RemoveLogger(ALogger: TLogger);
begin
fReceiverList.Extract(ALogger);
end;
procedure TEventMapper.SetSenderBtn(AButton: TButton);
begin
if Assigned(AButton) then
begin
SenderOnClick := AButton.OnClick;
AButton.OnClick := MyOnClick;
end;
end;
procedure TEventMapper.SetSenderOnClick(const Value: TNotifyEvent);
begin
FSenderOnClick := Value;
end;
{ TLogger }
procedure TLogger.DoLog;
begin
Target.Add(loggername + " я тут");
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
flogger1 := TLogger.Create();
flogger1.loggername := "Первыйнах";
flogger1.Target := Memo1.Lines;
flogger2 := TLogger.Create();
flogger2.loggername := "Пидистал";
flogger2.Target := Memo1.Lines;
fMapper := TEventMapper.Create();
fMapper.SetSenderBtn(Button1);
fMapper.InsertLogger(flogger1);
fMapper.InsertLogger(flogger2);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add("ButtonClick");
end;
end.
← →
Sergey Masloff (2005-11-27 17:56) [20]Вобщем суть такая есть TButton и есть класс маппер позволяющей к ее событию OnClick подвесить свое (не забыв про уже имеющееся свое) и информировать о нем список подписчиков. Для простоты я дергаю их процедуру но можно рассылать сообщения если это контролы или через RTTI искать по именам опубликованые свойства или еще полно вариантов
← →
jack128 © (2005-11-27 18:24) [21]by © (27.11.05 17:20) [18]
А с помощью их можно сделать что-бы при наступлении какого то события в моем классе были оповещены другие классы, о которых мой не знает?
Да. Обычно принято информировать только одного подписчика, однако ничто не мешает поддерживать массив подписчиков. Как раз только что была ветка на эту тему http://delphimaster.net/view/1-1132744195/
← →
by © (2005-11-27 18:28) [22]Sergey Masloff (27.11.05 17:56) [20]
Понятно. Просто в .Net это как часть платформы и оформлено ввиде делегатов, и воспринимается легче. В Delphi это тоже реализуемо, но сложнее и с большим количеством кода.
Может я и не прав, но Delphi таки очевидно ориентирована на Table Model - TForm + TDataset (иногда в TDataModule) - все в одном, такова основная парадигма. Может этому способствует то, что все примеры идут в стиле TForm + TDataset + TDataSource + TDBNavigator + TDBGrid - готовое приложение. А вот серьёзных примеров и нет.
← →
by © (2005-11-27 18:35) [23]jack128 © (27.11.05 18:24) [21]
раз только что была ветка на эту тему [Рассылка событий группе объектов. [D7, WinXP]]
Интересная ветка, нужно будет почитать внимательно.
← →
Palladin © (2005-11-27 18:57) [24]
> но Delphi таки очевидно ориентирована на Table Model - TForm
> + TDataset (иногда в TDataModule) - все в одном
:) таки ламборджини тоже очевидно ориентирована на стояние в гараже и придавание особенной гибкости пальцАм хозяина во имя их гнутия...
← →
by © (2005-11-27 19:04) [25]Palladin © (27.11.05 18:57) [24]
:) таки ламборджини тоже очевидно ориентирована на стояние в гараже
Не знаю, може и так, опыта с ламборджини пока нет :)))
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.016 c