Несколько лет назад я написал свой первый JS-проект. Это был простой однострочный файл console.log («Привет, мир»). Когда я увидел, что на консоли Chrome появился какой-то текст, я прослезился. Я все время менял струну и весело праздновал каждый раз, когда она следовала именно тому, что я написал. Случайность единственной строчки кода гарантировала, что она может быть уникальной, если захочется. Конечно, я писал свое имя несколько раз.
JS очень извинялся. Это было скучно, но достаточно сложно. Я тогда тоже писал PHP, но это было не так снисходительно. Одна ошибка, и вся ваша страница - это несколько строк с ошибками в Times New Roman. Сама идея изучать программирование на стороне сервера была утомительной, но, тем не менее, мне нравится PHP. Но мне больше понравился JS. Ничего не ломается, ваш HTML и CSS по-прежнему отображаются.
JS был счастливым местом. Скажем, нет никакой безопасности типов, вы можете добавлять целые числа к строкам, массивы могут хранить что угодно, и это не подвергается значительному обновлению. Совместимость браузера может быть проблемой, но я просто написал код для себя, то есть для последней версии Chrome. Все стало лучше, когда я изучил JQuery. Если честно, сейчас я пишу JQuery, а не просто JS, но у меня наверняка была фаза, когда я пытался все преобразовать в ванильные коды.
Изучить JS тоже было легко. Мои первые несколько уроков были предоставлены New Boston Academy на Youtube. Да, спасибо, Баки Робертс. Но Баки был не единственным, кто вел бизнес по обучению с классными примерами, использующими такие слова, как бекон и тунец. По JS были разбросаны тысячи руководств по сети. Я просто выбрал те, которые предложил друг, который учился по программе информатики. Был момент, когда мне нужно было ставить точку с запятой вместо точки с запятой. Потом стало лучше, так как теперь я мог разбираться в документации. Или нет, поскольку документация больше похожа на компас - он показывает правильное направление, но не предлагает маршрута.
Stackoverflow, вот где вы действительно учитесь. Пройдя через суровость this и обнаружив больше причуд JS, вы почувствуете себя ближе к сообществу разработчиков JS. Примерно в это же время я начал называть себя разработчиком, так как теперь я понял, что бороться за это нужно. Еще одна вещь, которая мне нравится в JS, - это то, что вам не нужна IDE, только текстовый редактор, в котором я имел в виду Sublime Text или Atom.
Но сообщество JS сумасшедшее. Не клинически, но достаточно для фиксации на Github. Я лично никогда не участвовал в проектах на Github, потому что постоянно чувствую, что другие люди лучше меня. Это не позиция разработчика JS. В сообществе JS существует сильное программирование, основанное на мнениях. Если вы с кем-то не согласны, вы пишете свою версию плагина. Я не уверен, откуда взялась эта почти нарциссическая культура, но она очень имитирует молодую группу политкорректных хипстеров, взбудораженных кофе. Я до сих пор получаю вопросы вроде «ты парень Angular или парень React?» как будто я использую их для каждого отдельного проекта. В наши дни даже у JQuery есть альтернативы.
Входит Свифт. В настоящее время я разрабатываю свое первое приложение для iOS для местной новостной компании. Раньше я так и не научился писать на Swift. Год назад у меня было несколько попыток, но дело не пошло. Учебники на Youtube были очень запутанными. Многие из них все еще были на Objective-C, имели разные версии Xcode или Swift. Пришлось остановиться на печати («Привет, мир»). Ресурсов для Swift оставалось очень мало. Когда мне недавно дали проект, я снова пошел искать ресурсы. Мне повезло, я нашел «Быстрого парня». Простые и эффективные руководства для начинающих. Итак, я быстро начал разрабатывать приложение по частям. Однако через неделю я убедился, что Swift - это не JS.
Не углубляясь в необходимость перехода от функционального программирования к объектно-ориентированному программированию, мне пришлось сначала привыкнуть к Xcode. Эта умная штука считывает ваши коды, как ЦРУ, на ваш Facebook. Он указывает на разноцветные указатели ошибок повсюду. Вы не можете собрать и запустить проект, если у вас возникла ошибка, что очень расстраивало. Иногда ошибки исчезают при перезапуске Xcode. Объем места, который вы получаете от экрана Full-HD, недостаточен для Xcode. Повсюду были панели, показывающие разные вещи, две трети которых вы не представляете, что они делают. Контроль версий также встроен. Это было похоже на вход в Walmart по сравнению с Atom, который больше похож на 7-Eleven.
Сам Свифт было нетрудно понять. Многие концепции были похожи на JS или другие языки, такие как операторы if и циклы for. Это коды, которые вы пишете, не зависящие от объектов для iOS, что было еще одной кривой обучения в целом. Swift был намного строже, чем JS. Вы не можете просто менять типы переменных по ходу дела. Все должно быть правильно заявлено или предсказано. Xcode улавливает большую часть вашей лени и заставляет вас правильно их конвертировать. JSON поставляется в неупорядоченном виде, и много внимания уделяется закрытию.
Имейте в виду, когда я сказал Swift, я имел в виду программирование для iOS, а это значит, что вам нужно немного изучить оборудование. Обычные браузеры и JS работают в одном потоке, но не на устройствах iOS. Не все потоки работают одинаково, и вам нужно, например, назначить определенные задачи для запуска в основном потоке. Память сохраняется, и все контролируется. Одна ошибка - и ваше приложение вылетает.
Но не все так плохо. Запуск чего-либо на более чем четырех потоках - это невероятно быстро. Вы действительно можете почувствовать скорость этой штуки. Все вычислительные задачи и обработка чисел решаются быстрее. Вы можете запускать процессы в фоновом режиме, и у него более структурированный жизненный цикл по сравнению с веб-приложениями. В основном, когда он работает, он работает отлично. У вас есть приличный набор представлений или элементов, с которыми можно поиграть, что придаст вашему приложению такой нативный опыт. Мне больше всего нравится PickerView, который представляет собой игровой автомат, похожий на отображение опций для пользователей. Чтобы эти представления работали, необходимо понимать, какие методы вам нужно включить. Включение методов в основном определяет первые три или четыре символа, а Xcode выполняет автозаполнение за вас.
Сообщество Swift менее безумно. Существует меньший выбор библиотек, что в некотором роде очень успокаивает, поскольку ресурсы вокруг этих библиотек хорошо развиты. Alamofire и SwiftyJSON? На вопросы Stack-o-flo есть своего рода ответы, прежде чем они будут помечены как ересь. Примеры сложнее тестировать из-за отсутствия Swift-Bin или Swift-Fiddle, но они представляют собой реальные проекты, а не просто фрагменты. Вы можете создать пользовательский интерфейс перетаскиванием с помощью функции автоматического макета. Черт, вы можете каждое перетаскивание, чтобы связать свой пользовательский интерфейс с вашими кодами. Это так называемые розетки. Похоже, что основные взаимодействия внутри приложения были упрощены в Xcode 8 и Swift 3.
Мне они оба очень нравятся. Мне нравится массивность и хаос JS, но также и элегантность Swift. Я не большой поклонник Xcode, думаю, его можно улучшить разными способами. Кроме того, плата за Программу разработчиков Apple в размере 99 долларов может быть проблемой. Я по-прежнему считаю, что JS - намного лучший язык для новичков, но если вы хоть немного освоитесь с ним, вам обязательно стоит попробовать Swift. Странное удовольствие наблюдать за тем, как все работает в приложении по сравнению с браузером. Это похоже на правильную разработку, и это делает вас лучшим программистом, поскольку вы понимаете более ботанические термины. Мне еще предстоит пройти долгий путь, прежде чем я начну свободно разбираться в разработке для iOS, но иногда я заглядываю в проекты JS. Изучение нового языка требует от вас преодоления препятствий и изменения конфигурации своего мозга. Он творит чудеса с тем, как вы думаете, и с вашим резюме.