уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Конец рабочей недели. Здорово. Можно немного расслабиться и написать в блог небольшую заметку. Однако прежде, чем начну непосредственно “докладать”, немного предыстории. Полагаю, что каждый из нас хотя бы раз в своей сознательной жизни становился участником, вольным или не вольным свидетелем такого явления Рунета как “холивар”. В области программирования холивары частенько ведутся по поводу того кто круче C++ или Delphi, Delphi или C# и т.д. и т.п. Повод находится обычно просто, достаточно бросить фразу наподобие “Delphi ещё жив? о_0” и понеслось “душа в рай”…

Собственно, я никогда в таких мероприятиях не участвовал – был только сторонним наблюдателем и на то есть несколько причин из которых можно выделить две:

  1. Не вижу смысла в подобных мероприятиях. В споре, конечно, истина рождается, но в споре, итог которого всегда один и заключается в том, что последний довод спорщиков сводится к “сам дурак”, истины как-то искать не приходится.
  2. Я считал и считаю, что каждый выбирает инструмент для решения задачи сам, в зависимости от личных предпочтений, круга решаемых задач, возможностей и т.п. Мне, например, Delphi подходит для того, чтобы решить практически любую задачу, кто-то не хочет “тренировать пальцы” и выбирает тот же C++ за его краткость, третьего “прёт” от Java – пусть пишет, раз нравится. а весна, она как известно покажет кто где….

Именно по этим двум причинам я и написал в заголовке “вражеской”, а не вражеской или Вражеской :) Сегодня речь пойдет о почти недельном моем зависании в Visual Studio и о том, что получилось из небольшого курса изучения C#.

Для чего я вообще полез в C#? Видимо, здесь сыграли на руку два фактора: желание посмотреть как всё устроено “там” и желание расширить немного свой кругозор в области программирования. Даже если времени двигаться далее не будет, то навыки зря не пропадут хотя бы даже по тому, что на MSDN масса примеров, разбираться с которыми будет проще – можно сказать, что желание более быстро и качественно вникать в суть примеров MSDN послужило основной причиной – надоело тупить по полчаса над разбором кода :).

Ну, а теперь сам доклад о том. что вынес, что нашел нового и интересного.

Во-первых, что касается обучения. В целом, очень большую роль в изучении C# сыграло знание ООП в принципе. Как-то легко и просто пошло изучение языка – осталось немного вникнуть в синтаксис самого языка, а так…принципы ООП сохраняются, те же объекты, те же классы и интерфейсы, полиморфизм, перегрузки и всё такое.  Конечно, когда дошло до более глубокого изучения, начались небольшие “запарки”, но достаточно немного покопать MSDN и все, вроде бы, начинает вставать на свои места. В общем, если придётся в силу каких-либо обстоятельств дополнительно изучать C# – не пугайтесь особо :).

Понравился сборщик мусора. Ну, о нем, видимо тоже много кто слышал. Классно, конечно, когда не стоит особо заморачиваться над деструкторами, освобождением памяти и т.д. – экономия времени может быть колоссальной, можно сосредоточить все внимание на других функциях приложения или, на крайний случай, просто сэкономить время разработки. Но, блин, человеку, который начинает самостоятельное изучение программирования, я б никогда не посоветовал начать с C#. Сам, конечно, иногда грешу – забываю то там , то сям память почистить, но представить себе программиста (хоть и самоучку), который в упор не видел и не знает, что есть деструктор, как-то даже страшно представить :).

В первое время жутко раздражал синтаксис C#. Если с операторными скобками как-то свыкся. то определение переменных “задом наперед” (сначала тип, потом переменная) откровенно бесило :) Но, потом как-то привык, втянулся.

Также не понравилось определение переменных вообще. Может это и удобно – взять и в любом месте кода воткнуть определение переменной, но, по-моему, такой подход к написанию программ осложняет чтение кода. Привык как-то к заведенному в Delphi порядку: сначала переменные, потом код. а не наоборот и, тем более не в куче вперемешку.

В Visual Studio понравился отладчик. Не вдаваясь особо в подробности самого процесса, порадовало сохранение всех каких надо значение переменных, свойств, целых объектов , полученных в ходе предыдущей отладки. Поковырялся до полуночи с багом, “прилепил” окошки с переменными прям в коде и пошел спать – с утра все на месте и, если надо – с комментами. Надо – слил данные в XML-файлик, перекинул по почте. Красота, черт-побери…хочу такой же в Delphi новой версии :):

