Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

Есть ли жизнь после делфи? Куда шагать дальше?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.049 c
8-1112926472
Deedlit
2005-04-08 06:14
2005.12.18
ImageList => SpeedButton


2-1133443644
g-l-u-k
2005-12-01 16:27
2005.12.18
Интерпритатор


2-1133766692
RealMan
2005-12-05 10:11
2005.12.18
Проблема с Media Player -ом. При открытии *.AVI файлов.


11-1114235176
BelchonokH
2005-04-23 09:46
2005.12.18
Создание МСК компонентов из чисто КОЛовских


14-1133041707
lookin
2005-11-27 00:48
2005.12.18
Какой длины файлы проигрывает PlaySound?