Category: it

Category was added automatically. Read all entries about "it".

Про Web-девелопмент

Несколько месяцев полного погружения. Освоил более-менее React, нахватался CSS и прочего. У меня все сильнее ощущение, что я больше не программист, а дизайнер: бОльшую часть времени занимаюсь тем, чтобы та или иная хрень выглядела так, как прописано в дизайне. Это как если бы механика, занимающегося автомобилями, заставили вместо моторов заниматься покраской. Меня начинает сильно тошнить от этой хуйни. Моя стихия это данные, алгоритмы, multithreading. Красота работающих процессов, а не красота UI.
Очень НЕ помогает ебанутость CSS. То, что CSS ебанутая вещь, можно заключить (даже не пробуя работать с ней) из того факта, что даже специалисты, работающие с CSS лет пять, иногда могут сидеть часами, не понимая, что происходит (это то, что я наблюдал своими глазами). Для сравнения: в WPF/XAML такого не бывает, там ты просто смотришь и делаешь. Никто в WPF не будет писать статьи "как правильно сделать vertical align компоненту" - потому что это делается в 99.9% случаев выставлением одной проперти. Поставил, и забыл. В XAML есть свои сложности, но это ПРАВИЛЬНЫЕ сложности (скажем, анимация неинтуитивна, некоторые вещи в binding). Сложные вещи могут быть сложными. Но в CSS даже простые вещи часто неоправданно сложны. И тут проблема не в том, что XAML это для Windows, а CSS это для для Web, а в том, что иногда надо остановиться и все переделать заново. WPF, собственно, потому и хорош, что его девелоперы отбросили старый Win32 и написали с нуля, по уму. Тщательно продумав, что и как требуется тем, кто будет этим пользоваться.

А вот CSS, как и прочие важнейшие составные части программирования для web, JS and HTML, это нечто grass-rooted. Сделанное во времена, когда интернет был скорее для документов, чем для сложных аппликаций. Он пересматривается, дополняется, но факт в том, что его никогда не планировали для столько продвинутых задач. Поэтому его искусственно дополняют разными плюшками (flex), чтобы сделать его более пригодным. Та же фигня с JavaScript. Это не язык, это хуета, написанная за неделю на коленке для маленького сайта. Если бы это был нормальный язык программирования, то не потребовалось бы создавать TypeScript, который позволяет (не всегда) скрыть наиболее кошмарные детали JS. И не стал бы TS таким востребованным, если бы JS сам по себе был пристойным.

Опять же, возьмите такой феномен, как существование туевой хуче frameworks. Они продолжают появляться, одни входят в моду, другие выходят. Уже само наличие большого числа инструментов для решения одной задачи логически как бы говорит нам: среди них НЕТ по-настоящему хорошего. Если бы был, то он дарвинистским манером вытеснил бы остальные. Но это не происходит. Отсюда делаем следующий шаг: как так получилось, что десятки тысяч умных, талантливых людей до сих пор не могут сделать подходящий tool? Почему сочиняют новые и новые? Люди, повторюсь, умные, так что проблема не в них. А в чем?

Имхо в том, что основание гнилое. Ну, "гнилое", наверное, перебор, а просто то, что фундамент не был предназначен для того, что на нем СЕЙЧАС строится. Как я сказал выше, HTML/JS/CSS создавались для достаточно простых вещей, а потом потихоньку приспосабливались к новым и новым требованиям. Но приспособление берет свою цену. То, что вначале было бунгало, превратилось сначала в 2-ух этажный домик, потом в многоквартирый дом, а теперь в небоскреб. И то, что основание не годится для того, что есть сейчас, пытаются преодолеть заплатками (тот же TypeScript это одна большая заплатка).
Я не думаю, что я один в таком радикальном мышлении. Сдается мне, что язык Dart от Google-а был создан людьми, придерживающимися похожих взглядов и пытавшимися что-то изменить. Увы, fail. Все боятся "фрагментации интернета", так что остаемся там, где есть. Не думаю, что ситуация изменится в обозримом будущем.
PS: хочу на волю, в пампасы C#, в джунгли multithreading. Хочу ломать голову, почему итоговое значение не такое, как по алгоритму, а не почему элемент сдвинут на пару пикселей. Хочу писать Unit Test-ы и BDD.... Возможно, ближе к концу года запрошусь в другой team. Более full-scale

Карантинное...

Карантин проходит не та, чтобы плохо. Если бы не работа, то, думаю, было бы заметно хуже. А так даже интересно - тем более, что трудимся над интересным проектом с кучей новых (для нас) технологий:
1) React. Категорически отличается от того же Angular. Требуется сильный Mind-shift, но когда втянешься, то нравится. Angular тоже ничего был, но меня тошнит от RxJS. Мне эти ваши reactive extension пришлись сильно не по душе еще в C#...
2) MongoDb. Для меня не новая вещь, но до сих пор я работал с ней только из-под C#. В принципе, терпимо. Хотя их schema validation надо еще долго допиливать напильником до приличного состояния.
3) GraphQl. В нашем проекте от него пользы ноль. Но он у нас в конторе сейчас в большом фаворе (т.к. его любит один авторитетный человек). Конкретно для нашего случая это просто обуза, еще один уровень сложности, который не дает ничего полезного, кроме дополнительных строчек кода и потраченных дней. Меня убивает в нем две вещи: странный, далеко не интуитивный синтаксис, плюс неадекватные сообщения об ошибках. Я как-то раз потерял 4 часа, пытаясь разгадать, почему мой запрос в Playground не работает. Оказалось, что я забыл запятую в variables, хотя error message намекал на проблему с MongoDb.
В общем, есть, чем мозг занять. С другой стороны, поскольку я работа из дома, то не трачу время на поезд в Лондон и обратно (1+1 час). Так что стал читать намного меньше. И список "books to read" стремительно увеличивается...