Больше всего меня бесят различные теги или операторы в языках программирования и фреймворках, которые автоматически генерируют HTML для форм и их параметров. Я пытался использовать подобные вещи в Microsoft MVC, но не понял выводы.
Какой преимущество у Html.BeginForm по сравнению с простым классическим тегом <form>. У второго точно одно преимущество есть - нужно меньше нажатий клавиш, чтобы напечатать тэг.
Я слышал разные попытки объяснить чем генераторы лучше, но если честно, так и не увидел ничего, чтобы я сказал: "Да, это круть, это стоит гемора с необходимостью печатать больше символов".
Прочитал сегодня заметку о том, что программирование скоро исчезнет (https://medium.com/@dtauerbach/software-engineers-will-be-obsolete-by-2060-2a214fdf9737), и даже названа примерная дата – 2060-й год. Ну да, к этому году я скорей всего уже не доживу, чтобы подтвердить эту теорию, но все же, попробую ее опровергнуть уже сейчас. Рассмотрим несколько основополагающих принципов заметки.
To be sure, software is becoming more efficient, in that sophisticated frameworks have been developed so that fewer lines of source code have to be written, and advanced programming languages, compilers and interpreters have made the life of the programmer much easier than it had been in the 1980s or 1990s.
Краткий перевод: Программирование становится более эффективным и разрабатываются супер фреймворки, которые позволяют писать меньше кода, а продвинутые языки программирования, компиляторы и интерпретаторы созданы для того, чтобы сделать жизнь программистов проще, чем это было в 80-е и 90-е.
Ну да, языки программирования становятся все более мощными, код писать легче и все это зашибись, но и системы становятся более сложными. Если 30 лет назад задачи были простыми и код можно было написать на ассемблере, то сейчас это просто невозможно. Даже не смотря на то, что все упростилось, потребность в программистах только увеличилась в разы и продолжает расти.
Я использую урезанный IIS, только когда запускаю небольшие проекты или тесты. На работе чаще приходится работать с большим сайтами, которые я больше предпочитаю запускать из под полноценного IIS. Один раз сконфигурирован и можно использовать даже без запущенной Visual Studio.
Я вообще не фанат запускать Web проекты из VS. Можно сконфигурировать его так, чтобы он использовал полноценный IIS при запуске, но опять же, я не люблю запускать.
Как же тогда я отлаживаю проекты? Да очень просто, подключаюсь к процессу. В меню Debug выбираю Attach to Process, в появившемся окне процессов выбираю внизу галочку Показать процессы всех пользователей, и сортирую процессы в обратном порядке. Теперь наверху должны быть мена на w3… я точно даже не помню имя процесса, кажется w3wp. Выбираю его и все, Visual Studio уже готов к отладке.
Компания Apple пускает свой новый язык программирования Swift в мир сокрытых технологий - Open Source. И чем это теперь грозит нам, простым пользователям?
Ну на платформах Apple особо сильных изменений я не ожидаю. Да, компания сказала, что ждет с распростертыми объятиями код народа и готова принимать его, но не думаю, что будет много вклада. Тут мне кажется яблочники просто хотят повторить то, что сделала Microsoft со своим .NET.
Но вот что я жду с нетерпением, так это возможность работы со Swift в Linux и возможно даже хорошую IDE. Я в основном работаю с сервисами Linux систем, но уже давно вынашиваю планы все же приобрести дешевенький ноутбук и использовать его чисто под Linux. Раньше для этих целей я использовал RoverBook еще на процессоре Pentium M, но уже года 4 дистрибутивы не ставятся на него из-за проблем не совместимости железа. Пересобирать дистрибутивы под этот ноут что-то мне не улыбает.
Все свои сайты на AMP (Apache, MySQL и PHP) я разрабатываю на маке, поэтому я первую букву не указываю. Хотя, наверно будет правильно всё же указывать, потому что хостинг у меня всё же на Linux серверах.
Короче, я работал на PHP настройках по умолчанию и даже не заморачивался, потому что их вполне достаточно. Но тут понадобилось изменить временную зону, поэтому я скопировал файл /etc/php.ini.default в /etc/php.ini, переключился в Brackets и спокойно продолжил работать.
Наверно через пол часа я запустил новый сайт, а он не работает. Первое, на что я стал грешить - настройки в Apache конфигурационных файлов. Я создал новый сайт, на новом для меня Symfony, который я не использовал никогда.
Сколько времени уже существует LINQ? Уже наверно лет пять, но к сожалению до сих пор нельзя запускать эти выражения во время отладки в отношении массивов.
Ты используешь Entity Framework и LINQ для доступа к базам данных? Дьявол тебе судья, Бог точно твое дело откажется рассматривать.
Еще лет 7 назад (я еще тогда жил в России) я говорил, что в будущем мир может перевернуться и .NET станет основой для Windows. Вот это день настает, потому что скоро C# код можно будет компилировать в родные команды процессора. Никаких промежуточных IL. C# уже основной язык даже у самой MS.
Сегодня скачал с Channel9 видео о .NET Native, чтобы побольше узнать что и как будет работать и в этом видео менеджера проектов расспрашивали о преимуществах нового подхода. В основном говорили на примерах мобильных платформ, но я надеюсь, что это будет работать и на десктопных приложениях.
Да, для телефонов и планшетов возможность запускать приложения сразу же из машинных инструкций является практически критичной, потому что не нужно компилировать код налету и это сохранит батарею и увеличит скорость запуска. Но ведь уже сейчас все приложения для AppStore компилируются в дополнительно промежуточный код. Я не помню как он точно называется, но что-то типа Machine Dependancy IL. Для конечного железа остается работы совсем чуть чуть, чтобы только навести связи.
У меня на работе сейчас достаточно крупный проект, и он может компилироваться достаточно долго, смотря что изменить. Если тронуть что-то в основной модели, на которую большое количество зависимостей, то компиляция может идти несколько минут.
У меня два монитора и пока идет компиляция я часто что-то делаю на втором из них. Когда оборачиваюсь обратно через короткий промежуток времени, а сборка закончена, то прям аж теряюсь, а запускал ли я сборку или просто отвернулся от монитора.
Было бы удобно выводить в окно Output в конце компиляции время окончания. Я эту проблему для себя решил добавлением в пост билд команду PowerShell для вывода текущего времени.
С помощью компилятора .NET Native можно будет компилировать в машинный код под определенную платформу - x86 или x64 или ARM. И тут возникает вполне резонный вопрос - а где вы были раньше?
До недавнего времени .NET хоть и был создан с возможностью поддерживать несколько платформ, но всё же официально работал только на x86 или x64 и только под Windows. Остальное поддерживалось только независимыми разработками. При таком раскладе я не понимаю, зачем Microsoft все это время компилировала .NET приложения в IL код, если никогда не планировали запускать его где-то, кроме Windows на Intel совместимых процессорах. Получается, они осознано и бессмысленно тормозили свои же программы на .NET и не получали от этого реальной выгоды.
Сейчас мне на глаза попался журнал Хакер, в котором были задачки с собеседований от Parallels, и я удивился, на сколько они оказались простыми.
Первая задачка - человек побежал через тунель и на 1/4 пути услышал гудок поезда. Известно, что если он побежит обратно, то встретит поезд на входе, а если побежит вперед, то на выходе. Вопрос, во сколько быстрее едет поезд, если все движутся с постоянной скоростью.
Неизвестно, на каком расстоянии от входа в тунель находится поезд, да и не нужно. Главное, что человек находится на 1/4 пути. Если побежит обратно, то за эту 1/4 пути поезд как раз дойдет до входа. А если побежит в другую сторону? То через 1/4 пути человек окажется уже посередине туннеля, а поезд на входе. Включаем сложнейшие математические расчеты и смекалку и приходим к выводу, что поезд движется в два раза быстрее, ведь с этого момента за одно и то же время он пройдет весь туннель, а человек только оставшуюся половину, чтобы встретиться на выходе.