Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.015 c
14-1133041707
lookin
2005-11-27 00:48
2005.12.18
Какой длины файлы проигрывает PlaySound?


5-1109751986
ancara
2005-03-02 11:26
2005.12.18
Компонент не ловит WM_KEYDOWN :(


2-1133616710
аматор
2005-12-03 16:31
2005.12.18
размер базы Жар птицы


14-1132644606
Piter
2005-11-22 10:30
2005.12.18
На новых материнках нету LPT?


14-1133098594
Piter
2005-11-27 16:36
2005.12.18
Классная фотка, обман зрения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский