А если тебе нужно провести несколько десятков компиляций чтобы вычислить все ошибки? Финальная компиляция естественно будет в native. Я не говорил, что пикод быстрее работает, я просто показал, что бывают случаи когда его существование в природе приносит пользу.Это не плюс самого P-кода, это особенность (естественная) компилятора. Но я всегда исхожу из тех соображений, что любая программа больше времени работает, чем компилируется. Поэтому, для меня важно лишь то, что проявляется во время работы.
Если новая архитектура демонстрирует значительное повышение удобства в разработке и сопровождении приложений, то незначительное уменьшение быстродействия допустимо, особенно на фоне роста быстродействия железа. Это к вопросу о форме бубна. И дело не в психологии, влияния на которую ты так боишься, а элементарно в сокращении временнЫх затрат на разработку и в большей понятности кода другим людям. Что самым прямым образом влияет на стоимость разработки. Хотя для тебя это вообще не аргумент.Уменьшение быстродействия можно умело скрыть засчёт быстрого железа и психологического на программиста влияния от удобной среды.
Системы автоматизации, документооборота не требовательны к скорости. Пользователь вполне может подождать ответа от сервера на пол-секунды дольше.Кажется, нет таких задач, в которых была бы неважна скорость.
Несомненно. Осталось выяснить экспериментально, хватит ли для этого скорости у .net. Если окажется, что нет, готовую логику будет не так уж сложно перенести на другую платформу.Во всяком случае, задача автора требует скорости.
Я это только что сказал.Но, вообще, под понятием качества подразумевалась не только производительность.
Системы автоматизации, документооборота не требовательны к скорости. Пользователь вполне может подождать ответа от сервера на пол-секунды дольше.
Я это только что сказал.
Я как раз имею ввиду сферу разработки систем автоматизации и документооборота. Или это уже не "ПО"?Интересно, почему ты обходишь стороной сферу разработки ПО?
1. Что значит "код дрянной"? Опять слишком уж эмоционально-предвзятое и неконкретное определение. Ты можешь привести примеры дрянного и аналогичного не дрянного кода?Если приложение работает быстро, но при этом, его код - дрянной, и механизм, по которому оно работает - дрянной (а, например, механизм стека в .net - дрянной), то это потеря качества.
ld* A
ld* B
ld* C
sub
add
ld* D
ld* E
mul
add
push A
push B
push C
pop reg
sub [sp], reg
pop reg
add [sp], reg
push D
push E
pop ax
mul [sp]
mov [sp], ax
pop reg
add [sp], reg
push A
mov bx, B
mov ax, E
sub bx, C
add [sp], bx
mul D
add [sp], ax
Пользуемся кнопкой "Правка" .
Что позорного в разработке офисного ПО под нужды заказчика? .NET для этого подходит идеально.Систему автоматизации и документооборота ты имешь разрабатываешь для конкретной фирмы-заказчика.
Я же имею ввиду разработку ПО, такого как фотошоп, винамп, Google Earth, ResHacker, PE Explorer и т.д.
Если приложение работает быстро, но при этом, его код - дрянной, и механизм, по которому оно работает - дрянной (а, например, механизм стека в .net - дрянной), то это потеря качества.
Здесь ты сам себе противоречишь. Как приложение, основанное на дрянном (согласно твоему определению) коде может работать быстро? И я имел ввиду не это. Код, учитыающий специфику платформы, тоже может быть дрянным.Дрянной код - это любой код, который работает, но создан без всякого учёта специфики платформы и окружения. Дрянной код - это код, созданный человеком, который не знает о всех процессах, происходящих с компьютером во время выполнения этого кода.
select case x
case 1: Call Sub1
case 2: Call Sub2
...
case N: Call SubN
end select
set obj=CreateObject("Class" & x)
Call obj.Sub()
Не знаю и меня это не волнует. Приложения на нем успешно работают, это все, что мне нужно об этом знать.2. Ты знаешь, чем он отличается от стека, используемого в обычных Native-кодных приложениях?
Что позорного в разработке офисного ПО под нужды заказчика? .NET для этого подходит идеально.
Насчет фотошопа - есть аналог, называется Paint .NET, который конечно далек по функционалу от самогО, но и настолько же далек от оригинального Paint'а, написанного на сях, в лучшую сторону. Кроме того в фотошопе как раз таки важна скорость, поэтому я уверен, что критический функции написаны на асме. Google Earth, ResHacker, возможно и PE Explorer вполне могли бы быть реализованы на нете, но для их ограниченного функционала невыгодно подключать махину FW. Технических же ограничений не вижу.
Здесь ты сам себе противоречишь.Дрянной код - это любой код, который работает, но создан без всякого учёта специфики платформы и окружения. Дрянной код - это код, созданный человеком, который не знает о всех процессах, происходящих с компьютером во время выполнения этого кода.
Как приложение, основанное на дрянном (согласно твоему определению) коде может работать быстро?
И я имел ввиду не это. Код, учитыающий специфику платформы, тоже может быть дрянным.
Вот что имею ввиду я:
- Код: Выделить всё
select case x
case 1: Call Sub1
case 2: Call Sub2
...
case N: Call SubN
end select
C твоей точки зрения этот код хорош, потому что case наиболее быстр в качестве условного перехода. С мой точки зрения он дрянной потому что его сложно поддерживать и расширять.Этот код немного медленнее по известным тебе причинам, но добавить новый функционал можно всего лишь добавив новый класс. На фоне значительного повышения удобства дальнейшей разработки и поддержки я готов смириться с потерей нескольких миллисекунд.
- Код: Выделить всё
set obj=CreateObject("Class" & x)
Call obj.Sub()
Не знаю и меня это не волнует. Приложения на нем успешно работают, это все, что мне нужно об этом знать.
Хакер, у тебя опять приступ?
Твой тюнинг на уровне ассемблерных команд при промышленной разработке нафиг не нужен. Более того, он вреден.
А для драйверов и низкоуровневого ПО тебя никто и не заставляет программировать на .NET.
.NET -- это покрасочный автомат. А ты вещаешь ерунду в стиле "дрянь этот ваш .NET, я кисточкой штрихи более тонко передаю". Ну давай, покрась кисточкой параход. Может после этого ты поймешь, для чего предназначен .NET.
Наверное поэтому их и не писали под .net. Достоинства будут у других программ, которые используют достоинства .net.Я говорил не об ограничениях, а о достоинствах. Я считаю, что у этих программ, написанных на .NET, не будет ни одного преимущества перед теми же программами, но Native-кодными. Ничего из того, что даёт .NET не полезно таким категориям программ.
А я, представляю. И никогда не говорю "я этого не представляю, следовательно этого не существует". Ибо как раз имею дело с лодочкой, дотюнигованной до парохода в течении нескольких лет одним человеком. Когда его собственных сил на дальнейший тюниг стало нехватать, выяснилось, что текущая архитектура не позволяет работать с исходниками нескольким людям одновременно. Единственный разумный выход - разнесение по классам.Тут дрянь в самом подходе. Я не представляю ни одного случая, где нужно было бы создание объекта какого-то конкретного класса по индексу имени класса.
А вот тут ты глупость спорол несусветную. Неужели я буду делать библиотеку придумав ей уже существующее имя? Моей фантазии хватит даже на имя, которое не возникет в системе случайно. Да и названия классов достаточно длинны, уникальны и даже имеют префикс отличный от "cls".Более того, второй способ сверх-дрянной - при его создании ты явно не учитывал, что в системе может появиться (чисто случайно) класс с таким же progid-ом.
Ага, с единственным отличием - нетовский стек почему-то не ломается как китайский магнитофон. Это не ощущения, это факты. Раз не ломается, значит подходит для использования в приложениях масштаба предприятия. И мне наплевать, что он "хуже" других стеков.Такой хороший пример китайского магнитофона - снаружи он красивый и вроде бы даже стабильно работает. А внутри - поганая пайка, бракованые детали, несбалансированные механизмы.
--Зато, Хакер, он (этот магнитофон) дешёвый, но для тебя ведь это, Хакер, не аргумент?
Наверное поэтому их и не писали под .net. Достоинства будут у других программ, которые используют достоинства .net.
А я, представляю. И никогда не говорю "я этого не представляю, следовательно этого не существует". Ибо как раз имею дело с лодочкой, дотюнигованной до парохода в течении нескольких лет одним человеком. Когда его собственных сил на дальнейший тюниг стало нехватать, выяснилось, что текущая архитектура не позволяет работать с исходниками нескольким людям одновременно. Единственный разумный выход - разнесение по классам.
Моей фантазии хватит даже на имя, которое не возникет в системе случайно. Да и названия классов достаточно длинны, уникальны и даже имеют префикс отличный от "cls".
Ага, с единственным отличием - нетовский стек почему-то не ломается как китайский магнитофон. Это не ощущения, это факты. Раз не ломается, значит подходит для использования в приложениях масштаба предприятия. И мне наплевать, что он "хуже" других стеков.
Хакер писал(а):Но политика MS такова, что абсолютно всё теперь должно писаться на .NET
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5