Pull to refresh
143
0
Александр Прохоров@Athari

Программист C#

Send message
Емнип C# появился когда sun начал судиться на тему того что майкрософт не должны свою джаву иметь. До этого они вполне её развивали.

Что такое "развивали"? Уже J++ был несовместим с Java, имел быстрый интероп и новый синтаксис. Это уже был другой язык и другая виртуальная машина. Sun наехал именно из-за несовместимости с JVM и по суду запретил обновлять J++ и MSJVM. Учитывая, что J++ создавал всё тот же Хейлсберг, C# всё равно возник бы, только, возможно, под другим названием и с несколько большим наследием. Так или иначе, оно было бы несовместимо с экосистемой джавы, то есть те же яйца, только в профиль.


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

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

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


Мыла реально нет только у монохромных пиксельных шрифтов. Но на LCD они выглядят нормально только при очень высоком DPI.

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

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


Все эти срачи про мыло утихнут, когда мониторы с 300dpi станут мейнстримом. А до тех пор будем спорить о вкусах.

У меня нет шила в заднице необходимости реагировать на новости в ту же секунду, как они опубликовываются. Поэтому эти напоминания мне на не нужны от слова совсем.

А почта? А мессенджеры? Всё же в одном месте, а не зоопарк попапчиков от каждого приложения, как во времена WinXP.


Выглянув из окна, я ещё более сразу вижу погоду.

Научите определять температуру одним взглядом, пожалуйста. Мне очень пригодится.


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

Протестируйте своё зрение на мониторе с 300dpi, пожалуйста.


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

Ну вы круто приравняли нативный запуск и телнет.

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


В конце концов виноваты не плитки же, а неумение предсказывать будущее.

Отсутствие необходимости ставить плагины

И отсутствие возможности смотреть контент, требующий плагины. "У вас нет необходимости в колонках, потому что звук не поддерживается."


открытые стандартизованные элементы вместо проприетарного протокола одной компании

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


быструю нативую поддержку браузеров

Быструю? Нативную? Два раза "ха".


не дырявую кишащую вирусами помойку

Единственное, с чем могу согласиться. Флэш реально утомил с дырами безопасности.

Главное даже не то, что именно изменено — главное, что это другие контролы, чем предоставляемые самой OS.

Вы же понимаете, как это происходит. Разраб гуя из команды ворда приходит к разрабу контролов из команды оси и говорит, что ему нужны такие-то фичи. Разраб контролов сообщает, что вот тут лежит обновлённая версия, где нужная фича есть, а если что особое надо — допиливайте сами. Правда есть нюанс, что новая версия требует такой-то совместимости, так что лучше копипастить не кусками, а целиком. И вот в ворде не пойми что из ночной сборки на промежутке между версиями осей.


И в конце концов подобный подход победил. Теперь кастомные контролы (WPF, Qt, HTML/CSS) тащат с собой все, а системные контролы (Win32/MFC/WinForms/VCL) считаются легаси. Любое крупное приложение включает паки компонентов, которые полностью заменяют стандартные контролы (и даже кастомные стандартные). В мобилках (да и на десктопе, что скрывать) шлёпанье WebView стало мейнстримом.


Можно сокрушаться по этому поводу, но никто, включая мелкомягких, не может это исправить. Это в принципе невозможно.


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


Извините, но термин Dll hell появился как раз тогда. Так что про «божественно» — не стоит.

Я имею в виду, как мелкомягкие дебажили каждое популярное приложение при переходе на Win95 и с точностью воссоздавали все баги. The Old New Thing писал об этом, вроде.


И которой почему-то решили пренебречь выпуская Windows Phone 7, Windows 8 и UWP…

Windows Mobile 6 к тому времени была мертва. Ну примерно как Нокия — типа, живёт, но вообще-то уже нет. Спасать было нечего. Windows Phone 7 был попыткой сделать по-нормальному, чтобы все приложения вписывались в новые гайдлайны, а не были костылём. Это было тяжёлое решение, но оно было верным, по-моему.


То есть не получилось спасти виндофоны, но остальные варианты привели бы к провалу ещё быстрее.


И да, Android 1.x/2.x вышел с идиотским API, не умеющим использовать толком GPU и кучей других косяков… но он вышел!

