Есть специализированные приложения, которым нужна очень высокая производительность. Но в большинстве приложений этого не нужно. Если только не идет речь о производительности ради самой производительности.
В большинстве случаев оптимально использовать более мощную машину, чем разрабатывать на С++ вместо C#.
А по поводу:
большая часть десктопных приложений на текущий момент использует в большинстве своём С++ в том или ином виде.
Так почему не пойти дальше: любое приложение запускается на операционной системе, которая написана на С или С++ (а можно еще и на ассемблере), значит каждое приложение использует эти языки. Значит все разработчики, независимо от языка, должны знать С++.
В последних версиях есть как и очень полезные вещи (оптимизация использования памяти с помощью Span и Memory), так и немного странные (по моим субъективным ощущениям) виды синтаксического сахара (новый switch, record). Но раз их добавляют, значит они нужны пользователям, пусть для меня они и не имеют большой ценности.
На сколько я знаю, разработка C# открыта для общественности, можно предлагать свои идеи, и, возможно, они будут включены в язык.
С++ стал нишевой технологией. Он используется или для вещей где нужна высокая производительность (базы данных) или для вещей, которые не могут быть сделаны с помощью более высокоуровневых языков (операционная система). На нем не будут разрабатывать десктопные приложения или софт для сервера, так как в этом случае на разработку тратится значительно больше времени и разработка стоит дороже.
PS Сложилось такое ощущение, что статья написана только для привлечения внимания к очередным курсам. Особенно порадовало то, что С# обучат за 12 месяцев, а C++ - за 8,5.
Вот гитарный срач и до хабра добрался. Как по мне, стоит признать, что разница от использовано дерева есть, но ее влияние не на столько значительное, чтобы человеческое ухо смогло его заметить. Это как километры с точностью до долей миллиметра измерять. Главное - умение музыканта, а недалёким, ленивым или хитрым проще сказать что тут дерево плохое. Главная задача дерева в электрогитаре, чтобы электрогитара красива была.
А все эти измерения напоминают рассуждения Audiokiller'а о том на сколько хороши дорогущие аудиокабели, там тоже много красивых графиков, а в конце говорится о том, что человеческое ухо не может воспринять эту разницу.
Транзисторные искажения наблюдаются только в режиме насыщения транзистора (клиппинг). В рабочей зоне он более линеен, чем лампа. И если Вы хотите только усилить сигнал то оптимальным выбором будет транзисторный апарат.
Возможно Вы меня немного не так поняли. Я имел ввиду, что по техническим параметрам, которые можно измерить (нелинейные искажения, интермодуляционные искажения) транзисторные усилители лучше, чем ламповые. И это логично — ведь прогресс — не просто слово, и качество транзисторов сейчас намного лучше, чем когда их только начинали использовать. Да и схемотехника тоже развивается. Поэтому для усиления звука лампу использовать не оправдано — прибор же усилитель называется (т.е. его задача усиливать сигнал), в не окрашиватель.
Использование лампы в тракте электрогитары (предварительный и оконечный усилитель) базируется на ее недостатке. Суть работы любого усиливающего элемента, это усилить входящий сигнал в несколько раз (коэффициент усиления), при этом энергия для усиления берется от внешнего источника питания. Максимальное значение усиленного сигнала определяется напряжением источника питания (рассматриваем сигнал как периодическое изменение напряжения). Когда входной сигнал достигает такого значения, что выходной сигнал стает равен напряжению источника питания, то последующее увеличение входного сигнала не приведет к увеличению выходного. В этом случае говорят, что усилительное устройство вошло в режим насыщения. Так вот, транзистор почти на всей своей рабочей области линейно усиливает входящий сигнал и резко входит в режим насыщения (по этому он хорош, для усиления, но дает ужасный звук при использовании в тракте электрогитары (при простой замене лампы на транзистор, без изменения схемы прибора)). У лампы (имею в виду триод) наблюдается некоторая нелинейность при достижении определенного значения входного сигнала, она плавно входит в режим насыщения, что позволяет получить характерный звук.
При этом в других областях этот эффект стараются минимизировать. Этими стараниями сначала был разработан тетрод(почти не используется) и пентод, которые являются более линейными.
В гитарном тракте триод используется в предварительном усилителе, чтобы сформировать сигнал(покрасить звук), а в оконечном используется пентод (чтобы линейно усилить звук от предварительного усилителя). Правда выходной усилитель тоже могут перегружать, для формирования звука. Вот по этому, я и написал, что тут использование лампы оправдано, тут она формирует звук, а не только усиляет.
При этом изначально о электрогитаре никто не задумывался, просто хотели усилить звук электробанжо и случайно вывели лампы в режим перегруза. А звук который получился очень зашёл. И когда это пошло развиваться, то инженеры просто брали компоненты, которые были, и в них воплощали свои задумки. Точно так же, они делают это сейчас — берут транзистор (операционный усилитель, ЦАП/АЦП и т.д.) и помещают его в такую схему, которая даст нужный сигнал, чтобы получить нужный звук. А технически не компетентные аудиофилы (при этом они не обязательно глупы), не хотят использовать транзистор (или что либо другое) только из-за того что это транзистор, ведь он звучит «не так», его звук плохой и т.д…
Ну да, окрашивает. Ну да, нравится окрас. Именно поэтому юзаю лампу, причем довольно специфичную (TTVJ hybrid amp), причем с довольно специфичными наушниками (Ety 4P).
Вы как раз и говорите о «окрасе» звука, т.е. прибор не просто усиливает звук, а ещё и изменяет его. И Вам нравится именно это изменение — это разумно. Вот если Вы начнете говорить, что только Ваше устройство воспроизводит звук правильно, а транзисторный усилитель его безбожно коверкает — это будет не разумно.
В тракте заменяется только усилитель (преамп + оконечник) гитара и кабинет так и остаются. Звук для записи снимается микрофоном.
В сети есть схемы от KMG и TrueVal в которых эмулируется лампа с помощью транзистора. Многие оценили даные вещи по достоинству. (Вскоре и я оценю, как соберу). Суть этих схем как раз в том, что при подаче одинаковых сигналов на вход получаем одинаковый сигнал на выходе.
Не могу плюсик поставить, но и просто пройти мимо нельзя =)
Этот развод уже вышел на такой уровень, что люди сами просят, чтобы их развели.
По моему мнению, дайщик, в первую очередь инженер, пусть доморощенный, но все же инженер. Он должен ориентироваться на сухие факты и цифры, а не на «теплоту» звука.
И по этим факторам ламповая аудиотехника проигрывает современной транзисторной.
Правда лампа «окрашивает» звук, и человеку может нравиться именно этот окрас. Но нужно разделять качество звука (посторонние шумы, нелинейные искажения, интермодуляционные искажения) и окрас (наличие/отсутствие определеннных гармоник).
Единственное оправданое использование ламп — военная и космическая техника, так как лампа может работать при высокой температуре и радиации, а транзистор- нет.
А использование лампы в аудио оправдано только в музыкальном тракте электрогитары — там используется недостаток лампы — постепенный вход в насыщение (и тут этот недостаток превращается в огромное преимущество), что позволяет получить именно «тот самый» звук электрогитары. Но сейчас и транзистор здесь может дать жару — цифровые процессоры уже вышли на достойный уровень. А также есть транзисторные версии известных ламповых аппаратов. Ведь если два прибора выдают одинаковый сигнал, нас не очень беспокоит что там внутри.
PS Сам являюсь «доморощенным инженером» и мог ошибиться при описании деталей.
Была схожая проблема но с enum:
Есть enum который содержит список операций. За этот enam, а также и за библиотеку (DLL), его использующую отвечает разработчик А. Этот enam входит в другую библиотеку.
Разработчик Б использует эту библиотеку (DLL).
Разработчик А допустил ошибку в enum и прислал новую версию библиотеки (DLL) разработчику Б.
У разработчика Б проявлялся странный баг, было установлено, что причина в этом enam (использовался рефлектор).
Заменяется сборка с enam, где ошибка исправлена — баг остается.
Рефлектор показывает, что в библиотеке (DLL) разработчика А используется старое значение (в виде byte).
Только когда библиотека (DLL) была пересобрана с исправленной версией enam проблема была решена.
Тут также стоит упомянуть, что большинство компаний, занимающееся разработкой сами проталкивают «курсы», т.к. с их помощью они могут нехило сбить зп при найме.
В принципе так и поступил. Выбрал место где используют довольно современные вещи (не C# 6.0 и 15 студию конечно, но и не дремучий легаси).
Да и если быть точным выбирал не я, а выбрали меня — т.к. это было единственное место куда позвали после интервью.
Если кратко, то примерно такой:
C# — Шилдт, Троелсен, Рихтер, Нэш, Нейгел + некоторые знания по SOLID, паттернам, ADO.NET, LINQ, WPF, Windows Forms.
БД — Грофф, Крнке. Чуток знаний о HTML и CSS. Базовые знания C++. (Липман, Прата).
Примерно так и было, когда устраивался на текущую работу. Даже считаю, что мне частично повезло, так как взяли джуном без опыта работы. В большинстве вакансий космические требования даже к джунам.
Есть специализированные приложения, которым нужна очень высокая производительность. Но в большинстве приложений этого не нужно. Если только не идет речь о производительности ради самой производительности.
В большинстве случаев оптимально использовать более мощную машину, чем разрабатывать на С++ вместо C#.
А по поводу:
Так почему не пойти дальше: любое приложение запускается на операционной системе, которая написана на С или С++ (а можно еще и на ассемблере), значит каждое приложение использует эти языки. Значит все разработчики, независимо от языка, должны знать С++.
Статья похожа на бухтение старого деда...
В последних версиях есть как и очень полезные вещи (оптимизация использования памяти с помощью Span и Memory), так и немного странные (по моим субъективным ощущениям) виды синтаксического сахара (новый switch, record). Но раз их добавляют, значит они нужны пользователям, пусть для меня они и не имеют большой ценности.
На сколько я знаю, разработка C# открыта для общественности, можно предлагать свои идеи, и, возможно, они будут включены в язык.
С++ стал нишевой технологией. Он используется или для вещей где нужна высокая производительность (базы данных) или для вещей, которые не могут быть сделаны с помощью более высокоуровневых языков (операционная система). На нем не будут разрабатывать десктопные приложения или софт для сервера, так как в этом случае на разработку тратится значительно больше времени и разработка стоит дороже.
PS Сложилось такое ощущение, что статья написана только для привлечения внимания к очередным курсам. Особенно порадовало то, что С# обучат за 12 месяцев, а C++ - за 8,5.
Вот гитарный срач и до хабра добрался. Как по мне, стоит признать, что разница от использовано дерева есть, но ее влияние не на столько значительное, чтобы человеческое ухо смогло его заметить. Это как километры с точностью до долей миллиметра измерять. Главное - умение музыканта, а недалёким, ленивым или хитрым проще сказать что тут дерево плохое. Главная задача дерева в электрогитаре, чтобы электрогитара красива была.
А все эти измерения напоминают рассуждения Audiokiller'а о том на сколько хороши дорогущие аудиокабели, там тоже много красивых графиков, а в конце говорится о том, что человеческое ухо не может воспринять эту разницу.
Пойду Рихтера почитаю, может пройдет.
PS Не докопаться, а интереса для.
Использование лампы в тракте электрогитары (предварительный и оконечный усилитель) базируется на ее недостатке. Суть работы любого усиливающего элемента, это усилить входящий сигнал в несколько раз (коэффициент усиления), при этом энергия для усиления берется от внешнего источника питания. Максимальное значение усиленного сигнала определяется напряжением источника питания (рассматриваем сигнал как периодическое изменение напряжения). Когда входной сигнал достигает такого значения, что выходной сигнал стает равен напряжению источника питания, то последующее увеличение входного сигнала не приведет к увеличению выходного. В этом случае говорят, что усилительное устройство вошло в режим насыщения. Так вот, транзистор почти на всей своей рабочей области линейно усиливает входящий сигнал и резко входит в режим насыщения (по этому он хорош, для усиления, но дает ужасный звук при использовании в тракте электрогитары (при простой замене лампы на транзистор, без изменения схемы прибора)). У лампы (имею в виду триод) наблюдается некоторая нелинейность при достижении определенного значения входного сигнала, она плавно входит в режим насыщения, что позволяет получить характерный звук.
При этом в других областях этот эффект стараются минимизировать. Этими стараниями сначала был разработан тетрод(почти не используется) и пентод, которые являются более линейными.
В гитарном тракте триод используется в предварительном усилителе, чтобы сформировать сигнал(покрасить звук), а в оконечном используется пентод (чтобы линейно усилить звук от предварительного усилителя). Правда выходной усилитель тоже могут перегружать, для формирования звука. Вот по этому, я и написал, что тут использование лампы оправдано, тут она формирует звук, а не только усиляет.
При этом изначально о электрогитаре никто не задумывался, просто хотели усилить звук электробанжо и случайно вывели лампы в режим перегруза. А звук который получился очень зашёл. И когда это пошло развиваться, то инженеры просто брали компоненты, которые были, и в них воплощали свои задумки. Точно так же, они делают это сейчас — берут транзистор (операционный усилитель, ЦАП/АЦП и т.д.) и помещают его в такую схему, которая даст нужный сигнал, чтобы получить нужный звук. А технически не компетентные аудиофилы (при этом они не обязательно глупы), не хотят использовать транзистор (или что либо другое) только из-за того что это транзистор, ведь он звучит «не так», его звук плохой и т.д…
Вы как раз и говорите о «окрасе» звука, т.е. прибор не просто усиливает звук, а ещё и изменяет его. И Вам нравится именно это изменение — это разумно. Вот если Вы начнете говорить, что только Ваше устройство воспроизводит звук правильно, а транзисторный усилитель его безбожно коверкает — это будет не разумно.
В сети есть схемы от KMG и TrueVal в которых эмулируется лампа с помощью транзистора. Многие оценили даные вещи по достоинству. (Вскоре и я оценю, как соберу). Суть этих схем как раз в том, что при подаче одинаковых сигналов на вход получаем одинаковый сигнал на выходе.
Этот развод уже вышел на такой уровень, что люди сами просят, чтобы их развели.
По моему мнению, дайщик, в первую очередь инженер, пусть доморощенный, но все же инженер. Он должен ориентироваться на сухие факты и цифры, а не на «теплоту» звука.
И по этим факторам ламповая аудиотехника проигрывает современной транзисторной.
Правда лампа «окрашивает» звук, и человеку может нравиться именно этот окрас. Но нужно разделять качество звука (посторонние шумы, нелинейные искажения, интермодуляционные искажения) и окрас (наличие/отсутствие определеннных гармоник).
Единственное оправданое использование ламп — военная и космическая техника, так как лампа может работать при высокой температуре и радиации, а транзистор- нет.
А использование лампы в аудио оправдано только в музыкальном тракте электрогитары — там используется недостаток лампы — постепенный вход в насыщение (и тут этот недостаток превращается в огромное преимущество), что позволяет получить именно «тот самый» звук электрогитары. Но сейчас и транзистор здесь может дать жару — цифровые процессоры уже вышли на достойный уровень. А также есть транзисторные версии известных ламповых аппаратов. Ведь если два прибора выдают одинаковый сигнал, нас не очень беспокоит что там внутри.
PS Сам являюсь «доморощенным инженером» и мог ошибиться при описании деталей.
Есть enum который содержит список операций. За этот enam, а также и за библиотеку (DLL), его использующую отвечает разработчик А. Этот enam входит в другую библиотеку.
Разработчик Б использует эту библиотеку (DLL).
Разработчик А допустил ошибку в enum и прислал новую версию библиотеки (DLL) разработчику Б.
У разработчика Б проявлялся странный баг, было установлено, что причина в этом enam (использовался рефлектор).
Заменяется сборка с enam, где ошибка исправлена — баг остается.
Рефлектор показывает, что в библиотеке (DLL) разработчика А используется старое значение (в виде byte).
Только когда библиотека (DLL) была пересобрана с исправленной версией enam проблема была решена.
Да и если быть точным выбирал не я, а выбрали меня — т.к. это было единственное место куда позвали после интервью.
C# — Шилдт, Троелсен, Рихтер, Нэш, Нейгел + некоторые знания по SOLID, паттернам, ADO.NET, LINQ, WPF, Windows Forms.
БД — Грофф, Крнке. Чуток знаний о HTML и CSS. Базовые знания C++. (Липман, Прата).
Но как быть, если ты только начинаешь карьеру в IT?