Задать вопрос
  • Чем создание JVM под конкретные платформы "лучше", "проще", "продвинутее", "правильнее" написания компиляторов под те же платформы?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Упрощения для разработчиков инструментальных средств - это тема очень непростая. Намного легче объяснить плюсы с позиции прикладного программиста и пользователей ПО. В 2003-м году я участвовал в разработке одной системы на Java EE. Написанный мной и другими разработчиками код был скомпилирован с помощью Java 1.4, упакован в war и развёрнут на сервере заказчика. Это был сервер с 32-битными процессорами Xeon Prestonia, работавший под управление FreeBSD. Позже это приложение в том же war-файле было перенесено на сервер Fujitsu PRIMEPOWER с процессорами абсолютно иной архитектуры - SPARC, и управляемый очень отличающейся операционной системой - Solaris. Сейчас оно крутится на IBM'овских блэйдах c процами POWER и под управлением AIX, на сколько мне известно. Не удивлюсь, если через некоторое время приложение перенесут на что-нибудь с ARM'ами и под Linux или HP-UX. Все эти миграции выполняются без перекомпиляции и без привлечения разработчиков. Если бы приложение было написано на чём-нибудь вроде C++, код приложения пришлось бы портировать на каждую платформу и перекомпилировать. Это было долго, сложно и очень дорого.
    Ответ написан
    2 комментария
  • Обязателен ли инициализатор у дочернего класса?

    @frozen_coder
    Java-developer
    Во-первых, ваш конструктор в Animal не имеет смысла в том виде, в котором вы его привели - без аргументов вы просто поля класа переприсвоили сами в себя, наверно вы забыли написать аргументы у контруктора name и age.
    Во-вторых, Александр Варакосов неправ и контрукторы не наследуются.

    В java есть конструкторы по-умолчанию - контруктор без агрументов. Он создается компилятором автоматически, если у класса не объявлено ни одного конструктора.
    В конструкторах дочерних классов компилятор сам вставляет первой строкой вызов родительского контруктора по умолчанию, при наличии такового в родительском классе. Т.о. если у дочернего класса нужно в конструкторе просто вызывать конструктор родителя по умолчанию, то в дочернем классе можно явно не объявлять никакой контруктор. А вот если у родителя нет конструктора без аргументов, то объявлять конструктор в дочернем классе необходимо, хотя бы чтобы вызвать в нём родительский конструктор.

    P.S. и ещё прочитайте про модификаторы доступа. В java принято поля делать private + getter/setter по необходимости. Вообще, возьмите какой-нибудь учебник по java, там всё расписано
    Ответ написан
    Комментировать
  • Сначала С, а потом С++?

    myjcom
    @myjcom Куратор тега C++
    Вопрос довольно короток. Есть ли смысл изучать сначала С, а потом С++?

    Ответ тоже довольно короток.
    Чем лучше программист знает С, тем труднее будет для него при программировании на С++ отойти от
    стиля программирования на С.

    Для изучения С++ не обязательно знать С. Программирование на С способствует усвоению приемов и
    даже трюков, которые при программировании на С++ становятся просто ненужными.

    Бьерн Страуструп. Язык программирования С++.

    Нотабене

    Тем не менее, хорошие программы на языке С по сути являются
    программами на С++. Например, все программы из классического описания С (K&R) являются
    программами на С++. В процессе изучения С++ будет полезен опыт работы с любым языком со
    статическими типами.

    Ответ написан
    1 комментарий
  • Что нужно изучать начинающему Android программисту помимо языка программирования?

    Zoominger
    @Zoominger
    System Integrator
    Для начала надо освоить Гугл или поиск хотя бы по Тостеру.

    Смотря на школьников, которые в моем возрасте мутят что-либо и зарабатывают на этом,

    Перестать смотреть на балаболов.

    И окончательный вопрос: реально ли в 15-17 лет освоить ЯП с остальными технологиями и начать работать на фрилансе?

    Исключительно нет.
    Ответ написан
    Комментировать
  • Верно ли утверждение, что алгоритмы используются в основном в процедурном программировании, нежели ООП?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если ознакомиться с определение алгоритма, становится очевидна бессмысленность заявления:

    Система последовательных операций (в соответствии с определёнными правилами) для решения какой-нибудь задачи.

    То есть вы заявляете, что в парадигме объектно-ориентированного программирования код вообще не пишут.
    Ответ написан
    Комментировать
  • Не удаётся преобразовать double [] к классу Main как решить?

    GavriKos
    @GavriKos
    У Main тип - Main.
    Привести не может потому что нет правил перевода массива даблов в мейн.
    Вопрос - что вы хотите от метода Plus? В нем ни входной параметр не используется, и возвращает он почему то Main. Код мягко говоря странный.
    Ответ написан
    6 комментариев
  • Как правильно изучать программирование?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    А что если я буду по урокам , книгам учиться писать DLL , но не буду учить сам C++ для этого?


    Ваш вопрос звучит как "А если я буду по урокам и книгам учить грамматику, но не буду учить алфавит и сами буквы для этого"

    Язык - это БАЗОВОЕ. Можно не лезть в дебри языка, но без основ языка вы в принципе писать не сможете.
    Ответ написан
    Комментировать
  • Как правильно изучать программирование?

    20ivs
    @20ivs
    Пользователь пока ничего не рассказал о себе.
    да нормально, все так и делают.
    Ответ написан
    Комментировать
  • Почему нет треугольника?

    SerJook
    @SerJook
    кодер
    Неправильная обработка сообщения WM_SIZE:
    The low-order word of lParam specifies the new width of the client area.
    The high-order word of lParam specifies the new height of the client area.

    case WM_SIZE:
            glViewport(0, 0, LOWORD(lParam), HIWORD(lParam));


    5cd2ef0534175926741512.png
    Ответ написан
    1 комментарий
  • Как разложить на неприводимые в поле R множители?

    longclaps
    @longclaps
    P(x) == (x-x0)*(x-x1)*...., где x0, x1,... - корни многочлена P(x), у которого коэффициент при старшем члене равен 1.
    Находишь корни, если какие-то из них не принадлежат указанным полям - скобочки с ними перемножаешь, в худшем случае можешь получить исходный полином - что означает его неприводимость.
    Ответ написан
    Комментировать
  • Как инвертировать значения?

    @D3lphi
    const int MAX_LATENCY = 100;
    int current_latency = MAX_LATENCY - x;
    Ответ написан
    Комментировать
  • Как узнать сколько параметров передается в метод Java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Во-первых, в Java нет функций, только методы. Во-вторых, Java - язык со статической типизацией, а значит ещё до компиляции известно сколько у метода параметров и каких они типов.
    Ответ написан
    3 комментария
  • Является ли flutter "угрозой" нативной разработке?

    ookami_kb
    @ookami_kb
    Flutter возможно вытеснит разработку под Андроид – но только при условии, что правдой окажутся слухи о том, что Google переведет всех на OS Fuchsia, где официальный фреймворк – это Flutter. Но даже в этом случае никуда не исчезнет огромный пласт существующих приложений, написанных под Андроид, так что скорее всего будет существовать какая-то возможность портировать существующие Андроид приложения.

    Пока что Flutter выглядит как хорошая возможность писать кроссплатформенные приложения, не уступающие по скорости нативным, но как и с любым другим кроссплатформенным фреймворком, надо хотя бы в общих чертах представлять, как работает Android и iOS (а лучше все-таки иметь хоть небольшой опыт написания нативных приложений по эти платформы).

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Замени head = malloc(sizeof(struct Node)) на head = new Node.
    Потому что malloc тебе конструктор std::string внутри data_list не вызовет.
    И не вставляй код картинками.
    Ответ написан
    Комментировать
  • Физика движения по параболе. С какой скоростью и под каким углом нужно бросить тело?

    hint000
    @hint000
    у админа три руки
    Решим задачу в два этапа.
    1. Будем считать, что у нас только одна вершина горы. Задача построения параболы по трём точкам. Две точки - два танка, третья точка - вершина горы. Окей гугл построение параболы по трём точкам.
    Решили.
    2. Несколько вершин. Даже по имеющейся картинке сложно на глаз определить, какая из двух вершин важнее для нашего выстрела - левая, или та, что в середине картинки. Поэтому надо определить список вершин. Тут есть простор для придумывания алгоритма. Например, так. Находим самую высокую точку, при условии, что она выше обоих танков. Добавляем её в список. Далее рекурсивный обход (здесь танки условно считаем тоже вершинами). Проводим прямую от левого (правого) танка до последней вершины. Повторяем поиск максимальной высоты, но считаем высоту над проведённой прямой. Условие выхода из рекурсии - нет точек выше прямой. Таким образом нашли список вершин. Для каждой вершины из списка решаем задачу построения параболы. Из всех парабол выбираем самую высокую.
    Решили.
    3... так, мы же хотели решить в два этапа? Но это была голая математика, и для физической задачи мы получили не совсем то, что нужно. Внезапно. Решение было бы правильным, если бы танк мог управлять скоростью снаряда. Тогда мы могли бы выстрелить по любой рассчитанной выше параболе. Но у танка скорость снаряда фиксированная (или я отстал от жизни?), и мы управляем только углом. Поэтому надо сначала решать задачу из школьного учебника физики, про выстрел из пушки. Угол определяем без учёта гор. В общем случае будет два решения, два возможных угла - по настильной траектории, и по навесной. У нас же горная местность, так что настильная траектория (угол от 0 до 45 градусов) нас не устраивает, остаётся одно решение. Т.е. единственный шанс попасть в цель - стрелять с найденным сейчас углом, не зависимо от расположения вершин. Если на пути снаряда окажется гора, значит шансов попасть в цель было ровно ноль, при любом другом угле будет промах, даже если не наткнёмся на гору. Получается, что все рассуждения на этапах 1 и 2 были напрасны? Не совсем. Мы можем ими воспользоваться, чтобы определить, налетит снаряд на гору или не налетит (при точном прицеливании). Если выясним, что налетит на гору, значит можно не стрелять, сэкономить снаряд, но это уже слегка за пределами абстрактных условий задачи.
    Ответ написан
    3 комментария
  • В чем смысл быть гуру тостера?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    1. Работа над личным брендом: Высокая репутация в профессиональных сообществах повышает привлекательность для нанимателей.
    2. Улучшение существующих знаний: Хочешь что-то понять, объясни другому.
    3. Приобретение новых знаний: Специализация замыкает в узком спектре задач и проблем, а Q&A-сервисы - это источник задач и проблем из самых разных областей и иногда под самыми неожиданными углами.
    4. Альтруизм: Большинству из нас кто-то помогал в начале пути, пришло время возвращать долг и делать свой скромный вклад в рост кадров.

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

    Для чего просиживаете на тостере по 5-6 часов в день?

    Я в среднем раз в полчаса-час заглядываю. Если находится интересный вопрос, могу потратить на него минут 10. Некоторые на перекуры больше времени тратят.
    Ответ написан
    7 комментариев
  • Есть ли аналог var_damp на kotlin для android?

    GavriKos
    @GavriKos
    Самое простое - поставить брейкпоинт и посмотреть в отладчике.
    Если хотите прям в логе - https://stackoverflow.com/questions/38525403/kotli...
    Ответ написан
    Комментировать
  • Как запарсить двойной JsonObject в Retrofit?

    iLLuzor
    @iLLuzor
    Java, Kotlin, Android Developer
    Создайте отдельный класс User с полями id и type.
    В классе TattooMarketServerInfo тип поля user должен быть User, а не JSONObject, а поля type и id из класса TattooMarketServerInfo нужно удалить.
    Ответ написан
    Комментировать
  • Что мне делать если я хочу стать разработчиком игр но не чего по этому не знаю?

    wapster92
    @wapster92
    Научиться хотя бы одному языку программирования, хотя бы основы и Гугл в помощь. Или идти учиться рисовать, дальше Гугл в помощь. Или писать интересные сюжеты, сценарии, дальше Гугл. В студию устроится уборщиком где делают игры. Любить играть в игры, и создавать игры это две совершенно разные вещи.
    Ответ написан
    3 комментария