Вот здесь и есть основной промах. Гугл увидел айфон, осознал, что вот оно — будущее, — а всё остальное останется на обочине истории уже завтра. Поэтому вывалил на рынок кривожопую поделку из говна и палок, чтобы вывалить хоть что-то. Мелкомягкие (1) осознали важность пальцев позже (2) решили сделать качественно. Копроэкономика сказала подобному подходу "фи".


Но почему Гугл смог, а Microsoft — нет?

Потому что руководство мелкомягких верило в стилусы.


Это вообще была долгие годы основная фишка Microsoft: не приходить куда-то первым, но догонять и обгонять! Почему тут он отстал на годы и, в результате, «просрал все полимеры»?

У мелкомягких был сложный период. Что работало на десктопе (EEE), не работало в других областях. Прошло немало времени, прежде чем они адаптировались к новой реальности, где они управляют не всем. Ну и ё-моё, ошибки совершают все.


Вспомните почему C# вообще в принципе появился.

Шарп появился, потому что джава — говно (уж простят меня её любители). C# — это "Java по-нормальному": нормальные целочисленные типы, нормальные дженерики, всё такое. Мелкомягкие словили проблем не из-за форка, а из-за попытки применить EEE.


Если бы Microsoft не пытался «намертво привязать» свою версию Java к Windows — то C# был бы не нужен в принципе. Было бы что-то типа TypeSript (который, кстати, тот же Хейлсберг разработал, что и C# и Delphi).

Не было бы. CLR имеет фичи, которых нет (не было) в JVM (структурные типы, нестёртые дженерики, небезопасный код). Мелкомягкие по сути сделали "свою Java" с поломкой обратной совместимости, пока "классическая Java" осталась верна идеальной обратной совместимости, даже если это вело к огромным пробоемам (достаточно одного взгляда на стримы, чтобы понять масштаб бедствий). Повторяю: мелкомягкие не захотели создавать язык на JVM, потому что их не устраивала JVM, а не потому что им запретили использовать имя Java.


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


Собственно, они так и сделали. См. Blazor. Когда в WASM добавят GC и interop, точно так же в обход жабоскрипта пойдут и все остальные. Вопрос времени.


Посмотрите на электронные таблицы.

Вы не мешайте в одну кучу десктопы 30-летней давности и веб современности. У них совершенно разная "экономика". В вебе не работает EEE, например. Майкрософт не может придти и сказать: "Чуваки, вот это кнопочка импортирует весь ваш шмабазон на абажур, добавит новые фичи. P. S. Экспорт назад не работает, у нас же новые фичи." Или: "Все приложения, которые вы купили в ведроиде, с сегодняшнего дня запускаются в форточках". (Они даже пытались, тулзы писали, но не пошло.)


А с этими плитками и Windows Phone 7/Windows 8… ну тут просто нет слов, одни междометия.

Да что вы к плиткам прицепились? Вы ими пользовались? По сути эти же плитки спёрли на другие оси под другим соусом, то есть идея-то была правильная.


А зачем её считать легаси? Зачем вся эта катавасия? Что я, как пользователь, от неё получаю?

Вы получаете нормальную поддержку DPI, единый интерфейс при мыше и тачскрине, обновлённый гуй без лишних попапов и прочее. Если вы сидите на десктопе с мышью и одним монитором на 96dpi и помните, куда запиханы все настройки за счёт 20-летнего опыта использования винды, то вам, конечно, это всё нафиг не надо. Как не надо и мне, например. Но вы и я не 100%.

А чем ещё извините? Отказом от поддержки Win32 в Windows Phone 7?

Тем, что человечество к тому времени уже было поделено на тех, кто захвачен экосистемой гугла, и тех, кто захвачен экосистемой яблок. В 2010-м году, когда вышла семёрка, доля Windows Mobile уже скатилась до 7% (с 15% в предыдущем). Эта ось уже была мертва.


Это мы про компанию, выпустившую свою версию мобильной операционки за 7 лет до выхода iPhone говорим?

Ну вот когда они были первыми, у них и доля на рынке была соответствующая. А потом пришёл айфон и его подделка.


И у которой устройства у управлением пальцами появились на рынке в том же месяце, когда на рынок вышел iPhone?

Кроме железа нужен гуй. А гуй был заточен под стилус.

«Зоопарк» начался уже тогда. И начал его, извините, Microsoft.

Не условил сути картинок. Цвет фона окна разный что ли?


