138,2
Карма
1,3
Рейтинг
Андрей @impwx

Программист

В сеть утекли данные 49 млн пользователей Instagram, утечкой заинтересовался «Роскомнадзор»

+1
хранила сотни миллионов данных
Раньше крали сотни нефти, теперь сотни миллионов данных…

Илон Маск: если кардинально не урезать расходы, деньги у Tesla закончатся через 10 месяцев

+3
Tesla понесла убытки в размере $702...
Кажется, тут забыли размерность :)

Пишите меньше кода

-2

Если в общих чертах — то да, именно так. С нишей веб-фреймворков наконец-то стало происходить то, что уже давно происходит с языками программирования, графическими движками и операционными системами: она заполнилась качественными, взрослыми проектами, которые суммарно подняли планку требований. Конкурировать с ними силами одного или нескольких энтузиастов больше невозможно. Поэтому из практичных вариантов остается два — делать игрушечные research-проекты в поисках чего-то действительно революционного, или присоединиться к разработке одного из уже существующих проектов, благо они все тоже open source, и сделать его еще лучше.

Пишите меньше кода

0

Требования к production-ready решениям в 2015 и 2019 годах значительно различаются.

Пишите меньше кода

-1

Разница между изначальной и нормальной поддержкой в IDE, на мой взгляд, огромна. И какая разница, что было N лет назад, когда Angular / React / Vue только зарождались? Сейчас-то у них эта поддержка есть, поэтому фреймворк без нее можно позиционировать разве что как игрушку или эксперимент, но не как production-ready решение.

Пишите меньше кода

0

Вы недооцениваете сложность реализации нормальной поддержки со стороны IDE, особенно учитывая количество возможных сочетаний технологий (JS / TS / Coffeescript, CSS / LESS / SASS / PostCSS / ...). Небольшая экономия символов не оправдывает необходимости все это переделывать.

Пишите меньше кода

-1

Опять маслобойка? Автор упускает важную деталь — для Angular / React / Vue уже есть отличная поддержка со стороны IDE, а без нее экономия на символах ничего не стоит. Для Svelte, насколько я знаю, она очень глубоко в альфе (хотя если это не так, поправьте меня пожалуйста).

Сооснователь Facebook предложил разбить компанию на части, отменив покупки Instagram и WhatsApp

Представлен .NET 5

+1

Как уже выше сказали, ответ — никак. Это не то, что вам обещали. Сами по себе WinForms / WPF не становятся кроссплатформенными, просто версия .NET Core 3 для Windows будет содержать биндинги для них.

Представлен .NET 5

0

Если вам именно на .NET — есть Avalonia или GTK#, однако я бы скорее смотрел в сторону Electron.

Представлен .NET 5

0

Если совсем грубо, то WPF состоит из двух частей — "верхний" слой, написанный на .NET, и "нижний" — нативные библиотеки и части стека Windows (DirectX для отрисовки и т.д.). Нижний слой не входит в .NET и никто не планирует делать его открытым и кроссплатформенным, портировать будут только верхний. Поэтому если вы запускаете приложение на Windows — то ему будут доступны биндинги к ОС и все заработает с минимальными модификациями.

Представлен .NET 5

+1

Нет. WinForms и WPF останутся только для Windows. Однако их можно будет портировать с .NET Framework на .NET Core 3.x.

Представлен .NET 5

+2

Похоже, вы невнимательно читали статью. .NET Core никуда не девается. Наоборот — это классический .NET Framework девается, а то, что раньше должно было называться .NET Core 4, теперь переименовывают в .NET 5.


Соответственно, и Windows Server никуда не денется. На нем можно будет по-прежнему запускать проект под любую версию .NET (классический Framework, Core и .NET 5), и еще много других штук, которые доступны только под Windows.

Представлен .NET 5

0
Но само наименование не так уж важно.
Ну как посмотреть. После .NET Core 3 будет идти не 4, а сразу 5 — именно для того, чтобы не было путаницы в названии с .NET Framework 4.x.
оба ASP.NET должны слить в один
Не вполне понимаю, что вы вкладываете в понятие «слить».

С технической точки зрения .NET 5 не является «объединением» Core и классического фреймворка. Это просто следующая .NET Core под новым названием. Он не будет обратно совместим с .NET Framework 4.x: AppDomains, .NET Remoting и прочие пережитки туда портировать не будут.

Аналогично и с ASP.NET: его поддерживают, но развиваться будет именно Core версия.

Представлен .NET 5

0

Сомневаюсь. ASP.NET Core и EF Core, скорее всего, останутся со своими именами — как минимум потому, что ASP.NET 5 уже был :)

Представлен .NET 5

+5

Поддерживаться какое-то время будет, но развиваться не будет. Именно поэтому у .NET Core отбрасывают приставку "Core" — теперь это будет единственный актуальный фреймворк.

В PHP 7.4 войдут стрелочные функции (сокращенная запись анонимных функций)

0

