Как принято в мировой практике - начинают с БЕЙСИКА. БЕЙСИК - это только чтобы ты не пугался клавиатуры...
Эх... Хотел сходу найти у пророка Эпплмана цитату хорошую, но чего-то не могу - давненько книгу не читал, поэтому приведу цитату по памяти(фраза относится не к конкретному программисту, а к общей тенденции):
... После того, как бедный программист, выслушывал выпады насильников в сторону бейсика, он садился за свой компьютер и за два часа писал столько кода, сколько насильники не могли написать за неделю ...
.к. находитесь на разных ступенях (ты в подготовительном классе, а он уже выпускник).
Жестоко... Оскорбил...
При написании приложения ты можешь воспользоваться частью этих функции как инструментом автоматизации, но даже в этом случае ты не будешь уверен в том что весь используемый код - полезный.
Часть этих функций ты можешь вставить в приложение в переработанном виде, а в конкретных критических участках заменить своими, адаптированными под конкретную ситуацию.
Странно, но намного проще делать программу, в которой нет этих самых критических участков.
Да и вообще, нормальная технология не трубет при использовании обработки себя напильником и кувалдой. Она просто сразу после установки готова к работе.
Но если для тебя что WIN32 API, что классы .NET всего лишь названия, то о чём ты вообще можешь спорить?
Вот только не надо. Для меня и классы, и функции Win32API - это только инструменты.
.NET - ограничитель фантазии. Это путь лени, причём не твоей лени, а парней из Редмонда, не потрудившихся создать профессиональный инструмент.
Ты не считаешь .NET професиональным инструментом?
Ты хоть раз видел .NET в работе?
Видел, как десятком строк кода три связанные таблицы из базы данных на MS SQL Server превращаются в связанный список заказов?
Видел, как десятком кликов мыши выполняется связь Windows-приложения с веб-сервисом?
А VS 2005 не видел? Не читал усовершенствования в модели ADO .NET, ASP .NET и т.д.?
Так вот, могу сказать, что .NET выполняет за меня ту работу, которую он уже может выполнить, и чем больше работы технология сможет выполнить, тем лучше.
Ты никогда не сможешь переубедить меня, что это ставит меня на ступени ниже того же cresta'ы.
Сегодня обществу не нужны гениальные программы.
Достаточно программ, которые работают и работают сегодня (а не через 6 месяцев, когда наконец весь код будет адаптирован под "критические ситуации" и когда все функции будут как надо "переработаны".
Эх... Хотел сходу найти у пророка Эпплмана цитату хорошую, но чего-то не могу - давненько книгу не читал
Нет проблем, держи.
Впрочем, у меня еть предположение. Думаю, программисты Visual Basic комплексовали перед своими коллегами, работавшими на C++, которые часто задирали носы и говорили: "Visual Basic - не настоящий объектно-ориентированный язык. В настоящем объектно-ориентированном языке есть полноценное наследование". Услышав это, бедный программист VB удалялся в свою каморку и за час выдавал больше кода, чем программист C++ мог написать за целую неделю. Но никто не обращал на это внимания, потому что C++ был "современным, элегантным, профессиональным объектно-ориентированным языком", а VB считался "пережитком прошлого, игрушкой, языком новичков" для тех, кто не смог освоить C++.
...
Поделюсь с вами маленьким секретом.
Я программировал на C++ в течение большего срока, чем на Visual Basic, - и продолжаю программировать на обоих языках. Я стал убеждённым сторонником объектно-ориентированного программирования в тот самый момент, когда впервые освоил концепцию класса в 1977 году. Я программировал в таких библиотеках, как ATL, в которых широко и успешно использовалось наследование.
Но за все годы я припоминаю всего пять или шесть случаев, когда применение наследования было правильным решением в моих собственных приложениях и компонентах.
Да, .NET использует наследование - оно встроено в саму архитектуру. Да, на базе наследования создаются иерархии классов, при помощи которых вы строите собственные программы.
Но если вы действительно понимаете суть наследования, возможно, вам удастся успешно прожить, не создав ни одного класса или компонента, который будет использоваться в механизме наследования.
... После того, как бедный программист, выслушывал выпады насильников в сторону бейсика, он садился за свой компьютер и за два часа писал столько кода, сколько насильники не могли написать за неделю ...
Ну и что, так ведь весь этот служил только для обслуживания виртуальной машины, а основная, расчётная часть, выполнялась на более профессиональных инструментах. Так что сравнение здесь неуместно. Те же обдчики могли сесть рядом и написать столько же кода для своего интерфейса. Просто они реально оценивали "мощь" VB.
Жестоко... Оскорбил...
Может для тебя это и оскорбление, а для меня всего лишь специализация. Раз ты прикладной программист (программист под какую то прикладную систему), то естественно что ничего кроме прикладной системы ты не знаешь. Соответственно если тебя классифицировать по каким хочешь меркам (да хоть международным), то обижайся не обижайся, но это подготовительный уровень.
Странно, но намного проще делать программу, в которой нет этих самых критических участков.
Критических по скорости.
Вот только не надо. Для меня и классы, и функции Win32API - это только инструменты.
Да, конечно, но представь что ты в школе начал изучать таблицу умножения не ознакомившись с принципом счёта вообще. Замечем нужно умножение, что это такое ты не знаешь. Ты просто знаешь как по таблице выбирать нужное число. Аналогия надеюсь понятна?
Ты не считаешь .NET професиональным инструментом?
Ты хоть раз видел .NET в работе?
Друг мой, и что же такого революционного в этой технологии? Сколько знаком с продуцкией Микрософта она всегда выпускала нечто подобное. Для меня это ещё один более грандиозный и более тормознутый рантайм. А даже если там и есть хорошие идеи, то они 100% украдены и обожествляемые тобой ребята из Редмонда их только адаптировали под свою надолго затянувшуюся (в смысле идея уже себя давно изжила) виртуальную машину.
Вот из за таких безголовых споров
Москва или Новосибирсr ну или Питер никогда не будут Бангалором
ИМХО Чем копать отбойным молотком или лопатой выбирать должен заказчик. Если он хочет быстро - отбойный молоток разработчику в руки. Если он хочет типа качественно, но так чтобы в исходных кодах на С++ после увольнения разработчика разобраться невозможно до такой степени, что проще написать все сначала ради бога.
Про АСМ я вообще не говорю. Низкоуровневое программирование приводит к тому, что нужно писать версии под каждую ОС а в NT еще и в каждом сервиспаке хотфиксе тестить. Это приводит к разрастанию кода, трудноуловимым глюкам...
Не голосую ни за что, но считаю что обзывать людей которые зарабатывают миллиарды идиотами ИМХО неразумно. В завершение спича приведу очень хорошую буржуинскую поговорку "Если ты такой умный то где твои деньги?"
Может для тебя это и оскорбление, а для меня всего лишь специализация. Раз ты прикладной программист (программист под какую то прикладную систему), то естественно что ничего кроме прикладной системы ты не знаешь. Соответственно если тебя классифицировать по каким хочешь меркам (да хоть международным), то обижайся не обижайся, но это подготовительный уровень.
С каких пор уровень программиста начали оценивать по крутости и оригинальности написанного кода?
И вообще, непосредственно конечный продукт - прогармма тоже не оценивается степенью крутости кода, который в нее заложен - он оценивается функциональностью, полезностью.
А количество реализованной функциональности на единицу кода в высокоуровневых инстрементах намного выше, чем в низкоуровневых.
> Странно, но намного проще делать программу, в
> которой нет этих самых критических участков.
Критических по скорости.
Это мы уже проходили, кажется?
Назови мне типы программ, которые критичны к скорости.
Банальные алгоритмы сортировки, БД, графика и криптография не в счет - это уже реализовано и работает.
Да, конечно, но представь что ты в школе начал изучать таблицу умножения не ознакомившись с принципом счёта вообще. Замечем нужно умножение, что это такое ты не знаешь. Ты просто знаешь как по таблице выбирать нужное число. Аналогия надеюсь понятна?
Очень неудачная аналогия.
Более удачно:
Представь человека, который ничего не знает о устройстве автомобиля, сел за руль автомобиля с автоматической коробкой и поехал. Что здесь противозаконного? Едет? Едет. А что еще надо? Для повышения собственной крутости еще и ручку дерагть? Глупо...
Друг мой, и что же такого революционного в этой технологии?
Я бы, конечно, мог опять описать тут все преимущества .NET, но сегодня не имею желания это делать - об этом уже было сказано, и сказано не раз и не только здесь.
Сколько знаком с продуцкией Микрософта она всегда выпускала нечто подобное.
Да, да, конечно.
Для меня это ещё один более грандиозный и более тормознутый рантайм.
Угу. Если отбросить 99% того, что реализовано в .NET, то это именно более грандиозный и более тормознутый рантайм.
А даже если там и есть хорошие идеи, то они 100% украдены и обожествляемые тобой ребята из Редмонда их только адаптировали под свою надолго затянувшуюся (в смысле идея уже себя давно изжила) виртуальную машину.
Названия технологий, названия технологий в оригинальном варианте и названия компаний, у которых эти технологии были украдены, плз.
Про то, что они были украдены из Delphi уже слышали, еще есть какие-то данные?
Artyom, у меня есть несколько вопросов.
Можешь ли ты разъяснить мне смысл некоторых твоих высказываний.
Без лишних слов. Просто и коротко. Или не сможешь?
Не голосую ни за что, но считаю что обзывать людей которые зарабатывают миллиарды идиотами ИМХО неразумно.
Если бы я говорил с Биллом Гейтсом, то я бы сказал ему, ты клёвый парень! Продолжай и дальше дурить простачков и набивать карманы вечнозелёными.
Но ставить мне в пример человека который ворует технологии ради того чтобы их потом принести в жертву своему идолу - виртуальной машине, этого я вытерпеть не могу.
Представь что ты когда либо изобретёшь что либо стоящее (хотя конечно одних знаний .NET для этого недостаточно, так что это будет гепотетически), набирающее популярность и в один прекрасный момент твоё изобретение появится в Windows (или ещё в каком продукте Микрософта) безо всякого спроса, причём в запатентованном виде. А через некоторое время бесследно исчезнет, т.к. противоречит политике Микрософт.
Я понимаю что тебя это может не беспокоить и ты даже в мыслях не нарушаешь правило "Всем пацакам носить намордники и радоваться", но я не страдаю повышенными стадными инстинктами и вполне могу сам оценить (без умных дядек) действительно ли инструмент является оптимальным для поставленной (либо как .NET - для всех) задачи.
Странно, но намного проще делать программу, в которой нет этих самых критических участков.
Намного проще вообще не писать программы. А в мире ПО всегда требуются качественные программы, которые должны содержать критические участки - по безопасности, по скорости, по размеру, и написать которые может только квалифицированный программист, а не тот, для которого программирование сводится к юзанию ИСР.
Да и вообще, нормальная технология не трубет при использовании обработки себя напильником и кувалдой. Она просто сразу после установки готова к работе.
Однако это не отменяет необходимости уметь пользоваться напильником, кувалдой и паяльником, если твоя работа заключается в создании, тестировании и поддержке подобного рода девайсов.
Вот только не надо. Для меня и классы, и функции Win32API - это только инструменты.
Я знаю, почему молоток забивает гвозди, у меня не возникает сомнений, как лучше им бить, чтобы выполнить мою задачу, я знаю, как устроен молоток и даже два раза их делал на уроке труда , а ты можешь сказать то же самое о .NET или Win32API?
Сегодня обществу не нужны гениальные программы.
Не будем обобщать, ага? Это звучит так же нелепо, если бы ты сказал, что сегодня обществу не нужен полиэтилентерефталат. Ты не знаешь ни что это, ни для чего он нужен. Хотя нет, сейчас в Инете найдешь
Не голосую ни за что, но считаю что обзывать людей которые зарабатывают миллиарды идиотами ИМХО неразумно.
Их то идиотами никто и не называет, но как называть людей, которые им эти миллиарды приносят ни за что, в общем-то, за рекламные плакаты и весьма скромный и некачественный труд?
Про АСМ я вообще не говорю. Низкоуровневое программирование приводит к тому, что нужно писать версии под каждую ОС а в NT еще и в каждом сервиспаке хотфиксе тестить. Это приводит к разрастанию кода, трудноуловимым глюкам...
У кого как.
В завершение спича приведу очень хорошую буржуинскую поговорку "Если ты такой умный то где твои деньги?"
С умом приходит и понимание того, что деньги не главное. Сколько миллиардов долларов имел Эйнштейн? Королев? Капица?
И вообще, непосредственно конечный продукт - прогармма тоже не оценивается степенью крутости кода, который в нее заложен - он оценивается функциональностью, полезностью.
Ага, а еще качеством. Языком, понятным для капиталиста, объясню, если твоя программа обрабатывает твои данные в 2 раза быстрее и это является полным прозводственным циклом, то за одинаковый промежуток времени ты получаешь в 2 раза больше прибыли. Если это часть производственного цикла, тогда связь выражена чуть менее заметно. Теперь сравни с финансовой точки зрения, что выгоднее: программа, работающая без обновления парка ЭВМ со скоростью в 10 раз большей, чем другая программа, которая требует покупки новых машин и/или комплектующих?
Назови мне типы программ, которые критичны к скорости. Банальные алгоритмы сортировки, БД, графика и криптография не в счет - это уже реализовано и работает.
Предлагаю тебе своего рода соревнование: твоя любимая тема, БД, веб-сервисы, работа в границах твоих любимых классов. Конкретно: поисковик по локальной сети, т.е. надо найти все файлы, расшаренные в сети (ага, знаю, класс есть), а затем по запросу, представляющему собой одну или несколько подстрок искомого имени файла, вывести список файлов, такие подстроки имеющих. Несложно? Только учти, что файлов в сети порядка 100 млн., а максимально допустимое время поиска - 1-2 секунды. Если ты вдруг думаешь, что это невозможно, смею сообщить, что у нас в сети такое чудо работает, и написано оно настоящим программистом, а не таким как ты.
Представь человека, который ничего не знает о устройстве автомобиля, сел за руль автомобиля с автоматической коробкой и поехал. Что здесь противозаконного? Едет? Едет. А что еще надо? Для повышения собственной крутости еще и ручку дерагть? Глупо...
Это простительно только симпатичным блондинкам, да и то, только при наличии определенной удачи, что мимо проедет нормальный автомобилист и поможет ей, совсем не разбирающейся в своей машине. Остальным же останется только тупо смотреть на свой капот и думать, как же его упросить, чтобы все заработало снова.
Названия технологий, названия технологий в оригинальном варианте и названия компаний, у которых эти технологии были украдены, плз.
К примеру, технологии JIT, AOT, BC (MSIL ) были нагло стырены у Java (частично у Zend), про регекспы почему-то никто не вспоминает, что они взяты из perl. Продолжить или сам озаботишься поиском в Гугле по словам "история" или "происхождение", а потом имя нравящейся тебе технологии?
Аргументы не кончились. Приводить их смысла нет - сделаешь вид, что не услышал и начнешь о чем-то другом. Хочу понять твои.
Вот высказывание:
А количество реализованной функциональности на единицу кода в высокоуровневых инстрементах намного выше, чем в низкоуровневых.
Вопрос 1:
В каких единицах измеряется код в высокоуровневых инструментах. В качестве ответа - название единицы и больше ничего!
Вопрос 2:
В каких единицах измеряется код в низкоуровневых инструментах. В качестве ответа - название единицы и больше ничего!
Банальные алгоритмы сортировки, БД, графика и криптография не в счет - это уже реализовано и работает.
Вопрос 3:
Что было принципиально невозможно реализовать и что стало возможно только с появлением .net? В качестве ответа - название субстанции и больше ничего
Видел, как десятком кликов мыши выполняется связь Windows-приложения с веб-сервисом?
Вопрос 4:
В VB IDE можно вызвать визарда, и несколькими кликами построить к примеру, MDI-приложение, указав ему(визарду) некоторые опции.
Чем принципиально отличается работа, которую выполняет визард, от той работы, которая происходит при связывании Windows-приложения с веб-сервисом?
Пожалуйста, без рекламы и уходов сторону, ответь на 4 вопроса. Коротко, чтобы я не запутался в обилии слов и не пропустил главного.
Это мы уже проходили, кажется?
Назови мне типы программ, которые критичны к скорости.
У меня создаётся впечатление что я говорю со стенкой. Как можно перечислить "типы программ, которые критичны к скорости"? Критичными могут быть участки программы, в которых производятся наибольшее количество вычислений за наименьший промежуток времени.