ну а дальше, разумеется, остальные разработчики решают: если им можно игнорировать гайдлайны — то почему нам нельзя?

Какие-то философские вопросы. Мелкомягкие скорее руководствовались практической необходимостью (и толикой беспорядка): разработку всех программ и осей сложно синхронизировать, поэтому гайдлайны не фиксировались в какой-то точке, а точно так же развивались внутри, и никто под конкретные версии тютелька в тютельку не переделывал.


Сторонние разрабы тоже скорее не руководствовались какой-то философией, а делали как умели, как дешевле и как профитнее. Стайл-гайд — это не аксиома, а путь для достижения определённых целей.


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


Apple выпускал новую версию операционки — и в ней появлялся новый дизайн. То есть дизайн менялся — но оставался единым для всей OS.

Это дорогое удовольствие. Ресурсы ограничены. Стив Джобс поставил на дизайн, Билл Гейтс — на технические фишки. Ну и где теперь ваш Стив Джобс, что называется. (Впрочем, возможность лапать экран мобилки пальцем стала киллер-фичей, которая полностью переломила историю — этого не отнять, но это уже не про десктопы.)


Далеко не всегда тоже.

Тем не менее, оно хоть как-то работает. Когда монополизировали рынок в эпоху Win9x, оно работало вообще божественно. В остальных же осях нормальной бинарной совместимости нет в принципе — это киллер-фича винды, которая до сих пор определяет её доминирование на десктопе.


Под Linux — нет. Как человек, пользующий до сих под Adobe Reader (последняя версия вышла в 2013м) и прекратившый пользовать XV буквально пару лет назад (последняя версия вышла в 1994м) — я это знаю точно.

У Линукса несовместимостей в другой плоскости хватает, которая произрастает из его киллер-фичи с пакетными менеджерами: зоопарк дистрибутивов и зоопарк пакетных менеджеров. Сам Линус считает ситуацию паршивой.


Это почему это? Его марсиане убили? Или из ада дьяволы повылазили? Сам же Microsoft и убил своей необдуманной политикой.

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


Мелкомягкие поставили на стилус и проиграли. Яблоки поставили на пальцы и выиграли. Гугл увидел айфон и кое-как догнал, ужасно вспотев.


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


Ну бывает так. Победа определяется первыми шагами. Кто первый встал, того и тапки.


Они все имели хотя бы кнопки одинаковой формы. В Windows 10 нет даже этого.

Старую панель управления можете считать легаси. В новой панели всё единообразно.

В случае с Windows Mobile — это произошло, фактически мгновенно (отчасти потому что и старые приложение выкинули, не только старый интерфейс)

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


В случае же с обычным софтом — можно просто продолжать использовать старую версию, которая тебе нравится и в которой тебя всё устраивает…

Из-за дизайна-то? Очень сомнительные приоритеты.

я мог, посмотрев на заголовок (вернее на рамку окна) узнать — можно его размеры изменять или нет

Понятия не имею, откуда у вас такая потребность. У меня 95% окон развёрнуто на весь экран. Все остальные, если они хотя бы чуть-чуть современные, или размер меняют, или в изменении размера не нуждаются. Проблема с неизменяемым размером актуальна разве что для кривых кастомизированных диалогов открытия файла, но я такого уже вечность не видел.


Там, вообще-то, тоже всё попиксельно было.

Мыло в WinXP было, а не пиксели. Контрастным линиям на пиксельной сетке тогда приоритета много не отдавали. Иконки 16x16 использовались повсеместно, поэтому проблема стояла остро.


А вот подумайте над тем, почему на Windows — эта концепция умерла, а на MacOS — нет. И нет — дело не в том, что Windows более популярна, чем MacOS. Дело в том, что есть гайдлайны, в которых не происходит революции каждый год.

Неправильный ответ. Дизайн определяется гуёвым фреймворком, а на виндах оных зоопарк, и каждый тащит с собой стили (кроме стандартных контролов и обёрток над ними — и то любой крупный пак компонентов стилизует и их). "Шкурки" появились ещё при Win9x, а в те времена мелкомягкие наоборот пытались всех загнать в единое оформление. Сопротивление бесполезно.


Ну и в маках таки меняли дизайн же. Тоже перешли на плоскоту. Эпоха монохромных, 16-цветных и 256-цветных дизайнов тоже была.


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