Вот опять — вроде отличная идея, а реализация вносит еще больше хаоса в и без того сумбурный язык. Теперь есть два синтаксиса для анонимных функций: один (как я понял) только для выражений, автоматически захватывает scope и использует одно ключевое слово (fn), другой — для утверждений, захватывает явно и использует другое ключевое слово — function. Оккам смотрит на это решение с недоумением.


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

Western Digital понесла убытки в размере $581 млн из-за катастрофического падения продаж жестких дисков

+2
Да там и в тексте дальше:
… убыток в размере $500...
… операционные убытки достигли $394...

Разработчик 7 лет создавал порт Super Mario Bros. для Commodore 64. Nintendo потребовала его удалить

-1
Как это, «нет ничего из оригинала»? С первого взгляда я бы подумал, что это мод для SMB, а не самостоятельное произведение. Из действительно отличающихся вещей — герой не отскакивает после прыжка на врага и геометрия уровней другая. В остальном же — кристаллы вместо монеток, бочки вместо труб, одни кирпичи вместо других кирпичей.

То, что успешные игры тут же бросаются клонировать — это факт. Но и в судебных разбирательствах с такими разработчиками я тоже ничего плохого не вижу — они заранее знали, на что идут.

Разработчик 7 лет создавал порт Super Mario Bros. для Commodore 64. Nintendo потребовала его удалить

-1
Если вы про вот эту игру, то я вполне понимаю сторону Nintendo. Разработчики не «вдохновлялись», а скопировали под чистую.

В мае беспилотник «Яндекса» выезжает на улицы Москвы

Язык Bosque — новый язык программирования от Microsoft

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

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

Язык Bosque — новый язык программирования от Microsoft

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

Язык Bosque — новый язык программирования от Microsoft

+1
Встречный вопрос: какой смысл писать документацию к проекту в экспериментальной стадии, когда основные фичи еще обкатываются?

Вы не сможете решить эту задачу на собеседовании

0
Компромисс в данной ситуации — если собеседуемый скажет «вот реализация, но с суррогатными парами она работать не будет», а собеседующий это примет. Если первый не вспомнит, или второй заставит это непосредственно реализовать — вот это уже будет плохо.

Вы не сможете решить эту задачу на собеседовании

+9
Давать на собеседовании задачу на тонкости юникода — это издевательство.

Вы не сможете решить эту задачу на собеседовании

0
Пожалуй я преувеличил насчет «всегда», но ES5 был еще в 2009, а ES6 только в 2015.

Вы не сможете решить эту задачу на собеседовании

0
Итераторы-то совсем недавно завезли, а стандартные методы были всегда.

PHP. Фееричная расстановка точек над кавычками

Юридический парадокс. Пиратские электронные книги можно легально продавать на «Авито»

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

Почему SvelteJS возможно лучший фреймворк для новых веб-разработчиков

-1
Зато гибко.
Спорный момент. Я предпочту систему, которая позволяет хорошо решать частые проблемы и плохо редкие, чем любые — средне.

std::any может хранить внутри себя вообще любой тип
Это я понял, но это не то же самое, что any. Считайте, что any — это запасной план на экстренный случай, когда вы говорите компилятору «не лезь, я беру ответственность на себя, этот код точно будет работать» — и он ничего не проверяет. По поводу auto — это вообще локальный вывод типов. В TS он работает при объявлении любой переменной по умолчанию, хотя можно указать и явно :)

Это решается через виртуальное наследование
Понял, принимается, но опять же — вербозно. Вам нужно описывать все эти типы самостоятельно, и вы не можете написать функцию, которая создаст новый тип из существующих. Максимум вы можете подставить или вытащить тип из шаблона. TS же позволяет делать нечто вроде зависимых типов, хотя и очень ограниченное по меркам языков с настоящими ЗТ (типа Idris).

Почему SvelteJS возможно лучший фреймворк для новых веб-разработчиков

+1
Во, отлично, наконец-то разговор перешел в область фактов и обоснованных утверждений!

1. Структурная типизация подразумевает, что объект удовлетворяет интерфейсу, если у него есть все необходимые свойства. При этом на момент объявления класса объекта этот интерфейс указывать не надо. Я не знаю С++ настолько, чтобы понять ваш пример, но подозреваю, что с ним есть несколько проблем: он очень вербозный, он наверняка дает непонятные сообщения об ошибках, и без наличия в языке object literals он в целом не так полезен.

2. Если я правильно понимаю, то std::any — это что-то типа void *, т.е. перед использованием значения вам нужно все-таки привести его к конкретному типу? Если так, то нет. Any в TS больше похоже на dynamic в шарпе. Просто вызываете методы и обращаетесь к полям, как будто вы пишете на голом джиесе и типизации не существует, а оно либо работает, либо падает в рантайме.

3. Множественное наследование с состоянием чревато известной проблемой ромба, объединение типов такое не дает. std::variant, насколько я понимаю, позволяет хранить одно значение из возможного списка, но это не то же самое, что пересечение: оно требует реализации нескольких интерфейсов одновременно. Например, можно сделать функцию, которая будет объединять два объекта в один, и тип результата будет строго выведен.

