Не так давно на Хабре публиковалась новость о раскрытии кода Калькулятора Windows, одной из наиболее известных программ в мире. Исходный код этого ПО выложен на GitHub.

Тогда же говорилось о том, что разработчики программы предлагают всем желающим вносить свои пожелания и идеи относительно функциональности программы. Из большого числа на данный момент выбрана пока одна. Автор ее предлагает добавить в калькулятор графический режим.

Собственно, здесь все понятно — графический режим даст возможность визуализировать уравнения и функции, примерно то же, что делает Plotting Mode в Matlab. Функция была предложена инженером корпорации Microsoft Дейвом Грочоски (Dave Grochocki). По его словам, графический режим не будет слишком уж продвинутым. Он позволит учащимся строить графики по алгебраическим уравнениям.

«Алгебра — путь в высокие сферы математики и связанные с ней дисциплины. Тем не менее, это один из наиболее сложных для учащихся предметов, очень многие получают по алгебре плохие оценки», — говорит Грочоски. Разработчик считает, что если в калькулятор добавить графический режим, то ученикам и учителям станет проще понимать друг друга на занятиях.

«Графические калькуляторы могут быть весьма дорогими, программные решения требуют лицензирования, онлайн-сервисы не всегда являются оптимальным решением», — продолжает свою мысль Грочоски.

По словам представителей Microsoft, именно графический режим является одним из наиболее часто запрашиваемых возможностей в приложении Feedback Hub, куда пользователи программных продуктов корпорации сбрасывают свои предложения.

Цели, которые ставят перед собой разработчики:
  • Обеспечение базовой визуализации в Калькуляторе Windows;
  • Поддержка основных учебных программ по математике в США (к сожалению, пока функциональность Калькулятора будет планироваться, исходя из нужд учащихся этой страны), включая умение строить и интерпретировать функции, понимать линейные, квадратичные и экспоненциальные модели, изучение при помощи калькулятора тригонометрических функций и понимание концепции уравнений.

    Что еще получит пользователь:
    • Возможность ввести уравнение для построения соответствующего графика.
    • Возможность добавить несколько уравнений и визуализировать их, чтобы сравнить между собой графики.
    • Режим редактирования уравнений, чтобы можно было видеть, что изменяется при внесении определенных модификаций в исходное уравнение.
    • Изменение режима просмотра графиков — разные участки можно будет просмотреть в разной степени детализации (т.е. речь идет о масштабировании).
    • Возможность изучения различных типов графиков.
    • Возможность экспортировать полученный результат — теперь визуализациями функций можно будет делиться в Office / Teams.
    • Пользователи могут легко манипулировать вторичными переменными в уравнениях, что даст возможность понять, как изменения в уравнениях влияют на график.

    Насколько можно судить, графики можно будет строить для не очень сложных функций.

    Сейчас разработчики Калькулятора пытаются показать, что с течением времени программа совершенствуется. Она появилась на свет в качестве элементарного помощника для выполнения арифметических действий. Сейчас же это надежный научный калькулятор, который может использоваться широким кругом пользователей для решения весьма серьезных задач. В дальнейшем ПО будут улучшать и дальше.

    Что касается открытия исходного кода, то это сделано для того, чтобы любой желающий мог ознакомиться с такими технологиями Microsoft как Fluent, Universal Windows Platform, Azure Pipelines и другими. Благодаря этому проекту разработчики могут больше узнать о том, как выполняется работа по созданию тех либо иных проектов в Microsoft. С подробным анализом исходного кода Калькулятора Windows можно ознакомиться здесь, прямо на Хабре.

    Программа написана на С++ и содержит более 35000 строк кода. Для компиляции проекта пользователям необходима Windows 10 1803 (или более новая) и последняя версия Visual Studio. Со всеми требованиями можно ознакомиться на GitHub.

