• ООП в Objective-C концепция отправки сообщений вместо вызова метода, почему так?

    risik
    @risik
    Программист
    Связано это с тем, что парадигма ООП в ObjC взята из SmallTalk.

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

    С++, хотя он создавался примерно в то же время, был построен по несколько иным принципам. И некоторые "другие" ОО языки программирования (Java и C#) базировались на парадигме ООП в С++, а не в SmallTalk. Хотя некоторые концепции позже перекочевали и в эти ОО языки.
    Ответ написан
    Комментировать
  • ООП в Objective-C концепция отправки сообщений вместо вызова метода, почему так?

    FirstX
    @FirstX
    .net developer
    Лично мне кажется, хотя я и сам только начал изучать C-objective, что это всего лишь исторически сложившаяся концепция, которая принципиально на практике ничем не отличается, кроме формы записи.
    В теории да, различия есть, что при вызове метода мы сразу переключаемся на исполнение блока кода (метода) этого самого объекта и например попытка переключиться к исполнению кода, когда объект равен null - вызовет проблему.

    Посылая же сообщение, поведение более динамично, в том плане, что объект может и не ответить на наше сообщение. Если мы для пустого указателя пошлем запрос, то ничего страшного не случится, мы просто не получим ответа на наш запрос и все.

    А то, что есть "стандартная" форма записи, то это наследие от C, ведь C-Objective только надмножество над С. Плюс вид записи в сообщениях более читабелен на английском, аргументы не просто списком идут, а гармонично вливаются внутрь наименования метода. Хотя привыкать к такому конечно приходится какое-то время.

    Чуть подробнее можно например тут глянуть
    Ответ написан
    Комментировать
  • Что за непонятные отступы при создании элементов в Visual Studio?

    MikhailD
    @MikhailD
    Developer
    Потому что когда вы кладете элемент в определенное место формы, для того, что бы он там оказался, студия выставляет соответствующие отступы, иначе он будет в верхнем левом углу.
    Я бы посоветовал не использовать дизайнер, а писать xaml код руками, так вы лучше контролируете разметку
    Ответ написан
    Комментировать
  • Как работает массовое распознавание лиц по большой базе?

    strib
    @strib
    Сложнее.
    Читайте: www.face-rec.org/interesting-papers
    Ответ написан
    Комментировать
  • Как работает массовое распознавание лиц по большой базе?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Cкорее всего тут работает классификация в виде набор экспертов. Положим у нас есть лицо. Натравливаем его на первый классификатор, он говорит что лицо принадлежит типу №1 (а таких может быть типов 10 например). Далее натравливаем лицо на второй классификатор, который тоже классифицирует один из 10 типов лиц (уже по другому признаку) и т.д. главное чтобы все классификаторы были обучены на ортогональные признаки лица т.о. мы получаем некую метрику лица. Если таких классификаторов достаточное кол-во (например 10-15), то мы можем таким образом классифицировать 10^10 - лиц - а это очень много :) ... далее нам остается выбрать все лица у которого такой же хеш, и сравнить с текущей фоткой (таких лиц окажется достаточно немного) уже более ресурсоемким алгоритмом.

    P.S. Это все мои догадки, в реальности это может быть значительно сложнее.
    Ответ написан
    Комментировать
  • C++ или C#, с чего начать изучение с позиции фрилансера?

    foxmuldercp
    @foxmuldercp
    Системный администратор, программист, фотограф
    у плюсов и у шарпа немного разные ниши, на плюсах обычно пишется или прошивки для контроллеров всяких (если завод какой или скада система, то в принципе проекты вкусные и денежные) или хайлоадные сайты вроде вконтактиков или всякое низкоуровневое, вроде ардуинок и прочего хендмейда.

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

    @B16
    У меня не запускаются ОС на виртуалке когда активен агент BlueStacks App Player.
    Этот плеер тоже использует виртуализацию для запуска андроид приложений.

    Попробуйте, что нибудь закрыть и запустить ещё раз.
    Ответ написан
    Комментировать
  • C++ или C#, с чего начать изучение с позиции фрилансера?

    @Igor_Sib
    Раз интересует Unity3d, наверно разумнее изучить C#.

    Не знаю как с точки зрения фрилансера, но с точки зрения разработчика игр (я с 2010 пишу на C#, до этого лет 10 писал на C++) - C# лучше. Мне больше нравится.

    На C# пишешь именно код, логику игры. Из плюсов - скорость разработки выше, код понятнее.

    На C++ же приходится делать много дополнительной работы, все эти выделения памяти, указатели, и т.п. утилитарные вещи, которые нужны помимо основного алгоритма.

    Конечно C++ быстрее, но сейчас глядя на топы игр - понимаешь что это не актуально, любую игру из топов можно переписать на шарпе.
    Ответ написан
    Комментировать
  • C++ или C#, с чего начать изучение с позиции фрилансера?

    Trrrrr
    @Trrrrr
    С позиции фрилансера это c# в 90% случаев. Так как у с++ не лучшая ниша для фриланса: длительные проекты или ресурсоемкие и наукоемкие вычисления или геймдев(ААА игры или выжимание максимума из мобильных платформ), короче все то, что средний фрилансер не знает или проект будет длится несколько лет, что глупо отдавать на фриланс. Есть конечно небольшой процент приложений на QT, которые выполняют аналогичные с шарпом функции - простенькие гуишки к базам данных и тд.
    Ответ написан
    Комментировать
  • C++ или C#, с чего начать изучение с позиции фрилансера?

    С позиции фрилансера больше востребованы Java и PHP.
    Хотите писать под винду и .Net - C#. Хотите кроссплатформенности - С++. Не знаете с чего начать - начните с С.
    Ответ написан
    Комментировать