• Для чего объявлять (создавать) имена полей в начале класса если они же по сути объявляются (создаются) в конструкторе?

    @rfm
    чтобы в редакторе кода, когда вы набираете
    $object->|
    он мог вам подсказать какие свойства есть у объекта.

    чтобы явно указать видимость свойств (например, протектед)
    чтобы потом не искать какие свойства есть у объекта через год, шарясь по всем его методам.
    чтобы у вас не отвалилось все к чертям, если вы перепишите конструктор в классе-потомке.
    Ответ написан
    Комментировать
  • Kuber vs rancher vs docker?

    @dimagusarov1
    Kubernets это как swarm только swarm плохой и умер.
    gui от гугла никто не юзает, rancher более продвинутая штука, можно создавать кластера, управлять и тд.
    и внутри ranchera кубер, т.е. ты можешь сетапить кубер ранчером или кубспеем или кубадмом... но там везде кубернетес)
    Ответ написан
  • Какие языки программирования лучше всего оплачиваются в России, США и Европе?

    @mamontm
    Оплачиваются не языки программирование.

    Оплачивается умение ими пользоваться.

    Есть буквально одно исключение - Cobol.
    Это один из старейших языков программирования, на котором начали писать еще тогда когда ваши родители еще не родились.
    Приходится иметь дело с очень древними программами, причем выполняющими весьма ответственные вещи, где высока цена ошибки (первыми, кто мог позволить себе компьютеры был очень крупный бизнес)

    о наблюдениям сервиса «Мой круг» в России последние пару лет по зарплатам лидируют...

    Вы неверно интерпретируйте данные.

    Просто ряд языков чаще используется в недорогих простых проектах. Что не отменяет их же использование в дорогих проектах. Но искажает понятие "средняя зарплата".

    Плюс недорогих проектов всегда намного больше. Что еще более искажает понятие "средняя зарплата".

    Ну то есть математически-формально всё так как описано в обзоре зарплат.

    Но вас же интересует, поди, сколько лично вы будете зарабатывать, если смените язык?
    А ваш заработок связан вовсе не с языком - а с тем, что вы в этом случае будете и с другим работодателем работать и опыта постепенно набераетесь.

    Причём если Scala и Elixir два года назад по зарплатам опережали прочие языки с сильным отрывом и за последние годы выросли по зарплате несильно, то Go и Objective-C за эти же два года совершили сильный отрыв от остальных языков и догнали Scala и Elixir

    Все упомянутые нельзя назвать распространенными на простых (то бишь на дешевых) проектах.

    P.S.:
    Узнаю типичный страх начинающего новичка (и типичное заблуждения уже начавшего новичка, который уже успел разочароваться в том, что ему не предлагают сходу 100 500 миллионов баков в месяц, как об этом все трубят) -

    "Я выучу не тот язык и карьера будет погублена"
    "Я выучу тот язык и карьера пойдет вверх".

    Язык не важен - достаточно выбрать любой язык из мейнстрима, чтобы просто на нем было можно найти работу (или, если вы в маленьком населенном пункте и будете работать не удаленно - тогда выбор языков вообще мал).

    Важно ваше умение программировать. А это понимание/знание - алгоритмов, парадигм, концепций, паттернов.

    Эти вещи из языка в язык повторяются.
    Трудно выучить только первый.

    Сменить язык программисту с опытом - не сложно.
    Ответ написан
    8 комментариев
  • Какой язык программирования выбрать для данного проекта?

    Adamos
    @Adamos
    Для стартапа с ничем не гарантированным будущим - тот, на котором вы готовы быстрее и дешевле всего сделать MVP.
    Ни в коем случае не тратя средств и времени на проработку масштабирования и прочих проблем роста.
    Потому что именно решение проблем роста до того, как они появились, лишает стартап всяких шансов начать этот рост.
    Ответ написан
    Комментировать
  • Нельзя что ли нейросеть на зеленых потоках?

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

    tumbler
    @tumbler
    бекенд-разработчик на python
    Напрямую можно симулировать нейроны, и даже математика вся уже написана. Но на современном железе получится запустить не более миллиона (плюс/минус два порядка) нейронов, а в человеческом мозге около 100 млрд. Тензорфлоу оперирует матрицами, а операции над ними хорошо векторизируются и имеют производительные реализации не только для центрального процессора, но и для GPU и кластеров, вследствие этого получается обсчитывать на пару порядков больше нейронов.
    Ответ написан
    Комментировать
  • Почему разработка на Java под Android считается "нативной", а на том же Dart нет?

    @tutuborg
    1. В Dart нет VM, строго говоря. VM используется в Dart только для отладки. А готовое приложение - компилируется в машинный код, что даже еще ниже и быстрее, чем Java VM.

    2. Как бы есть большая разница - Java VM в Android - это основная базовая ведь. Она всегда есть, она всегда запущена, львиная часть приложений работает с этой VM. Если, гипотетически, у вас будет еще какая то другая дополнительная VM, кроме основной VM Андроида только под одно приложение - это и объем приложения при скачивании большой и место в оперативной памяти больше нужно, и на диске место больше потребуется.

    3. Ненативностью можно считать ограничения Dart по использованию API. Обычному нативному приложению на Java/Kotlin в Android доступно 99,99% API. Но приложению на Dart сделанному доступны только те API, что или встроены в Dart или под какие реализован слой совместимости (написанный на Java/Kotlin) - а это далеко даже не 80%

    Чем принципиально разработка под Android на Dart отличается от разработки на Java?

    1. Hot reload прежде всего
    2. Ну и разделение на два слоя - собственно Dart и куски-бриджи к API (что пишутся на Java/Kotlin)
    Ответ написан
    Комментировать
  • Площадка с задачами для практики?

    @bogomazov_vadim
    Ответ написан
    Комментировать
  • Площадка с задачами для практики?

    @Stas_Yaroslavtsev
    Начинающий игродел и веб-разработчик
    https://www.codewars.com/
    https://checkio.org/
    https://stepik.org/course/67/promo
    https://stepik.org/course/512/promo
    https://pythontutor.ru/
    https://pythonworld.ru/osnovy/tasks.html
    cppstudio.com/cat/285

    Всё легко гуглится, в чём проблема?
    Напишите в браузере:
    c++ задачки
    python задачки
    Ответ написан
    Комментировать
  • Если я сменю python на c++ смогу ли я обучить нейросеть? быстрее?

    erge
    @erge
    Примус починяю
    а какая проблема с многопоточностью в Python ?
    есть модули threading, subprocess, multiprocessing

    многопоточность в python
    Ответ написан
    3 комментария
  • Enterprise на Java ограничен узкой нишей?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Просто у этих областей самая высокая потребность в сотрудниках. Набирают толпами, вот и вакансий много.
    Ответ написан
    2 комментария
  • Enterprise на Java ограничен узкой нишей?

    alfss
    @alfss
    https://career.habr.com/alfss
    Это любая ниша.
    Игры, аггрегаторы, магазины, медицина, etc.
    Ответ написан
    3 комментария
  • Для чего нужны WeakMap и WeakSet?

    profesor08
    @profesor08 Куратор тега JavaScript
    Тут достаточно подробно объяснено для чего ввели такие типы данных.
    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Ответ написан
    Комментировать
  • Правда ли что рынок веб разработки "перегрет"?

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

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

    Вот эти ребятки, что в этой теме отметились, они настолько все туповатые, что сами себе роют могилу, крича на весь интернет о "дефиците". Сами того не понимая, плодят себе конкурентов. Для примера - зайди на какой-нибудь бизнес-форум и спроси у любого пользователя, кто бизнесом занимается - "как ты деньги зарабатываешь?" - ни один идиот тебе не раскроет секрет. Никогда. Это только у айтишников так принято - трубить на всю ивановскую о дефиците. А лет через 10 большая половина этих обезьянок пойдет в такси работать, ибо рынок будет безбожно переполнен людьми с вполне обычными знаниями.

    И не забывайте о времени - через Н лет все, кто сейчас "на коне", станут вторсырьем, ибо индустрия на месте не стоит и знания ваши обесценятся. Вот смеху то будет, когда после 10 лет упорного труда вы ВНЕЗАПНО поймете, что индустрия рванула вперед, а вы все на [нужное_вписать] кодите. Быгыгы.
    Ответ написан
    51 комментарий
  • Правда ли что рынок веб разработки "перегрет"?

    OTCloud
    @OTCloud
    Программирование и Архитектура ПО
    100% перегрет, но не программистами или веб-мастерами, а индивидами, которые решили что веб это просто и легко и не стоит сильно париться над своими скиллами и знаниями.
    Ответ написан
    8 комментариев
  • Почему используют interface a не abstract class?

    @Mercury13
    Программист на «си с крестами» и не только
    И первое, и второе имеет право на жизнь.

    Второе действительно используется чаще: у нас есть готовая или полуготовая кнопка, и надо добавить в неё функциональность Нашей Крутой Кнопки™. К тому же слова вроде Clickable лучше подходят для названий интерфейса, чем Button.
    class Button {
      protected void paint(Canvas aCanvas) {}
    }
    
    class MyButton extends Button {
      @Override
      protected void paint(Canvas aCanvas) {}
    }


    А первое — например, мы хотим с Нашей Крутой Кнопкой™ работать как с кнопкой неизвестной функциональности, которая умеет только нажиматься и говорить, в каком она состоянии.
    interface Button {
      void press();
      boolean state();
      void addListener(ButtonListener x);
    }
    
    class GameObject {
      void paint(Renderer renderer);
    }
    
    class MyButton extends GameObject implements Button {
    }
    
    class FridgeGame implements ButtonListener {  // помните, такая была в «Братьях Пилотах»?
      Button buttons[][] = new MyButton[4][4];  
    }
    Ответ написан
    Комментировать
  • Почему используют interface a не abstract class?

    profesor08
    @profesor08
    Все зависит от того, что тебе действительно нужно. Либо тебе надо расширить функционал кнопки, и ты наследуешься от нее, либо тебе нужен функционал кнопки в твоем классе, и ты имплементируешь интерфейс кнопки.
    class Button;
    class RedButton extends Button;

    interface Button;
    class Image implements Button;
    Ответ написан
    Комментировать
  • Какой смысл несет в себе конструкция !! в js?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Получение логического эквивалента значения. Оператор логического отрицания применяется дважды, например:

    !!187 -> !false -> true
    !!NaN -> !true -> false

    Тот же результат даст Boolean(значение).
    Ответ написан
    Комментировать
  • Почему при объявлении переменной, в любом языке программирования, резервируется весь размер памяти отведённый под тип данных?

    @JZorkiy
    Память под переменную в C++ (например) выделяется в соответствии с типом данных и конкретного размера для быстродействия работы программ, чтоб компьютер во время выполнения программы не занимался постоянным пересчитыванием и перевыделением памяти для многих тысяч переменных, содержимое и размер которых постоянно меняется в пределах типа.
    А к размерам SSD это никакого отношения не имеет.
    И какой тогда смысл в типах данных, если память для них будет выделяться строго по размеру содержимого? Именно для этого типы данных и существуют.
    Ответ написан
    Комментировать
  • Почему при объявлении переменной, в любом языке программирования, резервируется весь размер памяти отведённый под тип данных?

    Stalker_RED
    @Stalker_RED
    Пример с SSD некорректный, все равно что требовать от камаза, например, выпустить грузовик с грузоподъемностью 20кг. Производителю нужен рынок сбыта.
    Тем не менее, небольшие чипы памяти существуют, только никто на них не пишет, что это "SSD".

    Выделение памяти - операция не бесплатная, и кто-то решил, что так будет выгоднее.
    https://randomascii.wordpress.com/2014/12/10/hidde...
    https://habr.com/ru/post/270009/

    Как-то всё топорски устроено
    Вы можете написать сви менеджеры памяти,компиляторы и другие сопутствующие штуки. Не исключено, что обретете мировую известность. Но не думайте, что до вас никто не пытался.
    Ответ написан
    2 комментария