отлидчик Отдельного внимания заслуживает WPF, но на рассмотрение всех его возможностей, видимо, можно смело заводить отдельный блог, поэтому ограничусь только некоторыми моментами. С WPF приложение можно разделить на две части – интерфейс, который описывается с помощью разметки XAML и модули логики взаимодействия. На мой взгляд, такой подход с одной стороны выигрышный, т.к. потенциально можно “нарисовать” интерфейс приложения, логика которого будет реализована на любом языке программирования, например, на том же C#. С другой стороны, как недостаток, может выступать сам XAML – если Вы и программист и дизайнер и вообще на все руки мастер, придётся вникать в суть, можно сказать, сразу двух языков – XAML для интерфейса, и C# для реализации всего остального, что мне, пока, дается с большим трудом. Но зато с WPF можно сделать такой интерфейс, что закачаешься, начиная от обычных кнопочек, закладок и, заканчивая, навороченными лентами, со своими стилями, раскрасками и поведением.

В целом же, из того, что я нашел для себя в Visual Studio за недельку, могу сказать следующее: спору нет, достоинств достаточно, есть и вещи, которым можно позавидовать (белой завистью), но, если, скажем, мне сейчас предложит написать более менее серьезную программу, то 99% того, что открою Delphi (1% на то, что вдруг окажется “прошареный” заказчик с требованием only C#). В общем за неделю я нашел много чего интересного для себя, но не на столько интересного, чтобы сказать “все, Delphi в топку – нашел то, что хотел” :).

0 0 голоса
Рейтинг статьи
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
Подписаться
Уведомить о
20 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
BB
BB
24/04/2011 01:03

интересно :)

IL
IL
24/04/2011 01:39

Поздравляю! Чем меньше фанатизма в отношении инструмента, тем лучше всем. Многие Delphi-программисты умеют и C#, и Objective-C и Python.

SCHigi
SCHigi
24/04/2011 11:30

1 — C# разрабатывал тот же товарищ, что и Object Pascal и Delphi с самого начала существования фирмы Borland, так что это потомок Delphi :) 2 — «кучерявые» скобки вместо слов — делают язык более лаконичным, идеал — вообще все ключевые слова заменить условными знаками, чтобы было удобно визуально отличать идентификаторы от конструкций языка. 3 — объявлять переменные прямо внутри кода — тоже удобно, если процедура достаточно большая и, по идее можно более эффективно использовать стэк (но незнаю, точно что как делает компилятор) Вообщем, оба «энтерпрайз» языка  Java и C# — они действительно возникли как развитие Си и Дельфей, на… Подробнее »

Евгений
Евгений
24/04/2011 12:58

Если понравился дотнет то рекомендую посмотреть на проект PascalABC.Net.

ter
ter
25/04/2011 12:40

