Здравствуйте, _Mihail, Вы писали:
_M>Согласен, на С++ наверно можно реализовать функции, которые реализованы в VB, да ещё подогнать их под свои вкусы. Что там говорить — и VB и студия написаны на C++, можно и их написать, и тот же Nemerle. Только это уже фактически не C++ будет, а опять VB или Nemerle — как ни крути, а придется всё равно расплачиваться падением универсальности, за высокоуровость.
А можно показать мне конкретно, в какой момент придется расплачиваться? Я вот совершенно этого не вижу.
_M> Вобщем, прятаться за "потенциальные" возможности высокоуровности языка врятли получится. Поэтому мне кажется C++ в любом случае оказывается ниже по уровню, чем VB.
Ребята, это совсем другая ось графика. Есть DSL — языки, специфичные для определенной области. Они не выше и не ниже, чем General Purpose Programming Languages, они сбоку.
И VB.NET и С++ являются turing-complete языками, и никакого "падения универсальности" в них нет. Если у вас оно происходит, то проблема не в языке.
Вот если брать классический VB, то С++ окажется одновременно выше и ниже его по уровню. Потому, что есть более низкоуровневые конструкции, а есть более высокоуровневые.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Какой язык более высокоуровневый - C# или VB?
Здравствуйте, Sinclair, Вы писали:
S>В общем, ребяты, низкоуровневость не сводится к возможности написать драйвер. Драйвера к Singularity влет пишутся на любом языке дотнета, в том числе и VB.
приводить в качестве доказательства возможности операционки, которую никто не видел и неизвестно когда можно будет увидеть, по меньшей мере неубедительно
Здравствуйте, _Mihail, Вы писали:
_M>Ну, то что всё относительно, это понятно. Но должна же быть какая-то усредненная, общепризнанная точка отсчета, по которой все эту высокоуровневость меряют. Например, сложно найти такой пример, когда ассемблер, окажется выше по уровню, чем C#. Ну а определить кто выше — VB или С#, это фактически тоже самое, только в меньшем масштабе...
Нет точки. Есть отношение "A более высокоуровневый, чем B", но для него не выполняется свойство трихотомии. Так что расположить языки как точки на прямой не получится. Да и само отношение нельзя определить достаточно строго.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>А смысл-то какой в этой уровнеметрии? ИМХО, кроме как для споров в курилках её никуда не приткнёшь. ГВ>PS.: Впрочем, за всю Одессу не скажу, может быть, кто-то что-то и придумал.
А меры Холстеда помните? Там у него есть оцифровка уровня языка...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Какой язык более высокоуровневый - C# или VB?
Здравствуйте, _Mihail, Вы писали:
_M>Недавно хотел переходить на C#, но почитав топики типа C# vs VB пришел к выводу, что C# по крайней мере для моих скромных задач (Windows-приложение "для домашнего пользователя") будет пониже уровнем чем VB. Вот, интересует, с теоретической точки зрения, какой язык более высокоуровневый? И в чем вообще измеряется эта высокоуровневость?
Высокоуровневость [во многом] определяется развитостью системы типов языка. В ассемблере типов нет вообще. В С типы присутствуют, однако отсутствует контроль типов — в том плане он близок к макроассемблеру. Что подверждается практикой его применения — он в основном используется сейчас как переносимый ассемблер.
С++ имеет строгий контроль типов, плюс поддержку хитрых типов данных, таких как классы и параметрические (шаблонные) типы.
Да, у VB c C# система типов одинакова. Не в курсе, правда, есть ли в VB поддержка параметрических типов (женериков) и прочие рюшки, их отсутствие поменяет расклад в сторону C#.
Насчет Лиспа вопрос крайне интересный. Он не особенно вписывается в приведенную классификацию, как, впрочем, огромное множество других языков программирования . Хотя бы потому, что вопрос "есть ли типы в Лиспе" — до определенной степени философский.
ЗЫ: Поменьше интересуйся уронями языков, и побольше — самими языками. С практической точки зрения вопрос "уровня языка" — бессмысленный, ответ на него ничего не меняет. Вот например, в 1С, которым я по молодости занимался, применяется наитупейший язык, при этом — учетные приложения на 1С пишутся в разы быстрее, чем на VB. Можно задаваться философскими вопросами, почему получается так, если 1С — говно, но факт остается фактом.
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>А смысл-то какой в этой уровнеметрии? ИМХО, кроме как для споров в курилках её никуда не приткнёшь. ГВ>>PS.: Впрочем, за всю Одессу не скажу, может быть, кто-то что-то и придумал. LVV>А меры Холстеда помните? Там у него есть оцифровка уровня языка...
...языка выражения, а не самого по себе языка программирования.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[2]: Какой язык более высокоуровневый - C# или VB?
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, _Mihail, Вы писали:
S>Если сравнивать C# и VB.NET, то высота уровня со всех точек зрения окажется практически одинаковой. Это, грубо говоря, один и тот же язык с немножко разным синтаксисом.
И здесь одно любопытное соображение возникает. В общем-то, C# — это приглашение программистов C++ в .Net. Потому что если бы их пригласили в VB.NET, то они бы и не пошли скорее всего — из-за традиционного презрения к Бейсику .
А соображение вот какое. Насколько развитие языков программирования (да и IT вообще) определяется внутренними законами отрасли как таковой и насколько — привходящими факторами (нелады MS с Sun, а до этого — с IBM, желание привлечь си-шников в .Net и т.д.) ?
В математике, к примеру, такого нет. Если математик предложит некую теорему, а докажет ее каким-то нестандартным способом, то другие математики найдут стандартный способ доказательства. (если, конечно, такой существует) Именно он попадет в учебники, а про исхищрение скорее всего забудут.
With best regards
Pavel Dvorkin
Re[3]: Какой язык более высокоуровневый - C# или VB?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>А соображение вот какое. Насколько развитие языков программирования (да и IT вообще) определяется внутренними законами отрасли как таковой и насколько — привходящими факторами (нелады MS с Sun, а до этого — с IBM, желание привлечь си-шников в .Net и т.д.) ?
PD>В математике, к примеру, такого нет. Если математик предложит некую теорему, а докажет ее каким-то нестандартным способом, то другие математики найдут стандартный способ доказательства. (если, конечно, такой существует) Именно он попадет в учебники, а про исхищрение скорее всего забудут.
Ну и как, по прежнему рулит начертательная геометрия?
на становление математики ушло сколько лет? 3000? 5000?
Становление IT сколько — 50 лет? 70?
Математика куда как больше устоялась, вот и кажется там многое "стандартным". Хотя когда-то таких стандартов тоже не было.
И не надо забывать, что IT — это по большей части прикладная сфера, а доказательство теорем — научная.
Кому-то может казаться исхищрением считать площадь через интеграл, а кому-то нет.
В каких учебниках указано, как надо считать площадь земального участка сложной формы? А в каких указано, какие калькуляторы при этом использовать нормально (стандартно), а какие — чистые исхищрения? Можно ли в процессе делать записи перьевой ручкой или это исхищрение и надо обязательно карандашом?
И что никакая компания по производству калькуляторов или математических пакетов никогда не пыталась переманить пользователей от конкурентов?
Re[4]: Какой язык более высокоуровневый - C# или VB?
Здравствуйте, fmiracle, Вы писали:
F>на становление математики ушло сколько лет? 3000? 5000?
Это совершенно пофигу. Важно не то, что и сколько становилось. Математика оперирует чистыми абстракциями, а программирование на выходе имеет конкретный продукт. Байку о взаимосвязи диаметра ускорителей шаттлов и ширине задницы римской лошади напомнить?
AVK>Это совершенно пофигу. Важно не то, что и сколько становилось. Математика оперирует чистыми абстракциями, а программирование на выходе имеет конкретный продукт.
Все технологии имеют на выходе конкретный продукт. Но если бы Эдисон умер в младенчестве, мы бы сейчас все равно без света не сидели, и лампочка была такой же, какой она сейчас является (кстати, вольфрамовую нить придумал ИМХО не Эдисон). И не родись Дизель, дизели все равно бы появились, правда, назывались бы иначе . И без Маркони мы бы имели Радио России и Эхо Москвы
А вот без Кернигана-Ритчи-Страуструпа мы бы С/C++ не имели бы. Был бы иной язык, определивший бы развитие IT в 90-е годы. И если бы Билл Гейтс не посоветовал IBM 8088 процессор, об этой архитектуре давно бы забыли.
Я аналогичного в истории техники не знаю.
With best regards
Pavel Dvorkin
Re[6]: Какой язык более высокоуровневый - C# или VB?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Все технологии имеют на выходе конкретный продукт. Но если бы Эдисон умер в младенчестве, мы бы сейчас все равно без света не сидели, и лампочка была такой же, какой она сейчас является (кстати, вольфрамовую нить придумал ИМХО не Эдисон). И не родись Дизель, дизели все равно бы появились, правда, назывались бы иначе .
Пожалуйста убедительные доказательства того, что лампочка была бы точно такая же без Эдисона Может быть есть результаты экспериментов?
Почему бы тема на провисла еще на 50 лет, а потом кто-нибудь не придумал бы сразу неонки, и они бы стали стандартом, а лампы накаливания придумали бы позже и они бы так и считались непонятной неэффективной игрушкой?
Так же в природе не существует некоего единого "дизельного двигателя". Дизель запатентовал "Метод и аппарат для преобразования высокой температуры в работу". Была высказана общая идея самовоспламенения топлива при высоком давлении и предложен один возможный вариант реализации. Но вариантов реализации этого в железе — миллион и еще несколько. Их до сих пор совершенствуют.
Есть большие направления, считающиеся более пригодными для того или иного направления (корабли или автомобили), в рамках направления — есть отдельные реализации, укаждой свои плюсы и минусы, а иногда они вообще полностью аналогичны за исключением производителя.
Придумывались разные варианты, некоторые "классические" уже, некоторые считаются безумными, а через несоклько лет становятся "классическими"
Некоторые дизели различаются между собой как ассемблер и C# а между другими разницы меньше чем между C# и Java.
Дизель — это Дейкстра.
Дейкстра сформулировал идею структурного програмиирования, а производители языков наклепали 1000 вариантов алгоритмических языков.
Дизель ввел идею экономичного двигателя без внешнего поджига, а производители наклепали 1000 вариантов конкретных двигателей для разных машин.
Re[7]: Какой язык более высокоуровневый - C# или VB?
Здравствуйте, fmiracle, Вы писали:
F>Пожалуйста убедительные доказательства того, что лампочка была бы точно такая же без Эдисона Может быть есть результаты экспериментов? F>Почему бы тема на провисла еще на 50 лет, а потом кто-нибудь не придумал бы сразу неонки, и они бы стали стандартом, а лампы накаливания придумали бы позже и они бы так и считались непонятной неэффективной игрушкой?
Ценю твой юмор . Убедительных доказательств, сам понимаешь, привести не могу, но некоторые аргументы все же приведу. Для создания неонки (и думателя надо все же иметь определенный уровень технологии. Создать плазму, научиться ей управлять и т.д. А вот то, что раскалившаяся спираль излучает свет — более на поверхности. Эдисон додумался все это в вакуум-сосуд поместить, да, это его заслуга. А вот поверить, что еще 50 лет сидели бы с керосиновой лампой — как-то плохо верится.
F>Так же в природе не существует некоего единого "дизельного двигателя". Дизель запатентовал "Метод и аппарат для преобразования высокой температуры в работу". Была высказана общая идея самовоспламенения топлива при высоком давлении и предложен один возможный вариант реализации. Но вариантов реализации этого в железе — миллион и еще несколько. Их до сих пор совершенствуют.
F>Есть большие направления, считающиеся более пригодными для того или иного направления (корабли или автомобили), в рамках направления — есть отдельные реализации, укаждой свои плюсы и минусы, а иногда они вообще полностью аналогичны за исключением производителя. F>Придумывались разные варианты, некоторые "классические" уже, некоторые считаются безумными, а через несоклько лет становятся "классическими"
F>Некоторые дизели различаются между собой как ассемблер и C# а между другими разницы меньше чем между C# и Java.
Да, конечно. Но тем не менее дизель есть дизель и не становится от этого ни карбюраторным, ни реактивным двигателем.
F>Дизель — это Дейкстра. F>Дейкстра сформулировал идею структурного програмиирования, а производители языков наклепали 1000 вариантов алгоритмических языков.
Хм... С тем, что все "поздние" языки поддерживают более или менее приличную структуризацию — не поспоришь (в отличие от Фортана-4, к примеру). Но вот то, что именно этот язык оказался основным — никак из идей Дейкстры не следует. Можно, конечно, утверждать, что C и Pascal (и Modula, и Ada) по возможностям и архитектуре близки, но все же есть большая разница между нынешним C-миром и гипотетическим Pascal-миром. А ведь мог и второй быть, если бы не Керниган-Ритчи. Или какой-то иной мир. Но не С, И это был бы совсем иной мир. Без Java. Без C#. Без PHP. Что-то совсем иное...
With best regards
Pavel Dvorkin
Re[8]: Какой язык более высокоуровневый - C# или VB?
Вдогонку F>>Дейкстра сформулировал идею структурного програмиирования, а производители языков наклепали 1000 вариантов алгоритмических языков.
А Бэкус с Науром сформулировали БНФ. Так сказать, идеи о том, каким язык должен быть. И Виртовский Паскаль этим идеям прекоасно удовлетворяет, и Модула, и Ада. А язык C, как будто специально, был сделан так, что под БНФ крайне плохо подходит. И прекрасно без всех этих БНФ-форм и синтаксических диаграмм просуществовал.
With best regards
Pavel Dvorkin
Re[8]: Какой язык более высокоуровневый - C# или VB?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Сорри, но я ничего не знаю про них. Расскажи.
«Конструкторы многоразового космического корабля „Кеннеди“ не могут увеличить мощность его ускорителей, потому что их диаметр (1,524 м) определяется... шириной лошадиного крупа». Не умаляя остроумия анонимного автора, который выдумал эту логическую цепочку и разместил её в интернете, уточним некоторые цифры. Каждый из двух твёрдотопливных ускорителей американского «Шаттла» имеет длину 45,7 м и диаметр 3,7 м (в районе топливных сегментов двигателя). Наружный топливный бак, который содержит криогенное топливо для питания маршевых двигателей «Шаттла», имеет диаметр 8,4 м. Дело в том, что двигатели эти доставлялись по железной дороге, которая проходит по узкому туннелю. Расстояние между рельсами стандартное: 4 фута 8,5 дюйма (1,435 м), поэтому конструкторы могли сделать двигатели только шириной 5 футов. Вопрос: почему расстояние между рельсами 4' 8,5"? Откуда взялась эта цифра? Оказывается, железную дорогу в Штатах строили такую же, как и в Англии, где, в свою очередь, железнодорожные вагоны делали такими же, что и трамвайные, а первые трамваи производились по образу и подобию конки. А длина оси конки составляла как раз 4' 8,5".
Но почему? Потому что конки делали с таким расчётом, чтобы их оси попадали в колею на английских дорогах – благодаря этому колёса меньше изнашивались, – а расстояние между колеями в Англии как раз 4' 8,5"! Отчего так? Да просто дороги в Великобритании стали делать римляне, подводя их под размер своих боевых колесниц, длина же оси стандартной римской колесницы равнялась... Правильно, 4' 8,5"!
Первые колейные дороги Древней Греции и Древнего Рима, представлявшие собой углубления до 50 мм в каменном основании, имели ширину 1,5–1,6 м. Это соответствовало ширине уличных экипажей.
Ну вот, теперь мы поняли, откуда взялся этот размер. Но всё же, почему римлянам вздумалось делать свои колесницы с осями именно такой длины? А вот почему: в колесницу запрягали обычно двух лошадей.
А 4' 8,5" – как раз размер двух лошадиных задниц! Делать ось колесницы длиннее было неудобно, так как это нарушало бы её равновесие. Суммарная ширина крупов двух лошадей намного больше длины оси колесницы.
Американские инженеры, строившие первые железные дороги в США, действительно ориентировались на английскую, стефенсоновскую колею шириной 1435 мм. В Англии ширина колеи на первых железных дорогах с конной тягой в рудниках и на угольных копях была различной – от 2' до 5'. Наиболее удачно была спроектирована железная дорога Мертир–Тайэфайл в Англии шириной 5', соответствующая колее обыкновенных экипажей. Полагают, что именно она послужила для Джорджа Стефенсона прообразом при строительстве в 1825 г. первой железной дороги Стоктон–Дарлингтон с паровой тягой. Стефенсон сначала предполагал колею шириной 4' 6" (1372 мм), что соответствовало ширине колеи, распространённой на севере Великобритании. Однако при конструировании своего паровоза, чтобы удобнее было разместить паровой котёл, ему пришлось расширить колею на 2,5" (получилась колея шириной 4' 8,5", т.е. 1435 мм). Сейчас такова ширина примерно 75% железных дорог на Земле.
В России при строительстве первой железной дороги Санкт-Петербург–Москва в 1843 г. инженер Мельников предложил расширить стефенсоновскую колею до 5' (1524 мм). Это обеспечивало более удобное размещение механизма паровоза, увеличение объёма его котла, массы груза в вагонах, лучшую устойчивость подвижного состава. Вот и ответ: даже теперь, когда человек вышел в космос, его наивысшие технические достижения напрямую зависят от размера лошадиного крупа, как и две тысячи лет назад.
После очередного старта «Шаттла» корпуса отработавших ускорителей спускаются на парашютах в Атлантический океан, подбираются спасательными судами и буксируются на мыс Канаверал. Затем их отправляют производителю в штат Юта для контроля и заливки топлива. После чего возвращают по железной дороге на мыс Канаверал. Пресс-секретарь НАСА подтвердил, что при проектировании двигателей твёрдотопливных ускорителей «Шаттла» учитывался размер туннеля, по которому они доставляются на пусковую площадку, и, следовательно, размер колеи. Но обратил внимание на то, что туннель имеет два пути, так что в реальности допустимый размер был как минимум вдвое больше.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Какой язык более высокоуровневый - C# или VB?
Пресс-секретарь НАСА подтвердил, что при проектировании двигателей твёрдотопливных ускорителей «Шаттла» учитывался размер туннеля, по которому они доставляются на пусковую площадку, и, следовательно, размер колеи. Но обратил внимание на то, что туннель имеет два пути, так что в реальности допустимый размер был как минимум вдвое больше.
А интересно, пресс-секретарь не говорил, что бы ему сказали железнодорожники в ответ на предложение закрепить многотонную конструкцию на железнодорожной платформе сильно асимметрично относительно оси состава?
Это даже не рассматривая вариант встречнго поезда в момент прохождения туннеля...
... << RSDN@Home 1.2.0 alpha rev. 673>>
Re[10]: Какой язык более высокоуровневый - C# или VB?
Здравствуйте, fmiracle, Вы писали:
F>Это даже не рассматривая вариант встречнго поезда в момент прохождения туннеля...
В СССР это рассматривали. У нас предельные цифры такие — 3.9 м без остановки встречного движения, и 4.1 с остановкой. Теперь смотрим на диаметры 1 и 2 ступеней наших тяжелых носителей: Зенит — 3.9 м Протон — 4.1 м