4. Это common task, потому что TS призван помочь обуздать хаос в существующем коде на JS, а там и функциональщина, и прототипное наследование, и манки-патчинг…

6. Это когда вы в базовом классе объявляете метод, который возвращает this, и при вызове его на объектах-наследниках возвращаемый тип не будет сбрасываться до базового. В плюсах это можно сделать костылем типа CRTP, а в TS поддерживается более элегантно.

В целом я верю, что на плюсах можно очень многое наворотить. Все-таки, шаблоны — это отдельный тюринг-полный язык. Но есть два значимых момента. Во-первых, плюсы изначально язык со статической типизацией и многие вещи принято изначально решать иначе. TS же наводит порядок в существующем коде на джиесе, и, судя по популярности, делает это довольно успешно. Во-вторых, стоит поставить рядом аналогичные куски кода на С++ c шаблонами\препроцессором и на TS, а также сообщения об ошибках, и многие вопросы сразу отпадут сами собой.

Почему SvelteJS возможно лучший фреймворк для новых веб-разработчиков

-1
Практически все из перечисленного либо есть в C++
Ссылки на документацию или аргументы почему это не нужно, пожалуйста, или слив засчитан.

Зачем все это на фронтенде… все еще не ясно.
Просто выразительная система типов: «А или B», «и A и B», «как A, только с промисами». Никакого рокет-сайенса.

Почему SvelteJS возможно лучший фреймворк для новых веб-разработчиков

+2
Что такого супер нового мне дает Typescript по сравнению с C++ в плане типизации?
Воу-воу, вы серьезно?

  1. Структурная типизация против номинальной
  2. Частичная типизация
  3. Типы-пересечения и типы-объединения (алгебра типов)
  4. Типы-отображения
  5. Условные типы
  6. Тип this
  7. Вывод типов на основе анализа потока управления

Почему SvelteJS возможно лучший фреймворк для новых веб-разработчиков

0
если статья про один язык программирования
С чего вы взяли, что статья про конкретный язык программирования? JS — это платформа с множеством инструментов поверх нее, и нет ничего плохого и удивительного в том, что люди интересуются взаимодействием с собственным инструментарием. Если кто-то напишет крутую библиотеку на Scala, наверняка многим будет интересно, как ее можно вызвать из проекта на Java / Kotlin / Groovy.

Любой нормальный алгоритм, подход или структуру данных можно строго типизировать с помощью достаточно мощной системы типов. Если это не получается, то есть три варианта. Первый — нужно дорабатывать сам TS. Второй — некий гениальный алгоритм, который можно использовать с типами any. И третий, самый часто встречающийся — программист написал какую-то фигню :)

Вы где-то это прочитали, да?
Прочитал и подтвердил на собственном опыте.

Не дешевый такой опыт, которые при этом часто никак не обоснован.
Во-первых, отсутствие опыта часто обходится дороже, чем его получение. Во-вторых, если вы не видите обоснований или не согласны с ними — это совсем не значит, что их нет. Существует много историй о том, как крупный проект перевели с чистого джиеса на TS / Flow или даже Reason и поимели с этого профит. А вот чтобы наоборот — такого я практически не встречал.

Почему SvelteJS возможно лучший фреймворк для новых веб-разработчиков

+4
При этом я совершенно не считаю, что статическая типизация на фронтенде нужна настолько, чтобы со всех статьях про Javascript начинать обсуждать Typescript.
Вы не считаете — и поэтому остальные не должны это обсуждать? Серьезно?

Статическая типизация улучшает поддерживаемость и облегчает рефакторинг для любого мало-мальски серьезного проекта, и в TS она реализована совсем не так сковывающе, как в C++ — особенно если вы имели в виду более старые стандарты. Возможно, вам стоит освежить знания?
Большинство тех, кто сейчас внедряет TS не до конца понимают зачем это нужно именно их проекту.
Даже если TS им не зайдет — так у них хотя бы будет опыт в обоих подходах, с которым потом можно будет обоснованно решать, какой выбрать.

Почему SvelteJS возможно лучший фреймворк для новых веб-разработчиков

+2
Если бы всем поголовно во фронтенд сообществе нужны были бы статические типы, они давно бы уже стали частью стандарта.
Далеко не все принимают решение об использовании строгой типизации или отказе от нее на основе фактов и логики. Очень часто это просто предрассудки из серии «типы замедляют разработку», «типы — это сложно», «типы мешают мне самовыражаться в коде» и прочее. Так что их внедрение не происходит по другим причинам: даже если 90% за, оставшиеся 10% могут орать так громко, что инициатива пойдет ко дну.

Sony закрывает свое мобильное подразделение

Грамматика английского. Who vs. Whom – как понять, какое слово использовать

Современный PHP — прекрасен и продуктивен

+3
Си — совсем не пример того, какой должна быть статическая типизация.
1 туда