• Как неопределенное поведение в javascript складывается на уровне V8?

    Nipheris
    @Nipheris Куратор тега C++
    Вячеслав Юрьевич кстати, и слава богу, вот буквально пару недель назад наконец внедрили TS в проект. Надеемся, хорошо приживается с существующей кодовой базой, а главное - в голове у разработчиков). Главное донести до всех, что статическая типизация и .d.ts для существующих модулей - это хорошо)
  • Как заменить java wildcard в c#?

    KislyFan я с Java мало знаком, там точно после ? ничего не должно стоять? super там или extend?
  • Как неопределенное поведение в javascript складывается на уровне V8?

    Nipheris
    @Nipheris Куратор тега C++
    Максим Иванов в заключение скажу, что главная проблема JS, имхо, это даже не совместимость. Главная проблема в том, что JS - это одновременно и язык разработки, и target-язык платформы. Нет почти никаких стоящих причин, по которым код, написанный программистом, должен как есть распространяться пользователям приложения. Target-язык должен быть простым и формальным. Это язык для машины (железной или виртуальной вроде .net или java). Это полнейший технологический идиотизм - минифицировать JS вместо того, чтобы скомпилировать его в форму, пригодную для поедания машиной и не требующую парсинга. И опять - что?? - совместимость.

    Искренне надеюсь, что WebAssembly - это начало новой эры, где "веб-приложения" просто станут очередной платформой для доставки логики. Как это НЕ получилось с ActiveX, и частично получилось с Flash.
  • Как неопределенное поведение в javascript складывается на уровне V8?

    Nipheris
    @Nipheris Куратор тега C++
    Максим Иванов выбор между логикой и совместимостью это как белая и черная сторона. И это ад инженера, причем не только в IT. Рай инженера - когда выбирать не надо, и логика и совместимость идут бок-о-бок.

    Раз вы столкнулись с C++, отмечу, что я считаю нужно быть крайне интеллектуальным, хладнокровным и последовательным человеком, чтобы развивать сейчас этот язык и отвечать за нововведения в стандарте. Да, язык сильно усложняется, да, уже и правда не каждому его посоветуешь, т.к. его изучение это какое-то путешествие на "ту сторону". Но на нём еще хочется разрабатывать. Вот даже вам захотелось. И это тоже язык совместимости, похлеще чем JS. Только в этот язык изначально вкладывалось столько инжереного ума, что он и сегодня вполне себе на плаву.
  • Как неопределенное поведение в javascript складывается на уровне V8?

    Nipheris
    @Nipheris Куратор тега C++
    Максим Иванов
    Раз уж зашёл разговор, давайте обратимся к такой статье на Википедии:
    https://ru.wikipedia.org/wiki/User_Agent

    "Ранний пример этого — использование браузером Internet Explorer строки User-Agent, начинающейся с «Mozilla/ (compatible; MSIE …», для получения контента, предназначенного для Netscape Navigator, его главного конкурента в 1990-х.
    .......................
    Такой формат строки User-Agent с тех пор использовался и другими браузерами; в частности, из-за того, что доминировать стал Internet Explorer."

    Это же просто блеск! IE мимикрировал под Нетшкаф, а потом все стали косить под IE. Т.е. это не просто совместимость там, где есть стандарт де-юре или хотя бы де-факто в виде популярной реализации. Это конкретно адаптация под условия окружающей среды. Как у богомола.

    А всё почему? Потому что, как уже выше ответил Вячеслав Юрьевич , веб-технологии начинались с домашних страничек с часиками и бегущей строкой (которая, что характерно, была на marquee сначала :D ). К C++ никогда не было такого наивного и "детского" отношения, с самого момента появления. К Си тем более. К Джаве не было такого отношения. А к JS было. Тогда вообще был еще и VBScript, и году эдак в 2002-2003 не так просто было выбрать, на чём лучше скрипт написать на страничку - все равно все на Осле сидели)).

    Теперь приложения превратились из часиков в самолёты, браузеры превратились из песочниц в аэродромы, которые запускают, черт возьми, несколько процессов в системе, чтобы повысить отказоустойчивость браузера. Среда веб-браузера, хоть и осталась довольно ограничена по API и производительности, оказалась феноменально удобной в плане деплоя логики приложения. Никаких exe, msi, rpm, и прочих инсталлеров. Адрес вбил - и вперёд. Ну и конечно сыграл своё дело невероятный рост скоростей каналов передачи данных. На модемном соединении даже с нынешними CPU люди бы не хотели прогружать 2-3 мегабайта одних только скриптов.
    Черт, да каждый день на Тостере спрашивают - "а какую мне технологию использовать, чтобы под все мобилки разом сделать приложение на HTML+JS?". Даже если приложение получается трешевое и тормозное - это ж какой соблазн. Не нужно по 1-2 человека нанимать на каждую платформу (плюс еще, о боже, десктоп), все решается разом (пусть и качество не очень, главное чтоб роллы можно было заказать! Потом перепишем нормально.).

    А язык остался. Да, он развивается, особенно в последние несколько лет, но даже баги старые еще остались. А куча библиотек для совместимости с реализациями?. Мы вот в сложнейшем фронтэнд-проекте буквально 2 недели назад отказались от IE9 наконец. IE6 вообще хоронили всем миром, сами прекрасно знаете. Вы представляете, какая нагрузка на язык для часиков и бегущих строк?
  • Для чего используют абстрактные классы?

    Stasgar
    > Но при чем здесь php? Он же имеет динамическую типизацию.
    ..и этот факт мешает вам понять полезность этой возможности. Надо сказать, что в этом большой парадокс PHP - хотя язык изначально создавался как динамический, в него сейчас пытаются добавить возможности типизации и проверки типов. В Python например (также язык с динамической строгой типизацией) абстрактные классы и методы реализованы в виде модуля, но не на уровне языка.

    Причина таких добавлений по типизации - попытка адаптировать PHP для разработки крупных проектов.
  • Для чего используют абстрактные классы?

    Stasgar когда вы поймёте, зачем нужны типы и интерфейсы, вы поймете самое главное - важность контрактов в коде. Т.е. важность того, что определенные конструкции в языке гарантируют определенные свойства или структуру системы. Вот в вашем примере наличие абстрактного метода в абстрактном классе гарантирует, что он будет в наследниках (иначе наследник просто невозможно будет инстанциировать). Указание типов параметров функции гарантирует, что будут переданы значения именно указанных типов, а не каких либо других (не будет передана строка вместо числа).
    Это всё контракты. Это когда один программист пишет в одном месте одну вещь, а следуют ей все программисты в команде.

    Вы главное разбирайтесь, это все вещи, как говорится, для крупного многоэтажного строительства. Сложно проникнуться их полезностью, когда строишь конуру). Но понять нужно, чтобы быть готовым к тому самому многоэтажному строительству.
  • Для чего используют абстрактные классы?

    Stasgar
    > Просто вывести ошибку, если метод в подклассе не задействован?
    > дать понимание другому программисту, что использовать наследование нужно обязательно с такими-то методами
    Тогда вы сами ответили на свой вопрос, чего ж вам непонятно? Да, дать понимание другому программисту. Большая часть высокоуровневых языков создавалась с целью дать понимание кода другому программисту, а не только тому, кто его писал. Ну или тому же, кто писал, спустя полгода-год.

    Еще раз говорю, я не случайно это написал в первом предложении: вам нужно понять, зачем программисту статическая типизация. Иначе вы еще миллион подобных вопросов зададите. Вам нужно понять, почему в классах важны ИНТЕРФЕЙСЫ, а не только реализация. Кстати, вы про интерфейсы читали или не дошли еще?
  • Для чего используют абстрактные классы?

    Stasgar вам нужно понять, зачем программисту статическая типизация. Вы вообще сейчас смотрите на язык как на врага, в том смысле, что вы сделали что-то, что допустил интерпретатор, и не понимаете, зачем другие варианты, если "и так работает".

    Языки изобретают не для того, чтобы программист потом с ними боролся. Языки призваны помогать решать определенный круг задач.
  • Single Sign-On на основе логин/пароля windows?

    akass вот типичный сценарий прямо с Вики ( https://en.wikipedia.org/wiki/Active_Directory_Fed... ). Это про вас?

    In practice a user might typically perceive this approach as follows:

    The user logs into their local PC (as they typically would when commencing work in the morning).
    The user needs to obtain information on a partner company's extranet website - for example to obtain pricing or product details.
    The user navigates to the partner-company extranet site - for example: example.com.
    The partner website now does not require any password to be typed in - instead, the user credentials are passed to the partner extranet site using AD FS.
    The user is now logged into the partner website and can interact with the website "logged in".
  • Single Sign-On на основе логин/пароля windows?

    akass да, я про них, но это если бы у вас наоборот было - что у вас есть условно говоря база пользователей, и вам надо залогинить человека, пользуясь этой базой, при этом стандартными механизмами вроде домена вы пользоваться не хотите.
    Как я теперь понимаю, вы наоборот, хотите залогиниться в обычную учетку в домене, но пройти также и авторизацию на внешнем сервисе.

    Если этот сервис внешний по отношению к вашей компании, то вам бы не помешали Federation Services. Но этот внешний сервис должен уметь в SAML, да и вам придётся поднять на сервере эту роль. Внешний сервис достаточно умён для таких вещей?
  • Single Sign-On на основе логин/пароля windows?

    akass а, т.е. наоборот все-таки. Обычный это какой? В домене же?
  • Single Sign-On на основе логин/пароля windows?

    Просто в Семерке и выше есть нормальные API для поставщиков учетных данных (в Семерке первая версия этого API, в Восьмерке и выше - вторая), а GINA это что-то из времён XP, имхо.
  • Single Sign-On на основе логин/пароля windows?

    Нужно, чтобы вход в Винду был через аутентификацию во внешнем сервисе? Какие версии Вендов интересуют?
  • Требуется получить информацию о дисковом разделе по имени файла?

    Nipheris
    @Nipheris Куратор тега C#
    > Требуется получить имя файла в формате \Device\HarddiskVolumeNN (NN - номер раздела)\path\to\file.ext по полному имени файла.
    Хочу попробовать упростить описание задачи. Вам нужно букву диска превратить в путь к устройству?
  • Как увеличить яркость компьютера выше допустимого по интерфейсу?

    Не стоит экран ноутбука сравнивать с телевизором. У теликов совсем другие параметры яркости и контрастности, т.к. они ориентированы на другие применения и у них другие приоритеты (например, более яркие и контрастные цвета за счёт менее точной цветопередачи).
  • Как начать фрилансить на C#?

    Nipheris
    @Nipheris Куратор тега C#
    Андрей поддержу отвечающего, наиболее прибыльный заказ на шарпе был под десктоп (плагин для Студии)
  • Что практичнее изучать ES6 или Typescript?

    Учтите только, что TS 1.x это надмножество ES5. Строгим надмножеством ES6 его планируется сделать в TS 2.0
  • Как запустить старую игру на Windows 10?

    Режим совместимости пробовали? Он под XP писался? Не такой уж он старый.