Комментарии (40)


  1. fedor2612
    23.03.2019 23:27
    +3

    Пусть стандартный калькулятор останется калькулятором, а если, например, нужны графики — берите GeoGebr'у, решать уравнения — Maxim'у или SageMath, и. т. д. У каждого инструмента должна быть своя область, потребностям которой он удовлетворяет. Область определения стандартного калькуятора — простые вычисления, для большего есть свои инструменты, которые будут лучше, разработчики которых уже поняли, «методом проб и ошибок», каким именно должен быть инструмент, и тратили все время на движение в этом направлении.


    1. GeMir
      24.03.2019 01:26

      Упомянутая вами GeoGebra из одного приложения (GeoGebra Classic) как раз постепенно превращается в семейство приложений, состоящее из приложения для динамической геометрии, графического, а так же CAS-«калькулятора».


    1. Exchan-ge
      24.03.2019 02:40
      +1

      Область определения стандартного калькуятора — простые вычисления, для большего есть свои инструменты


      Как я мог заметить, люди, профессионально использующие компьютер — уже давно не заморачиваются на Калькулятор: делают все вычисления в Excel. Так как и быстрее и проще. (И повторяемость процесса лучше )

      И да, Калькулятор должен быть простым — он для тех, кому Excel сложен.


      1. GeMir
        24.03.2019 03:16

        делают все вычисления в Excel
        Wolframalpha.com?


        1. Valle
          24.03.2019 06:00
          +2

          я вот сейчас попробовал на него зайти. 25 секунд он открывался. 2+2 он считал более двух минут и так и не посчитал. После полной перезагрузки это заняло секунд 30. Впрочем и в лучшие времена выдать что-то быстрее двух секунд он никогда не мог. Создать табличку в гуглдрайве существенно быстрее.


          1. vyo
            24.03.2019 13:27

            Странно. Открылся за пару секунд, 2+2 посчитал секунд за 5 (но при обилии итоговой инфы это даже простительно).
            Да и Exel оффлайновый, кто мешает wolfram alpha тоже поставить и не напрягаться?


            1. Valle
              24.03.2019 19:59

              Да, сейчас очухался и открывается/считает быстро. Наверное авария была.


        1. Exchan-ge
          24.03.2019 13:47
          +1

          Wolframalpha.com?


          Одно из преимуществ экселя — работа офлайн.
          Бывают случаи, когда это принципиально.


          1. Mykola_Von_Raybokobylko
            25.03.2019 17:02

            Самое быстрое подтверждение аксиомы " о полноте Excel"


      1. Alex_ME
        24.03.2019 12:18

        Если мне надо посчитать что-то совершенно простое — обычный калькулятор, а более сложное — Python repl.


      1. Error1024
        25.03.2019 00:50
        +1

        Боюсь в Excel и других электронных таблицах можно получить весьма «странные» для калькулятора результаты, ввиду двоичной, а не двоично-десятичной арифметики.


        1. saboteur_kiev
          25.03.2019 02:47

          Галочка «точность как на экране» не включена =)


          1. p_fox
            25.03.2019 09:28

            А что, в таком простом вычислении бывает какая-то альтернативная точность, кроме очевидного результата "0,1"?


            1. Exchan-ge
              25.03.2019 23:29

              А что, в таком простом вычислении бывает какая-то альтернативная точность, кроме очевидного результата «0,1»?


              Мне так и не удалось воспроизвести показанный на вашей иллюстрации результат.


              1. saboteur_kiev
                26.03.2019 03:34

                Да ладно. Сделайте все как на картинке и кнопочкой «увеличить разрядность» добейте до 15-20 знаков после запятой.


              1. p_fox
                26.03.2019 09:21

                Но это не моя иллюстрация. :)


  1. Diordna
    23.03.2019 23:47
    +1

    Еще бы функции конвертора физ величин добавить.


    1. Butt--Head
      24.03.2019 02:05
      +2

      Так ить давно уже есть, как минимум со времён Windows XP:Calculator Windows XP


      Или что — эту функциональность Microsoft умудрилась по пути благополучно похеритьтерять?


      1. Andy_U
        24.03.2019 02:36

        Нет, сохранилась, но только систему СГС/CGS эта софтина не знает. Про вязкость тоже понятия не имеет. И много про что еще. Я обычно Maple для этого использую.


  1. qark
    23.03.2019 23:48
    +2

    С подробным анализом исходного кода Калькулятора Windows можно ознакомиться здесь, прямо на Хабре.
    Сложно назвать поиск «пахнущего» кода подробным анализом.


  1. saboteur_kiev
    24.03.2019 00:54
    +6

    Лучше бы сделали адекватный режим для конвертации hex-dec-oct-bin, а то при переходе из режима в режим теряются данные, для выбора системы счета нет хоткеев, отображение числа идет только в текущем и двоичном виде, почему бы сразу все четыре не показывать?
    Настолько мелкие доработки, что есть впечатление, что проектировал «режим программист» тот, кто им никогда не пользовался.

    Добавить графику в принципе было бы неплохо. Лишь бы не на электроне реализацию делали.


    1. Andy_Big
      24.03.2019 03:20
      +1

      для выбора системы счета нет хоткеев

      hex — F5, dec — F6, oct — F7, bin — F8. Или Вы не про это?


      1. saboteur_kiev
        24.03.2019 03:53
        +2

        Ок хоткеи есть, хотя и вообще не интуитивные. Но почему бы сразу не выводить число


        1. Andy_Big
          24.03.2019 14:20
          +1

          С этим я не спорю, было бы очень удобно :) Как и со многими другими претензиями, высказанными тут — например, работа с дробными числами в счислениях, отличных от десятичного :)


    1. Inanity
      24.03.2019 04:21
      +2

      Тоже добавлю (жутко бесит лично меня).

      1. Будет круто, если калькулятор, наконец таки научится из буфера обмена вынимать число, несмотря на префиксы/постфиксы, т.е. пора бы уже нормально считывать «0x1234», «h1234», «1234h», «b1010», «1001b». Я уже не говорю о том, чтобы по префиксам догадаться о системе счисления. И даже из «ijoefjw1234fojwef» неплохо бы уже считать подстроку с числом.

      2. Куда и зачем убрали ROR и ROL из режима программиста? Если кнопочек не жалко, то можно добавить ещё NOR с NAND.


      1. M_AJ
        24.03.2019 12:33

        И даже из «ijoefjw1234fojwef» неплохо бы уже считать подстроку с числом.

        Много вариантов: 1234(8), 1234(10), 1234(16), 1234f(16).


      1. HandleX
        24.03.2019 15:01

        И десятичный разделитель понимает из буфера обмена только запятую (для русской венды) — вот тоже бесит.


    1. nerudo
      24.03.2019 10:25
      +1

      А меня бесит, что не поддерживает дробную часть в режимах отличных от dec.


  1. yulai-b
    24.03.2019 07:30

    По-моему, шикарная идея. С такой наглядной визуализацией калькулятору даже считать необязательно:)


  1. orion76
    24.03.2019 09:00

    Как в том анекдоте про АК-47:
    За что бы не брался Microsoft, все равно получается Windows-)


  1. kovserg
    24.03.2019 10:30

    Следующий шаг это ненавязчивая реклама в калькуляторе и интеграция со skype-ом?

    ps: Берём обычный скриптовый языка типа Lua,Python и т.п. и получаем калькулятор на порядок лучше, удобнее с возможность автоматизировать действия.


  1. Alex_ME
    24.03.2019 12:24

    Калькулятор Windows 10 какой-то отстой. Раньше у нас был просто гребаный калькулятор, а теперь это калькулятор с кучей графических свистоперделок. Который хоть и потребляет памяти сущие копейки в масштабе системы, все равно как-то дофига для такого примитивного инструмента. Ну, и как выяснилось, содержит просто дофига кода.


    Например, в убунтовском калькуляторе есть очень удобный клавиатурный режим. Зачем кнопочки на экране, если можно набрать на клавиатуре?


    1. VJean
      24.03.2019 17:35

      Кнопочки для устройств с сенсорным экраном.


      1. snizovtsev
        24.03.2019 18:25

        Ага, предусмотрели такой задел на будущее ещё в 95м году :)


      1. geher
        24.03.2019 22:08

        На устройствах с сенсорным экраном обычно есть виртуальная клавиатура.


        1. VJean
          24.03.2019 22:13

          На мелкоэкранных устройствах ею не очень удобно пользоваться, т.к. отжирает большую часть экрана. У самого asus t91mt и долгое время пользовался t101mt.


          1. geher
            25.03.2019 10:36

            Калькулятору выражений хватит двух строк на экране — ввод и результат.
            Опционально можно добавить несколько стрьк истории.
            Пользовал на мобильном разные калькуляторы (в том числн вообще без кнопок). Бвло нормально.


    1. advan20092
      25.03.2019 16:17

      А винда в поиске не считает? В макоси и на айпаде можно так считать. На худой конец у гугле.


  1. MOPOH
    24.03.2019 12:26

    А мне в стандартном калькуляторе не хватает запоминания предыдущих настроек. Например, в конвертере величин по дефолту открывается «вес/масса (гектограмм)» и каждый раз приходится выставлять требуемые параметры преобразования.


  1. kovserg
    25.03.2019 13:34

    image
    Кстати, где названия осей, где единицы измерения, где сетка и названия кривых?
    Справа три прямые, а слева какая-то кривая типа логарифма. Это дизайнерский прототип или так и будет?