тоже в планах есть прочитать книгу по С-шарпу (:

Ярослав
Ярослав
25/04/2011 14:08

Явно писал человек, который, кроме Delphi, почти ничего в жизни не видел.
Стиль объявления переменных унаследован от С, (даже не С++, а чистого С) и применяется в туевой хуче языков (особенно — активно используемых, сиречь С++/С#/Java) уже много лет.
Насчет того, что переменные не надо объявлять отдельно (и это, якобы, неудобно)…
Давным-давно, при переходе с GW-BASIC на QuickBasic, меня ломало то, что здесь, блин, НЕ НАДО вводить номера строк программы. Кто теперь помнит про эти номера строк? Так что — добро пожаловать из Delphi в реальный мир, где переменные уже давно не объявляются в двух местах.

Ярослав
Ярослав
25/04/2011 18:55

Vlad.
Да не стоит так держаться за Delphi.

Мне вот не повезло, меня заставляет работать на Delphi контора, где я работаю. Ну, объективно, очень много уже на нём сделано, переползать на дотнет будет слишком затратно.

Если у вас таких внешних обстоятельств нет — смело переходите на C# как на основной язык, благо, логика языка похожа. Сильно раздвинутся горизонты, честное слово.

AnnaP.
AnnaP.
25/04/2011 20:54

Коммент не относится к теме, но является его следствием. На данный момент я представляю из себя это- «но представить себе программиста (хоть и самоучку), который в упор не видел и не знает, что есть деструктор, как-то даже страшно представить :)» (нет, что такое деструктор я знаю, но не более). Соответственно большая просьба, не могли бы вы написать статейку о зачистке за собой мусора!

GuFFest
GuFFest
26/04/2011 15:56

я сам с многолетним стажем на Delphi, как то года полтора назад присматривался к С# из-за WPF, и сам WPF понравился и C#, к тому же модное направление сейчас, можно много готового найти. Но как оказалась то шрифт мелкий плохо рендерится, который вроде как в .Net 4 починили, то примеры на WPF тормозные(программу быстро написал, потом сидишь WPF оптимизируешь :)) да из за WPF в .Net 4, поставить сам .Net 4 не везде получится, т.к. вроде как требования от XP SP3. На данный момент присматриваюсь к QML(альтернатива WPF), примеры быстро работают, т.к. C++, но вот да сам то С++ и… Подробнее »

Ярослав
Ярослав
28/04/2011 14:31

GuFFest
1. Дотнет полезен ДАЛЕКО не только из-за WPF. Например, в предпоследней моей халтурке я использую C# без традиционных GUI-библиотек вообще (сюрпрайз! И такое может понадобится).

2. QML — не альтернатива WPF. Альтрернативой можно назвать QT. Который имеет смысл использовать из С++, Python (PyQT), причем на разных платформах. а из некоторых других языков можно исползовать — если приспичит (в т.ч. C#: http://sourceforge.net/projects/qtcsharp/). Delphi к ним не относится :)

Mifody
Mifody
29/04/2011 11:31

Оба на, начинаете, товарищи, потихоньку «холиварить» :). Ну и я выскажусь. Нет плохих/слабых/корявых/… (вместо многоточия поставить свое определение) языков. Есть только нехватка мозгов и корявые руки :). Самого себя не считаю гуру ни в одном языке программирования, по лично выбираю язык под конкретные задачи. Если в нем легче решить конкретную задачу, и изучать не сильно долго, в Ём и пишу: 1. jsx (js переточенный) — скрипты для Addobe 2. vb — тож для Adobe, раньше работал, только в нем можно было интерфейсы писать 3. Delphi — в основном для десктопных программ 4. ну и всякие там по мелочи, PHP, VisualLisp… Подробнее »

Ярослав
Ярослав
03/05/2011 18:06

> Нет плохих/слабых/корявых/… (вместо многоточия поставить свое определение) языков. Конечно, нет :) Есть только отдельные недостатки, как-то: нехватка библиотек под язык, полное отсутствие выбора IDE (а то, что есть — ужасно глючное), интероперабельность ниже плинтуса, отсутствие на 3 мая 2011 г. компиляторов под современные платформы (как следствие — область применения исключительно win32), избыточный синтаксис. А так — хороший язык, таки да. (Да, понимаю, что пахнет холиваром.) > Не пересел на него только (кстати, к С++ то же относится) потому, что не было задач, которые можно сделать только в нем У вас какой-то странный подход к выбору средств. Знаете, нет такой… Подробнее »

Mifody
Mifody
03/05/2011 19:59

ааа, блин, я очепятался :)
в моем посте «смотрел, весьма не понравился», «не» убрать надо, я хотел сказать что понравился :))))
А вообще да, у меня задачи очень узкие, либо под вэб (парсеры/граберы/авторегеры), либо разбор графических файлов. Пока по совокупности знаю+могу+возможности — Delphi вполне хватает :)

Ярослав
Ярослав
04/05/2011 11:30

Mifody
«Хватает» не значит «лучше подходит».
Скажите мне пожалуйста, а есть ли иные причины того, что вы предпочитаете Delphi, кроме той, что вы его хорошо знаете?

Mifody
Mifody
04/05/2011 16:14

Ярослав а не начинаем мы флудить? :)
А причина есть еще одна, но она самая главная — нехватка времени на изучение чего другого. Других, более «серьезных» (возможности там, или еще чего) нет совсем.
Причем некоторые вещи, которые делал в Delphi, видел, что можно «красивше» (в смысле даже удобнее) сделать в C# или C++, но вот время… Я сейчас и фриланс даже из-за этого забросил :(

Ярослав
Ярослав
05/05/2011 12:37

Mifody
Да мне как-то все равно, а не начинаем ли мы флудить :-Р
Желаю вам все-таки найти время на изучение чего-то другого. Adios :)

Beltar
Beltar
06/06/2012 18:16

Забавно читать сишников, которые когда-то истерили, как крута VS и MFC, только чтобы броситься кидать компоненты на форму, когда вышла .NET и начать восхвалять C#, который наконец-то заткнул дырки плюсов.
При этом им почему-то и в голову не приходит, что для многих людей оформление операторного блока нормальными словесными скобками полезнее якобы быстрого ввода фигурных скобок (а про Shift не забыли?), а у некоторых вроде меня регистрозависимый синтаксис вызывает приступы ненависти.