как и почему я пришёл к С#
03-07-2006 23:14
к комментариям - к полной версии
- понравилось!
Программирование для меня началось с Turbo Pascal 7.0. Это, впрочем, и не удивительно. почти все начаинали с трупо-паскаля. Очень простой для понимания язык: всё до свинства структуривованно, всё пишется в специально отведённом для этого месте, все операторы - системные, функии могут возвращать тока некоторые типы данных, существует строго разделение между системными типами, классами, структурами, записями прочей херью.
простейшая программа на паскале выглядет так:
program Имя_Программы //это слово я использовал 2 раза в жизни. т.к. в 7.0 оно не обязательно
var
a, b: integer;
c, d: boolean;
begin
read(a, b);
read(c, d);
if a = 0 then c = 12;
while b < 10 do
begin
d = 00;
end;
end.
вот такой вот язычОк. после паскаля я начал изучать Turbo Vision. это набор кастылей для создания визуального интерфейся (под DOS, само сабой). В общем если вам лет 14 и вы тока начали изучать паскаль и хотите изучать Turbo Vision, отбросте эту идею как завеломо хреновую. Turbo Vision это адская вещь.
Delhpi. это мегаизменённый object pascal. Ваще довольно хорошая штука для так называетого RAD (быстрая разработка приложений). Можно без особого гемора написать вполне даже приличную прогу. и похуй, что там куча багов и даже нихрена не делающая прорамма будет занимать около 600 кило. Впринципе, VCL (набор компонентов для Делфи) довольно удобная штука.. с Делфи я дружил с 9 класса и до
середены первого курса.
На первом курсе мне попытались втереть языык C++. вообще (до знакомства) у меня о с++ сложилось впечатление, что это язык для мегапрограммеров, которые могут вместо слов писать символы и что С++ очень похожа на ассемблер. Мои одногруппники восприняли С++ вштыки. зачем учить новое, когда можно прекрасссно пользоваться старым? я же сразу решил попробывать поюзать С++
чувство, что ты пересел с Ваз2101 на Mazda6. язык оказался настолько удобным, что писать на паскале стало просто невынасимо! обычно сторонникам паскаля я привожу простой пример удобства: класс - комплексное число.
pascal
c = ComplexSum(a, b);
C++
c = a + b;
Согласитесь, что "a + b" куда приятнее чем ComplexSum(a, b). дело в том, что в С++ есть перегрузка операторов, которая по сути заменяет "a + b" на ComplexSum(a, b), но этого не видно в коде. получается, что можно создать класс с операторами и всевозможными свойствами, которые ОЧЕНЬ упростят работу с ним.
вообще программа на С++ занимает куда меньше чем на pasсal. впесто begin end в С++ используется {}
и программа выгядетпримерно так:
int main()
{
int a, b;
bool c, d;
cin >> a >> b;
cin >> c >> d;
if (!a) c = 12;
while( b < 10)
{
d = 0;
}
}
begin end и {} это разные виды обозначения блоков програмы. принциме похуй как они обазначаются, главное что бы они были
С точки зрения обычного человека структура begin end более понятна чем {}. Но с точки зрения хорошего программиста бегин и энд вообще можно не испольховать! использовать лишь форматирование кода. есть такая вешь как "пмевдокод" это когда алгоритм описывается на несуществующем языке. в большинстве вариантов псевдокода для выделения блоков используется как раз таки отступ. Если вы заметили, то я делаю отступы, хотя программа будет работать даже если написать так:
int main(){int a,b;bool c,d;cin>>a>>b;cin>>c>>d;if(!a)с=12;while(b<10){d=0;}}
вот тока читать такую строку очень неудобно.
поэтому тоненькие фигруные скобочки н заграмождают код так как это деалют длинные, жирно выделенные слова begin end.
кроме скобок в С++ ещё куча фич и приемуществ. к примеру цикл for. на паскале он пишется так:
for i = 0 to 10 do
на С++
for (i = 0; i < 11; i++)
вроди длиннннннее? ну и что? зато переменную i, которую я больше нигде использовать не буду кроме как в цикле я могу объяыить прям там (в паскале все переменные объявляются в блоке var). ды и я могу поставить любое условие и увеличит на любое значение.
for (int i = 0; it_is_time; i+=12)
в обзем после С++ о возврате к паскалю не было и речи! а так, как Delphi это по своей сути паскаль, то и на Delphi писать стало не удобно.
пришлось познакомиться с C++Builder. это штука почти не отличается от делфи. единственное оличие - вместо паскаля используется c++. C++Builder подразумевался и описывался как отдельная штуковина как раз для тех, кому удобнее писать на С++. но по сути C++Builder это приблуда к делфи, которая позволяет писать на делфи используя синтаксис С++. в общем приблуда получилась довольно кастыльная. главный кастыль - VCL. вижуал компонет лайбрари полностью взята из делфи взаимоействие с ПАСКАЛЁВЫМИ классами построеннно на системе кастылей.
по сути дела билдер это прилуда для делфи, которая через систему кастылей позволяет использовать сяшный синтаксис.
в обем хрень.
писать на winAPI у меня не было никакого желания так, как это подобно возврату к Турбо Визион
по работе мне пришлось сталкнуться с MFC. о мвс ничего конкретного сказать ен могу.. так, как впринципе это довольно хорошая штука (куда лучше билдера), но из-за сложившихся в фирме обстоятельств мы фактически заново переписали все компонеты визуальные MFC. ох и багво мы наловили! особенно с обработкой событий!
ещё до знакомства с MFC мне на олимпиае подарили книжку по C# и платформе .NET
прочитав её я так толком и не понял чё и как, потому, что у меня не было самого компилллера.
когда же я начал изучать С#, я охуел от собственного счастья!
P.S.продолжение поста завтра или после завтра
вверх^
к полной версии
понравилось!
в evernote