Конечно, программист .NET вряд ли будет знать как работать с
регистрами процессора и управлять памятью. Но с другой стороны: зачем
это нужно? Технология .NET достаточно хороша, чтобы не произошло
ошибок, которых программист не смог исправить. И тут, ИМХО, у
программиста есть выбор: если он хочет быстроту создания и удобный IDE
- пиши на .NET. Опять же, ведь никто тебе не мешает программировать на
Асме. И не стоит судить Microsoft за то, что они так активно
продвигают свою технологию. Все-таки им же тоже кушать хочется
>CyRax, а почему ты не прогарммируешь на ассемблере, раз уж тебе так хочется низкоуровневого программирования? И не собираюсь пока. Это основы программирования. К ассемблеру они имеют косвенное отношение. Их должен знать любой не MS Visual программист. Я не знаю так много что бы программировать на АСМ, но я знаю основы программирования, что позволяет мне создавакть полноценные программы.
>И причём здесь интерпретируемость? Собственно а зачем он привязан к 20-ти метровому рантайму. Поприкалываться? Если бы это был не интерпритатор, то бы смог делать вызовы CLR из проги, а не быть жестко к ней привязаным.
>А зачем тебе доступ к памяти? К прерываниям? Получается что это ты говоришь, сам не понимая предмета разговора. Прерывания уже заблокированы Микрософтом в защищённом режиме и доступа к ним не может быть из Windows на уровне Ring 3. Для доступа к ним нужно писать драйвер или использовать лазейки, не предусмотренные Микрософт. А вообще профессионал отличается тем, что для него не существует жесткой привязки к среде программирования. Помню в бытность свою изучения QB я видел программы на подобие описаных Sharp'ом Microsoft.Windows.Framework.Software.Standart.Editor.PlainText.Executable.RUN, но видел и программы профессионалов с низкоуровневыми вставками через INT86x. Зачем доступ к памяти? Хм, вопрос явно задёт не прораммист или программист на VB, что в принципе одно и тоже. Поэтому вопрос заранее не имеет ответа для тебя. Потому что ты решил всё таки отнести себя к новой генерации программистов. Для стандартного программирования действительно ничего этого не нужно. Но если ты программируешь стандартно, то и мыслить начинаешь стандартно. Тем самым ты притупляешь своё воображение.
>.NET - только с кучей книжек, бесчисленными расспросами специалистов, и то ещё нужно постичь многое... Ну хорошо, допустим Микрософт промазал с интерфейсом нового VB и он сильно усложнился. Но это не значит что его не сможит выучить домохозяйка. Потому что он на английском языке. А английский язык зашит в CLR. Она сказала - Хочу что бы было окошко. Гиганская 20-ти (200, 2ГБ,... до бесконечности) CLR проанализировала запрос и после продолжительного хрюканья выплюнула ей это окно на экран. Вот собственно почему он для домохозяек. Ей не нужно программировать - ей всего лишь нужно правильно расставить блоки. Причём эти блоки могут быть очень сложными и потребовать от неё больших умственных затрат и толстых талмудов с описанием объекта. Например у неё есть ванная и она говорит компьютеру: "Framework.Show.My.BathRoom". Он показывает ей ванную, но она путая. Что же делать??? Домохозяйка в ужасе. Допустим наша домохозяйка выкрутится моментально - она позовёт слесаря Васю, который за бутылку ей всё сделает. Но русская душа - потёмки. При чём VB расчитан не на нашу, а пока на американскую домохозяйку (остальных прийдётся просто американизировать). Первым делом она конечно позвонит в службу поддержки, а может быть даже самому большому Билу. Разумеется и там и там будет занято (сами догадайтесь почему). Немного пострадав (ведь накануне товарка показывала ей отличнейшую ванную на своём суперсовременном компе) она конечно же полезет в справочное руководство, где на чистейшем английском (заметьте не на языке программирования а на английском) будет написана программа отображения ванной. MyFirstBathroom Is Framework.MyHouse.Bathroom With Subjects Subjects.Add "Мыло","Полотенце" и т.д. Framework.Collection.Add.Bathroom name:="First Bathroom" Ну и так далее. Тем же способом расположение координат каждого предмета свойства и т.д. Не правда ли довольно сложно? Да, я согласен - сложно. Но это не программирование.
>Насчёт ассемблера: на чём ты быстрее напишешь нормальную прогу под заказ (допустим, проект для управлением контентом веб-сайта), на ассемблере, или на ЯВУ? Я - нет. Всю жизнь программировал только на Бейсике. Причём не только на интерпритаторах. А программист на АСМ конечно же быстрее. Но дело то ведь не в этом. Ты создашь документ, а он напишет программу.
>Конечно, программист .NET вряд ли будет знать как работать с регистрами процессора и управлять памятью. Но с другой стороны: зачем это нужно? Без коментариев. Это я описал выше.
>И не стоит судить Microsoft за то, что они так активно продвигают свою технологию. Все-таки им же тоже кушать хочется Да по моему уже некуда кушать - скоро лопнет. Вернее уже лопнул.
>что-то твоя ссылка не грузит Сайт глючит. Пробуй время от времени.
===
Вывод. Не циклитесь на VB.NET - он не может быть лучшим языком программирования только потому что он языком проограммирования не является. Хотя время его ещё не пришло (если вообще прийдёт). Будущее покажет.
Давайте вспомним, как работает VB с логическими величинами. Представим себе, что вы проверяете результат выполнения функции, например InStr, которая возвращает 0 (по логике это False) , если подстрока не найдена, или ее позицию в строке, если она найдена, т.е. любое число больше 0 (по логике это True). Но, посмотрите на следующий пример:
If InStr(1, "Журнал Программист", "Программист") And_ InStr(1, "Журнал Программист", "Журнал") Then Console.WriteLine("True") Else Console.WriteLine("False") End If
Рассуждая логически, если первое выражение "истина" и второе тоже "истина", то операция And также должна давать "истину"... Но только не в Visual Basic! Вы никогда не получите логически предсказуемый результат в данном случае. Первый вызов InStr вернет 8, второй 1 и при выполнении операции And вы получите не что иное, как False! Почему? Все очень просто, оператор And (и Or, кстати, также) выполняют не логическое сравнение, а поразрядную операцию, а результат в данном случае получается 0, т.е. False. ===
Может ему надо что бы он ещё и сам в консоли это написал
Хотя можно и так сделать. Естественно за счёт увеличения CLR.
> Да, кстати, а VB.NET умеет делать ActiveX OCX или DLL?
DLL он делать умеет, полноценные, лучше ActiveX и классических
> Может ему надо что бы он ещё и сам в консоли это написал
А я не понял, о чём ты...
Если о "Console.Write", то ... в общем, это получается то же самое,
что и в QBasic'е команда Print. Что в этом тебя не устраивает?
> Кстати неплохо было ыб повторить опрос об инуструментарии.
Сейчас сделаю. Самому тоже интересно.
> Получается что это ты говоришь, сам не понимая предмета разговора.
Я не знаю детально, какие там кольца защиты, как ограничен доступ к
прерываниям. ИМХО, это нужно только системным программистам. А мен
нужно писать программы, а не железо мучить.
> Зачем доступ к памяти?
Зачем? Я не помню ни одного случая, когда мне нужно было бы самому
управлять памятью. Всё отлично делается и без этого. Хотя возможно в
VB6 могло бы ещё что-то пригодиться при работе с API. Но зачем в такие
дебри лезть?
Не помню, где я это вычитал, очень умная мысль: когда пишешь программу
нужно думать не о технических нюансах, а о самой программе, принципах
её работы, бизнес логике.
> Хм, вопрос явно задёт не прораммист или программист на VB, что в принципе одно и тоже.
Этим ты оскорбляешь всех VB-программистов...
> А программист на АСМ конечно же быстрее.
А я что-то так не думаю...
Думаю, тему надо прикрывать... Это уже идёт спор не о .NET, а о том,
как CyRax ненавидит Microsoft...
>Собственно а зачем он привязан к 20-ти метровому рантайму.
А зачем обычные exe файлы привязаны к API?
>Но это не значит что его не сможит выучить домохозяйка. Потому что он на английском языке.
А на каком языке он должен быть?
>Гиганская 20-ти (200, 2ГБ,... до бесконечности)
Вот не понимаю, почему все так боятся размера .NET FW? Никого
не волнует, что библиотеки API весят больше 100 метров. А почему?
Потому что они есть в каждом Windows'е. Ну и .NET FW тоже будет в
каждом Windows'е. Это лишь вопрос времени...
>Она сказала - Хочу что бы было окошко... ...CLR проанализировала запрос и после продолжительного хрюканья выплюнула ей это окно на экран.
А как было в VB6?
>Первым делом она конечно позвонит в службу поддержки
Может быть домохозяйки так и будут делать, я не знаю... Но программист
(хотя программистов .NET ты, похоже, уже не считаешь программистами)
вполне способен сам решить свою проблему.
>не логическое сравнение, а поразрядную операцию
Это всем давно известно. Чтобы получить предсказуемый результат, нужно
добавить всего два символа:
InStr(1, "Журнал Программист", "Программист")>0
Это вернет логическую величину.
Это не такой уж большой недостаток. Ни когда не страдал из-за этого.
Сначала хотел ответить по "критике", но потом понял, что CyRax на все вопросы для себя уже ответил. Причем, не зная .Net. Человеку, который не хочет понять, что-то объяснить невозможно, какие-то глупые "примеры" приводит...
>InStr(1, "Журнал Программист", "Программист")>0 - Там же ссылка есть на статью. Почитал бы хоть. Для такой задачи используется CBool.
>А я не понял, о чём ты... Если о "Console.Write", то ... в общем, это получается то же самое, что и в QBasic'е команда Print. Что в этом тебя не устраивает? - Ты не понял вопроса.
>Не помню, где я это вычитал, очень умная мысль: когда пишешь программу нужно думать не о технических нюансах, а о самой программе, принципах её работы, бизнес логике. - Ты задумываться над этим не должен, но если ты программист, то должен знать.
>Думаю, тему надо прикрывать... Это уже идёт спор не о .NET, а о том, как CyRax ненавидит Microsoft... - Собственно IMHO
>Зачем? Я не помню ни одного случая, когда мне нужно было бы самому управлять памятью. Всё отлично делается и без этого. Хотя возможно в VB6 могло бы ещё что-то пригодиться при работе с API. Но зачем в такие дебри лезть? - Ага, особеннно если этого доступа нет(!!!)
DLL у него свои, лучше ActiveX'овых и классических - Разумеется с поддержкой CLR?
Сначала хотел ответить по "критике", но потом понял, что CyRax на все вопросы для себя уже ответил. Причем, не зная .Net. Человеку, который не хочет понять, что-то объяснить невозможно, какие-то глупые "примеры" приводит... Короче, клинический случай, закрываете тему! - Без комИнтариев
Если внимательно перечитать его речи, он и себя программистом не считает... - Это уже не бои на арене, а плач обиженного ребёнка.
Ни одного существенного довода в пользу Vb.Net так и не удалось услышать. Остаюсь при своём мнении. Хотите таскать 20 метровый рантайм за прогой в 10 кБ - таскайте.
Ну не хотите как хотите. Если вы все обиделись, то можно и прекратить. Хотя я думаю эта тема привлекает внимание не только к VB.NET, но и к сайту VbNet.Ru.
> Это уже не бои на арене, а плач обиженного ребёнка.
Ну, собственно, могу мою мысль пояснить цитатами из твоих речей, но не
буду время тратить.
> Ни одного существенного довода в пользу Vb.Net так и не удалось услышать
Услышать удалось, понять - нет.
> Если вы все обиделись, то можно и прекратить.
Мы не обиделись. Но лично я не вижу смысла продолжать. Путсая трата
времени, ибо твоя задача мне непонятна... Ни единого, даже весьма
весомого, довода за .NET ты принимать не хочешь. Так зачем оно мне
надо, выслушивать твои оскорбления?
> Хотя я думаю эта тема привлекает внимание не только к VB.NET, но и к сайту VbNet.Ru.
Возможно. Но интерес привлекают, ИМХО, только первый десяток
сообщений. Остальное - вода.
А если бы не те, злополучные, 20 мб, ты бы также говорил?
Думаю, нет. У тебя психоз из-за проблем с распространением .net
программ.
Это пройдет, когда framework будет поставляться вместе с windows. Или
когда увеличится качество инет связи.
Лично я настроен более оптимистично.