Это, собственно, самая большая проблема и есть. Слава богу от концепции «двух миров», как в Windows 8, отказались, но даже и так — это неудобно. Есть отдельно UWP мир и отдельно — «старый» «Win32 мир»… и в обоих — чего-то не хватает…

Мир UWP отлично работает для трэша типа "Погода" или "VK" — это приложения, которые в старой системе не были бы идеально изолированы, и от останков подобной мелочи возникали проблемы. UWP бесполезен для чего-то более-менее серьзного, но Win32 не отменили же. Ну и в UWP было бы больше смысла, если бы Windows Phone не сдох — но тут уж винить мелкомягких сложно.


В Windows XP эта проблема формально имеется: пару диалогов так с Windows 3.1 и переписали (работа со шрифтами и ещё что-то), но их были единицы, можно было работать годами и так и не узнать что там такая проблема есть…

В Windows XP были точно те же проблемы. В панели управления был всё тот же зоопарк стопок попапов из Win9x, веба из WinME, оснасток из Win2000 и прочего.

Ну да. Но тогда и 16TB SSD и 512GB RAM станут мейнстримом.

А чем, собственно, дизайн десятки плох?


  1. Заголовки окон лучшие за всю историю винды — простые, понятные, адкватного размера. Минимализм Win95. Никаких идиотских рюшечек (WinXP до сих пор в кошмарах снится).
  2. Иконки изговнили плоскотой, но, судя по этой и другим статьям, тени и градиенты возвращаются, а с цветами научились работать ещё раньше (они таки поняли, что один цвет — это говно). Да, это не идеальный пиксель-арт Win2000, но обновлённый стиль меня устраивает. Хотя бы не мыло WinXP.
  3. Дизайн стандартных контролов вселяет тоску, но никто не запрещает подключить темы (вроде, оно до сих пор работает). Проблема только в том, что концепция единого дизайна всё равно на винде умерла, каждое второе приложение тащит свой стиль, исправить это невозможно.
  4. Панель задач отлично выглядит после всех обновлений — в кои-то веки идеальная контрастность надписей (в семёрке чёткость была только при стиле Win98). С твикером вообще сказка.
  5. Главное меню реально лучшее за всю историю. Дизайн — сомнительный, функционал — лучший (в новых версиях очень много добавили и исправили).

Меня жутко раздражает разве что размножение панелей управления...

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


А классический шелл морально устарел. Всё, к чему мелкомягкие дают програмный доступ, в конце концов оказывается засрано криворукими программистами и шибко умными маркетологами (Program Files, My Documents, Main Menu, Quick Access...). Плиточное меню круто тем, что менять его может только юзер, классический шелл такой фичи не даёт.


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

Этого никогда не будет. Потому что это надо хорошо если 1% народа с особенными вкусами, а поддерживать все иконки стоит денег. Причём если этот 1% обломать, то никуда они не денутся, то есть профита ноль.

Я сдался. 1TB SSD, 32GB RAM — и можно спокойно плюнуть на расползающуюся винду, зоопарк студий, прожорливость хрома и всех приложений, в который он встроен.


Воевать с этим безумием бесполезно.

Чего-чего? Какого ещё плохого английского? В первый раз слышу. Скриншот?

Какая-то странная шапка. Сделал так:



#TMpanel {
  height: 36px !important;
  background: none !important;            
}
#TMpanel .dropdown {
  position: static !important;
  display: flex !important;
  padding: 0 !important;
  max-width: none !important;
  background: none !important;
  box-shadow: none !important;
}
#TMpanel .service {
  padding: 0 6px !important;
  margin: 2px 0 !important;
  background: none !important;
}
#TMpanel .logo-wrapper svg path,
#TMpanel .service-title svg path {
  fill: #666 !important;
}
#TMpanel .service-title:hover svg path {
  fill: #999 !important;
}
#TMpanel .container .bmenu>a.bmenu__conversion,
#TMpanel .projects-dropdown,
#TMpanel .dropdown-heading,
#TMpanel .service-description {
  display: none !important;
}

Vocabulary: 14-19, 23, 15, 12, 15
Grammar: C1, 23/25, 94%, 21/25
All: 94%, ...


У словарного запаса невменяемый разброс. А грамматика оказалась лучше, чем я думал. Второй грамматический тест любопытный — единственный, от которого не разило "ландан из зэ капитал ов грейт британ". Короткий EF SET тоже тонкий (длинный лень проходить).

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity